{"version":3,"file":"static/js/main.bbcd4744.js","mappings":"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BACA,mBACA,kBACA,mBACA,mBACA,kBACA,kBACA,mBACA,kBACA,oBACA,mBACA,mBACA,kBAAuB,mBAEvB,mBACA,kBACA,kBACA,kBACA,mBACA,mBACA,mBACA,mBACA,kBACA,mBACA,kBACA,mBACA,mBACA,oBACA,oBACA,kBACA,kBAAuB,mBAEvB,mBACA,kBACA,kBACA,kBACA,kBACA,mBACA,mBACA,mBACA,kBACA,mBACA,mBACA,mBACA,kBACA,kBACA,mBACA,iBACA,kBAAuB,mBAEvB,mBACA,mBACA,kBACA,mBACA,mBACA,kBACA,mBACA,mBACA,mBACA,mBACA,kBACA,oBACA,mBACA,oBACA,oBACA,mBACA,mBACA,mBAEA,mBACA,mBACA,oBACA,mBACA,mBACA,kBACA,kBACA,mBACA,mBACA,kBACA,kBACA,mBACA,oBACA,mBACA,mBACA,mBACA,kBAAuB,mBAEvB,kBACA,iBACA,oBACA,kBACA,mBACA,mBACA,kBACA,mBACA,kBACA,kBACA,mBACA,oBACA,oBACA,oBACA,iBACA,mBACA,kBAAuB,kBAEvB,kBACA,kBACA,oBACA,kBACA,kBACA,mBACA,kBACA,mBACA,oBACA,iBACA,kBACA,mBACA,oBACA,oBACA,mBACA,kBACA,kBAAuB,kBAEvB,kBACA,kBACA,oBACA,kBACA,mBACA,mBACA,kBACA,mBACA,oBACA,mBACA,mBACA,oBACA,oBACA,oBACA,oBACA,kBACA,iBAAuB,mBAEvB,kBACA,kBACA,kBACA,mBACA,mBACA,mBACA,mBACA,mBACA,oBACA,mBACA,mBACA,oBACA,oBACA,mBACA,mBACA,kBACA,kBAAuB,mBAEvB,kBACA,iBACA,mBACA,mBACA,mBACA,kBACA,kBACA,mBACA,oBACA,mBACA,mBACA,mBACA,oBACA,oBACA,mBACA,kBACA,mBAAuB,mBAEvB,iBACA,kBACA,oBACA,kBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,kBACA,kBACA,oBACA,oBACA,oBACA,kBACA,mBAAuB,kBAEvB,WAAgBP,EAAKpB,MAAQ,GAAM,QACnC,WAAgBoB,EAAKpB,MAAQ,GAAM,QACnC,WAAeoB,EAAKpB,MAAQ,GAAM,QAClC,WAAeoB,EAAKpB,MAAQ,GAAM,QAClC,UAAcoB,EAAKpB,MAAQ,GAAM,QACjC,UAAcoB,EAAKpB,MAAQ,GAAM,QACjC,UAAcoB,EAAKpB,MAAQ,GAAM,QACjC,SAAaoB,EAAKpB,MAAQ,GAAM,QAEhC,mBAA2B,mBAC3B,kBAAyB,mBACzB,mBAA0B,mBAC1B,mBAGE4B,EAAK,GACLC,EAAK,GAELC,EAAM,CACN,CACC,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,oBACA,qBACA,qBAEA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,sBAEC,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBAEA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,qBACA,sBAEF,CACC,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBAEA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,sBAEC,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,qBACA,qBAED,EACA,EACA,EACA,EACA,EACA,GACC,sBACA,sBACA,sBAEF,CACC,kBACA,iBACA,kBAEA,kBACA,kBACA,iBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBAEA,iBACA,kBACA,kBACA,mBACC,mBACA,kBACD,kBACA,IAEC,mBACA,mBACA,mBACA,mBACA,oBACA,oBACA,oBACA,oBAED,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,iBACA,mBAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,qBACA,qBACA,qBAEA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,oBACA,sBAEC,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBAEA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,uBAIFC,EAAWD,EAAIE,EAAQC,YACv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I,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAGhEA,OAAgB,CACZ,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACxD,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACxD,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACzD,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC1D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAGhEA,KAAc,CACV,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACxD,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACxD,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACzD,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC1D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,G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EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAIA,GAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAIA,GAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAIA,GAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAIA,GAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAIA,GAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,GAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,GAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,GAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,GAAa,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,GAAa,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,GAAa,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,GAAa,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,GAAa,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,GAAa,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,GAAa,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,GAAa,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,GAAa,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,GAAa,EAAG,EAAG,IA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","sources":["../node_modules/@remix-run/router/history.ts","../node_modules/@remix-run/router/utils.ts","../node_modules/@remix-run/router/router.ts","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/hoist-non-react-statics/node_modules/react-is/index.js","../node_modules/invariant/browser.js","../node_modules/mic-recorder-to-mp3/node_modules/lamejs/src/js/common.js","../node_modules/mic-recorder-to-mp3/node_modules/lamejs/src/js/NewMDCT.js","../node_modules/mic-recorder-to-mp3/node_modules/lamejs/src/js/III_psy_xmin.js","../node_modules/mic-recorder-to-mp3/node_modules/lamejs/src/js/III_psy_ratio.js","../node_modules/mic-recorder-to-mp3/node_modules/lamejs/src/js/Encoder.js","../node_modules/mic-recorder-to-mp3/node_modules/lamejs/src/js/FFT.js","../node_modules/mic-recorder-to-mp3/node_modules/lamejs/src/js/PsyModel.js","../node_modules/mic-recorder-to-mp3/node_modules/lamejs/src/js/MPEGMode.js","../node_modules/mic-recorder-to-mp3/node_modules/lamejs/src/js/LameGlobalFlags.js","../node_modules/mic-recorder-to-mp3/node_modules/lamejs/src/js/L3Side.js","../node_modules/mic-recorder-to-mp3/node_modules/lamejs/src/js/GrInfo.js","../node_modules/mic-recorder-to-mp3/node_modules/lamejs/src/js/IIISideInfo.js","../node_modules/mic-recorder-to-mp3/node_modules/lamejs/src/js/ScaleFac.js","../node_modules/mic-recorder-to-mp3/node_modules/lamejs/src/js/NsPsy.js","../node_modules/mic-recorder-to-mp3/node_modules/lamejs/src/js/VBRSeekInfo.js","../node_modules/mic-recorder-to-mp3/node_modules/lamejs/src/js/LameInternalFlags.js","../node_modules/mic-recorder-to-mp3/node_modules/lamejs/src/js/ATH.js","../node_modules/mic-recorder-to-mp3/node_modules/lamejs/src/js/GainAnalysis.js","../node_modules/mic-recorder-to-mp3/node_modules/lamejs/src/js/ReplayGain.js","../node_modules/mic-recorder-to-mp3/node_modules/lamejs/src/js/MeanBits.js","../node_modules/mic-recorder-to-mp3/node_modules/lamejs/src/js/CBRNewIterationLoop.js","../node_modules/mic-recorder-to-mp3/node_modules/lamejs/src/js/Tables.js","../node_modules/mic-recorder-to-mp3/node_modules/lamejs/src/js/QuantizePVT.js","../node_modules/mic-recorder-to-mp3/node_modules/lamejs/src/js/Takehiro.js","../node_modules/mic-recorder-to-mp3/node_modules/lamejs/src/js/BitStream.js","../node_modules/mic-recorder-to-mp3/node_modules/lamejs/src/js/Lame.js","../node_modules/mic-recorder-to-mp3/node_modules/lamejs/src/js/Presets.js","../node_modules/mic-recorder-to-mp3/node_modules/lamejs/src/js/VBRQuantize.js","../node_modules/mic-recorder-to-mp3/node_modules/lamejs/src/js/CalcNoiseResult.js","../node_modules/mic-recorder-to-mp3/node_modules/lamejs/src/js/CalcNoiseData.js","../node_modules/mic-recorder-to-mp3/node_modules/lamejs/src/js/Quantize.js","../node_modules/mic-recorder-to-mp3/node_modules/lamejs/src/js/Reservoir.js","../node_modules/mic-recorder-to-mp3/node_modules/lamejs/src/js/Version.js","../node_modules/mic-recorder-to-mp3/node_modules/lamejs/src/js/VBRTag.js","../node_modules/mic-recorder-to-mp3/node_modules/lamejs/src/js/index.js","../node_modules/mic-recorder-to-mp3/src/encoder.js","../node_modules/mic-recorder-to-mp3/src/mic-recorder.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/client.js","../node_modules/react-dom/index.js","../node_modules/react-ga4/dist/format.js","../node_modules/react-ga4/dist/ga4.js","../node_modules/react-ga4/dist/gtag.js","../node_modules/react-ga4/dist/index.js","../node_modules/react-router-bootstrap/LinkContainer.js","../node_modules/react-router-bootstrap/index.js","../node_modules/react-router-dom/dom.ts","../node_modules/react-router-dom/index.tsx","../node_modules/react-router/lib/context.ts","../node_modules/react-router/lib/hooks.tsx","../node_modules/react-router/lib/components.tsx","../node_modules/react-router/index.ts","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/use-sync-external-store/cjs/use-sync-external-store-with-selector.production.min.js","../node_modules/use-sync-external-store/with-selector.js","../node_modules/warning/warning.js","../node_modules/classnames/index.js","../webpack/bootstrap","../webpack/runtime/compat get default export","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/publicPath","../webpack/runtime/jsonp chunk loading","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/react-bootstrap/esm/ThemeProvider.js","../node_modules/react-bootstrap/esm/Container.js","../node_modules/clsx/dist/clsx.mjs","../node_modules/@mui/utils/esm/formatMuiErrorMessage/formatMuiErrorMessage.js","../node_modules/@mui/utils/esm/clamp/clamp.js","../node_modules/@mui/system/esm/colorManipulator/colorManipulator.js","../node_modules/@mui/utils/esm/composeClasses/composeClasses.js","../node_modules/@mui/utils/esm/isFocusVisible/isFocusVisible.js","../node_modules/@mui/utils/esm/capitalize/capitalize.js","../node_modules/@mui/material/utils/capitalize.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@emotion/sheet/dist/emotion-sheet.esm.js","../node_modules/stylis/src/Utility.js","../node_modules/stylis/src/Tokenizer.js","../node_modules/stylis/src/Enum.js","../node_modules/stylis/src/Serializer.js","../node_modules/stylis/src/Parser.js","../node_modules/@emotion/cache/dist/emotion-cache.browser.esm.js","../node_modules/stylis/src/Middleware.js","../node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js","../node_modules/@emotion/unitless/dist/emotion-unitless.esm.js","../node_modules/@emotion/memoize/dist/emotion-memoize.esm.js","../node_modules/@emotion/serialize/dist/emotion-serialize.esm.js","../node_modules/@emotion/hash/dist/emotion-hash.esm.js","../node_modules/@emotion/use-insertion-effect-with-fallbacks/dist/emotion-use-insertion-effect-with-fallbacks.browser.esm.js","../node_modules/@emotion/react/dist/emotion-element-f0de968e.browser.esm.js","../node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js","../node_modules/@emotion/styled/base/dist/emotion-styled-base.browser.esm.js","../node_modules/@emotion/styled/dist/emotion-styled.browser.esm.js","../node_modules/@mui/styled-engine/index.js","../node_modules/@mui/utils/esm/deepmerge/deepmerge.js","../node_modules/@mui/system/esm/createBreakpoints/createBreakpoints.js","../node_modules/@mui/system/esm/createTheme/shape.js","../node_modules/@mui/system/esm/breakpoints/breakpoints.js","../node_modules/@mui/system/esm/cssContainerQueries/cssContainerQueries.js","../node_modules/@mui/system/esm/style/style.js","../node_modules/@mui/system/esm/merge/merge.js","../node_modules/@mui/system/esm/spacing/spacing.js","../node_modules/@mui/system/esm/memoize/memoize.js","../node_modules/@mui/system/esm/createTheme/createSpacing.js","../node_modules/@mui/system/esm/compose/compose.js","../node_modules/@mui/system/esm/borders/borders.js","../node_modules/@mui/system/esm/cssGrid/cssGrid.js","../node_modules/@mui/system/esm/palette/palette.js","../node_modules/@mui/system/esm/sizing/sizing.js","../node_modules/@mui/system/esm/styleFunctionSx/defaultSxConfig.js","../node_modules/@mui/system/esm/styleFunctionSx/styleFunctionSx.js","../node_modules/@mui/system/esm/createTheme/applyStyles.js","../node_modules/@mui/system/esm/createTheme/createTheme.js","../node_modules/@mui/system/esm/preprocessStyles.js","../node_modules/@mui/system/esm/createStyled/createStyled.js","../node_modules/@mui/material/colors/common.js","../node_modules/@mui/material/colors/grey.js","../node_modules/@mui/material/colors/purple.js","../node_modules/@mui/material/colors/red.js","../node_modules/@mui/material/colors/orange.js","../node_modules/@mui/material/colors/blue.js","../node_modules/@mui/material/colors/lightBlue.js","../node_modules/@mui/material/colors/green.js","../node_modules/@mui/material/styles/createPalette.js","../node_modules/@mui/system/esm/cssVars/createGetCssVar.js","../node_modules/@mui/system/esm/cssVars/prepareTypographyVars.js","../node_modules/@mui/system/esm/cssVars/cssVarsParser.js","../node_modules/@mui/system/esm/cssVars/prepareCssVars.js","../node_modules/@mui/material/styles/createMixins.js","../node_modules/@mui/material/styles/createTypography.js","../node_modules/@mui/material/styles/shadows.js","../node_modules/@mui/material/styles/createTransitions.js","../node_modules/@mui/material/styles/zIndex.js","../node_modules/@mui/material/styles/stringifyTheme.js","../node_modules/@mui/material/styles/createThemeNoVars.js","../node_modules/@mui/material/styles/getOverlayAlpha.js","../node_modules/@mui/material/styles/createColorScheme.js","../node_modules/@mui/material/styles/shouldSkipGeneratingVar.js","../node_modules/@mui/material/styles/excludeVariablesFromRoot.js","../node_modules/@mui/material/styles/createGetSelector.js","../node_modules/@mui/material/styles/createThemeWithVars.js","../node_modules/@mui/material/styles/createTheme.js","../node_modules/@mui/system/esm/cssVars/getColorSchemeSelector.js","../node_modules/@mui/material/styles/defaultTheme.js","../node_modules/@mui/material/styles/identifier.js","../node_modules/@mui/material/styles/slotShouldForwardProp.js","../node_modules/@mui/material/styles/rootShouldForwardProp.js","../node_modules/@mui/material/styles/styled.js","../node_modules/@mui/system/esm/useThemeWithoutDefault/useThemeWithoutDefault.js","../node_modules/@mui/system/esm/useTheme/useTheme.js","../node_modules/@mui/material/styles/useTheme.js","../node_modules/@mui/system/esm/memoTheme.js","../node_modules/@mui/material/utils/memoTheme.js","../node_modules/@mui/material/utils/createSimplePaletteValueFilter.js","../node_modules/@mui/utils/esm/resolveProps/resolveProps.js","../node_modules/@mui/system/esm/DefaultPropsProvider/DefaultPropsProvider.js","../node_modules/@mui/material/DefaultPropsProvider/DefaultPropsProvider.js","../node_modules/@mui/system/esm/styleFunctionSx/extendSxProp.js","../node_modules/@emotion/react/dist/emotion-react.browser.esm.js","../node_modules/@mui/styled-engine/GlobalStyles/GlobalStyles.js","../node_modules/@mui/system/esm/GlobalStyles/GlobalStyles.js","../node_modules/@mui/material/GlobalStyles/GlobalStyles.js","../node_modules/@mui/utils/esm/ClassNameGenerator/ClassNameGenerator.js","../node_modules/@mui/utils/esm/generateUtilityClass/generateUtilityClass.js","../node_modules/@mui/utils/esm/generateUtilityClasses/generateUtilityClasses.js","../node_modules/@mui/material/Typography/typographyClasses.js","../node_modules/@mui/material/Typography/Typography.js","../node_modules/@mui/material/zero-styled/index.js","../node_modules/@mui/material/Link/linkClasses.js","../node_modules/@mui/material/Link/getTextDecoration.js","../node_modules/@mui/material/Link/Link.js","../node_modules/@mui/utils/esm/useId/useId.js","../node_modules/@mui/utils/esm/setRef/setRef.js","../node_modules/@mui/utils/esm/useForkRef/useForkRef.js","../node_modules/@mui/utils/esm/getReactElementRef/getReactElementRef.js","../node_modules/@mui/utils/esm/ownerDocument/ownerDocument.js","../node_modules/@mui/material/Unstable_TrapFocus/FocusTrap.js","../node_modules/@mui/utils/esm/useEnhancedEffect/useEnhancedEffect.js","../node_modules/@mui/material/Portal/Portal.js","../node_modules/@mui/utils/esm/isHostComponent/isHostComponent.js","../node_modules/@mui/utils/esm/appendOwnerState/appendOwnerState.js","../node_modules/@mui/utils/esm/resolveComponentProps/resolveComponentProps.js","../node_modules/@mui/utils/esm/extractEventHandlers/extractEventHandlers.js","../node_modules/@mui/utils/esm/omitEventHandlers/omitEventHandlers.js","../node_modules/@mui/utils/esm/mergeSlotProps/mergeSlotProps.js","../node_modules/@mui/material/utils/useSlot.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/react-transition-group/esm/config.js","../node_modules/react-transition-group/esm/TransitionGroupContext.js","../node_modules/react-transition-group/esm/utils/reflow.js","../node_modules/react-transition-group/esm/Transition.js","../node_modules/@mui/material/transitions/utils.js","../node_modules/@mui/material/utils/useForkRef.js","../node_modules/@mui/material/Fade/Fade.js","../node_modules/@mui/material/Backdrop/backdropClasses.js","../node_modules/@mui/material/Backdrop/Backdrop.js","../node_modules/@mui/utils/esm/useEventCallback/useEventCallback.js","../node_modules/@mui/utils/esm/createChainedFunction/createChainedFunction.js","../node_modules/@mui/utils/esm/ownerWindow/ownerWindow.js","../node_modules/@mui/utils/esm/getScrollbarSize/getScrollbarSize.js","../node_modules/@mui/material/Modal/ModalManager.js","../node_modules/@mui/material/Modal/useModal.js","../node_modules/@mui/material/Modal/modalClasses.js","../node_modules/@mui/material/Modal/Modal.js","../node_modules/@mui/material/Paper/paperClasses.js","../node_modules/@mui/material/Paper/Paper.js","../node_modules/@mui/material/Dialog/dialogClasses.js","../node_modules/@mui/material/Dialog/DialogContext.js","../node_modules/@mui/material/Dialog/Dialog.js","../node_modules/@mui/material/DialogTitle/dialogTitleClasses.js","../node_modules/@mui/material/DialogTitle/DialogTitle.js","../node_modules/@mui/material/DialogContent/dialogContentClasses.js","../node_modules/@mui/material/DialogContent/DialogContent.js","../node_modules/@mui/material/InputBase/utils.js","../node_modules/@mui/material/utils/isMuiElement.js","../node_modules/@mui/utils/esm/isMuiElement/isMuiElement.js","../node_modules/@mui/material/FormControl/FormControlContext.js","../node_modules/@mui/material/FormControl/formControlClasses.js","../node_modules/@mui/material/FormControl/FormControl.js","../node_modules/@mui/material/FormControl/formControlState.js","../node_modules/@mui/material/FormControl/useFormControl.js","../node_modules/@mui/material/FormLabel/formLabelClasses.js","../node_modules/@mui/material/FormLabel/FormLabel.js","../node_modules/@mui/material/InputLabel/inputLabelClasses.js","../node_modules/@mui/material/InputLabel/InputLabel.js","../node_modules/@mui/material/utils/ownerDocument.js","../node_modules/@mui/system/esm/RtlProvider/index.js","../node_modules/@mui/utils/esm/useSlotProps/useSlotProps.js","../node_modules/@mui/material/List/ListContext.js","../node_modules/@mui/material/List/listClasses.js","../node_modules/@mui/material/List/List.js","../node_modules/@mui/material/utils/getScrollbarSize.js","../node_modules/@mui/material/utils/useEnhancedEffect.js","../node_modules/@mui/material/utils/ownerWindow.js","../node_modules/@mui/material/MenuList/MenuList.js","../node_modules/@mui/material/utils/isHostComponent.js","../node_modules/@mui/utils/esm/debounce/debounce.js","../node_modules/@mui/material/utils/debounce.js","../node_modules/@mui/utils/esm/useLazyRef/useLazyRef.js","../node_modules/@mui/utils/esm/useOnMount/useOnMount.js","../node_modules/@mui/utils/esm/useTimeout/useTimeout.js","../node_modules/@mui/material/Grow/Grow.js","../node_modules/@mui/material/Popover/popoverClasses.js","../node_modules/@mui/material/Popover/Popover.js","../node_modules/@mui/material/Menu/menuClasses.js","../node_modules/@mui/material/Menu/Menu.js","../node_modules/@mui/material/NativeSelect/nativeSelectClasses.js","../node_modules/@mui/material/NativeSelect/NativeSelectInput.js","../node_modules/@mui/material/utils/useControlled.js","../node_modules/@mui/utils/esm/useControlled/useControlled.js","../node_modules/@mui/material/Select/selectClasses.js","../node_modules/@mui/material/Select/SelectInput.js","../node_modules/@mui/material/SvgIcon/svgIconClasses.js","../node_modules/@mui/material/SvgIcon/SvgIcon.js","../node_modules/@mui/material/utils/createSvgIcon.js","../node_modules/@mui/material/internal/svg-icons/ArrowDropDown.js","../node_modules/@mui/material/TextareaAutosize/TextareaAutosize.js","../node_modules/@mui/material/InputBase/inputBaseClasses.js","../node_modules/@mui/material/InputBase/InputBase.js","../node_modules/@mui/material/Input/inputClasses.js","../node_modules/@mui/material/Input/Input.js","../node_modules/@mui/material/FilledInput/filledInputClasses.js","../node_modules/@mui/material/FilledInput/FilledInput.js","../node_modules/@mui/material/OutlinedInput/NotchedOutline.js","../node_modules/@mui/material/OutlinedInput/outlinedInputClasses.js","../node_modules/@mui/material/OutlinedInput/OutlinedInput.js","../node_modules/@mui/material/Select/Select.js","../node_modules/@mui/material/utils/useEventCallback.js","../node_modules/@mui/material/useLazyRipple/useLazyRipple.js","../node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js","../node_modules/react-transition-group/esm/utils/ChildMapping.js","../node_modules/react-transition-group/esm/TransitionGroup.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@mui/material/ButtonBase/Ripple.js","../node_modules/@mui/material/ButtonBase/touchRippleClasses.js","../node_modules/@mui/material/ButtonBase/TouchRipple.js","../node_modules/@mui/material/ButtonBase/buttonBaseClasses.js","../node_modules/@mui/material/ButtonBase/ButtonBase.js","../node_modules/@mui/material/Divider/dividerClasses.js","../node_modules/@mui/material/ListItemIcon/listItemIconClasses.js","../node_modules/@mui/material/ListItemText/listItemTextClasses.js","../node_modules/@mui/material/MenuItem/menuItemClasses.js","../node_modules/@mui/material/MenuItem/MenuItem.js","../node_modules/@mui/material/Button/buttonClasses.js","../node_modules/@mui/material/ButtonGroup/ButtonGroupContext.js","../node_modules/@mui/material/ButtonGroup/ButtonGroupButtonContext.js","../node_modules/@mui/material/Button/Button.js","../node_modules/react-redux/src/utils/react.ts","../node_modules/react-redux/src/components/Context.ts","../node_modules/react-redux/src/utils/useSyncExternalStore.ts","../node_modules/react-redux/src/hooks/useReduxContext.ts","../node_modules/react-redux/src/hooks/useSelector.ts","../node_modules/react-redux/src/utils/react-is.ts","../node_modules/react-redux/src/utils/batch.ts","../node_modules/react-redux/src/utils/Subscription.ts","../node_modules/react-redux/src/utils/useIsomorphicLayoutEffect.ts","../node_modules/react-redux/src/utils/hoistStatics.ts","../node_modules/react-redux/src/components/Provider.tsx","../node_modules/react-redux/src/hooks/useStore.ts","../node_modules/react-redux/src/hooks/useDispatch.ts","../node_modules/react-redux/src/index.ts","../node_modules/react-redux/src/components/connect.tsx","constants/userConstants.js","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/utils.js","../node_modules/axios/lib/core/AxiosError.js","../node_modules/axios/lib/helpers/toFormData.js","../node_modules/axios/lib/helpers/AxiosURLSearchParams.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/defaults/transitional.js","../node_modules/axios/lib/platform/browser/index.js","../node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","../node_modules/axios/lib/platform/browser/classes/FormData.js","../node_modules/axios/lib/platform/browser/classes/Blob.js","../node_modules/axios/lib/platform/common/utils.js","../node_modules/axios/lib/platform/index.js","../node_modules/axios/lib/helpers/formDataToJSON.js","../node_modules/axios/lib/defaults/index.js","../node_modules/axios/lib/helpers/toURLEncodedForm.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/core/AxiosHeaders.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/cancel/CanceledError.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/helpers/speedometer.js","../node_modules/axios/lib/helpers/throttle.js","../node_modules/axios/lib/helpers/progressEventReducer.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/helpers/resolveConfig.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/helpers/parseProtocol.js","../node_modules/axios/lib/helpers/composeSignals.js","../node_modules/@babel/runtime/helpers/esm/OverloadYield.js","../node_modules/@babel/runtime/helpers/esm/wrapAsyncGenerator.js","../node_modules/@babel/runtime/helpers/esm/awaitAsyncGenerator.js","../node_modules/@babel/runtime/helpers/esm/asyncGeneratorDelegate.js","../node_modules/@babel/runtime/helpers/esm/asyncIterator.js","../node_modules/axios/lib/helpers/trackStream.js","../node_modules/axios/lib/adapters/fetch.js","../node_modules/axios/lib/adapters/adapters.js","../node_modules/axios/lib/helpers/null.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/env/data.js","../node_modules/axios/lib/helpers/validator.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/helpers/HttpStatusCode.js","../node_modules/axios/lib/axios.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/helpers/isAxiosError.js","actions/userActions.js","constants/templateConstants.js","actions/templateActions.js","../node_modules/@mui/material/AppBar/appBarClasses.js","../node_modules/@mui/material/AppBar/AppBar.js","../node_modules/@mui/material/Toolbar/toolbarClasses.js","../node_modules/@mui/material/Toolbar/Toolbar.js","../node_modules/@mui/material/CircularProgress/circularProgressClasses.js","../node_modules/@mui/material/CircularProgress/CircularProgress.js","components/BackdropProgress.js","../node_modules/@mui/icons-material/esm/Menu.js","../node_modules/@mui/system/esm/createBox/createBox.js","../node_modules/@mui/material/Box/boxClasses.js","../node_modules/@mui/material/Box/Box.js","../node_modules/@mui/material/Slide/Slide.js","../node_modules/@mui/material/Drawer/drawerClasses.js","../node_modules/@mui/material/Drawer/Drawer.js","../node_modules/@mui/material/Divider/Divider.js","../node_modules/@mui/material/ListItem/listItemClasses.js","../node_modules/@mui/material/ListItemButton/listItemButtonClasses.js","../node_modules/@mui/material/ListItemSecondaryAction/listItemSecondaryActionClasses.js","../node_modules/@mui/material/ListItemSecondaryAction/ListItemSecondaryAction.js","../node_modules/@mui/material/ListItem/ListItem.js","../node_modules/@mui/material/ListItemButton/ListItemButton.js","../node_modules/@mui/material/ListItemIcon/ListItemIcon.js","../node_modules/@mui/material/ListItemText/ListItemText.js","../node_modules/@mui/icons-material/esm/Mail.js","../node_modules/@mui/icons-material/esm/ScienceOutlined.js","../node_modules/@mui/icons-material/esm/LoginOutlined.js","../node_modules/@mui/icons-material/esm/LogoutOutlined.js","../node_modules/@mui/icons-material/esm/FormatAlignLeftOutlined.js","../node_modules/@mui/icons-material/esm/NoteAddOutlined.js","../node_modules/@mui/icons-material/esm/QuestionMarkOutlined.js","../node_modules/@mui/material/IconButton/iconButtonClasses.js","../node_modules/@mui/material/IconButton/IconButton.js","../node_modules/@mui/icons-material/esm/InfoOutlined.js","constants/createConstants.js","components/Header3.js","components/Header.js","../node_modules/react-bootstrap/esm/Row.js","../node_modules/react-bootstrap/esm/Col.js","components/Footer.js","screens/HomeScreen.js","../node_modules/react-bootstrap/esm/Table.js","../node_modules/react-bootstrap/esm/Spinner.js","components/Loader.js","../node_modules/uncontrollable/lib/esm/utils.js","../node_modules/uncontrollable/lib/esm/hook.js","../node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js","../node_modules/@restart/hooks/esm/useCommittedRef.js","../node_modules/@restart/hooks/esm/useEventCallback.js","../node_modules/react-bootstrap/esm/divWithClassName.js","../node_modules/react-bootstrap/esm/AlertHeading.js","../node_modules/@restart/hooks/esm/useIsomorphicEffect.js","../node_modules/@restart/hooks/esm/useResizeObserver.js","../node_modules/@restart/ui/esm/Button.js","../node_modules/@restart/ui/esm/Anchor.js","../node_modules/react-bootstrap/esm/AlertLink.js","../node_modules/dom-helpers/esm/ownerDocument.js","../node_modules/dom-helpers/esm/getComputedStyle.js","../node_modules/dom-helpers/esm/ownerWindow.js","../node_modules/dom-helpers/esm/hyphenate.js","../node_modules/dom-helpers/esm/hyphenateStyle.js","../node_modules/dom-helpers/esm/isTransform.js","../node_modules/dom-helpers/esm/css.js","../node_modules/dom-helpers/esm/canUseDOM.js","../node_modules/dom-helpers/esm/addEventListener.js","../node_modules/dom-helpers/esm/removeEventListener.js","../node_modules/dom-helpers/esm/listen.js","../node_modules/dom-helpers/esm/transitionEnd.js","../node_modules/dom-helpers/esm/triggerEvent.js","../node_modules/react-bootstrap/esm/transitionEndListener.js","../node_modules/@restart/hooks/esm/useMergedRefs.js","../node_modules/react-bootstrap/esm/TransitionWrapper.js","../node_modules/react-bootstrap/esm/safeFindDOMNode.js","../node_modules/react-bootstrap/esm/Fade.js","../node_modules/react-bootstrap/esm/triggerBrowserReflow.js","../node_modules/react-bootstrap/esm/CloseButton.js","../node_modules/react-bootstrap/esm/Alert.js","components/Message.js","constants/commentConstants.js","screens/AdminScreen.js","actions/commentsActions.js","../node_modules/react-bootstrap/esm/Feedback.js","../node_modules/react-bootstrap/esm/FormContext.js","../node_modules/react-bootstrap/esm/FormCheckInput.js","../node_modules/react-bootstrap/esm/FormCheckLabel.js","../node_modules/react-bootstrap/esm/FormCheck.js","../node_modules/react-bootstrap/esm/ElementChildren.js","../node_modules/react-bootstrap/esm/FormControl.js","../node_modules/react-bootstrap/esm/FormFloating.js","../node_modules/react-bootstrap/esm/FormGroup.js","../node_modules/react-bootstrap/esm/FormLabel.js","../node_modules/react-bootstrap/esm/FormRange.js","../node_modules/react-bootstrap/esm/FormSelect.js","../node_modules/react-bootstrap/esm/FormText.js","../node_modules/react-bootstrap/esm/Switch.js","../node_modules/react-bootstrap/esm/FloatingLabel.js","../node_modules/react-bootstrap/esm/Form.js","../node_modules/@mui/material/FormHelperText/formHelperTextClasses.js","../node_modules/@mui/material/FormHelperText/FormHelperText.js","../node_modules/@mui/material/TextField/textFieldClasses.js","../node_modules/@mui/material/TextField/TextField.js","screens/LoginScreen.js","../node_modules/dom-helpers/esm/scrollbarSize.js","../node_modules/@restart/hooks/esm/useWillUnmount.js","../node_modules/@restart/hooks/esm/useUpdatedRef.js","../node_modules/dom-helpers/esm/activeElement.js","../node_modules/dom-helpers/esm/contains.js","../node_modules/@restart/ui/esm/DataKey.js","../node_modules/@restart/ui/esm/ModalManager.js","../node_modules/@restart/ui/esm/getScrollbarWidth.js","../node_modules/@restart/ui/esm/useWindow.js","../node_modules/@restart/ui/esm/useWaitForDOMRef.js","../node_modules/@restart/ui/esm/NoopTransition.js","../node_modules/@restart/ui/esm/useRTGTransitionProps.js","../node_modules/@restart/ui/esm/utils.js","../node_modules/@restart/ui/esm/RTGTransition.js","../node_modules/@restart/ui/esm/ImperativeTransition.js","../node_modules/@restart/ui/esm/Modal.js","../node_modules/@restart/hooks/esm/useMounted.js","../node_modules/@restart/hooks/esm/usePrevious.js","../node_modules/dom-helpers/esm/querySelectorAll.js","../node_modules/dom-helpers/esm/removeClass.js","../node_modules/react-bootstrap/esm/BootstrapModalManager.js","../node_modules/dom-helpers/esm/addClass.js","../node_modules/dom-helpers/esm/hasClass.js","../node_modules/react-bootstrap/esm/ModalBody.js","../node_modules/react-bootstrap/esm/ModalContext.js","../node_modules/react-bootstrap/esm/ModalDialog.js","../node_modules/react-bootstrap/esm/ModalFooter.js","../node_modules/react-bootstrap/esm/AbstractModalHeader.js","../node_modules/react-bootstrap/esm/ModalHeader.js","../node_modules/react-bootstrap/esm/ModalTitle.js","../node_modules/react-bootstrap/esm/Modal.js","../node_modules/@restart/hooks/esm/useCallbackRef.js","components/ButtonMailto.js","screens/Contactscreen.js","components/FormContainer.js","screens/RegisterScreen.js","screens/ProfileScreen.js","../node_modules/react-bootstrap/esm/Button.js","screens/AboutUs.js","../node_modules/react-bootstrap/esm/CardBody.js","../node_modules/react-bootstrap/esm/CardFooter.js","../node_modules/react-bootstrap/esm/CardHeaderContext.js","../node_modules/react-bootstrap/esm/CardHeader.js","../node_modules/react-bootstrap/esm/CardImg.js","../node_modules/react-bootstrap/esm/CardImgOverlay.js","../node_modules/react-bootstrap/esm/CardLink.js","../node_modules/react-bootstrap/esm/CardSubtitle.js","../node_modules/react-bootstrap/esm/CardText.js","../node_modules/react-bootstrap/esm/CardTitle.js","../node_modules/react-bootstrap/esm/Card.js","../node_modules/@restart/ui/esm/NavContext.js","../node_modules/@restart/ui/esm/SelectableContext.js","../node_modules/@restart/ui/esm/TabContext.js","../node_modules/@restart/ui/esm/NavItem.js","../node_modules/@restart/ui/esm/Nav.js","../node_modules/@restart/hooks/esm/useForceUpdate.js","../node_modules/react-bootstrap/esm/ListGroupItem.js","../node_modules/react-bootstrap/esm/ListGroup.js","screens/AccountScreen.js","components/CreditCard.js","screens/BuyCredits.js","screens/ResetPassword.js","screens/ChangePasswordScreen.js","screens/ConfirmRegistrationScreen.js","screens/FaqScreen.js","screens/UserStatistics.js","../node_modules/@mui/material/DialogContentText/dialogContentTextClasses.js","../node_modules/@mui/material/DialogContentText/DialogContentText.js","../node_modules/@mui/material/DialogActions/dialogActionsClasses.js","../node_modules/@mui/material/DialogActions/DialogActions.js","../node_modules/@mui/icons-material/esm/SyncAlt.js","screens/CHARTTemplate.js","../node_modules/@mui/icons-material/esm/Delete.js","screens/SOAPTemplate.js","screens/ProtocolScreen.js","../node_modules/@mui/material/internal/animate.js","../node_modules/@mui/material/Tabs/ScrollbarSize.js","../node_modules/@mui/material/internal/svg-icons/KeyboardArrowLeft.js","../node_modules/@mui/material/internal/svg-icons/KeyboardArrowRight.js","../node_modules/@mui/material/TabScrollButton/tabScrollButtonClasses.js","../node_modules/@mui/material/TabScrollButton/TabScrollButton.js","../node_modules/@mui/material/Tabs/tabsClasses.js","../node_modules/@mui/material/Tabs/Tabs.js","../node_modules/@mui/material/Tab/tabClasses.js","../node_modules/@mui/material/Tab/Tab.js","screens/TestScreen.js","../node_modules/@mui/icons-material/esm/KeyboardVoice.js","../node_modules/@mui/icons-material/esm/Undo.js","constants/encodeConstants.js","actions/encodeActions.js","../node_modules/@mui/material/Alert/alertClasses.js","../node_modules/@mui/material/internal/svg-icons/SuccessOutlined.js","../node_modules/@mui/material/internal/svg-icons/ReportProblemOutlined.js","../node_modules/@mui/material/internal/svg-icons/ErrorOutline.js","../node_modules/@mui/material/internal/svg-icons/InfoOutlined.js","../node_modules/@mui/material/internal/svg-icons/Close.js","../node_modules/@mui/material/Alert/Alert.js","../node_modules/@mui/material/Stepper/stepperClasses.js","../node_modules/@mui/material/Stepper/StepperContext.js","../node_modules/@mui/material/Step/StepContext.js","../node_modules/@mui/material/StepConnector/stepConnectorClasses.js","../node_modules/@mui/material/StepConnector/StepConnector.js","../node_modules/@mui/material/Stepper/Stepper.js","../node_modules/@mui/material/Step/stepClasses.js","../node_modules/@mui/material/Step/Step.js","../node_modules/@mui/material/internal/svg-icons/CheckCircle.js","../node_modules/@mui/material/internal/svg-icons/Warning.js","../node_modules/@mui/material/StepIcon/stepIconClasses.js","../node_modules/@mui/material/StepIcon/StepIcon.js","../node_modules/@mui/material/StepLabel/stepLabelClasses.js","../node_modules/@mui/material/StepLabel/StepLabel.js","../node_modules/@mui/material/FormControlLabel/formControlLabelClasses.js","../node_modules/@mui/material/FormControlLabel/FormControlLabel.js","../node_modules/@mui/material/internal/switchBaseClasses.js","../node_modules/@mui/material/internal/SwitchBase.js","../node_modules/@mui/material/internal/svg-icons/CheckBoxOutlineBlank.js","../node_modules/@mui/material/internal/svg-icons/CheckBox.js","../node_modules/@mui/material/internal/svg-icons/IndeterminateCheckBox.js","../node_modules/@mui/material/Checkbox/checkboxClasses.js","../node_modules/@mui/material/Checkbox/Checkbox.js","screens/CreateScreen.js","../node_modules/shared/src/utils.ts","../node_modules/lucide-react/src/defaultAttributes.ts","../node_modules/lucide-react/src/Icon.ts","../node_modules/lucide-react/src/createLucideIcon.ts","../node_modules/lucide-react/src/icons/sparkles.ts","../node_modules/lucide-react/src/icons/file-text.ts","../node_modules/lucide-react/src/icons/message-square.ts","../node_modules/lucide-react/src/icons/clipboard-check.ts","../node_modules/lucide-react/src/icons/circle-alert.ts","screens/LandingPage2.js","screens/Instructions.js","screens/LabScreen.js","App.js","reportWebVitals.js","../node_modules/redux/src/utils/formatProdErrorMessage.ts","../node_modules/redux/src/utils/symbol-observable.ts","../node_modules/redux/src/utils/actionTypes.ts","../node_modules/redux/src/utils/isPlainObject.ts","../node_modules/redux/src/createStore.ts","../node_modules/redux/src/compose.ts","../node_modules/redux-thunk/dist/redux-thunk.mjs","../node_modules/@redux-devtools/extension/lib/esm/index.js","store.js","../node_modules/redux/src/combineReducers.ts","reducers/userReducers.js","reducers/commentReducers.js","reducers/encodeReducers.js","reducers/templateReducers.js","reducers/createReducer.js","../node_modules/redux/src/applyMiddleware.ts","index.js"],"sourcesContent":["////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Actions represent the type of change to a location value.\n */\nexport enum Action {\n /**\n * A POP indicates a change to an arbitrary index in the history stack, such\n * as a back or forward navigation. It does not describe the direction of the\n * navigation, only that the current index changed.\n *\n * Note: This is the default action for newly created history objects.\n */\n Pop = \"POP\",\n\n /**\n * A PUSH indicates a new entry being added to the history stack, such as when\n * a link is clicked and a new page loads. When this happens, all subsequent\n * entries in the stack are lost.\n */\n Push = \"PUSH\",\n\n /**\n * A REPLACE indicates the entry at the current index in the history stack\n * being replaced by a new one.\n */\n Replace = \"REPLACE\",\n}\n\n/**\n * The pathname, search, and hash values of a URL.\n */\nexport interface Path {\n /**\n * A URL pathname, beginning with a /.\n */\n pathname: string;\n\n /**\n * A URL search string, beginning with a ?.\n */\n search: string;\n\n /**\n * A URL fragment identifier, beginning with a #.\n */\n hash: string;\n}\n\n// TODO: (v7) Change the Location generic default from `any` to `unknown` and\n// remove Remix `useLocation` wrapper.\n\n/**\n * An entry in a history stack. A location contains information about the\n * URL path, as well as possibly some arbitrary state and a key.\n */\nexport interface Location extends Path {\n /**\n * A value of arbitrary data associated with this location.\n */\n state: State;\n\n /**\n * A unique string associated with this location. May be used to safely store\n * and retrieve data in some other storage API, like `localStorage`.\n *\n * Note: This value is always \"default\" on the initial location.\n */\n key: string;\n}\n\n/**\n * A change to the current location.\n */\nexport interface Update {\n /**\n * The action that triggered the change.\n */\n action: Action;\n\n /**\n * The new location.\n */\n location: Location;\n\n /**\n * The delta between this location and the former location in the history stack\n */\n delta: number | null;\n}\n\n/**\n * A function that receives notifications about location changes.\n */\nexport interface Listener {\n (update: Update): void;\n}\n\n/**\n * Describes a location that is the destination of some navigation, either via\n * `history.push` or `history.replace`. This may be either a URL or the pieces\n * of a URL path.\n */\nexport type To = string | Partial;\n\n/**\n * A history is an interface to the navigation stack. The history serves as the\n * source of truth for the current location, as well as provides a set of\n * methods that may be used to change it.\n *\n * It is similar to the DOM's `window.history` object, but with a smaller, more\n * focused API.\n */\nexport interface History {\n /**\n * The last action that modified the current location. This will always be\n * Action.Pop when a history instance is first created. This value is mutable.\n */\n readonly action: Action;\n\n /**\n * The current location. This value is mutable.\n */\n readonly location: Location;\n\n /**\n * Returns a valid href for the given `to` value that may be used as\n * the value of an attribute.\n *\n * @param to - The destination URL\n */\n createHref(to: To): string;\n\n /**\n * Returns a URL for the given `to` value\n *\n * @param to - The destination URL\n */\n createURL(to: To): URL;\n\n /**\n * Encode a location the same way window.history would do (no-op for memory\n * history) so we ensure our PUSH/REPLACE navigations for data routers\n * behave the same as POP\n *\n * @param to Unencoded path\n */\n encodeLocation(to: To): Path;\n\n /**\n * Pushes a new location onto the history stack, increasing its length by one.\n * If there were any entries in the stack after the current one, they are\n * lost.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n push(to: To, state?: any): void;\n\n /**\n * Replaces the current location in the history stack with a new one. The\n * location that was replaced will no longer be available.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n replace(to: To, state?: any): void;\n\n /**\n * Navigates `n` entries backward/forward in the history stack relative to the\n * current index. For example, a \"back\" navigation would use go(-1).\n *\n * @param delta - The delta in the stack index\n */\n go(delta: number): void;\n\n /**\n * Sets up a listener that will be called whenever the current location\n * changes.\n *\n * @param listener - A function that will be called when the location changes\n * @returns unlisten - A function that may be used to stop listening\n */\n listen(listener: Listener): () => void;\n}\n\ntype HistoryState = {\n usr: any;\n key?: string;\n idx: number;\n};\n\nconst PopStateEventType = \"popstate\";\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Memory History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A user-supplied object that describes a location. Used when providing\n * entries to `createMemoryHistory` via its `initialEntries` option.\n */\nexport type InitialEntry = string | Partial;\n\nexport type MemoryHistoryOptions = {\n initialEntries?: InitialEntry[];\n initialIndex?: number;\n v5Compat?: boolean;\n};\n\n/**\n * A memory history stores locations in memory. This is useful in stateful\n * environments where there is no web browser, such as node tests or React\n * Native.\n */\nexport interface MemoryHistory extends History {\n /**\n * The current index in the history stack.\n */\n readonly index: number;\n}\n\n/**\n * Memory history stores the current location in memory. It is designed for use\n * in stateful non-browser environments like tests and React Native.\n */\nexport function createMemoryHistory(\n options: MemoryHistoryOptions = {}\n): MemoryHistory {\n let { initialEntries = [\"/\"], initialIndex, v5Compat = false } = options;\n let entries: Location[]; // Declare so we can access from createMemoryLocation\n entries = initialEntries.map((entry, index) =>\n createMemoryLocation(\n entry,\n typeof entry === \"string\" ? null : entry.state,\n index === 0 ? \"default\" : undefined\n )\n );\n let index = clampIndex(\n initialIndex == null ? entries.length - 1 : initialIndex\n );\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n function clampIndex(n: number): number {\n return Math.min(Math.max(n, 0), entries.length - 1);\n }\n function getCurrentLocation(): Location {\n return entries[index];\n }\n function createMemoryLocation(\n to: To,\n state: any = null,\n key?: string\n ): Location {\n let location = createLocation(\n entries ? getCurrentLocation().pathname : \"/\",\n to,\n state,\n key\n );\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in memory history: ${JSON.stringify(\n to\n )}`\n );\n return location;\n }\n\n function createHref(to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n let history: MemoryHistory = {\n get index() {\n return index;\n },\n get action() {\n return action;\n },\n get location() {\n return getCurrentLocation();\n },\n createHref,\n createURL(to) {\n return new URL(createHref(to), \"http://localhost\");\n },\n encodeLocation(to: To) {\n let path = typeof to === \"string\" ? parsePath(to) : to;\n return {\n pathname: path.pathname || \"\",\n search: path.search || \"\",\n hash: path.hash || \"\",\n };\n },\n push(to, state) {\n action = Action.Push;\n let nextLocation = createMemoryLocation(to, state);\n index += 1;\n entries.splice(index, entries.length, nextLocation);\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 1 });\n }\n },\n replace(to, state) {\n action = Action.Replace;\n let nextLocation = createMemoryLocation(to, state);\n entries[index] = nextLocation;\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 0 });\n }\n },\n go(delta) {\n action = Action.Pop;\n let nextIndex = clampIndex(index + delta);\n let nextLocation = entries[nextIndex];\n index = nextIndex;\n if (listener) {\n listener({ action, location: nextLocation, delta });\n }\n },\n listen(fn: Listener) {\n listener = fn;\n return () => {\n listener = null;\n };\n },\n };\n\n return history;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Browser History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A browser history stores the current location in regular URLs in a web\n * browser environment. This is the standard for most web apps and provides the\n * cleanest URLs the browser's address bar.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#browserhistory\n */\nexport interface BrowserHistory extends UrlHistory {}\n\nexport type BrowserHistoryOptions = UrlHistoryOptions;\n\n/**\n * Browser history stores the location in regular URLs. This is the standard for\n * most web apps, but it requires some configuration on the server to ensure you\n * serve the same app at multiple URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createbrowserhistory\n */\nexport function createBrowserHistory(\n options: BrowserHistoryOptions = {}\n): BrowserHistory {\n function createBrowserLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let { pathname, search, hash } = window.location;\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createBrowserHref(window: Window, to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n return getUrlBasedHistory(\n createBrowserLocation,\n createBrowserHref,\n null,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Hash History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A hash history stores the current location in the fragment identifier portion\n * of the URL in a web browser environment.\n *\n * This is ideal for apps that do not control the server for some reason\n * (because the fragment identifier is never sent to the server), including some\n * shared hosting environments that do not provide fine-grained controls over\n * which pages are served at which URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#hashhistory\n */\nexport interface HashHistory extends UrlHistory {}\n\nexport type HashHistoryOptions = UrlHistoryOptions;\n\n/**\n * Hash history stores the location in window.location.hash. This makes it ideal\n * for situations where you don't want to send the location to the server for\n * some reason, either because you do cannot configure it or the URL space is\n * reserved for something else.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createhashhistory\n */\nexport function createHashHistory(\n options: HashHistoryOptions = {}\n): HashHistory {\n function createHashLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n } = parsePath(window.location.hash.substr(1));\n\n // Hash URL should always have a leading / just like window.location.pathname\n // does, so if an app ends up at a route like /#something then we add a\n // leading slash so all of our path-matching behaves the same as if it would\n // in a browser router. This is particularly important when there exists a\n // root splat route () since that matches internally against\n // \"/*\" and we'd expect /#something to 404 in a hash router app.\n if (!pathname.startsWith(\"/\") && !pathname.startsWith(\".\")) {\n pathname = \"/\" + pathname;\n }\n\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createHashHref(window: Window, to: To) {\n let base = window.document.querySelector(\"base\");\n let href = \"\";\n\n if (base && base.getAttribute(\"href\")) {\n let url = window.location.href;\n let hashIndex = url.indexOf(\"#\");\n href = hashIndex === -1 ? url : url.slice(0, hashIndex);\n }\n\n return href + \"#\" + (typeof to === \"string\" ? to : createPath(to));\n }\n\n function validateHashLocation(location: Location, to: To) {\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in hash history.push(${JSON.stringify(\n to\n )})`\n );\n }\n\n return getUrlBasedHistory(\n createHashLocation,\n createHashHref,\n validateHashLocation,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region UTILS\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * @private\n */\nexport function invariant(value: boolean, message?: string): asserts value;\nexport function invariant(\n value: T | null | undefined,\n message?: string\n): asserts value is T;\nexport function invariant(value: any, message?: string) {\n if (value === false || value === null || typeof value === \"undefined\") {\n throw new Error(message);\n }\n}\n\nexport function warning(cond: any, message: string) {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging history!\n //\n // This error is thrown as a convenience, so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\nfunction createKey() {\n return Math.random().toString(36).substr(2, 8);\n}\n\n/**\n * For browser-based histories, we combine the state and key into an object\n */\nfunction getHistoryState(location: Location, index: number): HistoryState {\n return {\n usr: location.state,\n key: location.key,\n idx: index,\n };\n}\n\n/**\n * Creates a Location object with a unique key from the given Path\n */\nexport function createLocation(\n current: string | Location,\n to: To,\n state: any = null,\n key?: string\n): Readonly {\n let location: Readonly = {\n pathname: typeof current === \"string\" ? current : current.pathname,\n search: \"\",\n hash: \"\",\n ...(typeof to === \"string\" ? parsePath(to) : to),\n state,\n // TODO: This could be cleaned up. push/replace should probably just take\n // full Locations now and avoid the need to run through this flow at all\n // But that's a pretty big refactor to the current test suite so going to\n // keep as is for the time being and just let any incoming keys take precedence\n key: (to && (to as Location).key) || key || createKey(),\n };\n return location;\n}\n\n/**\n * Creates a string URL path from the given pathname, search, and hash components.\n */\nexport function createPath({\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n}: Partial) {\n if (search && search !== \"?\")\n pathname += search.charAt(0) === \"?\" ? search : \"?\" + search;\n if (hash && hash !== \"#\")\n pathname += hash.charAt(0) === \"#\" ? hash : \"#\" + hash;\n return pathname;\n}\n\n/**\n * Parses a string URL path into its separate pathname, search, and hash components.\n */\nexport function parsePath(path: string): Partial {\n let parsedPath: Partial = {};\n\n if (path) {\n let hashIndex = path.indexOf(\"#\");\n if (hashIndex >= 0) {\n parsedPath.hash = path.substr(hashIndex);\n path = path.substr(0, hashIndex);\n }\n\n let searchIndex = path.indexOf(\"?\");\n if (searchIndex >= 0) {\n parsedPath.search = path.substr(searchIndex);\n path = path.substr(0, searchIndex);\n }\n\n if (path) {\n parsedPath.pathname = path;\n }\n }\n\n return parsedPath;\n}\n\nexport interface UrlHistory extends History {}\n\nexport type UrlHistoryOptions = {\n window?: Window;\n v5Compat?: boolean;\n};\n\nfunction getUrlBasedHistory(\n getLocation: (window: Window, globalHistory: Window[\"history\"]) => Location,\n createHref: (window: Window, to: To) => string,\n validateLocation: ((location: Location, to: To) => void) | null,\n options: UrlHistoryOptions = {}\n): UrlHistory {\n let { window = document.defaultView!, v5Compat = false } = options;\n let globalHistory = window.history;\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n let index = getIndex()!;\n // Index should only be null when we initialize. If not, it's because the\n // user called history.pushState or history.replaceState directly, in which\n // case we should log a warning as it will result in bugs.\n if (index == null) {\n index = 0;\n globalHistory.replaceState({ ...globalHistory.state, idx: index }, \"\");\n }\n\n function getIndex(): number {\n let state = globalHistory.state || { idx: null };\n return state.idx;\n }\n\n function handlePop() {\n action = Action.Pop;\n let nextIndex = getIndex();\n let delta = nextIndex == null ? null : nextIndex - index;\n index = nextIndex;\n if (listener) {\n listener({ action, location: history.location, delta });\n }\n }\n\n function push(to: To, state?: any) {\n action = Action.Push;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex() + 1;\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n\n // try...catch because iOS limits us to 100 pushState calls :/\n try {\n globalHistory.pushState(historyState, \"\", url);\n } catch (error) {\n // If the exception is because `state` can't be serialized, let that throw\n // outwards just like a replace call would so the dev knows the cause\n // https://html.spec.whatwg.org/multipage/nav-history-apis.html#shared-history-push/replace-state-steps\n // https://html.spec.whatwg.org/multipage/structured-data.html#structuredserializeinternal\n if (error instanceof DOMException && error.name === \"DataCloneError\") {\n throw error;\n }\n // They are going to lose state here, but there is no real\n // way to warn them about it since the page will refresh...\n window.location.assign(url);\n }\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 1 });\n }\n }\n\n function replace(to: To, state?: any) {\n action = Action.Replace;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex();\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n globalHistory.replaceState(historyState, \"\", url);\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 0 });\n }\n }\n\n function createURL(to: To): URL {\n // window.location.origin is \"null\" (the literal string value) in Firefox\n // under certain conditions, notably when serving from a local HTML file\n // See https://bugzilla.mozilla.org/show_bug.cgi?id=878297\n let base =\n window.location.origin !== \"null\"\n ? window.location.origin\n : window.location.href;\n\n let href = typeof to === \"string\" ? to : createPath(to);\n // Treating this as a full URL will strip any trailing spaces so we need to\n // pre-encode them since they might be part of a matching splat param from\n // an ancestor route\n href = href.replace(/ $/, \"%20\");\n invariant(\n base,\n `No window.location.(origin|href) available to create URL for href: ${href}`\n );\n return new URL(href, base);\n }\n\n let history: History = {\n get action() {\n return action;\n },\n get location() {\n return getLocation(window, globalHistory);\n },\n listen(fn: Listener) {\n if (listener) {\n throw new Error(\"A history only accepts one active listener\");\n }\n window.addEventListener(PopStateEventType, handlePop);\n listener = fn;\n\n return () => {\n window.removeEventListener(PopStateEventType, handlePop);\n listener = null;\n };\n },\n createHref(to) {\n return createHref(window, to);\n },\n createURL,\n encodeLocation(to) {\n // Encode a Location the same way window.location would\n let url = createURL(to);\n return {\n pathname: url.pathname,\n search: url.search,\n hash: url.hash,\n };\n },\n push,\n replace,\n go(n) {\n return globalHistory.go(n);\n },\n };\n\n return history;\n}\n\n//#endregion\n","import type { Location, Path, To } from \"./history\";\nimport { invariant, parsePath, warning } from \"./history\";\n\n/**\n * Map of routeId -> data returned from a loader/action/error\n */\nexport interface RouteData {\n [routeId: string]: any;\n}\n\nexport enum ResultType {\n data = \"data\",\n deferred = \"deferred\",\n redirect = \"redirect\",\n error = \"error\",\n}\n\n/**\n * Successful result from a loader or action\n */\nexport interface SuccessResult {\n type: ResultType.data;\n data: unknown;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Successful defer() result from a loader or action\n */\nexport interface DeferredResult {\n type: ResultType.deferred;\n deferredData: DeferredData;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Redirect result from a loader or action\n */\nexport interface RedirectResult {\n type: ResultType.redirect;\n // We keep the raw Response for redirects so we can return it verbatim\n response: Response;\n}\n\n/**\n * Unsuccessful result from a loader or action\n */\nexport interface ErrorResult {\n type: ResultType.error;\n error: unknown;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Result from a loader or action - potentially successful or unsuccessful\n */\nexport type DataResult =\n | SuccessResult\n | DeferredResult\n | RedirectResult\n | ErrorResult;\n\n/**\n * Result from a loader or action called via dataStrategy\n */\nexport interface HandlerResult {\n type: \"data\" | \"error\";\n result: unknown; // data, Error, Response, DeferredData\n status?: number;\n}\n\ntype LowerCaseFormMethod = \"get\" | \"post\" | \"put\" | \"patch\" | \"delete\";\ntype UpperCaseFormMethod = Uppercase;\n\n/**\n * Users can specify either lowercase or uppercase form methods on `
`,\n * useSubmit(), ``, etc.\n */\nexport type HTMLFormMethod = LowerCaseFormMethod | UpperCaseFormMethod;\n\n/**\n * Active navigation/fetcher form methods are exposed in lowercase on the\n * RouterState\n */\nexport type FormMethod = LowerCaseFormMethod;\nexport type MutationFormMethod = Exclude;\n\n/**\n * In v7, active navigation/fetcher form methods are exposed in uppercase on the\n * RouterState. This is to align with the normalization done via fetch().\n */\nexport type V7_FormMethod = UpperCaseFormMethod;\nexport type V7_MutationFormMethod = Exclude;\n\nexport type FormEncType =\n | \"application/x-www-form-urlencoded\"\n | \"multipart/form-data\"\n | \"application/json\"\n | \"text/plain\";\n\n// Thanks https://github.com/sindresorhus/type-fest!\ntype JsonObject = { [Key in string]: JsonValue } & {\n [Key in string]?: JsonValue | undefined;\n};\ntype JsonArray = JsonValue[] | readonly JsonValue[];\ntype JsonPrimitive = string | number | boolean | null;\ntype JsonValue = JsonPrimitive | JsonObject | JsonArray;\n\n/**\n * @private\n * Internal interface to pass around for action submissions, not intended for\n * external consumption\n */\nexport type Submission =\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: FormData;\n json: undefined;\n text: undefined;\n }\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: undefined;\n json: JsonValue;\n text: undefined;\n }\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: undefined;\n json: undefined;\n text: string;\n };\n\n/**\n * @private\n * Arguments passed to route loader/action functions. Same for now but we keep\n * this as a private implementation detail in case they diverge in the future.\n */\ninterface DataFunctionArgs {\n request: Request;\n params: Params;\n context?: Context;\n}\n\n// TODO: (v7) Change the defaults from any to unknown in and remove Remix wrappers:\n// ActionFunction, ActionFunctionArgs, LoaderFunction, LoaderFunctionArgs\n// Also, make them a type alias instead of an interface\n\n/**\n * Arguments passed to loader functions\n */\nexport interface LoaderFunctionArgs\n extends DataFunctionArgs {}\n\n/**\n * Arguments passed to action functions\n */\nexport interface ActionFunctionArgs\n extends DataFunctionArgs {}\n\n/**\n * Loaders and actions can return anything except `undefined` (`null` is a\n * valid return value if there is no data to return). Responses are preferred\n * and will ease any future migration to Remix\n */\ntype DataFunctionValue = Response | NonNullable | null;\n\ntype DataFunctionReturnValue = Promise | DataFunctionValue;\n\n/**\n * Route loader function signature\n */\nexport type LoaderFunction = {\n (\n args: LoaderFunctionArgs,\n handlerCtx?: unknown\n ): DataFunctionReturnValue;\n} & { hydrate?: boolean };\n\n/**\n * Route action function signature\n */\nexport interface ActionFunction {\n (\n args: ActionFunctionArgs,\n handlerCtx?: unknown\n ): DataFunctionReturnValue;\n}\n\n/**\n * Arguments passed to shouldRevalidate function\n */\nexport interface ShouldRevalidateFunctionArgs {\n currentUrl: URL;\n currentParams: AgnosticDataRouteMatch[\"params\"];\n nextUrl: URL;\n nextParams: AgnosticDataRouteMatch[\"params\"];\n formMethod?: Submission[\"formMethod\"];\n formAction?: Submission[\"formAction\"];\n formEncType?: Submission[\"formEncType\"];\n text?: Submission[\"text\"];\n formData?: Submission[\"formData\"];\n json?: Submission[\"json\"];\n unstable_actionStatus?: number;\n actionResult?: any;\n defaultShouldRevalidate: boolean;\n}\n\n/**\n * Route shouldRevalidate function signature. This runs after any submission\n * (navigation or fetcher), so we flatten the navigation/fetcher submission\n * onto the arguments. It shouldn't matter whether it came from a navigation\n * or a fetcher, what really matters is the URLs and the formData since loaders\n * have to re-run based on the data models that were potentially mutated.\n */\nexport interface ShouldRevalidateFunction {\n (args: ShouldRevalidateFunctionArgs): boolean;\n}\n\n/**\n * Function provided by the framework-aware layers to set `hasErrorBoundary`\n * from the framework-aware `errorElement` prop\n *\n * @deprecated Use `mapRouteProperties` instead\n */\nexport interface DetectErrorBoundaryFunction {\n (route: AgnosticRouteObject): boolean;\n}\n\nexport interface DataStrategyMatch\n extends AgnosticRouteMatch {\n shouldLoad: boolean;\n resolve: (\n handlerOverride?: (\n handler: (ctx?: unknown) => DataFunctionReturnValue\n ) => Promise\n ) => Promise;\n}\n\nexport interface DataStrategyFunctionArgs\n extends DataFunctionArgs {\n matches: DataStrategyMatch[];\n}\n\nexport interface DataStrategyFunction {\n (args: DataStrategyFunctionArgs): Promise;\n}\n\n/**\n * Function provided by the framework-aware layers to set any framework-specific\n * properties from framework-agnostic properties\n */\nexport interface MapRoutePropertiesFunction {\n (route: AgnosticRouteObject): {\n hasErrorBoundary: boolean;\n } & Record;\n}\n\n/**\n * Keys we cannot change from within a lazy() function. We spread all other keys\n * onto the route. Either they're meaningful to the router, or they'll get\n * ignored.\n */\nexport type ImmutableRouteKey =\n | \"lazy\"\n | \"caseSensitive\"\n | \"path\"\n | \"id\"\n | \"index\"\n | \"children\";\n\nexport const immutableRouteKeys = new Set([\n \"lazy\",\n \"caseSensitive\",\n \"path\",\n \"id\",\n \"index\",\n \"children\",\n]);\n\ntype RequireOne = Exclude<\n {\n [K in keyof T]: K extends Key ? Omit & Required> : never;\n }[keyof T],\n undefined\n>;\n\n/**\n * lazy() function to load a route definition, which can add non-matching\n * related properties to a route\n */\nexport interface LazyRouteFunction {\n (): Promise>>;\n}\n\n/**\n * Base RouteObject with common props shared by all types of routes\n */\ntype AgnosticBaseRouteObject = {\n caseSensitive?: boolean;\n path?: string;\n id?: string;\n loader?: LoaderFunction | boolean;\n action?: ActionFunction | boolean;\n hasErrorBoundary?: boolean;\n shouldRevalidate?: ShouldRevalidateFunction;\n handle?: any;\n lazy?: LazyRouteFunction;\n};\n\n/**\n * Index routes must not have children\n */\nexport type AgnosticIndexRouteObject = AgnosticBaseRouteObject & {\n children?: undefined;\n index: true;\n};\n\n/**\n * Non-index routes may have children, but cannot have index\n */\nexport type AgnosticNonIndexRouteObject = AgnosticBaseRouteObject & {\n children?: AgnosticRouteObject[];\n index?: false;\n};\n\n/**\n * A route object represents a logical route, with (optionally) its child\n * routes organized in a tree-like structure.\n */\nexport type AgnosticRouteObject =\n | AgnosticIndexRouteObject\n | AgnosticNonIndexRouteObject;\n\nexport type AgnosticDataIndexRouteObject = AgnosticIndexRouteObject & {\n id: string;\n};\n\nexport type AgnosticDataNonIndexRouteObject = AgnosticNonIndexRouteObject & {\n children?: AgnosticDataRouteObject[];\n id: string;\n};\n\n/**\n * A data route object, which is just a RouteObject with a required unique ID\n */\nexport type AgnosticDataRouteObject =\n | AgnosticDataIndexRouteObject\n | AgnosticDataNonIndexRouteObject;\n\nexport type RouteManifest = Record;\n\n// Recursive helper for finding path parameters in the absence of wildcards\ntype _PathParam =\n // split path into individual path segments\n Path extends `${infer L}/${infer R}`\n ? _PathParam | _PathParam\n : // find params after `:`\n Path extends `:${infer Param}`\n ? Param extends `${infer Optional}?`\n ? Optional\n : Param\n : // otherwise, there aren't any params present\n never;\n\n/**\n * Examples:\n * \"/a/b/*\" -> \"*\"\n * \":a\" -> \"a\"\n * \"/a/:b\" -> \"b\"\n * \"/a/blahblahblah:b\" -> \"b\"\n * \"/:a/:b\" -> \"a\" | \"b\"\n * \"/:a/b/:c/*\" -> \"a\" | \"c\" | \"*\"\n */\nexport type PathParam =\n // check if path is just a wildcard\n Path extends \"*\" | \"/*\"\n ? \"*\"\n : // look for wildcard at the end of the path\n Path extends `${infer Rest}/*`\n ? \"*\" | _PathParam\n : // look for params in the absence of wildcards\n _PathParam;\n\n// Attempt to parse the given string segment. If it fails, then just return the\n// plain string type as a default fallback. Otherwise, return the union of the\n// parsed string literals that were referenced as dynamic segments in the route.\nexport type ParamParseKey =\n // if you could not find path params, fallback to `string`\n [PathParam] extends [never] ? string : PathParam;\n\n/**\n * The parameters that were parsed from the URL path.\n */\nexport type Params = {\n readonly [key in Key]: string | undefined;\n};\n\n/**\n * A RouteMatch contains info about how a route matched a URL.\n */\nexport interface AgnosticRouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The route object that was used to match.\n */\n route: RouteObjectType;\n}\n\nexport interface AgnosticDataRouteMatch\n extends AgnosticRouteMatch {}\n\nfunction isIndexRoute(\n route: AgnosticRouteObject\n): route is AgnosticIndexRouteObject {\n return route.index === true;\n}\n\n// Walk the route tree generating unique IDs where necessary, so we are working\n// solely with AgnosticDataRouteObject's within the Router\nexport function convertRoutesToDataRoutes(\n routes: AgnosticRouteObject[],\n mapRouteProperties: MapRoutePropertiesFunction,\n parentPath: number[] = [],\n manifest: RouteManifest = {}\n): AgnosticDataRouteObject[] {\n return routes.map((route, index) => {\n let treePath = [...parentPath, index];\n let id = typeof route.id === \"string\" ? route.id : treePath.join(\"-\");\n invariant(\n route.index !== true || !route.children,\n `Cannot specify children on an index route`\n );\n invariant(\n !manifest[id],\n `Found a route id collision on id \"${id}\". Route ` +\n \"id's must be globally unique within Data Router usages\"\n );\n\n if (isIndexRoute(route)) {\n let indexRoute: AgnosticDataIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n };\n manifest[id] = indexRoute;\n return indexRoute;\n } else {\n let pathOrLayoutRoute: AgnosticDataNonIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n children: undefined,\n };\n manifest[id] = pathOrLayoutRoute;\n\n if (route.children) {\n pathOrLayoutRoute.children = convertRoutesToDataRoutes(\n route.children,\n mapRouteProperties,\n treePath,\n manifest\n );\n }\n\n return pathOrLayoutRoute;\n }\n });\n}\n\n/**\n * Matches the given routes to a location and returns the match data.\n *\n * @see https://reactrouter.com/utils/match-routes\n */\nexport function matchRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n locationArg: Partial | string,\n basename = \"/\"\n): AgnosticRouteMatch[] | null {\n let location =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n let pathname = stripBasename(location.pathname || \"/\", basename);\n\n if (pathname == null) {\n return null;\n }\n\n let branches = flattenRoutes(routes);\n rankRouteBranches(branches);\n\n let matches = null;\n for (let i = 0; matches == null && i < branches.length; ++i) {\n // Incoming pathnames are generally encoded from either window.location\n // or from router.navigate, but we want to match against the unencoded\n // paths in the route definitions. Memory router locations won't be\n // encoded here but there also shouldn't be anything to decode so this\n // should be a safe operation. This avoids needing matchRoutes to be\n // history-aware.\n let decoded = decodePath(pathname);\n matches = matchRouteBranch(branches[i], decoded);\n }\n\n return matches;\n}\n\nexport interface UIMatch {\n id: string;\n pathname: string;\n params: AgnosticRouteMatch[\"params\"];\n data: Data;\n handle: Handle;\n}\n\nexport function convertRouteMatchToUiMatch(\n match: AgnosticDataRouteMatch,\n loaderData: RouteData\n): UIMatch {\n let { route, pathname, params } = match;\n return {\n id: route.id,\n pathname,\n params,\n data: loaderData[route.id],\n handle: route.handle,\n };\n}\n\ninterface RouteMeta<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n relativePath: string;\n caseSensitive: boolean;\n childrenIndex: number;\n route: RouteObjectType;\n}\n\ninterface RouteBranch<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n path: string;\n score: number;\n routesMeta: RouteMeta[];\n}\n\nfunction flattenRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n branches: RouteBranch[] = [],\n parentsMeta: RouteMeta[] = [],\n parentPath = \"\"\n): RouteBranch[] {\n let flattenRoute = (\n route: RouteObjectType,\n index: number,\n relativePath?: string\n ) => {\n let meta: RouteMeta = {\n relativePath:\n relativePath === undefined ? route.path || \"\" : relativePath,\n caseSensitive: route.caseSensitive === true,\n childrenIndex: index,\n route,\n };\n\n if (meta.relativePath.startsWith(\"/\")) {\n invariant(\n meta.relativePath.startsWith(parentPath),\n `Absolute route path \"${meta.relativePath}\" nested under path ` +\n `\"${parentPath}\" is not valid. An absolute child route path ` +\n `must start with the combined path of all its parent routes.`\n );\n\n meta.relativePath = meta.relativePath.slice(parentPath.length);\n }\n\n let path = joinPaths([parentPath, meta.relativePath]);\n let routesMeta = parentsMeta.concat(meta);\n\n // Add the children before adding this route to the array, so we traverse the\n // route tree depth-first and child routes appear before their parents in\n // the \"flattened\" version.\n if (route.children && route.children.length > 0) {\n invariant(\n // Our types know better, but runtime JS may not!\n // @ts-expect-error\n route.index !== true,\n `Index routes must not have child routes. Please remove ` +\n `all child routes from route path \"${path}\".`\n );\n\n flattenRoutes(route.children, branches, routesMeta, path);\n }\n\n // Routes without a path shouldn't ever match by themselves unless they are\n // index routes, so don't add them to the list of possible branches.\n if (route.path == null && !route.index) {\n return;\n }\n\n branches.push({\n path,\n score: computeScore(path, route.index),\n routesMeta,\n });\n };\n routes.forEach((route, index) => {\n // coarse-grain check for optional params\n if (route.path === \"\" || !route.path?.includes(\"?\")) {\n flattenRoute(route, index);\n } else {\n for (let exploded of explodeOptionalSegments(route.path)) {\n flattenRoute(route, index, exploded);\n }\n }\n });\n\n return branches;\n}\n\n/**\n * Computes all combinations of optional path segments for a given path,\n * excluding combinations that are ambiguous and of lower priority.\n *\n * For example, `/one/:two?/three/:four?/:five?` explodes to:\n * - `/one/three`\n * - `/one/:two/three`\n * - `/one/three/:four`\n * - `/one/three/:five`\n * - `/one/:two/three/:four`\n * - `/one/:two/three/:five`\n * - `/one/three/:four/:five`\n * - `/one/:two/three/:four/:five`\n */\nfunction explodeOptionalSegments(path: string): string[] {\n let segments = path.split(\"/\");\n if (segments.length === 0) return [];\n\n let [first, ...rest] = segments;\n\n // Optional path segments are denoted by a trailing `?`\n let isOptional = first.endsWith(\"?\");\n // Compute the corresponding required segment: `foo?` -> `foo`\n let required = first.replace(/\\?$/, \"\");\n\n if (rest.length === 0) {\n // Intepret empty string as omitting an optional segment\n // `[\"one\", \"\", \"three\"]` corresponds to omitting `:two` from `/one/:two?/three` -> `/one/three`\n return isOptional ? [required, \"\"] : [required];\n }\n\n let restExploded = explodeOptionalSegments(rest.join(\"/\"));\n\n let result: string[] = [];\n\n // All child paths with the prefix. Do this for all children before the\n // optional version for all children, so we get consistent ordering where the\n // parent optional aspect is preferred as required. Otherwise, we can get\n // child sections interspersed where deeper optional segments are higher than\n // parent optional segments, where for example, /:two would explode _earlier_\n // then /:one. By always including the parent as required _for all children_\n // first, we avoid this issue\n result.push(\n ...restExploded.map((subpath) =>\n subpath === \"\" ? required : [required, subpath].join(\"/\")\n )\n );\n\n // Then, if this is an optional value, add all child versions without\n if (isOptional) {\n result.push(...restExploded);\n }\n\n // for absolute paths, ensure `/` instead of empty segment\n return result.map((exploded) =>\n path.startsWith(\"/\") && exploded === \"\" ? \"/\" : exploded\n );\n}\n\nfunction rankRouteBranches(branches: RouteBranch[]): void {\n branches.sort((a, b) =>\n a.score !== b.score\n ? b.score - a.score // Higher score first\n : compareIndexes(\n a.routesMeta.map((meta) => meta.childrenIndex),\n b.routesMeta.map((meta) => meta.childrenIndex)\n )\n );\n}\n\nconst paramRe = /^:[\\w-]+$/;\nconst dynamicSegmentValue = 3;\nconst indexRouteValue = 2;\nconst emptySegmentValue = 1;\nconst staticSegmentValue = 10;\nconst splatPenalty = -2;\nconst isSplat = (s: string) => s === \"*\";\n\nfunction computeScore(path: string, index: boolean | undefined): number {\n let segments = path.split(\"/\");\n let initialScore = segments.length;\n if (segments.some(isSplat)) {\n initialScore += splatPenalty;\n }\n\n if (index) {\n initialScore += indexRouteValue;\n }\n\n return segments\n .filter((s) => !isSplat(s))\n .reduce(\n (score, segment) =>\n score +\n (paramRe.test(segment)\n ? dynamicSegmentValue\n : segment === \"\"\n ? emptySegmentValue\n : staticSegmentValue),\n initialScore\n );\n}\n\nfunction compareIndexes(a: number[], b: number[]): number {\n let siblings =\n a.length === b.length && a.slice(0, -1).every((n, i) => n === b[i]);\n\n return siblings\n ? // If two routes are siblings, we should try to match the earlier sibling\n // first. This allows people to have fine-grained control over the matching\n // behavior by simply putting routes with identical paths in the order they\n // want them tried.\n a[a.length - 1] - b[b.length - 1]\n : // Otherwise, it doesn't really make sense to rank non-siblings by index,\n // so they sort equally.\n 0;\n}\n\nfunction matchRouteBranch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n branch: RouteBranch,\n pathname: string\n): AgnosticRouteMatch[] | null {\n let { routesMeta } = branch;\n\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches: AgnosticRouteMatch[] = [];\n for (let i = 0; i < routesMeta.length; ++i) {\n let meta = routesMeta[i];\n let end = i === routesMeta.length - 1;\n let remainingPathname =\n matchedPathname === \"/\"\n ? pathname\n : pathname.slice(matchedPathname.length) || \"/\";\n let match = matchPath(\n { path: meta.relativePath, caseSensitive: meta.caseSensitive, end },\n remainingPathname\n );\n\n if (!match) return null;\n\n Object.assign(matchedParams, match.params);\n\n let route = meta.route;\n\n matches.push({\n // TODO: Can this as be avoided?\n params: matchedParams as Params,\n pathname: joinPaths([matchedPathname, match.pathname]),\n pathnameBase: normalizePathname(\n joinPaths([matchedPathname, match.pathnameBase])\n ),\n route,\n });\n\n if (match.pathnameBase !== \"/\") {\n matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n }\n }\n\n return matches;\n}\n\n/**\n * Returns a path with params interpolated.\n *\n * @see https://reactrouter.com/utils/generate-path\n */\nexport function generatePath(\n originalPath: Path,\n params: {\n [key in PathParam]: string | null;\n } = {} as any\n): string {\n let path: string = originalPath;\n if (path.endsWith(\"*\") && path !== \"*\" && !path.endsWith(\"/*\")) {\n warning(\n false,\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n path = path.replace(/\\*$/, \"/*\") as Path;\n }\n\n // ensure `/` is added at the beginning if the path is absolute\n const prefix = path.startsWith(\"/\") ? \"/\" : \"\";\n\n const stringify = (p: any) =>\n p == null ? \"\" : typeof p === \"string\" ? p : String(p);\n\n const segments = path\n .split(/\\/+/)\n .map((segment, index, array) => {\n const isLastSegment = index === array.length - 1;\n\n // only apply the splat if it's the last segment\n if (isLastSegment && segment === \"*\") {\n const star = \"*\" as PathParam;\n // Apply the splat\n return stringify(params[star]);\n }\n\n const keyMatch = segment.match(/^:([\\w-]+)(\\??)$/);\n if (keyMatch) {\n const [, key, optional] = keyMatch;\n let param = params[key as PathParam];\n invariant(optional === \"?\" || param != null, `Missing \":${key}\" param`);\n return stringify(param);\n }\n\n // Remove any optional markers from optional static segments\n return segment.replace(/\\?$/g, \"\");\n })\n // Remove empty segments\n .filter((segment) => !!segment);\n\n return prefix + segments.join(\"/\");\n}\n\n/**\n * A PathPattern is used to match on some portion of a URL pathname.\n */\nexport interface PathPattern {\n /**\n * A string to match against a URL pathname. May contain `:id`-style segments\n * to indicate placeholders for dynamic parameters. May also end with `/*` to\n * indicate matching the rest of the URL pathname.\n */\n path: Path;\n /**\n * Should be `true` if the static portions of the `path` should be matched in\n * the same case.\n */\n caseSensitive?: boolean;\n /**\n * Should be `true` if this pattern should match the entire URL pathname.\n */\n end?: boolean;\n}\n\n/**\n * A PathMatch contains info about how a PathPattern matched on a URL pathname.\n */\nexport interface PathMatch {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The pattern that was used to match.\n */\n pattern: PathPattern;\n}\n\ntype Mutable = {\n -readonly [P in keyof T]: T[P];\n};\n\n/**\n * Performs pattern matching on a URL pathname and returns information about\n * the match.\n *\n * @see https://reactrouter.com/utils/match-path\n */\nexport function matchPath<\n ParamKey extends ParamParseKey,\n Path extends string\n>(\n pattern: PathPattern | Path,\n pathname: string\n): PathMatch | null {\n if (typeof pattern === \"string\") {\n pattern = { path: pattern, caseSensitive: false, end: true };\n }\n\n let [matcher, compiledParams] = compilePath(\n pattern.path,\n pattern.caseSensitive,\n pattern.end\n );\n\n let match = pathname.match(matcher);\n if (!match) return null;\n\n let matchedPathname = match[0];\n let pathnameBase = matchedPathname.replace(/(.)\\/+$/, \"$1\");\n let captureGroups = match.slice(1);\n let params: Params = compiledParams.reduce>(\n (memo, { paramName, isOptional }, index) => {\n // We need to compute the pathnameBase here using the raw splat value\n // instead of using params[\"*\"] later because it will be decoded then\n if (paramName === \"*\") {\n let splatValue = captureGroups[index] || \"\";\n pathnameBase = matchedPathname\n .slice(0, matchedPathname.length - splatValue.length)\n .replace(/(.)\\/+$/, \"$1\");\n }\n\n const value = captureGroups[index];\n if (isOptional && !value) {\n memo[paramName] = undefined;\n } else {\n memo[paramName] = (value || \"\").replace(/%2F/g, \"/\");\n }\n return memo;\n },\n {}\n );\n\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern,\n };\n}\n\ntype CompiledPathParam = { paramName: string; isOptional?: boolean };\n\nfunction compilePath(\n path: string,\n caseSensitive = false,\n end = true\n): [RegExp, CompiledPathParam[]] {\n warning(\n path === \"*\" || !path.endsWith(\"*\") || path.endsWith(\"/*\"),\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n\n let params: CompiledPathParam[] = [];\n let regexpSource =\n \"^\" +\n path\n .replace(/\\/*\\*?$/, \"\") // Ignore trailing / and /*, we'll handle it below\n .replace(/^\\/*/, \"/\") // Make sure it has a leading /\n .replace(/[\\\\.*+^${}|()[\\]]/g, \"\\\\$&\") // Escape special regex chars\n .replace(\n /\\/:([\\w-]+)(\\?)?/g,\n (_: string, paramName: string, isOptional) => {\n params.push({ paramName, isOptional: isOptional != null });\n return isOptional ? \"/?([^\\\\/]+)?\" : \"/([^\\\\/]+)\";\n }\n );\n\n if (path.endsWith(\"*\")) {\n params.push({ paramName: \"*\" });\n regexpSource +=\n path === \"*\" || path === \"/*\"\n ? \"(.*)$\" // Already matched the initial /, just match the rest\n : \"(?:\\\\/(.+)|\\\\/*)$\"; // Don't include the / in params[\"*\"]\n } else if (end) {\n // When matching to the end, ignore trailing slashes\n regexpSource += \"\\\\/*$\";\n } else if (path !== \"\" && path !== \"/\") {\n // If our path is non-empty and contains anything beyond an initial slash,\n // then we have _some_ form of path in our regex, so we should expect to\n // match only if we find the end of this path segment. Look for an optional\n // non-captured trailing slash (to match a portion of the URL) or the end\n // of the path (if we've matched to the end). We used to do this with a\n // word boundary but that gives false positives on routes like\n // /user-preferences since `-` counts as a word boundary.\n regexpSource += \"(?:(?=\\\\/|$))\";\n } else {\n // Nothing to match for \"\" or \"/\"\n }\n\n let matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n\n return [matcher, params];\n}\n\nfunction decodePath(value: string) {\n try {\n return value\n .split(\"/\")\n .map((v) => decodeURIComponent(v).replace(/\\//g, \"%2F\"))\n .join(\"/\");\n } catch (error) {\n warning(\n false,\n `The URL path \"${value}\" could not be decoded because it is is a ` +\n `malformed URL segment. This is probably due to a bad percent ` +\n `encoding (${error}).`\n );\n\n return value;\n }\n}\n\n/**\n * @private\n */\nexport function stripBasename(\n pathname: string,\n basename: string\n): string | null {\n if (basename === \"/\") return pathname;\n\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\n }\n\n // We want to leave trailing slash behavior in the user's control, so if they\n // specify a basename with a trailing slash, we should support it\n let startIndex = basename.endsWith(\"/\")\n ? basename.length - 1\n : basename.length;\n let nextChar = pathname.charAt(startIndex);\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n\n return pathname.slice(startIndex) || \"/\";\n}\n\n/**\n * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/utils/resolve-path\n */\nexport function resolvePath(to: To, fromPathname = \"/\"): Path {\n let {\n pathname: toPathname,\n search = \"\",\n hash = \"\",\n } = typeof to === \"string\" ? parsePath(to) : to;\n\n let pathname = toPathname\n ? toPathname.startsWith(\"/\")\n ? toPathname\n : resolvePathname(toPathname, fromPathname)\n : fromPathname;\n\n return {\n pathname,\n search: normalizeSearch(search),\n hash: normalizeHash(hash),\n };\n}\n\nfunction resolvePathname(relativePath: string, fromPathname: string): string {\n let segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n let relativeSegments = relativePath.split(\"/\");\n\n relativeSegments.forEach((segment) => {\n if (segment === \"..\") {\n // Keep the root \"\" segment so the pathname starts at /\n if (segments.length > 1) segments.pop();\n } else if (segment !== \".\") {\n segments.push(segment);\n }\n });\n\n return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\n\nfunction getInvalidPathError(\n char: string,\n field: string,\n dest: string,\n path: Partial\n) {\n return (\n `Cannot include a '${char}' character in a manually specified ` +\n `\\`to.${field}\\` field [${JSON.stringify(\n path\n )}]. Please separate it out to the ` +\n `\\`to.${dest}\\` field. Alternatively you may provide the full path as ` +\n `a string in and the router will parse it for you.`\n );\n}\n\n/**\n * @private\n *\n * When processing relative navigation we want to ignore ancestor routes that\n * do not contribute to the path, such that index/pathless layout routes don't\n * interfere.\n *\n * For example, when moving a route element into an index route and/or a\n * pathless layout route, relative link behavior contained within should stay\n * the same. Both of the following examples should link back to the root:\n *\n * \n * \n * \n *\n * \n * \n * }> // <-- Does not contribute\n * // <-- Does not contribute\n * \n * \n */\nexport function getPathContributingMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[]) {\n return matches.filter(\n (match, index) =>\n index === 0 || (match.route.path && match.route.path.length > 0)\n );\n}\n\n// Return the array of pathnames for the current route matches - used to\n// generate the routePathnames input for resolveTo()\nexport function getResolveToMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[], v7_relativeSplatPath: boolean) {\n let pathMatches = getPathContributingMatches(matches);\n\n // When v7_relativeSplatPath is enabled, use the full pathname for the leaf\n // match so we include splat values for \".\" links. See:\n // https://github.com/remix-run/react-router/issues/11052#issuecomment-1836589329\n if (v7_relativeSplatPath) {\n return pathMatches.map((match, idx) =>\n idx === matches.length - 1 ? match.pathname : match.pathnameBase\n );\n }\n\n return pathMatches.map((match) => match.pathnameBase);\n}\n\n/**\n * @private\n */\nexport function resolveTo(\n toArg: To,\n routePathnames: string[],\n locationPathname: string,\n isPathRelative = false\n): Path {\n let to: Partial;\n if (typeof toArg === \"string\") {\n to = parsePath(toArg);\n } else {\n to = { ...toArg };\n\n invariant(\n !to.pathname || !to.pathname.includes(\"?\"),\n getInvalidPathError(\"?\", \"pathname\", \"search\", to)\n );\n invariant(\n !to.pathname || !to.pathname.includes(\"#\"),\n getInvalidPathError(\"#\", \"pathname\", \"hash\", to)\n );\n invariant(\n !to.search || !to.search.includes(\"#\"),\n getInvalidPathError(\"#\", \"search\", \"hash\", to)\n );\n }\n\n let isEmptyPath = toArg === \"\" || to.pathname === \"\";\n let toPathname = isEmptyPath ? \"/\" : to.pathname;\n\n let from: string;\n\n // Routing is relative to the current pathname if explicitly requested.\n //\n // If a pathname is explicitly provided in `to`, it should be relative to the\n // route context. This is explained in `Note on `` values` in our\n // migration guide from v5 as a means of disambiguation between `to` values\n // that begin with `/` and those that do not. However, this is problematic for\n // `to` values that do not provide a pathname. `to` can simply be a search or\n // hash string, in which case we should assume that the navigation is relative\n // to the current location's pathname and *not* the route pathname.\n if (toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n\n // With relative=\"route\" (the default), each leading .. segment means\n // \"go up one route\" instead of \"go up one URL segment\". This is a key\n // difference from how works and a major reason we call this a\n // \"to\" value instead of a \"href\".\n if (!isPathRelative && toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n\n to.pathname = toSegments.join(\"/\");\n }\n\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n\n let path = resolvePath(to, from);\n\n // Ensure the pathname has a trailing slash if the original \"to\" had one\n let hasExplicitTrailingSlash =\n toPathname && toPathname !== \"/\" && toPathname.endsWith(\"/\");\n // Or if this was a link to the current path which has a trailing slash\n let hasCurrentTrailingSlash =\n (isEmptyPath || toPathname === \".\") && locationPathname.endsWith(\"/\");\n if (\n !path.pathname.endsWith(\"/\") &&\n (hasExplicitTrailingSlash || hasCurrentTrailingSlash)\n ) {\n path.pathname += \"/\";\n }\n\n return path;\n}\n\n/**\n * @private\n */\nexport function getToPathname(to: To): string | undefined {\n // Empty strings should be treated the same as / paths\n return to === \"\" || (to as Path).pathname === \"\"\n ? \"/\"\n : typeof to === \"string\"\n ? parsePath(to).pathname\n : to.pathname;\n}\n\n/**\n * @private\n */\nexport const joinPaths = (paths: string[]): string =>\n paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n\n/**\n * @private\n */\nexport const normalizePathname = (pathname: string): string =>\n pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n\n/**\n * @private\n */\nexport const normalizeSearch = (search: string): string =>\n !search || search === \"?\"\n ? \"\"\n : search.startsWith(\"?\")\n ? search\n : \"?\" + search;\n\n/**\n * @private\n */\nexport const normalizeHash = (hash: string): string =>\n !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n\nexport type JsonFunction = (\n data: Data,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * This is a shortcut for creating `application/json` responses. Converts `data`\n * to JSON and sets the `Content-Type` header.\n */\nexport const json: JsonFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n let headers = new Headers(responseInit.headers);\n if (!headers.has(\"Content-Type\")) {\n headers.set(\"Content-Type\", \"application/json; charset=utf-8\");\n }\n\n return new Response(JSON.stringify(data), {\n ...responseInit,\n headers,\n });\n};\n\nexport interface TrackedPromise extends Promise {\n _tracked?: boolean;\n _data?: any;\n _error?: any;\n}\n\nexport class AbortedDeferredError extends Error {}\n\nexport class DeferredData {\n private pendingKeysSet: Set = new Set();\n private controller: AbortController;\n private abortPromise: Promise;\n private unlistenAbortSignal: () => void;\n private subscribers: Set<(aborted: boolean, settledKey?: string) => void> =\n new Set();\n data: Record;\n init?: ResponseInit;\n deferredKeys: string[] = [];\n\n constructor(data: Record, responseInit?: ResponseInit) {\n invariant(\n data && typeof data === \"object\" && !Array.isArray(data),\n \"defer() only accepts plain objects\"\n );\n\n // Set up an AbortController + Promise we can race against to exit early\n // cancellation\n let reject: (e: AbortedDeferredError) => void;\n this.abortPromise = new Promise((_, r) => (reject = r));\n this.controller = new AbortController();\n let onAbort = () =>\n reject(new AbortedDeferredError(\"Deferred data aborted\"));\n this.unlistenAbortSignal = () =>\n this.controller.signal.removeEventListener(\"abort\", onAbort);\n this.controller.signal.addEventListener(\"abort\", onAbort);\n\n this.data = Object.entries(data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: this.trackPromise(key, value),\n }),\n {}\n );\n\n if (this.done) {\n // All incoming values were resolved\n this.unlistenAbortSignal();\n }\n\n this.init = responseInit;\n }\n\n private trackPromise(\n key: string,\n value: Promise | unknown\n ): TrackedPromise | unknown {\n if (!(value instanceof Promise)) {\n return value;\n }\n\n this.deferredKeys.push(key);\n this.pendingKeysSet.add(key);\n\n // We store a little wrapper promise that will be extended with\n // _data/_error props upon resolve/reject\n let promise: TrackedPromise = Promise.race([value, this.abortPromise]).then(\n (data) => this.onSettle(promise, key, undefined, data as unknown),\n (error) => this.onSettle(promise, key, error as unknown)\n );\n\n // Register rejection listeners to avoid uncaught promise rejections on\n // errors or aborted deferred values\n promise.catch(() => {});\n\n Object.defineProperty(promise, \"_tracked\", { get: () => true });\n return promise;\n }\n\n private onSettle(\n promise: TrackedPromise,\n key: string,\n error: unknown,\n data?: unknown\n ): unknown {\n if (\n this.controller.signal.aborted &&\n error instanceof AbortedDeferredError\n ) {\n this.unlistenAbortSignal();\n Object.defineProperty(promise, \"_error\", { get: () => error });\n return Promise.reject(error);\n }\n\n this.pendingKeysSet.delete(key);\n\n if (this.done) {\n // Nothing left to abort!\n this.unlistenAbortSignal();\n }\n\n // If the promise was resolved/rejected with undefined, we'll throw an error as you\n // should always resolve with a value or null\n if (error === undefined && data === undefined) {\n let undefinedError = new Error(\n `Deferred data for key \"${key}\" resolved/rejected with \\`undefined\\`, ` +\n `you must resolve/reject with a value or \\`null\\`.`\n );\n Object.defineProperty(promise, \"_error\", { get: () => undefinedError });\n this.emit(false, key);\n return Promise.reject(undefinedError);\n }\n\n if (data === undefined) {\n Object.defineProperty(promise, \"_error\", { get: () => error });\n this.emit(false, key);\n return Promise.reject(error);\n }\n\n Object.defineProperty(promise, \"_data\", { get: () => data });\n this.emit(false, key);\n return data;\n }\n\n private emit(aborted: boolean, settledKey?: string) {\n this.subscribers.forEach((subscriber) => subscriber(aborted, settledKey));\n }\n\n subscribe(fn: (aborted: boolean, settledKey?: string) => void) {\n this.subscribers.add(fn);\n return () => this.subscribers.delete(fn);\n }\n\n cancel() {\n this.controller.abort();\n this.pendingKeysSet.forEach((v, k) => this.pendingKeysSet.delete(k));\n this.emit(true);\n }\n\n async resolveData(signal: AbortSignal) {\n let aborted = false;\n if (!this.done) {\n let onAbort = () => this.cancel();\n signal.addEventListener(\"abort\", onAbort);\n aborted = await new Promise((resolve) => {\n this.subscribe((aborted) => {\n signal.removeEventListener(\"abort\", onAbort);\n if (aborted || this.done) {\n resolve(aborted);\n }\n });\n });\n }\n return aborted;\n }\n\n get done() {\n return this.pendingKeysSet.size === 0;\n }\n\n get unwrappedData() {\n invariant(\n this.data !== null && this.done,\n \"Can only unwrap data on initialized and settled deferreds\"\n );\n\n return Object.entries(this.data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: unwrapTrackedPromise(value),\n }),\n {}\n );\n }\n\n get pendingKeys() {\n return Array.from(this.pendingKeysSet);\n }\n}\n\nfunction isTrackedPromise(value: any): value is TrackedPromise {\n return (\n value instanceof Promise && (value as TrackedPromise)._tracked === true\n );\n}\n\nfunction unwrapTrackedPromise(value: any) {\n if (!isTrackedPromise(value)) {\n return value;\n }\n\n if (value._error) {\n throw value._error;\n }\n return value._data;\n}\n\nexport type DeferFunction = (\n data: Record,\n init?: number | ResponseInit\n) => DeferredData;\n\nexport const defer: DeferFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n return new DeferredData(data, responseInit);\n};\n\nexport type RedirectFunction = (\n url: string,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * A redirect response. Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirect: RedirectFunction = (url, init = 302) => {\n let responseInit = init;\n if (typeof responseInit === \"number\") {\n responseInit = { status: responseInit };\n } else if (typeof responseInit.status === \"undefined\") {\n responseInit.status = 302;\n }\n\n let headers = new Headers(responseInit.headers);\n headers.set(\"Location\", url);\n\n return new Response(null, {\n ...responseInit,\n headers,\n });\n};\n\n/**\n * A redirect response that will force a document reload to the new location.\n * Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirectDocument: RedirectFunction = (url, init) => {\n let response = redirect(url, init);\n response.headers.set(\"X-Remix-Reload-Document\", \"true\");\n return response;\n};\n\nexport type ErrorResponse = {\n status: number;\n statusText: string;\n data: any;\n};\n\n/**\n * @private\n * Utility class we use to hold auto-unwrapped 4xx/5xx Response bodies\n *\n * We don't export the class for public use since it's an implementation\n * detail, but we export the interface above so folks can build their own\n * abstractions around instances via isRouteErrorResponse()\n */\nexport class ErrorResponseImpl implements ErrorResponse {\n status: number;\n statusText: string;\n data: any;\n private error?: Error;\n private internal: boolean;\n\n constructor(\n status: number,\n statusText: string | undefined,\n data: any,\n internal = false\n ) {\n this.status = status;\n this.statusText = statusText || \"\";\n this.internal = internal;\n if (data instanceof Error) {\n this.data = data.toString();\n this.error = data;\n } else {\n this.data = data;\n }\n }\n}\n\n/**\n * Check if the given error is an ErrorResponse generated from a 4xx/5xx\n * Response thrown from an action/loader\n */\nexport function isRouteErrorResponse(error: any): error is ErrorResponse {\n return (\n error != null &&\n typeof error.status === \"number\" &&\n typeof error.statusText === \"string\" &&\n typeof error.internal === \"boolean\" &&\n \"data\" in error\n );\n}\n","import type { History, Location, Path, To } from \"./history\";\nimport {\n Action as HistoryAction,\n createLocation,\n createPath,\n invariant,\n parsePath,\n warning,\n} from \"./history\";\nimport type {\n AgnosticDataRouteMatch,\n AgnosticDataRouteObject,\n DataStrategyMatch,\n AgnosticRouteObject,\n DataResult,\n DataStrategyFunction,\n DataStrategyFunctionArgs,\n DeferredData,\n DeferredResult,\n DetectErrorBoundaryFunction,\n ErrorResult,\n FormEncType,\n FormMethod,\n HTMLFormMethod,\n HandlerResult,\n ImmutableRouteKey,\n MapRoutePropertiesFunction,\n MutationFormMethod,\n RedirectResult,\n RouteData,\n RouteManifest,\n ShouldRevalidateFunctionArgs,\n Submission,\n SuccessResult,\n UIMatch,\n V7_FormMethod,\n V7_MutationFormMethod,\n} from \"./utils\";\nimport {\n ErrorResponseImpl,\n ResultType,\n convertRouteMatchToUiMatch,\n convertRoutesToDataRoutes,\n getPathContributingMatches,\n getResolveToMatches,\n immutableRouteKeys,\n isRouteErrorResponse,\n joinPaths,\n matchRoutes,\n resolveTo,\n stripBasename,\n} from \"./utils\";\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A Router instance manages all navigation and data loading/mutations\n */\nexport interface Router {\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the basename for the router\n */\n get basename(): RouterInit[\"basename\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the future config for the router\n */\n get future(): FutureConfig;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the current state of the router\n */\n get state(): RouterState;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the routes for this router instance\n */\n get routes(): AgnosticDataRouteObject[];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the window associated with the router\n */\n get window(): RouterInit[\"window\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Initialize the router, including adding history listeners and kicking off\n * initial data fetches. Returns a function to cleanup listeners and abort\n * any in-progress loads\n */\n initialize(): Router;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Subscribe to router.state updates\n *\n * @param fn function to call with the new state\n */\n subscribe(fn: RouterSubscriber): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Enable scroll restoration behavior in the router\n *\n * @param savedScrollPositions Object that will manage positions, in case\n * it's being restored from sessionStorage\n * @param getScrollPosition Function to get the active Y scroll position\n * @param getKey Function to get the key to use for restoration\n */\n enableScrollRestoration(\n savedScrollPositions: Record,\n getScrollPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Navigate forward/backward in the history stack\n * @param to Delta to move in the history stack\n */\n navigate(to: number): Promise;\n\n /**\n * Navigate to the given path\n * @param to Path to navigate to\n * @param opts Navigation options (method, submission, etc.)\n */\n navigate(to: To | null, opts?: RouterNavigateOptions): Promise;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a fetcher load/submission\n *\n * @param key Fetcher key\n * @param routeId Route that owns the fetcher\n * @param href href to fetch\n * @param opts Fetcher options, (method, submission, etc.)\n */\n fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterFetchOptions\n ): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a revalidation of all current route loaders and fetcher loads\n */\n revalidate(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to create an href for the given location\n * @param location\n */\n createHref(location: Location | URL): string;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to URL encode a destination path according to the internal\n * history implementation\n * @param to\n */\n encodeLocation(to: To): Path;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get/create a fetcher for the given key\n * @param key\n */\n getFetcher(key: string): Fetcher;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete the fetcher for a given key\n * @param key\n */\n deleteFetcher(key: string): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Cleanup listeners and abort any in-progress loads\n */\n dispose(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get a navigation blocker\n * @param key The identifier for the blocker\n * @param fn The blocker function implementation\n */\n getBlocker(key: string, fn: BlockerFunction): Blocker;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete a navigation blocker\n * @param key The identifier for the blocker\n */\n deleteBlocker(key: string): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * HMR needs to pass in-flight route updates to React Router\n * TODO: Replace this with granular route update APIs (addRoute, updateRoute, deleteRoute)\n */\n _internalSetRoutes(routes: AgnosticRouteObject[]): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal fetch AbortControllers accessed by unit tests\n */\n _internalFetchControllers: Map;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal pending DeferredData instances accessed by unit tests\n */\n _internalActiveDeferreds: Map;\n}\n\n/**\n * State maintained internally by the router. During a navigation, all states\n * reflect the the \"old\" location unless otherwise noted.\n */\nexport interface RouterState {\n /**\n * The action of the most recent navigation\n */\n historyAction: HistoryAction;\n\n /**\n * The current location reflected by the router\n */\n location: Location;\n\n /**\n * The current set of route matches\n */\n matches: AgnosticDataRouteMatch[];\n\n /**\n * Tracks whether we've completed our initial data load\n */\n initialized: boolean;\n\n /**\n * Current scroll position we should start at for a new view\n * - number -> scroll position to restore to\n * - false -> do not restore scroll at all (used during submissions)\n * - null -> don't have a saved position, scroll to hash or top of page\n */\n restoreScrollPosition: number | false | null;\n\n /**\n * Indicate whether this navigation should skip resetting the scroll position\n * if we are unable to restore the scroll position\n */\n preventScrollReset: boolean;\n\n /**\n * Tracks the state of the current navigation\n */\n navigation: Navigation;\n\n /**\n * Tracks any in-progress revalidations\n */\n revalidation: RevalidationState;\n\n /**\n * Data from the loaders for the current matches\n */\n loaderData: RouteData;\n\n /**\n * Data from the action for the current matches\n */\n actionData: RouteData | null;\n\n /**\n * Errors caught from loaders for the current matches\n */\n errors: RouteData | null;\n\n /**\n * Map of current fetchers\n */\n fetchers: Map;\n\n /**\n * Map of current blockers\n */\n blockers: Map;\n}\n\n/**\n * Data that can be passed into hydrate a Router from SSR\n */\nexport type HydrationState = Partial<\n Pick\n>;\n\n/**\n * Future flags to toggle new feature behavior\n */\nexport interface FutureConfig {\n v7_fetcherPersist: boolean;\n v7_normalizeFormMethod: boolean;\n v7_partialHydration: boolean;\n v7_prependBasename: boolean;\n v7_relativeSplatPath: boolean;\n unstable_skipActionErrorRevalidation: boolean;\n}\n\n/**\n * Initialization options for createRouter\n */\nexport interface RouterInit {\n routes: AgnosticRouteObject[];\n history: History;\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n future?: Partial;\n hydrationData?: HydrationState;\n window?: Window;\n unstable_dataStrategy?: DataStrategyFunction;\n}\n\n/**\n * State returned from a server-side query() call\n */\nexport interface StaticHandlerContext {\n basename: Router[\"basename\"];\n location: RouterState[\"location\"];\n matches: RouterState[\"matches\"];\n loaderData: RouterState[\"loaderData\"];\n actionData: RouterState[\"actionData\"];\n errors: RouterState[\"errors\"];\n statusCode: number;\n loaderHeaders: Record;\n actionHeaders: Record;\n activeDeferreds: Record | null;\n _deepestRenderedBoundaryId?: string | null;\n}\n\n/**\n * A StaticHandler instance manages a singular SSR navigation/fetch event\n */\nexport interface StaticHandler {\n dataRoutes: AgnosticDataRouteObject[];\n query(\n request: Request,\n opts?: {\n requestContext?: unknown;\n skipLoaderErrorBubbling?: boolean;\n unstable_dataStrategy?: DataStrategyFunction;\n }\n ): Promise;\n queryRoute(\n request: Request,\n opts?: {\n routeId?: string;\n requestContext?: unknown;\n unstable_dataStrategy?: DataStrategyFunction;\n }\n ): Promise;\n}\n\ntype ViewTransitionOpts = {\n currentLocation: Location;\n nextLocation: Location;\n};\n\n/**\n * Subscriber function signature for changes to router state\n */\nexport interface RouterSubscriber {\n (\n state: RouterState,\n opts: {\n deletedFetchers: string[];\n unstable_viewTransitionOpts?: ViewTransitionOpts;\n unstable_flushSync: boolean;\n }\n ): void;\n}\n\n/**\n * Function signature for determining the key to be used in scroll restoration\n * for a given location\n */\nexport interface GetScrollRestorationKeyFunction {\n (location: Location, matches: UIMatch[]): string | null;\n}\n\n/**\n * Function signature for determining the current scroll position\n */\nexport interface GetScrollPositionFunction {\n (): number;\n}\n\nexport type RelativeRoutingType = \"route\" | \"path\";\n\n// Allowed for any navigation or fetch\ntype BaseNavigateOrFetchOptions = {\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n unstable_flushSync?: boolean;\n};\n\n// Only allowed for navigations\ntype BaseNavigateOptions = BaseNavigateOrFetchOptions & {\n replace?: boolean;\n state?: any;\n fromRouteId?: string;\n unstable_viewTransition?: boolean;\n};\n\n// Only allowed for submission navigations\ntype BaseSubmissionOptions = {\n formMethod?: HTMLFormMethod;\n formEncType?: FormEncType;\n} & (\n | { formData: FormData; body?: undefined }\n | { formData?: undefined; body: any }\n);\n\n/**\n * Options for a navigate() call for a normal (non-submission) navigation\n */\ntype LinkNavigateOptions = BaseNavigateOptions;\n\n/**\n * Options for a navigate() call for a submission navigation\n */\ntype SubmissionNavigateOptions = BaseNavigateOptions & BaseSubmissionOptions;\n\n/**\n * Options to pass to navigate() for a navigation\n */\nexport type RouterNavigateOptions =\n | LinkNavigateOptions\n | SubmissionNavigateOptions;\n\n/**\n * Options for a fetch() load\n */\ntype LoadFetchOptions = BaseNavigateOrFetchOptions;\n\n/**\n * Options for a fetch() submission\n */\ntype SubmitFetchOptions = BaseNavigateOrFetchOptions & BaseSubmissionOptions;\n\n/**\n * Options to pass to fetch()\n */\nexport type RouterFetchOptions = LoadFetchOptions | SubmitFetchOptions;\n\n/**\n * Potential states for state.navigation\n */\nexport type NavigationStates = {\n Idle: {\n state: \"idle\";\n location: undefined;\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n formData: undefined;\n json: undefined;\n text: undefined;\n };\n Loading: {\n state: \"loading\";\n location: Location;\n formMethod: Submission[\"formMethod\"] | undefined;\n formAction: Submission[\"formAction\"] | undefined;\n formEncType: Submission[\"formEncType\"] | undefined;\n formData: Submission[\"formData\"] | undefined;\n json: Submission[\"json\"] | undefined;\n text: Submission[\"text\"] | undefined;\n };\n Submitting: {\n state: \"submitting\";\n location: Location;\n formMethod: Submission[\"formMethod\"];\n formAction: Submission[\"formAction\"];\n formEncType: Submission[\"formEncType\"];\n formData: Submission[\"formData\"];\n json: Submission[\"json\"];\n text: Submission[\"text\"];\n };\n};\n\nexport type Navigation = NavigationStates[keyof NavigationStates];\n\nexport type RevalidationState = \"idle\" | \"loading\";\n\n/**\n * Potential states for fetchers\n */\ntype FetcherStates = {\n Idle: {\n state: \"idle\";\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n text: undefined;\n formData: undefined;\n json: undefined;\n data: TData | undefined;\n };\n Loading: {\n state: \"loading\";\n formMethod: Submission[\"formMethod\"] | undefined;\n formAction: Submission[\"formAction\"] | undefined;\n formEncType: Submission[\"formEncType\"] | undefined;\n text: Submission[\"text\"] | undefined;\n formData: Submission[\"formData\"] | undefined;\n json: Submission[\"json\"] | undefined;\n data: TData | undefined;\n };\n Submitting: {\n state: \"submitting\";\n formMethod: Submission[\"formMethod\"];\n formAction: Submission[\"formAction\"];\n formEncType: Submission[\"formEncType\"];\n text: Submission[\"text\"];\n formData: Submission[\"formData\"];\n json: Submission[\"json\"];\n data: TData | undefined;\n };\n};\n\nexport type Fetcher =\n FetcherStates[keyof FetcherStates];\n\ninterface BlockerBlocked {\n state: \"blocked\";\n reset(): void;\n proceed(): void;\n location: Location;\n}\n\ninterface BlockerUnblocked {\n state: \"unblocked\";\n reset: undefined;\n proceed: undefined;\n location: undefined;\n}\n\ninterface BlockerProceeding {\n state: \"proceeding\";\n reset: undefined;\n proceed: undefined;\n location: Location;\n}\n\nexport type Blocker = BlockerUnblocked | BlockerBlocked | BlockerProceeding;\n\nexport type BlockerFunction = (args: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n}) => boolean;\n\ninterface ShortCircuitable {\n /**\n * startNavigation does not need to complete the navigation because we\n * redirected or got interrupted\n */\n shortCircuited?: boolean;\n}\n\ntype PendingActionResult = [string, SuccessResult | ErrorResult];\n\ninterface HandleActionResult extends ShortCircuitable {\n /**\n * Tuple for the returned or thrown value from the current action. The routeId\n * is the action route for success and the bubbled boundary route for errors.\n */\n pendingActionResult?: PendingActionResult;\n}\n\ninterface HandleLoadersResult extends ShortCircuitable {\n /**\n * loaderData returned from the current set of loaders\n */\n loaderData?: RouterState[\"loaderData\"];\n /**\n * errors thrown from the current set of loaders\n */\n errors?: RouterState[\"errors\"];\n}\n\n/**\n * Cached info for active fetcher.load() instances so they can participate\n * in revalidation\n */\ninterface FetchLoadMatch {\n routeId: string;\n path: string;\n}\n\n/**\n * Identified fetcher.load() calls that need to be revalidated\n */\ninterface RevalidatingFetcher extends FetchLoadMatch {\n key: string;\n match: AgnosticDataRouteMatch | null;\n matches: AgnosticDataRouteMatch[] | null;\n controller: AbortController | null;\n}\n\nconst validMutationMethodsArr: MutationFormMethod[] = [\n \"post\",\n \"put\",\n \"patch\",\n \"delete\",\n];\nconst validMutationMethods = new Set(\n validMutationMethodsArr\n);\n\nconst validRequestMethodsArr: FormMethod[] = [\n \"get\",\n ...validMutationMethodsArr,\n];\nconst validRequestMethods = new Set(validRequestMethodsArr);\n\nconst redirectStatusCodes = new Set([301, 302, 303, 307, 308]);\nconst redirectPreserveMethodStatusCodes = new Set([307, 308]);\n\nexport const IDLE_NAVIGATION: NavigationStates[\"Idle\"] = {\n state: \"idle\",\n location: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n};\n\nexport const IDLE_FETCHER: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n};\n\nexport const IDLE_BLOCKER: BlockerUnblocked = {\n state: \"unblocked\",\n proceed: undefined,\n reset: undefined,\n location: undefined,\n};\n\nconst ABSOLUTE_URL_REGEX = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\n\nconst defaultMapRouteProperties: MapRoutePropertiesFunction = (route) => ({\n hasErrorBoundary: Boolean(route.hasErrorBoundary),\n});\n\nconst TRANSITIONS_STORAGE_KEY = \"remix-router-transitions\";\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createRouter\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Create a router and listen to history POP navigations\n */\nexport function createRouter(init: RouterInit): Router {\n const routerWindow = init.window\n ? init.window\n : typeof window !== \"undefined\"\n ? window\n : undefined;\n const isBrowser =\n typeof routerWindow !== \"undefined\" &&\n typeof routerWindow.document !== \"undefined\" &&\n typeof routerWindow.document.createElement !== \"undefined\";\n const isServer = !isBrowser;\n\n invariant(\n init.routes.length > 0,\n \"You must provide a non-empty routes array to createRouter\"\n );\n\n let mapRouteProperties: MapRoutePropertiesFunction;\n if (init.mapRouteProperties) {\n mapRouteProperties = init.mapRouteProperties;\n } else if (init.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = init.detectErrorBoundary;\n mapRouteProperties = (route) => ({\n hasErrorBoundary: detectErrorBoundary(route),\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n\n // Routes keyed by ID\n let manifest: RouteManifest = {};\n // Routes in tree format for matching\n let dataRoutes = convertRoutesToDataRoutes(\n init.routes,\n mapRouteProperties,\n undefined,\n manifest\n );\n let inFlightDataRoutes: AgnosticDataRouteObject[] | undefined;\n let basename = init.basename || \"/\";\n let dataStrategyImpl = init.unstable_dataStrategy || defaultDataStrategy;\n // Config driven behavior flags\n let future: FutureConfig = {\n v7_fetcherPersist: false,\n v7_normalizeFormMethod: false,\n v7_partialHydration: false,\n v7_prependBasename: false,\n v7_relativeSplatPath: false,\n unstable_skipActionErrorRevalidation: false,\n ...init.future,\n };\n // Cleanup function for history\n let unlistenHistory: (() => void) | null = null;\n // Externally-provided functions to call on all state changes\n let subscribers = new Set();\n // Externally-provided object to hold scroll restoration locations during routing\n let savedScrollPositions: Record | null = null;\n // Externally-provided function to get scroll restoration keys\n let getScrollRestorationKey: GetScrollRestorationKeyFunction | null = null;\n // Externally-provided function to get current scroll position\n let getScrollPosition: GetScrollPositionFunction | null = null;\n // One-time flag to control the initial hydration scroll restoration. Because\n // we don't get the saved positions from until _after_\n // the initial render, we need to manually trigger a separate updateState to\n // send along the restoreScrollPosition\n // Set to true if we have `hydrationData` since we assume we were SSR'd and that\n // SSR did the initial scroll restoration.\n let initialScrollRestored = init.hydrationData != null;\n\n let initialMatches = matchRoutes(dataRoutes, init.history.location, basename);\n let initialErrors: RouteData | null = null;\n\n if (initialMatches == null) {\n // If we do not match a user-provided-route, fall back to the root\n // to allow the error boundary to take over\n let error = getInternalRouterError(404, {\n pathname: init.history.location.pathname,\n });\n let { matches, route } = getShortCircuitMatches(dataRoutes);\n initialMatches = matches;\n initialErrors = { [route.id]: error };\n }\n\n let initialized: boolean;\n let hasLazyRoutes = initialMatches.some((m) => m.route.lazy);\n let hasLoaders = initialMatches.some((m) => m.route.loader);\n if (hasLazyRoutes) {\n // All initialMatches need to be loaded before we're ready. If we have lazy\n // functions around still then we'll need to run them in initialize()\n initialized = false;\n } else if (!hasLoaders) {\n // If we've got no loaders to run, then we're good to go\n initialized = true;\n } else if (future.v7_partialHydration) {\n // If partial hydration is enabled, we're initialized so long as we were\n // provided with hydrationData for every route with a loader, and no loaders\n // were marked for explicit hydration\n let loaderData = init.hydrationData ? init.hydrationData.loaderData : null;\n let errors = init.hydrationData ? init.hydrationData.errors : null;\n let isRouteInitialized = (m: AgnosticDataRouteMatch) => {\n // No loader, nothing to initialize\n if (!m.route.loader) {\n return true;\n }\n // Explicitly opting-in to running on hydration\n if (\n typeof m.route.loader === \"function\" &&\n m.route.loader.hydrate === true\n ) {\n return false;\n }\n // Otherwise, initialized if hydrated with data or an error\n return (\n (loaderData && loaderData[m.route.id] !== undefined) ||\n (errors && errors[m.route.id] !== undefined)\n );\n };\n\n // If errors exist, don't consider routes below the boundary\n if (errors) {\n let idx = initialMatches.findIndex(\n (m) => errors![m.route.id] !== undefined\n );\n initialized = initialMatches.slice(0, idx + 1).every(isRouteInitialized);\n } else {\n initialized = initialMatches.every(isRouteInitialized);\n }\n } else {\n // Without partial hydration - we're initialized if we were provided any\n // hydrationData - which is expected to be complete\n initialized = init.hydrationData != null;\n }\n\n let router: Router;\n let state: RouterState = {\n historyAction: init.history.action,\n location: init.history.location,\n matches: initialMatches,\n initialized,\n navigation: IDLE_NAVIGATION,\n // Don't restore on initial updateState() if we were SSR'd\n restoreScrollPosition: init.hydrationData != null ? false : null,\n preventScrollReset: false,\n revalidation: \"idle\",\n loaderData: (init.hydrationData && init.hydrationData.loaderData) || {},\n actionData: (init.hydrationData && init.hydrationData.actionData) || null,\n errors: (init.hydrationData && init.hydrationData.errors) || initialErrors,\n fetchers: new Map(),\n blockers: new Map(),\n };\n\n // -- Stateful internal variables to manage navigations --\n // Current navigation in progress (to be committed in completeNavigation)\n let pendingAction: HistoryAction = HistoryAction.Pop;\n\n // Should the current navigation prevent the scroll reset if scroll cannot\n // be restored?\n let pendingPreventScrollReset = false;\n\n // AbortController for the active navigation\n let pendingNavigationController: AbortController | null;\n\n // Should the current navigation enable document.startViewTransition?\n let pendingViewTransitionEnabled = false;\n\n // Store applied view transitions so we can apply them on POP\n let appliedViewTransitions: Map> = new Map<\n string,\n Set\n >();\n\n // Cleanup function for persisting applied transitions to sessionStorage\n let removePageHideEventListener: (() => void) | null = null;\n\n // We use this to avoid touching history in completeNavigation if a\n // revalidation is entirely uninterrupted\n let isUninterruptedRevalidation = false;\n\n // Use this internal flag to force revalidation of all loaders:\n // - submissions (completed or interrupted)\n // - useRevalidator()\n // - X-Remix-Revalidate (from redirect)\n let isRevalidationRequired = false;\n\n // Use this internal array to capture routes that require revalidation due\n // to a cancelled deferred on action submission\n let cancelledDeferredRoutes: string[] = [];\n\n // Use this internal array to capture fetcher loads that were cancelled by an\n // action navigation and require revalidation\n let cancelledFetcherLoads: string[] = [];\n\n // AbortControllers for any in-flight fetchers\n let fetchControllers = new Map();\n\n // Track loads based on the order in which they started\n let incrementingLoadId = 0;\n\n // Track the outstanding pending navigation data load to be compared against\n // the globally incrementing load when a fetcher load lands after a completed\n // navigation\n let pendingNavigationLoadId = -1;\n\n // Fetchers that triggered data reloads as a result of their actions\n let fetchReloadIds = new Map();\n\n // Fetchers that triggered redirect navigations\n let fetchRedirectIds = new Set();\n\n // Most recent href/match for fetcher.load calls for fetchers\n let fetchLoadMatches = new Map();\n\n // Ref-count mounted fetchers so we know when it's ok to clean them up\n let activeFetchers = new Map();\n\n // Fetchers that have requested a delete when using v7_fetcherPersist,\n // they'll be officially removed after they return to idle\n let deletedFetchers = new Set();\n\n // Store DeferredData instances for active route matches. When a\n // route loader returns defer() we stick one in here. Then, when a nested\n // promise resolves we update loaderData. If a new navigation starts we\n // cancel active deferreds for eliminated routes.\n let activeDeferreds = new Map();\n\n // Store blocker functions in a separate Map outside of router state since\n // we don't need to update UI state if they change\n let blockerFunctions = new Map();\n\n // Flag to ignore the next history update, so we can revert the URL change on\n // a POP navigation that was blocked by the user without touching router state\n let ignoreNextHistoryUpdate = false;\n\n // Initialize the router, all side effects should be kicked off from here.\n // Implemented as a Fluent API for ease of:\n // let router = createRouter(init).initialize();\n function initialize() {\n // If history informs us of a POP navigation, start the navigation but do not update\n // state. We'll update our own state once the navigation completes\n unlistenHistory = init.history.listen(\n ({ action: historyAction, location, delta }) => {\n // Ignore this event if it was just us resetting the URL from a\n // blocked POP navigation\n if (ignoreNextHistoryUpdate) {\n ignoreNextHistoryUpdate = false;\n return;\n }\n\n warning(\n blockerFunctions.size === 0 || delta != null,\n \"You are trying to use a blocker on a POP navigation to a location \" +\n \"that was not created by @remix-run/router. This will fail silently in \" +\n \"production. This can happen if you are navigating outside the router \" +\n \"via `window.history.pushState`/`window.location.hash` instead of using \" +\n \"router navigation APIs. This can also happen if you are using \" +\n \"createHashRouter and the user manually changes the URL.\"\n );\n\n let blockerKey = shouldBlockNavigation({\n currentLocation: state.location,\n nextLocation: location,\n historyAction,\n });\n\n if (blockerKey && delta != null) {\n // Restore the URL to match the current UI, but don't update router state\n ignoreNextHistoryUpdate = true;\n init.history.go(delta * -1);\n\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location,\n });\n // Re-do the same POP navigation we just blocked\n init.history.go(delta);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return startNavigation(historyAction, location);\n }\n );\n\n if (isBrowser) {\n // FIXME: This feels gross. How can we cleanup the lines between\n // scrollRestoration/appliedTransitions persistance?\n restoreAppliedTransitions(routerWindow, appliedViewTransitions);\n let _saveAppliedTransitions = () =>\n persistAppliedTransitions(routerWindow, appliedViewTransitions);\n routerWindow.addEventListener(\"pagehide\", _saveAppliedTransitions);\n removePageHideEventListener = () =>\n routerWindow.removeEventListener(\"pagehide\", _saveAppliedTransitions);\n }\n\n // Kick off initial data load if needed. Use Pop to avoid modifying history\n // Note we don't do any handling of lazy here. For SPA's it'll get handled\n // in the normal navigation flow. For SSR it's expected that lazy modules are\n // resolved prior to router creation since we can't go into a fallbackElement\n // UI for SSR'd apps\n if (!state.initialized) {\n startNavigation(HistoryAction.Pop, state.location, {\n initialHydration: true,\n });\n }\n\n return router;\n }\n\n // Clean up a router and it's side effects\n function dispose() {\n if (unlistenHistory) {\n unlistenHistory();\n }\n if (removePageHideEventListener) {\n removePageHideEventListener();\n }\n subscribers.clear();\n pendingNavigationController && pendingNavigationController.abort();\n state.fetchers.forEach((_, key) => deleteFetcher(key));\n state.blockers.forEach((_, key) => deleteBlocker(key));\n }\n\n // Subscribe to state updates for the router\n function subscribe(fn: RouterSubscriber) {\n subscribers.add(fn);\n return () => subscribers.delete(fn);\n }\n\n // Update our state and notify the calling context of the change\n function updateState(\n newState: Partial,\n opts: {\n flushSync?: boolean;\n viewTransitionOpts?: ViewTransitionOpts;\n } = {}\n ): void {\n state = {\n ...state,\n ...newState,\n };\n\n // Prep fetcher cleanup so we can tell the UI which fetcher data entries\n // can be removed\n let completedFetchers: string[] = [];\n let deletedFetchersKeys: string[] = [];\n\n if (future.v7_fetcherPersist) {\n state.fetchers.forEach((fetcher, key) => {\n if (fetcher.state === \"idle\") {\n if (deletedFetchers.has(key)) {\n // Unmounted from the UI and can be totally removed\n deletedFetchersKeys.push(key);\n } else {\n // Returned to idle but still mounted in the UI, so semi-remains for\n // revalidations and such\n completedFetchers.push(key);\n }\n }\n });\n }\n\n // Iterate over a local copy so that if flushSync is used and we end up\n // removing and adding a new subscriber due to the useCallback dependencies,\n // we don't get ourselves into a loop calling the new subscriber immediately\n [...subscribers].forEach((subscriber) =>\n subscriber(state, {\n deletedFetchers: deletedFetchersKeys,\n unstable_viewTransitionOpts: opts.viewTransitionOpts,\n unstable_flushSync: opts.flushSync === true,\n })\n );\n\n // Remove idle fetchers from state since we only care about in-flight fetchers.\n if (future.v7_fetcherPersist) {\n completedFetchers.forEach((key) => state.fetchers.delete(key));\n deletedFetchersKeys.forEach((key) => deleteFetcher(key));\n }\n }\n\n // Complete a navigation returning the state.navigation back to the IDLE_NAVIGATION\n // and setting state.[historyAction/location/matches] to the new route.\n // - Location is a required param\n // - Navigation will always be set to IDLE_NAVIGATION\n // - Can pass any other state in newState\n function completeNavigation(\n location: Location,\n newState: Partial>,\n { flushSync }: { flushSync?: boolean } = {}\n ): void {\n // Deduce if we're in a loading/actionReload state:\n // - We have committed actionData in the store\n // - The current navigation was a mutation submission\n // - We're past the submitting state and into the loading state\n // - The location being loaded is not the result of a redirect\n let isActionReload =\n state.actionData != null &&\n state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n state.navigation.state === \"loading\" &&\n location.state?._isRedirect !== true;\n\n let actionData: RouteData | null;\n if (newState.actionData) {\n if (Object.keys(newState.actionData).length > 0) {\n actionData = newState.actionData;\n } else {\n // Empty actionData -> clear prior actionData due to an action error\n actionData = null;\n }\n } else if (isActionReload) {\n // Keep the current data if we're wrapping up the action reload\n actionData = state.actionData;\n } else {\n // Clear actionData on any other completed navigations\n actionData = null;\n }\n\n // Always preserve any existing loaderData from re-used routes\n let loaderData = newState.loaderData\n ? mergeLoaderData(\n state.loaderData,\n newState.loaderData,\n newState.matches || [],\n newState.errors\n )\n : state.loaderData;\n\n // On a successful navigation we can assume we got through all blockers\n // so we can start fresh\n let blockers = state.blockers;\n if (blockers.size > 0) {\n blockers = new Map(blockers);\n blockers.forEach((_, k) => blockers.set(k, IDLE_BLOCKER));\n }\n\n // Always respect the user flag. Otherwise don't reset on mutation\n // submission navigations unless they redirect\n let preventScrollReset =\n pendingPreventScrollReset === true ||\n (state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n location.state?._isRedirect !== true);\n\n if (inFlightDataRoutes) {\n dataRoutes = inFlightDataRoutes;\n inFlightDataRoutes = undefined;\n }\n\n if (isUninterruptedRevalidation) {\n // If this was an uninterrupted revalidation then do not touch history\n } else if (pendingAction === HistoryAction.Pop) {\n // Do nothing for POP - URL has already been updated\n } else if (pendingAction === HistoryAction.Push) {\n init.history.push(location, location.state);\n } else if (pendingAction === HistoryAction.Replace) {\n init.history.replace(location, location.state);\n }\n\n let viewTransitionOpts: ViewTransitionOpts | undefined;\n\n // On POP, enable transitions if they were enabled on the original navigation\n if (pendingAction === HistoryAction.Pop) {\n // Forward takes precedence so they behave like the original navigation\n let priorPaths = appliedViewTransitions.get(state.location.pathname);\n if (priorPaths && priorPaths.has(location.pathname)) {\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location,\n };\n } else if (appliedViewTransitions.has(location.pathname)) {\n // If we don't have a previous forward nav, assume we're popping back to\n // the new location and enable if that location previously enabled\n viewTransitionOpts = {\n currentLocation: location,\n nextLocation: state.location,\n };\n }\n } else if (pendingViewTransitionEnabled) {\n // Store the applied transition on PUSH/REPLACE\n let toPaths = appliedViewTransitions.get(state.location.pathname);\n if (toPaths) {\n toPaths.add(location.pathname);\n } else {\n toPaths = new Set([location.pathname]);\n appliedViewTransitions.set(state.location.pathname, toPaths);\n }\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location,\n };\n }\n\n updateState(\n {\n ...newState, // matches, errors, fetchers go through as-is\n actionData,\n loaderData,\n historyAction: pendingAction,\n location,\n initialized: true,\n navigation: IDLE_NAVIGATION,\n revalidation: \"idle\",\n restoreScrollPosition: getSavedScrollPosition(\n location,\n newState.matches || state.matches\n ),\n preventScrollReset,\n blockers,\n },\n {\n viewTransitionOpts,\n flushSync: flushSync === true,\n }\n );\n\n // Reset stateful navigation vars\n pendingAction = HistoryAction.Pop;\n pendingPreventScrollReset = false;\n pendingViewTransitionEnabled = false;\n isUninterruptedRevalidation = false;\n isRevalidationRequired = false;\n cancelledDeferredRoutes = [];\n cancelledFetcherLoads = [];\n }\n\n // Trigger a navigation event, which can either be a numerical POP or a PUSH\n // replace with an optional submission\n async function navigate(\n to: number | To | null,\n opts?: RouterNavigateOptions\n ): Promise {\n if (typeof to === \"number\") {\n init.history.go(to);\n return;\n }\n\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n to,\n future.v7_relativeSplatPath,\n opts?.fromRouteId,\n opts?.relative\n );\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n false,\n normalizedPath,\n opts\n );\n\n let currentLocation = state.location;\n let nextLocation = createLocation(state.location, path, opts && opts.state);\n\n // When using navigate as a PUSH/REPLACE we aren't reading an already-encoded\n // URL from window.location, so we need to encode it here so the behavior\n // remains the same as POP and non-data-router usages. new URL() does all\n // the same encoding we'd get from a history.pushState/window.location read\n // without having to touch history\n nextLocation = {\n ...nextLocation,\n ...init.history.encodeLocation(nextLocation),\n };\n\n let userReplace = opts && opts.replace != null ? opts.replace : undefined;\n\n let historyAction = HistoryAction.Push;\n\n if (userReplace === true) {\n historyAction = HistoryAction.Replace;\n } else if (userReplace === false) {\n // no-op\n } else if (\n submission != null &&\n isMutationMethod(submission.formMethod) &&\n submission.formAction === state.location.pathname + state.location.search\n ) {\n // By default on submissions to the current location we REPLACE so that\n // users don't have to double-click the back button to get to the prior\n // location. If the user redirects to a different location from the\n // action/loader this will be ignored and the redirect will be a PUSH\n historyAction = HistoryAction.Replace;\n }\n\n let preventScrollReset =\n opts && \"preventScrollReset\" in opts\n ? opts.preventScrollReset === true\n : undefined;\n\n let flushSync = (opts && opts.unstable_flushSync) === true;\n\n let blockerKey = shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n });\n\n if (blockerKey) {\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location: nextLocation,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location: nextLocation,\n });\n // Send the same navigation through\n navigate(to, opts);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return await startNavigation(historyAction, nextLocation, {\n submission,\n // Send through the formData serialization error if we have one so we can\n // render at the right error boundary after we match routes\n pendingError: error,\n preventScrollReset,\n replace: opts && opts.replace,\n enableViewTransition: opts && opts.unstable_viewTransition,\n flushSync,\n });\n }\n\n // Revalidate all current loaders. If a navigation is in progress or if this\n // is interrupted by a navigation, allow this to \"succeed\" by calling all\n // loaders during the next loader round\n function revalidate() {\n interruptActiveLoads();\n updateState({ revalidation: \"loading\" });\n\n // If we're currently submitting an action, we don't need to start a new\n // navigation, we'll just let the follow up loader execution call all loaders\n if (state.navigation.state === \"submitting\") {\n return;\n }\n\n // If we're currently in an idle state, start a new navigation for the current\n // action/location and mark it as uninterrupted, which will skip the history\n // update in completeNavigation\n if (state.navigation.state === \"idle\") {\n startNavigation(state.historyAction, state.location, {\n startUninterruptedRevalidation: true,\n });\n return;\n }\n\n // Otherwise, if we're currently in a loading state, just start a new\n // navigation to the navigation.location but do not trigger an uninterrupted\n // revalidation so that history correctly updates once the navigation completes\n startNavigation(\n pendingAction || state.historyAction,\n state.navigation.location,\n { overrideNavigation: state.navigation }\n );\n }\n\n // Start a navigation to the given action/location. Can optionally provide a\n // overrideNavigation which will override the normalLoad in the case of a redirect\n // navigation\n async function startNavigation(\n historyAction: HistoryAction,\n location: Location,\n opts?: {\n initialHydration?: boolean;\n submission?: Submission;\n fetcherSubmission?: Submission;\n overrideNavigation?: Navigation;\n pendingError?: ErrorResponseImpl;\n startUninterruptedRevalidation?: boolean;\n preventScrollReset?: boolean;\n replace?: boolean;\n enableViewTransition?: boolean;\n flushSync?: boolean;\n }\n ): Promise {\n // Abort any in-progress navigations and start a new one. Unset any ongoing\n // uninterrupted revalidations unless told otherwise, since we want this\n // new navigation to update history normally\n pendingNavigationController && pendingNavigationController.abort();\n pendingNavigationController = null;\n pendingAction = historyAction;\n isUninterruptedRevalidation =\n (opts && opts.startUninterruptedRevalidation) === true;\n\n // Save the current scroll position every time we start a new navigation,\n // and track whether we should reset scroll on completion\n saveScrollPosition(state.location, state.matches);\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n pendingViewTransitionEnabled = (opts && opts.enableViewTransition) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let loadingNavigation = opts && opts.overrideNavigation;\n let matches = matchRoutes(routesToUse, location, basename);\n let flushSync = (opts && opts.flushSync) === true;\n\n // Short circuit with a 404 on the root error boundary if we match nothing\n if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } =\n getShortCircuitMatches(routesToUse);\n // Cancel all pending deferred on 404s since we don't keep any routes\n cancelActiveDeferreds();\n completeNavigation(\n location,\n {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error,\n },\n },\n { flushSync }\n );\n return;\n }\n\n // Short circuit if it's only a hash change and not a revalidation or\n // mutation submission.\n //\n // Ignore on initial page loads because since the initial load will always\n // be \"same hash\". For example, on /page#hash and submit a \n // which will default to a navigation to /page\n if (\n state.initialized &&\n !isRevalidationRequired &&\n isHashChangeOnly(state.location, location) &&\n !(opts && opts.submission && isMutationMethod(opts.submission.formMethod))\n ) {\n completeNavigation(location, { matches }, { flushSync });\n return;\n }\n\n // Create a controller/Request for this navigation\n pendingNavigationController = new AbortController();\n let request = createClientSideRequest(\n init.history,\n location,\n pendingNavigationController.signal,\n opts && opts.submission\n );\n let pendingActionResult: PendingActionResult | undefined;\n\n if (opts && opts.pendingError) {\n // If we have a pendingError, it means the user attempted a GET submission\n // with binary FormData so assign here and skip to handleLoaders. That\n // way we handle calling loaders above the boundary etc. It's not really\n // different from an actionError in that sense.\n pendingActionResult = [\n findNearestBoundary(matches).route.id,\n { type: ResultType.error, error: opts.pendingError },\n ];\n } else if (\n opts &&\n opts.submission &&\n isMutationMethod(opts.submission.formMethod)\n ) {\n // Call action if we received an action submission\n let actionResult = await handleAction(\n request,\n location,\n opts.submission,\n matches,\n { replace: opts.replace, flushSync }\n );\n\n if (actionResult.shortCircuited) {\n return;\n }\n\n pendingActionResult = actionResult.pendingActionResult;\n loadingNavigation = getLoadingNavigation(location, opts.submission);\n flushSync = false;\n\n // Create a GET request for the loaders\n request = createClientSideRequest(\n init.history,\n request.url,\n request.signal\n );\n }\n\n // Call loaders\n let { shortCircuited, loaderData, errors } = await handleLoaders(\n request,\n location,\n matches,\n loadingNavigation,\n opts && opts.submission,\n opts && opts.fetcherSubmission,\n opts && opts.replace,\n opts && opts.initialHydration === true,\n flushSync,\n pendingActionResult\n );\n\n if (shortCircuited) {\n return;\n }\n\n // Clean up now that the action/loaders have completed. Don't clean up if\n // we short circuited because pendingNavigationController will have already\n // been assigned to a new controller for the next navigation\n pendingNavigationController = null;\n\n completeNavigation(location, {\n matches,\n ...getActionDataForCommit(pendingActionResult),\n loaderData,\n errors,\n });\n }\n\n // Call the action matched by the leaf route for this navigation and handle\n // redirects/errors\n async function handleAction(\n request: Request,\n location: Location,\n submission: Submission,\n matches: AgnosticDataRouteMatch[],\n opts: { replace?: boolean; flushSync?: boolean } = {}\n ): Promise {\n interruptActiveLoads();\n\n // Put us in a submitting state\n let navigation = getSubmittingNavigation(location, submission);\n updateState({ navigation }, { flushSync: opts.flushSync === true });\n\n // Call our action and get the result\n let result: DataResult;\n let actionMatch = getTargetMatch(matches, location);\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n result = {\n type: ResultType.error,\n error: getInternalRouterError(405, {\n method: request.method,\n pathname: location.pathname,\n routeId: actionMatch.route.id,\n }),\n };\n } else {\n let results = await callDataStrategy(\n \"action\",\n request,\n [actionMatch],\n matches\n );\n result = results[0];\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n }\n\n if (isRedirectResult(result)) {\n let replace: boolean;\n if (opts && opts.replace != null) {\n replace = opts.replace;\n } else {\n // If the user didn't explicity indicate replace behavior, replace if\n // we redirected to the exact same location we're currently at to avoid\n // double back-buttons\n let location = normalizeRedirectLocation(\n result.response.headers.get(\"Location\")!,\n new URL(request.url),\n basename\n );\n replace = location === state.location.pathname + state.location.search;\n }\n await startRedirectNavigation(request, result, {\n submission,\n replace,\n });\n return { shortCircuited: true };\n }\n\n if (isDeferredResult(result)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n\n // By default, all submissions are REPLACE navigations, but if the\n // action threw an error that'll be rendered in an errorElement, we fall\n // back to PUSH so that the user can use the back button to get back to\n // the pre-submission form location to try again\n if ((opts && opts.replace) !== true) {\n pendingAction = HistoryAction.Push;\n }\n\n return {\n pendingActionResult: [boundaryMatch.route.id, result],\n };\n }\n\n return {\n pendingActionResult: [actionMatch.route.id, result],\n };\n }\n\n // Call all applicable loaders for the given matches, handling redirects,\n // errors, etc.\n async function handleLoaders(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n overrideNavigation?: Navigation,\n submission?: Submission,\n fetcherSubmission?: Submission,\n replace?: boolean,\n initialHydration?: boolean,\n flushSync?: boolean,\n pendingActionResult?: PendingActionResult\n ): Promise {\n // Figure out the right navigation we want to use for data loading\n let loadingNavigation =\n overrideNavigation || getLoadingNavigation(location, submission);\n\n // If this was a redirect from an action we don't have a \"submission\" but\n // we have it on the loading navigation so use that if available\n let activeSubmission =\n submission ||\n fetcherSubmission ||\n getSubmissionFromNavigation(loadingNavigation);\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n activeSubmission,\n location,\n future.v7_partialHydration && initialHydration === true,\n future.unstable_skipActionErrorRevalidation,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n deletedFetchers,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n pendingActionResult\n );\n\n // Cancel pending deferreds for no-longer-matched routes or routes we're\n // about to reload. Note that if this is an action reload we would have\n // already cancelled all pending deferreds so this would be a no-op\n cancelActiveDeferreds(\n (routeId) =>\n !(matches && matches.some((m) => m.route.id === routeId)) ||\n (matchesToLoad && matchesToLoad.some((m) => m.route.id === routeId))\n );\n\n pendingNavigationLoadId = ++incrementingLoadId;\n\n // Short circuit if we have no loaders to run\n if (matchesToLoad.length === 0 && revalidatingFetchers.length === 0) {\n let updatedFetchers = markFetchRedirectsDone();\n completeNavigation(\n location,\n {\n matches,\n loaderData: {},\n // Commit pending error if we're short circuiting\n errors:\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? { [pendingActionResult[0]]: pendingActionResult[1].error }\n : null,\n ...getActionDataForCommit(pendingActionResult),\n ...(updatedFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n },\n { flushSync }\n );\n return { shortCircuited: true };\n }\n\n // If this is an uninterrupted revalidation, we remain in our current idle\n // state. If not, we need to switch to our loading state and load data,\n // preserving any new action data or existing action data (in the case of\n // a revalidation interrupting an actionReload)\n // If we have partialHydration enabled, then don't update the state for the\n // initial data load since it's not a \"navigation\"\n if (\n !isUninterruptedRevalidation &&\n (!future.v7_partialHydration || !initialHydration)\n ) {\n revalidatingFetchers.forEach((rf) => {\n let fetcher = state.fetchers.get(rf.key);\n let revalidatingFetcher = getLoadingFetcher(\n undefined,\n fetcher ? fetcher.data : undefined\n );\n state.fetchers.set(rf.key, revalidatingFetcher);\n });\n\n let actionData: Record | null | undefined;\n if (pendingActionResult && !isErrorResult(pendingActionResult[1])) {\n // This is cast to `any` currently because `RouteData`uses any and it\n // would be a breaking change to use any.\n // TODO: v7 - change `RouteData` to use `unknown` instead of `any`\n actionData = {\n [pendingActionResult[0]]: pendingActionResult[1].data as any,\n };\n } else if (state.actionData) {\n if (Object.keys(state.actionData).length === 0) {\n actionData = null;\n } else {\n actionData = state.actionData;\n }\n }\n\n updateState(\n {\n navigation: loadingNavigation,\n ...(actionData !== undefined ? { actionData } : {}),\n ...(revalidatingFetchers.length > 0\n ? { fetchers: new Map(state.fetchers) }\n : {}),\n },\n {\n flushSync,\n }\n );\n }\n\n revalidatingFetchers.forEach((rf) => {\n if (fetchControllers.has(rf.key)) {\n abortFetcher(rf.key);\n }\n if (rf.controller) {\n // Fetchers use an independent AbortController so that aborting a fetcher\n // (via deleteFetcher) does not abort the triggering navigation that\n // triggered the revalidation\n fetchControllers.set(rf.key, rf.controller);\n }\n });\n\n // Proxy navigation abort through to revalidation fetchers\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((f) => abortFetcher(f.key));\n if (pendingNavigationController) {\n pendingNavigationController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n\n let { loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state.matches,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n request\n );\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n\n // Clean up _after_ loaders have completed. Don't clean up if we short\n // circuited because fetchControllers would have been aborted and\n // reassigned to new controllers for the next navigation\n if (pendingNavigationController) {\n pendingNavigationController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n revalidatingFetchers.forEach((rf) => fetchControllers.delete(rf.key));\n\n // If any loaders returned a redirect Response, start a new REPLACE navigation\n let redirect = findRedirect([...loaderResults, ...fetcherResults]);\n if (redirect) {\n if (redirect.idx >= matchesToLoad.length) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n let fetcherKey =\n revalidatingFetchers[redirect.idx - matchesToLoad.length].key;\n fetchRedirectIds.add(fetcherKey);\n }\n await startRedirectNavigation(request, redirect.result, {\n replace,\n });\n return { shortCircuited: true };\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n matches,\n matchesToLoad,\n loaderResults,\n pendingActionResult,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Wire up subscribers to update loaderData as promises settle\n activeDeferreds.forEach((deferredData, routeId) => {\n deferredData.subscribe((aborted) => {\n // Note: No need to updateState here since the TrackedPromise on\n // loaderData is stable across resolve/reject\n // Remove this instance if we were aborted or if promises have settled\n if (aborted || deferredData.done) {\n activeDeferreds.delete(routeId);\n }\n });\n });\n\n // During partial hydration, preserve SSR errors for routes that don't re-run\n if (future.v7_partialHydration && initialHydration && state.errors) {\n Object.entries(state.errors)\n .filter(([id]) => !matchesToLoad.some((m) => m.route.id === id))\n .forEach(([routeId, error]) => {\n errors = Object.assign(errors || {}, { [routeId]: error });\n });\n }\n\n let updatedFetchers = markFetchRedirectsDone();\n let didAbortFetchLoads = abortStaleFetchLoads(pendingNavigationLoadId);\n let shouldUpdateFetchers =\n updatedFetchers || didAbortFetchLoads || revalidatingFetchers.length > 0;\n\n return {\n loaderData,\n errors,\n ...(shouldUpdateFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n };\n }\n\n // Trigger a fetcher load/submit for the given fetcher key\n function fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterFetchOptions\n ) {\n if (isServer) {\n throw new Error(\n \"router.fetch() was called during the server render, but it shouldn't be. \" +\n \"You are likely calling a useFetcher() method in the body of your component. \" +\n \"Try moving it to a useEffect or a callback.\"\n );\n }\n\n if (fetchControllers.has(key)) abortFetcher(key);\n let flushSync = (opts && opts.unstable_flushSync) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n href,\n future.v7_relativeSplatPath,\n routeId,\n opts?.relative\n );\n let matches = matchRoutes(routesToUse, normalizedPath, basename);\n\n if (!matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: normalizedPath }),\n { flushSync }\n );\n return;\n }\n\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n true,\n normalizedPath,\n opts\n );\n\n if (error) {\n setFetcherError(key, routeId, error, { flushSync });\n return;\n }\n\n let match = getTargetMatch(matches, path);\n\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n if (submission && isMutationMethod(submission.formMethod)) {\n handleFetcherAction(\n key,\n routeId,\n path,\n match,\n matches,\n flushSync,\n submission\n );\n return;\n }\n\n // Store off the match so we can call it's shouldRevalidate on subsequent\n // revalidations\n fetchLoadMatches.set(key, { routeId, path });\n handleFetcherLoader(\n key,\n routeId,\n path,\n match,\n matches,\n flushSync,\n submission\n );\n }\n\n // Call the action for the matched fetcher.submit(), and then handle redirects,\n // errors, and revalidation\n async function handleFetcherAction(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n requestMatches: AgnosticDataRouteMatch[],\n flushSync: boolean,\n submission: Submission\n ) {\n interruptActiveLoads();\n fetchLoadMatches.delete(key);\n\n if (!match.route.action && !match.route.lazy) {\n let error = getInternalRouterError(405, {\n method: submission.formMethod,\n pathname: path,\n routeId: routeId,\n });\n setFetcherError(key, routeId, error, { flushSync });\n return;\n }\n\n // Put this fetcher into it's submitting state\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(key, getSubmittingFetcher(submission, existingFetcher), {\n flushSync,\n });\n\n // Call the action for the fetcher\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal,\n submission\n );\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let actionResults = await callDataStrategy(\n \"action\",\n fetchRequest,\n [match],\n requestMatches\n );\n let actionResult = actionResults[0];\n\n if (fetchRequest.signal.aborted) {\n // We can delete this so long as we weren't aborted by our own fetcher\n // re-submit which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n return;\n }\n\n // When using v7_fetcherPersist, we don't want errors bubbling up to the UI\n // or redirects processed for unmounted fetchers so we just revert them to\n // idle\n if (future.v7_fetcherPersist && deletedFetchers.has(key)) {\n if (isRedirectResult(actionResult) || isErrorResult(actionResult)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n // Let SuccessResult's fall through for revalidation\n } else {\n if (isRedirectResult(actionResult)) {\n fetchControllers.delete(key);\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our action started, so that\n // should take precedence over this redirect navigation. We already\n // set isRevalidationRequired so all loaders for the new route should\n // fire unless opted out via shouldRevalidate\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n updateFetcherState(key, getLoadingFetcher(submission));\n return startRedirectNavigation(fetchRequest, actionResult, {\n fetcherSubmission: submission,\n });\n }\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(actionResult)) {\n setFetcherError(key, routeId, actionResult.error);\n return;\n }\n }\n\n if (isDeferredResult(actionResult)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n // Start the data load for current matches, or the next location if we're\n // in the middle of a navigation\n let nextLocation = state.navigation.location || state.location;\n let revalidationRequest = createClientSideRequest(\n init.history,\n nextLocation,\n abortController.signal\n );\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let matches =\n state.navigation.state !== \"idle\"\n ? matchRoutes(routesToUse, state.navigation.location, basename)\n : state.matches;\n\n invariant(matches, \"Didn't find any matches after fetcher action\");\n\n let loadId = ++incrementingLoadId;\n fetchReloadIds.set(key, loadId);\n\n let loadFetcher = getLoadingFetcher(submission, actionResult.data);\n state.fetchers.set(key, loadFetcher);\n\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n submission,\n nextLocation,\n false,\n future.unstable_skipActionErrorRevalidation,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n deletedFetchers,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n [match.route.id, actionResult]\n );\n\n // Put all revalidating fetchers into the loading state, except for the\n // current fetcher which we want to keep in it's current loading state which\n // contains it's action submission info + action data\n revalidatingFetchers\n .filter((rf) => rf.key !== key)\n .forEach((rf) => {\n let staleKey = rf.key;\n let existingFetcher = state.fetchers.get(staleKey);\n let revalidatingFetcher = getLoadingFetcher(\n undefined,\n existingFetcher ? existingFetcher.data : undefined\n );\n state.fetchers.set(staleKey, revalidatingFetcher);\n if (fetchControllers.has(staleKey)) {\n abortFetcher(staleKey);\n }\n if (rf.controller) {\n fetchControllers.set(staleKey, rf.controller);\n }\n });\n\n updateState({ fetchers: new Map(state.fetchers) });\n\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((rf) => abortFetcher(rf.key));\n\n abortController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n let { loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state.matches,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n revalidationRequest\n );\n\n if (abortController.signal.aborted) {\n return;\n }\n\n abortController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n fetchReloadIds.delete(key);\n fetchControllers.delete(key);\n revalidatingFetchers.forEach((r) => fetchControllers.delete(r.key));\n\n let redirect = findRedirect([...loaderResults, ...fetcherResults]);\n if (redirect) {\n if (redirect.idx >= matchesToLoad.length) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n let fetcherKey =\n revalidatingFetchers[redirect.idx - matchesToLoad.length].key;\n fetchRedirectIds.add(fetcherKey);\n }\n return startRedirectNavigation(revalidationRequest, redirect.result);\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n state.matches,\n matchesToLoad,\n loaderResults,\n undefined,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Since we let revalidations complete even if the submitting fetcher was\n // deleted, only put it back to idle if it hasn't been deleted\n if (state.fetchers.has(key)) {\n let doneFetcher = getDoneFetcher(actionResult.data);\n state.fetchers.set(key, doneFetcher);\n }\n\n abortStaleFetchLoads(loadId);\n\n // If we are currently in a navigation loading state and this fetcher is\n // more recent than the navigation, we want the newer data so abort the\n // navigation and complete it with the fetcher data\n if (\n state.navigation.state === \"loading\" &&\n loadId > pendingNavigationLoadId\n ) {\n invariant(pendingAction, \"Expected pending action\");\n pendingNavigationController && pendingNavigationController.abort();\n\n completeNavigation(state.navigation.location, {\n matches,\n loaderData,\n errors,\n fetchers: new Map(state.fetchers),\n });\n } else {\n // otherwise just update with the fetcher data, preserving any existing\n // loaderData for loaders that did not need to reload. We have to\n // manually merge here since we aren't going through completeNavigation\n updateState({\n errors,\n loaderData: mergeLoaderData(\n state.loaderData,\n loaderData,\n matches,\n errors\n ),\n fetchers: new Map(state.fetchers),\n });\n isRevalidationRequired = false;\n }\n }\n\n // Call the matched loader for fetcher.load(), handling redirects, errors, etc.\n async function handleFetcherLoader(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n matches: AgnosticDataRouteMatch[],\n flushSync: boolean,\n submission?: Submission\n ) {\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(\n key,\n getLoadingFetcher(\n submission,\n existingFetcher ? existingFetcher.data : undefined\n ),\n { flushSync }\n );\n\n // Call the loader for this fetcher route match\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal\n );\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let results = await callDataStrategy(\n \"loader\",\n fetchRequest,\n [match],\n matches\n );\n let result = results[0];\n\n // Deferred isn't supported for fetcher loads, await everything and treat it\n // as a normal load. resolveDeferredData will return undefined if this\n // fetcher gets aborted, so we just leave result untouched and short circuit\n // below if that happens\n if (isDeferredResult(result)) {\n result =\n (await resolveDeferredData(result, fetchRequest.signal, true)) ||\n result;\n }\n\n // We can delete this so long as we weren't aborted by our our own fetcher\n // re-load which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n\n if (fetchRequest.signal.aborted) {\n return;\n }\n\n // We don't want errors bubbling up or redirects followed for unmounted\n // fetchers, so short circuit here if it was removed from the UI\n if (deletedFetchers.has(key)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n\n // If the loader threw a redirect Response, start a new REPLACE navigation\n if (isRedirectResult(result)) {\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our loader started, so that\n // should take precedence over this redirect navigation\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n await startRedirectNavigation(fetchRequest, result);\n return;\n }\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(result)) {\n setFetcherError(key, routeId, result.error);\n return;\n }\n\n invariant(!isDeferredResult(result), \"Unhandled fetcher deferred data\");\n\n // Put the fetcher back into an idle state\n updateFetcherState(key, getDoneFetcher(result.data));\n }\n\n /**\n * Utility function to handle redirects returned from an action or loader.\n * Normally, a redirect \"replaces\" the navigation that triggered it. So, for\n * example:\n *\n * - user is on /a\n * - user clicks a link to /b\n * - loader for /b redirects to /c\n *\n * In a non-JS app the browser would track the in-flight navigation to /b and\n * then replace it with /c when it encountered the redirect response. In\n * the end it would only ever update the URL bar with /c.\n *\n * In client-side routing using pushState/replaceState, we aim to emulate\n * this behavior and we also do not update history until the end of the\n * navigation (including processed redirects). This means that we never\n * actually touch history until we've processed redirects, so we just use\n * the history action from the original navigation (PUSH or REPLACE).\n */\n async function startRedirectNavigation(\n request: Request,\n redirect: RedirectResult,\n {\n submission,\n fetcherSubmission,\n replace,\n }: {\n submission?: Submission;\n fetcherSubmission?: Submission;\n replace?: boolean;\n } = {}\n ) {\n if (redirect.response.headers.has(\"X-Remix-Revalidate\")) {\n isRevalidationRequired = true;\n }\n\n let location = redirect.response.headers.get(\"Location\");\n invariant(location, \"Expected a Location header on the redirect Response\");\n location = normalizeRedirectLocation(\n location,\n new URL(request.url),\n basename\n );\n let redirectLocation = createLocation(state.location, location, {\n _isRedirect: true,\n });\n\n if (isBrowser) {\n let isDocumentReload = false;\n\n if (redirect.response.headers.has(\"X-Remix-Reload-Document\")) {\n // Hard reload if the response contained X-Remix-Reload-Document\n isDocumentReload = true;\n } else if (ABSOLUTE_URL_REGEX.test(location)) {\n const url = init.history.createURL(location);\n isDocumentReload =\n // Hard reload if it's an absolute URL to a new origin\n url.origin !== routerWindow.location.origin ||\n // Hard reload if it's an absolute URL that does not match our basename\n stripBasename(url.pathname, basename) == null;\n }\n\n if (isDocumentReload) {\n if (replace) {\n routerWindow.location.replace(location);\n } else {\n routerWindow.location.assign(location);\n }\n return;\n }\n }\n\n // There's no need to abort on redirects, since we don't detect the\n // redirect until the action/loaders have settled\n pendingNavigationController = null;\n\n let redirectHistoryAction =\n replace === true ? HistoryAction.Replace : HistoryAction.Push;\n\n // Use the incoming submission if provided, fallback on the active one in\n // state.navigation\n let { formMethod, formAction, formEncType } = state.navigation;\n if (\n !submission &&\n !fetcherSubmission &&\n formMethod &&\n formAction &&\n formEncType\n ) {\n submission = getSubmissionFromNavigation(state.navigation);\n }\n\n // If this was a 307/308 submission we want to preserve the HTTP method and\n // re-submit the GET/POST/PUT/PATCH/DELETE as a submission navigation to the\n // redirected location\n let activeSubmission = submission || fetcherSubmission;\n if (\n redirectPreserveMethodStatusCodes.has(redirect.response.status) &&\n activeSubmission &&\n isMutationMethod(activeSubmission.formMethod)\n ) {\n await startNavigation(redirectHistoryAction, redirectLocation, {\n submission: {\n ...activeSubmission,\n formAction: location,\n },\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset,\n });\n } else {\n // If we have a navigation submission, we will preserve it through the\n // redirect navigation\n let overrideNavigation = getLoadingNavigation(\n redirectLocation,\n submission\n );\n await startNavigation(redirectHistoryAction, redirectLocation, {\n overrideNavigation,\n // Send fetcher submissions through for shouldRevalidate\n fetcherSubmission,\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset,\n });\n }\n }\n\n // Utility wrapper for calling dataStrategy client-side without having to\n // pass around the manifest, mapRouteProperties, etc.\n async function callDataStrategy(\n type: \"loader\" | \"action\",\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[]\n ): Promise {\n try {\n let results = await callDataStrategyImpl(\n dataStrategyImpl,\n type,\n request,\n matchesToLoad,\n matches,\n manifest,\n mapRouteProperties\n );\n\n return await Promise.all(\n results.map((result, i) => {\n if (isRedirectHandlerResult(result)) {\n let response = result.result as Response;\n return {\n type: ResultType.redirect,\n response: normalizeRelativeRoutingRedirectResponse(\n response,\n request,\n matchesToLoad[i].route.id,\n matches,\n basename,\n future.v7_relativeSplatPath\n ),\n };\n }\n\n return convertHandlerResultToDataResult(result);\n })\n );\n } catch (e) {\n // If the outer dataStrategy method throws, just return the error for all\n // matches - and it'll naturally bubble to the root\n return matchesToLoad.map(() => ({\n type: ResultType.error,\n error: e,\n }));\n }\n }\n\n async function callLoadersAndMaybeResolveData(\n currentMatches: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n fetchersToLoad: RevalidatingFetcher[],\n request: Request\n ) {\n let [loaderResults, ...fetcherResults] = await Promise.all([\n matchesToLoad.length\n ? callDataStrategy(\"loader\", request, matchesToLoad, matches)\n : [],\n ...fetchersToLoad.map((f) => {\n if (f.matches && f.match && f.controller) {\n let fetcherRequest = createClientSideRequest(\n init.history,\n f.path,\n f.controller.signal\n );\n return callDataStrategy(\n \"loader\",\n fetcherRequest,\n [f.match],\n f.matches\n ).then((r) => r[0]);\n } else {\n return Promise.resolve({\n type: ResultType.error,\n error: getInternalRouterError(404, {\n pathname: f.path,\n }),\n });\n }\n }),\n ]);\n\n await Promise.all([\n resolveDeferredResults(\n currentMatches,\n matchesToLoad,\n loaderResults,\n loaderResults.map(() => request.signal),\n false,\n state.loaderData\n ),\n resolveDeferredResults(\n currentMatches,\n fetchersToLoad.map((f) => f.match),\n fetcherResults,\n fetchersToLoad.map((f) => (f.controller ? f.controller.signal : null)),\n true\n ),\n ]);\n\n return {\n loaderResults,\n fetcherResults,\n };\n }\n\n function interruptActiveLoads() {\n // Every interruption triggers a revalidation\n isRevalidationRequired = true;\n\n // Cancel pending route-level deferreds and mark cancelled routes for\n // revalidation\n cancelledDeferredRoutes.push(...cancelActiveDeferreds());\n\n // Abort in-flight fetcher loads\n fetchLoadMatches.forEach((_, key) => {\n if (fetchControllers.has(key)) {\n cancelledFetcherLoads.push(key);\n abortFetcher(key);\n }\n });\n }\n\n function updateFetcherState(\n key: string,\n fetcher: Fetcher,\n opts: { flushSync?: boolean } = {}\n ) {\n state.fetchers.set(key, fetcher);\n updateState(\n { fetchers: new Map(state.fetchers) },\n { flushSync: (opts && opts.flushSync) === true }\n );\n }\n\n function setFetcherError(\n key: string,\n routeId: string,\n error: any,\n opts: { flushSync?: boolean } = {}\n ) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n deleteFetcher(key);\n updateState(\n {\n errors: {\n [boundaryMatch.route.id]: error,\n },\n fetchers: new Map(state.fetchers),\n },\n { flushSync: (opts && opts.flushSync) === true }\n );\n }\n\n function getFetcher(key: string): Fetcher {\n if (future.v7_fetcherPersist) {\n activeFetchers.set(key, (activeFetchers.get(key) || 0) + 1);\n // If this fetcher was previously marked for deletion, unmark it since we\n // have a new instance\n if (deletedFetchers.has(key)) {\n deletedFetchers.delete(key);\n }\n }\n return state.fetchers.get(key) || IDLE_FETCHER;\n }\n\n function deleteFetcher(key: string): void {\n let fetcher = state.fetchers.get(key);\n // Don't abort the controller if this is a deletion of a fetcher.submit()\n // in it's loading phase since - we don't want to abort the corresponding\n // revalidation and want them to complete and land\n if (\n fetchControllers.has(key) &&\n !(fetcher && fetcher.state === \"loading\" && fetchReloadIds.has(key))\n ) {\n abortFetcher(key);\n }\n fetchLoadMatches.delete(key);\n fetchReloadIds.delete(key);\n fetchRedirectIds.delete(key);\n deletedFetchers.delete(key);\n state.fetchers.delete(key);\n }\n\n function deleteFetcherAndUpdateState(key: string): void {\n if (future.v7_fetcherPersist) {\n let count = (activeFetchers.get(key) || 0) - 1;\n if (count <= 0) {\n activeFetchers.delete(key);\n deletedFetchers.add(key);\n } else {\n activeFetchers.set(key, count);\n }\n } else {\n deleteFetcher(key);\n }\n updateState({ fetchers: new Map(state.fetchers) });\n }\n\n function abortFetcher(key: string) {\n let controller = fetchControllers.get(key);\n invariant(controller, `Expected fetch controller: ${key}`);\n controller.abort();\n fetchControllers.delete(key);\n }\n\n function markFetchersDone(keys: string[]) {\n for (let key of keys) {\n let fetcher = getFetcher(key);\n let doneFetcher = getDoneFetcher(fetcher.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n function markFetchRedirectsDone(): boolean {\n let doneKeys = [];\n let updatedFetchers = false;\n for (let key of fetchRedirectIds) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n fetchRedirectIds.delete(key);\n doneKeys.push(key);\n updatedFetchers = true;\n }\n }\n markFetchersDone(doneKeys);\n return updatedFetchers;\n }\n\n function abortStaleFetchLoads(landedId: number): boolean {\n let yeetedKeys = [];\n for (let [key, id] of fetchReloadIds) {\n if (id < landedId) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n abortFetcher(key);\n fetchReloadIds.delete(key);\n yeetedKeys.push(key);\n }\n }\n }\n markFetchersDone(yeetedKeys);\n return yeetedKeys.length > 0;\n }\n\n function getBlocker(key: string, fn: BlockerFunction) {\n let blocker: Blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n if (blockerFunctions.get(key) !== fn) {\n blockerFunctions.set(key, fn);\n }\n\n return blocker;\n }\n\n function deleteBlocker(key: string) {\n state.blockers.delete(key);\n blockerFunctions.delete(key);\n }\n\n // Utility function to update blockers, ensuring valid state transitions\n function updateBlocker(key: string, newBlocker: Blocker) {\n let blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n // Poor mans state machine :)\n // https://mermaid.live/edit#pako:eNqVkc9OwzAMxl8l8nnjAYrEtDIOHEBIgwvKJTReGy3_lDpIqO27k6awMG0XcrLlnz87nwdonESogKXXBuE79rq75XZO3-yHds0RJVuv70YrPlUrCEe2HfrORS3rubqZfuhtpg5C9wk5tZ4VKcRUq88q9Z8RS0-48cE1iHJkL0ugbHuFLus9L6spZy8nX9MP2CNdomVaposqu3fGayT8T8-jJQwhepo_UtpgBQaDEUom04dZhAN1aJBDlUKJBxE1ceB2Smj0Mln-IBW5AFU2dwUiktt_2Qaq2dBfaKdEup85UV7Yd-dKjlnkabl2Pvr0DTkTreM\n invariant(\n (blocker.state === \"unblocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"proceeding\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"unblocked\") ||\n (blocker.state === \"proceeding\" && newBlocker.state === \"unblocked\"),\n `Invalid blocker state transition: ${blocker.state} -> ${newBlocker.state}`\n );\n\n let blockers = new Map(state.blockers);\n blockers.set(key, newBlocker);\n updateState({ blockers });\n }\n\n function shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n }: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n }): string | undefined {\n if (blockerFunctions.size === 0) {\n return;\n }\n\n // We ony support a single active blocker at the moment since we don't have\n // any compelling use cases for multi-blocker yet\n if (blockerFunctions.size > 1) {\n warning(false, \"A router only supports one blocker at a time\");\n }\n\n let entries = Array.from(blockerFunctions.entries());\n let [blockerKey, blockerFunction] = entries[entries.length - 1];\n let blocker = state.blockers.get(blockerKey);\n\n if (blocker && blocker.state === \"proceeding\") {\n // If the blocker is currently proceeding, we don't need to re-check\n // it and can let this navigation continue\n return;\n }\n\n // At this point, we know we're unblocked/blocked so we need to check the\n // user-provided blocker function\n if (blockerFunction({ currentLocation, nextLocation, historyAction })) {\n return blockerKey;\n }\n }\n\n function cancelActiveDeferreds(\n predicate?: (routeId: string) => boolean\n ): string[] {\n let cancelledRouteIds: string[] = [];\n activeDeferreds.forEach((dfd, routeId) => {\n if (!predicate || predicate(routeId)) {\n // Cancel the deferred - but do not remove from activeDeferreds here -\n // we rely on the subscribers to do that so our tests can assert proper\n // cleanup via _internalActiveDeferreds\n dfd.cancel();\n cancelledRouteIds.push(routeId);\n activeDeferreds.delete(routeId);\n }\n });\n return cancelledRouteIds;\n }\n\n // Opt in to capturing and reporting scroll positions during navigations,\n // used by the component\n function enableScrollRestoration(\n positions: Record,\n getPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ) {\n savedScrollPositions = positions;\n getScrollPosition = getPosition;\n getScrollRestorationKey = getKey || null;\n\n // Perform initial hydration scroll restoration, since we miss the boat on\n // the initial updateState() because we've not yet rendered \n // and therefore have no savedScrollPositions available\n if (!initialScrollRestored && state.navigation === IDLE_NAVIGATION) {\n initialScrollRestored = true;\n let y = getSavedScrollPosition(state.location, state.matches);\n if (y != null) {\n updateState({ restoreScrollPosition: y });\n }\n }\n\n return () => {\n savedScrollPositions = null;\n getScrollPosition = null;\n getScrollRestorationKey = null;\n };\n }\n\n function getScrollKey(location: Location, matches: AgnosticDataRouteMatch[]) {\n if (getScrollRestorationKey) {\n let key = getScrollRestorationKey(\n location,\n matches.map((m) => convertRouteMatchToUiMatch(m, state.loaderData))\n );\n return key || location.key;\n }\n return location.key;\n }\n\n function saveScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): void {\n if (savedScrollPositions && getScrollPosition) {\n let key = getScrollKey(location, matches);\n savedScrollPositions[key] = getScrollPosition();\n }\n }\n\n function getSavedScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): number | null {\n if (savedScrollPositions) {\n let key = getScrollKey(location, matches);\n let y = savedScrollPositions[key];\n if (typeof y === \"number\") {\n return y;\n }\n }\n return null;\n }\n\n function _internalSetRoutes(newRoutes: AgnosticDataRouteObject[]) {\n manifest = {};\n inFlightDataRoutes = convertRoutesToDataRoutes(\n newRoutes,\n mapRouteProperties,\n undefined,\n manifest\n );\n }\n\n router = {\n get basename() {\n return basename;\n },\n get future() {\n return future;\n },\n get state() {\n return state;\n },\n get routes() {\n return dataRoutes;\n },\n get window() {\n return routerWindow;\n },\n initialize,\n subscribe,\n enableScrollRestoration,\n navigate,\n fetch,\n revalidate,\n // Passthrough to history-aware createHref used by useHref so we get proper\n // hash-aware URLs in DOM paths\n createHref: (to: To) => init.history.createHref(to),\n encodeLocation: (to: To) => init.history.encodeLocation(to),\n getFetcher,\n deleteFetcher: deleteFetcherAndUpdateState,\n dispose,\n getBlocker,\n deleteBlocker,\n _internalFetchControllers: fetchControllers,\n _internalActiveDeferreds: activeDeferreds,\n // TODO: Remove setRoutes, it's temporary to avoid dealing with\n // updating the tree while validating the update algorithm.\n _internalSetRoutes,\n };\n\n return router;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createStaticHandler\n////////////////////////////////////////////////////////////////////////////////\n\nexport const UNSAFE_DEFERRED_SYMBOL = Symbol(\"deferred\");\n\n/**\n * Future flags to toggle new feature behavior\n */\nexport interface StaticHandlerFutureConfig {\n v7_relativeSplatPath: boolean;\n v7_throwAbortReason: boolean;\n}\n\nexport interface CreateStaticHandlerOptions {\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n future?: Partial;\n}\n\nexport function createStaticHandler(\n routes: AgnosticRouteObject[],\n opts?: CreateStaticHandlerOptions\n): StaticHandler {\n invariant(\n routes.length > 0,\n \"You must provide a non-empty routes array to createStaticHandler\"\n );\n\n let manifest: RouteManifest = {};\n let basename = (opts ? opts.basename : null) || \"/\";\n let mapRouteProperties: MapRoutePropertiesFunction;\n if (opts?.mapRouteProperties) {\n mapRouteProperties = opts.mapRouteProperties;\n } else if (opts?.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = opts.detectErrorBoundary;\n mapRouteProperties = (route) => ({\n hasErrorBoundary: detectErrorBoundary(route),\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n // Config driven behavior flags\n let future: StaticHandlerFutureConfig = {\n v7_relativeSplatPath: false,\n v7_throwAbortReason: false,\n ...(opts ? opts.future : null),\n };\n\n let dataRoutes = convertRoutesToDataRoutes(\n routes,\n mapRouteProperties,\n undefined,\n manifest\n );\n\n /**\n * The query() method is intended for document requests, in which we want to\n * call an optional action and potentially multiple loaders for all nested\n * routes. It returns a StaticHandlerContext object, which is very similar\n * to the router state (location, loaderData, actionData, errors, etc.) and\n * also adds SSR-specific information such as the statusCode and headers\n * from action/loaders Responses.\n *\n * It _should_ never throw and should report all errors through the\n * returned context.errors object, properly associating errors to their error\n * boundary. Additionally, it tracks _deepestRenderedBoundaryId which can be\n * used to emulate React error boundaries during SSr by performing a second\n * pass only down to the boundaryId.\n *\n * The one exception where we do not return a StaticHandlerContext is when a\n * redirect response is returned or thrown from any action/loader. We\n * propagate that out and return the raw Response so the HTTP server can\n * return it directly.\n *\n * - `opts.requestContext` is an optional server context that will be passed\n * to actions/loaders in the `context` parameter\n * - `opts.skipLoaderErrorBubbling` is an optional parameter that will prevent\n * the bubbling of errors which allows single-fetch-type implementations\n * where the client will handle the bubbling and we may need to return data\n * for the handling route\n */\n async function query(\n request: Request,\n {\n requestContext,\n skipLoaderErrorBubbling,\n unstable_dataStrategy,\n }: {\n requestContext?: unknown;\n skipLoaderErrorBubbling?: boolean;\n unstable_dataStrategy?: DataStrategyFunction;\n } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\") {\n let error = getInternalRouterError(405, { method });\n let { matches: methodNotAllowedMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: methodNotAllowedMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n } else if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: notFoundMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let result = await queryImpl(\n request,\n location,\n matches,\n requestContext,\n unstable_dataStrategy || null,\n skipLoaderErrorBubbling === true,\n null\n );\n if (isResponse(result)) {\n return result;\n }\n\n // When returning StaticHandlerContext, we patch back in the location here\n // since we need it for React Context. But this helps keep our submit and\n // loadRouteData operating on a Request instead of a Location\n return { location, basename, ...result };\n }\n\n /**\n * The queryRoute() method is intended for targeted route requests, either\n * for fetch ?_data requests or resource route requests. In this case, we\n * are only ever calling a single action or loader, and we are returning the\n * returned value directly. In most cases, this will be a Response returned\n * from the action/loader, but it may be a primitive or other value as well -\n * and in such cases the calling context should handle that accordingly.\n *\n * We do respect the throw/return differentiation, so if an action/loader\n * throws, then this method will throw the value. This is important so we\n * can do proper boundary identification in Remix where a thrown Response\n * must go to the Catch Boundary but a returned Response is happy-path.\n *\n * One thing to note is that any Router-initiated Errors that make sense\n * to associate with a status code will be thrown as an ErrorResponse\n * instance which include the raw Error, such that the calling context can\n * serialize the error as they see fit while including the proper response\n * code. Examples here are 404 and 405 errors that occur prior to reaching\n * any user-defined loaders.\n *\n * - `opts.routeId` allows you to specify the specific route handler to call.\n * If not provided the handler will determine the proper route by matching\n * against `request.url`\n * - `opts.requestContext` is an optional server context that will be passed\n * to actions/loaders in the `context` parameter\n */\n async function queryRoute(\n request: Request,\n {\n routeId,\n requestContext,\n unstable_dataStrategy,\n }: {\n requestContext?: unknown;\n routeId?: string;\n unstable_dataStrategy?: DataStrategyFunction;\n } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\" && method !== \"OPTIONS\") {\n throw getInternalRouterError(405, { method });\n } else if (!matches) {\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let match = routeId\n ? matches.find((m) => m.route.id === routeId)\n : getTargetMatch(matches, location);\n\n if (routeId && !match) {\n throw getInternalRouterError(403, {\n pathname: location.pathname,\n routeId,\n });\n } else if (!match) {\n // This should never hit I don't think?\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let result = await queryImpl(\n request,\n location,\n matches,\n requestContext,\n unstable_dataStrategy || null,\n false,\n match\n );\n\n if (isResponse(result)) {\n return result;\n }\n\n let error = result.errors ? Object.values(result.errors)[0] : undefined;\n if (error !== undefined) {\n // If we got back result.errors, that means the loader/action threw\n // _something_ that wasn't a Response, but it's not guaranteed/required\n // to be an `instanceof Error` either, so we have to use throw here to\n // preserve the \"error\" state outside of queryImpl.\n throw error;\n }\n\n // Pick off the right state value to return\n if (result.actionData) {\n return Object.values(result.actionData)[0];\n }\n\n if (result.loaderData) {\n let data = Object.values(result.loaderData)[0];\n if (result.activeDeferreds?.[match.route.id]) {\n data[UNSAFE_DEFERRED_SYMBOL] = result.activeDeferreds[match.route.id];\n }\n return data;\n }\n\n return undefined;\n }\n\n async function queryImpl(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n routeMatch: AgnosticDataRouteMatch | null\n ): Promise | Response> {\n invariant(\n request.signal,\n \"query()/queryRoute() requests must contain an AbortController signal\"\n );\n\n try {\n if (isMutationMethod(request.method.toLowerCase())) {\n let result = await submit(\n request,\n matches,\n routeMatch || getTargetMatch(matches, location),\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n routeMatch != null\n );\n return result;\n }\n\n let result = await loadRouteData(\n request,\n matches,\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n routeMatch\n );\n return isResponse(result)\n ? result\n : {\n ...result,\n actionData: null,\n actionHeaders: {},\n };\n } catch (e) {\n // If the user threw/returned a Response in callLoaderOrAction for a\n // `queryRoute` call, we throw the `HandlerResult` to bail out early\n // and then return or throw the raw Response here accordingly\n if (isHandlerResult(e) && isResponse(e.result)) {\n if (e.type === ResultType.error) {\n throw e.result;\n }\n return e.result;\n }\n // Redirects are always returned since they don't propagate to catch\n // boundaries\n if (isRedirectResponse(e)) {\n return e;\n }\n throw e;\n }\n }\n\n async function submit(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n actionMatch: AgnosticDataRouteMatch,\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n isRouteRequest: boolean\n ): Promise | Response> {\n let result: DataResult;\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n let error = getInternalRouterError(405, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: actionMatch.route.id,\n });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n } else {\n let results = await callDataStrategy(\n \"action\",\n request,\n [actionMatch],\n matches,\n isRouteRequest,\n requestContext,\n unstable_dataStrategy\n );\n result = results[0];\n\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n }\n\n if (isRedirectResult(result)) {\n // Uhhhh - this should never happen, we should always throw these from\n // callLoaderOrAction, but the type narrowing here keeps TS happy and we\n // can get back on the \"throw all redirect responses\" train here should\n // this ever happen :/\n throw new Response(null, {\n status: result.response.status,\n headers: {\n Location: result.response.headers.get(\"Location\")!,\n },\n });\n }\n\n if (isDeferredResult(result)) {\n let error = getInternalRouterError(400, { type: \"defer-action\" });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n }\n\n if (isRouteRequest) {\n // Note: This should only be non-Response values if we get here, since\n // isRouteRequest should throw any Response received in callLoaderOrAction\n if (isErrorResult(result)) {\n throw result.error;\n }\n\n return {\n matches: [actionMatch],\n loaderData: {},\n actionData: { [actionMatch.route.id]: result.data },\n errors: null,\n // Note: statusCode + headers are unused here since queryRoute will\n // return the raw Response or value\n statusCode: 200,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n // Create a GET request for the loaders\n let loaderRequest = new Request(request.url, {\n headers: request.headers,\n redirect: request.redirect,\n signal: request.signal,\n });\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = skipLoaderErrorBubbling\n ? actionMatch\n : findNearestBoundary(matches, actionMatch.route.id);\n\n let context = await loadRouteData(\n loaderRequest,\n matches,\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n null,\n [boundaryMatch.route.id, result]\n );\n\n // action status codes take precedence over loader status codes\n return {\n ...context,\n statusCode: isRouteErrorResponse(result.error)\n ? result.error.status\n : result.statusCode != null\n ? result.statusCode\n : 500,\n actionData: null,\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\n };\n }\n\n let context = await loadRouteData(\n loaderRequest,\n matches,\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n null\n );\n\n return {\n ...context,\n actionData: {\n [actionMatch.route.id]: result.data,\n },\n // action status codes take precedence over loader status codes\n ...(result.statusCode ? { statusCode: result.statusCode } : {}),\n actionHeaders: result.headers\n ? { [actionMatch.route.id]: result.headers }\n : {},\n };\n }\n\n async function loadRouteData(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n routeMatch: AgnosticDataRouteMatch | null,\n pendingActionResult?: PendingActionResult\n ): Promise<\n | Omit<\n StaticHandlerContext,\n \"location\" | \"basename\" | \"actionData\" | \"actionHeaders\"\n >\n | Response\n > {\n let isRouteRequest = routeMatch != null;\n\n // Short circuit if we have no loaders to run (queryRoute())\n if (\n isRouteRequest &&\n !routeMatch?.route.loader &&\n !routeMatch?.route.lazy\n ) {\n throw getInternalRouterError(400, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: routeMatch?.route.id,\n });\n }\n\n let requestMatches = routeMatch\n ? [routeMatch]\n : pendingActionResult && isErrorResult(pendingActionResult[1])\n ? getLoaderMatchesUntilBoundary(matches, pendingActionResult[0])\n : matches;\n let matchesToLoad = requestMatches.filter(\n (m) => m.route.loader || m.route.lazy\n );\n\n // Short circuit if we have no loaders to run (query())\n if (matchesToLoad.length === 0) {\n return {\n matches,\n // Add a null for all matched routes for proper revalidation on the client\n loaderData: matches.reduce(\n (acc, m) => Object.assign(acc, { [m.route.id]: null }),\n {}\n ),\n errors:\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? {\n [pendingActionResult[0]]: pendingActionResult[1].error,\n }\n : null,\n statusCode: 200,\n loaderHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let results = await callDataStrategy(\n \"loader\",\n request,\n matchesToLoad,\n matches,\n isRouteRequest,\n requestContext,\n unstable_dataStrategy\n );\n\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n\n // Process and commit output from loaders\n let activeDeferreds = new Map();\n let context = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingActionResult,\n activeDeferreds,\n skipLoaderErrorBubbling\n );\n\n // Add a null for any non-loader matches for proper revalidation on the client\n let executedLoaders = new Set(\n matchesToLoad.map((match) => match.route.id)\n );\n matches.forEach((match) => {\n if (!executedLoaders.has(match.route.id)) {\n context.loaderData[match.route.id] = null;\n }\n });\n\n return {\n ...context,\n matches,\n activeDeferreds:\n activeDeferreds.size > 0\n ? Object.fromEntries(activeDeferreds.entries())\n : null,\n };\n }\n\n // Utility wrapper for calling dataStrategy server-side without having to\n // pass around the manifest, mapRouteProperties, etc.\n async function callDataStrategy(\n type: \"loader\" | \"action\",\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n isRouteRequest: boolean,\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null\n ): Promise {\n let results = await callDataStrategyImpl(\n unstable_dataStrategy || defaultDataStrategy,\n type,\n request,\n matchesToLoad,\n matches,\n manifest,\n mapRouteProperties,\n requestContext\n );\n\n return await Promise.all(\n results.map((result, i) => {\n if (isRedirectHandlerResult(result)) {\n let response = result.result as Response;\n // Throw redirects and let the server handle them with an HTTP redirect\n throw normalizeRelativeRoutingRedirectResponse(\n response,\n request,\n matchesToLoad[i].route.id,\n matches,\n basename,\n future.v7_relativeSplatPath\n );\n }\n if (isResponse(result.result) && isRouteRequest) {\n // For SSR single-route requests, we want to hand Responses back\n // directly without unwrapping\n throw result;\n }\n\n return convertHandlerResultToDataResult(result);\n })\n );\n }\n\n return {\n dataRoutes,\n query,\n queryRoute,\n };\n}\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Helpers\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Given an existing StaticHandlerContext and an error thrown at render time,\n * provide an updated StaticHandlerContext suitable for a second SSR render\n */\nexport function getStaticContextFromError(\n routes: AgnosticDataRouteObject[],\n context: StaticHandlerContext,\n error: any\n) {\n let newContext: StaticHandlerContext = {\n ...context,\n statusCode: isRouteErrorResponse(error) ? error.status : 500,\n errors: {\n [context._deepestRenderedBoundaryId || routes[0].id]: error,\n },\n };\n return newContext;\n}\n\nfunction throwStaticHandlerAbortedError(\n request: Request,\n isRouteRequest: boolean,\n future: StaticHandlerFutureConfig\n) {\n if (future.v7_throwAbortReason && request.signal.reason !== undefined) {\n throw request.signal.reason;\n }\n\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(`${method}() call aborted: ${request.method} ${request.url}`);\n}\n\nfunction isSubmissionNavigation(\n opts: BaseNavigateOrFetchOptions\n): opts is SubmissionNavigateOptions {\n return (\n opts != null &&\n ((\"formData\" in opts && opts.formData != null) ||\n (\"body\" in opts && opts.body !== undefined))\n );\n}\n\nfunction normalizeTo(\n location: Path,\n matches: AgnosticDataRouteMatch[],\n basename: string,\n prependBasename: boolean,\n to: To | null,\n v7_relativeSplatPath: boolean,\n fromRouteId?: string,\n relative?: RelativeRoutingType\n) {\n let contextualMatches: AgnosticDataRouteMatch[];\n let activeRouteMatch: AgnosticDataRouteMatch | undefined;\n if (fromRouteId) {\n // Grab matches up to the calling route so our route-relative logic is\n // relative to the correct source route\n contextualMatches = [];\n for (let match of matches) {\n contextualMatches.push(match);\n if (match.route.id === fromRouteId) {\n activeRouteMatch = match;\n break;\n }\n }\n } else {\n contextualMatches = matches;\n activeRouteMatch = matches[matches.length - 1];\n }\n\n // Resolve the relative path\n let path = resolveTo(\n to ? to : \".\",\n getResolveToMatches(contextualMatches, v7_relativeSplatPath),\n stripBasename(location.pathname, basename) || location.pathname,\n relative === \"path\"\n );\n\n // When `to` is not specified we inherit search/hash from the current\n // location, unlike when to=\".\" and we just inherit the path.\n // See https://github.com/remix-run/remix/issues/927\n if (to == null) {\n path.search = location.search;\n path.hash = location.hash;\n }\n\n // Add an ?index param for matched index routes if we don't already have one\n if (\n (to == null || to === \"\" || to === \".\") &&\n activeRouteMatch &&\n activeRouteMatch.route.index &&\n !hasNakedIndexQuery(path.search)\n ) {\n path.search = path.search\n ? path.search.replace(/^\\?/, \"?index&\")\n : \"?index\";\n }\n\n // If we're operating within a basename, prepend it to the pathname. If\n // this is a root navigation, then just use the raw basename which allows\n // the basename to have full control over the presence of a trailing slash\n // on root actions\n if (prependBasename && basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n\n return createPath(path);\n}\n\n// Normalize navigation options by converting formMethod=GET formData objects to\n// URLSearchParams so they behave identically to links with query params\nfunction normalizeNavigateOptions(\n normalizeFormMethod: boolean,\n isFetcher: boolean,\n path: string,\n opts?: BaseNavigateOrFetchOptions\n): {\n path: string;\n submission?: Submission;\n error?: ErrorResponseImpl;\n} {\n // Return location verbatim on non-submission navigations\n if (!opts || !isSubmissionNavigation(opts)) {\n return { path };\n }\n\n if (opts.formMethod && !isValidMethod(opts.formMethod)) {\n return {\n path,\n error: getInternalRouterError(405, { method: opts.formMethod }),\n };\n }\n\n let getInvalidBodyError = () => ({\n path,\n error: getInternalRouterError(400, { type: \"invalid-body\" }),\n });\n\n // Create a Submission on non-GET navigations\n let rawFormMethod = opts.formMethod || \"get\";\n let formMethod = normalizeFormMethod\n ? (rawFormMethod.toUpperCase() as V7_FormMethod)\n : (rawFormMethod.toLowerCase() as FormMethod);\n let formAction = stripHashFromPath(path);\n\n if (opts.body !== undefined) {\n if (opts.formEncType === \"text/plain\") {\n // text only support POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n\n let text =\n typeof opts.body === \"string\"\n ? opts.body\n : opts.body instanceof FormData ||\n opts.body instanceof URLSearchParams\n ? // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#plain-text-form-data\n Array.from(opts.body.entries()).reduce(\n (acc, [name, value]) => `${acc}${name}=${value}\\n`,\n \"\"\n )\n : String(opts.body);\n\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json: undefined,\n text,\n },\n };\n } else if (opts.formEncType === \"application/json\") {\n // json only supports POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n\n try {\n let json =\n typeof opts.body === \"string\" ? JSON.parse(opts.body) : opts.body;\n\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json,\n text: undefined,\n },\n };\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n }\n\n invariant(\n typeof FormData === \"function\",\n \"FormData is not available in this environment\"\n );\n\n let searchParams: URLSearchParams;\n let formData: FormData;\n\n if (opts.formData) {\n searchParams = convertFormDataToSearchParams(opts.formData);\n formData = opts.formData;\n } else if (opts.body instanceof FormData) {\n searchParams = convertFormDataToSearchParams(opts.body);\n formData = opts.body;\n } else if (opts.body instanceof URLSearchParams) {\n searchParams = opts.body;\n formData = convertSearchParamsToFormData(searchParams);\n } else if (opts.body == null) {\n searchParams = new URLSearchParams();\n formData = new FormData();\n } else {\n try {\n searchParams = new URLSearchParams(opts.body);\n formData = convertSearchParamsToFormData(searchParams);\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n\n let submission: Submission = {\n formMethod,\n formAction,\n formEncType:\n (opts && opts.formEncType) || \"application/x-www-form-urlencoded\",\n formData,\n json: undefined,\n text: undefined,\n };\n\n if (isMutationMethod(submission.formMethod)) {\n return { path, submission };\n }\n\n // Flatten submission onto URLSearchParams for GET submissions\n let parsedPath = parsePath(path);\n // On GET navigation submissions we can drop the ?index param from the\n // resulting location since all loaders will run. But fetcher GET submissions\n // only run a single loader so we need to preserve any incoming ?index params\n if (isFetcher && parsedPath.search && hasNakedIndexQuery(parsedPath.search)) {\n searchParams.append(\"index\", \"\");\n }\n parsedPath.search = `?${searchParams}`;\n\n return { path: createPath(parsedPath), submission };\n}\n\n// Filter out all routes below any caught error as they aren't going to\n// render so we don't need to load them\nfunction getLoaderMatchesUntilBoundary(\n matches: AgnosticDataRouteMatch[],\n boundaryId: string\n) {\n let boundaryMatches = matches;\n if (boundaryId) {\n let index = matches.findIndex((m) => m.route.id === boundaryId);\n if (index >= 0) {\n boundaryMatches = matches.slice(0, index);\n }\n }\n return boundaryMatches;\n}\n\nfunction getMatchesToLoad(\n history: History,\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n submission: Submission | undefined,\n location: Location,\n isInitialLoad: boolean,\n skipActionErrorRevalidation: boolean,\n isRevalidationRequired: boolean,\n cancelledDeferredRoutes: string[],\n cancelledFetcherLoads: string[],\n deletedFetchers: Set,\n fetchLoadMatches: Map,\n fetchRedirectIds: Set,\n routesToUse: AgnosticDataRouteObject[],\n basename: string | undefined,\n pendingActionResult?: PendingActionResult\n): [AgnosticDataRouteMatch[], RevalidatingFetcher[]] {\n let actionResult = pendingActionResult\n ? isErrorResult(pendingActionResult[1])\n ? pendingActionResult[1].error\n : pendingActionResult[1].data\n : undefined;\n let currentUrl = history.createURL(state.location);\n let nextUrl = history.createURL(location);\n\n // Pick navigation matches that are net-new or qualify for revalidation\n let boundaryId =\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? pendingActionResult[0]\n : undefined;\n let boundaryMatches = boundaryId\n ? getLoaderMatchesUntilBoundary(matches, boundaryId)\n : matches;\n\n // Don't revalidate loaders by default after action 4xx/5xx responses\n // when the flag is enabled. They can still opt-into revalidation via\n // `shouldRevalidate` via `actionResult`\n let actionStatus = pendingActionResult\n ? pendingActionResult[1].statusCode\n : undefined;\n let shouldSkipRevalidation =\n skipActionErrorRevalidation && actionStatus && actionStatus >= 400;\n\n let navigationMatches = boundaryMatches.filter((match, index) => {\n let { route } = match;\n if (route.lazy) {\n // We haven't loaded this route yet so we don't know if it's got a loader!\n return true;\n }\n\n if (route.loader == null) {\n return false;\n }\n\n if (isInitialLoad) {\n if (typeof route.loader !== \"function\" || route.loader.hydrate) {\n return true;\n }\n return (\n state.loaderData[route.id] === undefined &&\n // Don't re-run if the loader ran and threw an error\n (!state.errors || state.errors[route.id] === undefined)\n );\n }\n\n // Always call the loader on new route instances and pending defer cancellations\n if (\n isNewLoader(state.loaderData, state.matches[index], match) ||\n cancelledDeferredRoutes.some((id) => id === match.route.id)\n ) {\n return true;\n }\n\n // This is the default implementation for when we revalidate. If the route\n // provides it's own implementation, then we give them full control but\n // provide this value so they can leverage it if needed after they check\n // their own specific use cases\n let currentRouteMatch = state.matches[index];\n let nextRouteMatch = match;\n\n return shouldRevalidateLoader(match, {\n currentUrl,\n currentParams: currentRouteMatch.params,\n nextUrl,\n nextParams: nextRouteMatch.params,\n ...submission,\n actionResult,\n unstable_actionStatus: actionStatus,\n defaultShouldRevalidate: shouldSkipRevalidation\n ? false\n : // Forced revalidation due to submission, useRevalidator, or X-Remix-Revalidate\n isRevalidationRequired ||\n currentUrl.pathname + currentUrl.search ===\n nextUrl.pathname + nextUrl.search ||\n // Search params affect all loaders\n currentUrl.search !== nextUrl.search ||\n isNewRouteInstance(currentRouteMatch, nextRouteMatch),\n });\n });\n\n // Pick fetcher.loads that need to be revalidated\n let revalidatingFetchers: RevalidatingFetcher[] = [];\n fetchLoadMatches.forEach((f, key) => {\n // Don't revalidate:\n // - on initial load (shouldn't be any fetchers then anyway)\n // - if fetcher won't be present in the subsequent render\n // - no longer matches the URL (v7_fetcherPersist=false)\n // - was unmounted but persisted due to v7_fetcherPersist=true\n if (\n isInitialLoad ||\n !matches.some((m) => m.route.id === f.routeId) ||\n deletedFetchers.has(key)\n ) {\n return;\n }\n\n let fetcherMatches = matchRoutes(routesToUse, f.path, basename);\n\n // If the fetcher path no longer matches, push it in with null matches so\n // we can trigger a 404 in callLoadersAndMaybeResolveData. Note this is\n // currently only a use-case for Remix HMR where the route tree can change\n // at runtime and remove a route previously loaded via a fetcher\n if (!fetcherMatches) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: null,\n match: null,\n controller: null,\n });\n return;\n }\n\n // Revalidating fetchers are decoupled from the route matches since they\n // load from a static href. They revalidate based on explicit revalidation\n // (submission, useRevalidator, or X-Remix-Revalidate)\n let fetcher = state.fetchers.get(key);\n let fetcherMatch = getTargetMatch(fetcherMatches, f.path);\n\n let shouldRevalidate = false;\n if (fetchRedirectIds.has(key)) {\n // Never trigger a revalidation of an actively redirecting fetcher\n shouldRevalidate = false;\n } else if (cancelledFetcherLoads.includes(key)) {\n // Always revalidate if the fetcher was cancelled\n shouldRevalidate = true;\n } else if (\n fetcher &&\n fetcher.state !== \"idle\" &&\n fetcher.data === undefined\n ) {\n // If the fetcher hasn't ever completed loading yet, then this isn't a\n // revalidation, it would just be a brand new load if an explicit\n // revalidation is required\n shouldRevalidate = isRevalidationRequired;\n } else {\n // Otherwise fall back on any user-defined shouldRevalidate, defaulting\n // to explicit revalidations only\n shouldRevalidate = shouldRevalidateLoader(fetcherMatch, {\n currentUrl,\n currentParams: state.matches[state.matches.length - 1].params,\n nextUrl,\n nextParams: matches[matches.length - 1].params,\n ...submission,\n actionResult,\n unstable_actionStatus: actionStatus,\n defaultShouldRevalidate: shouldSkipRevalidation\n ? false\n : isRevalidationRequired,\n });\n }\n\n if (shouldRevalidate) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: fetcherMatches,\n match: fetcherMatch,\n controller: new AbortController(),\n });\n }\n });\n\n return [navigationMatches, revalidatingFetchers];\n}\n\nfunction isNewLoader(\n currentLoaderData: RouteData,\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let isNew =\n // [a] -> [a, b]\n !currentMatch ||\n // [a, b] -> [a, c]\n match.route.id !== currentMatch.route.id;\n\n // Handle the case that we don't have data for a re-used route, potentially\n // from a prior error or from a cancelled pending deferred\n let isMissingData = currentLoaderData[match.route.id] === undefined;\n\n // Always load if this is a net-new route or we don't yet have data\n return isNew || isMissingData;\n}\n\nfunction isNewRouteInstance(\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let currentPath = currentMatch.route.path;\n return (\n // param change for this match, /users/123 -> /users/456\n currentMatch.pathname !== match.pathname ||\n // splat param changed, which is not present in match.path\n // e.g. /files/images/avatar.jpg -> files/finances.xls\n (currentPath != null &&\n currentPath.endsWith(\"*\") &&\n currentMatch.params[\"*\"] !== match.params[\"*\"])\n );\n}\n\nfunction shouldRevalidateLoader(\n loaderMatch: AgnosticDataRouteMatch,\n arg: ShouldRevalidateFunctionArgs\n) {\n if (loaderMatch.route.shouldRevalidate) {\n let routeChoice = loaderMatch.route.shouldRevalidate(arg);\n if (typeof routeChoice === \"boolean\") {\n return routeChoice;\n }\n }\n\n return arg.defaultShouldRevalidate;\n}\n\n/**\n * Execute route.lazy() methods to lazily load route modules (loader, action,\n * shouldRevalidate) and update the routeManifest in place which shares objects\n * with dataRoutes so those get updated as well.\n */\nasync function loadLazyRouteModule(\n route: AgnosticDataRouteObject,\n mapRouteProperties: MapRoutePropertiesFunction,\n manifest: RouteManifest\n) {\n if (!route.lazy) {\n return;\n }\n\n let lazyRoute = await route.lazy();\n\n // If the lazy route function was executed and removed by another parallel\n // call then we can return - first lazy() to finish wins because the return\n // value of lazy is expected to be static\n if (!route.lazy) {\n return;\n }\n\n let routeToUpdate = manifest[route.id];\n invariant(routeToUpdate, \"No route found in manifest\");\n\n // Update the route in place. This should be safe because there's no way\n // we could yet be sitting on this route as we can't get there without\n // resolving lazy() first.\n //\n // This is different than the HMR \"update\" use-case where we may actively be\n // on the route being updated. The main concern boils down to \"does this\n // mutation affect any ongoing navigations or any current state.matches\n // values?\". If not, it should be safe to update in place.\n let routeUpdates: Record = {};\n for (let lazyRouteProperty in lazyRoute) {\n let staticRouteValue =\n routeToUpdate[lazyRouteProperty as keyof typeof routeToUpdate];\n\n let isPropertyStaticallyDefined =\n staticRouteValue !== undefined &&\n // This property isn't static since it should always be updated based\n // on the route updates\n lazyRouteProperty !== \"hasErrorBoundary\";\n\n warning(\n !isPropertyStaticallyDefined,\n `Route \"${routeToUpdate.id}\" has a static property \"${lazyRouteProperty}\" ` +\n `defined but its lazy function is also returning a value for this property. ` +\n `The lazy route property \"${lazyRouteProperty}\" will be ignored.`\n );\n\n if (\n !isPropertyStaticallyDefined &&\n !immutableRouteKeys.has(lazyRouteProperty as ImmutableRouteKey)\n ) {\n routeUpdates[lazyRouteProperty] =\n lazyRoute[lazyRouteProperty as keyof typeof lazyRoute];\n }\n }\n\n // Mutate the route with the provided updates. Do this first so we pass\n // the updated version to mapRouteProperties\n Object.assign(routeToUpdate, routeUpdates);\n\n // Mutate the `hasErrorBoundary` property on the route based on the route\n // updates and remove the `lazy` function so we don't resolve the lazy\n // route again.\n Object.assign(routeToUpdate, {\n // To keep things framework agnostic, we use the provided\n // `mapRouteProperties` (or wrapped `detectErrorBoundary`) function to\n // set the framework-aware properties (`element`/`hasErrorBoundary`) since\n // the logic will differ between frameworks.\n ...mapRouteProperties(routeToUpdate),\n lazy: undefined,\n });\n}\n\n// Default implementation of `dataStrategy` which fetches all loaders in parallel\nfunction defaultDataStrategy(\n opts: DataStrategyFunctionArgs\n): ReturnType {\n return Promise.all(opts.matches.map((m) => m.resolve()));\n}\n\nasync function callDataStrategyImpl(\n dataStrategyImpl: DataStrategyFunction,\n type: \"loader\" | \"action\",\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n requestContext?: unknown\n): Promise {\n let routeIdsToLoad = matchesToLoad.reduce(\n (acc, m) => acc.add(m.route.id),\n new Set()\n );\n let loadedMatches = new Set();\n\n // Send all matches here to allow for a middleware-type implementation.\n // handler will be a no-op for unneeded routes and we filter those results\n // back out below.\n let results = await dataStrategyImpl({\n matches: matches.map((match) => {\n let shouldLoad = routeIdsToLoad.has(match.route.id);\n // `resolve` encapsulates the route.lazy, executing the\n // loader/action, and mapping return values/thrown errors to a\n // HandlerResult. Users can pass a callback to take fine-grained control\n // over the execution of the loader/action\n let resolve: DataStrategyMatch[\"resolve\"] = (handlerOverride) => {\n loadedMatches.add(match.route.id);\n return shouldLoad\n ? callLoaderOrAction(\n type,\n request,\n match,\n manifest,\n mapRouteProperties,\n handlerOverride,\n requestContext\n )\n : Promise.resolve({ type: ResultType.data, result: undefined });\n };\n\n return {\n ...match,\n shouldLoad,\n resolve,\n };\n }),\n request,\n params: matches[0].params,\n context: requestContext,\n });\n\n // Throw if any loadRoute implementations not called since they are what\n // ensures a route is fully loaded\n matches.forEach((m) =>\n invariant(\n loadedMatches.has(m.route.id),\n `\\`match.resolve()\\` was not called for route id \"${m.route.id}\". ` +\n \"You must call `match.resolve()` on every match passed to \" +\n \"`dataStrategy` to ensure all routes are properly loaded.\"\n )\n );\n\n // Filter out any middleware-only matches for which we didn't need to run handlers\n return results.filter((_, i) => routeIdsToLoad.has(matches[i].route.id));\n}\n\n// Default logic for calling a loader/action is the user has no specified a dataStrategy\nasync function callLoaderOrAction(\n type: \"loader\" | \"action\",\n request: Request,\n match: AgnosticDataRouteMatch,\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n handlerOverride: Parameters[0],\n staticContext?: unknown\n): Promise {\n let result: HandlerResult;\n let onReject: (() => void) | undefined;\n\n let runHandler = (\n handler: AgnosticRouteObject[\"loader\"] | AgnosticRouteObject[\"action\"]\n ): Promise => {\n // Setup a promise we can race against so that abort signals short circuit\n let reject: () => void;\n // This will never resolve so safe to type it as Promise to\n // satisfy the function return value\n let abortPromise = new Promise((_, r) => (reject = r));\n onReject = () => reject();\n request.signal.addEventListener(\"abort\", onReject);\n\n let actualHandler = (ctx?: unknown) => {\n if (typeof handler !== \"function\") {\n return Promise.reject(\n new Error(\n `You cannot call the handler for a route which defines a boolean ` +\n `\"${type}\" [routeId: ${match.route.id}]`\n )\n );\n }\n return handler(\n {\n request,\n params: match.params,\n context: staticContext,\n },\n ...(ctx !== undefined ? [ctx] : [])\n );\n };\n\n let handlerPromise: Promise;\n if (handlerOverride) {\n handlerPromise = handlerOverride((ctx: unknown) => actualHandler(ctx));\n } else {\n handlerPromise = (async () => {\n try {\n let val = await actualHandler();\n return { type: \"data\", result: val };\n } catch (e) {\n return { type: \"error\", result: e };\n }\n })();\n }\n\n return Promise.race([handlerPromise, abortPromise]);\n };\n\n try {\n let handler = match.route[type];\n\n if (match.route.lazy) {\n if (handler) {\n // Run statically defined handler in parallel with lazy()\n let handlerError;\n let [value] = await Promise.all([\n // If the handler throws, don't let it immediately bubble out,\n // since we need to let the lazy() execution finish so we know if this\n // route has a boundary that can handle the error\n runHandler(handler).catch((e) => {\n handlerError = e;\n }),\n loadLazyRouteModule(match.route, mapRouteProperties, manifest),\n ]);\n if (handlerError !== undefined) {\n throw handlerError;\n }\n result = value!;\n } else {\n // Load lazy route module, then run any returned handler\n await loadLazyRouteModule(match.route, mapRouteProperties, manifest);\n\n handler = match.route[type];\n if (handler) {\n // Handler still runs even if we got interrupted to maintain consistency\n // with un-abortable behavior of handler execution on non-lazy or\n // previously-lazy-loaded routes\n result = await runHandler(handler);\n } else if (type === \"action\") {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(405, {\n method: request.method,\n pathname,\n routeId: match.route.id,\n });\n } else {\n // lazy() route has no loader to run. Short circuit here so we don't\n // hit the invariant below that errors on returning undefined.\n return { type: ResultType.data, result: undefined };\n }\n }\n } else if (!handler) {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(404, {\n pathname,\n });\n } else {\n result = await runHandler(handler);\n }\n\n invariant(\n result.result !== undefined,\n `You defined ${type === \"action\" ? \"an action\" : \"a loader\"} for route ` +\n `\"${match.route.id}\" but didn't return anything from your \\`${type}\\` ` +\n `function. Please return a value or \\`null\\`.`\n );\n } catch (e) {\n // We should already be catching and converting normal handler executions to\n // HandlerResults and returning them, so anything that throws here is an\n // unexpected error we still need to wrap\n return { type: ResultType.error, result: e };\n } finally {\n if (onReject) {\n request.signal.removeEventListener(\"abort\", onReject);\n }\n }\n\n return result;\n}\n\nasync function convertHandlerResultToDataResult(\n handlerResult: HandlerResult\n): Promise {\n let { result, type, status } = handlerResult;\n\n if (isResponse(result)) {\n let data: any;\n\n try {\n let contentType = result.headers.get(\"Content-Type\");\n // Check between word boundaries instead of startsWith() due to the last\n // paragraph of https://httpwg.org/specs/rfc9110.html#field.content-type\n if (contentType && /\\bapplication\\/json\\b/.test(contentType)) {\n if (result.body == null) {\n data = null;\n } else {\n data = await result.json();\n }\n } else {\n data = await result.text();\n }\n } catch (e) {\n return { type: ResultType.error, error: e };\n }\n\n if (type === ResultType.error) {\n return {\n type: ResultType.error,\n error: new ErrorResponseImpl(result.status, result.statusText, data),\n statusCode: result.status,\n headers: result.headers,\n };\n }\n\n return {\n type: ResultType.data,\n data,\n statusCode: result.status,\n headers: result.headers,\n };\n }\n\n if (type === ResultType.error) {\n return {\n type: ResultType.error,\n error: result,\n statusCode: isRouteErrorResponse(result) ? result.status : status,\n };\n }\n\n if (isDeferredData(result)) {\n return {\n type: ResultType.deferred,\n deferredData: result,\n statusCode: result.init?.status,\n headers: result.init?.headers && new Headers(result.init.headers),\n };\n }\n\n return { type: ResultType.data, data: result, statusCode: status };\n}\n\n// Support relative routing in internal redirects\nfunction normalizeRelativeRoutingRedirectResponse(\n response: Response,\n request: Request,\n routeId: string,\n matches: AgnosticDataRouteMatch[],\n basename: string,\n v7_relativeSplatPath: boolean\n) {\n let location = response.headers.get(\"Location\");\n invariant(\n location,\n \"Redirects returned/thrown from loaders/actions must have a Location header\"\n );\n\n if (!ABSOLUTE_URL_REGEX.test(location)) {\n let trimmedMatches = matches.slice(\n 0,\n matches.findIndex((m) => m.route.id === routeId) + 1\n );\n location = normalizeTo(\n new URL(request.url),\n trimmedMatches,\n basename,\n true,\n location,\n v7_relativeSplatPath\n );\n response.headers.set(\"Location\", location);\n }\n\n return response;\n}\n\nfunction normalizeRedirectLocation(\n location: string,\n currentUrl: URL,\n basename: string\n): string {\n if (ABSOLUTE_URL_REGEX.test(location)) {\n // Strip off the protocol+origin for same-origin + same-basename absolute redirects\n let normalizedLocation = location;\n let url = normalizedLocation.startsWith(\"//\")\n ? new URL(currentUrl.protocol + normalizedLocation)\n : new URL(normalizedLocation);\n let isSameBasename = stripBasename(url.pathname, basename) != null;\n if (url.origin === currentUrl.origin && isSameBasename) {\n return url.pathname + url.search + url.hash;\n }\n }\n return location;\n}\n\n// Utility method for creating the Request instances for loaders/actions during\n// client-side navigations and fetches. During SSR we will always have a\n// Request instance from the static handler (query/queryRoute)\nfunction createClientSideRequest(\n history: History,\n location: string | Location,\n signal: AbortSignal,\n submission?: Submission\n): Request {\n let url = history.createURL(stripHashFromPath(location)).toString();\n let init: RequestInit = { signal };\n\n if (submission && isMutationMethod(submission.formMethod)) {\n let { formMethod, formEncType } = submission;\n // Didn't think we needed this but it turns out unlike other methods, patch\n // won't be properly normalized to uppercase and results in a 405 error.\n // See: https://fetch.spec.whatwg.org/#concept-method\n init.method = formMethod.toUpperCase();\n\n if (formEncType === \"application/json\") {\n init.headers = new Headers({ \"Content-Type\": formEncType });\n init.body = JSON.stringify(submission.json);\n } else if (formEncType === \"text/plain\") {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.text;\n } else if (\n formEncType === \"application/x-www-form-urlencoded\" &&\n submission.formData\n ) {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = convertFormDataToSearchParams(submission.formData);\n } else {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.formData;\n }\n }\n\n return new Request(url, init);\n}\n\nfunction convertFormDataToSearchParams(formData: FormData): URLSearchParams {\n let searchParams = new URLSearchParams();\n\n for (let [key, value] of formData.entries()) {\n // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#converting-an-entry-list-to-a-list-of-name-value-pairs\n searchParams.append(key, typeof value === \"string\" ? value : value.name);\n }\n\n return searchParams;\n}\n\nfunction convertSearchParamsToFormData(\n searchParams: URLSearchParams\n): FormData {\n let formData = new FormData();\n for (let [key, value] of searchParams.entries()) {\n formData.append(key, value);\n }\n return formData;\n}\n\nfunction processRouteLoaderData(\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingActionResult: PendingActionResult | undefined,\n activeDeferreds: Map,\n skipLoaderErrorBubbling: boolean\n): {\n loaderData: RouterState[\"loaderData\"];\n errors: RouterState[\"errors\"] | null;\n statusCode: number;\n loaderHeaders: Record;\n} {\n // Fill in loaderData/errors from our loaders\n let loaderData: RouterState[\"loaderData\"] = {};\n let errors: RouterState[\"errors\"] | null = null;\n let statusCode: number | undefined;\n let foundError = false;\n let loaderHeaders: Record = {};\n let pendingError =\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? pendingActionResult[1].error\n : undefined;\n\n // Process loader results into state.loaderData/state.errors\n results.forEach((result, index) => {\n let id = matchesToLoad[index].route.id;\n invariant(\n !isRedirectResult(result),\n \"Cannot handle redirect results in processLoaderData\"\n );\n if (isErrorResult(result)) {\n let error = result.error;\n // If we have a pending action error, we report it at the highest-route\n // that throws a loader error, and then clear it out to indicate that\n // it was consumed\n if (pendingError !== undefined) {\n error = pendingError;\n pendingError = undefined;\n }\n\n errors = errors || {};\n\n if (skipLoaderErrorBubbling) {\n errors[id] = error;\n } else {\n // Look upwards from the matched route for the closest ancestor error\n // boundary, defaulting to the root match. Prefer higher error values\n // if lower errors bubble to the same boundary\n let boundaryMatch = findNearestBoundary(matches, id);\n if (errors[boundaryMatch.route.id] == null) {\n errors[boundaryMatch.route.id] = error;\n }\n }\n\n // Clear our any prior loaderData for the throwing route\n loaderData[id] = undefined;\n\n // Once we find our first (highest) error, we set the status code and\n // prevent deeper status codes from overriding\n if (!foundError) {\n foundError = true;\n statusCode = isRouteErrorResponse(result.error)\n ? result.error.status\n : 500;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n if (isDeferredResult(result)) {\n activeDeferreds.set(id, result.deferredData);\n loaderData[id] = result.deferredData.data;\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (\n result.statusCode != null &&\n result.statusCode !== 200 &&\n !foundError\n ) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n loaderData[id] = result.data;\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (result.statusCode && result.statusCode !== 200 && !foundError) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n }\n }\n });\n\n // If we didn't consume the pending action error (i.e., all loaders\n // resolved), then consume it here. Also clear out any loaderData for the\n // throwing route\n if (pendingError !== undefined && pendingActionResult) {\n errors = { [pendingActionResult[0]]: pendingError };\n loaderData[pendingActionResult[0]] = undefined;\n }\n\n return {\n loaderData,\n errors,\n statusCode: statusCode || 200,\n loaderHeaders,\n };\n}\n\nfunction processLoaderData(\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingActionResult: PendingActionResult | undefined,\n revalidatingFetchers: RevalidatingFetcher[],\n fetcherResults: DataResult[],\n activeDeferreds: Map\n): {\n loaderData: RouterState[\"loaderData\"];\n errors?: RouterState[\"errors\"];\n} {\n let { loaderData, errors } = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingActionResult,\n activeDeferreds,\n false // This method is only called client side so we always want to bubble\n );\n\n // Process results from our revalidating fetchers\n for (let index = 0; index < revalidatingFetchers.length; index++) {\n let { key, match, controller } = revalidatingFetchers[index];\n invariant(\n fetcherResults !== undefined && fetcherResults[index] !== undefined,\n \"Did not find corresponding fetcher result\"\n );\n let result = fetcherResults[index];\n\n // Process fetcher non-redirect errors\n if (controller && controller.signal.aborted) {\n // Nothing to do for aborted fetchers\n continue;\n } else if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, match?.route.id);\n if (!(errors && errors[boundaryMatch.route.id])) {\n errors = {\n ...errors,\n [boundaryMatch.route.id]: result.error,\n };\n }\n state.fetchers.delete(key);\n } else if (isRedirectResult(result)) {\n // Should never get here, redirects should get processed above, but we\n // keep this to type narrow to a success result in the else\n invariant(false, \"Unhandled fetcher revalidation redirect\");\n } else if (isDeferredResult(result)) {\n // Should never get here, deferred data should be awaited for fetchers\n // in resolveDeferredResults\n invariant(false, \"Unhandled fetcher deferred data\");\n } else {\n let doneFetcher = getDoneFetcher(result.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n return { loaderData, errors };\n}\n\nfunction mergeLoaderData(\n loaderData: RouteData,\n newLoaderData: RouteData,\n matches: AgnosticDataRouteMatch[],\n errors: RouteData | null | undefined\n): RouteData {\n let mergedLoaderData = { ...newLoaderData };\n for (let match of matches) {\n let id = match.route.id;\n if (newLoaderData.hasOwnProperty(id)) {\n if (newLoaderData[id] !== undefined) {\n mergedLoaderData[id] = newLoaderData[id];\n } else {\n // No-op - this is so we ignore existing data if we have a key in the\n // incoming object with an undefined value, which is how we unset a prior\n // loaderData if we encounter a loader error\n }\n } else if (loaderData[id] !== undefined && match.route.loader) {\n // Preserve existing keys not included in newLoaderData and where a loader\n // wasn't removed by HMR\n mergedLoaderData[id] = loaderData[id];\n }\n\n if (errors && errors.hasOwnProperty(id)) {\n // Don't keep any loader data below the boundary\n break;\n }\n }\n return mergedLoaderData;\n}\n\nfunction getActionDataForCommit(\n pendingActionResult: PendingActionResult | undefined\n) {\n if (!pendingActionResult) {\n return {};\n }\n return isErrorResult(pendingActionResult[1])\n ? {\n // Clear out prior actionData on errors\n actionData: {},\n }\n : {\n actionData: {\n [pendingActionResult[0]]: pendingActionResult[1].data,\n },\n };\n}\n\n// Find the nearest error boundary, looking upwards from the leaf route (or the\n// route specified by routeId) for the closest ancestor error boundary,\n// defaulting to the root match\nfunction findNearestBoundary(\n matches: AgnosticDataRouteMatch[],\n routeId?: string\n): AgnosticDataRouteMatch {\n let eligibleMatches = routeId\n ? matches.slice(0, matches.findIndex((m) => m.route.id === routeId) + 1)\n : [...matches];\n return (\n eligibleMatches.reverse().find((m) => m.route.hasErrorBoundary === true) ||\n matches[0]\n );\n}\n\nfunction getShortCircuitMatches(routes: AgnosticDataRouteObject[]): {\n matches: AgnosticDataRouteMatch[];\n route: AgnosticDataRouteObject;\n} {\n // Prefer a root layout route if present, otherwise shim in a route object\n let route =\n routes.length === 1\n ? routes[0]\n : routes.find((r) => r.index || !r.path || r.path === \"/\") || {\n id: `__shim-error-route__`,\n };\n\n return {\n matches: [\n {\n params: {},\n pathname: \"\",\n pathnameBase: \"\",\n route,\n },\n ],\n route,\n };\n}\n\nfunction getInternalRouterError(\n status: number,\n {\n pathname,\n routeId,\n method,\n type,\n }: {\n pathname?: string;\n routeId?: string;\n method?: string;\n type?: \"defer-action\" | \"invalid-body\";\n } = {}\n) {\n let statusText = \"Unknown Server Error\";\n let errorMessage = \"Unknown @remix-run/router error\";\n\n if (status === 400) {\n statusText = \"Bad Request\";\n if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method} request to \"${pathname}\" but ` +\n `did not provide a \\`loader\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (type === \"defer-action\") {\n errorMessage = \"defer() is not supported in actions\";\n } else if (type === \"invalid-body\") {\n errorMessage = \"Unable to encode submission body\";\n }\n } else if (status === 403) {\n statusText = \"Forbidden\";\n errorMessage = `Route \"${routeId}\" does not match URL \"${pathname}\"`;\n } else if (status === 404) {\n statusText = \"Not Found\";\n errorMessage = `No route matches URL \"${pathname}\"`;\n } else if (status === 405) {\n statusText = \"Method Not Allowed\";\n if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method.toUpperCase()} request to \"${pathname}\" but ` +\n `did not provide an \\`action\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (method) {\n errorMessage = `Invalid request method \"${method.toUpperCase()}\"`;\n }\n }\n\n return new ErrorResponseImpl(\n status || 500,\n statusText,\n new Error(errorMessage),\n true\n );\n}\n\n// Find any returned redirect errors, starting from the lowest match\nfunction findRedirect(\n results: DataResult[]\n): { result: RedirectResult; idx: number } | undefined {\n for (let i = results.length - 1; i >= 0; i--) {\n let result = results[i];\n if (isRedirectResult(result)) {\n return { result, idx: i };\n }\n }\n}\n\nfunction stripHashFromPath(path: To) {\n let parsedPath = typeof path === \"string\" ? parsePath(path) : path;\n return createPath({ ...parsedPath, hash: \"\" });\n}\n\nfunction isHashChangeOnly(a: Location, b: Location): boolean {\n if (a.pathname !== b.pathname || a.search !== b.search) {\n return false;\n }\n\n if (a.hash === \"\") {\n // /page -> /page#hash\n return b.hash !== \"\";\n } else if (a.hash === b.hash) {\n // /page#hash -> /page#hash\n return true;\n } else if (b.hash !== \"\") {\n // /page#hash -> /page#other\n return true;\n }\n\n // If the hash is removed the browser will re-perform a request to the server\n // /page#hash -> /page\n return false;\n}\n\nfunction isHandlerResult(result: unknown): result is HandlerResult {\n return (\n result != null &&\n typeof result === \"object\" &&\n \"type\" in result &&\n \"result\" in result &&\n (result.type === ResultType.data || result.type === ResultType.error)\n );\n}\n\nfunction isRedirectHandlerResult(result: HandlerResult) {\n return (\n isResponse(result.result) && redirectStatusCodes.has(result.result.status)\n );\n}\n\nfunction isDeferredResult(result: DataResult): result is DeferredResult {\n return result.type === ResultType.deferred;\n}\n\nfunction isErrorResult(result: DataResult): result is ErrorResult {\n return result.type === ResultType.error;\n}\n\nfunction isRedirectResult(result?: DataResult): result is RedirectResult {\n return (result && result.type) === ResultType.redirect;\n}\n\nexport function isDeferredData(value: any): value is DeferredData {\n let deferred: DeferredData = value;\n return (\n deferred &&\n typeof deferred === \"object\" &&\n typeof deferred.data === \"object\" &&\n typeof deferred.subscribe === \"function\" &&\n typeof deferred.cancel === \"function\" &&\n typeof deferred.resolveData === \"function\"\n );\n}\n\nfunction isResponse(value: any): value is Response {\n return (\n value != null &&\n typeof value.status === \"number\" &&\n typeof value.statusText === \"string\" &&\n typeof value.headers === \"object\" &&\n typeof value.body !== \"undefined\"\n );\n}\n\nfunction isRedirectResponse(result: any): result is Response {\n if (!isResponse(result)) {\n return false;\n }\n\n let status = result.status;\n let location = result.headers.get(\"Location\");\n return status >= 300 && status <= 399 && location != null;\n}\n\nfunction isValidMethod(method: string): method is FormMethod | V7_FormMethod {\n return validRequestMethods.has(method.toLowerCase() as FormMethod);\n}\n\nfunction isMutationMethod(\n method: string\n): method is MutationFormMethod | V7_MutationFormMethod {\n return validMutationMethods.has(method.toLowerCase() as MutationFormMethod);\n}\n\nasync function resolveDeferredResults(\n currentMatches: AgnosticDataRouteMatch[],\n matchesToLoad: (AgnosticDataRouteMatch | null)[],\n results: DataResult[],\n signals: (AbortSignal | null)[],\n isFetcher: boolean,\n currentLoaderData?: RouteData\n) {\n for (let index = 0; index < results.length; index++) {\n let result = results[index];\n let match = matchesToLoad[index];\n // If we don't have a match, then we can have a deferred result to do\n // anything with. This is for revalidating fetchers where the route was\n // removed during HMR\n if (!match) {\n continue;\n }\n\n let currentMatch = currentMatches.find(\n (m) => m.route.id === match!.route.id\n );\n let isRevalidatingLoader =\n currentMatch != null &&\n !isNewRouteInstance(currentMatch, match) &&\n (currentLoaderData && currentLoaderData[match.route.id]) !== undefined;\n\n if (isDeferredResult(result) && (isFetcher || isRevalidatingLoader)) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n let signal = signals[index];\n invariant(\n signal,\n \"Expected an AbortSignal for revalidating fetcher deferred result\"\n );\n await resolveDeferredData(result, signal, isFetcher).then((result) => {\n if (result) {\n results[index] = result || results[index];\n }\n });\n }\n }\n}\n\nasync function resolveDeferredData(\n result: DeferredResult,\n signal: AbortSignal,\n unwrap = false\n): Promise {\n let aborted = await result.deferredData.resolveData(signal);\n if (aborted) {\n return;\n }\n\n if (unwrap) {\n try {\n return {\n type: ResultType.data,\n data: result.deferredData.unwrappedData,\n };\n } catch (e) {\n // Handle any TrackedPromise._error values encountered while unwrapping\n return {\n type: ResultType.error,\n error: e,\n };\n }\n }\n\n return {\n type: ResultType.data,\n data: result.deferredData.data,\n };\n}\n\nfunction hasNakedIndexQuery(search: string): boolean {\n return new URLSearchParams(search).getAll(\"index\").some((v) => v === \"\");\n}\n\nfunction getTargetMatch(\n matches: AgnosticDataRouteMatch[],\n location: Location | string\n) {\n let search =\n typeof location === \"string\" ? parsePath(location).search : location.search;\n if (\n matches[matches.length - 1].route.index &&\n hasNakedIndexQuery(search || \"\")\n ) {\n // Return the leaf index route when index is present\n return matches[matches.length - 1];\n }\n // Otherwise grab the deepest \"path contributing\" match (ignoring index and\n // pathless layout routes)\n let pathMatches = getPathContributingMatches(matches);\n return pathMatches[pathMatches.length - 1];\n}\n\nfunction getSubmissionFromNavigation(\n navigation: Navigation\n): Submission | undefined {\n let { formMethod, formAction, formEncType, text, formData, json } =\n navigation;\n if (!formMethod || !formAction || !formEncType) {\n return;\n }\n\n if (text != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json: undefined,\n text,\n };\n } else if (formData != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData,\n json: undefined,\n text: undefined,\n };\n } else if (json !== undefined) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json,\n text: undefined,\n };\n }\n}\n\nfunction getLoadingNavigation(\n location: Location,\n submission?: Submission\n): NavigationStates[\"Loading\"] {\n if (submission) {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n };\n return navigation;\n } else {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n };\n return navigation;\n }\n}\n\nfunction getSubmittingNavigation(\n location: Location,\n submission: Submission\n): NavigationStates[\"Submitting\"] {\n let navigation: NavigationStates[\"Submitting\"] = {\n state: \"submitting\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n };\n return navigation;\n}\n\nfunction getLoadingFetcher(\n submission?: Submission,\n data?: Fetcher[\"data\"]\n): FetcherStates[\"Loading\"] {\n if (submission) {\n let fetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data,\n };\n return fetcher;\n } else {\n let fetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data,\n };\n return fetcher;\n }\n}\n\nfunction getSubmittingFetcher(\n submission: Submission,\n existingFetcher?: Fetcher\n): FetcherStates[\"Submitting\"] {\n let fetcher: FetcherStates[\"Submitting\"] = {\n state: \"submitting\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data: existingFetcher ? existingFetcher.data : undefined,\n };\n return fetcher;\n}\n\nfunction getDoneFetcher(data: Fetcher[\"data\"]): FetcherStates[\"Idle\"] {\n let fetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data,\n };\n return fetcher;\n}\n\nfunction restoreAppliedTransitions(\n _window: Window,\n transitions: Map>\n) {\n try {\n let sessionPositions = _window.sessionStorage.getItem(\n TRANSITIONS_STORAGE_KEY\n );\n if (sessionPositions) {\n let json = JSON.parse(sessionPositions);\n for (let [k, v] of Object.entries(json || {})) {\n if (v && Array.isArray(v)) {\n transitions.set(k, new Set(v || []));\n }\n }\n }\n } catch (e) {\n // no-op, use default empty object\n }\n}\n\nfunction persistAppliedTransitions(\n _window: Window,\n transitions: Map>\n) {\n if (transitions.size > 0) {\n let json: Record = {};\n for (let [k, v] of transitions) {\n json[k] = [...v];\n }\n try {\n _window.sessionStorage.setItem(\n TRANSITIONS_STORAGE_KEY,\n JSON.stringify(json)\n );\n } catch (error) {\n warning(\n false,\n `Failed to save applied view transitions in sessionStorage (${error}).`\n );\n }\n }\n}\n\n//#endregion\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n","function new_byte(count) {\n return new Int8Array(count);\n}\n\nfunction new_short(count) {\n return new Int16Array(count);\n}\n\nfunction new_int(count) {\n return new Int32Array(count);\n}\n\nfunction new_float(count) {\n return new Float32Array(count);\n}\n\nfunction new_double(count) {\n return new Float64Array(count);\n}\n\nfunction new_float_n(args) {\n if (args.length == 1) {\n return new_float(args[0]);\n }\n var sz = args[0];\n args = args.slice(1);\n var A = [];\n for (var i = 0; i < sz; i++) {\n A.push(new_float_n(args));\n }\n return A;\n}\nfunction new_int_n(args) {\n if (args.length == 1) {\n return new_int(args[0]);\n }\n var sz = args[0];\n args = args.slice(1);\n var A = [];\n for (var i = 0; i < sz; i++) {\n A.push(new_int_n(args));\n }\n return A;\n}\n\nfunction new_short_n(args) {\n if (args.length == 1) {\n return new_short(args[0]);\n }\n var sz = args[0];\n args = args.slice(1);\n var A = [];\n for (var i = 0; i < sz; i++) {\n A.push(new_short_n(args));\n }\n return A;\n}\n\nfunction new_array_n(args) {\n if (args.length == 1) {\n return new Array(args[0]);\n }\n var sz = args[0];\n args = args.slice(1);\n var A = [];\n for (var i = 0; i < sz; i++) {\n A.push(new_array_n(args));\n }\n return A;\n}\n\n\nvar Arrays = {};\n\nArrays.fill = function (a, fromIndex, toIndex, val) {\n if (arguments.length == 2) {\n for (var i = 0; i < a.length; i++) {\n a[i] = arguments[1];\n }\n } else {\n for (var i = fromIndex; i < toIndex; i++) {\n a[i] = val;\n }\n }\n};\n\nvar System = {};\n\nSystem.arraycopy = function (src, srcPos, dest, destPos, length) {\n var srcEnd = srcPos + length;\n while (srcPos < srcEnd)\n dest[destPos++] = src[srcPos++];\n};\n\n\nvar Util = {};\nUtil.SQRT2 = 1.41421356237309504880;\nUtil.FAST_LOG10 = function (x) {\n return Math.log10(x);\n};\n\nUtil.FAST_LOG10_X = function (x, y) {\n return Math.log10(x) * y;\n};\n\nfunction ShortBlock(ordinal) {\n this.ordinal = ordinal;\n}\n/**\n * LAME may use them, even different block types for L/R.\n */\nShortBlock.short_block_allowed = new ShortBlock(0);\n/**\n * LAME may use them, but always same block types in L/R.\n */\nShortBlock.short_block_coupled = new ShortBlock(1);\n/**\n * LAME will not use short blocks, long blocks only.\n */\nShortBlock.short_block_dispensed = new ShortBlock(2);\n/**\n * LAME will not use long blocks, short blocks only.\n */\nShortBlock.short_block_forced = new ShortBlock(3);\n\nvar Float = {};\nFloat.MAX_VALUE = 3.4028235e+38;\n\nfunction VbrMode(ordinal) {\n this.ordinal = ordinal;\n}\nVbrMode.vbr_off = new VbrMode(0);\nVbrMode.vbr_mt = new VbrMode(1);\nVbrMode.vbr_rh = new VbrMode(2);\nVbrMode.vbr_abr = new VbrMode(3);\nVbrMode.vbr_mtrh = new VbrMode(4);\nVbrMode.vbr_default = VbrMode.vbr_mtrh;\n\nvar assert = function (x) {\n //console.assert(x);\n};\n\nmodule.exports = {\n \"System\": System,\n \"VbrMode\": VbrMode,\n \"Float\": Float,\n \"ShortBlock\": ShortBlock,\n \"Util\": Util,\n \"Arrays\": Arrays,\n \"new_array_n\": new_array_n,\n \"new_byte\": new_byte,\n \"new_double\": new_double,\n \"new_float\": new_float,\n \"new_float_n\": new_float_n,\n \"new_int\": new_int,\n \"new_int_n\": new_int_n,\n \"new_short\": new_short,\n \"new_short_n\": new_short_n,\n \"assert\": assert\n};\n","/*\n * MP3 window subband -> subband filtering -> mdct routine\n *\n * Copyright (c) 1999-2000 Takehiro Tominaga\n *\n *\n * This library is free software; you can redistribute it and/or\n * modify it under the terms of the GNU Lesser General Public\n * License as published by the Free Software Foundation; either\n * version 2 of the License, or (at your option) any later version.\n *\n * This library is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Library General Public License for more details.\n *\n * You should have received a copy of the GNU Library General Public\n * License along with this library; if not, write to the\n * Free Software Foundation, Inc., 59 Temple Place - Suite 330,\n * Boston, MA 02111-1307, USA.\n */\n/*\n * Special Thanks to Patrick De Smet for your advices.\n */\n\n/* $Id: NewMDCT.java,v 1.11 2011/05/24 20:48:06 kenchis Exp $ */\n\n//package mp3;\n\n//import java.util.Arrays;\nvar common = require('./common.js');\nvar System = common.System;\nvar VbrMode = common.VbrMode;\nvar Float = common.Float;\nvar ShortBlock = common.ShortBlock;\nvar Util = common.Util;\nvar Arrays = common.Arrays;\nvar new_array_n = common.new_array_n;\nvar new_byte = common.new_byte;\nvar new_double = common.new_double;\nvar new_float = common.new_float;\nvar new_float_n = common.new_float_n;\nvar new_int = common.new_int;\nvar new_int_n = common.new_int_n;\nvar assert = common.assert;\n\nvar Encoder = require('./Encoder.js');\n\n\nfunction NewMDCT() {\n\n\tvar enwindow = [\n\t\t\t-4.77e-07 * 0.740951125354959 / 2.384e-06,\n\t\t\t1.03951e-04 * 0.740951125354959 / 2.384e-06,\n\t\t\t9.53674e-04 * 0.740951125354959 / 2.384e-06,\n\t\t\t2.841473e-03 * 0.740951125354959 / 2.384e-06,\n\t\t\t3.5758972e-02 * 0.740951125354959 / 2.384e-06,\n\t\t\t3.401756e-03 * 0.740951125354959 / 2.384e-06,\n\t\t\t9.83715e-04 * 0.740951125354959 / 2.384e-06,\n\t\t\t9.9182e-05 * 0.740951125354959 / 2.384e-06, /* 15 */\n\t\t\t1.2398e-05 * 0.740951125354959 / 2.384e-06,\n\t\t\t1.91212e-04 * 0.740951125354959 / 2.384e-06,\n\t\t\t2.283096e-03 * 0.740951125354959 / 2.384e-06,\n\t\t\t1.6994476e-02 * 0.740951125354959 / 2.384e-06,\n\t\t\t-1.8756866e-02 * 0.740951125354959 / 2.384e-06,\n\t\t\t-2.630711e-03 * 0.740951125354959 / 2.384e-06,\n\t\t\t-2.47478e-04 * 0.740951125354959 / 2.384e-06,\n\t\t\t-1.4782e-05 * 0.740951125354959 / 2.384e-06,\n\t\t\t9.063471690191471e-01, 1.960342806591213e-01,\n\n\t\t\t-4.77e-07 * 0.773010453362737 / 2.384e-06,\n\t\t\t1.05858e-04 * 0.773010453362737 / 2.384e-06,\n\t\t\t9.30786e-04 * 0.773010453362737 / 2.384e-06,\n\t\t\t2.521515e-03 * 0.773010453362737 / 2.384e-06,\n\t\t\t3.5694122e-02 * 0.773010453362737 / 2.384e-06,\n\t\t\t3.643036e-03 * 0.773010453362737 / 2.384e-06,\n\t\t\t9.91821e-04 * 0.773010453362737 / 2.384e-06,\n\t\t\t9.6321e-05 * 0.773010453362737 / 2.384e-06, /* 14 */\n\t\t\t1.1444e-05 * 0.773010453362737 / 2.384e-06,\n\t\t\t1.65462e-04 * 0.773010453362737 / 2.384e-06,\n\t\t\t2.110004e-03 * 0.773010453362737 / 2.384e-06,\n\t\t\t1.6112804e-02 * 0.773010453362737 / 2.384e-06,\n\t\t\t-1.9634247e-02 * 0.773010453362737 / 2.384e-06,\n\t\t\t-2.803326e-03 * 0.773010453362737 / 2.384e-06,\n\t\t\t-2.77042e-04 * 0.773010453362737 / 2.384e-06,\n\t\t\t-1.6689e-05 * 0.773010453362737 / 2.384e-06,\n\t\t\t8.206787908286602e-01, 3.901806440322567e-01,\n\n\t\t\t-4.77e-07 * 0.803207531480645 / 2.384e-06,\n\t\t\t1.07288e-04 * 0.803207531480645 / 2.384e-06,\n\t\t\t9.02653e-04 * 0.803207531480645 / 2.384e-06,\n\t\t\t2.174854e-03 * 0.803207531480645 / 2.384e-06,\n\t\t\t3.5586357e-02 * 0.803207531480645 / 2.384e-06,\n\t\t\t3.858566e-03 * 0.803207531480645 / 2.384e-06,\n\t\t\t9.95159e-04 * 0.803207531480645 / 2.384e-06,\n\t\t\t9.3460e-05 * 0.803207531480645 / 2.384e-06, /* 13 */\n\t\t\t1.0014e-05 * 0.803207531480645 / 2.384e-06,\n\t\t\t1.40190e-04 * 0.803207531480645 / 2.384e-06,\n\t\t\t1.937389e-03 * 0.803207531480645 / 2.384e-06,\n\t\t\t1.5233517e-02 * 0.803207531480645 / 2.384e-06,\n\t\t\t-2.0506859e-02 * 0.803207531480645 / 2.384e-06,\n\t\t\t-2.974033e-03 * 0.803207531480645 / 2.384e-06,\n\t\t\t-3.07560e-04 * 0.803207531480645 / 2.384e-06,\n\t\t\t-1.8120e-05 * 0.803207531480645 / 2.384e-06,\n\t\t\t7.416505462720353e-01, 5.805693545089249e-01,\n\n\t\t\t-4.77e-07 * 0.831469612302545 / 2.384e-06,\n\t\t\t1.08242e-04 * 0.831469612302545 / 2.384e-06,\n\t\t\t8.68797e-04 * 0.831469612302545 / 2.384e-06,\n\t\t\t1.800537e-03 * 0.831469612302545 / 2.384e-06,\n\t\t\t3.5435200e-02 * 0.831469612302545 / 2.384e-06,\n\t\t\t4.049301e-03 * 0.831469612302545 / 2.384e-06,\n\t\t\t9.94205e-04 * 0.831469612302545 / 2.384e-06,\n\t\t\t9.0599e-05 * 0.831469612302545 / 2.384e-06, /* 12 */\n\t\t\t9.060e-06 * 0.831469612302545 / 2.384e-06,\n\t\t\t1.16348e-04 * 0.831469612302545 / 2.384e-06,\n\t\t\t1.766682e-03 * 0.831469612302545 / 2.384e-06,\n\t\t\t1.4358521e-02 * 0.831469612302545 / 2.384e-06,\n\t\t\t-2.1372318e-02 * 0.831469612302545 / 2.384e-06,\n\t\t\t-3.14188e-03 * 0.831469612302545 / 2.384e-06,\n\t\t\t-3.39031e-04 * 0.831469612302545 / 2.384e-06,\n\t\t\t-1.9550e-05 * 0.831469612302545 / 2.384e-06,\n\t\t\t6.681786379192989e-01, 7.653668647301797e-01,\n\n\t\t\t-4.77e-07 * 0.857728610000272 / 2.384e-06,\n\t\t\t1.08719e-04 * 0.857728610000272 / 2.384e-06,\n\t\t\t8.29220e-04 * 0.857728610000272 / 2.384e-06,\n\t\t\t1.399517e-03 * 0.857728610000272 / 2.384e-06,\n\t\t\t3.5242081e-02 * 0.857728610000272 / 2.384e-06,\n\t\t\t4.215240e-03 * 0.857728610000272 / 2.384e-06,\n\t\t\t9.89437e-04 * 0.857728610000272 / 2.384e-06,\n\t\t\t8.7261e-05 * 0.857728610000272 / 2.384e-06, /* 11 */\n\t\t\t8.106e-06 * 0.857728610000272 / 2.384e-06,\n\t\t\t9.3937e-05 * 0.857728610000272 / 2.384e-06,\n\t\t\t1.597881e-03 * 0.857728610000272 / 2.384e-06,\n\t\t\t1.3489246e-02 * 0.857728610000272 / 2.384e-06,\n\t\t\t-2.2228718e-02 * 0.857728610000272 / 2.384e-06,\n\t\t\t-3.306866e-03 * 0.857728610000272 / 2.384e-06,\n\t\t\t-3.71456e-04 * 0.857728610000272 / 2.384e-06,\n\t\t\t-2.1458e-05 * 0.857728610000272 / 2.384e-06,\n\t\t\t5.993769336819237e-01, 9.427934736519954e-01,\n\n\t\t\t-4.77e-07 * 0.881921264348355 / 2.384e-06,\n\t\t\t1.08719e-04 * 0.881921264348355 / 2.384e-06,\n\t\t\t7.8392e-04 * 0.881921264348355 / 2.384e-06,\n\t\t\t9.71317e-04 * 0.881921264348355 / 2.384e-06,\n\t\t\t3.5007000e-02 * 0.881921264348355 / 2.384e-06,\n\t\t\t4.357815e-03 * 0.881921264348355 / 2.384e-06,\n\t\t\t9.80854e-04 * 0.881921264348355 / 2.384e-06,\n\t\t\t8.3923e-05 * 0.881921264348355 / 2.384e-06, /* 10 */\n\t\t\t7.629e-06 * 0.881921264348355 / 2.384e-06,\n\t\t\t7.2956e-05 * 0.881921264348355 / 2.384e-06,\n\t\t\t1.432419e-03 * 0.881921264348355 / 2.384e-06,\n\t\t\t1.2627602e-02 * 0.881921264348355 / 2.384e-06,\n\t\t\t-2.3074150e-02 * 0.881921264348355 / 2.384e-06,\n\t\t\t-3.467083e-03 * 0.881921264348355 / 2.384e-06,\n\t\t\t-4.04358e-04 * 0.881921264348355 / 2.384e-06,\n\t\t\t-2.3365e-05 * 0.881921264348355 / 2.384e-06,\n\t\t\t5.345111359507916e-01, 1.111140466039205e+00,\n\n\t\t\t-9.54e-07 * 0.903989293123443 / 2.384e-06,\n\t\t\t1.08242e-04 * 0.903989293123443 / 2.384e-06,\n\t\t\t7.31945e-04 * 0.903989293123443 / 2.384e-06,\n\t\t\t5.15938e-04 * 0.903989293123443 / 2.384e-06,\n\t\t\t3.4730434e-02 * 0.903989293123443 / 2.384e-06,\n\t\t\t4.477024e-03 * 0.903989293123443 / 2.384e-06,\n\t\t\t9.68933e-04 * 0.903989293123443 / 2.384e-06,\n\t\t\t8.0585e-05 * 0.903989293123443 / 2.384e-06, /* 9 */\n\t\t\t6.676e-06 * 0.903989293123443 / 2.384e-06,\n\t\t\t5.2929e-05 * 0.903989293123443 / 2.384e-06,\n\t\t\t1.269817e-03 * 0.903989293123443 / 2.384e-06,\n\t\t\t1.1775017e-02 * 0.903989293123443 / 2.384e-06,\n\t\t\t-2.3907185e-02 * 0.903989293123443 / 2.384e-06,\n\t\t\t-3.622532e-03 * 0.903989293123443 / 2.384e-06,\n\t\t\t-4.38213e-04 * 0.903989293123443 / 2.384e-06,\n\t\t\t-2.5272e-05 * 0.903989293123443 / 2.384e-06,\n\t\t\t4.729647758913199e-01, 1.268786568327291e+00,\n\n\t\t\t-9.54e-07 * 0.92387953251128675613 / 2.384e-06,\n\t\t\t1.06812e-04 * 0.92387953251128675613 / 2.384e-06,\n\t\t\t6.74248e-04 * 0.92387953251128675613 / 2.384e-06,\n\t\t\t3.3379e-05 * 0.92387953251128675613 / 2.384e-06,\n\t\t\t3.4412861e-02 * 0.92387953251128675613 / 2.384e-06,\n\t\t\t4.573822e-03 * 0.92387953251128675613 / 2.384e-06,\n\t\t\t9.54151e-04 * 0.92387953251128675613 / 2.384e-06,\n\t\t\t7.6771e-05 * 0.92387953251128675613 / 2.384e-06,\n\t\t\t6.199e-06 * 0.92387953251128675613 / 2.384e-06,\n\t\t\t3.4332e-05 * 0.92387953251128675613 / 2.384e-06,\n\t\t\t1.111031e-03 * 0.92387953251128675613 / 2.384e-06,\n\t\t\t1.0933399e-02 * 0.92387953251128675613 / 2.384e-06,\n\t\t\t-2.4725437e-02 * 0.92387953251128675613 / 2.384e-06,\n\t\t\t-3.771782e-03 * 0.92387953251128675613 / 2.384e-06,\n\t\t\t-4.72546e-04 * 0.92387953251128675613 / 2.384e-06,\n\t\t\t-2.7657e-05 * 0.92387953251128675613 / 2.384e-06,\n\t\t\t4.1421356237309504879e-01, /* tan(PI/8) */\n\t\t\t1.414213562373095e+00,\n\n\t\t\t-9.54e-07 * 0.941544065183021 / 2.384e-06,\n\t\t\t1.05381e-04 * 0.941544065183021 / 2.384e-06,\n\t\t\t6.10352e-04 * 0.941544065183021 / 2.384e-06,\n\t\t\t-4.75883e-04 * 0.941544065183021 / 2.384e-06,\n\t\t\t3.4055710e-02 * 0.941544065183021 / 2.384e-06,\n\t\t\t4.649162e-03 * 0.941544065183021 / 2.384e-06,\n\t\t\t9.35555e-04 * 0.941544065183021 / 2.384e-06,\n\t\t\t7.3433e-05 * 0.941544065183021 / 2.384e-06, /* 7 */\n\t\t\t5.245e-06 * 0.941544065183021 / 2.384e-06,\n\t\t\t1.7166e-05 * 0.941544065183021 / 2.384e-06,\n\t\t\t9.56535e-04 * 0.941544065183021 / 2.384e-06,\n\t\t\t1.0103703e-02 * 0.941544065183021 / 2.384e-06,\n\t\t\t-2.5527000e-02 * 0.941544065183021 / 2.384e-06,\n\t\t\t-3.914356e-03 * 0.941544065183021 / 2.384e-06,\n\t\t\t-5.07355e-04 * 0.941544065183021 / 2.384e-06,\n\t\t\t-3.0041e-05 * 0.941544065183021 / 2.384e-06,\n\t\t\t3.578057213145241e-01, 1.546020906725474e+00,\n\n\t\t\t-9.54e-07 * 0.956940335732209 / 2.384e-06,\n\t\t\t1.02520e-04 * 0.956940335732209 / 2.384e-06,\n\t\t\t5.39303e-04 * 0.956940335732209 / 2.384e-06,\n\t\t\t-1.011848e-03 * 0.956940335732209 / 2.384e-06,\n\t\t\t3.3659935e-02 * 0.956940335732209 / 2.384e-06,\n\t\t\t4.703045e-03 * 0.956940335732209 / 2.384e-06,\n\t\t\t9.15051e-04 * 0.956940335732209 / 2.384e-06,\n\t\t\t7.0095e-05 * 0.956940335732209 / 2.384e-06, /* 6 */\n\t\t\t4.768e-06 * 0.956940335732209 / 2.384e-06,\n\t\t\t9.54e-07 * 0.956940335732209 / 2.384e-06,\n\t\t\t8.06808e-04 * 0.956940335732209 / 2.384e-06,\n\t\t\t9.287834e-03 * 0.956940335732209 / 2.384e-06,\n\t\t\t-2.6310921e-02 * 0.956940335732209 / 2.384e-06,\n\t\t\t-4.048824e-03 * 0.956940335732209 / 2.384e-06,\n\t\t\t-5.42164e-04 * 0.956940335732209 / 2.384e-06,\n\t\t\t-3.2425e-05 * 0.956940335732209 / 2.384e-06,\n\t\t\t3.033466836073424e-01, 1.662939224605090e+00,\n\n\t\t\t-1.431e-06 * 0.970031253194544 / 2.384e-06,\n\t\t\t9.9182e-05 * 0.970031253194544 / 2.384e-06,\n\t\t\t4.62532e-04 * 0.970031253194544 / 2.384e-06,\n\t\t\t-1.573563e-03 * 0.970031253194544 / 2.384e-06,\n\t\t\t3.3225536e-02 * 0.970031253194544 / 2.384e-06,\n\t\t\t4.737377e-03 * 0.970031253194544 / 2.384e-06,\n\t\t\t8.91685e-04 * 0.970031253194544 / 2.384e-06,\n\t\t\t6.6280e-05 * 0.970031253194544 / 2.384e-06, /* 5 */\n\t\t\t4.292e-06 * 0.970031253194544 / 2.384e-06,\n\t\t\t-1.3828e-05 * 0.970031253194544 / 2.384e-06,\n\t\t\t6.61850e-04 * 0.970031253194544 / 2.384e-06,\n\t\t\t8.487225e-03 * 0.970031253194544 / 2.384e-06,\n\t\t\t-2.7073860e-02 * 0.970031253194544 / 2.384e-06,\n\t\t\t-4.174709e-03 * 0.970031253194544 / 2.384e-06,\n\t\t\t-5.76973e-04 * 0.970031253194544 / 2.384e-06,\n\t\t\t-3.4809e-05 * 0.970031253194544 / 2.384e-06,\n\t\t\t2.504869601913055e-01, 1.763842528696710e+00,\n\n\t\t\t-1.431e-06 * 0.98078528040323 / 2.384e-06,\n\t\t\t9.5367e-05 * 0.98078528040323 / 2.384e-06,\n\t\t\t3.78609e-04 * 0.98078528040323 / 2.384e-06,\n\t\t\t-2.161503e-03 * 0.98078528040323 / 2.384e-06,\n\t\t\t3.2754898e-02 * 0.98078528040323 / 2.384e-06,\n\t\t\t4.752159e-03 * 0.98078528040323 / 2.384e-06,\n\t\t\t8.66413e-04 * 0.98078528040323 / 2.384e-06,\n\t\t\t6.2943e-05 * 0.98078528040323 / 2.384e-06, /* 4 */\n\t\t\t3.815e-06 * 0.98078528040323 / 2.384e-06,\n\t\t\t-2.718e-05 * 0.98078528040323 / 2.384e-06,\n\t\t\t5.22137e-04 * 0.98078528040323 / 2.384e-06,\n\t\t\t7.703304e-03 * 0.98078528040323 / 2.384e-06,\n\t\t\t-2.7815342e-02 * 0.98078528040323 / 2.384e-06,\n\t\t\t-4.290581e-03 * 0.98078528040323 / 2.384e-06,\n\t\t\t-6.11782e-04 * 0.98078528040323 / 2.384e-06,\n\t\t\t-3.7670e-05 * 0.98078528040323 / 2.384e-06,\n\t\t\t1.989123673796580e-01, 1.847759065022573e+00,\n\n\t\t\t-1.907e-06 * 0.989176509964781 / 2.384e-06,\n\t\t\t9.0122e-05 * 0.989176509964781 / 2.384e-06,\n\t\t\t2.88486e-04 * 0.989176509964781 / 2.384e-06,\n\t\t\t-2.774239e-03 * 0.989176509964781 / 2.384e-06,\n\t\t\t3.2248020e-02 * 0.989176509964781 / 2.384e-06,\n\t\t\t4.748821e-03 * 0.989176509964781 / 2.384e-06,\n\t\t\t8.38757e-04 * 0.989176509964781 / 2.384e-06,\n\t\t\t5.9605e-05 * 0.989176509964781 / 2.384e-06, /* 3 */\n\t\t\t3.338e-06 * 0.989176509964781 / 2.384e-06,\n\t\t\t-3.9577e-05 * 0.989176509964781 / 2.384e-06,\n\t\t\t3.88145e-04 * 0.989176509964781 / 2.384e-06,\n\t\t\t6.937027e-03 * 0.989176509964781 / 2.384e-06,\n\t\t\t-2.8532982e-02 * 0.989176509964781 / 2.384e-06,\n\t\t\t-4.395962e-03 * 0.989176509964781 / 2.384e-06,\n\t\t\t-6.46591e-04 * 0.989176509964781 / 2.384e-06,\n\t\t\t-4.0531e-05 * 0.989176509964781 / 2.384e-06,\n\t\t\t1.483359875383474e-01, 1.913880671464418e+00,\n\n\t\t\t-1.907e-06 * 0.995184726672197 / 2.384e-06,\n\t\t\t8.4400e-05 * 0.995184726672197 / 2.384e-06,\n\t\t\t1.91689e-04 * 0.995184726672197 / 2.384e-06,\n\t\t\t-3.411293e-03 * 0.995184726672197 / 2.384e-06,\n\t\t\t3.1706810e-02 * 0.995184726672197 / 2.384e-06,\n\t\t\t4.728317e-03 * 0.995184726672197 / 2.384e-06,\n\t\t\t8.09669e-04 * 0.995184726672197 / 2.384e-06,\n\t\t\t5.579e-05 * 0.995184726672197 / 2.384e-06,\n\t\t\t3.338e-06 * 0.995184726672197 / 2.384e-06,\n\t\t\t-5.0545e-05 * 0.995184726672197 / 2.384e-06,\n\t\t\t2.59876e-04 * 0.995184726672197 / 2.384e-06,\n\t\t\t6.189346e-03 * 0.995184726672197 / 2.384e-06,\n\t\t\t-2.9224873e-02 * 0.995184726672197 / 2.384e-06,\n\t\t\t-4.489899e-03 * 0.995184726672197 / 2.384e-06,\n\t\t\t-6.80923e-04 * 0.995184726672197 / 2.384e-06,\n\t\t\t-4.3392e-05 * 0.995184726672197 / 2.384e-06,\n\t\t\t9.849140335716425e-02, 1.961570560806461e+00,\n\n\t\t\t-2.384e-06 * 0.998795456205172 / 2.384e-06,\n\t\t\t7.7724e-05 * 0.998795456205172 / 2.384e-06,\n\t\t\t8.8215e-05 * 0.998795456205172 / 2.384e-06,\n\t\t\t-4.072189e-03 * 0.998795456205172 / 2.384e-06,\n\t\t\t3.1132698e-02 * 0.998795456205172 / 2.384e-06,\n\t\t\t4.691124e-03 * 0.998795456205172 / 2.384e-06,\n\t\t\t7.79152e-04 * 0.998795456205172 / 2.384e-06,\n\t\t\t5.2929e-05 * 0.998795456205172 / 2.384e-06,\n\t\t\t2.861e-06 * 0.998795456205172 / 2.384e-06,\n\t\t\t-6.0558e-05 * 0.998795456205172 / 2.384e-06,\n\t\t\t1.37329e-04 * 0.998795456205172 / 2.384e-06,\n\t\t\t5.462170e-03 * 0.998795456205172 / 2.384e-06,\n\t\t\t-2.9890060e-02 * 0.998795456205172 / 2.384e-06,\n\t\t\t-4.570484e-03 * 0.998795456205172 / 2.384e-06,\n\t\t\t-7.14302e-04 * 0.998795456205172 / 2.384e-06,\n\t\t\t-4.6253e-05 * 0.998795456205172 / 2.384e-06,\n\t\t\t4.912684976946725e-02, 1.990369453344394e+00,\n\n\t\t\t3.5780907e-02 * Util.SQRT2 * 0.5 / 2.384e-06,\n\t\t\t1.7876148e-02 * Util.SQRT2 * 0.5 / 2.384e-06,\n\t\t\t3.134727e-03 * Util.SQRT2 * 0.5 / 2.384e-06,\n\t\t\t2.457142e-03 * Util.SQRT2 * 0.5 / 2.384e-06,\n\t\t\t9.71317e-04 * Util.SQRT2 * 0.5 / 2.384e-06,\n\t\t\t2.18868e-04 * Util.SQRT2 * 0.5 / 2.384e-06,\n\t\t\t1.01566e-04 * Util.SQRT2 * 0.5 / 2.384e-06,\n\t\t\t1.3828e-05 * Util.SQRT2 * 0.5 / 2.384e-06,\n\n\t\t\t3.0526638e-02 / 2.384e-06, 4.638195e-03 / 2.384e-06,\n\t\t\t7.47204e-04 / 2.384e-06, 4.9591e-05 / 2.384e-06,\n\t\t\t4.756451e-03 / 2.384e-06, 2.1458e-05 / 2.384e-06,\n\t\t\t-6.9618e-05 / 2.384e-06, /* 2.384e-06/2.384e-06 */\n\t];\n\n\tvar NS = 12;\n\tvar NL = 36;\n\n\tvar win = [\n\t [\n\t 2.382191739347913e-13,\n\t 6.423305872147834e-13,\n\t 9.400849094049688e-13,\n\t 1.122435026096556e-12,\n\t 1.183840321267481e-12,\n\t 1.122435026096556e-12,\n\t 9.400849094049690e-13,\n\t 6.423305872147839e-13,\n\t 2.382191739347918e-13,\n\n\t 5.456116108943412e-12,\n\t 4.878985199565852e-12,\n\t 4.240448995017367e-12,\n\t 3.559909094758252e-12,\n\t 2.858043359288075e-12,\n\t 2.156177623817898e-12,\n\t 1.475637723558783e-12,\n\t 8.371015190102974e-13,\n\t 2.599706096327376e-13,\n\n\t -5.456116108943412e-12,\n\t -4.878985199565852e-12,\n\t -4.240448995017367e-12,\n\t -3.559909094758252e-12,\n\t -2.858043359288076e-12,\n\t -2.156177623817898e-12,\n\t -1.475637723558783e-12,\n\t -8.371015190102975e-13,\n\t -2.599706096327376e-13,\n\n\t -2.382191739347923e-13,\n\t -6.423305872147843e-13,\n\t -9.400849094049696e-13,\n\t -1.122435026096556e-12,\n\t -1.183840321267481e-12,\n\t -1.122435026096556e-12,\n\t -9.400849094049694e-13,\n\t -6.423305872147840e-13,\n\t -2.382191739347918e-13,\n\t ],\n\t [\n\t 2.382191739347913e-13,\n\t 6.423305872147834e-13,\n\t 9.400849094049688e-13,\n\t 1.122435026096556e-12,\n\t 1.183840321267481e-12,\n\t 1.122435026096556e-12,\n\t 9.400849094049688e-13,\n\t 6.423305872147841e-13,\n\t 2.382191739347918e-13,\n\n\t 5.456116108943413e-12,\n\t 4.878985199565852e-12,\n\t 4.240448995017367e-12,\n\t 3.559909094758253e-12,\n\t 2.858043359288075e-12,\n\t 2.156177623817898e-12,\n\t 1.475637723558782e-12,\n\t 8.371015190102975e-13,\n\t 2.599706096327376e-13,\n\n\t -5.461314069809755e-12,\n\t -4.921085770524055e-12,\n\t -4.343405037091838e-12,\n\t -3.732668368707687e-12,\n\t -3.093523840190885e-12,\n\t -2.430835727329465e-12,\n\t -1.734679010007751e-12,\n\t -9.748253656609281e-13,\n\t -2.797435120168326e-13,\n\n\t 0.000000000000000e+00,\n\t 0.000000000000000e+00,\n\t 0.000000000000000e+00,\n\t 0.000000000000000e+00,\n\t 0.000000000000000e+00,\n\t 0.000000000000000e+00,\n\t -2.283748241799531e-13,\n\t -4.037858874020686e-13,\n\t -2.146547464825323e-13,\n\t ],\n\t [\n\t 1.316524975873958e-01, /* win[SHORT_TYPE] */\n\t 4.142135623730950e-01,\n\t 7.673269879789602e-01,\n\n\t 1.091308501069271e+00, /* tantab_l */\n\t 1.303225372841206e+00,\n\t 1.569685577117490e+00,\n\t 1.920982126971166e+00,\n\t 2.414213562373094e+00,\n\t 3.171594802363212e+00,\n\t 4.510708503662055e+00,\n\t 7.595754112725146e+00,\n\t 2.290376554843115e+01,\n\n\t 0.98480775301220802032, /* cx */\n\t 0.64278760968653936292,\n\t 0.34202014332566882393,\n\t 0.93969262078590842791,\n\t -0.17364817766693030343,\n\t -0.76604444311897790243,\n\t 0.86602540378443870761,\n\t 0.500000000000000e+00,\n\n\t -5.144957554275265e-01, /* ca */\n\t -4.717319685649723e-01,\n\t -3.133774542039019e-01,\n\t -1.819131996109812e-01,\n\t -9.457419252642064e-02,\n\t -4.096558288530405e-02,\n\t -1.419856857247115e-02,\n\t -3.699974673760037e-03,\n\n\t 8.574929257125442e-01, /* cs */\n\t 8.817419973177052e-01,\n\t 9.496286491027329e-01,\n\t 9.833145924917901e-01,\n\t 9.955178160675857e-01,\n\t 9.991605581781475e-01,\n\t 9.998991952444470e-01,\n\t 9.999931550702802e-01,\n\t ],\n\t [\n\t 0.000000000000000e+00,\n\t 0.000000000000000e+00,\n\t 0.000000000000000e+00,\n\t 0.000000000000000e+00,\n\t 0.000000000000000e+00,\n\t 0.000000000000000e+00,\n\t 2.283748241799531e-13,\n\t 4.037858874020686e-13,\n\t 2.146547464825323e-13,\n\n\t 5.461314069809755e-12,\n\t 4.921085770524055e-12,\n\t 4.343405037091838e-12,\n\t 3.732668368707687e-12,\n\t 3.093523840190885e-12,\n\t 2.430835727329466e-12,\n\t 1.734679010007751e-12,\n\t 9.748253656609281e-13,\n\t 2.797435120168326e-13,\n\n\t -5.456116108943413e-12,\n\t -4.878985199565852e-12,\n\t -4.240448995017367e-12,\n\t -3.559909094758253e-12,\n\t -2.858043359288075e-12,\n\t -2.156177623817898e-12,\n\t -1.475637723558782e-12,\n\t -8.371015190102975e-13,\n\t -2.599706096327376e-13,\n\n\t -2.382191739347913e-13,\n\t -6.423305872147834e-13,\n\t -9.400849094049688e-13,\n\t -1.122435026096556e-12,\n\t -1.183840321267481e-12,\n\t -1.122435026096556e-12,\n\t -9.400849094049688e-13,\n\t -6.423305872147841e-13,\n\t -2.382191739347918e-13,\n\t ]\n\t];\n\n\tvar tantab_l = win[Encoder.SHORT_TYPE];\n\tvar cx = win[Encoder.SHORT_TYPE];\n\tvar ca = win[Encoder.SHORT_TYPE];\n\tvar cs = win[Encoder.SHORT_TYPE];\n\n\t/**\n\t * new IDCT routine written by Takehiro TOMINAGA\n\t *\n\t * PURPOSE: Overlapping window on PCM samples
\n\t *\n\t * SEMANTICS:
\n\t * 32 16-bit pcm samples are scaled to fractional 2's complement and\n\t * concatenated to the end of the window buffer #x#. The updated window\n\t * buffer #x# is then windowed by the analysis window #c# to produce the\n\t * windowed sample #z#\n\t */\n\tvar order = [\n\t 0, 1, 16, 17, 8, 9, 24, 25, 4, 5, 20, 21, 12, 13, 28, 29,\n\t 2, 3, 18, 19, 10, 11, 26, 27, 6, 7, 22, 23, 14, 15, 30, 31\n\t];\n\n\t/**\n\t * returns sum_j=0^31 a[j]*cos(PI*j*(k+1/2)/32), 0<=k<32\n\t */\n\tfunction window_subband(x1, x1Pos, a) {\n\t\tvar wp = 10;\n\n\t\tvar x2 = x1Pos + 238 - 14 - 286;\n\n\t\tfor (var i = -15; i < 0; i++) {\n\t\t\tvar w, s, t;\n\n\t\t\tw = enwindow[wp + -10];\n\t\t\ts = x1[x2 + -224] * w;\n\t\t\tt = x1[x1Pos + 224] * w;\n\t\t\tw = enwindow[wp + -9];\n\t\t\ts += x1[x2 + -160] * w;\n\t\t\tt += x1[x1Pos + 160] * w;\n\t\t\tw = enwindow[wp + -8];\n\t\t\ts += x1[x2 + -96] * w;\n\t\t\tt += x1[x1Pos + 96] * w;\n\t\t\tw = enwindow[wp + -7];\n\t\t\ts += x1[x2 + -32] * w;\n\t\t\tt += x1[x1Pos + 32] * w;\n\t\t\tw = enwindow[wp + -6];\n\t\t\ts += x1[x2 + 32] * w;\n\t\t\tt += x1[x1Pos + -32] * w;\n\t\t\tw = enwindow[wp + -5];\n\t\t\ts += x1[x2 + 96] * w;\n\t\t\tt += x1[x1Pos + -96] * w;\n\t\t\tw = enwindow[wp + -4];\n\t\t\ts += x1[x2 + 160] * w;\n\t\t\tt += x1[x1Pos + -160] * w;\n\t\t\tw = enwindow[wp + -3];\n\t\t\ts += x1[x2 + 224] * w;\n\t\t\tt += x1[x1Pos + -224] * w;\n\n\t\t\tw = enwindow[wp + -2];\n\t\t\ts += x1[x1Pos + -256] * w;\n\t\t\tt -= x1[x2 + 256] * w;\n\t\t\tw = enwindow[wp + -1];\n\t\t\ts += x1[x1Pos + -192] * w;\n\t\t\tt -= x1[x2 + 192] * w;\n\t\t\tw = enwindow[wp + 0];\n\t\t\ts += x1[x1Pos + -128] * w;\n\t\t\tt -= x1[x2 + 128] * w;\n\t\t\tw = enwindow[wp + 1];\n\t\t\ts += x1[x1Pos + -64] * w;\n\t\t\tt -= x1[x2 + 64] * w;\n\t\t\tw = enwindow[wp + 2];\n\t\t\ts += x1[x1Pos + 0] * w;\n\t\t\tt -= x1[x2 + 0] * w;\n\t\t\tw = enwindow[wp + 3];\n\t\t\ts += x1[x1Pos + 64] * w;\n\t\t\tt -= x1[x2 + -64] * w;\n\t\t\tw = enwindow[wp + 4];\n\t\t\ts += x1[x1Pos + 128] * w;\n\t\t\tt -= x1[x2 + -128] * w;\n\t\t\tw = enwindow[wp + 5];\n\t\t\ts += x1[x1Pos + 192] * w;\n\t\t\tt -= x1[x2 + -192] * w;\n\n\t\t\t/*\n\t\t\t * this multiplyer could be removed, but it needs more 256 FLOAT\n\t\t\t * data. thinking about the data cache performance, I think we\n\t\t\t * should not use such a huge table. tt 2000/Oct/25\n\t\t\t */\n\t\t\ts *= enwindow[wp + 6];\n\t\t\tw = t - s;\n\t\t\ta[30 + i * 2] = t + s;\n\t\t\ta[31 + i * 2] = enwindow[wp + 7] * w;\n\t\t\twp += 18;\n\t\t\tx1Pos--;\n\t\t\tx2++;\n\t\t}\n\t\t{\n\t\t\tvar s, t, u, v;\n\t\t\tt = x1[x1Pos + -16] * enwindow[wp + -10];\n\t\t\ts = x1[x1Pos + -32] * enwindow[wp + -2];\n\t\t\tt += (x1[x1Pos + -48] - x1[x1Pos + 16]) * enwindow[wp + -9];\n\t\t\ts += x1[x1Pos + -96] * enwindow[wp + -1];\n\t\t\tt += (x1[x1Pos + -80] + x1[x1Pos + 48]) * enwindow[wp + -8];\n\t\t\ts += x1[x1Pos + -160] * enwindow[wp + 0];\n\t\t\tt += (x1[x1Pos + -112] - x1[x1Pos + 80]) * enwindow[wp + -7];\n\t\t\ts += x1[x1Pos + -224] * enwindow[wp + 1];\n\t\t\tt += (x1[x1Pos + -144] + x1[x1Pos + 112]) * enwindow[wp + -6];\n\t\t\ts -= x1[x1Pos + 32] * enwindow[wp + 2];\n\t\t\tt += (x1[x1Pos + -176] - x1[x1Pos + 144]) * enwindow[wp + -5];\n\t\t\ts -= x1[x1Pos + 96] * enwindow[wp + 3];\n\t\t\tt += (x1[x1Pos + -208] + x1[x1Pos + 176]) * enwindow[wp + -4];\n\t\t\ts -= x1[x1Pos + 160] * enwindow[wp + 4];\n\t\t\tt += (x1[x1Pos + -240] - x1[x1Pos + 208]) * enwindow[wp + -3];\n\t\t\ts -= x1[x1Pos + 224];\n\n\t\t\tu = s - t;\n\t\t\tv = s + t;\n\n\t\t\tt = a[14];\n\t\t\ts = a[15] - t;\n\n\t\t\ta[31] = v + t; /* A0 */\n\t\t\ta[30] = u + s; /* A1 */\n\t\t\ta[15] = u - s; /* A2 */\n\t\t\ta[14] = v - t; /* A3 */\n\t\t}\n\t\t{\n\t\t\tvar xr;\n\t\t\txr = a[28] - a[0];\n\t\t\ta[0] += a[28];\n\t\t\ta[28] = xr * enwindow[wp + -2 * 18 + 7];\n\t\t\txr = a[29] - a[1];\n\t\t\ta[1] += a[29];\n\t\t\ta[29] = xr * enwindow[wp + -2 * 18 + 7];\n\n\t\t\txr = a[26] - a[2];\n\t\t\ta[2] += a[26];\n\t\t\ta[26] = xr * enwindow[wp + -4 * 18 + 7];\n\t\t\txr = a[27] - a[3];\n\t\t\ta[3] += a[27];\n\t\t\ta[27] = xr * enwindow[wp + -4 * 18 + 7];\n\n\t\t\txr = a[24] - a[4];\n\t\t\ta[4] += a[24];\n\t\t\ta[24] = xr * enwindow[wp + -6 * 18 + 7];\n\t\t\txr = a[25] - a[5];\n\t\t\ta[5] += a[25];\n\t\t\ta[25] = xr * enwindow[wp + -6 * 18 + 7];\n\n\t\t\txr = a[22] - a[6];\n\t\t\ta[6] += a[22];\n\t\t\ta[22] = xr * Util.SQRT2;\n\t\t\txr = a[23] - a[7];\n\t\t\ta[7] += a[23];\n\t\t\ta[23] = xr * Util.SQRT2 - a[7];\n\t\t\ta[7] -= a[6];\n\t\t\ta[22] -= a[7];\n\t\t\ta[23] -= a[22];\n\n\t\t\txr = a[6];\n\t\t\ta[6] = a[31] - xr;\n\t\t\ta[31] = a[31] + xr;\n\t\t\txr = a[7];\n\t\t\ta[7] = a[30] - xr;\n\t\t\ta[30] = a[30] + xr;\n\t\t\txr = a[22];\n\t\t\ta[22] = a[15] - xr;\n\t\t\ta[15] = a[15] + xr;\n\t\t\txr = a[23];\n\t\t\ta[23] = a[14] - xr;\n\t\t\ta[14] = a[14] + xr;\n\n\t\t\txr = a[20] - a[8];\n\t\t\ta[8] += a[20];\n\t\t\ta[20] = xr * enwindow[wp + -10 * 18 + 7];\n\t\t\txr = a[21] - a[9];\n\t\t\ta[9] += a[21];\n\t\t\ta[21] = xr * enwindow[wp + -10 * 18 + 7];\n\n\t\t\txr = a[18] - a[10];\n\t\t\ta[10] += a[18];\n\t\t\ta[18] = xr * enwindow[wp + -12 * 18 + 7];\n\t\t\txr = a[19] - a[11];\n\t\t\ta[11] += a[19];\n\t\t\ta[19] = xr * enwindow[wp + -12 * 18 + 7];\n\n\t\t\txr = a[16] - a[12];\n\t\t\ta[12] += a[16];\n\t\t\ta[16] = xr * enwindow[wp + -14 * 18 + 7];\n\t\t\txr = a[17] - a[13];\n\t\t\ta[13] += a[17];\n\t\t\ta[17] = xr * enwindow[wp + -14 * 18 + 7];\n\n\t\t\txr = -a[20] + a[24];\n\t\t\ta[20] += a[24];\n\t\t\ta[24] = xr * enwindow[wp + -12 * 18 + 7];\n\t\t\txr = -a[21] + a[25];\n\t\t\ta[21] += a[25];\n\t\t\ta[25] = xr * enwindow[wp + -12 * 18 + 7];\n\n\t\t\txr = a[4] - a[8];\n\t\t\ta[4] += a[8];\n\t\t\ta[8] = xr * enwindow[wp + -12 * 18 + 7];\n\t\t\txr = a[5] - a[9];\n\t\t\ta[5] += a[9];\n\t\t\ta[9] = xr * enwindow[wp + -12 * 18 + 7];\n\n\t\t\txr = a[0] - a[12];\n\t\t\ta[0] += a[12];\n\t\t\ta[12] = xr * enwindow[wp + -4 * 18 + 7];\n\t\t\txr = a[1] - a[13];\n\t\t\ta[1] += a[13];\n\t\t\ta[13] = xr * enwindow[wp + -4 * 18 + 7];\n\t\t\txr = a[16] - a[28];\n\t\t\ta[16] += a[28];\n\t\t\ta[28] = xr * enwindow[wp + -4 * 18 + 7];\n\t\t\txr = -a[17] + a[29];\n\t\t\ta[17] += a[29];\n\t\t\ta[29] = xr * enwindow[wp + -4 * 18 + 7];\n\n\t\t\txr = Util.SQRT2 * (a[2] - a[10]);\n\t\t\ta[2] += a[10];\n\t\t\ta[10] = xr;\n\t\t\txr = Util.SQRT2 * (a[3] - a[11]);\n\t\t\ta[3] += a[11];\n\t\t\ta[11] = xr;\n\t\t\txr = Util.SQRT2 * (-a[18] + a[26]);\n\t\t\ta[18] += a[26];\n\t\t\ta[26] = xr - a[18];\n\t\t\txr = Util.SQRT2 * (-a[19] + a[27]);\n\t\t\ta[19] += a[27];\n\t\t\ta[27] = xr - a[19];\n\n\t\t\txr = a[2];\n\t\t\ta[19] -= a[3];\n\t\t\ta[3] -= xr;\n\t\t\ta[2] = a[31] - xr;\n\t\t\ta[31] += xr;\n\t\t\txr = a[3];\n\t\t\ta[11] -= a[19];\n\t\t\ta[18] -= xr;\n\t\t\ta[3] = a[30] - xr;\n\t\t\ta[30] += xr;\n\t\t\txr = a[18];\n\t\t\ta[27] -= a[11];\n\t\t\ta[19] -= xr;\n\t\t\ta[18] = a[15] - xr;\n\t\t\ta[15] += xr;\n\n\t\t\txr = a[19];\n\t\t\ta[10] -= xr;\n\t\t\ta[19] = a[14] - xr;\n\t\t\ta[14] += xr;\n\t\t\txr = a[10];\n\t\t\ta[11] -= xr;\n\t\t\ta[10] = a[23] - xr;\n\t\t\ta[23] += xr;\n\t\t\txr = a[11];\n\t\t\ta[26] -= xr;\n\t\t\ta[11] = a[22] - xr;\n\t\t\ta[22] += xr;\n\t\t\txr = a[26];\n\t\t\ta[27] -= xr;\n\t\t\ta[26] = a[7] - xr;\n\t\t\ta[7] += xr;\n\n\t\t\txr = a[27];\n\t\t\ta[27] = a[6] - xr;\n\t\t\ta[6] += xr;\n\n\t\t\txr = Util.SQRT2 * (a[0] - a[4]);\n\t\t\ta[0] += a[4];\n\t\t\ta[4] = xr;\n\t\t\txr = Util.SQRT2 * (a[1] - a[5]);\n\t\t\ta[1] += a[5];\n\t\t\ta[5] = xr;\n\t\t\txr = Util.SQRT2 * (a[16] - a[20]);\n\t\t\ta[16] += a[20];\n\t\t\ta[20] = xr;\n\t\t\txr = Util.SQRT2 * (a[17] - a[21]);\n\t\t\ta[17] += a[21];\n\t\t\ta[21] = xr;\n\n\t\t\txr = -Util.SQRT2 * (a[8] - a[12]);\n\t\t\ta[8] += a[12];\n\t\t\ta[12] = xr - a[8];\n\t\t\txr = -Util.SQRT2 * (a[9] - a[13]);\n\t\t\ta[9] += a[13];\n\t\t\ta[13] = xr - a[9];\n\t\t\txr = -Util.SQRT2 * (a[25] - a[29]);\n\t\t\ta[25] += a[29];\n\t\t\ta[29] = xr - a[25];\n\t\t\txr = -Util.SQRT2 * (a[24] + a[28]);\n\t\t\ta[24] -= a[28];\n\t\t\ta[28] = xr - a[24];\n\n\t\t\txr = a[24] - a[16];\n\t\t\ta[24] = xr;\n\t\t\txr = a[20] - xr;\n\t\t\ta[20] = xr;\n\t\t\txr = a[28] - xr;\n\t\t\ta[28] = xr;\n\n\t\t\txr = a[25] - a[17];\n\t\t\ta[25] = xr;\n\t\t\txr = a[21] - xr;\n\t\t\ta[21] = xr;\n\t\t\txr = a[29] - xr;\n\t\t\ta[29] = xr;\n\n\t\t\txr = a[17] - a[1];\n\t\t\ta[17] = xr;\n\t\t\txr = a[9] - xr;\n\t\t\ta[9] = xr;\n\t\t\txr = a[25] - xr;\n\t\t\ta[25] = xr;\n\t\t\txr = a[5] - xr;\n\t\t\ta[5] = xr;\n\t\t\txr = a[21] - xr;\n\t\t\ta[21] = xr;\n\t\t\txr = a[13] - xr;\n\t\t\ta[13] = xr;\n\t\t\txr = a[29] - xr;\n\t\t\ta[29] = xr;\n\n\t\t\txr = a[1] - a[0];\n\t\t\ta[1] = xr;\n\t\t\txr = a[16] - xr;\n\t\t\ta[16] = xr;\n\t\t\txr = a[17] - xr;\n\t\t\ta[17] = xr;\n\t\t\txr = a[8] - xr;\n\t\t\ta[8] = xr;\n\t\t\txr = a[9] - xr;\n\t\t\ta[9] = xr;\n\t\t\txr = a[24] - xr;\n\t\t\ta[24] = xr;\n\t\t\txr = a[25] - xr;\n\t\t\ta[25] = xr;\n\t\t\txr = a[4] - xr;\n\t\t\ta[4] = xr;\n\t\t\txr = a[5] - xr;\n\t\t\ta[5] = xr;\n\t\t\txr = a[20] - xr;\n\t\t\ta[20] = xr;\n\t\t\txr = a[21] - xr;\n\t\t\ta[21] = xr;\n\t\t\txr = a[12] - xr;\n\t\t\ta[12] = xr;\n\t\t\txr = a[13] - xr;\n\t\t\ta[13] = xr;\n\t\t\txr = a[28] - xr;\n\t\t\ta[28] = xr;\n\t\t\txr = a[29] - xr;\n\t\t\ta[29] = xr;\n\n\t\t\txr = a[0];\n\t\t\ta[0] += a[31];\n\t\t\ta[31] -= xr;\n\t\t\txr = a[1];\n\t\t\ta[1] += a[30];\n\t\t\ta[30] -= xr;\n\t\t\txr = a[16];\n\t\t\ta[16] += a[15];\n\t\t\ta[15] -= xr;\n\t\t\txr = a[17];\n\t\t\ta[17] += a[14];\n\t\t\ta[14] -= xr;\n\t\t\txr = a[8];\n\t\t\ta[8] += a[23];\n\t\t\ta[23] -= xr;\n\t\t\txr = a[9];\n\t\t\ta[9] += a[22];\n\t\t\ta[22] -= xr;\n\t\t\txr = a[24];\n\t\t\ta[24] += a[7];\n\t\t\ta[7] -= xr;\n\t\t\txr = a[25];\n\t\t\ta[25] += a[6];\n\t\t\ta[6] -= xr;\n\t\t\txr = a[4];\n\t\t\ta[4] += a[27];\n\t\t\ta[27] -= xr;\n\t\t\txr = a[5];\n\t\t\ta[5] += a[26];\n\t\t\ta[26] -= xr;\n\t\t\txr = a[20];\n\t\t\ta[20] += a[11];\n\t\t\ta[11] -= xr;\n\t\t\txr = a[21];\n\t\t\ta[21] += a[10];\n\t\t\ta[10] -= xr;\n\t\t\txr = a[12];\n\t\t\ta[12] += a[19];\n\t\t\ta[19] -= xr;\n\t\t\txr = a[13];\n\t\t\ta[13] += a[18];\n\t\t\ta[18] -= xr;\n\t\t\txr = a[28];\n\t\t\ta[28] += a[3];\n\t\t\ta[3] -= xr;\n\t\t\txr = a[29];\n\t\t\ta[29] += a[2];\n\t\t\ta[2] -= xr;\n\t\t}\n\t}\n\n\t/**\n\t * Function: Calculation of the MDCT In the case of long blocks (type 0,1,3)\n\t * there are 36 coefficents in the time domain and 18 in the frequency\n\t * domain.
\n\t * In the case of short blocks (type 2) there are 3 transformations with\n\t * short length. This leads to 12 coefficents in the time and 6 in the\n\t * frequency domain. In this case the results are stored side by side in the\n\t * vector out[].\n\t *\n\t * New layer3\n\t */\n\tfunction mdct_short(inout, inoutPos) {\n\t\tfor (var l = 0; l < 3; l++) {\n\t\t\tvar tc0, tc1, tc2, ts0, ts1, ts2;\n\n\t\t\tts0 = inout[inoutPos + 2 * 3] * win[Encoder.SHORT_TYPE][0]\n\t\t\t\t\t- inout[inoutPos + 5 * 3];\n\t\t\ttc0 = inout[inoutPos + 0 * 3] * win[Encoder.SHORT_TYPE][2]\n\t\t\t\t\t- inout[inoutPos + 3 * 3];\n\t\t\ttc1 = ts0 + tc0;\n\t\t\ttc2 = ts0 - tc0;\n\n\t\t\tts0 = inout[inoutPos + 5 * 3] * win[Encoder.SHORT_TYPE][0]\n\t\t\t\t\t+ inout[inoutPos + 2 * 3];\n\t\t\ttc0 = inout[inoutPos + 3 * 3] * win[Encoder.SHORT_TYPE][2]\n\t\t\t\t\t+ inout[inoutPos + 0 * 3];\n\t\t\tts1 = ts0 + tc0;\n\t\t\tts2 = -ts0 + tc0;\n\n\t\t\ttc0 = (inout[inoutPos + 1 * 3] * win[Encoder.SHORT_TYPE][1] - inout[inoutPos + 4 * 3]) * 2.069978111953089e-11;\n\t\t\t/*\n\t\t\t * tritab_s [ 1 ]\n\t\t\t */\n\t\t\tts0 = (inout[inoutPos + 4 * 3] * win[Encoder.SHORT_TYPE][1] + inout[inoutPos + 1 * 3]) * 2.069978111953089e-11;\n\t\t\t/*\n\t\t\t * tritab_s [ 1 ]\n\t\t\t */\n\t\t\tinout[inoutPos + 3 * 0] = tc1 * 1.907525191737280e-11 + tc0;\n\t\t\t/*\n\t\t\t * tritab_s[ 2 ]\n\t\t\t */\n\t\t\tinout[inoutPos + 3 * 5] = -ts1 * 1.907525191737280e-11 + ts0;\n\t\t\t/*\n\t\t\t * tritab_s[0 ]\n\t\t\t */\n\t\t\ttc2 = tc2 * 0.86602540378443870761 * 1.907525191737281e-11;\n\t\t\t/*\n\t\t\t * tritab_s[ 2]\n\t\t\t */\n\t\t\tts1 = ts1 * 0.5 * 1.907525191737281e-11 + ts0;\n\t\t\tinout[inoutPos + 3 * 1] = tc2 - ts1;\n\t\t\tinout[inoutPos + 3 * 2] = tc2 + ts1;\n\n\t\t\ttc1 = tc1 * 0.5 * 1.907525191737281e-11 - tc0;\n\t\t\tts2 = ts2 * 0.86602540378443870761 * 1.907525191737281e-11;\n\t\t\t/*\n\t\t\t * tritab_s[ 0]\n\t\t\t */\n\t\t\tinout[inoutPos + 3 * 3] = tc1 + ts2;\n\t\t\tinout[inoutPos + 3 * 4] = tc1 - ts2;\n\n\t\t\tinoutPos++;\n\t\t}\n\t}\n\n\tfunction mdct_long(out, outPos, _in) {\n\t\tvar ct, st;\n\t\t{\n\t\t\tvar tc1, tc2, tc3, tc4, ts5, ts6, ts7, ts8;\n\t\t\t/* 1,2, 5,6, 9,10, 13,14, 17 */\n\t\t\ttc1 = _in[17] - _in[9];\n\t\t\ttc3 = _in[15] - _in[11];\n\t\t\ttc4 = _in[14] - _in[12];\n\t\t\tts5 = _in[0] + _in[8];\n\t\t\tts6 = _in[1] + _in[7];\n\t\t\tts7 = _in[2] + _in[6];\n\t\t\tts8 = _in[3] + _in[5];\n\n\t\t\tout[outPos + 17] = (ts5 + ts7 - ts8) - (ts6 - _in[4]);\n\t\t\tst = (ts5 + ts7 - ts8) * cx[12 + 7] + (ts6 - _in[4]);\n\t\t\tct = (tc1 - tc3 - tc4) * cx[12 + 6];\n\t\t\tout[outPos + 5] = ct + st;\n\t\t\tout[outPos + 6] = ct - st;\n\n\t\t\ttc2 = (_in[16] - _in[10]) * cx[12 + 6];\n\t\t\tts6 = ts6 * cx[12 + 7] + _in[4];\n\t\t\tct = tc1 * cx[12 + 0] + tc2 + tc3 * cx[12 + 1] + tc4 * cx[12 + 2];\n\t\t\tst = -ts5 * cx[12 + 4] + ts6 - ts7 * cx[12 + 5] + ts8 * cx[12 + 3];\n\t\t\tout[outPos + 1] = ct + st;\n\t\t\tout[outPos + 2] = ct - st;\n\n\t\t\tct = tc1 * cx[12 + 1] - tc2 - tc3 * cx[12 + 2] + tc4 * cx[12 + 0];\n\t\t\tst = -ts5 * cx[12 + 5] + ts6 - ts7 * cx[12 + 3] + ts8 * cx[12 + 4];\n\t\t\tout[outPos + 9] = ct + st;\n\t\t\tout[outPos + 10] = ct - st;\n\n\t\t\tct = tc1 * cx[12 + 2] - tc2 + tc3 * cx[12 + 0] - tc4 * cx[12 + 1];\n\t\t\tst = ts5 * cx[12 + 3] - ts6 + ts7 * cx[12 + 4] - ts8 * cx[12 + 5];\n\t\t\tout[outPos + 13] = ct + st;\n\t\t\tout[outPos + 14] = ct - st;\n\t\t}\n\t\t{\n\t\t\tvar ts1, ts2, ts3, ts4, tc5, tc6, tc7, tc8;\n\n\t\t\tts1 = _in[8] - _in[0];\n\t\t\tts3 = _in[6] - _in[2];\n\t\t\tts4 = _in[5] - _in[3];\n\t\t\ttc5 = _in[17] + _in[9];\n\t\t\ttc6 = _in[16] + _in[10];\n\t\t\ttc7 = _in[15] + _in[11];\n\t\t\ttc8 = _in[14] + _in[12];\n\n\t\t\tout[outPos + 0] = (tc5 + tc7 + tc8) + (tc6 + _in[13]);\n\t\t\tct = (tc5 + tc7 + tc8) * cx[12 + 7] - (tc6 + _in[13]);\n\t\t\tst = (ts1 - ts3 + ts4) * cx[12 + 6];\n\t\t\tout[outPos + 11] = ct + st;\n\t\t\tout[outPos + 12] = ct - st;\n\n\t\t\tts2 = (_in[7] - _in[1]) * cx[12 + 6];\n\t\t\ttc6 = _in[13] - tc6 * cx[12 + 7];\n\t\t\tct = tc5 * cx[12 + 3] - tc6 + tc7 * cx[12 + 4] + tc8 * cx[12 + 5];\n\t\t\tst = ts1 * cx[12 + 2] + ts2 + ts3 * cx[12 + 0] + ts4 * cx[12 + 1];\n\t\t\tout[outPos + 3] = ct + st;\n\t\t\tout[outPos + 4] = ct - st;\n\n\t\t\tct = -tc5 * cx[12 + 5] + tc6 - tc7 * cx[12 + 3] - tc8 * cx[12 + 4];\n\t\t\tst = ts1 * cx[12 + 1] + ts2 - ts3 * cx[12 + 2] - ts4 * cx[12 + 0];\n\t\t\tout[outPos + 7] = ct + st;\n\t\t\tout[outPos + 8] = ct - st;\n\n\t\t\tct = -tc5 * cx[12 + 4] + tc6 - tc7 * cx[12 + 5] - tc8 * cx[12 + 3];\n\t\t\tst = ts1 * cx[12 + 0] - ts2 + ts3 * cx[12 + 1] - ts4 * cx[12 + 2];\n\t\t\tout[outPos + 15] = ct + st;\n\t\t\tout[outPos + 16] = ct - st;\n\t\t}\n\t}\n\n\tthis.mdct_sub48 = function(gfc, w0, w1) {\n\t\tvar wk = w0;\n\t\tvar wkPos = 286;\n\t\t/* thinking cache performance, ch->gr loop is better than gr->ch loop */\n\t\tfor (var ch = 0; ch < gfc.channels_out; ch++) {\n\t\t\tfor (var gr = 0; gr < gfc.mode_gr; gr++) {\n\t\t\t\tvar band;\n\t\t\t\tvar gi = (gfc.l3_side.tt[gr][ch]);\n\t\t\t\tvar mdct_enc = gi.xr;\n\t\t\t\tvar mdct_encPos = 0;\n\t\t\t\tvar samp = gfc.sb_sample[ch][1 - gr];\n\t\t\t\tvar sampPos = 0;\n\n\t\t\t\tfor (var k = 0; k < 18 / 2; k++) {\n\t\t\t\t\twindow_subband(wk, wkPos, samp[sampPos]);\n\t\t\t\t\twindow_subband(wk, wkPos + 32, samp[sampPos + 1]);\n\t\t\t\t\tsampPos += 2;\n\t\t\t\t\twkPos += 64;\n\t\t\t\t\t/*\n\t\t\t\t\t * Compensate for inversion in the analysis filter\n\t\t\t\t\t */\n\t\t\t\t\tfor (band = 1; band < 32; band += 2) {\n\t\t\t\t\t\tsamp[sampPos - 1][band] *= -1;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t/*\n\t\t\t\t * Perform imdct of 18 previous subband samples + 18 current\n\t\t\t\t * subband samples\n\t\t\t\t */\n\t\t\t\tfor (band = 0; band < 32; band++, mdct_encPos += 18) {\n\t\t\t\t\tvar type = gi.block_type;\n\t\t\t\t\tvar band0 = gfc.sb_sample[ch][gr];\n\t\t\t\t\tvar band1 = gfc.sb_sample[ch][1 - gr];\n\t\t\t\t\tif (gi.mixed_block_flag != 0 && band < 2)\n\t\t\t\t\t\ttype = 0;\n\t\t\t\t\tif (gfc.amp_filter[band] < 1e-12) {\n\t\t\t\t\t\tArrays.fill(mdct_enc, mdct_encPos + 0,\n\t\t\t\t\t\t\t\tmdct_encPos + 18, 0);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (gfc.amp_filter[band] < 1.0) {\n\t\t\t\t\t\t\tfor (var k = 0; k < 18; k++)\n\t\t\t\t\t\t\t\tband1[k][order[band]] *= gfc.amp_filter[band];\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (type == Encoder.SHORT_TYPE) {\n\t\t\t\t\t\t\tfor (var k = -NS / 4; k < 0; k++) {\n\t\t\t\t\t\t\t\tvar w = win[Encoder.SHORT_TYPE][k + 3];\n\t\t\t\t\t\t\t\tmdct_enc[mdct_encPos + k * 3 + 9] = band0[9 + k][order[band]]\n\t\t\t\t\t\t\t\t\t\t* w - band0[8 - k][order[band]];\n\t\t\t\t\t\t\t\tmdct_enc[mdct_encPos + k * 3 + 18] = band0[14 - k][order[band]]\n\t\t\t\t\t\t\t\t\t\t* w + band0[15 + k][order[band]];\n\t\t\t\t\t\t\t\tmdct_enc[mdct_encPos + k * 3 + 10] = band0[15 + k][order[band]]\n\t\t\t\t\t\t\t\t\t\t* w - band0[14 - k][order[band]];\n\t\t\t\t\t\t\t\tmdct_enc[mdct_encPos + k * 3 + 19] = band1[2 - k][order[band]]\n\t\t\t\t\t\t\t\t\t\t* w + band1[3 + k][order[band]];\n\t\t\t\t\t\t\t\tmdct_enc[mdct_encPos + k * 3 + 11] = band1[3 + k][order[band]]\n\t\t\t\t\t\t\t\t\t\t* w - band1[2 - k][order[band]];\n\t\t\t\t\t\t\t\tmdct_enc[mdct_encPos + k * 3 + 20] = band1[8 - k][order[band]]\n\t\t\t\t\t\t\t\t\t\t* w + band1[9 + k][order[band]];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tmdct_short(mdct_enc, mdct_encPos);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tvar work = new_float(18);\n\t\t\t\t\t\t\tfor (var k = -NL / 4; k < 0; k++) {\n\t\t\t\t\t\t\t\tvar a, b;\n\t\t\t\t\t\t\t\ta = win[type][k + 27]\n\t\t\t\t\t\t\t\t\t\t* band1[k + 9][order[band]]\n\t\t\t\t\t\t\t\t\t\t+ win[type][k + 36]\n\t\t\t\t\t\t\t\t\t\t* band1[8 - k][order[band]];\n\t\t\t\t\t\t\t\tb = win[type][k + 9]\n\t\t\t\t\t\t\t\t\t\t* band0[k + 9][order[band]]\n\t\t\t\t\t\t\t\t\t\t- win[type][k + 18]\n\t\t\t\t\t\t\t\t\t\t* band0[8 - k][order[band]];\n\t\t\t\t\t\t\t\twork[k + 9] = a - b * tantab_l[3 + k + 9];\n\t\t\t\t\t\t\t\twork[k + 18] = a * tantab_l[3 + k + 9] + b;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tmdct_long(mdct_enc, mdct_encPos, work);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t/*\n\t\t\t\t\t * Perform aliasing reduction butterfly\n\t\t\t\t\t */\n\t\t\t\t\tif (type != Encoder.SHORT_TYPE && band != 0) {\n\t\t\t\t\t\tfor (var k = 7; k >= 0; --k) {\n\t\t\t\t\t\t\tvar bu, bd;\n\t\t\t\t\t\t\tbu = mdct_enc[mdct_encPos + k] * ca[20 + k]\n\t\t\t\t\t\t\t\t\t+ mdct_enc[mdct_encPos + -1 - k]\n\t\t\t\t\t\t\t\t\t* cs[28 + k];\n\t\t\t\t\t\t\tbd = mdct_enc[mdct_encPos + k] * cs[28 + k]\n\t\t\t\t\t\t\t\t\t- mdct_enc[mdct_encPos + -1 - k]\n\t\t\t\t\t\t\t\t\t* ca[20 + k];\n\n\t\t\t\t\t\t\tmdct_enc[mdct_encPos + -1 - k] = bu;\n\t\t\t\t\t\t\tmdct_enc[mdct_encPos + k] = bd;\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\twk = w1;\n\t\t\twkPos = 286;\n\t\t\tif (gfc.mode_gr == 1) {\n\t\t\t\tfor (var i = 0; i < 18; i++) {\n\t\t\t\t\tSystem.arraycopy(gfc.sb_sample[ch][1][i], 0,\n\t\t\t\t\t\t\tgfc.sb_sample[ch][0][i], 0, 32);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\nmodule.exports = NewMDCT;\n","var Encoder = require('./Encoder.js');\nvar common = require('./common.js');\nvar System = common.System;\nvar VbrMode = common.VbrMode;\nvar Float = common.Float;\nvar ShortBlock = common.ShortBlock;\nvar Util = common.Util;\nvar Arrays = common.Arrays;\nvar new_array_n = common.new_array_n;\nvar new_byte = common.new_byte;\nvar new_double = common.new_double;\nvar new_float = common.new_float;\nvar new_float_n = common.new_float_n;\nvar new_int = common.new_int;\nvar new_int_n = common.new_int_n;\nvar assert = common.assert;\n\nfunction III_psy_xmin() {\n this.l = new_float(Encoder.SBMAX_l);\n this.s = new_float_n([Encoder.SBMAX_s, 3]);\n\n var self = this;\n this.assign = function (iii_psy_xmin) {\n System.arraycopy(iii_psy_xmin.l, 0, self.l, 0, Encoder.SBMAX_l);\n for (var i = 0; i < Encoder.SBMAX_s; i++) {\n for (var j = 0; j < 3; j++) {\n self.s[i][j] = iii_psy_xmin.s[i][j];\n }\n }\n }\n}\n\nmodule.exports = III_psy_xmin;\n","//package mp3;\n\nvar III_psy_xmin = require('./III_psy_xmin.js');\n\nfunction III_psy_ratio() {\n\tthis.thm = new III_psy_xmin();\n\tthis.en = new III_psy_xmin();\n}\n\nmodule.exports = III_psy_ratio;\n","var common = require('./common.js');\nvar System = common.System;\nvar VbrMode = common.VbrMode;\nvar Float = common.Float;\nvar ShortBlock = common.ShortBlock;\nvar Util = common.Util;\nvar Arrays = common.Arrays;\nvar new_array_n = common.new_array_n;\nvar new_byte = common.new_byte;\nvar new_double = common.new_double;\nvar new_float = common.new_float;\nvar new_float_n = common.new_float_n;\nvar new_int = common.new_int;\nvar new_int_n = common.new_int_n;\nvar assert = common.assert;\n\n/**\n * ENCDELAY The encoder delay.\n *\n * Minimum allowed is MDCTDELAY (see below)\n *\n * The first 96 samples will be attenuated, so using a value less than 96\n * will result in corrupt data for the first 96-ENCDELAY samples.\n *\n * suggested: 576 set to 1160 to sync with FhG.\n */\nEncoder.ENCDELAY = 576;\n/**\n * make sure there is at least one complete frame after the last frame\n * containing real data\n *\n * Using a value of 288 would be sufficient for a a very sophisticated\n * decoder that can decode granule-by-granule instead of frame by frame. But\n * lets not assume this, and assume the decoder will not decode frame N\n * unless it also has data for frame N+1\n */\nEncoder.POSTDELAY = 1152;\n\n/**\n * delay of the MDCT used in mdct.c original ISO routines had a delay of\n * 528! Takehiro's routines:\n */\nEncoder.MDCTDELAY = 48;\nEncoder.FFTOFFSET = (224 + Encoder.MDCTDELAY);\n\n/**\n * Most decoders, including the one we use, have a delay of 528 samples.\n */\nEncoder.DECDELAY = 528;\n\n/**\n * number of subbands\n */\nEncoder.SBLIMIT = 32;\n\n/**\n * parition bands bands\n */\nEncoder.CBANDS = 64;\n\n/**\n * number of critical bands/scale factor bands where masking is computed\n */\nEncoder.SBPSY_l = 21;\nEncoder.SBPSY_s = 12;\n\n/**\n * total number of scalefactor bands encoded\n */\nEncoder.SBMAX_l = 22;\nEncoder.SBMAX_s = 13;\nEncoder.PSFB21 = 6;\nEncoder.PSFB12 = 6;\n\n/**\n * FFT sizes\n */\nEncoder.BLKSIZE = 1024;\nEncoder.HBLKSIZE = (Encoder.BLKSIZE / 2 + 1);\nEncoder.BLKSIZE_s = 256;\nEncoder.HBLKSIZE_s = (Encoder.BLKSIZE_s / 2 + 1);\n\nEncoder.NORM_TYPE = 0;\nEncoder.START_TYPE = 1;\nEncoder.SHORT_TYPE = 2;\nEncoder.STOP_TYPE = 3;\n\n/**\n *
\n * Mode Extention:\n * When we are in stereo mode, there are 4 possible methods to store these\n * two channels. The stereo modes -m? are using a subset of them.\n *\n *  -ms: MPG_MD_LR_LR\n *  -mj: MPG_MD_LR_LR and MPG_MD_MS_LR\n *  -mf: MPG_MD_MS_LR\n *  -mi: all\n * 
\n */\nEncoder.MPG_MD_LR_LR = 0;\nEncoder.MPG_MD_LR_I = 1;\nEncoder.MPG_MD_MS_LR = 2;\nEncoder.MPG_MD_MS_I = 3;\n\nEncoder.fircoef = [-0.0207887 * 5, -0.0378413 * 5,\n -0.0432472 * 5, -0.031183 * 5, 7.79609e-18 * 5, 0.0467745 * 5,\n 0.10091 * 5, 0.151365 * 5, 0.187098 * 5];\n\nfunction Encoder() {\n var NewMDCT = require('./NewMDCT.js');\n var III_psy_ratio = require('./III_psy_ratio.js');\n\n var FFTOFFSET = Encoder.FFTOFFSET;\n var MPG_MD_MS_LR = Encoder.MPG_MD_MS_LR;\n //BitStream bs;\n //PsyModel psy;\n //VBRTag vbr;\n //QuantizePVT qupvt;\n var bs = null;\n this.psy = null;\n var psy = null;\n var vbr = null;\n var qupvt = null;\n\n //public final void setModules(BitStream bs, PsyModel psy, QuantizePVT qupvt,\n // VBRTag vbr) {\n this.setModules = function (_bs, _psy, _qupvt, _vbr) {\n bs = _bs;\n this.psy = _psy;\n psy = _psy;\n vbr = _vbr;\n qupvt = _qupvt;\n };\n\n var newMDCT = new NewMDCT();\n\n /***********************************************************************\n *\n * encoder and decoder delays\n *\n ***********************************************************************/\n\n /**\n *
\n     * layer III enc->dec delay:  1056 (1057?)   (observed)\n     * layer  II enc->dec delay:   480  (481?)   (observed)\n     *\n     * polyphase 256-16             (dec or enc)        = 240\n     * mdct      256+32  (9*32)     (dec or enc)        = 288\n     * total:    512+16\n     *\n     * My guess is that delay of polyphase filterbank is actualy 240.5\n     * (there are technical reasons for this, see postings in mp3encoder).\n     * So total Encode+Decode delay = ENCDELAY + 528 + 1\n     * 
\n */\n\n\n /**\n * auto-adjust of ATH, useful for low volume Gabriel Bouvigne 3 feb 2001\n *\n * modifies some values in gfp.internal_flags.ATH (gfc.ATH)\n */\n//private void adjust_ATH(final LameInternalFlags gfc) {\n function adjust_ATH(gfc) {\n var gr2_max, max_pow;\n\n if (gfc.ATH.useAdjust == 0) {\n gfc.ATH.adjust = 1.0;\n /* no adjustment */\n return;\n }\n\n /* jd - 2001 mar 12, 27, jun 30 */\n /* loudness based on equal loudness curve; */\n /* use granule with maximum combined loudness */\n max_pow = gfc.loudness_sq[0][0];\n gr2_max = gfc.loudness_sq[1][0];\n if (gfc.channels_out == 2) {\n max_pow += gfc.loudness_sq[0][1];\n gr2_max += gfc.loudness_sq[1][1];\n } else {\n max_pow += max_pow;\n gr2_max += gr2_max;\n }\n if (gfc.mode_gr == 2) {\n max_pow = Math.max(max_pow, gr2_max);\n }\n max_pow *= 0.5;\n /* max_pow approaches 1.0 for full band noise */\n\n /* jd - 2001 mar 31, jun 30 */\n /* user tuning of ATH adjustment region */\n max_pow *= gfc.ATH.aaSensitivityP;\n\n /*\n * adjust ATH depending on range of maximum value\n */\n\n /* jd - 2001 feb27, mar12,20, jun30, jul22 */\n /* continuous curves based on approximation */\n /* to GB's original values. */\n /* For an increase in approximate loudness, */\n /* set ATH adjust to adjust_limit immediately */\n /* after a delay of one frame. */\n /* For a loudness decrease, reduce ATH adjust */\n /* towards adjust_limit gradually. */\n /* max_pow is a loudness squared or a power. */\n if (max_pow > 0.03125) { /* ((1 - 0.000625)/ 31.98) from curve below */\n if (gfc.ATH.adjust >= 1.0) {\n gfc.ATH.adjust = 1.0;\n } else {\n /* preceding frame has lower ATH adjust; */\n /* ascend only to the preceding adjust_limit */\n /* in case there is leading low volume */\n if (gfc.ATH.adjust < gfc.ATH.adjustLimit) {\n gfc.ATH.adjust = gfc.ATH.adjustLimit;\n }\n }\n gfc.ATH.adjustLimit = 1.0;\n } else { /* adjustment curve */\n /* about 32 dB maximum adjust (0.000625) */\n var adj_lim_new = 31.98 * max_pow + 0.000625;\n if (gfc.ATH.adjust >= adj_lim_new) { /* descend gradually */\n gfc.ATH.adjust *= adj_lim_new * 0.075 + 0.925;\n if (gfc.ATH.adjust < adj_lim_new) { /* stop descent */\n gfc.ATH.adjust = adj_lim_new;\n }\n } else { /* ascend */\n if (gfc.ATH.adjustLimit >= adj_lim_new) {\n gfc.ATH.adjust = adj_lim_new;\n } else {\n /* preceding frame has lower ATH adjust; */\n /* ascend only to the preceding adjust_limit */\n if (gfc.ATH.adjust < gfc.ATH.adjustLimit) {\n gfc.ATH.adjust = gfc.ATH.adjustLimit;\n }\n }\n }\n gfc.ATH.adjustLimit = adj_lim_new;\n }\n }\n\n /**\n *
\n     *  some simple statistics\n     *\n     *  bitrate index 0: free bitrate . not allowed in VBR mode\n     *  : bitrates, kbps depending on MPEG version\n     *  bitrate index 15: forbidden\n     *\n     *  mode_ext:\n     *  0:  LR\n     *  1:  LR-i\n     *  2:  MS\n     *  3:  MS-i\n     * 
\n */\n function updateStats(gfc) {\n var gr, ch;\n assert(0 <= gfc.bitrate_index && gfc.bitrate_index < 16);\n assert(0 <= gfc.mode_ext && gfc.mode_ext < 4);\n\n /* count bitrate indices */\n gfc.bitrate_stereoMode_Hist[gfc.bitrate_index][4]++;\n gfc.bitrate_stereoMode_Hist[15][4]++;\n\n /* count 'em for every mode extension in case of 2 channel encoding */\n if (gfc.channels_out == 2) {\n gfc.bitrate_stereoMode_Hist[gfc.bitrate_index][gfc.mode_ext]++;\n gfc.bitrate_stereoMode_Hist[15][gfc.mode_ext]++;\n }\n for (gr = 0; gr < gfc.mode_gr; ++gr) {\n for (ch = 0; ch < gfc.channels_out; ++ch) {\n var bt = gfc.l3_side.tt[gr][ch].block_type | 0;\n if (gfc.l3_side.tt[gr][ch].mixed_block_flag != 0)\n bt = 4;\n gfc.bitrate_blockType_Hist[gfc.bitrate_index][bt]++;\n gfc.bitrate_blockType_Hist[gfc.bitrate_index][5]++;\n gfc.bitrate_blockType_Hist[15][bt]++;\n gfc.bitrate_blockType_Hist[15][5]++;\n }\n }\n }\n\n function lame_encode_frame_init(gfp, inbuf) {\n var gfc = gfp.internal_flags;\n\n var ch, gr;\n\n if (gfc.lame_encode_frame_init == 0) {\n /* prime the MDCT/polyphase filterbank with a short block */\n var i, j;\n var primebuff0 = new_float(286 + 1152 + 576);\n var primebuff1 = new_float(286 + 1152 + 576);\n gfc.lame_encode_frame_init = 1;\n for (i = 0, j = 0; i < 286 + 576 * (1 + gfc.mode_gr); ++i) {\n if (i < 576 * gfc.mode_gr) {\n primebuff0[i] = 0;\n if (gfc.channels_out == 2)\n primebuff1[i] = 0;\n } else {\n primebuff0[i] = inbuf[0][j];\n if (gfc.channels_out == 2)\n primebuff1[i] = inbuf[1][j];\n ++j;\n }\n }\n /* polyphase filtering / mdct */\n for (gr = 0; gr < gfc.mode_gr; gr++) {\n for (ch = 0; ch < gfc.channels_out; ch++) {\n gfc.l3_side.tt[gr][ch].block_type = Encoder.SHORT_TYPE;\n }\n }\n newMDCT.mdct_sub48(gfc, primebuff0, primebuff1);\n\n /* check FFT will not use a negative starting offset */\n assert(576 >= Encoder.FFTOFFSET);\n /* check if we have enough data for FFT */\n assert(gfc.mf_size >= (Encoder.BLKSIZE + gfp.framesize - Encoder.FFTOFFSET));\n /* check if we have enough data for polyphase filterbank */\n assert(gfc.mf_size >= (512 + gfp.framesize - 32));\n }\n\n }\n\n /**\n *
\n     * encodeframe()           Layer 3\n     *\n     * encode a single frame\n     *\n     *\n     *    lame_encode_frame()\n     *\n     *\n     *                           gr 0            gr 1\n     *    inbuf:           |--------------|--------------|--------------|\n     *\n     *\n     *    Polyphase (18 windows, each shifted 32)\n     *    gr 0:\n     *    window1          <----512---.\n     *    window18                 <----512---.\n     *\n     *    gr 1:\n     *    window1                         <----512---.\n     *    window18                                <----512---.\n     *\n     *\n     *\n     *    MDCT output:  |--------------|--------------|--------------|\n     *\n     *    FFT's                    <---------1024---------.\n     *                                             <---------1024-------.\n     *\n     *\n     *\n     *        inbuf = buffer of PCM data size=MP3 framesize\n     *        encoder acts on inbuf[ch][0], but output is delayed by MDCTDELAY\n     *        so the MDCT coefficints are from inbuf[ch][-MDCTDELAY]\n     *\n     *        psy-model FFT has a 1 granule delay, so we feed it data for the\n     *        next granule.\n     *        FFT is centered over granule:  224+576+224\n     *        So FFT starts at:   576-224-MDCTDELAY\n     *\n     *        MPEG2:  FFT ends at:  BLKSIZE+576-224-MDCTDELAY      (1328)\n     *        MPEG1:  FFT ends at:  BLKSIZE+2*576-224-MDCTDELAY    (1904)\n     *\n     *        MPEG2:  polyphase first window:  [0..511]\n     *                          18th window:   [544..1055]          (1056)\n     *        MPEG1:            36th window:   [1120..1631]         (1632)\n     *                data needed:  512+framesize-32\n     *\n     *        A close look newmdct.c shows that the polyphase filterbank\n     *        only uses data from [0..510] for each window.  Perhaps because the window\n     *        used by the filterbank is zero for the last point, so Takehiro's\n     *        code doesn't bother to compute with it.\n     *\n     *        FFT starts at 576-224-MDCTDELAY (304)  = 576-FFTOFFSET\n     *\n     * 
\n */\n\n\n this.lame_encode_mp3_frame = function (gfp, inbuf_l, inbuf_r, mp3buf, mp3bufPos, mp3buf_size) {\n var mp3count;\n var masking_LR = new_array_n([2, 2]);\n /*\n * LR masking &\n * energy\n */\n masking_LR[0][0] = new III_psy_ratio();\n masking_LR[0][1] = new III_psy_ratio();\n masking_LR[1][0] = new III_psy_ratio();\n masking_LR[1][1] = new III_psy_ratio();\n var masking_MS = new_array_n([2, 2]);\n /* MS masking & energy */\n masking_MS[0][0] = new III_psy_ratio();\n masking_MS[0][1] = new III_psy_ratio();\n masking_MS[1][0] = new III_psy_ratio();\n masking_MS[1][1] = new III_psy_ratio();\n //III_psy_ratio masking[][];\n var masking;\n /* pointer to selected maskings */\n var inbuf = [null, null];\n var gfc = gfp.internal_flags;\n\n var tot_ener = new_float_n([2, 4]);\n var ms_ener_ratio = [.5, .5];\n var pe = [[0., 0.], [0., 0.]];\n var pe_MS = [[0., 0.], [0., 0.]];\n\n//float[][] pe_use;\n var pe_use;\n\n var ch, gr;\n\n inbuf[0] = inbuf_l;\n inbuf[1] = inbuf_r;\n\n if (gfc.lame_encode_frame_init == 0) {\n /* first run? */\n lame_encode_frame_init(gfp, inbuf);\n\n }\n\n /********************** padding *****************************/\n /**\n *
\n         * padding method as described in\n         * \"MPEG-Layer3 / Bitstream Syntax and Decoding\"\n         * by Martin Sieler, Ralph Sperschneider\n         *\n         * note: there is no padding for the very first frame\n         *\n         * Robert Hegemann 2000-06-22\n         * 
\n */\n gfc.padding = 0;\n if ((gfc.slot_lag -= gfc.frac_SpF) < 0) {\n gfc.slot_lag += gfp.out_samplerate;\n gfc.padding = 1;\n }\n\n /****************************************\n * Stage 1: psychoacoustic model *\n ****************************************/\n\n if (gfc.psymodel != 0) {\n /*\n * psychoacoustic model psy model has a 1 granule (576) delay that\n * we must compensate for (mt 6/99).\n */\n var ret;\n var bufp = [null, null];\n /* address of beginning of left & right granule */\n var bufpPos = 0;\n /* address of beginning of left & right granule */\n var blocktype = new_int(2);\n\n for (gr = 0; gr < gfc.mode_gr; gr++) {\n\n for (ch = 0; ch < gfc.channels_out; ch++) {\n bufp[ch] = inbuf[ch];\n bufpPos = 576 + gr * 576 - Encoder.FFTOFFSET;\n }\n if (gfp.VBR == VbrMode.vbr_mtrh || gfp.VBR == VbrMode.vbr_mt) {\n ret = psy.L3psycho_anal_vbr(gfp, bufp, bufpPos, gr,\n masking_LR, masking_MS, pe[gr], pe_MS[gr],\n tot_ener[gr], blocktype);\n } else {\n ret = psy.L3psycho_anal_ns(gfp, bufp, bufpPos, gr,\n masking_LR, masking_MS, pe[gr], pe_MS[gr],\n tot_ener[gr], blocktype);\n }\n if (ret != 0)\n return -4;\n\n if (gfp.mode == MPEGMode.JOINT_STEREO) {\n ms_ener_ratio[gr] = tot_ener[gr][2] + tot_ener[gr][3];\n if (ms_ener_ratio[gr] > 0)\n ms_ener_ratio[gr] = tot_ener[gr][3] / ms_ener_ratio[gr];\n }\n\n /* block type flags */\n for (ch = 0; ch < gfc.channels_out; ch++) {\n var cod_info = gfc.l3_side.tt[gr][ch];\n cod_info.block_type = blocktype[ch];\n cod_info.mixed_block_flag = 0;\n }\n }\n } else {\n /* no psy model */\n for (gr = 0; gr < gfc.mode_gr; gr++)\n for (ch = 0; ch < gfc.channels_out; ch++) {\n gfc.l3_side.tt[gr][ch].block_type = Encoder.NORM_TYPE;\n gfc.l3_side.tt[gr][ch].mixed_block_flag = 0;\n pe_MS[gr][ch] = pe[gr][ch] = 700;\n }\n }\n\n /* auto-adjust of ATH, useful for low volume */\n adjust_ATH(gfc);\n\n /****************************************\n * Stage 2: MDCT *\n ****************************************/\n\n /* polyphase filtering / mdct */\n newMDCT.mdct_sub48(gfc, inbuf[0], inbuf[1]);\n\n /****************************************\n * Stage 3: MS/LR decision *\n ****************************************/\n\n /* Here will be selected MS or LR coding of the 2 stereo channels */\n gfc.mode_ext = Encoder.MPG_MD_LR_LR;\n\n if (gfp.force_ms) {\n gfc.mode_ext = Encoder.MPG_MD_MS_LR;\n } else if (gfp.mode == MPEGMode.JOINT_STEREO) {\n /*\n * ms_ratio = is scaled, for historical reasons, to look like a\n * ratio of side_channel / total. 0 = signal is 100% mono .5 = L & R\n * uncorrelated\n */\n\n /**\n *
\n             * [0] and [1] are the results for the two granules in MPEG-1,\n             * in MPEG-2 it's only a faked averaging of the same value\n             * _prev is the value of the last granule of the previous frame\n             * _next is the value of the first granule of the next frame\n             * 
\n */\n\n var sum_pe_MS = 0.;\n var sum_pe_LR = 0.;\n for (gr = 0; gr < gfc.mode_gr; gr++) {\n for (ch = 0; ch < gfc.channels_out; ch++) {\n sum_pe_MS += pe_MS[gr][ch];\n sum_pe_LR += pe[gr][ch];\n }\n }\n\n /* based on PE: M/S coding would not use much more bits than L/R */\n if (sum_pe_MS <= 1.00 * sum_pe_LR) {\n\n var gi0 = gfc.l3_side.tt[0];\n var gi1 = gfc.l3_side.tt[gfc.mode_gr - 1];\n\n if (gi0[0].block_type == gi0[1].block_type\n && gi1[0].block_type == gi1[1].block_type) {\n\n gfc.mode_ext = Encoder.MPG_MD_MS_LR;\n }\n }\n }\n\n /* bit and noise allocation */\n if (gfc.mode_ext == MPG_MD_MS_LR) {\n masking = masking_MS;\n /* use MS masking */\n pe_use = pe_MS;\n } else {\n masking = masking_LR;\n /* use LR masking */\n pe_use = pe;\n }\n\n /* copy data for MP3 frame analyzer */\n if (gfp.analysis && gfc.pinfo != null) {\n for (gr = 0; gr < gfc.mode_gr; gr++) {\n for (ch = 0; ch < gfc.channels_out; ch++) {\n gfc.pinfo.ms_ratio[gr] = gfc.ms_ratio[gr];\n gfc.pinfo.ms_ener_ratio[gr] = ms_ener_ratio[gr];\n gfc.pinfo.blocktype[gr][ch] = gfc.l3_side.tt[gr][ch].block_type;\n gfc.pinfo.pe[gr][ch] = pe_use[gr][ch];\n System.arraycopy(gfc.l3_side.tt[gr][ch].xr, 0,\n gfc.pinfo.xr[gr][ch], 0, 576);\n /*\n * in psymodel, LR and MS data was stored in pinfo. switch\n * to MS data:\n */\n if (gfc.mode_ext == MPG_MD_MS_LR) {\n gfc.pinfo.ers[gr][ch] = gfc.pinfo.ers[gr][ch + 2];\n System.arraycopy(gfc.pinfo.energy[gr][ch + 2], 0,\n gfc.pinfo.energy[gr][ch], 0,\n gfc.pinfo.energy[gr][ch].length);\n }\n }\n }\n }\n\n /****************************************\n * Stage 4: quantization loop *\n ****************************************/\n\n if (gfp.VBR == VbrMode.vbr_off || gfp.VBR == VbrMode.vbr_abr) {\n\n var i;\n var f;\n\n for (i = 0; i < 18; i++)\n gfc.nsPsy.pefirbuf[i] = gfc.nsPsy.pefirbuf[i + 1];\n\n f = 0.0;\n for (gr = 0; gr < gfc.mode_gr; gr++)\n for (ch = 0; ch < gfc.channels_out; ch++)\n f += pe_use[gr][ch];\n gfc.nsPsy.pefirbuf[18] = f;\n\n f = gfc.nsPsy.pefirbuf[9];\n for (i = 0; i < 9; i++)\n f += (gfc.nsPsy.pefirbuf[i] + gfc.nsPsy.pefirbuf[18 - i])\n * Encoder.fircoef[i];\n\n f = (670 * 5 * gfc.mode_gr * gfc.channels_out) / f;\n for (gr = 0; gr < gfc.mode_gr; gr++) {\n for (ch = 0; ch < gfc.channels_out; ch++) {\n pe_use[gr][ch] *= f;\n }\n }\n }\n gfc.iteration_loop.iteration_loop(gfp, pe_use, ms_ener_ratio, masking);\n\n /****************************************\n * Stage 5: bitstream formatting *\n ****************************************/\n\n /* write the frame to the bitstream */\n bs.format_bitstream(gfp);\n\n /* copy mp3 bit buffer into array */\n mp3count = bs.copy_buffer(gfc, mp3buf, mp3bufPos, mp3buf_size, 1);\n\n if (gfp.bWriteVbrTag)\n vbr.addVbrFrame(gfp);\n\n if (gfp.analysis && gfc.pinfo != null) {\n for (ch = 0; ch < gfc.channels_out; ch++) {\n var j;\n for (j = 0; j < FFTOFFSET; j++)\n gfc.pinfo.pcmdata[ch][j] = gfc.pinfo.pcmdata[ch][j\n + gfp.framesize];\n for (j = FFTOFFSET; j < 1600; j++) {\n gfc.pinfo.pcmdata[ch][j] = inbuf[ch][j - FFTOFFSET];\n }\n }\n qupvt.set_frame_pinfo(gfp, masking);\n }\n\n updateStats(gfc);\n\n return mp3count;\n }\n}\n\n\nmodule.exports = Encoder;\n","var common = require('./common.js');\nvar System = common.System;\nvar VbrMode = common.VbrMode;\nvar Float = common.Float;\nvar ShortBlock = common.ShortBlock;\nvar Util = common.Util;\nvar Arrays = common.Arrays;\nvar new_array_n = common.new_array_n;\nvar new_byte = common.new_byte;\nvar new_double = common.new_double;\nvar new_float = common.new_float;\nvar new_float_n = common.new_float_n;\nvar new_int = common.new_int;\nvar new_int_n = common.new_int_n;\nvar assert = common.assert;\n\nvar Encoder = require('./Encoder.js');\n\nfunction FFT() {\n\n var window = new_float(Encoder.BLKSIZE);\n var window_s = new_float(Encoder.BLKSIZE_s / 2);\n\n var costab = [\n 9.238795325112867e-01, 3.826834323650898e-01,\n 9.951847266721969e-01, 9.801714032956060e-02,\n 9.996988186962042e-01, 2.454122852291229e-02,\n 9.999811752826011e-01, 6.135884649154475e-03\n ];\n\n function fht(fz, fzPos, n) {\n var tri = 0;\n var k4;\n var fi;\n var gi;\n\n n <<= 1;\n /* to get BLKSIZE, because of 3DNow! ASM routine */\n var fn = fzPos + n;\n k4 = 4;\n do {\n var s1, c1;\n var i, k1, k2, k3, kx;\n kx = k4 >> 1;\n k1 = k4;\n k2 = k4 << 1;\n k3 = k2 + k1;\n k4 = k2 << 1;\n fi = fzPos;\n gi = fi + kx;\n do {\n var f0, f1, f2, f3;\n f1 = fz[fi + 0] - fz[fi + k1];\n f0 = fz[fi + 0] + fz[fi + k1];\n f3 = fz[fi + k2] - fz[fi + k3];\n f2 = fz[fi + k2] + fz[fi + k3];\n fz[fi + k2] = f0 - f2;\n fz[fi + 0] = f0 + f2;\n fz[fi + k3] = f1 - f3;\n fz[fi + k1] = f1 + f3;\n f1 = fz[gi + 0] - fz[gi + k1];\n f0 = fz[gi + 0] + fz[gi + k1];\n f3 = (Util.SQRT2 * fz[gi + k3]);\n f2 = (Util.SQRT2 * fz[gi + k2]);\n fz[gi + k2] = f0 - f2;\n fz[gi + 0] = f0 + f2;\n fz[gi + k3] = f1 - f3;\n fz[gi + k1] = f1 + f3;\n gi += k4;\n fi += k4;\n } while (fi < fn);\n c1 = costab[tri + 0];\n s1 = costab[tri + 1];\n for (i = 1; i < kx; i++) {\n var c2, s2;\n c2 = 1 - (2 * s1) * s1;\n s2 = (2 * s1) * c1;\n fi = fzPos + i;\n gi = fzPos + k1 - i;\n do {\n var a, b, g0, f0, f1, g1, f2, g2, f3, g3;\n b = s2 * fz[fi + k1] - c2 * fz[gi + k1];\n a = c2 * fz[fi + k1] + s2 * fz[gi + k1];\n f1 = fz[fi + 0] - a;\n f0 = fz[fi + 0] + a;\n g1 = fz[gi + 0] - b;\n g0 = fz[gi + 0] + b;\n b = s2 * fz[fi + k3] - c2 * fz[gi + k3];\n a = c2 * fz[fi + k3] + s2 * fz[gi + k3];\n f3 = fz[fi + k2] - a;\n f2 = fz[fi + k2] + a;\n g3 = fz[gi + k2] - b;\n g2 = fz[gi + k2] + b;\n b = s1 * f2 - c1 * g3;\n a = c1 * f2 + s1 * g3;\n fz[fi + k2] = f0 - a;\n fz[fi + 0] = f0 + a;\n fz[gi + k3] = g1 - b;\n fz[gi + k1] = g1 + b;\n b = c1 * g2 - s1 * f3;\n a = s1 * g2 + c1 * f3;\n fz[gi + k2] = g0 - a;\n fz[gi + 0] = g0 + a;\n fz[fi + k3] = f1 - b;\n fz[fi + k1] = f1 + b;\n gi += k4;\n fi += k4;\n } while (fi < fn);\n c2 = c1;\n c1 = c2 * costab[tri + 0] - s1 * costab[tri + 1];\n s1 = c2 * costab[tri + 1] + s1 * costab[tri + 0];\n }\n tri += 2;\n } while (k4 < n);\n }\n\n var rv_tbl = [0x00, 0x80, 0x40,\n 0xc0, 0x20, 0xa0, 0x60, 0xe0, 0x10,\n 0x90, 0x50, 0xd0, 0x30, 0xb0, 0x70,\n 0xf0, 0x08, 0x88, 0x48, 0xc8, 0x28,\n 0xa8, 0x68, 0xe8, 0x18, 0x98, 0x58,\n 0xd8, 0x38, 0xb8, 0x78, 0xf8, 0x04,\n 0x84, 0x44, 0xc4, 0x24, 0xa4, 0x64,\n 0xe4, 0x14, 0x94, 0x54, 0xd4, 0x34,\n 0xb4, 0x74, 0xf4, 0x0c, 0x8c, 0x4c,\n 0xcc, 0x2c, 0xac, 0x6c, 0xec, 0x1c,\n 0x9c, 0x5c, 0xdc, 0x3c, 0xbc, 0x7c,\n 0xfc, 0x02, 0x82, 0x42, 0xc2, 0x22,\n 0xa2, 0x62, 0xe2, 0x12, 0x92, 0x52,\n 0xd2, 0x32, 0xb2, 0x72, 0xf2, 0x0a,\n 0x8a, 0x4a, 0xca, 0x2a, 0xaa, 0x6a,\n 0xea, 0x1a, 0x9a, 0x5a, 0xda, 0x3a,\n 0xba, 0x7a, 0xfa, 0x06, 0x86, 0x46,\n 0xc6, 0x26, 0xa6, 0x66, 0xe6, 0x16,\n 0x96, 0x56, 0xd6, 0x36, 0xb6, 0x76,\n 0xf6, 0x0e, 0x8e, 0x4e, 0xce, 0x2e,\n 0xae, 0x6e, 0xee, 0x1e, 0x9e, 0x5e,\n 0xde, 0x3e, 0xbe, 0x7e, 0xfe];\n\n this.fft_short = function (gfc, x_real, chn, buffer, bufPos) {\n for (var b = 0; b < 3; b++) {\n var x = Encoder.BLKSIZE_s / 2;\n var k = 0xffff & ((576 / 3) * (b + 1));\n var j = Encoder.BLKSIZE_s / 8 - 1;\n do {\n var f0, f1, f2, f3, w;\n var i = rv_tbl[j << 2] & 0xff;\n\n f0 = window_s[i] * buffer[chn][bufPos + i + k];\n w = window_s[0x7f - i] * buffer[chn][bufPos + i + k + 0x80];\n f1 = f0 - w;\n f0 = f0 + w;\n f2 = window_s[i + 0x40] * buffer[chn][bufPos + i + k + 0x40];\n w = window_s[0x3f - i] * buffer[chn][bufPos + i + k + 0xc0];\n f3 = f2 - w;\n f2 = f2 + w;\n\n x -= 4;\n x_real[b][x + 0] = f0 + f2;\n x_real[b][x + 2] = f0 - f2;\n x_real[b][x + 1] = f1 + f3;\n x_real[b][x + 3] = f1 - f3;\n\n f0 = window_s[i + 0x01] * buffer[chn][bufPos + i + k + 0x01];\n w = window_s[0x7e - i] * buffer[chn][bufPos + i + k + 0x81];\n f1 = f0 - w;\n f0 = f0 + w;\n f2 = window_s[i + 0x41] * buffer[chn][bufPos + i + k + 0x41];\n w = window_s[0x3e - i] * buffer[chn][bufPos + i + k + 0xc1];\n f3 = f2 - w;\n f2 = f2 + w;\n\n x_real[b][x + Encoder.BLKSIZE_s / 2 + 0] = f0 + f2;\n x_real[b][x + Encoder.BLKSIZE_s / 2 + 2] = f0 - f2;\n x_real[b][x + Encoder.BLKSIZE_s / 2 + 1] = f1 + f3;\n x_real[b][x + Encoder.BLKSIZE_s / 2 + 3] = f1 - f3;\n } while (--j >= 0);\n\n fht(x_real[b], x, Encoder.BLKSIZE_s / 2);\n /* BLKSIZE_s/2 because of 3DNow! ASM routine */\n /* BLKSIZE/2 because of 3DNow! ASM routine */\n }\n }\n\n this.fft_long = function (gfc, y, chn, buffer, bufPos) {\n var jj = Encoder.BLKSIZE / 8 - 1;\n var x = Encoder.BLKSIZE / 2;\n\n do {\n var f0, f1, f2, f3, w;\n var i = rv_tbl[jj] & 0xff;\n f0 = window[i] * buffer[chn][bufPos + i];\n w = window[i + 0x200] * buffer[chn][bufPos + i + 0x200];\n f1 = f0 - w;\n f0 = f0 + w;\n f2 = window[i + 0x100] * buffer[chn][bufPos + i + 0x100];\n w = window[i + 0x300] * buffer[chn][bufPos + i + 0x300];\n f3 = f2 - w;\n f2 = f2 + w;\n\n x -= 4;\n y[x + 0] = f0 + f2;\n y[x + 2] = f0 - f2;\n y[x + 1] = f1 + f3;\n y[x + 3] = f1 - f3;\n\n f0 = window[i + 0x001] * buffer[chn][bufPos + i + 0x001];\n w = window[i + 0x201] * buffer[chn][bufPos + i + 0x201];\n f1 = f0 - w;\n f0 = f0 + w;\n f2 = window[i + 0x101] * buffer[chn][bufPos + i + 0x101];\n w = window[i + 0x301] * buffer[chn][bufPos + i + 0x301];\n f3 = f2 - w;\n f2 = f2 + w;\n\n y[x + Encoder.BLKSIZE / 2 + 0] = f0 + f2;\n y[x + Encoder.BLKSIZE / 2 + 2] = f0 - f2;\n y[x + Encoder.BLKSIZE / 2 + 1] = f1 + f3;\n y[x + Encoder.BLKSIZE / 2 + 3] = f1 - f3;\n } while (--jj >= 0);\n\n fht(y, x, Encoder.BLKSIZE / 2);\n /* BLKSIZE/2 because of 3DNow! ASM routine */\n }\n\n this.init_fft = function (gfc) {\n /* The type of window used here will make no real difference, but */\n /*\n * in the interest of merging nspsytune stuff - switch to blackman\n * window\n */\n for (var i = 0; i < Encoder.BLKSIZE; i++)\n /* blackman window */\n window[i] = (0.42 - 0.5 * Math.cos(2 * Math.PI * (i + .5)\n / Encoder.BLKSIZE) + 0.08 * Math.cos(4 * Math.PI * (i + .5)\n / Encoder.BLKSIZE));\n\n for (var i = 0; i < Encoder.BLKSIZE_s / 2; i++)\n window_s[i] = (0.5 * (1.0 - Math.cos(2.0 * Math.PI\n * (i + 0.5) / Encoder.BLKSIZE_s)));\n\n }\n\n}\n\nmodule.exports = FFT;\n","/*\n * psymodel.c\n *\n * Copyright (c) 1999-2000 Mark Taylor\n * Copyright (c) 2001-2002 Naoki Shibata\n * Copyright (c) 2000-2003 Takehiro Tominaga\n * Copyright (c) 2000-2008 Robert Hegemann\n * Copyright (c) 2000-2005 Gabriel Bouvigne\n * Copyright (c) 2000-2005 Alexander Leidinger\n *\n * This library is free software; you can redistribute it and/or\n * modify it under the terms of the GNU Lesser General Public\n * License as published by the Free Software Foundation; either\n * version 2 of the License, or (at your option) any later version.\n *\n * This library is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Library General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this library; if not, write to the\n * Free Software Foundation, Inc., 59 Temple Place - Suite 330,\n * Boston, MA 02111-1307, USA.\n */\n\n/* $Id: PsyModel.java,v 1.27 2011/05/24 20:48:06 kenchis Exp $ */\n\n\n/*\n PSYCHO ACOUSTICS\n\n\n This routine computes the psycho acoustics, delayed by one granule.\n\n Input: buffer of PCM data (1024 samples).\n\n This window should be centered over the 576 sample granule window.\n The routine will compute the psycho acoustics for\n this granule, but return the psycho acoustics computed\n for the *previous* granule. This is because the block\n type of the previous granule can only be determined\n after we have computed the psycho acoustics for the following\n granule.\n\n Output: maskings and energies for each scalefactor band.\n block type, PE, and some correlation measures.\n The PE is used by CBR modes to determine if extra bits\n from the bit reservoir should be used. The correlation\n measures are used to determine mid/side or regular stereo.\n */\n/*\n Notation:\n\n barks: a non-linear frequency scale. Mapping from frequency to\n barks is given by freq2bark()\n\n scalefactor bands: The spectrum (frequencies) are broken into\n SBMAX \"scalefactor bands\". Thes bands\n are determined by the MPEG ISO spec. In\n the noise shaping/quantization code, we allocate\n bits among the partition bands to achieve the\n best possible quality\n\n partition bands: The spectrum is also broken into about\n 64 \"partition bands\". Each partition\n band is about .34 barks wide. There are about 2-5\n partition bands for each scalefactor band.\n\n LAME computes all psycho acoustic information for each partition\n band. Then at the end of the computations, this information\n is mapped to scalefactor bands. The energy in each scalefactor\n band is taken as the sum of the energy in all partition bands\n which overlap the scalefactor band. The maskings can be computed\n in the same way (and thus represent the average masking in that band)\n or by taking the minmum value multiplied by the number of\n partition bands used (which represents a minimum masking in that band).\n */\n/*\n The general outline is as follows:\n\n 1. compute the energy in each partition band\n 2. compute the tonality in each partition band\n 3. compute the strength of each partion band \"masker\"\n 4. compute the masking (via the spreading function applied to each masker)\n 5. Modifications for mid/side masking.\n\n Each partition band is considiered a \"masker\". The strength\n of the i'th masker in band j is given by:\n\n s3(bark(i)-bark(j))*strength(i)\n\n The strength of the masker is a function of the energy and tonality.\n The more tonal, the less masking. LAME uses a simple linear formula\n (controlled by NMT and TMN) which says the strength is given by the\n energy divided by a linear function of the tonality.\n */\n/*\n s3() is the \"spreading function\". It is given by a formula\n determined via listening tests.\n\n The total masking in the j'th partition band is the sum over\n all maskings i. It is thus given by the convolution of\n the strength with s3(), the \"spreading function.\"\n\n masking(j) = sum_over_i s3(i-j)*strength(i) = s3 o strength\n\n where \"o\" = convolution operator. s3 is given by a formula determined\n via listening tests. It is normalized so that s3 o 1 = 1.\n\n Note: instead of a simple convolution, LAME also has the\n option of using \"additive masking\"\n\n The most critical part is step 2, computing the tonality of each\n partition band. LAME has two tonality estimators. The first\n is based on the ISO spec, and measures how predictiable the\n signal is over time. The more predictable, the more tonal.\n The second measure is based on looking at the spectrum of\n a single granule. The more peaky the spectrum, the more\n tonal. By most indications, the latter approach is better.\n\n Finally, in step 5, the maskings for the mid and side\n channel are possibly increased. Under certain circumstances,\n noise in the mid & side channels is assumed to also\n be masked by strong maskers in the L or R channels.\n\n\n Other data computed by the psy-model:\n\n ms_ratio side-channel / mid-channel masking ratio (for previous granule)\n ms_ratio_next side-channel / mid-channel masking ratio for this granule\n\n percep_entropy[2] L and R values (prev granule) of PE - A measure of how\n much pre-echo is in the previous granule\n percep_entropy_MS[2] mid and side channel values (prev granule) of percep_entropy\n energy[4] L,R,M,S energy in each channel, prev granule\n blocktype_d[2] block type to use for previous granule\n */\n//package mp3;\n\n//import java.util.Arrays;\nvar common = require('./common.js');\nvar System = common.System;\nvar VbrMode = common.VbrMode;\nvar Float = common.Float;\nvar ShortBlock = common.ShortBlock;\nvar Util = common.Util;\nvar Arrays = common.Arrays;\nvar new_array_n = common.new_array_n;\nvar new_byte = common.new_byte;\nvar new_double = common.new_double;\nvar new_float = common.new_float;\nvar new_float_n = common.new_float_n;\nvar new_int = common.new_int;\nvar new_int_n = common.new_int_n;\nvar assert = common.assert;\n\nvar FFT = require(\"./FFT.js\");\nvar Encoder = require(\"./Encoder.js\");\n\nfunction PsyModel() {\n\n var fft = new FFT();\n\n var LOG10 = 2.30258509299404568402;\n\n var rpelev = 2;\n var rpelev2 = 16;\n var rpelev_s = 2;\n var rpelev2_s = 16;\n\n /* size of each partition band, in barks: */\n var DELBARK = .34;\n\n /* tuned for output level (sensitive to energy scale) */\n var VO_SCALE = (1. / (14752 * 14752) / (Encoder.BLKSIZE / 2));\n\n var temporalmask_sustain_sec = 0.01;\n\n var NS_PREECHO_ATT0 = 0.8;\n var NS_PREECHO_ATT1 = 0.6;\n var NS_PREECHO_ATT2 = 0.3;\n\n var NS_MSFIX = 3.5;\n\n var NSATTACKTHRE = 4.4;\n var NSATTACKTHRE_S = 25;\n\n var NSFIRLEN = 21;\n\n /* size of each partition band, in barks: */\n var LN_TO_LOG10 = 0.2302585093;\n\n function NON_LINEAR_SCALE_ENERGY(x) {\n return x;\n }\n\n /**\n *
\n     *       L3psycho_anal.  Compute psycho acoustics.\n     *\n     *       Data returned to the calling program must be delayed by one\n     *       granule.\n     *\n     *       This is done in two places.\n     *       If we do not need to know the blocktype, the copying\n     *       can be done here at the top of the program: we copy the data for\n     *       the last granule (computed during the last call) before it is\n     *       overwritten with the new data.  It looks like this:\n     *\n     *       0. static psymodel_data\n     *       1. calling_program_data = psymodel_data\n     *       2. compute psymodel_data\n     *\n     *       For data which needs to know the blocktype, the copying must be\n     *       done at the end of this loop, and the old values must be saved:\n     *\n     *       0. static psymodel_data_old\n     *       1. compute psymodel_data\n     *       2. compute possible block type of this granule\n     *       3. compute final block type of previous granule based on #2.\n     *       4. calling_program_data = psymodel_data_old\n     *       5. psymodel_data_old = psymodel_data\n     *     psycho_loudness_approx\n     *       jd - 2001 mar 12\n     *    in:  energy   - BLKSIZE/2 elements of frequency magnitudes ^ 2\n     *         gfp      - uses out_samplerate, ATHtype (also needed for ATHformula)\n     *    returns: loudness^2 approximation, a positive value roughly tuned for a value\n     *             of 1.0 for signals near clipping.\n     *    notes:   When calibrated, feeding this function binary white noise at sample\n     *             values +32767 or -32768 should return values that approach 3.\n     *             ATHformula is used to approximate an equal loudness curve.\n     *    future:  Data indicates that the shape of the equal loudness curve varies\n     *             with intensity.  This function might be improved by using an equal\n     *             loudness curve shaped for typical playback levels (instead of the\n     *             ATH, that is shaped for the threshold).  A flexible realization might\n     *             simply bend the existing ATH curve to achieve the desired shape.\n     *             However, the potential gain may not be enough to justify an effort.\n     * 
\n */\n function psycho_loudness_approx(energy, gfc) {\n var loudness_power = 0.0;\n /* apply weights to power in freq. bands */\n for (var i = 0; i < Encoder.BLKSIZE / 2; ++i)\n loudness_power += energy[i] * gfc.ATH.eql_w[i];\n loudness_power *= VO_SCALE;\n\n return loudness_power;\n }\n\n function compute_ffts(gfp, fftenergy, fftenergy_s, wsamp_l, wsamp_lPos, wsamp_s, wsamp_sPos, gr_out, chn, buffer, bufPos) {\n var gfc = gfp.internal_flags;\n if (chn < 2) {\n fft.fft_long(gfc, wsamp_l[wsamp_lPos], chn, buffer, bufPos);\n fft.fft_short(gfc, wsamp_s[wsamp_sPos], chn, buffer, bufPos);\n }\n /* FFT data for mid and side channel is derived from L & R */\n else if (chn == 2) {\n for (var j = Encoder.BLKSIZE - 1; j >= 0; --j) {\n var l = wsamp_l[wsamp_lPos + 0][j];\n var r = wsamp_l[wsamp_lPos + 1][j];\n wsamp_l[wsamp_lPos + 0][j] = (l + r) * Util.SQRT2 * 0.5;\n wsamp_l[wsamp_lPos + 1][j] = (l - r) * Util.SQRT2 * 0.5;\n }\n for (var b = 2; b >= 0; --b) {\n for (var j = Encoder.BLKSIZE_s - 1; j >= 0; --j) {\n var l = wsamp_s[wsamp_sPos + 0][b][j];\n var r = wsamp_s[wsamp_sPos + 1][b][j];\n wsamp_s[wsamp_sPos + 0][b][j] = (l + r) * Util.SQRT2 * 0.5;\n wsamp_s[wsamp_sPos + 1][b][j] = (l - r) * Util.SQRT2 * 0.5;\n }\n }\n }\n\n /*********************************************************************\n * compute energies\n *********************************************************************/\n fftenergy[0] = NON_LINEAR_SCALE_ENERGY(wsamp_l[wsamp_lPos + 0][0]);\n fftenergy[0] *= fftenergy[0];\n\n for (var j = Encoder.BLKSIZE / 2 - 1; j >= 0; --j) {\n var re = (wsamp_l[wsamp_lPos + 0])[Encoder.BLKSIZE / 2 - j];\n var im = (wsamp_l[wsamp_lPos + 0])[Encoder.BLKSIZE / 2 + j];\n fftenergy[Encoder.BLKSIZE / 2 - j] = NON_LINEAR_SCALE_ENERGY((re\n * re + im * im) * 0.5);\n }\n for (var b = 2; b >= 0; --b) {\n fftenergy_s[b][0] = (wsamp_s[wsamp_sPos + 0])[b][0];\n fftenergy_s[b][0] *= fftenergy_s[b][0];\n for (var j = Encoder.BLKSIZE_s / 2 - 1; j >= 0; --j) {\n var re = (wsamp_s[wsamp_sPos + 0])[b][Encoder.BLKSIZE_s\n / 2 - j];\n var im = (wsamp_s[wsamp_sPos + 0])[b][Encoder.BLKSIZE_s\n / 2 + j];\n fftenergy_s[b][Encoder.BLKSIZE_s / 2 - j] = NON_LINEAR_SCALE_ENERGY((re\n * re + im * im) * 0.5);\n }\n }\n /* total energy */\n {\n var totalenergy = 0.0;\n for (var j = 11; j < Encoder.HBLKSIZE; j++)\n totalenergy += fftenergy[j];\n\n gfc.tot_ener[chn] = totalenergy;\n }\n\n if (gfp.analysis) {\n for (var j = 0; j < Encoder.HBLKSIZE; j++) {\n gfc.pinfo.energy[gr_out][chn][j] = gfc.pinfo.energy_save[chn][j];\n gfc.pinfo.energy_save[chn][j] = fftenergy[j];\n }\n gfc.pinfo.pe[gr_out][chn] = gfc.pe[chn];\n }\n\n /*********************************************************************\n * compute loudness approximation (used for ATH auto-level adjustment)\n *********************************************************************/\n if (gfp.athaa_loudapprox == 2 && chn < 2) {\n // no loudness for mid/side ch\n gfc.loudness_sq[gr_out][chn] = gfc.loudness_sq_save[chn];\n gfc.loudness_sq_save[chn] = psycho_loudness_approx(fftenergy, gfc);\n }\n }\n\n /* mask_add optimization */\n /* init the limit values used to avoid computing log in mask_add when it is not necessary */\n\n /**\n *
\n     *  For example, with i = 10*log10(m2/m1)/10*16         (= log10(m2/m1)*16)\n     *\n     * abs(i)>8 is equivalent (as i is an integer) to\n     * abs(i)>=9\n     * i>=9 || i<=-9\n     * equivalent to (as i is the biggest integer smaller than log10(m2/m1)*16\n     * or the smallest integer bigger than log10(m2/m1)*16 depending on the sign of log10(m2/m1)*16)\n     * log10(m2/m1)>=9/16 || log10(m2/m1)<=-9/16\n     * exp10 is strictly increasing thus this is equivalent to\n     * m2/m1 >= 10^(9/16) || m2/m1<=10^(-9/16) which are comparisons to constants\n     * 
\n */\n\n /**\n * as in if(i>8)\n */\n var I1LIMIT = 8;\n /**\n * as in if(i>24) . changed 23\n */\n var I2LIMIT = 23;\n /**\n * as in if(m<15)\n */\n var MLIMIT = 15;\n\n var ma_max_i1;\n var ma_max_i2;\n var ma_max_m;\n\n /**\n * This is the masking table:
\n * According to tonality, values are going from 0dB (TMN) to 9.3dB (NMT).
\n * After additive masking computation, 8dB are added, so final values are\n * going from 8dB to 17.3dB\n *\n * pow(10, -0.0..-0.6)\n */\n var tab = [1.0, 0.79433, 0.63096, 0.63096,\n 0.63096, 0.63096, 0.63096, 0.25119, 0.11749];\n\n function init_mask_add_max_values() {\n ma_max_i1 = Math.pow(10, (I1LIMIT + 1) / 16.0);\n ma_max_i2 = Math.pow(10, (I2LIMIT + 1) / 16.0);\n ma_max_m = Math.pow(10, (MLIMIT) / 10.0);\n }\n\n var table1 = [3.3246 * 3.3246,\n 3.23837 * 3.23837, 3.15437 * 3.15437, 3.00412 * 3.00412,\n 2.86103 * 2.86103, 2.65407 * 2.65407, 2.46209 * 2.46209,\n 2.284 * 2.284, 2.11879 * 2.11879, 1.96552 * 1.96552,\n 1.82335 * 1.82335, 1.69146 * 1.69146, 1.56911 * 1.56911,\n 1.46658 * 1.46658, 1.37074 * 1.37074, 1.31036 * 1.31036,\n 1.25264 * 1.25264, 1.20648 * 1.20648, 1.16203 * 1.16203,\n 1.12765 * 1.12765, 1.09428 * 1.09428, 1.0659 * 1.0659,\n 1.03826 * 1.03826, 1.01895 * 1.01895, 1];\n\n var table2 = [1.33352 * 1.33352,\n 1.35879 * 1.35879, 1.38454 * 1.38454, 1.39497 * 1.39497,\n 1.40548 * 1.40548, 1.3537 * 1.3537, 1.30382 * 1.30382,\n 1.22321 * 1.22321, 1.14758 * 1.14758, 1];\n\n var table3 = [2.35364 * 2.35364,\n 2.29259 * 2.29259, 2.23313 * 2.23313, 2.12675 * 2.12675,\n 2.02545 * 2.02545, 1.87894 * 1.87894, 1.74303 * 1.74303,\n 1.61695 * 1.61695, 1.49999 * 1.49999, 1.39148 * 1.39148,\n 1.29083 * 1.29083, 1.19746 * 1.19746, 1.11084 * 1.11084,\n 1.03826 * 1.03826];\n\n /**\n * addition of simultaneous masking Naoki Shibata 2000/7\n */\n function mask_add(m1, m2, kk, b, gfc, shortblock) {\n var ratio;\n\n if (m2 > m1) {\n if (m2 < (m1 * ma_max_i2))\n ratio = m2 / m1;\n else\n return (m1 + m2);\n } else {\n if (m1 >= (m2 * ma_max_i2))\n return (m1 + m2);\n ratio = m1 / m2;\n }\n\n /* Should always be true, just checking */\n assert(m1 >= 0);\n assert(m2 >= 0);\n\n m1 += m2;\n //if (((long)(b + 3) & 0xffffffff) <= 3 + 3) {\n if ((b + 3) <= 3 + 3) {\n /* approximately, 1 bark = 3 partitions */\n /* 65% of the cases */\n /* originally 'if(i > 8)' */\n if (ratio >= ma_max_i1) {\n /* 43% of the total */\n return m1;\n }\n\n /* 22% of the total */\n var i = 0 | (Util.FAST_LOG10_X(ratio, 16.0));\n return m1 * table2[i];\n }\n\n /**\n *
\n         * m<15 equ log10((m1+m2)/gfc.ATH.cb[k])<1.5\n         * equ (m1+m2)/gfc.ATH.cb[k]<10^1.5\n         * equ (m1+m2)<10^1.5 * gfc.ATH.cb[k]\n         * 
\n */\n var i = 0 | Util.FAST_LOG10_X(ratio, 16.0);\n if (shortblock != 0) {\n m2 = gfc.ATH.cb_s[kk] * gfc.ATH.adjust;\n } else {\n m2 = gfc.ATH.cb_l[kk] * gfc.ATH.adjust;\n }\n assert(m2 >= 0);\n if (m1 < ma_max_m * m2) {\n /* 3% of the total */\n /* Originally if (m > 0) { */\n if (m1 > m2) {\n var f, r;\n\n f = 1.0;\n if (i <= 13)\n f = table3[i];\n\n r = Util.FAST_LOG10_X(m1 / m2, 10.0 / 15.0);\n return m1 * ((table1[i] - f) * r + f);\n }\n\n if (i > 13)\n return m1;\n\n return m1 * table3[i];\n }\n\n /* 10% of total */\n return m1 * table1[i];\n }\n\n var table2_ = [1.33352 * 1.33352,\n 1.35879 * 1.35879, 1.38454 * 1.38454, 1.39497 * 1.39497,\n 1.40548 * 1.40548, 1.3537 * 1.3537, 1.30382 * 1.30382,\n 1.22321 * 1.22321, 1.14758 * 1.14758, 1];\n\n /**\n * addition of simultaneous masking Naoki Shibata 2000/7\n */\n function vbrpsy_mask_add(m1, m2, b) {\n var ratio;\n\n if (m1 < 0) {\n m1 = 0;\n }\n if (m2 < 0) {\n m2 = 0;\n }\n if (m1 <= 0) {\n return m2;\n }\n if (m2 <= 0) {\n return m1;\n }\n if (m2 > m1) {\n ratio = m2 / m1;\n } else {\n ratio = m1 / m2;\n }\n if (-2 <= b && b <= 2) {\n /* approximately, 1 bark = 3 partitions */\n /* originally 'if(i > 8)' */\n if (ratio >= ma_max_i1) {\n return m1 + m2;\n } else {\n var i = 0 | (Util.FAST_LOG10_X(ratio, 16.0));\n return (m1 + m2) * table2_[i];\n }\n }\n if (ratio < ma_max_i2) {\n return m1 + m2;\n }\n if (m1 < m2) {\n m1 = m2;\n }\n return m1;\n }\n\n /**\n * compute interchannel masking effects\n */\n function calc_interchannel_masking(gfp, ratio) {\n var gfc = gfp.internal_flags;\n if (gfc.channels_out > 1) {\n for (var sb = 0; sb < Encoder.SBMAX_l; sb++) {\n var l = gfc.thm[0].l[sb];\n var r = gfc.thm[1].l[sb];\n gfc.thm[0].l[sb] += r * ratio;\n gfc.thm[1].l[sb] += l * ratio;\n }\n for (var sb = 0; sb < Encoder.SBMAX_s; sb++) {\n for (var sblock = 0; sblock < 3; sblock++) {\n var l = gfc.thm[0].s[sb][sblock];\n var r = gfc.thm[1].s[sb][sblock];\n gfc.thm[0].s[sb][sblock] += r * ratio;\n gfc.thm[1].s[sb][sblock] += l * ratio;\n }\n }\n }\n }\n\n /**\n * compute M/S thresholds from Johnston & Ferreira 1992 ICASSP paper\n */\n function msfix1(gfc) {\n for (var sb = 0; sb < Encoder.SBMAX_l; sb++) {\n /* use this fix if L & R masking differs by 2db or less */\n /* if db = 10*log10(x2/x1) < 2 */\n /* if (x2 < 1.58*x1) { */\n if (gfc.thm[0].l[sb] > 1.58 * gfc.thm[1].l[sb]\n || gfc.thm[1].l[sb] > 1.58 * gfc.thm[0].l[sb])\n continue;\n var mld = gfc.mld_l[sb] * gfc.en[3].l[sb];\n var rmid = Math.max(gfc.thm[2].l[sb],\n Math.min(gfc.thm[3].l[sb], mld));\n\n mld = gfc.mld_l[sb] * gfc.en[2].l[sb];\n var rside = Math.max(gfc.thm[3].l[sb],\n Math.min(gfc.thm[2].l[sb], mld));\n gfc.thm[2].l[sb] = rmid;\n gfc.thm[3].l[sb] = rside;\n }\n\n for (var sb = 0; sb < Encoder.SBMAX_s; sb++) {\n for (var sblock = 0; sblock < 3; sblock++) {\n if (gfc.thm[0].s[sb][sblock] > 1.58 * gfc.thm[1].s[sb][sblock]\n || gfc.thm[1].s[sb][sblock] > 1.58 * gfc.thm[0].s[sb][sblock])\n continue;\n var mld = gfc.mld_s[sb] * gfc.en[3].s[sb][sblock];\n var rmid = Math.max(gfc.thm[2].s[sb][sblock],\n Math.min(gfc.thm[3].s[sb][sblock], mld));\n\n mld = gfc.mld_s[sb] * gfc.en[2].s[sb][sblock];\n var rside = Math.max(gfc.thm[3].s[sb][sblock],\n Math.min(gfc.thm[2].s[sb][sblock], mld));\n\n gfc.thm[2].s[sb][sblock] = rmid;\n gfc.thm[3].s[sb][sblock] = rside;\n }\n }\n }\n\n /**\n * Adjust M/S maskings if user set \"msfix\"\n *\n * Naoki Shibata 2000\n */\n function ns_msfix(gfc, msfix, athadjust) {\n var msfix2 = msfix;\n var athlower = Math.pow(10, athadjust);\n\n msfix *= 2.0;\n msfix2 *= 2.0;\n for (var sb = 0; sb < Encoder.SBMAX_l; sb++) {\n var thmLR, thmM, thmS, ath;\n ath = (gfc.ATH.cb_l[gfc.bm_l[sb]]) * athlower;\n thmLR = Math.min(Math.max(gfc.thm[0].l[sb], ath),\n Math.max(gfc.thm[1].l[sb], ath));\n thmM = Math.max(gfc.thm[2].l[sb], ath);\n thmS = Math.max(gfc.thm[3].l[sb], ath);\n if (thmLR * msfix < thmM + thmS) {\n var f = thmLR * msfix2 / (thmM + thmS);\n thmM *= f;\n thmS *= f;\n assert(thmM + thmS > 0);\n }\n gfc.thm[2].l[sb] = Math.min(thmM, gfc.thm[2].l[sb]);\n gfc.thm[3].l[sb] = Math.min(thmS, gfc.thm[3].l[sb]);\n }\n\n athlower *= ( Encoder.BLKSIZE_s / Encoder.BLKSIZE);\n for (var sb = 0; sb < Encoder.SBMAX_s; sb++) {\n for (var sblock = 0; sblock < 3; sblock++) {\n var thmLR, thmM, thmS, ath;\n ath = (gfc.ATH.cb_s[gfc.bm_s[sb]]) * athlower;\n thmLR = Math.min(Math.max(gfc.thm[0].s[sb][sblock], ath),\n Math.max(gfc.thm[1].s[sb][sblock], ath));\n thmM = Math.max(gfc.thm[2].s[sb][sblock], ath);\n thmS = Math.max(gfc.thm[3].s[sb][sblock], ath);\n\n if (thmLR * msfix < thmM + thmS) {\n var f = thmLR * msfix / (thmM + thmS);\n thmM *= f;\n thmS *= f;\n assert(thmM + thmS > 0);\n }\n gfc.thm[2].s[sb][sblock] = Math.min(gfc.thm[2].s[sb][sblock],\n thmM);\n gfc.thm[3].s[sb][sblock] = Math.min(gfc.thm[3].s[sb][sblock],\n thmS);\n }\n }\n }\n\n /**\n * short block threshold calculation (part 2)\n *\n * partition band bo_s[sfb] is at the transition from scalefactor band sfb\n * to the next one sfb+1; enn and thmm have to be split between them\n */\n function convert_partition2scalefac_s(gfc, eb, thr, chn, sblock) {\n var sb, b;\n var enn = 0.0;\n var thmm = 0.0;\n for (sb = b = 0; sb < Encoder.SBMAX_s; ++b, ++sb) {\n var bo_s_sb = gfc.bo_s[sb];\n var npart_s = gfc.npart_s;\n var b_lim = bo_s_sb < npart_s ? bo_s_sb : npart_s;\n while (b < b_lim) {\n assert(eb[b] >= 0);\n // iff failed, it may indicate some index error elsewhere\n assert(thr[b] >= 0);\n enn += eb[b];\n thmm += thr[b];\n b++;\n }\n gfc.en[chn].s[sb][sblock] = enn;\n gfc.thm[chn].s[sb][sblock] = thmm;\n\n if (b >= npart_s) {\n ++sb;\n break;\n }\n assert(eb[b] >= 0);\n // iff failed, it may indicate some index error elsewhere\n assert(thr[b] >= 0);\n {\n /* at transition sfb . sfb+1 */\n var w_curr = gfc.PSY.bo_s_weight[sb];\n var w_next = 1.0 - w_curr;\n enn = w_curr * eb[b];\n thmm = w_curr * thr[b];\n gfc.en[chn].s[sb][sblock] += enn;\n gfc.thm[chn].s[sb][sblock] += thmm;\n enn = w_next * eb[b];\n thmm = w_next * thr[b];\n }\n }\n /* zero initialize the rest */\n for (; sb < Encoder.SBMAX_s; ++sb) {\n gfc.en[chn].s[sb][sblock] = 0;\n gfc.thm[chn].s[sb][sblock] = 0;\n }\n }\n\n /**\n * longblock threshold calculation (part 2)\n */\n function convert_partition2scalefac_l(gfc, eb, thr, chn) {\n var sb, b;\n var enn = 0.0;\n var thmm = 0.0;\n for (sb = b = 0; sb < Encoder.SBMAX_l; ++b, ++sb) {\n var bo_l_sb = gfc.bo_l[sb];\n var npart_l = gfc.npart_l;\n var b_lim = bo_l_sb < npart_l ? bo_l_sb : npart_l;\n while (b < b_lim) {\n assert(eb[b] >= 0);\n // iff failed, it may indicate some index error elsewhere\n assert(thr[b] >= 0);\n enn += eb[b];\n thmm += thr[b];\n b++;\n }\n gfc.en[chn].l[sb] = enn;\n gfc.thm[chn].l[sb] = thmm;\n\n if (b >= npart_l) {\n ++sb;\n break;\n }\n assert(eb[b] >= 0);\n assert(thr[b] >= 0);\n {\n /* at transition sfb . sfb+1 */\n var w_curr = gfc.PSY.bo_l_weight[sb];\n var w_next = 1.0 - w_curr;\n enn = w_curr * eb[b];\n thmm = w_curr * thr[b];\n gfc.en[chn].l[sb] += enn;\n gfc.thm[chn].l[sb] += thmm;\n enn = w_next * eb[b];\n thmm = w_next * thr[b];\n }\n }\n /* zero initialize the rest */\n for (; sb < Encoder.SBMAX_l; ++sb) {\n gfc.en[chn].l[sb] = 0;\n gfc.thm[chn].l[sb] = 0;\n }\n }\n\n function compute_masking_s(gfp, fftenergy_s, eb, thr, chn, sblock) {\n var gfc = gfp.internal_flags;\n var j, b;\n\n for (b = j = 0; b < gfc.npart_s; ++b) {\n var ebb = 0, m = 0;\n var n = gfc.numlines_s[b];\n for (var i = 0; i < n; ++i, ++j) {\n var el = fftenergy_s[sblock][j];\n ebb += el;\n if (m < el)\n m = el;\n }\n eb[b] = ebb;\n }\n assert(b == gfc.npart_s);\n assert(j == 129);\n for (j = b = 0; b < gfc.npart_s; b++) {\n var kk = gfc.s3ind_s[b][0];\n var ecb = gfc.s3_ss[j++] * eb[kk];\n ++kk;\n while (kk <= gfc.s3ind_s[b][1]) {\n ecb += gfc.s3_ss[j] * eb[kk];\n ++j;\n ++kk;\n }\n\n { /* limit calculated threshold by previous granule */\n var x = rpelev_s * gfc.nb_s1[chn][b];\n thr[b] = Math.min(ecb, x);\n }\n if (gfc.blocktype_old[chn & 1] == Encoder.SHORT_TYPE) {\n /* limit calculated threshold by even older granule */\n var x = rpelev2_s * gfc.nb_s2[chn][b];\n var y = thr[b];\n thr[b] = Math.min(x, y);\n }\n\n gfc.nb_s2[chn][b] = gfc.nb_s1[chn][b];\n gfc.nb_s1[chn][b] = ecb;\n assert(thr[b] >= 0);\n }\n for (; b <= Encoder.CBANDS; ++b) {\n eb[b] = 0;\n thr[b] = 0;\n }\n }\n\n function block_type_set(gfp, uselongblock, blocktype_d, blocktype) {\n var gfc = gfp.internal_flags;\n\n if (gfp.short_blocks == ShortBlock.short_block_coupled\n /* force both channels to use the same block type */\n /* this is necessary if the frame is to be encoded in ms_stereo. */\n /* But even without ms_stereo, FhG does this */\n && !(uselongblock[0] != 0 && uselongblock[1] != 0))\n uselongblock[0] = uselongblock[1] = 0;\n\n /*\n * update the blocktype of the previous granule, since it depends on\n * what happend in this granule\n */\n for (var chn = 0; chn < gfc.channels_out; chn++) {\n blocktype[chn] = Encoder.NORM_TYPE;\n /* disable short blocks */\n if (gfp.short_blocks == ShortBlock.short_block_dispensed)\n uselongblock[chn] = 1;\n if (gfp.short_blocks == ShortBlock.short_block_forced)\n uselongblock[chn] = 0;\n\n if (uselongblock[chn] != 0) {\n /* no attack : use long blocks */\n assert(gfc.blocktype_old[chn] != Encoder.START_TYPE);\n if (gfc.blocktype_old[chn] == Encoder.SHORT_TYPE)\n blocktype[chn] = Encoder.STOP_TYPE;\n } else {\n /* attack : use short blocks */\n blocktype[chn] = Encoder.SHORT_TYPE;\n if (gfc.blocktype_old[chn] == Encoder.NORM_TYPE) {\n gfc.blocktype_old[chn] = Encoder.START_TYPE;\n }\n if (gfc.blocktype_old[chn] == Encoder.STOP_TYPE)\n gfc.blocktype_old[chn] = Encoder.SHORT_TYPE;\n }\n\n blocktype_d[chn] = gfc.blocktype_old[chn];\n // value returned to calling program\n gfc.blocktype_old[chn] = blocktype[chn];\n // save for next call to l3psy_anal\n }\n }\n\n function NS_INTERP(x, y, r) {\n /* was pow((x),(r))*pow((y),1-(r)) */\n if (r >= 1.0) {\n /* 99.7% of the time */\n return x;\n }\n if (r <= 0.0)\n return y;\n if (y > 0.0) {\n /* rest of the time */\n return (Math.pow(x / y, r) * y);\n }\n /* never happens */\n return 0.0;\n }\n\n /**\n * these values are tuned only for 44.1kHz...\n */\n var regcoef_s = [11.8, 13.6, 17.2, 32, 46.5,\n 51.3, 57.5, 67.1, 71.5, 84.6, 97.6, 130,\n /* 255.8 */\n ];\n\n function pecalc_s(mr, masking_lower) {\n var pe_s = 1236.28 / 4;\n for (var sb = 0; sb < Encoder.SBMAX_s - 1; sb++) {\n for (var sblock = 0; sblock < 3; sblock++) {\n var thm = mr.thm.s[sb][sblock];\n assert(sb < regcoef_s.length);\n if (thm > 0.0) {\n var x = thm * masking_lower;\n var en = mr.en.s[sb][sblock];\n if (en > x) {\n if (en > x * 1e10) {\n pe_s += regcoef_s[sb] * (10.0 * LOG10);\n } else {\n assert(x > 0);\n pe_s += regcoef_s[sb] * Util.FAST_LOG10(en / x);\n }\n }\n }\n }\n }\n\n return pe_s;\n }\n\n /**\n * these values are tuned only for 44.1kHz...\n */\n var regcoef_l = [6.8, 5.8, 5.8, 6.4, 6.5, 9.9,\n 12.1, 14.4, 15, 18.9, 21.6, 26.9, 34.2, 40.2, 46.8, 56.5,\n 60.7, 73.9, 85.7, 93.4, 126.1,\n /* 241.3 */\n ];\n\n function pecalc_l(mr, masking_lower) {\n var pe_l = 1124.23 / 4;\n for (var sb = 0; sb < Encoder.SBMAX_l - 1; sb++) {\n var thm = mr.thm.l[sb];\n assert(sb < regcoef_l.length);\n if (thm > 0.0) {\n var x = thm * masking_lower;\n var en = mr.en.l[sb];\n if (en > x) {\n if (en > x * 1e10) {\n pe_l += regcoef_l[sb] * (10.0 * LOG10);\n } else {\n assert(x > 0);\n pe_l += regcoef_l[sb] * Util.FAST_LOG10(en / x);\n }\n }\n }\n }\n return pe_l;\n }\n\n function calc_energy(gfc, fftenergy, eb, max, avg) {\n var b, j;\n\n for (b = j = 0; b < gfc.npart_l; ++b) {\n var ebb = 0, m = 0;\n var i;\n for (i = 0; i < gfc.numlines_l[b]; ++i, ++j) {\n var el = fftenergy[j];\n assert(el >= 0);\n ebb += el;\n if (m < el)\n m = el;\n }\n eb[b] = ebb;\n max[b] = m;\n avg[b] = ebb * gfc.rnumlines_l[b];\n assert(gfc.rnumlines_l[b] >= 0);\n assert(ebb >= 0);\n assert(eb[b] >= 0);\n assert(max[b] >= 0);\n assert(avg[b] >= 0);\n }\n }\n\n function calc_mask_index_l(gfc, max, avg, mask_idx) {\n var last_tab_entry = tab.length - 1;\n var b = 0;\n var a = avg[b] + avg[b + 1];\n assert(a >= 0);\n if (a > 0.0) {\n var m = max[b];\n if (m < max[b + 1])\n m = max[b + 1];\n assert((gfc.numlines_l[b] + gfc.numlines_l[b + 1] - 1) > 0);\n a = 20.0 * (m * 2.0 - a)\n / (a * (gfc.numlines_l[b] + gfc.numlines_l[b + 1] - 1));\n var k = 0 | a;\n if (k > last_tab_entry)\n k = last_tab_entry;\n mask_idx[b] = k;\n } else {\n mask_idx[b] = 0;\n }\n\n for (b = 1; b < gfc.npart_l - 1; b++) {\n a = avg[b - 1] + avg[b] + avg[b + 1];\n assert(a >= 0);\n if (a > 0.0) {\n var m = max[b - 1];\n if (m < max[b])\n m = max[b];\n if (m < max[b + 1])\n m = max[b + 1];\n assert((gfc.numlines_l[b - 1] + gfc.numlines_l[b] + gfc.numlines_l[b + 1] - 1) > 0);\n a = 20.0\n * (m * 3.0 - a)\n / (a * (gfc.numlines_l[b - 1] + gfc.numlines_l[b]\n + gfc.numlines_l[b + 1] - 1));\n var k = 0 | a;\n if (k > last_tab_entry)\n k = last_tab_entry;\n mask_idx[b] = k;\n } else {\n mask_idx[b] = 0;\n }\n }\n assert(b > 0);\n assert(b == gfc.npart_l - 1);\n\n a = avg[b - 1] + avg[b];\n assert(a >= 0);\n if (a > 0.0) {\n var m = max[b - 1];\n if (m < max[b])\n m = max[b];\n assert((gfc.numlines_l[b - 1] + gfc.numlines_l[b] - 1) > 0);\n a = 20.0 * (m * 2.0 - a)\n / (a * (gfc.numlines_l[b - 1] + gfc.numlines_l[b] - 1));\n var k = 0 | a;\n if (k > last_tab_entry)\n k = last_tab_entry;\n mask_idx[b] = k;\n } else {\n mask_idx[b] = 0;\n }\n assert(b == (gfc.npart_l - 1));\n }\n\n var fircoef = [\n -8.65163e-18 * 2, -0.00851586 * 2, -6.74764e-18 * 2, 0.0209036 * 2,\n -3.36639e-17 * 2, -0.0438162 * 2, -1.54175e-17 * 2, 0.0931738 * 2,\n -5.52212e-17 * 2, -0.313819 * 2\n ];\n\n this.L3psycho_anal_ns = function (gfp, buffer, bufPos, gr_out, masking_ratio, masking_MS_ratio, percep_entropy, percep_MS_entropy, energy, blocktype_d) {\n /*\n * to get a good cache performance, one has to think about the sequence,\n * in which the variables are used.\n */\n var gfc = gfp.internal_flags;\n\n /* fft and energy calculation */\n var wsamp_L = new_float_n([2, Encoder.BLKSIZE]);\n var wsamp_S = new_float_n([2, 3, Encoder.BLKSIZE_s]);\n\n /* convolution */\n var eb_l = new_float(Encoder.CBANDS + 1);\n var eb_s = new_float(Encoder.CBANDS + 1);\n var thr = new_float(Encoder.CBANDS + 2);\n\n /* block type */\n var blocktype = new_int(2), uselongblock = new_int(2);\n\n /* usual variables like loop indices, etc.. */\n var numchn, chn;\n var b, i, j, k;\n var sb, sblock;\n\n /* variables used for --nspsytune */\n var ns_hpfsmpl = new_float_n([2, 576]);\n var pcfact;\n var mask_idx_l = new_int(Encoder.CBANDS + 2), mask_idx_s = new_int(Encoder.CBANDS + 2);\n\n Arrays.fill(mask_idx_s, 0);\n\n numchn = gfc.channels_out;\n /* chn=2 and 3 = Mid and Side channels */\n if (gfp.mode == MPEGMode.JOINT_STEREO)\n numchn = 4;\n\n if (gfp.VBR == VbrMode.vbr_off)\n pcfact = gfc.ResvMax == 0 ? 0 : ( gfc.ResvSize)\n / gfc.ResvMax * 0.5;\n else if (gfp.VBR == VbrMode.vbr_rh || gfp.VBR == VbrMode.vbr_mtrh\n || gfp.VBR == VbrMode.vbr_mt) {\n pcfact = 0.6;\n } else\n pcfact = 1.0;\n\n /**********************************************************************\n * Apply HPF of fs/4 to the input signal. This is used for attack\n * detection / handling.\n **********************************************************************/\n /* Don't copy the input buffer into a temporary buffer */\n /* unroll the loop 2 times */\n for (chn = 0; chn < gfc.channels_out; chn++) {\n /* apply high pass filter of fs/4 */\n var firbuf = buffer[chn];\n var firbufPos = bufPos + 576 - 350 - NSFIRLEN + 192;\n assert(fircoef.length == ((NSFIRLEN - 1) / 2));\n for (i = 0; i < 576; i++) {\n var sum1, sum2;\n sum1 = firbuf[firbufPos + i + 10];\n sum2 = 0.0;\n for (j = 0; j < ((NSFIRLEN - 1) / 2) - 1; j += 2) {\n sum1 += fircoef[j]\n * (firbuf[firbufPos + i + j] + firbuf[firbufPos + i\n + NSFIRLEN - j]);\n sum2 += fircoef[j + 1]\n * (firbuf[firbufPos + i + j + 1] + firbuf[firbufPos\n + i + NSFIRLEN - j - 1]);\n }\n ns_hpfsmpl[chn][i] = sum1 + sum2;\n }\n masking_ratio[gr_out][chn].en.assign(gfc.en[chn]);\n masking_ratio[gr_out][chn].thm.assign(gfc.thm[chn]);\n if (numchn > 2) {\n /* MS maskings */\n /* percep_MS_entropy [chn-2] = gfc . pe [chn]; */\n masking_MS_ratio[gr_out][chn].en.assign(gfc.en[chn + 2]);\n masking_MS_ratio[gr_out][chn].thm.assign(gfc.thm[chn + 2]);\n }\n }\n\n for (chn = 0; chn < numchn; chn++) {\n var wsamp_l;\n var wsamp_s;\n var en_subshort = new_float(12);\n var en_short = [0, 0, 0, 0];\n var attack_intensity = new_float(12);\n var ns_uselongblock = 1;\n var attackThreshold;\n var max = new_float(Encoder.CBANDS), avg = new_float(Encoder.CBANDS);\n var ns_attacks = [0, 0, 0, 0];\n var fftenergy = new_float(Encoder.HBLKSIZE);\n var fftenergy_s = new_float_n([3, Encoder.HBLKSIZE_s]);\n\n /*\n * rh 20040301: the following loops do access one off the limits so\n * I increase the array dimensions by one and initialize the\n * accessed values to zero\n */\n assert(gfc.npart_s <= Encoder.CBANDS);\n assert(gfc.npart_l <= Encoder.CBANDS);\n\n /***************************************************************\n * determine the block type (window type)\n ***************************************************************/\n /* calculate energies of each sub-shortblocks */\n for (i = 0; i < 3; i++) {\n en_subshort[i] = gfc.nsPsy.last_en_subshort[chn][i + 6];\n assert(gfc.nsPsy.last_en_subshort[chn][i + 4] > 0);\n attack_intensity[i] = en_subshort[i]\n / gfc.nsPsy.last_en_subshort[chn][i + 4];\n en_short[0] += en_subshort[i];\n }\n\n if (chn == 2) {\n for (i = 0; i < 576; i++) {\n var l, r;\n l = ns_hpfsmpl[0][i];\n r = ns_hpfsmpl[1][i];\n ns_hpfsmpl[0][i] = l + r;\n ns_hpfsmpl[1][i] = l - r;\n }\n }\n {\n var pf = ns_hpfsmpl[chn & 1];\n var pfPos = 0;\n for (i = 0; i < 9; i++) {\n var pfe = pfPos + 576 / 9;\n var p = 1.;\n for (; pfPos < pfe; pfPos++)\n if (p < Math.abs(pf[pfPos]))\n p = Math.abs(pf[pfPos]);\n\n gfc.nsPsy.last_en_subshort[chn][i] = en_subshort[i + 3] = p;\n en_short[1 + i / 3] += p;\n if (p > en_subshort[i + 3 - 2]) {\n assert(en_subshort[i + 3 - 2] > 0);\n p = p / en_subshort[i + 3 - 2];\n } else if (en_subshort[i + 3 - 2] > p * 10.0) {\n assert(p > 0);\n p = en_subshort[i + 3 - 2] / (p * 10.0);\n } else\n p = 0.0;\n attack_intensity[i + 3] = p;\n }\n }\n\n if (gfp.analysis) {\n var x = attack_intensity[0];\n for (i = 1; i < 12; i++)\n if (x < attack_intensity[i])\n x = attack_intensity[i];\n gfc.pinfo.ers[gr_out][chn] = gfc.pinfo.ers_save[chn];\n gfc.pinfo.ers_save[chn] = x;\n }\n\n /* compare energies between sub-shortblocks */\n attackThreshold = (chn == 3) ? gfc.nsPsy.attackthre_s\n : gfc.nsPsy.attackthre;\n for (i = 0; i < 12; i++)\n if (0 == ns_attacks[i / 3]\n && attack_intensity[i] > attackThreshold)\n ns_attacks[i / 3] = (i % 3) + 1;\n\n /*\n * should have energy change between short blocks, in order to avoid\n * periodic signals\n */\n for (i = 1; i < 4; i++) {\n var ratio;\n if (en_short[i - 1] > en_short[i]) {\n assert(en_short[i] > 0);\n ratio = en_short[i - 1] / en_short[i];\n } else {\n assert(en_short[i - 1] > 0);\n ratio = en_short[i] / en_short[i - 1];\n }\n if (ratio < 1.7) {\n ns_attacks[i] = 0;\n if (i == 1)\n ns_attacks[0] = 0;\n }\n }\n\n if (ns_attacks[0] != 0 && gfc.nsPsy.lastAttacks[chn] != 0)\n ns_attacks[0] = 0;\n\n if (gfc.nsPsy.lastAttacks[chn] == 3\n || (ns_attacks[0] + ns_attacks[1] + ns_attacks[2] + ns_attacks[3]) != 0) {\n ns_uselongblock = 0;\n\n if (ns_attacks[1] != 0 && ns_attacks[0] != 0)\n ns_attacks[1] = 0;\n if (ns_attacks[2] != 0 && ns_attacks[1] != 0)\n ns_attacks[2] = 0;\n if (ns_attacks[3] != 0 && ns_attacks[2] != 0)\n ns_attacks[3] = 0;\n }\n\n if (chn < 2) {\n uselongblock[chn] = ns_uselongblock;\n } else {\n if (ns_uselongblock == 0) {\n uselongblock[0] = uselongblock[1] = 0;\n }\n }\n\n /*\n * there is a one granule delay. Copy maskings computed last call\n * into masking_ratio to return to calling program.\n */\n energy[chn] = gfc.tot_ener[chn];\n\n /*********************************************************************\n * compute FFTs\n *********************************************************************/\n wsamp_s = wsamp_S;\n wsamp_l = wsamp_L;\n compute_ffts(gfp, fftenergy, fftenergy_s, wsamp_l, (chn & 1),\n wsamp_s, (chn & 1), gr_out, chn, buffer, bufPos);\n\n /*********************************************************************\n * Calculate the energy and the tonality of each partition.\n *********************************************************************/\n calc_energy(gfc, fftenergy, eb_l, max, avg);\n calc_mask_index_l(gfc, max, avg, mask_idx_l);\n /* compute masking thresholds for short blocks */\n for (sblock = 0; sblock < 3; sblock++) {\n var enn, thmm;\n compute_masking_s(gfp, fftenergy_s, eb_s, thr, chn, sblock);\n convert_partition2scalefac_s(gfc, eb_s, thr, chn, sblock);\n /**** short block pre-echo control ****/\n for (sb = 0; sb < Encoder.SBMAX_s; sb++) {\n thmm = gfc.thm[chn].s[sb][sblock];\n\n thmm *= NS_PREECHO_ATT0;\n if (ns_attacks[sblock] >= 2 || ns_attacks[sblock + 1] == 1) {\n var idx = (sblock != 0) ? sblock - 1 : 2;\n var p = NS_INTERP(gfc.thm[chn].s[sb][idx], thmm,\n NS_PREECHO_ATT1 * pcfact);\n thmm = Math.min(thmm, p);\n }\n\n if (ns_attacks[sblock] == 1) {\n var idx = (sblock != 0) ? sblock - 1 : 2;\n var p = NS_INTERP(gfc.thm[chn].s[sb][idx], thmm,\n NS_PREECHO_ATT2 * pcfact);\n thmm = Math.min(thmm, p);\n } else if ((sblock != 0 && ns_attacks[sblock - 1] == 3)\n || (sblock == 0 && gfc.nsPsy.lastAttacks[chn] == 3)) {\n var idx = (sblock != 2) ? sblock + 1 : 0;\n var p = NS_INTERP(gfc.thm[chn].s[sb][idx], thmm,\n NS_PREECHO_ATT2 * pcfact);\n thmm = Math.min(thmm, p);\n }\n\n /* pulse like signal detection for fatboy.wav and so on */\n enn = en_subshort[sblock * 3 + 3]\n + en_subshort[sblock * 3 + 4]\n + en_subshort[sblock * 3 + 5];\n if (en_subshort[sblock * 3 + 5] * 6 < enn) {\n thmm *= 0.5;\n if (en_subshort[sblock * 3 + 4] * 6 < enn)\n thmm *= 0.5;\n }\n\n gfc.thm[chn].s[sb][sblock] = thmm;\n }\n }\n gfc.nsPsy.lastAttacks[chn] = ns_attacks[2];\n\n /*********************************************************************\n * convolve the partitioned energy and unpredictability with the\n * spreading function, s3_l[b][k]\n ********************************************************************/\n k = 0;\n {\n for (b = 0; b < gfc.npart_l; b++) {\n /*\n * convolve the partitioned energy with the spreading\n * function\n */\n var kk = gfc.s3ind[b][0];\n var eb2 = eb_l[kk] * tab[mask_idx_l[kk]];\n var ecb = gfc.s3_ll[k++] * eb2;\n while (++kk <= gfc.s3ind[b][1]) {\n eb2 = eb_l[kk] * tab[mask_idx_l[kk]];\n ecb = mask_add(ecb, gfc.s3_ll[k++] * eb2, kk, kk - b,\n gfc, 0);\n }\n ecb *= 0.158489319246111;\n /* pow(10,-0.8) */\n\n /**** long block pre-echo control ****/\n /**\n *
\n                     * dont use long block pre-echo control if previous granule was\n                     * a short block.  This is to avoid the situation:\n                     * frame0:  quiet (very low masking)\n                     * frame1:  surge  (triggers short blocks)\n                     * frame2:  regular frame.  looks like pre-echo when compared to\n                     *          frame0, but all pre-echo was in frame1.\n                     * 
\n */\n /*\n * chn=0,1 L and R channels\n *\n * chn=2,3 S and M channels.\n */\n\n if (gfc.blocktype_old[chn & 1] == Encoder.SHORT_TYPE)\n thr[b] = ecb;\n else\n thr[b] = NS_INTERP(\n Math.min(ecb, Math.min(rpelev\n * gfc.nb_1[chn][b], rpelev2\n * gfc.nb_2[chn][b])), ecb, pcfact);\n\n gfc.nb_2[chn][b] = gfc.nb_1[chn][b];\n gfc.nb_1[chn][b] = ecb;\n }\n }\n for (; b <= Encoder.CBANDS; ++b) {\n eb_l[b] = 0;\n thr[b] = 0;\n }\n /* compute masking thresholds for long blocks */\n convert_partition2scalefac_l(gfc, eb_l, thr, chn);\n }\n /* end loop over chn */\n\n if (gfp.mode == MPEGMode.STEREO || gfp.mode == MPEGMode.JOINT_STEREO) {\n if (gfp.interChRatio > 0.0) {\n calc_interchannel_masking(gfp, gfp.interChRatio);\n }\n }\n\n if (gfp.mode == MPEGMode.JOINT_STEREO) {\n var msfix;\n msfix1(gfc);\n msfix = gfp.msfix;\n if (Math.abs(msfix) > 0.0)\n ns_msfix(gfc, msfix, gfp.ATHlower * gfc.ATH.adjust);\n }\n\n /***************************************************************\n * determine final block type\n ***************************************************************/\n block_type_set(gfp, uselongblock, blocktype_d, blocktype);\n\n /*********************************************************************\n * compute the value of PE to return ... no delay and advance\n *********************************************************************/\n for (chn = 0; chn < numchn; chn++) {\n var ppe;\n var ppePos = 0;\n var type;\n var mr;\n\n if (chn > 1) {\n ppe = percep_MS_entropy;\n ppePos = -2;\n type = Encoder.NORM_TYPE;\n if (blocktype_d[0] == Encoder.SHORT_TYPE\n || blocktype_d[1] == Encoder.SHORT_TYPE)\n type = Encoder.SHORT_TYPE;\n mr = masking_MS_ratio[gr_out][chn - 2];\n } else {\n ppe = percep_entropy;\n ppePos = 0;\n type = blocktype_d[chn];\n mr = masking_ratio[gr_out][chn];\n }\n\n if (type == Encoder.SHORT_TYPE)\n ppe[ppePos + chn] = pecalc_s(mr, gfc.masking_lower);\n else\n ppe[ppePos + chn] = pecalc_l(mr, gfc.masking_lower);\n\n if (gfp.analysis)\n gfc.pinfo.pe[gr_out][chn] = ppe[ppePos + chn];\n\n }\n return 0;\n }\n\n function vbrpsy_compute_fft_l(gfp, buffer, bufPos, chn, gr_out, fftenergy, wsamp_l, wsamp_lPos) {\n var gfc = gfp.internal_flags;\n if (chn < 2) {\n fft.fft_long(gfc, wsamp_l[wsamp_lPos], chn, buffer, bufPos);\n } else if (chn == 2) {\n /* FFT data for mid and side channel is derived from L & R */\n for (var j = Encoder.BLKSIZE - 1; j >= 0; --j) {\n var l = wsamp_l[wsamp_lPos + 0][j];\n var r = wsamp_l[wsamp_lPos + 1][j];\n wsamp_l[wsamp_lPos + 0][j] = (l + r) * Util.SQRT2 * 0.5;\n wsamp_l[wsamp_lPos + 1][j] = (l - r) * Util.SQRT2 * 0.5;\n }\n }\n\n /*********************************************************************\n * compute energies\n *********************************************************************/\n fftenergy[0] = NON_LINEAR_SCALE_ENERGY(wsamp_l[wsamp_lPos + 0][0]);\n fftenergy[0] *= fftenergy[0];\n\n for (var j = Encoder.BLKSIZE / 2 - 1; j >= 0; --j) {\n var re = wsamp_l[wsamp_lPos + 0][Encoder.BLKSIZE / 2 - j];\n var im = wsamp_l[wsamp_lPos + 0][Encoder.BLKSIZE / 2 + j];\n fftenergy[Encoder.BLKSIZE / 2 - j] = NON_LINEAR_SCALE_ENERGY((re\n * re + im * im) * 0.5);\n }\n /* total energy */\n {\n var totalenergy = 0.0;\n for (var j = 11; j < Encoder.HBLKSIZE; j++)\n totalenergy += fftenergy[j];\n\n gfc.tot_ener[chn] = totalenergy;\n }\n\n if (gfp.analysis) {\n for (var j = 0; j < Encoder.HBLKSIZE; j++) {\n gfc.pinfo.energy[gr_out][chn][j] = gfc.pinfo.energy_save[chn][j];\n gfc.pinfo.energy_save[chn][j] = fftenergy[j];\n }\n gfc.pinfo.pe[gr_out][chn] = gfc.pe[chn];\n }\n }\n\n function vbrpsy_compute_fft_s(gfp, buffer, bufPos, chn, sblock, fftenergy_s, wsamp_s, wsamp_sPos) {\n var gfc = gfp.internal_flags;\n\n if (sblock == 0 && chn < 2) {\n fft.fft_short(gfc, wsamp_s[wsamp_sPos], chn, buffer, bufPos);\n }\n if (chn == 2) {\n /* FFT data for mid and side channel is derived from L & R */\n for (var j = Encoder.BLKSIZE_s - 1; j >= 0; --j) {\n var l = wsamp_s[wsamp_sPos + 0][sblock][j];\n var r = wsamp_s[wsamp_sPos + 1][sblock][j];\n wsamp_s[wsamp_sPos + 0][sblock][j] = (l + r) * Util.SQRT2 * 0.5;\n wsamp_s[wsamp_sPos + 1][sblock][j] = (l - r) * Util.SQRT2 * 0.5;\n }\n }\n\n /*********************************************************************\n * compute energies\n *********************************************************************/\n fftenergy_s[sblock][0] = wsamp_s[wsamp_sPos + 0][sblock][0];\n fftenergy_s[sblock][0] *= fftenergy_s[sblock][0];\n for (var j = Encoder.BLKSIZE_s / 2 - 1; j >= 0; --j) {\n var re = wsamp_s[wsamp_sPos + 0][sblock][Encoder.BLKSIZE_s / 2 - j];\n var im = wsamp_s[wsamp_sPos + 0][sblock][Encoder.BLKSIZE_s / 2 + j];\n fftenergy_s[sblock][Encoder.BLKSIZE_s / 2 - j] = NON_LINEAR_SCALE_ENERGY((re\n * re + im * im) * 0.5);\n }\n }\n\n /**\n * compute loudness approximation (used for ATH auto-level adjustment)\n */\n function vbrpsy_compute_loudness_approximation_l(gfp, gr_out, chn, fftenergy) {\n var gfc = gfp.internal_flags;\n if (gfp.athaa_loudapprox == 2 && chn < 2) {\n // no loudness for mid/side ch\n gfc.loudness_sq[gr_out][chn] = gfc.loudness_sq_save[chn];\n gfc.loudness_sq_save[chn] = psycho_loudness_approx(fftenergy, gfc);\n }\n }\n\n var fircoef_ = [-8.65163e-18 * 2,\n -0.00851586 * 2, -6.74764e-18 * 2, 0.0209036 * 2,\n -3.36639e-17 * 2, -0.0438162 * 2, -1.54175e-17 * 2,\n 0.0931738 * 2, -5.52212e-17 * 2, -0.313819 * 2];\n\n /**\n * Apply HPF of fs/4 to the input signal. This is used for attack detection\n * / handling.\n */\n function vbrpsy_attack_detection(gfp, buffer, bufPos, gr_out, masking_ratio, masking_MS_ratio, energy, sub_short_factor, ns_attacks, uselongblock) {\n var ns_hpfsmpl = new_float_n([2, 576]);\n var gfc = gfp.internal_flags;\n var n_chn_out = gfc.channels_out;\n /* chn=2 and 3 = Mid and Side channels */\n var n_chn_psy = (gfp.mode == MPEGMode.JOINT_STEREO) ? 4 : n_chn_out;\n /* Don't copy the input buffer into a temporary buffer */\n /* unroll the loop 2 times */\n for (var chn = 0; chn < n_chn_out; chn++) {\n /* apply high pass filter of fs/4 */\n firbuf = buffer[chn];\n var firbufPos = bufPos + 576 - 350 - NSFIRLEN + 192;\n assert(fircoef_.length == ((NSFIRLEN - 1) / 2));\n for (var i = 0; i < 576; i++) {\n var sum1, sum2;\n sum1 = firbuf[firbufPos + i + 10];\n sum2 = 0.0;\n for (var j = 0; j < ((NSFIRLEN - 1) / 2) - 1; j += 2) {\n sum1 += fircoef_[j]\n * (firbuf[firbufPos + i + j] + firbuf[firbufPos + i\n + NSFIRLEN - j]);\n sum2 += fircoef_[j + 1]\n * (firbuf[firbufPos + i + j + 1] + firbuf[firbufPos\n + i + NSFIRLEN - j - 1]);\n }\n ns_hpfsmpl[chn][i] = sum1 + sum2;\n }\n masking_ratio[gr_out][chn].en.assign(gfc.en[chn]);\n masking_ratio[gr_out][chn].thm.assign(gfc.thm[chn]);\n if (n_chn_psy > 2) {\n /* MS maskings */\n /* percep_MS_entropy [chn-2] = gfc . pe [chn]; */\n masking_MS_ratio[gr_out][chn].en.assign(gfc.en[chn + 2]);\n masking_MS_ratio[gr_out][chn].thm.assign(gfc.thm[chn + 2]);\n }\n }\n for (var chn = 0; chn < n_chn_psy; chn++) {\n var attack_intensity = new_float(12);\n var en_subshort = new_float(12);\n var en_short = [0, 0, 0, 0];\n var pf = ns_hpfsmpl[chn & 1];\n var pfPos = 0;\n var attackThreshold = (chn == 3) ? gfc.nsPsy.attackthre_s\n : gfc.nsPsy.attackthre;\n var ns_uselongblock = 1;\n\n if (chn == 2) {\n for (var i = 0, j = 576; j > 0; ++i, --j) {\n var l = ns_hpfsmpl[0][i];\n var r = ns_hpfsmpl[1][i];\n ns_hpfsmpl[0][i] = l + r;\n ns_hpfsmpl[1][i] = l - r;\n }\n }\n /***************************************************************\n * determine the block type (window type)\n ***************************************************************/\n /* calculate energies of each sub-shortblocks */\n for (var i = 0; i < 3; i++) {\n en_subshort[i] = gfc.nsPsy.last_en_subshort[chn][i + 6];\n assert(gfc.nsPsy.last_en_subshort[chn][i + 4] > 0);\n attack_intensity[i] = en_subshort[i]\n / gfc.nsPsy.last_en_subshort[chn][i + 4];\n en_short[0] += en_subshort[i];\n }\n\n for (var i = 0; i < 9; i++) {\n var pfe = pfPos + 576 / 9;\n var p = 1.;\n for (; pfPos < pfe; pfPos++)\n if (p < Math.abs(pf[pfPos]))\n p = Math.abs(pf[pfPos]);\n\n gfc.nsPsy.last_en_subshort[chn][i] = en_subshort[i + 3] = p;\n en_short[1 + i / 3] += p;\n if (p > en_subshort[i + 3 - 2]) {\n assert(en_subshort[i + 3 - 2] > 0);\n p = p / en_subshort[i + 3 - 2];\n } else if (en_subshort[i + 3 - 2] > p * 10.0) {\n assert(p > 0);\n p = en_subshort[i + 3 - 2] / (p * 10.0);\n } else {\n p = 0.0;\n }\n attack_intensity[i + 3] = p;\n }\n /* pulse like signal detection for fatboy.wav and so on */\n for (var i = 0; i < 3; ++i) {\n var enn = en_subshort[i * 3 + 3]\n + en_subshort[i * 3 + 4] + en_subshort[i * 3 + 5];\n var factor = 1.;\n if (en_subshort[i * 3 + 5] * 6 < enn) {\n factor *= 0.5;\n if (en_subshort[i * 3 + 4] * 6 < enn) {\n factor *= 0.5;\n }\n }\n sub_short_factor[chn][i] = factor;\n }\n\n if (gfp.analysis) {\n var x = attack_intensity[0];\n for (var i = 1; i < 12; i++) {\n if (x < attack_intensity[i]) {\n x = attack_intensity[i];\n }\n }\n gfc.pinfo.ers[gr_out][chn] = gfc.pinfo.ers_save[chn];\n gfc.pinfo.ers_save[chn] = x;\n }\n\n /* compare energies between sub-shortblocks */\n for (var i = 0; i < 12; i++) {\n if (0 == ns_attacks[chn][i / 3]\n && attack_intensity[i] > attackThreshold) {\n ns_attacks[chn][i / 3] = (i % 3) + 1;\n }\n }\n\n /*\n * should have energy change between short blocks, in order to avoid\n * periodic signals\n */\n /* Good samples to show the effect are Trumpet test songs */\n /*\n * GB: tuned (1) to avoid too many short blocks for test sample\n * TRUMPET\n */\n /*\n * RH: tuned (2) to let enough short blocks through for test sample\n * FSOL and SNAPS\n */\n for (var i = 1; i < 4; i++) {\n var u = en_short[i - 1];\n var v = en_short[i];\n var m = Math.max(u, v);\n if (m < 40000) { /* (2) */\n if (u < 1.7 * v && v < 1.7 * u) { /* (1) */\n if (i == 1 && ns_attacks[chn][0] <= ns_attacks[chn][i]) {\n ns_attacks[chn][0] = 0;\n }\n ns_attacks[chn][i] = 0;\n }\n }\n }\n\n if (ns_attacks[chn][0] <= gfc.nsPsy.lastAttacks[chn]) {\n ns_attacks[chn][0] = 0;\n }\n\n if (gfc.nsPsy.lastAttacks[chn] == 3\n || (ns_attacks[chn][0] + ns_attacks[chn][1]\n + ns_attacks[chn][2] + ns_attacks[chn][3]) != 0) {\n ns_uselongblock = 0;\n\n if (ns_attacks[chn][1] != 0 && ns_attacks[chn][0] != 0) {\n ns_attacks[chn][1] = 0;\n }\n if (ns_attacks[chn][2] != 0 && ns_attacks[chn][1] != 0) {\n ns_attacks[chn][2] = 0;\n }\n if (ns_attacks[chn][3] != 0 && ns_attacks[chn][2] != 0) {\n ns_attacks[chn][3] = 0;\n }\n }\n if (chn < 2) {\n uselongblock[chn] = ns_uselongblock;\n } else {\n if (ns_uselongblock == 0) {\n uselongblock[0] = uselongblock[1] = 0;\n }\n }\n\n /*\n * there is a one granule delay. Copy maskings computed last call\n * into masking_ratio to return to calling program.\n */\n energy[chn] = gfc.tot_ener[chn];\n }\n }\n\n function vbrpsy_skip_masking_s(gfc, chn, sblock) {\n if (sblock == 0) {\n for (var b = 0; b < gfc.npart_s; b++) {\n gfc.nb_s2[chn][b] = gfc.nb_s1[chn][b];\n gfc.nb_s1[chn][b] = 0;\n }\n }\n }\n\n function vbrpsy_skip_masking_l(gfc, chn) {\n for (var b = 0; b < gfc.npart_l; b++) {\n gfc.nb_2[chn][b] = gfc.nb_1[chn][b];\n gfc.nb_1[chn][b] = 0;\n }\n }\n\n function psyvbr_calc_mask_index_s(gfc, max, avg, mask_idx) {\n var last_tab_entry = tab.length - 1;\n var b = 0;\n var a = avg[b] + avg[b + 1];\n assert(a >= 0);\n if (a > 0.0) {\n var m = max[b];\n if (m < max[b + 1])\n m = max[b + 1];\n assert((gfc.numlines_s[b] + gfc.numlines_s[b + 1] - 1) > 0);\n a = 20.0 * (m * 2.0 - a)\n / (a * (gfc.numlines_s[b] + gfc.numlines_s[b + 1] - 1));\n var k = 0 | a;\n if (k > last_tab_entry)\n k = last_tab_entry;\n mask_idx[b] = k;\n } else {\n mask_idx[b] = 0;\n }\n\n for (b = 1; b < gfc.npart_s - 1; b++) {\n a = avg[b - 1] + avg[b] + avg[b + 1];\n assert(b + 1 < gfc.npart_s);\n assert(a >= 0);\n if (a > 0.0) {\n var m = max[b - 1];\n if (m < max[b])\n m = max[b];\n if (m < max[b + 1])\n m = max[b + 1];\n assert((gfc.numlines_s[b - 1] + gfc.numlines_s[b] + gfc.numlines_s[b + 1] - 1) > 0);\n a = 20.0\n * (m * 3.0 - a)\n / (a * (gfc.numlines_s[b - 1] + gfc.numlines_s[b]\n + gfc.numlines_s[b + 1] - 1));\n var k = 0 | a;\n if (k > last_tab_entry)\n k = last_tab_entry;\n mask_idx[b] = k;\n } else {\n mask_idx[b] = 0;\n }\n }\n assert(b > 0);\n assert(b == gfc.npart_s - 1);\n\n a = avg[b - 1] + avg[b];\n assert(a >= 0);\n if (a > 0.0) {\n var m = max[b - 1];\n if (m < max[b])\n m = max[b];\n assert((gfc.numlines_s[b - 1] + gfc.numlines_s[b] - 1) > 0);\n a = 20.0 * (m * 2.0 - a)\n / (a * (gfc.numlines_s[b - 1] + gfc.numlines_s[b] - 1));\n var k = 0 | a;\n if (k > last_tab_entry)\n k = last_tab_entry;\n mask_idx[b] = k;\n } else {\n mask_idx[b] = 0;\n }\n assert(b == (gfc.npart_s - 1));\n }\n\n function vbrpsy_compute_masking_s(gfp, fftenergy_s, eb, thr, chn, sblock) {\n var gfc = gfp.internal_flags;\n var max = new float[Encoder.CBANDS], avg = new_float(Encoder.CBANDS);\n var i, j, b;\n var mask_idx_s = new int[Encoder.CBANDS];\n\n for (b = j = 0; b < gfc.npart_s; ++b) {\n var ebb = 0, m = 0;\n var n = gfc.numlines_s[b];\n for (i = 0; i < n; ++i, ++j) {\n var el = fftenergy_s[sblock][j];\n ebb += el;\n if (m < el)\n m = el;\n }\n eb[b] = ebb;\n assert(ebb >= 0);\n max[b] = m;\n assert(n > 0);\n avg[b] = ebb / n;\n assert(avg[b] >= 0);\n }\n assert(b == gfc.npart_s);\n assert(j == 129);\n for (; b < Encoder.CBANDS; ++b) {\n max[b] = 0;\n avg[b] = 0;\n }\n psyvbr_calc_mask_index_s(gfc, max, avg, mask_idx_s);\n for (j = b = 0; b < gfc.npart_s; b++) {\n var kk = gfc.s3ind_s[b][0];\n var last = gfc.s3ind_s[b][1];\n var dd, dd_n;\n var x, ecb, avg_mask;\n dd = mask_idx_s[kk];\n dd_n = 1;\n ecb = gfc.s3_ss[j] * eb[kk] * tab[mask_idx_s[kk]];\n ++j;\n ++kk;\n while (kk <= last) {\n dd += mask_idx_s[kk];\n dd_n += 1;\n x = gfc.s3_ss[j] * eb[kk] * tab[mask_idx_s[kk]];\n ecb = vbrpsy_mask_add(ecb, x, kk - b);\n ++j;\n ++kk;\n }\n dd = (1 + 2 * dd) / (2 * dd_n);\n avg_mask = tab[dd] * 0.5;\n ecb *= avg_mask;\n thr[b] = ecb;\n gfc.nb_s2[chn][b] = gfc.nb_s1[chn][b];\n gfc.nb_s1[chn][b] = ecb;\n {\n /*\n * if THR exceeds EB, the quantization routines will take the\n * difference from other bands. in case of strong tonal samples\n * (tonaltest.wav) this leads to heavy distortions. that's why\n * we limit THR here.\n */\n x = max[b];\n x *= gfc.minval_s[b];\n x *= avg_mask;\n if (thr[b] > x) {\n thr[b] = x;\n }\n }\n if (gfc.masking_lower > 1) {\n thr[b] *= gfc.masking_lower;\n }\n if (thr[b] > eb[b]) {\n thr[b] = eb[b];\n }\n if (gfc.masking_lower < 1) {\n thr[b] *= gfc.masking_lower;\n }\n\n assert(thr[b] >= 0);\n }\n for (; b < Encoder.CBANDS; ++b) {\n eb[b] = 0;\n thr[b] = 0;\n }\n }\n\n function vbrpsy_compute_masking_l(gfc, fftenergy, eb_l, thr, chn) {\n var max = new_float(Encoder.CBANDS), avg = new_float(Encoder.CBANDS);\n var mask_idx_l = new_int(Encoder.CBANDS + 2);\n var b;\n\n /*********************************************************************\n * Calculate the energy and the tonality of each partition.\n *********************************************************************/\n calc_energy(gfc, fftenergy, eb_l, max, avg);\n calc_mask_index_l(gfc, max, avg, mask_idx_l);\n\n /*********************************************************************\n * convolve the partitioned energy and unpredictability with the\n * spreading function, s3_l[b][k]\n ********************************************************************/\n var k = 0;\n for (b = 0; b < gfc.npart_l; b++) {\n var x, ecb, avg_mask, t;\n /* convolve the partitioned energy with the spreading function */\n var kk = gfc.s3ind[b][0];\n var last = gfc.s3ind[b][1];\n var dd = 0, dd_n = 0;\n dd = mask_idx_l[kk];\n dd_n += 1;\n ecb = gfc.s3_ll[k] * eb_l[kk] * tab[mask_idx_l[kk]];\n ++k;\n ++kk;\n while (kk <= last) {\n dd += mask_idx_l[kk];\n dd_n += 1;\n x = gfc.s3_ll[k] * eb_l[kk] * tab[mask_idx_l[kk]];\n t = vbrpsy_mask_add(ecb, x, kk - b);\n ecb = t;\n ++k;\n ++kk;\n }\n dd = (1 + 2 * dd) / (2 * dd_n);\n avg_mask = tab[dd] * 0.5;\n ecb *= avg_mask;\n\n /**** long block pre-echo control ****/\n /**\n *
\n             * dont use long block pre-echo control if previous granule was\n             * a short block.  This is to avoid the situation:\n             * frame0:  quiet (very low masking)\n             * frame1:  surge  (triggers short blocks)\n             * frame2:  regular frame.  looks like pre-echo when compared to\n             *          frame0, but all pre-echo was in frame1.\n             * 
\n */\n /*\n * chn=0,1 L and R channels chn=2,3 S and M channels.\n */\n if (gfc.blocktype_old[chn & 0x01] == Encoder.SHORT_TYPE) {\n var ecb_limit = rpelev * gfc.nb_1[chn][b];\n if (ecb_limit > 0) {\n thr[b] = Math.min(ecb, ecb_limit);\n } else {\n /**\n *
\n                     * Robert 071209:\n                     * Because we don't calculate long block psy when we know a granule\n                     * should be of short blocks, we don't have any clue how the granule\n                     * before would have looked like as a long block. So we have to guess\n                     * a little bit for this END_TYPE block.\n                     * Most of the time we get away with this sloppyness. (fingers crossed :)\n                     * The speed increase is worth it.\n                     * 
\n */\n thr[b] = Math.min(ecb, eb_l[b] * NS_PREECHO_ATT2);\n }\n } else {\n var ecb_limit_2 = rpelev2 * gfc.nb_2[chn][b];\n var ecb_limit_1 = rpelev * gfc.nb_1[chn][b];\n var ecb_limit;\n if (ecb_limit_2 <= 0) {\n ecb_limit_2 = ecb;\n }\n if (ecb_limit_1 <= 0) {\n ecb_limit_1 = ecb;\n }\n if (gfc.blocktype_old[chn & 0x01] == Encoder.NORM_TYPE) {\n ecb_limit = Math.min(ecb_limit_1, ecb_limit_2);\n } else {\n ecb_limit = ecb_limit_1;\n }\n thr[b] = Math.min(ecb, ecb_limit);\n }\n gfc.nb_2[chn][b] = gfc.nb_1[chn][b];\n gfc.nb_1[chn][b] = ecb;\n {\n /*\n * if THR exceeds EB, the quantization routines will take the\n * difference from other bands. in case of strong tonal samples\n * (tonaltest.wav) this leads to heavy distortions. that's why\n * we limit THR here.\n */\n x = max[b];\n x *= gfc.minval_l[b];\n x *= avg_mask;\n if (thr[b] > x) {\n thr[b] = x;\n }\n }\n if (gfc.masking_lower > 1) {\n thr[b] *= gfc.masking_lower;\n }\n if (thr[b] > eb_l[b]) {\n thr[b] = eb_l[b];\n }\n if (gfc.masking_lower < 1) {\n thr[b] *= gfc.masking_lower;\n }\n assert(thr[b] >= 0);\n }\n for (; b < Encoder.CBANDS; ++b) {\n eb_l[b] = 0;\n thr[b] = 0;\n }\n }\n\n function vbrpsy_compute_block_type(gfp, uselongblock) {\n var gfc = gfp.internal_flags;\n\n if (gfp.short_blocks == ShortBlock.short_block_coupled\n /* force both channels to use the same block type */\n /* this is necessary if the frame is to be encoded in ms_stereo. */\n /* But even without ms_stereo, FhG does this */\n && !(uselongblock[0] != 0 && uselongblock[1] != 0))\n uselongblock[0] = uselongblock[1] = 0;\n\n for (var chn = 0; chn < gfc.channels_out; chn++) {\n /* disable short blocks */\n if (gfp.short_blocks == ShortBlock.short_block_dispensed) {\n uselongblock[chn] = 1;\n }\n if (gfp.short_blocks == ShortBlock.short_block_forced) {\n uselongblock[chn] = 0;\n }\n }\n }\n\n function vbrpsy_apply_block_type(gfp, uselongblock, blocktype_d) {\n var gfc = gfp.internal_flags;\n\n /*\n * update the blocktype of the previous granule, since it depends on\n * what happend in this granule\n */\n for (var chn = 0; chn < gfc.channels_out; chn++) {\n var blocktype = Encoder.NORM_TYPE;\n /* disable short blocks */\n\n if (uselongblock[chn] != 0) {\n /* no attack : use long blocks */\n assert(gfc.blocktype_old[chn] != Encoder.START_TYPE);\n if (gfc.blocktype_old[chn] == Encoder.SHORT_TYPE)\n blocktype = Encoder.STOP_TYPE;\n } else {\n /* attack : use short blocks */\n blocktype = Encoder.SHORT_TYPE;\n if (gfc.blocktype_old[chn] == Encoder.NORM_TYPE) {\n gfc.blocktype_old[chn] = Encoder.START_TYPE;\n }\n if (gfc.blocktype_old[chn] == Encoder.STOP_TYPE)\n gfc.blocktype_old[chn] = Encoder.SHORT_TYPE;\n }\n\n blocktype_d[chn] = gfc.blocktype_old[chn];\n // value returned to calling program\n gfc.blocktype_old[chn] = blocktype;\n // save for next call to l3psy_anal\n }\n }\n\n /**\n * compute M/S thresholds from Johnston & Ferreira 1992 ICASSP paper\n */\n function vbrpsy_compute_MS_thresholds(eb, thr, cb_mld, ath_cb, athadjust, msfix, n) {\n var msfix2 = msfix * 2;\n var athlower = msfix > 0 ? Math.pow(10, athadjust) : 1;\n var rside, rmid;\n for (var b = 0; b < n; ++b) {\n var ebM = eb[2][b];\n var ebS = eb[3][b];\n var thmL = thr[0][b];\n var thmR = thr[1][b];\n var thmM = thr[2][b];\n var thmS = thr[3][b];\n\n /* use this fix if L & R masking differs by 2db or less */\n if (thmL <= 1.58 * thmR && thmR <= 1.58 * thmL) {\n var mld_m = cb_mld[b] * ebS;\n var mld_s = cb_mld[b] * ebM;\n rmid = Math.max(thmM, Math.min(thmS, mld_m));\n rside = Math.max(thmS, Math.min(thmM, mld_s));\n } else {\n rmid = thmM;\n rside = thmS;\n }\n if (msfix > 0) {\n /***************************************************************/\n /* Adjust M/S maskings if user set \"msfix\" */\n /***************************************************************/\n /* Naoki Shibata 2000 */\n var thmLR, thmMS;\n var ath = ath_cb[b] * athlower;\n thmLR = Math.min(Math.max(thmL, ath), Math.max(thmR, ath));\n thmM = Math.max(rmid, ath);\n thmS = Math.max(rside, ath);\n thmMS = thmM + thmS;\n if (thmMS > 0 && (thmLR * msfix2) < thmMS) {\n var f = thmLR * msfix2 / thmMS;\n thmM *= f;\n thmS *= f;\n assert(thmMS > 0);\n }\n rmid = Math.min(thmM, rmid);\n rside = Math.min(thmS, rside);\n }\n if (rmid > ebM) {\n rmid = ebM;\n }\n if (rside > ebS) {\n rside = ebS;\n }\n thr[2][b] = rmid;\n thr[3][b] = rside;\n }\n }\n\n this.L3psycho_anal_vbr = function (gfp, buffer, bufPos, gr_out, masking_ratio, masking_MS_ratio, percep_entropy, percep_MS_entropy, energy, blocktype_d) {\n var gfc = gfp.internal_flags;\n\n /* fft and energy calculation */\n var wsamp_l;\n var wsamp_s;\n var fftenergy = new_float(Encoder.HBLKSIZE);\n var fftenergy_s = new_float_n([3, Encoder.HBLKSIZE_s]);\n var wsamp_L = new_float_n([2, Encoder.BLKSIZE]);\n var wsamp_S = new_float_n([2, 3, Encoder.BLKSIZE_s]);\n var eb = new_float_n([4, Encoder.CBANDS]), thr = new_float_n([4, Encoder.CBANDS]);\n var sub_short_factor = new_float_n([4, 3]);\n var pcfact = 0.6;\n\n /* block type */\n var ns_attacks = [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0],\n [0, 0, 0, 0]];\n var uselongblock = new_int(2);\n\n /* usual variables like loop indices, etc.. */\n\n /* chn=2 and 3 = Mid and Side channels */\n var n_chn_psy = (gfp.mode == MPEGMode.JOINT_STEREO) ? 4\n : gfc.channels_out;\n\n vbrpsy_attack_detection(gfp, buffer, bufPos, gr_out, masking_ratio,\n masking_MS_ratio, energy, sub_short_factor, ns_attacks,\n uselongblock);\n\n vbrpsy_compute_block_type(gfp, uselongblock);\n\n /* LONG BLOCK CASE */\n {\n for (var chn = 0; chn < n_chn_psy; chn++) {\n var ch01 = chn & 0x01;\n wsamp_l = wsamp_L;\n vbrpsy_compute_fft_l(gfp, buffer, bufPos, chn, gr_out,\n fftenergy, wsamp_l, ch01);\n\n vbrpsy_compute_loudness_approximation_l(gfp, gr_out, chn,\n fftenergy);\n\n if (uselongblock[ch01] != 0) {\n vbrpsy_compute_masking_l(gfc, fftenergy, eb[chn], thr[chn],\n chn);\n } else {\n vbrpsy_skip_masking_l(gfc, chn);\n }\n }\n if ((uselongblock[0] + uselongblock[1]) == 2) {\n /* M/S channel */\n if (gfp.mode == MPEGMode.JOINT_STEREO) {\n vbrpsy_compute_MS_thresholds(eb, thr, gfc.mld_cb_l,\n gfc.ATH.cb_l, gfp.ATHlower * gfc.ATH.adjust,\n gfp.msfix, gfc.npart_l);\n }\n }\n /* TODO: apply adaptive ATH masking here ?? */\n for (var chn = 0; chn < n_chn_psy; chn++) {\n var ch01 = chn & 0x01;\n if (uselongblock[ch01] != 0) {\n convert_partition2scalefac_l(gfc, eb[chn], thr[chn], chn);\n }\n }\n }\n\n /* SHORT BLOCKS CASE */\n {\n for (var sblock = 0; sblock < 3; sblock++) {\n for (var chn = 0; chn < n_chn_psy; ++chn) {\n var ch01 = chn & 0x01;\n\n if (uselongblock[ch01] != 0) {\n vbrpsy_skip_masking_s(gfc, chn, sblock);\n } else {\n /* compute masking thresholds for short blocks */\n wsamp_s = wsamp_S;\n vbrpsy_compute_fft_s(gfp, buffer, bufPos, chn, sblock,\n fftenergy_s, wsamp_s, ch01);\n vbrpsy_compute_masking_s(gfp, fftenergy_s, eb[chn],\n thr[chn], chn, sblock);\n }\n }\n if ((uselongblock[0] + uselongblock[1]) == 0) {\n /* M/S channel */\n if (gfp.mode == MPEGMode.JOINT_STEREO) {\n vbrpsy_compute_MS_thresholds(eb, thr, gfc.mld_cb_s,\n gfc.ATH.cb_s, gfp.ATHlower * gfc.ATH.adjust,\n gfp.msfix, gfc.npart_s);\n }\n /* L/R channel */\n }\n /* TODO: apply adaptive ATH masking here ?? */\n for (var chn = 0; chn < n_chn_psy; ++chn) {\n var ch01 = chn & 0x01;\n if (0 == uselongblock[ch01]) {\n convert_partition2scalefac_s(gfc, eb[chn], thr[chn],\n chn, sblock);\n }\n }\n }\n\n /**** short block pre-echo control ****/\n for (var chn = 0; chn < n_chn_psy; chn++) {\n var ch01 = chn & 0x01;\n\n if (uselongblock[ch01] != 0) {\n continue;\n }\n for (var sb = 0; sb < Encoder.SBMAX_s; sb++) {\n var new_thmm = new_float(3);\n for (var sblock = 0; sblock < 3; sblock++) {\n var thmm = gfc.thm[chn].s[sb][sblock];\n thmm *= NS_PREECHO_ATT0;\n\n if (ns_attacks[chn][sblock] >= 2\n || ns_attacks[chn][sblock + 1] == 1) {\n var idx = (sblock != 0) ? sblock - 1 : 2;\n var p = NS_INTERP(gfc.thm[chn].s[sb][idx], thmm,\n NS_PREECHO_ATT1 * pcfact);\n thmm = Math.min(thmm, p);\n } else if (ns_attacks[chn][sblock] == 1) {\n var idx = (sblock != 0) ? sblock - 1 : 2;\n var p = NS_INTERP(gfc.thm[chn].s[sb][idx], thmm,\n NS_PREECHO_ATT2 * pcfact);\n thmm = Math.min(thmm, p);\n } else if ((sblock != 0 && ns_attacks[chn][sblock - 1] == 3)\n || (sblock == 0 && gfc.nsPsy.lastAttacks[chn] == 3)) {\n var idx = (sblock != 2) ? sblock + 1 : 0;\n var p = NS_INTERP(gfc.thm[chn].s[sb][idx], thmm,\n NS_PREECHO_ATT2 * pcfact);\n thmm = Math.min(thmm, p);\n }\n\n /* pulse like signal detection for fatboy.wav and so on */\n thmm *= sub_short_factor[chn][sblock];\n\n new_thmm[sblock] = thmm;\n }\n for (var sblock = 0; sblock < 3; sblock++) {\n gfc.thm[chn].s[sb][sblock] = new_thmm[sblock];\n }\n }\n }\n }\n for (var chn = 0; chn < n_chn_psy; chn++) {\n gfc.nsPsy.lastAttacks[chn] = ns_attacks[chn][2];\n }\n\n /***************************************************************\n * determine final block type\n ***************************************************************/\n vbrpsy_apply_block_type(gfp, uselongblock, blocktype_d);\n\n /*********************************************************************\n * compute the value of PE to return ... no delay and advance\n *********************************************************************/\n for (var chn = 0; chn < n_chn_psy; chn++) {\n var ppe;\n var ppePos;\n var type;\n var mr;\n\n if (chn > 1) {\n ppe = percep_MS_entropy;\n ppePos = -2;\n type = Encoder.NORM_TYPE;\n if (blocktype_d[0] == Encoder.SHORT_TYPE\n || blocktype_d[1] == Encoder.SHORT_TYPE)\n type = Encoder.SHORT_TYPE;\n mr = masking_MS_ratio[gr_out][chn - 2];\n } else {\n ppe = percep_entropy;\n ppePos = 0;\n type = blocktype_d[chn];\n mr = masking_ratio[gr_out][chn];\n }\n\n if (type == Encoder.SHORT_TYPE) {\n ppe[ppePos + chn] = pecalc_s(mr, gfc.masking_lower);\n } else {\n ppe[ppePos + chn] = pecalc_l(mr, gfc.masking_lower);\n }\n\n if (gfp.analysis) {\n gfc.pinfo.pe[gr_out][chn] = ppe[ppePos + chn];\n }\n }\n return 0;\n }\n\n function s3_func_x(bark, hf_slope) {\n var tempx = bark, tempy;\n\n if (tempx >= 0) {\n tempy = -tempx * 27;\n } else {\n tempy = tempx * hf_slope;\n }\n if (tempy <= -72.0) {\n return 0;\n }\n return Math.exp(tempy * LN_TO_LOG10);\n }\n\n function norm_s3_func_x(hf_slope) {\n var lim_a = 0, lim_b = 0;\n {\n var x = 0, l, h;\n for (x = 0; s3_func_x(x, hf_slope) > 1e-20; x -= 1)\n ;\n l = x;\n h = 0;\n while (Math.abs(h - l) > 1e-12) {\n x = (h + l) / 2;\n if (s3_func_x(x, hf_slope) > 0) {\n h = x;\n } else {\n l = x;\n }\n }\n lim_a = l;\n }\n {\n var x = 0, l, h;\n for (x = 0; s3_func_x(x, hf_slope) > 1e-20; x += 1)\n ;\n l = 0;\n h = x;\n while (Math.abs(h - l) > 1e-12) {\n x = (h + l) / 2;\n if (s3_func_x(x, hf_slope) > 0) {\n l = x;\n } else {\n h = x;\n }\n }\n lim_b = h;\n }\n {\n var sum = 0;\n var m = 1000;\n var i;\n for (i = 0; i <= m; ++i) {\n var x = lim_a + i * (lim_b - lim_a) / m;\n var y = s3_func_x(x, hf_slope);\n sum += y;\n }\n {\n var norm = (m + 1) / (sum * (lim_b - lim_a));\n /* printf( \"norm = %lf\\n\",norm); */\n return norm;\n }\n }\n }\n\n /**\n * The spreading function. Values returned in units of energy\n */\n function s3_func(bark) {\n var tempx, x, tempy, temp;\n tempx = bark;\n if (tempx >= 0)\n tempx *= 3;\n else\n tempx *= 1.5;\n\n if (tempx >= 0.5 && tempx <= 2.5) {\n temp = tempx - 0.5;\n x = 8.0 * (temp * temp - 2.0 * temp);\n } else\n x = 0.0;\n tempx += 0.474;\n tempy = 15.811389 + 7.5 * tempx - 17.5\n * Math.sqrt(1.0 + tempx * tempx);\n\n if (tempy <= -60.0)\n return 0.0;\n\n tempx = Math.exp((x + tempy) * LN_TO_LOG10);\n\n /**\n *
\n         * Normalization.  The spreading function should be normalized so that:\n         * +inf\n         * /\n         * |  s3 [ bark ]  d(bark)   =  1\n         * /\n         * -inf\n         * 
\n */\n tempx /= .6609193;\n return tempx;\n }\n\n /**\n * see for example \"Zwicker: Psychoakustik, 1982; ISBN 3-540-11401-7\n */\n function freq2bark(freq) {\n /* input: freq in hz output: barks */\n if (freq < 0)\n freq = 0;\n freq = freq * 0.001;\n return 13.0 * Math.atan(.76 * freq) + 3.5\n * Math.atan(freq * freq / (7.5 * 7.5));\n }\n\n function init_numline(numlines, bo, bm, bval, bval_width, mld, bo_w, sfreq, blksize, scalepos, deltafreq, sbmax) {\n var b_frq = new_float(Encoder.CBANDS + 1);\n var sample_freq_frac = sfreq / (sbmax > 15 ? 2 * 576 : 2 * 192);\n var partition = new_int(Encoder.HBLKSIZE);\n var i;\n sfreq /= blksize;\n var j = 0;\n var ni = 0;\n /* compute numlines, the number of spectral lines in each partition band */\n /* each partition band should be about DELBARK wide. */\n for (i = 0; i < Encoder.CBANDS; i++) {\n var bark1;\n var j2;\n bark1 = freq2bark(sfreq * j);\n\n b_frq[i] = sfreq * j;\n\n for (j2 = j; freq2bark(sfreq * j2) - bark1 < DELBARK\n && j2 <= blksize / 2; j2++)\n ;\n\n numlines[i] = j2 - j;\n ni = i + 1;\n\n while (j < j2) {\n assert(j < Encoder.HBLKSIZE);\n partition[j++] = i;\n }\n if (j > blksize / 2) {\n j = blksize / 2;\n ++i;\n break;\n }\n }\n assert(i < Encoder.CBANDS);\n b_frq[i] = sfreq * j;\n\n for (var sfb = 0; sfb < sbmax; sfb++) {\n var i1, i2, start, end;\n var arg;\n start = scalepos[sfb];\n end = scalepos[sfb + 1];\n\n i1 = 0 | Math.floor(.5 + deltafreq * (start - .5));\n if (i1 < 0)\n i1 = 0;\n i2 = 0 | Math.floor(.5 + deltafreq * (end - .5));\n\n if (i2 > blksize / 2)\n i2 = blksize / 2;\n\n bm[sfb] = (partition[i1] + partition[i2]) / 2;\n bo[sfb] = partition[i2];\n var f_tmp = sample_freq_frac * end;\n /*\n * calculate how much of this band belongs to current scalefactor\n * band\n */\n bo_w[sfb] = (f_tmp - b_frq[bo[sfb]])\n / (b_frq[bo[sfb] + 1] - b_frq[bo[sfb]]);\n if (bo_w[sfb] < 0) {\n bo_w[sfb] = 0;\n } else {\n if (bo_w[sfb] > 1) {\n bo_w[sfb] = 1;\n }\n }\n /* setup stereo demasking thresholds */\n /* formula reverse enginerred from plot in paper */\n arg = freq2bark(sfreq * scalepos[sfb] * deltafreq);\n arg = ( Math.min(arg, 15.5) / 15.5);\n\n mld[sfb] = Math.pow(10.0,\n 1.25 * (1 - Math.cos(Math.PI * arg)) - 2.5);\n }\n\n /* compute bark values of each critical band */\n j = 0;\n for (var k = 0; k < ni; k++) {\n var w = numlines[k];\n var bark1, bark2;\n\n bark1 = freq2bark(sfreq * (j));\n bark2 = freq2bark(sfreq * (j + w - 1));\n bval[k] = .5 * (bark1 + bark2);\n\n bark1 = freq2bark(sfreq * (j - .5));\n bark2 = freq2bark(sfreq * (j + w - .5));\n bval_width[k] = bark2 - bark1;\n j += w;\n }\n\n return ni;\n }\n\n function init_s3_values(s3ind, npart, bval, bval_width, norm, use_old_s3) {\n var s3 = new_float_n([Encoder.CBANDS, Encoder.CBANDS]);\n /*\n * The s3 array is not linear in the bark scale.\n *\n * bval[x] should be used to get the bark value.\n */\n var j;\n var numberOfNoneZero = 0;\n\n /**\n *
\n         * s[i][j], the value of the spreading function,\n         * centered at band j (masker), for band i (maskee)\n         *\n         * i.e.: sum over j to spread into signal barkval=i\n         * NOTE: i and j are used opposite as in the ISO docs\n         * 
\n */\n if (use_old_s3) {\n for (var i = 0; i < npart; i++) {\n for (j = 0; j < npart; j++) {\n var v = s3_func(bval[i] - bval[j]) * bval_width[j];\n s3[i][j] = v * norm[i];\n }\n }\n } else {\n for (j = 0; j < npart; j++) {\n var hf_slope = 15 + Math.min(21 / bval[j], 12);\n var s3_x_norm = norm_s3_func_x(hf_slope);\n for (var i = 0; i < npart; i++) {\n var v = s3_x_norm\n * s3_func_x(bval[i] - bval[j], hf_slope)\n * bval_width[j];\n s3[i][j] = v * norm[i];\n }\n }\n }\n for (var i = 0; i < npart; i++) {\n for (j = 0; j < npart; j++) {\n if (s3[i][j] > 0.0)\n break;\n }\n s3ind[i][0] = j;\n\n for (j = npart - 1; j > 0; j--) {\n if (s3[i][j] > 0.0)\n break;\n }\n s3ind[i][1] = j;\n numberOfNoneZero += (s3ind[i][1] - s3ind[i][0] + 1);\n }\n\n var p = new_float(numberOfNoneZero);\n var k = 0;\n for (var i = 0; i < npart; i++)\n for (j = s3ind[i][0]; j <= s3ind[i][1]; j++)\n p[k++] = s3[i][j];\n\n return p;\n }\n\n function stereo_demask(f) {\n /* setup stereo demasking thresholds */\n /* formula reverse enginerred from plot in paper */\n var arg = freq2bark(f);\n arg = (Math.min(arg, 15.5) / 15.5);\n\n return Math.pow(10.0,\n 1.25 * (1 - Math.cos(Math.PI * arg)) - 2.5);\n }\n\n /**\n * NOTE: the bitrate reduction from the inter-channel masking effect is low\n * compared to the chance of getting annyoing artefacts. L3psycho_anal_vbr\n * does not use this feature. (Robert 071216)\n */\n this.psymodel_init = function (gfp) {\n var gfc = gfp.internal_flags;\n var i;\n var useOldS3 = true;\n var bvl_a = 13, bvl_b = 24;\n var snr_l_a = 0, snr_l_b = 0;\n var snr_s_a = -8.25, snr_s_b = -4.5;\n var bval = new_float(Encoder.CBANDS);\n var bval_width = new_float(Encoder.CBANDS);\n var norm = new_float(Encoder.CBANDS);\n var sfreq = gfp.out_samplerate;\n\n switch (gfp.experimentalZ) {\n default:\n case 0:\n useOldS3 = true;\n break;\n case 1:\n useOldS3 = (gfp.VBR == VbrMode.vbr_mtrh || gfp.VBR == VbrMode.vbr_mt) ? false\n : true;\n break;\n case 2:\n useOldS3 = false;\n break;\n case 3:\n bvl_a = 8;\n snr_l_a = -1.75;\n snr_l_b = -0.0125;\n snr_s_a = -8.25;\n snr_s_b = -2.25;\n break;\n }\n gfc.ms_ener_ratio_old = .25;\n gfc.blocktype_old[0] = gfc.blocktype_old[1] = Encoder.NORM_TYPE;\n // the vbr header is long blocks\n\n for (i = 0; i < 4; ++i) {\n for (var j = 0; j < Encoder.CBANDS; ++j) {\n gfc.nb_1[i][j] = 1e20;\n gfc.nb_2[i][j] = 1e20;\n gfc.nb_s1[i][j] = gfc.nb_s2[i][j] = 1.0;\n }\n for (var sb = 0; sb < Encoder.SBMAX_l; sb++) {\n gfc.en[i].l[sb] = 1e20;\n gfc.thm[i].l[sb] = 1e20;\n }\n for (var j = 0; j < 3; ++j) {\n for (var sb = 0; sb < Encoder.SBMAX_s; sb++) {\n gfc.en[i].s[sb][j] = 1e20;\n gfc.thm[i].s[sb][j] = 1e20;\n }\n gfc.nsPsy.lastAttacks[i] = 0;\n }\n for (var j = 0; j < 9; j++)\n gfc.nsPsy.last_en_subshort[i][j] = 10.;\n }\n\n /* init. for loudness approx. -jd 2001 mar 27 */\n gfc.loudness_sq_save[0] = gfc.loudness_sq_save[1] = 0.0;\n\n /*************************************************************************\n * now compute the psychoacoustic model specific constants\n ************************************************************************/\n /* compute numlines, bo, bm, bval, bval_width, mld */\n\n gfc.npart_l = init_numline(gfc.numlines_l, gfc.bo_l, gfc.bm_l, bval,\n bval_width, gfc.mld_l, gfc.PSY.bo_l_weight, sfreq,\n Encoder.BLKSIZE, gfc.scalefac_band.l, Encoder.BLKSIZE\n / (2.0 * 576), Encoder.SBMAX_l);\n assert(gfc.npart_l < Encoder.CBANDS);\n /* compute the spreading function */\n for (i = 0; i < gfc.npart_l; i++) {\n var snr = snr_l_a;\n if (bval[i] >= bvl_a) {\n snr = snr_l_b * (bval[i] - bvl_a) / (bvl_b - bvl_a) + snr_l_a\n * (bvl_b - bval[i]) / (bvl_b - bvl_a);\n }\n norm[i] = Math.pow(10.0, snr / 10.0);\n if (gfc.numlines_l[i] > 0) {\n gfc.rnumlines_l[i] = 1.0 / gfc.numlines_l[i];\n } else {\n gfc.rnumlines_l[i] = 0;\n }\n }\n gfc.s3_ll = init_s3_values(gfc.s3ind, gfc.npart_l, bval, bval_width,\n norm, useOldS3);\n\n /* compute long block specific values, ATH and MINVAL */\n var j = 0;\n for (i = 0; i < gfc.npart_l; i++) {\n var x;\n\n /* ATH */\n x = Float.MAX_VALUE;\n for (var k = 0; k < gfc.numlines_l[i]; k++, j++) {\n var freq = sfreq * j / (1000.0 * Encoder.BLKSIZE);\n var level;\n /*\n * ATH below 100 Hz constant, not further climbing\n */\n level = this.ATHformula(freq * 1000, gfp) - 20;\n // scale to FFT units; returned value is in dB\n level = Math.pow(10., 0.1 * level);\n // convert from dB . energy\n level *= gfc.numlines_l[i];\n if (x > level)\n x = level;\n }\n gfc.ATH.cb_l[i] = x;\n\n /*\n * MINVAL. For low freq, the strength of the masking is limited by\n * minval this is an ISO MPEG1 thing, dont know if it is really\n * needed\n */\n /*\n * FIXME: it does work to reduce low-freq problems in S53-Wind-Sax\n * and lead-voice samples, but introduces some 3 kbps bit bloat too.\n * TODO: Further refinement of the shape of this hack.\n */\n x = -20 + bval[i] * 20 / 10;\n if (x > 6) {\n x = 100;\n }\n if (x < -15) {\n x = -15;\n }\n x -= 8.;\n gfc.minval_l[i] = (Math.pow(10.0, x / 10.) * gfc.numlines_l[i]);\n }\n\n /************************************************************************\n * do the same things for short blocks\n ************************************************************************/\n gfc.npart_s = init_numline(gfc.numlines_s, gfc.bo_s, gfc.bm_s, bval,\n bval_width, gfc.mld_s, gfc.PSY.bo_s_weight, sfreq,\n Encoder.BLKSIZE_s, gfc.scalefac_band.s, Encoder.BLKSIZE_s\n / (2.0 * 192), Encoder.SBMAX_s);\n assert(gfc.npart_s < Encoder.CBANDS);\n\n /* SNR formula. short block is normalized by SNR. is it still right ? */\n j = 0;\n for (i = 0; i < gfc.npart_s; i++) {\n var x;\n var snr = snr_s_a;\n if (bval[i] >= bvl_a) {\n snr = snr_s_b * (bval[i] - bvl_a) / (bvl_b - bvl_a) + snr_s_a\n * (bvl_b - bval[i]) / (bvl_b - bvl_a);\n }\n norm[i] = Math.pow(10.0, snr / 10.0);\n\n /* ATH */\n x = Float.MAX_VALUE;\n for (var k = 0; k < gfc.numlines_s[i]; k++, j++) {\n var freq = sfreq * j / (1000.0 * Encoder.BLKSIZE_s);\n var level;\n /* freq = Min(.1,freq); */\n /*\n * ATH below 100 Hz constant, not\n * further climbing\n */\n level = this.ATHformula(freq * 1000, gfp) - 20;\n // scale to FFT units; returned value is in dB\n level = Math.pow(10., 0.1 * level);\n // convert from dB . energy\n level *= gfc.numlines_s[i];\n if (x > level)\n x = level;\n }\n gfc.ATH.cb_s[i] = x;\n\n /*\n * MINVAL. For low freq, the strength of the masking is limited by\n * minval this is an ISO MPEG1 thing, dont know if it is really\n * needed\n */\n x = (-7.0 + bval[i] * 7.0 / 12.0);\n if (bval[i] > 12) {\n x *= 1 + Math.log(1 + x) * 3.1;\n }\n if (bval[i] < 12) {\n x *= 1 + Math.log(1 - x) * 2.3;\n }\n if (x < -15) {\n x = -15;\n }\n x -= 8;\n gfc.minval_s[i] = Math.pow(10.0, x / 10)\n * gfc.numlines_s[i];\n }\n\n gfc.s3_ss = init_s3_values(gfc.s3ind_s, gfc.npart_s, bval, bval_width,\n norm, useOldS3);\n\n init_mask_add_max_values();\n fft.init_fft(gfc);\n\n /* setup temporal masking */\n gfc.decay = Math.exp(-1.0 * LOG10\n / (temporalmask_sustain_sec * sfreq / 192.0));\n\n {\n var msfix;\n msfix = NS_MSFIX;\n if ((gfp.exp_nspsytune & 2) != 0)\n msfix = 1.0;\n if (Math.abs(gfp.msfix) > 0.0)\n msfix = gfp.msfix;\n gfp.msfix = msfix;\n\n /*\n * spread only from npart_l bands. Normally, we use the spreading\n * function to convolve from npart_l down to npart_l bands\n */\n for (var b = 0; b < gfc.npart_l; b++)\n if (gfc.s3ind[b][1] > gfc.npart_l - 1)\n gfc.s3ind[b][1] = gfc.npart_l - 1;\n }\n\n /*\n * prepare for ATH auto adjustment: we want to decrease the ATH by 12 dB\n * per second\n */\n var frame_duration = (576. * gfc.mode_gr / sfreq);\n gfc.ATH.decay = Math.pow(10., -12. / 10. * frame_duration);\n gfc.ATH.adjust = 0.01;\n /* minimum, for leading low loudness */\n gfc.ATH.adjustLimit = 1.0;\n /* on lead, allow adjust up to maximum */\n\n assert(gfc.bo_l[Encoder.SBMAX_l - 1] <= gfc.npart_l);\n assert(gfc.bo_s[Encoder.SBMAX_s - 1] <= gfc.npart_s);\n\n if (gfp.ATHtype != -1) {\n /* compute equal loudness weights (eql_w) */\n var freq;\n var freq_inc = gfp.out_samplerate\n / (Encoder.BLKSIZE);\n var eql_balance = 0.0;\n freq = 0.0;\n for (i = 0; i < Encoder.BLKSIZE / 2; ++i) {\n /* convert ATH dB to relative power (not dB) */\n /* to determine eql_w */\n freq += freq_inc;\n gfc.ATH.eql_w[i] = 1. / Math.pow(10, this.ATHformula(freq, gfp) / 10);\n eql_balance += gfc.ATH.eql_w[i];\n }\n eql_balance = 1.0 / eql_balance;\n for (i = Encoder.BLKSIZE / 2; --i >= 0;) { /* scale weights */\n gfc.ATH.eql_w[i] *= eql_balance;\n }\n }\n {\n for (var b = j = 0; b < gfc.npart_s; ++b) {\n for (i = 0; i < gfc.numlines_s[b]; ++i) {\n ++j;\n }\n }\n assert(j == 129);\n for (var b = j = 0; b < gfc.npart_l; ++b) {\n for (i = 0; i < gfc.numlines_l[b]; ++i) {\n ++j;\n }\n }\n assert(j == 513);\n }\n j = 0;\n for (i = 0; i < gfc.npart_l; i++) {\n var freq = sfreq * (j + gfc.numlines_l[i] / 2) / (1.0 * Encoder.BLKSIZE);\n gfc.mld_cb_l[i] = stereo_demask(freq);\n j += gfc.numlines_l[i];\n }\n for (; i < Encoder.CBANDS; ++i) {\n gfc.mld_cb_l[i] = 1;\n }\n j = 0;\n for (i = 0; i < gfc.npart_s; i++) {\n var freq = sfreq * (j + gfc.numlines_s[i] / 2) / (1.0 * Encoder.BLKSIZE_s);\n gfc.mld_cb_s[i] = stereo_demask(freq);\n j += gfc.numlines_s[i];\n }\n for (; i < Encoder.CBANDS; ++i) {\n gfc.mld_cb_s[i] = 1;\n }\n return 0;\n }\n\n /**\n * Those ATH formulas are returning their minimum value for input = -1\n */\n function ATHformula_GB(f, value) {\n /**\n *
\n         *  from Painter & Spanias\n         *           modified by Gabriel Bouvigne to better fit the reality\n         *           ath =    3.640 * pow(f,-0.8)\n         *           - 6.800 * exp(-0.6*pow(f-3.4,2.0))\n         *           + 6.000 * exp(-0.15*pow(f-8.7,2.0))\n         *           + 0.6* 0.001 * pow(f,4.0);\n         *\n         *\n         *           In the past LAME was using the Painter &Spanias formula.\n         *           But we had some recurrent problems with HF content.\n         *           We measured real ATH values, and found the older formula\n         *           to be inaccurate in the higher part. So we made this new\n         *           formula and this solved most of HF problematic test cases.\n         *           The tradeoff is that in VBR mode it increases a lot the\n         *           bitrate.\n         * 
\n */\n\n /*\n * This curve can be adjusted according to the VBR scale: it adjusts\n * from something close to Painter & Spanias on V9 up to Bouvigne's\n * formula for V0. This way the VBR bitrate is more balanced according\n * to the -V value.\n */\n\n // the following Hack allows to ask for the lowest value\n if (f < -.3)\n f = 3410;\n\n // convert to khz\n f /= 1000;\n f = Math.max(0.1, f);\n var ath = 3.640 * Math.pow(f, -0.8) - 6.800\n * Math.exp(-0.6 * Math.pow(f - 3.4, 2.0)) + 6.000\n * Math.exp(-0.15 * Math.pow(f - 8.7, 2.0))\n + (0.6 + 0.04 * value) * 0.001 * Math.pow(f, 4.0);\n return ath;\n }\n\n this.ATHformula = function (f, gfp) {\n var ath;\n switch (gfp.ATHtype) {\n case 0:\n ath = ATHformula_GB(f, 9);\n break;\n case 1:\n // over sensitive, should probably be removed\n ath = ATHformula_GB(f, -1);\n break;\n case 2:\n ath = ATHformula_GB(f, 0);\n break;\n case 3:\n // modification of GB formula by Roel\n ath = ATHformula_GB(f, 1) + 6;\n break;\n case 4:\n ath = ATHformula_GB(f, gfp.ATHcurve);\n break;\n default:\n ath = ATHformula_GB(f, 0);\n break;\n }\n return ath;\n }\n\n}\n\nmodule.exports = PsyModel;\n","//package mp3;\n\n/* MPEG modes */\nfunction MPEGMode(ordinal) {\n var _ordinal = ordinal;\n this.ordinal = function () {\n return _ordinal;\n }\n}\n\nMPEGMode.STEREO = new MPEGMode(0);\nMPEGMode.JOINT_STEREO = new MPEGMode(1);\nMPEGMode.DUAL_CHANNEL = new MPEGMode(2);\nMPEGMode.MONO = new MPEGMode(3);\nMPEGMode.NOT_SET = new MPEGMode(4);\n\nmodule.exports = MPEGMode;\n","var MPEGMode = require('./MPEGMode.js');\n\nfunction LameGlobalFlags() {\n\n this.class_id = 0;\n\n /* input description */\n\n /**\n * number of samples. default=-1\n */\n this.num_samples = 0;\n /**\n * input number of channels. default=2\n */\n this.num_channels = 0;\n /**\n * input_samp_rate in Hz. default=44.1 kHz\n */\n this.in_samplerate = 0;\n /**\n * output_samp_rate. default: LAME picks best value at least not used for\n * MP3 decoding: Remember 44.1 kHz MP3s and AC97\n */\n this.out_samplerate = 0;\n /**\n * scale input by this amount before encoding at least not used for MP3\n * decoding\n */\n this.scale = 0.;\n /**\n * scale input of channel 0 (left) by this amount before encoding\n */\n this.scale_left = 0.;\n /**\n * scale input of channel 1 (right) by this amount before encoding\n */\n this.scale_right = 0.;\n\n /* general control params */\n /**\n * collect data for a MP3 frame analyzer?\n */\n this.analysis = false;\n /**\n * add Xing VBR tag?\n */\n this.bWriteVbrTag = false;\n\n /**\n * use lame/mpglib to convert mp3 to wav\n */\n this.decode_only = false;\n /**\n * quality setting 0=best, 9=worst default=5\n */\n this.quality = 0;\n /**\n * see enum default = LAME picks best value\n */\n this.mode = MPEGMode.STEREO;\n /**\n * force M/S mode. requires mode=1\n */\n this.force_ms = false;\n /**\n * use free format? default=0\n */\n this.free_format = false;\n /**\n * find the RG value? default=0\n */\n this.findReplayGain = false;\n /**\n * decode on the fly? default=0\n */\n this.decode_on_the_fly = false;\n /**\n * 1 (default) writes ID3 tags, 0 not\n */\n this.write_id3tag_automatic = false;\n\n /*\n * set either brate>0 or compression_ratio>0, LAME will compute the value of\n * the variable not set. Default is compression_ratio = 11.025\n */\n /**\n * bitrate\n */\n this.brate = 0;\n /**\n * sizeof(wav file)/sizeof(mp3 file)\n */\n this.compression_ratio = 0.;\n\n /* frame params */\n /**\n * mark as copyright. default=0\n */\n this.copyright = 0;\n /**\n * mark as original. default=1\n */\n this.original = 0;\n /**\n * the MP3 'private extension' bit. Meaningless\n */\n this.extension = 0;\n /**\n * Input PCM is emphased PCM (for instance from one of the rarely emphased\n * CDs), it is STRONGLY not recommended to use this, because psycho does not\n * take it into account, and last but not least many decoders don't care\n * about these bits\n */\n this.emphasis = 0;\n /**\n * use 2 bytes per frame for a CRC checksum. default=0\n */\n this.error_protection = 0;\n /**\n * enforce ISO spec as much as possible\n */\n this.strict_ISO = false;\n\n /**\n * use bit reservoir?\n */\n this.disable_reservoir = false;\n\n /* quantization/noise shaping */\n this.quant_comp = 0;\n this.quant_comp_short = 0;\n this.experimentalY = false;\n this.experimentalZ = 0;\n this.exp_nspsytune = 0;\n\n this.preset = 0;\n\n /* VBR control */\n this.VBR = null;\n /**\n * Range [0,...,1[\n */\n this.VBR_q_frac = 0.;\n /**\n * Range [0,...,9]\n */\n this.VBR_q = 0;\n this.VBR_mean_bitrate_kbps = 0;\n this.VBR_min_bitrate_kbps = 0;\n this.VBR_max_bitrate_kbps = 0;\n /**\n * strictly enforce VBR_min_bitrate normaly, it will be violated for analog\n * silence\n */\n this.VBR_hard_min = 0;\n\n /* resampling and filtering */\n\n /**\n * freq in Hz. 0=lame choses. -1=no filter\n */\n this.lowpassfreq = 0;\n /**\n * freq in Hz. 0=lame choses. -1=no filter\n */\n this.highpassfreq = 0;\n /**\n * freq width of filter, in Hz (default=15%)\n */\n this.lowpasswidth = 0;\n /**\n * freq width of filter, in Hz (default=15%)\n */\n this.highpasswidth = 0;\n\n /*\n * psycho acoustics and other arguments which you should not change unless\n * you know what you are doing\n */\n\n this.maskingadjust = 0.;\n this.maskingadjust_short = 0.;\n /**\n * only use ATH\n */\n this.ATHonly = false;\n /**\n * only use ATH for short blocks\n */\n this.ATHshort = false;\n /**\n * disable ATH\n */\n this.noATH = false;\n /**\n * select ATH formula\n */\n this.ATHtype = 0;\n /**\n * change ATH formula 4 shape\n */\n this.ATHcurve = 0.;\n /**\n * lower ATH by this many db\n */\n this.ATHlower = 0.;\n /**\n * select ATH auto-adjust scheme\n */\n this.athaa_type = 0;\n /**\n * select ATH auto-adjust loudness calc\n */\n this.athaa_loudapprox = 0;\n /**\n * dB, tune active region of auto-level\n */\n this.athaa_sensitivity = 0.;\n this.short_blocks = null;\n /**\n * use temporal masking effect\n */\n this.useTemporal = false;\n this.interChRatio = 0.;\n /**\n * Naoki's adjustment of Mid/Side maskings\n */\n this.msfix = 0.;\n\n /**\n * 0 off, 1 on\n */\n this.tune = false;\n /**\n * used to pass values for debugging and stuff\n */\n this.tune_value_a = 0.;\n\n /************************************************************************/\n /* internal variables, do not set... */\n /* provided because they may be of use to calling application */\n /************************************************************************/\n\n /**\n * 0=MPEG-2/2.5 1=MPEG-1\n */\n this.version = 0;\n this.encoder_delay = 0;\n /**\n * number of samples of padding appended to input\n */\n this.encoder_padding = 0;\n this.framesize = 0;\n /**\n * number of frames encoded\n */\n this.frameNum = 0;\n /**\n * is this struct owned by calling program or lame?\n */\n this.lame_allocated_gfp = 0;\n /**************************************************************************/\n /* more internal variables are stored in this structure: */\n /**************************************************************************/\n this.internal_flags = null;\n}\n\nmodule.exports = LameGlobalFlags;\n","var Encoder = require('./Encoder.js');\n\nvar L3Side = {};\n\n\n\t/**\n\t * max scalefactor band, max(SBMAX_l, SBMAX_s*3, (SBMAX_s-3)*3+8)\n\t */\nL3Side.SFBMAX = (Encoder.SBMAX_s * 3);\n\nmodule.exports = L3Side;\n","//package mp3;\nvar common = require('./common.js');\nvar System = common.System;\nvar VbrMode = common.VbrMode;\nvar Float = common.Float;\nvar ShortBlock = common.ShortBlock;\nvar Util = common.Util;\nvar Arrays = common.Arrays;\nvar new_array_n = common.new_array_n;\nvar new_byte = common.new_byte;\nvar new_double = common.new_double;\nvar new_float = common.new_float;\nvar new_float_n = common.new_float_n;\nvar new_int = common.new_int;\nvar new_int_n = common.new_int_n;\nvar assert = common.assert;\n\nvar L3Side = require('./L3Side.js');\n\nfunction GrInfo() {\n //float xr[] = new float[576];\n this.xr = new_float(576);\n //int l3_enc[] = new int[576];\n this.l3_enc = new_int(576);\n //int scalefac[] = new int[L3Side.SFBMAX];\n this.scalefac = new_int(L3Side.SFBMAX);\n this.xrpow_max = 0.;\n\n this.part2_3_length = 0;\n this.big_values = 0;\n this.count1 = 0;\n this.global_gain = 0;\n this.scalefac_compress = 0;\n this.block_type = 0;\n this.mixed_block_flag = 0;\n this.table_select = new_int(3);\n this.subblock_gain = new_int(3 + 1);\n this.region0_count = 0;\n this.region1_count = 0;\n this.preflag = 0;\n this.scalefac_scale = 0;\n this.count1table_select = 0;\n\n this.part2_length = 0;\n this.sfb_lmax = 0;\n this.sfb_smin = 0;\n this.psy_lmax = 0;\n this.sfbmax = 0;\n this.psymax = 0;\n this.sfbdivide = 0;\n this.width = new_int(L3Side.SFBMAX);\n this.window = new_int(L3Side.SFBMAX);\n this.count1bits = 0;\n /**\n * added for LSF\n */\n this.sfb_partition_table = null;\n this.slen = new_int(4);\n\n this.max_nonzero_coeff = 0;\n\n var self = this;\n function clone_int(array) {\n return new Int32Array(array);\n }\n function clone_float(array) {\n return new Float32Array(array);\n }\n this.assign = function (other) {\n self.xr = clone_float(other.xr); //.slice(0); //clone();\n self.l3_enc = clone_int(other.l3_enc); //.slice(0); //clone();\n self.scalefac = clone_int(other.scalefac);//.slice(0); //clone();\n self.xrpow_max = other.xrpow_max;\n\n self.part2_3_length = other.part2_3_length;\n self.big_values = other.big_values;\n self.count1 = other.count1;\n self.global_gain = other.global_gain;\n self.scalefac_compress = other.scalefac_compress;\n self.block_type = other.block_type;\n self.mixed_block_flag = other.mixed_block_flag;\n self.table_select = clone_int(other.table_select);//.slice(0); //clone();\n self.subblock_gain = clone_int(other.subblock_gain); //.slice(0); //.clone();\n self.region0_count = other.region0_count;\n self.region1_count = other.region1_count;\n self.preflag = other.preflag;\n self.scalefac_scale = other.scalefac_scale;\n self.count1table_select = other.count1table_select;\n\n self.part2_length = other.part2_length;\n self.sfb_lmax = other.sfb_lmax;\n self.sfb_smin = other.sfb_smin;\n self.psy_lmax = other.psy_lmax;\n self.sfbmax = other.sfbmax;\n self.psymax = other.psymax;\n self.sfbdivide = other.sfbdivide;\n self.width = clone_int(other.width); //.slice(0); //.clone();\n self.window = clone_int(other.window); //.slice(0); //.clone();\n self.count1bits = other.count1bits;\n\n self.sfb_partition_table = other.sfb_partition_table.slice(0); //.clone();\n self.slen = clone_int(other.slen); //.slice(0); //.clone();\n self.max_nonzero_coeff = other.max_nonzero_coeff;\n }\n}\n\nmodule.exports = GrInfo;\n","var common = require('./common.js');\nvar System = common.System;\nvar VbrMode = common.VbrMode;\nvar Float = common.Float;\nvar ShortBlock = common.ShortBlock;\nvar Util = common.Util;\nvar Arrays = common.Arrays;\nvar new_array_n = common.new_array_n;\nvar new_byte = common.new_byte;\nvar new_double = common.new_double;\nvar new_float = common.new_float;\nvar new_float_n = common.new_float_n;\nvar new_int = common.new_int;\nvar new_int_n = common.new_int_n;\nvar assert = common.assert;\n\nvar GrInfo = require('./GrInfo.js');\n\nfunction IIISideInfo() {\n this.tt = [[null, null], [null, null]];\n this.main_data_begin = 0;\n this.private_bits = 0;\n this.resvDrain_pre = 0;\n this.resvDrain_post = 0;\n this.scfsi = [new_int(4), new_int(4)];\n\n for (var gr = 0; gr < 2; gr++) {\n for (var ch = 0; ch < 2; ch++) {\n this.tt[gr][ch] = new GrInfo();\n }\n }\n}\n\nmodule.exports = IIISideInfo;\n","//package mp3;\n\n/**\n * Layer III side information.\n *\n * @author Ken\n *\n */\n\nvar common = require('./common.js');\nvar System = common.System;\nvar VbrMode = common.VbrMode;\nvar Float = common.Float;\nvar ShortBlock = common.ShortBlock;\nvar Util = common.Util;\nvar Arrays = common.Arrays;\nvar new_array_n = common.new_array_n;\nvar new_byte = common.new_byte;\nvar new_double = common.new_double;\nvar new_float = common.new_float;\nvar new_float_n = common.new_float_n;\nvar new_int = common.new_int;\nvar new_int_n = common.new_int_n;\nvar assert = common.assert;\n\nvar Encoder = require('./Encoder.js');\n\nfunction ScaleFac(arrL, arrS, arr21, arr12) {\n\n this.l = new_int(1 + Encoder.SBMAX_l);\n this.s = new_int(1 + Encoder.SBMAX_s);\n this.psfb21 = new_int(1 + Encoder.PSFB21);\n this.psfb12 = new_int(1 + Encoder.PSFB12);\n var l = this.l;\n var s = this.s;\n\n if (arguments.length == 4) {\n //public ScaleFac(final int[] arrL, final int[] arrS, final int[] arr21,\n // final int[] arr12) {\n this.arrL = arguments[0];\n this.arrS = arguments[1];\n this.arr21 = arguments[2];\n this.arr12 = arguments[3];\n\n System.arraycopy(this.arrL, 0, l, 0, Math.min(this.arrL.length, this.l.length));\n System.arraycopy(this.arrS, 0, s, 0, Math.min(this.arrS.length, this.s.length));\n System.arraycopy(this.arr21, 0, this.psfb21, 0, Math.min(this.arr21.length, this.psfb21.length));\n System.arraycopy(this.arr12, 0, this.psfb12, 0, Math.min(this.arr12.length, this.psfb12.length));\n }\n}\n\nmodule.exports = ScaleFac;\n","var common = require('./common.js');\nvar System = common.System;\nvar VbrMode = common.VbrMode;\nvar Float = common.Float;\nvar ShortBlock = common.ShortBlock;\nvar Util = common.Util;\nvar Arrays = common.Arrays;\nvar new_array_n = common.new_array_n;\nvar new_byte = common.new_byte;\nvar new_double = common.new_double;\nvar new_float = common.new_float;\nvar new_float_n = common.new_float_n;\nvar new_int = common.new_int;\nvar new_int_n = common.new_int_n;\nvar assert = common.assert;\n\nvar Encoder = require('./Encoder.js');\n\n//package mp3;\n\n/**\n * Variables used for --nspsytune\n *\n * @author Ken\n *\n */\nfunction NsPsy() {\n this.last_en_subshort = new_float_n([4, 9]);\n this.lastAttacks = new_int(4);\n this.pefirbuf = new_float(19);\n this.longfact = new_float(Encoder.SBMAX_l);\n this.shortfact = new_float(Encoder.SBMAX_s);\n\n /**\n * short block tuning\n */\n this.attackthre = 0.;\n this.attackthre_s = 0.;\n}\n\nmodule.exports = NsPsy;\n","//package mp3;\n\nfunction VBRSeekInfo() {\n /**\n * What we have seen so far.\n */\n this.sum = 0;\n /**\n * How many frames we have seen in this chunk.\n */\n this.seen = 0;\n /**\n * How many frames we want to collect into one chunk.\n */\n this.want = 0;\n /**\n * Actual position in our bag.\n */\n this.pos = 0;\n /**\n * Size of our bag.\n */\n this.size = 0;\n /**\n * Pointer to our bag.\n */\n this.bag = null;\n this.nVbrNumFrames = 0;\n this.nBytesWritten = 0;\n /* VBR tag data */\n this.TotalFrameSize = 0;\n}\n\nmodule.exports = VBRSeekInfo;\n","var common = require('./common.js');\nvar System = common.System;\nvar VbrMode = common.VbrMode;\nvar Float = common.Float;\nvar ShortBlock = common.ShortBlock;\nvar Util = common.Util;\nvar Arrays = common.Arrays;\nvar new_array_n = common.new_array_n;\nvar new_byte = common.new_byte;\nvar new_double = common.new_double;\nvar new_float = common.new_float;\nvar new_float_n = common.new_float_n;\nvar new_int = common.new_int;\nvar new_int_n = common.new_int_n;\nvar assert = common.assert;\n\nvar IIISideInfo = require('./IIISideInfo.js');\nvar ScaleFac = require('./ScaleFac.js');\nvar NsPsy = require('./NsPsy.js');\nvar VBRSeekInfo = require('./VBRSeekInfo.js');\nvar III_psy_xmin = require('./III_psy_xmin.js');\nvar Encoder = require('./Encoder.js');\nvar L3Side = require('./L3Side.js');\n\n\nLameInternalFlags.MFSIZE = (3 * 1152 + Encoder.ENCDELAY - Encoder.MDCTDELAY);\nLameInternalFlags.MAX_HEADER_BUF = 256;\nLameInternalFlags.MAX_BITS_PER_CHANNEL = 4095;\nLameInternalFlags.MAX_BITS_PER_GRANULE = 7680;\nLameInternalFlags.BPC = 320;\n\nfunction LameInternalFlags() {\n var MAX_HEADER_LEN = 40;\n\n\n /********************************************************************\n * internal variables NOT set by calling program, and should not be *\n * modified by the calling program *\n ********************************************************************/\n\n /**\n * Some remarks to the Class_ID field: The Class ID is an Identifier for a\n * pointer to this struct. It is very unlikely that a pointer to\n * lame_global_flags has the same 32 bits in it's structure (large and other\n * special properties, for instance prime).\n *\n * To test that the structure is right and initialized, use: if ( gfc .\n * Class_ID == LAME_ID ) ... Other remark: If you set a flag to 0 for uninit\n * data and 1 for init data, the right test should be \"if (flag == 1)\" and\n * NOT \"if (flag)\". Unintended modification of this element will be\n * otherwise misinterpreted as an init.\n */\n this.Class_ID = 0;\n\n this.lame_encode_frame_init = 0;\n this.iteration_init_init = 0;\n this.fill_buffer_resample_init = 0;\n\n //public float mfbuf[][] = new float[2][MFSIZE];\n this.mfbuf = new_float_n([2, LameInternalFlags.MFSIZE]);\n\n /**\n * granules per frame\n */\n this.mode_gr = 0;\n /**\n * number of channels in the input data stream (PCM or decoded PCM)\n */\n this.channels_in = 0;\n /**\n * number of channels in the output data stream (not used for decoding)\n */\n this.channels_out = 0;\n /**\n * input_samp_rate/output_samp_rate\n */\n //public double resample_ratio;\n this.resample_ratio = 0.;\n\n this.mf_samples_to_encode = 0;\n this.mf_size = 0;\n /**\n * min bitrate index\n */\n this.VBR_min_bitrate = 0;\n /**\n * max bitrate index\n */\n this.VBR_max_bitrate = 0;\n this.bitrate_index = 0;\n this.samplerate_index = 0;\n this.mode_ext = 0;\n\n /* lowpass and highpass filter control */\n /**\n * normalized frequency bounds of passband\n */\n this.lowpass1 = 0.;\n this.lowpass2 = 0.;\n /**\n * normalized frequency bounds of passband\n */\n this.highpass1 = 0.;\n this.highpass2 = 0.;\n\n /**\n * 0 = none 1 = ISO AAC model 2 = allow scalefac_select=1\n */\n this.noise_shaping = 0;\n\n /**\n * 0 = ISO model: amplify all distorted bands
\n * 1 = amplify within 50% of max (on db scale)
\n * 2 = amplify only most distorted band
\n * 3 = method 1 and refine with method 2
\n */\n this.noise_shaping_amp = 0;\n /**\n * 0 = no substep
\n * 1 = use substep shaping at last step(VBR only)
\n * (not implemented yet)
\n * 2 = use substep inside loop
\n * 3 = use substep inside loop and last step
\n */\n this.substep_shaping = 0;\n\n /**\n * 1 = gpsycho. 0 = none\n */\n this.psymodel = 0;\n /**\n * 0 = stop at over=0, all scalefacs amplified or
\n * a scalefac has reached max value
\n * 1 = stop when all scalefacs amplified or a scalefac has reached max value
\n * 2 = stop when all scalefacs amplified\n */\n this.noise_shaping_stop = 0;\n\n /**\n * 0 = no, 1 = yes\n */\n this.subblock_gain = 0;\n /**\n * 0 = no. 1=outside loop 2=inside loop(slow)\n */\n this.use_best_huffman = 0;\n\n /**\n * 0 = stop early after 0 distortion found. 1 = full search\n */\n this.full_outer_loop = 0;\n\n //public IIISideInfo l3_side = new IIISideInfo();\n this.l3_side = new IIISideInfo();\n this.ms_ratio = new_float(2);\n\n /* used for padding */\n /**\n * padding for the current frame?\n */\n this.padding = 0;\n this.frac_SpF = 0;\n this.slot_lag = 0;\n\n /**\n * optional ID3 tags\n */\n //public ID3TagSpec tag_spec;\n this.tag_spec = null;\n this.nMusicCRC = 0;\n\n /* variables used by Quantize */\n //public int OldValue[] = new int[2];\n this.OldValue = new_int(2);\n //public int CurrentStep[] = new int[2];\n this.CurrentStep = new_int(2);\n\n this.masking_lower = 0.;\n //public int bv_scf[] = new int[576];\n this.bv_scf = new_int(576);\n //public int pseudohalf[] = new int[L3Side.SFBMAX];\n this.pseudohalf = new_int(L3Side.SFBMAX);\n\n /**\n * will be set in lame_init_params\n */\n this.sfb21_extra = false;\n\n /* BPC = maximum number of filter convolution windows to precompute */\n //public float[][] inbuf_old = new float[2][];\n this.inbuf_old = new Array(2);\n //public float[][] blackfilt = new float[2 * BPC + 1][];\n this.blackfilt = new Array(2 * LameInternalFlags.BPC + 1);\n //public double itime[] = new double[2];\n this.itime = new_double(2);\n this.sideinfo_len = 0;\n\n /* variables for newmdct.c */\n //public float sb_sample[][][][] = new float[2][2][18][Encoder.SBLIMIT];\n this.sb_sample = new_float_n([2, 2, 18, Encoder.SBLIMIT]);\n this.amp_filter = new_float(32);\n\n /* variables for BitStream */\n\n /**\n *
\n     * mpeg1: buffer=511 bytes  smallest frame: 96-38(sideinfo)=58\n     * max number of frames in reservoir:  8\n     * mpeg2: buffer=255 bytes.  smallest frame: 24-23bytes=1\n     * with VBR, if you are encoding all silence, it is possible to\n     * have 8kbs/24khz frames with 1byte of data each, which means we need\n     * to buffer up to 255 headers!\n     * 
\n */\n /**\n * also, max_header_buf has to be a power of two\n */\n /**\n * max size of header is 38\n */\n\n function Header() {\n this.write_timing = 0;\n this.ptr = 0;\n //public byte buf[] = new byte[MAX_HEADER_LEN];\n this.buf = new_byte(MAX_HEADER_LEN);\n }\n\n this.header = new Array(LameInternalFlags.MAX_HEADER_BUF);\n\n this.h_ptr = 0;\n this.w_ptr = 0;\n this.ancillary_flag = 0;\n\n /* variables for Reservoir */\n /**\n * in bits\n */\n this.ResvSize = 0;\n /**\n * in bits\n */\n this.ResvMax = 0;\n\n //public ScaleFac scalefac_band = new ScaleFac();\n this.scalefac_band = new ScaleFac();\n\n /* daa from PsyModel */\n /* The static variables \"r\", \"phi_sav\", \"new\", \"old\" and \"oldest\" have */\n /* to be remembered for the unpredictability measure. For \"r\" and */\n /* \"phi_sav\", the first index from the left is the channel select and */\n /* the second index is the \"age\" of the data. */\n this.minval_l = new_float(Encoder.CBANDS);\n this.minval_s = new_float(Encoder.CBANDS);\n this.nb_1 = new_float_n([4, Encoder.CBANDS]);\n this.nb_2 = new_float_n([4, Encoder.CBANDS]);\n this.nb_s1 = new_float_n([4, Encoder.CBANDS]);\n this.nb_s2 = new_float_n([4, Encoder.CBANDS]);\n this.s3_ss = null;\n this.s3_ll = null;\n this.decay = 0.;\n\n //public III_psy_xmin[] thm = new III_psy_xmin[4];\n //public III_psy_xmin[] en = new III_psy_xmin[4];\n this.thm = new Array(4);\n this.en = new Array(4);\n\n /**\n * fft and energy calculation\n */\n this.tot_ener = new_float(4);\n\n /* loudness calculation (for adaptive threshold of hearing) */\n /**\n * loudness^2 approx. per granule and channel\n */\n this.loudness_sq = new_float_n([2, 2]);\n /**\n * account for granule delay of L3psycho_anal\n */\n this.loudness_sq_save = new_float(2);\n\n /**\n * Scale Factor Bands\n */\n this.mld_l = new_float(Encoder.SBMAX_l);\n this.mld_s = new_float(Encoder.SBMAX_s);\n this.bm_l = new_int(Encoder.SBMAX_l);\n this.bo_l = new_int(Encoder.SBMAX_l);\n this.bm_s = new_int(Encoder.SBMAX_s);\n this.bo_s = new_int(Encoder.SBMAX_s);\n this.npart_l = 0;\n this.npart_s = 0;\n\n this.s3ind = new_int_n([Encoder.CBANDS, 2]);\n this.s3ind_s = new_int_n([Encoder.CBANDS, 2]);\n\n this.numlines_s = new_int(Encoder.CBANDS);\n this.numlines_l = new_int(Encoder.CBANDS);\n this.rnumlines_l = new_float(Encoder.CBANDS);\n this.mld_cb_l = new_float(Encoder.CBANDS);\n this.mld_cb_s = new_float(Encoder.CBANDS);\n this.numlines_s_num1 = 0;\n this.numlines_l_num1 = 0;\n\n /* ratios */\n this.pe = new_float(4);\n this.ms_ratio_s_old = 0.;\n this.ms_ratio_l_old = 0.;\n this.ms_ener_ratio_old = 0.;\n\n /**\n * block type\n */\n this.blocktype_old = new_int(2);\n\n /**\n * variables used for --nspsytune\n */\n this.nsPsy = new NsPsy();\n\n /**\n * used for Xing VBR header\n */\n this.VBR_seek_table = new VBRSeekInfo();\n\n /**\n * all ATH related stuff\n */\n //public ATH ATH;\n this.ATH = null;\n\n this.PSY = null;\n\n this.nogap_total = 0;\n this.nogap_current = 0;\n\n /* ReplayGain */\n this.decode_on_the_fly = true;\n this.findReplayGain = true;\n this.findPeakSample = true;\n this.PeakSample = 0.;\n this.RadioGain = 0;\n this.AudiophileGain = 0;\n //public ReplayGain rgdata;\n this.rgdata = null;\n\n /**\n * gain change required for preventing clipping\n */\n this.noclipGainChange = 0;\n /**\n * user-specified scale factor required for preventing clipping\n */\n this.noclipScale = 0.;\n\n /* simple statistics */\n this.bitrate_stereoMode_Hist = new_int_n([16, 4 + 1]);\n /**\n * norm/start/short/stop/mixed(short)/sum\n */\n this.bitrate_blockType_Hist = new_int_n([16, 4 + 1 + 1]);\n\n //public PlottingData pinfo;\n //public MPGLib.mpstr_tag hip;\n this.pinfo = null;\n this.hip = null;\n\n this.in_buffer_nsamples = 0;\n //public float[] in_buffer_0;\n //public float[] in_buffer_1;\n this.in_buffer_0 = null;\n this.in_buffer_1 = null;\n\n //public IIterationLoop iteration_loop;\n this.iteration_loop = null;\n\n for (var i = 0; i < this.en.length; i++) {\n this.en[i] = new III_psy_xmin();\n }\n for (var i = 0; i < this.thm.length; i++) {\n this.thm[i] = new III_psy_xmin();\n }\n for (var i = 0; i < this.header.length; i++) {\n this.header[i] = new Header();\n }\n\n}\n\nmodule.exports = LameInternalFlags;\n","var common = require('./common.js');\nvar System = common.System;\nvar VbrMode = common.VbrMode;\nvar Float = common.Float;\nvar ShortBlock = common.ShortBlock;\nvar Util = common.Util;\nvar Arrays = common.Arrays;\nvar new_array_n = common.new_array_n;\nvar new_byte = common.new_byte;\nvar new_double = common.new_double;\nvar new_float = common.new_float;\nvar new_float_n = common.new_float_n;\nvar new_int = common.new_int;\nvar new_int_n = common.new_int_n;\nvar assert = common.assert;\n\nvar Encoder = require('./Encoder.js');\n\n/**\n * ATH related stuff, if something new ATH related has to be added, please plug\n * it here into the ATH.\n */\nfunction ATH() {\n /**\n * Method for the auto adjustment.\n */\n this.useAdjust = 0;\n /**\n * factor for tuning the (sample power) point below which adaptive threshold\n * of hearing adjustment occurs\n */\n this.aaSensitivityP = 0.;\n /**\n * Lowering based on peak volume, 1 = no lowering.\n */\n this.adjust = 0.;\n /**\n * Limit for dynamic ATH adjust.\n */\n this.adjustLimit = 0.;\n /**\n * Determined to lower x dB each second.\n */\n this.decay = 0.;\n /**\n * Lowest ATH value.\n */\n this.floor = 0.;\n /**\n * ATH for sfbs in long blocks.\n */\n this.l = new_float(Encoder.SBMAX_l);\n /**\n * ATH for sfbs in short blocks.\n */\n this.s = new_float(Encoder.SBMAX_s);\n /**\n * ATH for partitioned sfb21 in long blocks.\n */\n this.psfb21 = new_float(Encoder.PSFB21);\n /**\n * ATH for partitioned sfb12 in short blocks.\n */\n this.psfb12 = new_float(Encoder.PSFB12);\n /**\n * ATH for long block convolution bands.\n */\n this.cb_l = new_float(Encoder.CBANDS);\n /**\n * ATH for short block convolution bands.\n */\n this.cb_s = new_float(Encoder.CBANDS);\n /**\n * Equal loudness weights (based on ATH).\n */\n this.eql_w = new_float(Encoder.BLKSIZE / 2);\n}\n\nmodule.exports = ATH;\n","/*\n * ReplayGainAnalysis - analyzes input samples and give the recommended dB change\n * Copyright (C) 2001 David Robinson and Glen Sawyer\n * Improvements and optimizations added by Frank Klemm, and by Marcel Muller \n *\n * This library is free software; you can redistribute it and/or\n * modify it under the terms of the GNU Lesser General Public\n * License as published by the Free Software Foundation; either\n * version 2.1 of the License, or (at your option) any later version.\n *\n * This library is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this library; if not, write to the Free Software\n * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n *\n * concept and filter values by David Robinson (David@Robinson.org)\n * -- blame him if you think the idea is flawed\n * original coding by Glen Sawyer (mp3gain@hotmail.com)\n * -- blame him if you think this runs too slowly, or the coding is otherwise flawed\n *\n * lots of code improvements by Frank Klemm ( http://www.uni-jena.de/~pfk/mpp/ )\n * -- credit him for all the _good_ programming ;)\n *\n *\n * For an explanation of the concepts and the basic algorithms involved, go to:\n * http://www.replaygain.org/\n */\n\n/*\n * Here's the deal. Call\n *\n * InitGainAnalysis ( long samplefreq );\n *\n * to initialize everything. Call\n *\n * AnalyzeSamples ( var Float_t* left_samples,\n * var Float_t* right_samples,\n * size_t num_samples,\n * int num_channels );\n *\n * as many times as you want, with as many or as few samples as you want.\n * If mono, pass the sample buffer in through left_samples, leave\n * right_samples NULL, and make sure num_channels = 1.\n *\n * GetTitleGain()\n *\n * will return the recommended dB level change for all samples analyzed\n * SINCE THE LAST TIME you called GetTitleGain() OR InitGainAnalysis().\n *\n * GetAlbumGain()\n *\n * will return the recommended dB level change for all samples analyzed\n * since InitGainAnalysis() was called and finalized with GetTitleGain().\n *\n * Pseudo-code to process an album:\n *\n * Float_t l_samples [4096];\n * Float_t r_samples [4096];\n * size_t num_samples;\n * unsigned int num_songs;\n * unsigned int i;\n *\n * InitGainAnalysis ( 44100 );\n * for ( i = 1; i <= num_songs; i++ ) {\n * while ( ( num_samples = getSongSamples ( song[i], left_samples, right_samples ) ) > 0 )\n * AnalyzeSamples ( left_samples, right_samples, num_samples, 2 );\n * fprintf (\"Recommended dB change for song %2d: %+6.2 dB\\n\", i, GetTitleGain() );\n * }\n * fprintf (\"Recommended dB change for whole album: %+6.2 dB\\n\", GetAlbumGain() );\n */\n\n/*\n * So here's the main source of potential code confusion:\n *\n * The filters applied to the incoming samples are IIR filters,\n * meaning they rely on up to number of previous samples\n * AND up to number of previous filtered samples.\n *\n * I set up the AnalyzeSamples routine to minimize memory usage and interface\n * complexity. The speed isn't compromised too much (I don't think), but the\n * internal complexity is higher than it should be for such a relatively\n * simple routine.\n *\n * Optimization/clarity suggestions are welcome.\n */\nvar common = require('./common.js');\nvar System = common.System;\nvar VbrMode = common.VbrMode;\nvar Float = common.Float;\nvar ShortBlock = common.ShortBlock;\nvar Util = common.Util;\nvar Arrays = common.Arrays;\nvar new_array_n = common.new_array_n;\nvar new_byte = common.new_byte;\nvar new_double = common.new_double;\nvar new_float = common.new_float;\nvar new_float_n = common.new_float_n;\nvar new_int = common.new_int;\nvar new_int_n = common.new_int_n;\nvar assert = common.assert;\n\n/**\n * Table entries per dB\n */\nGainAnalysis.STEPS_per_dB = 100.;\n/**\n * Table entries for 0...MAX_dB (normal max. values are 70...80 dB)\n */\nGainAnalysis.MAX_dB = 120.;\nGainAnalysis.GAIN_NOT_ENOUGH_SAMPLES = -24601;\nGainAnalysis.GAIN_ANALYSIS_ERROR = 0;\nGainAnalysis.GAIN_ANALYSIS_OK = 1;\nGainAnalysis.INIT_GAIN_ANALYSIS_ERROR = 0;\nGainAnalysis.INIT_GAIN_ANALYSIS_OK = 1;\n\nGainAnalysis.YULE_ORDER = 10;\nGainAnalysis.MAX_ORDER = GainAnalysis.YULE_ORDER;\n\nGainAnalysis.MAX_SAMP_FREQ = 48000;\nGainAnalysis.RMS_WINDOW_TIME_NUMERATOR = 1;\nGainAnalysis.RMS_WINDOW_TIME_DENOMINATOR = 20;\nGainAnalysis.MAX_SAMPLES_PER_WINDOW = ((GainAnalysis.MAX_SAMP_FREQ * GainAnalysis.RMS_WINDOW_TIME_NUMERATOR) / GainAnalysis.RMS_WINDOW_TIME_DENOMINATOR + 1);\n\nfunction GainAnalysis() {\n /**\n * calibration value for 89dB\n */\n var PINK_REF = 64.82;\n\n var YULE_ORDER = GainAnalysis.YULE_ORDER;\n /**\n * percentile which is louder than the proposed level\n */\n var RMS_PERCENTILE = 0.95;\n /**\n * maximum allowed sample frequency [Hz]\n */\n var MAX_SAMP_FREQ = GainAnalysis.MAX_SAMP_FREQ;\n var RMS_WINDOW_TIME_NUMERATOR = GainAnalysis.RMS_WINDOW_TIME_NUMERATOR;\n /**\n * numerator / denominator = time slice size [s]\n */\n var RMS_WINDOW_TIME_DENOMINATOR = GainAnalysis.RMS_WINDOW_TIME_DENOMINATOR;\n /**\n * max. Samples per Time slice\n */\n var MAX_SAMPLES_PER_WINDOW = GainAnalysis.MAX_SAMPLES_PER_WINDOW;\n\n\n var ABYule = [\n [0.03857599435200, -3.84664617118067, -0.02160367184185,\n 7.81501653005538, -0.00123395316851, -11.34170355132042,\n -0.00009291677959, 13.05504219327545, -0.01655260341619,\n -12.28759895145294, 0.02161526843274, 9.48293806319790,\n -0.02074045215285, -5.87257861775999, 0.00594298065125,\n 2.75465861874613, 0.00306428023191, -0.86984376593551,\n 0.00012025322027, 0.13919314567432, 0.00288463683916],\n [0.05418656406430, -3.47845948550071, -0.02911007808948,\n 6.36317777566148, -0.00848709379851, -8.54751527471874,\n -0.00851165645469, 9.47693607801280, -0.00834990904936,\n -8.81498681370155, 0.02245293253339, 6.85401540936998,\n -0.02596338512915, -4.39470996079559, 0.01624864962975,\n 2.19611684890774, -0.00240879051584, -0.75104302451432,\n 0.00674613682247, 0.13149317958808, -0.00187763777362],\n [0.15457299681924, -2.37898834973084, -0.09331049056315,\n 2.84868151156327, -0.06247880153653, -2.64577170229825,\n 0.02163541888798, 2.23697657451713, -0.05588393329856,\n -1.67148153367602, 0.04781476674921, 1.00595954808547,\n 0.00222312597743, -0.45953458054983, 0.03174092540049,\n 0.16378164858596, -0.01390589421898, -0.05032077717131,\n 0.00651420667831, 0.02347897407020, -0.00881362733839],\n [0.30296907319327, -1.61273165137247, -0.22613988682123,\n 1.07977492259970, -0.08587323730772, -0.25656257754070,\n 0.03282930172664, -0.16276719120440, -0.00915702933434,\n -0.22638893773906, -0.02364141202522, 0.39120800788284,\n -0.00584456039913, -0.22138138954925, 0.06276101321749,\n 0.04500235387352, -0.00000828086748, 0.02005851806501,\n 0.00205861885564, 0.00302439095741, -0.02950134983287],\n [0.33642304856132, -1.49858979367799, -0.25572241425570,\n 0.87350271418188, -0.11828570177555, 0.12205022308084,\n 0.11921148675203, -0.80774944671438, -0.07834489609479,\n 0.47854794562326, -0.00469977914380, -0.12453458140019,\n -0.00589500224440, -0.04067510197014, 0.05724228140351,\n 0.08333755284107, 0.00832043980773, -0.04237348025746,\n -0.01635381384540, 0.02977207319925, -0.01760176568150],\n [0.44915256608450, -0.62820619233671, -0.14351757464547,\n 0.29661783706366, -0.22784394429749, -0.37256372942400,\n -0.01419140100551, 0.00213767857124, 0.04078262797139,\n -0.42029820170918, -0.12398163381748, 0.22199650564824,\n 0.04097565135648, 0.00613424350682, 0.10478503600251,\n 0.06747620744683, -0.01863887810927, 0.05784820375801,\n -0.03193428438915, 0.03222754072173, 0.00541907748707],\n [0.56619470757641, -1.04800335126349, -0.75464456939302,\n 0.29156311971249, 0.16242137742230, -0.26806001042947,\n 0.16744243493672, 0.00819999645858, -0.18901604199609,\n 0.45054734505008, 0.30931782841830, -0.33032403314006,\n -0.27562961986224, 0.06739368333110, 0.00647310677246,\n -0.04784254229033, 0.08647503780351, 0.01639907836189,\n -0.03788984554840, 0.01807364323573, -0.00588215443421],\n [0.58100494960553, -0.51035327095184, -0.53174909058578,\n -0.31863563325245, -0.14289799034253, -0.20256413484477,\n 0.17520704835522, 0.14728154134330, 0.02377945217615,\n 0.38952639978999, 0.15558449135573, -0.23313271880868,\n -0.25344790059353, -0.05246019024463, 0.01628462406333,\n -0.02505961724053, 0.06920467763959, 0.02442357316099,\n -0.03721611395801, 0.01818801111503, -0.00749618797172],\n [0.53648789255105, -0.25049871956020, -0.42163034350696,\n -0.43193942311114, -0.00275953611929, -0.03424681017675,\n 0.04267842219415, -0.04678328784242, -0.10214864179676,\n 0.26408300200955, 0.14590772289388, 0.15113130533216,\n -0.02459864859345, -0.17556493366449, -0.11202315195388,\n -0.18823009262115, -0.04060034127000, 0.05477720428674,\n 0.04788665548180, 0.04704409688120, -0.02217936801134]];\n\n var ABButter = [\n [0.98621192462708, -1.97223372919527, -1.97242384925416,\n 0.97261396931306, 0.98621192462708],\n [0.98500175787242, -1.96977855582618, -1.97000351574484,\n 0.97022847566350, 0.98500175787242],\n [0.97938932735214, -1.95835380975398, -1.95877865470428,\n 0.95920349965459, 0.97938932735214],\n [0.97531843204928, -1.95002759149878, -1.95063686409857,\n 0.95124613669835, 0.97531843204928],\n [0.97316523498161, -1.94561023566527, -1.94633046996323,\n 0.94705070426118, 0.97316523498161],\n [0.96454515552826, -1.92783286977036, -1.92909031105652,\n 0.93034775234268, 0.96454515552826],\n [0.96009142950541, -1.91858953033784, -1.92018285901082,\n 0.92177618768381, 0.96009142950541],\n [0.95856916599601, -1.91542108074780, -1.91713833199203,\n 0.91885558323625, 0.95856916599601],\n [0.94597685600279, -1.88903307939452, -1.89195371200558,\n 0.89487434461664, 0.94597685600279]];\n\n\n /**\n * When calling this procedure, make sure that ip[-order] and op[-order]\n * point to real data\n */\n //private void filterYule(final float[] input, int inputPos, float[] output,\n //int outputPos, int nSamples, final float[] kernel) {\n function filterYule(input, inputPos, output, outputPos, nSamples, kernel) {\n\n while ((nSamples--) != 0) {\n /* 1e-10 is a hack to avoid slowdown because of denormals */\n output[outputPos] = 1e-10 + input[inputPos + 0] * kernel[0]\n - output[outputPos - 1] * kernel[1] + input[inputPos - 1]\n * kernel[2] - output[outputPos - 2] * kernel[3]\n + input[inputPos - 2] * kernel[4] - output[outputPos - 3]\n * kernel[5] + input[inputPos - 3] * kernel[6]\n - output[outputPos - 4] * kernel[7] + input[inputPos - 4]\n * kernel[8] - output[outputPos - 5] * kernel[9]\n + input[inputPos - 5] * kernel[10] - output[outputPos - 6]\n * kernel[11] + input[inputPos - 6] * kernel[12]\n - output[outputPos - 7] * kernel[13] + input[inputPos - 7]\n * kernel[14] - output[outputPos - 8] * kernel[15]\n + input[inputPos - 8] * kernel[16] - output[outputPos - 9]\n * kernel[17] + input[inputPos - 9] * kernel[18]\n - output[outputPos - 10] * kernel[19]\n + input[inputPos - 10] * kernel[20];\n ++outputPos;\n ++inputPos;\n }\n }\n\n//private void filterButter(final float[] input, int inputPos,\n// float[] output, int outputPos, int nSamples, final float[] kernel) {\n function filterButter(input, inputPos, output, outputPos, nSamples, kernel) {\n\n while ((nSamples--) != 0) {\n output[outputPos] = input[inputPos + 0] * kernel[0]\n - output[outputPos - 1] * kernel[1] + input[inputPos - 1]\n * kernel[2] - output[outputPos - 2] * kernel[3]\n + input[inputPos - 2] * kernel[4];\n ++outputPos;\n ++inputPos;\n }\n }\n\n /**\n * @return INIT_GAIN_ANALYSIS_OK if successful, INIT_GAIN_ANALYSIS_ERROR if\n * not\n */\n function ResetSampleFrequency(rgData, samplefreq) {\n /* zero out initial values */\n for (var i = 0; i < MAX_ORDER; i++)\n rgData.linprebuf[i] = rgData.lstepbuf[i] = rgData.loutbuf[i] = rgData.rinprebuf[i] = rgData.rstepbuf[i] = rgData.routbuf[i] = 0.;\n\n switch (0 | (samplefreq)) {\n case 48000:\n rgData.reqindex = 0;\n break;\n case 44100:\n rgData.reqindex = 1;\n break;\n case 32000:\n rgData.reqindex = 2;\n break;\n case 24000:\n rgData.reqindex = 3;\n break;\n case 22050:\n rgData.reqindex = 4;\n break;\n case 16000:\n rgData.reqindex = 5;\n break;\n case 12000:\n rgData.reqindex = 6;\n break;\n case 11025:\n rgData.reqindex = 7;\n break;\n case 8000:\n rgData.reqindex = 8;\n break;\n default:\n return INIT_GAIN_ANALYSIS_ERROR;\n }\n\n rgData.sampleWindow = 0 | ((samplefreq * RMS_WINDOW_TIME_NUMERATOR\n + RMS_WINDOW_TIME_DENOMINATOR - 1) / RMS_WINDOW_TIME_DENOMINATOR);\n\n rgData.lsum = 0.;\n rgData.rsum = 0.;\n rgData.totsamp = 0;\n\n Arrays.ill(rgData.A, 0);\n\n return INIT_GAIN_ANALYSIS_OK;\n }\n\n this.InitGainAnalysis = function (rgData, samplefreq) {\n if (ResetSampleFrequency(rgData, samplefreq) != INIT_GAIN_ANALYSIS_OK) {\n return INIT_GAIN_ANALYSIS_ERROR;\n }\n\n rgData.linpre = MAX_ORDER;\n rgData.rinpre = MAX_ORDER;\n rgData.lstep = MAX_ORDER;\n rgData.rstep = MAX_ORDER;\n rgData.lout = MAX_ORDER;\n rgData.rout = MAX_ORDER;\n\n Arrays.fill(rgData.B, 0);\n\n return INIT_GAIN_ANALYSIS_OK;\n };\n\n /**\n * square\n */\n function fsqr(d) {\n return d * d;\n }\n\n this.AnalyzeSamples = function (rgData, left_samples, left_samplesPos, right_samples, right_samplesPos, num_samples,\n num_channels) {\n var curleft;\n var curleftBase;\n var curright;\n var currightBase;\n var batchsamples;\n var cursamples;\n var cursamplepos;\n\n if (num_samples == 0)\n return GAIN_ANALYSIS_OK;\n\n cursamplepos = 0;\n batchsamples = num_samples;\n\n switch (num_channels) {\n case 1:\n right_samples = left_samples;\n right_samplesPos = left_samplesPos;\n break;\n case 2:\n break;\n default:\n return GAIN_ANALYSIS_ERROR;\n }\n\n if (num_samples < MAX_ORDER) {\n System.arraycopy(left_samples, left_samplesPos, rgData.linprebuf,\n MAX_ORDER, num_samples);\n System.arraycopy(right_samples, right_samplesPos, rgData.rinprebuf,\n MAX_ORDER, num_samples);\n } else {\n System.arraycopy(left_samples, left_samplesPos, rgData.linprebuf,\n MAX_ORDER, MAX_ORDER);\n System.arraycopy(right_samples, right_samplesPos, rgData.rinprebuf,\n MAX_ORDER, MAX_ORDER);\n }\n\n while (batchsamples > 0) {\n cursamples = batchsamples > rgData.sampleWindow - rgData.totsamp ? rgData.sampleWindow\n - rgData.totsamp\n : batchsamples;\n if (cursamplepos < MAX_ORDER) {\n curleft = rgData.linpre + cursamplepos;\n curleftBase = rgData.linprebuf;\n curright = rgData.rinpre + cursamplepos;\n currightBase = rgData.rinprebuf;\n if (cursamples > MAX_ORDER - cursamplepos)\n cursamples = MAX_ORDER - cursamplepos;\n } else {\n curleft = left_samplesPos + cursamplepos;\n curleftBase = left_samples;\n curright = right_samplesPos + cursamplepos;\n currightBase = right_samples;\n }\n\n filterYule(curleftBase, curleft, rgData.lstepbuf, rgData.lstep\n + rgData.totsamp, cursamples, ABYule[rgData.reqindex]);\n filterYule(currightBase, curright, rgData.rstepbuf, rgData.rstep\n + rgData.totsamp, cursamples, ABYule[rgData.reqindex]);\n\n filterButter(rgData.lstepbuf, rgData.lstep + rgData.totsamp,\n rgData.loutbuf, rgData.lout + rgData.totsamp, cursamples,\n ABButter[rgData.reqindex]);\n filterButter(rgData.rstepbuf, rgData.rstep + rgData.totsamp,\n rgData.routbuf, rgData.rout + rgData.totsamp, cursamples,\n ABButter[rgData.reqindex]);\n\n curleft = rgData.lout + rgData.totsamp;\n /* Get the squared values */\n curleftBase = rgData.loutbuf;\n curright = rgData.rout + rgData.totsamp;\n currightBase = rgData.routbuf;\n\n var i = cursamples % 8;\n while ((i--) != 0) {\n rgData.lsum += fsqr(curleftBase[curleft++]);\n rgData.rsum += fsqr(currightBase[curright++]);\n }\n i = cursamples / 8;\n while ((i--) != 0) {\n rgData.lsum += fsqr(curleftBase[curleft + 0])\n + fsqr(curleftBase[curleft + 1])\n + fsqr(curleftBase[curleft + 2])\n + fsqr(curleftBase[curleft + 3])\n + fsqr(curleftBase[curleft + 4])\n + fsqr(curleftBase[curleft + 5])\n + fsqr(curleftBase[curleft + 6])\n + fsqr(curleftBase[curleft + 7]);\n curleft += 8;\n rgData.rsum += fsqr(currightBase[curright + 0])\n + fsqr(currightBase[curright + 1])\n + fsqr(currightBase[curright + 2])\n + fsqr(currightBase[curright + 3])\n + fsqr(currightBase[curright + 4])\n + fsqr(currightBase[curright + 5])\n + fsqr(currightBase[curright + 6])\n + fsqr(currightBase[curright + 7]);\n curright += 8;\n }\n\n batchsamples -= cursamples;\n cursamplepos += cursamples;\n rgData.totsamp += cursamples;\n if (rgData.totsamp == rgData.sampleWindow) {\n /* Get the Root Mean Square (RMS) for this set of samples */\n var val = GainAnalysis.STEPS_per_dB\n * 10.\n * Math.log10((rgData.lsum + rgData.rsum)\n / rgData.totsamp * 0.5 + 1.e-37);\n var ival = (val <= 0) ? 0 : 0 | val;\n if (ival >= rgData.A.length)\n ival = rgData.A.length - 1;\n rgData.A[ival]++;\n rgData.lsum = rgData.rsum = 0.;\n\n System.arraycopy(rgData.loutbuf, rgData.totsamp,\n rgData.loutbuf, 0, MAX_ORDER);\n System.arraycopy(rgData.routbuf, rgData.totsamp,\n rgData.routbuf, 0, MAX_ORDER);\n System.arraycopy(rgData.lstepbuf, rgData.totsamp,\n rgData.lstepbuf, 0, MAX_ORDER);\n System.arraycopy(rgData.rstepbuf, rgData.totsamp,\n rgData.rstepbuf, 0, MAX_ORDER);\n rgData.totsamp = 0;\n }\n if (rgData.totsamp > rgData.sampleWindow) {\n /*\n * somehow I really screwed up: Error in programming! Contact\n * author about totsamp > sampleWindow\n */\n return GAIN_ANALYSIS_ERROR;\n }\n }\n if (num_samples < MAX_ORDER) {\n System.arraycopy(rgData.linprebuf, num_samples, rgData.linprebuf,\n 0, MAX_ORDER - num_samples);\n System.arraycopy(rgData.rinprebuf, num_samples, rgData.rinprebuf,\n 0, MAX_ORDER - num_samples);\n System.arraycopy(left_samples, left_samplesPos, rgData.linprebuf,\n MAX_ORDER - num_samples, num_samples);\n System.arraycopy(right_samples, right_samplesPos, rgData.rinprebuf,\n MAX_ORDER - num_samples, num_samples);\n } else {\n System.arraycopy(left_samples, left_samplesPos + num_samples\n - MAX_ORDER, rgData.linprebuf, 0, MAX_ORDER);\n System.arraycopy(right_samples, right_samplesPos + num_samples\n - MAX_ORDER, rgData.rinprebuf, 0, MAX_ORDER);\n }\n\n return GAIN_ANALYSIS_OK;\n };\n\n function analyzeResult(Array, len) {\n var i;\n\n var elems = 0;\n for (i = 0; i < len; i++)\n elems += Array[i];\n if (elems == 0)\n return GAIN_NOT_ENOUGH_SAMPLES;\n\n var upper = 0 | Math.ceil(elems * (1. - RMS_PERCENTILE));\n for (i = len; i-- > 0;) {\n if ((upper -= Array[i]) <= 0)\n break;\n }\n\n //return (float) ((float) PINK_REF - (float) i / (float) STEPS_per_dB);\n return (PINK_REF - i / GainAnalysis.STEPS_per_dB);\n }\n\n this.GetTitleGain = function (rgData) {\n var retval = analyzeResult(rgData.A, rgData.A.length);\n\n for (var i = 0; i < rgData.A.length; i++) {\n rgData.B[i] += rgData.A[i];\n rgData.A[i] = 0;\n }\n\n for (var i = 0; i < MAX_ORDER; i++)\n rgData.linprebuf[i] = rgData.lstepbuf[i] = rgData.loutbuf[i] = rgData.rinprebuf[i] = rgData.rstepbuf[i] = rgData.routbuf[i] = 0.;\n\n rgData.totsamp = 0;\n rgData.lsum = rgData.rsum = 0.;\n return retval;\n }\n\n}\n\nmodule.exports = GainAnalysis;\n","var common = require('./common.js');\nvar System = common.System;\nvar VbrMode = common.VbrMode;\nvar Float = common.Float;\nvar ShortBlock = common.ShortBlock;\nvar Util = common.Util;\nvar Arrays = common.Arrays;\nvar new_array_n = common.new_array_n;\nvar new_byte = common.new_byte;\nvar new_double = common.new_double;\nvar new_float = common.new_float;\nvar new_float_n = common.new_float_n;\nvar new_int = common.new_int;\nvar new_int_n = common.new_int_n;\nvar assert = common.assert;\n\nvar GainAnalysis = require('./GainAnalysis.js');\n\nfunction ReplayGain() {\n this.linprebuf = new_float(GainAnalysis.MAX_ORDER * 2);\n /**\n * left input samples, with pre-buffer\n */\n this.linpre = 0;\n this.lstepbuf = new_float(GainAnalysis.MAX_SAMPLES_PER_WINDOW + GainAnalysis.MAX_ORDER);\n /**\n * left \"first step\" (i.e. post first filter) samples\n */\n this.lstep = 0;\n this.loutbuf = new_float(GainAnalysis.MAX_SAMPLES_PER_WINDOW + GainAnalysis.MAX_ORDER);\n /**\n * left \"out\" (i.e. post second filter) samples\n */\n this.lout = 0;\n this.rinprebuf = new_float(GainAnalysis.MAX_ORDER * 2);\n /**\n * right input samples ...\n */\n this.rinpre = 0;\n this.rstepbuf = new_float(GainAnalysis.MAX_SAMPLES_PER_WINDOW + GainAnalysis.MAX_ORDER);\n this.rstep = 0;\n this.routbuf = new_float(GainAnalysis.MAX_SAMPLES_PER_WINDOW + GainAnalysis.MAX_ORDER);\n this.rout = 0;\n /**\n * number of samples required to reach number of milliseconds required\n * for RMS window\n */\n this.sampleWindow = 0;\n this.totsamp = 0;\n this.lsum = 0.;\n this.rsum = 0.;\n this.freqindex = 0;\n this.first = 0;\n this.A = new_int(0 | (GainAnalysis.STEPS_per_dB * GainAnalysis.MAX_dB));\n this.B = new_int(0 | (GainAnalysis.STEPS_per_dB * GainAnalysis.MAX_dB));\n\n}\n\nmodule.exports = ReplayGain;\n","function MeanBits(meanBits) {\n this.bits = meanBits;\n}\n\nmodule.exports = MeanBits;\n","var common = require('./common.js');\nvar System = common.System;\nvar VbrMode = common.VbrMode;\nvar Float = common.Float;\nvar ShortBlock = common.ShortBlock;\nvar Util = common.Util;\nvar Arrays = common.Arrays;\nvar new_array_n = common.new_array_n;\nvar new_byte = common.new_byte;\nvar new_double = common.new_double;\nvar new_float = common.new_float;\nvar new_float_n = common.new_float_n;\nvar new_int = common.new_int;\nvar new_int_n = common.new_int_n;\nvar assert = common.assert;\n\nvar MeanBits = require('./MeanBits.js');\nvar Encoder = require('./Encoder.js');\nvar L3Side = require('./L3Side.js');\nvar LameInternalFlags = require('./LameInternalFlags.js');\n\nfunction CBRNewIterationLoop(_quantize) {\n var quantize = _quantize;\n this.quantize = quantize;\n\tthis.iteration_loop = function(gfp, pe, ms_ener_ratio, ratio) {\n\t\tvar gfc = gfp.internal_flags;\n var l3_xmin = new_float(L3Side.SFBMAX);\n\t\tvar xrpow = new_float(576);\n\t\tvar targ_bits = new_int(2);\n\t\tvar mean_bits = 0, max_bits;\n\t\tvar l3_side = gfc.l3_side;\n\n\t\tvar mb = new MeanBits(mean_bits);\n\t\tthis.quantize.rv.ResvFrameBegin(gfp, mb);\n\t\tmean_bits = mb.bits;\n\n\t\t/* quantize! */\n\t\tfor (var gr = 0; gr < gfc.mode_gr; gr++) {\n\n\t\t\t/*\n\t\t\t * calculate needed bits\n\t\t\t */\n\t\t\tmax_bits = this.quantize.qupvt.on_pe(gfp, pe, targ_bits, mean_bits,\n\t\t\t\t\tgr, gr);\n\n\t\t\tif (gfc.mode_ext == Encoder.MPG_MD_MS_LR) {\n\t\t\t\tthis.quantize.ms_convert(gfc.l3_side, gr);\n\t\t\t\tthis.quantize.qupvt.reduce_side(targ_bits, ms_ener_ratio[gr],\n\t\t\t\t\t\tmean_bits, max_bits);\n\t\t\t}\n\n\t\t\tfor (var ch = 0; ch < gfc.channels_out; ch++) {\n\t\t\t\tvar adjust, masking_lower_db;\n\t\t\t\tvar cod_info = l3_side.tt[gr][ch];\n\n\t\t\t\tif (cod_info.block_type != Encoder.SHORT_TYPE) {\n\t\t\t\t\t// NORM, START or STOP type\n\t\t\t\t\tadjust = 0;\n\t\t\t\t\tmasking_lower_db = gfc.PSY.mask_adjust - adjust;\n\t\t\t\t} else {\n\t\t\t\t\tadjust = 0;\n\t\t\t\t\tmasking_lower_db = gfc.PSY.mask_adjust_short - adjust;\n\t\t\t\t}\n\t\t\t\tgfc.masking_lower = Math.pow(10.0,\n\t\t\t\t\t\tmasking_lower_db * 0.1);\n\n\t\t\t\t/*\n\t\t\t\t * init_outer_loop sets up cod_info, scalefac and xrpow\n\t\t\t\t */\n\t\t\t\tthis.quantize.init_outer_loop(gfc, cod_info);\n\t\t\t\tif (this.quantize.init_xrpow(gfc, cod_info, xrpow)) {\n\t\t\t\t\t/*\n\t\t\t\t\t * xr contains energy we will have to encode calculate the\n\t\t\t\t\t * masking abilities find some good quantization in\n\t\t\t\t\t * outer_loop\n\t\t\t\t\t */\n\t\t\t\t\tthis.quantize.qupvt.calc_xmin(gfp, ratio[gr][ch], cod_info,\n\t\t\t\t\t\t\tl3_xmin);\n\t\t\t\t\tthis.quantize.outer_loop(gfp, cod_info, l3_xmin, xrpow, ch,\n\t\t\t\t\t\t\ttarg_bits[ch]);\n\t\t\t\t}\n\n\t\t\t\tthis.quantize.iteration_finish_one(gfc, gr, ch);\n\t\t\t\tassert (cod_info.part2_3_length <= LameInternalFlags.MAX_BITS_PER_CHANNEL);\n\t\t\t\tassert (cod_info.part2_3_length <= targ_bits[ch]);\n\t\t\t} /* for ch */\n\t\t} /* for gr */\n\n\t\tthis.quantize.rv.ResvFrameEnd(gfc, mean_bits);\n\t}\n}\nmodule.exports = CBRNewIterationLoop;\n","function HuffCodeTab(len, max, tab, hl) {\n this.xlen = len;\n this.linmax = max;\n this.table = tab;\n this.hlen = hl;\n}\n\nvar Tables = {};\n\n\nTables.t1HB = [\n 1, 1,\n 1, 0\n];\n\nTables.t2HB = [\n 1, 2, 1,\n 3, 1, 1,\n 3, 2, 0\n];\n\nTables.t3HB = [\n 3, 2, 1,\n 1, 1, 1,\n 3, 2, 0\n];\n\nTables.t5HB = [\n 1, 2, 6, 5,\n 3, 1, 4, 4,\n 7, 5, 7, 1,\n 6, 1, 1, 0\n];\n\nTables.t6HB = [\n 7, 3, 5, 1,\n 6, 2, 3, 2,\n 5, 4, 4, 1,\n 3, 3, 2, 0\n];\n\nTables.t7HB = [\n 1, 2, 10, 19, 16, 10,\n 3, 3, 7, 10, 5, 3,\n 11, 4, 13, 17, 8, 4,\n 12, 11, 18, 15, 11, 2,\n 7, 6, 9, 14, 3, 1,\n 6, 4, 5, 3, 2, 0\n];\n\nTables.t8HB = [\n 3, 4, 6, 18, 12, 5,\n 5, 1, 2, 16, 9, 3,\n 7, 3, 5, 14, 7, 3,\n 19, 17, 15, 13, 10, 4,\n 13, 5, 8, 11, 5, 1,\n 12, 4, 4, 1, 1, 0\n];\n\nTables.t9HB = [\n 7, 5, 9, 14, 15, 7,\n 6, 4, 5, 5, 6, 7,\n 7, 6, 8, 8, 8, 5,\n 15, 6, 9, 10, 5, 1,\n 11, 7, 9, 6, 4, 1,\n 14, 4, 6, 2, 6, 0\n];\n\nTables.t10HB = [\n 1, 2, 10, 23, 35, 30, 12, 17,\n 3, 3, 8, 12, 18, 21, 12, 7,\n 11, 9, 15, 21, 32, 40, 19, 6,\n 14, 13, 22, 34, 46, 23, 18, 7,\n 20, 19, 33, 47, 27, 22, 9, 3,\n 31, 22, 41, 26, 21, 20, 5, 3,\n 14, 13, 10, 11, 16, 6, 5, 1,\n 9, 8, 7, 8, 4, 4, 2, 0\n];\n\nTables.t11HB = [\n 3, 4, 10, 24, 34, 33, 21, 15,\n 5, 3, 4, 10, 32, 17, 11, 10,\n 11, 7, 13, 18, 30, 31, 20, 5,\n 25, 11, 19, 59, 27, 18, 12, 5,\n 35, 33, 31, 58, 30, 16, 7, 5,\n 28, 26, 32, 19, 17, 15, 8, 14,\n 14, 12, 9, 13, 14, 9, 4, 1,\n 11, 4, 6, 6, 6, 3, 2, 0\n];\n\nTables.t12HB = [\n 9, 6, 16, 33, 41, 39, 38, 26,\n 7, 5, 6, 9, 23, 16, 26, 11,\n 17, 7, 11, 14, 21, 30, 10, 7,\n 17, 10, 15, 12, 18, 28, 14, 5,\n 32, 13, 22, 19, 18, 16, 9, 5,\n 40, 17, 31, 29, 17, 13, 4, 2,\n 27, 12, 11, 15, 10, 7, 4, 1,\n 27, 12, 8, 12, 6, 3, 1, 0\n];\n\nTables.t13HB = [\n 1, 5, 14, 21, 34, 51, 46, 71, 42, 52, 68, 52, 67, 44, 43, 19,\n 3, 4, 12, 19, 31, 26, 44, 33, 31, 24, 32, 24, 31, 35, 22, 14,\n 15, 13, 23, 36, 59, 49, 77, 65, 29, 40, 30, 40, 27, 33, 42, 16,\n 22, 20, 37, 61, 56, 79, 73, 64, 43, 76, 56, 37, 26, 31, 25, 14,\n 35, 16, 60, 57, 97, 75, 114, 91, 54, 73, 55, 41, 48, 53, 23, 24,\n 58, 27, 50, 96, 76, 70, 93, 84, 77, 58, 79, 29, 74, 49, 41, 17,\n 47, 45, 78, 74, 115, 94, 90, 79, 69, 83, 71, 50, 59, 38, 36, 15,\n 72, 34, 56, 95, 92, 85, 91, 90, 86, 73, 77, 65, 51, 44, 43, 42,\n 43, 20, 30, 44, 55, 78, 72, 87, 78, 61, 46, 54, 37, 30, 20, 16,\n 53, 25, 41, 37, 44, 59, 54, 81, 66, 76, 57, 54, 37, 18, 39, 11,\n 35, 33, 31, 57, 42, 82, 72, 80, 47, 58, 55, 21, 22, 26, 38, 22,\n 53, 25, 23, 38, 70, 60, 51, 36, 55, 26, 34, 23, 27, 14, 9, 7,\n 34, 32, 28, 39, 49, 75, 30, 52, 48, 40, 52, 28, 18, 17, 9, 5,\n 45, 21, 34, 64, 56, 50, 49, 45, 31, 19, 12, 15, 10, 7, 6, 3,\n 48, 23, 20, 39, 36, 35, 53, 21, 16, 23, 13, 10, 6, 1, 4, 2,\n 16, 15, 17, 27, 25, 20, 29, 11, 17, 12, 16, 8, 1, 1, 0, 1\n];\n\nTables.t15HB = [\n 7, 12, 18, 53, 47, 76, 124, 108, 89, 123, 108, 119, 107, 81, 122, 63,\n 13, 5, 16, 27, 46, 36, 61, 51, 42, 70, 52, 83, 65, 41, 59, 36,\n 19, 17, 15, 24, 41, 34, 59, 48, 40, 64, 50, 78, 62, 80, 56, 33,\n 29, 28, 25, 43, 39, 63, 55, 93, 76, 59, 93, 72, 54, 75, 50, 29,\n 52, 22, 42, 40, 67, 57, 95, 79, 72, 57, 89, 69, 49, 66, 46, 27,\n 77, 37, 35, 66, 58, 52, 91, 74, 62, 48, 79, 63, 90, 62, 40, 38,\n 125, 32, 60, 56, 50, 92, 78, 65, 55, 87, 71, 51, 73, 51, 70, 30,\n 109, 53, 49, 94, 88, 75, 66, 122, 91, 73, 56, 42, 64, 44, 21, 25,\n 90, 43, 41, 77, 73, 63, 56, 92, 77, 66, 47, 67, 48, 53, 36, 20,\n 71, 34, 67, 60, 58, 49, 88, 76, 67, 106, 71, 54, 38, 39, 23, 15,\n 109, 53, 51, 47, 90, 82, 58, 57, 48, 72, 57, 41, 23, 27, 62, 9,\n 86, 42, 40, 37, 70, 64, 52, 43, 70, 55, 42, 25, 29, 18, 11, 11,\n 118, 68, 30, 55, 50, 46, 74, 65, 49, 39, 24, 16, 22, 13, 14, 7,\n 91, 44, 39, 38, 34, 63, 52, 45, 31, 52, 28, 19, 14, 8, 9, 3,\n 123, 60, 58, 53, 47, 43, 32, 22, 37, 24, 17, 12, 15, 10, 2, 1,\n 71, 37, 34, 30, 28, 20, 17, 26, 21, 16, 10, 6, 8, 6, 2, 0\n];\n\nTables.t16HB = [\n 1, 5, 14, 44, 74, 63, 110, 93, 172, 149, 138, 242, 225, 195, 376, 17,\n 3, 4, 12, 20, 35, 62, 53, 47, 83, 75, 68, 119, 201, 107, 207, 9,\n 15, 13, 23, 38, 67, 58, 103, 90, 161, 72, 127, 117, 110, 209, 206, 16,\n 45, 21, 39, 69, 64, 114, 99, 87, 158, 140, 252, 212, 199, 387, 365, 26,\n 75, 36, 68, 65, 115, 101, 179, 164, 155, 264, 246, 226, 395, 382, 362, 9,\n 66, 30, 59, 56, 102, 185, 173, 265, 142, 253, 232, 400, 388, 378, 445, 16,\n 111, 54, 52, 100, 184, 178, 160, 133, 257, 244, 228, 217, 385, 366, 715, 10,\n 98, 48, 91, 88, 165, 157, 148, 261, 248, 407, 397, 372, 380, 889, 884, 8,\n 85, 84, 81, 159, 156, 143, 260, 249, 427, 401, 392, 383, 727, 713, 708, 7,\n 154, 76, 73, 141, 131, 256, 245, 426, 406, 394, 384, 735, 359, 710, 352, 11,\n 139, 129, 67, 125, 247, 233, 229, 219, 393, 743, 737, 720, 885, 882, 439, 4,\n 243, 120, 118, 115, 227, 223, 396, 746, 742, 736, 721, 712, 706, 223, 436, 6,\n 202, 224, 222, 218, 216, 389, 386, 381, 364, 888, 443, 707, 440, 437, 1728, 4,\n 747, 211, 210, 208, 370, 379, 734, 723, 714, 1735, 883, 877, 876, 3459, 865, 2,\n 377, 369, 102, 187, 726, 722, 358, 711, 709, 866, 1734, 871, 3458, 870, 434, 0,\n 12, 10, 7, 11, 10, 17, 11, 9, 13, 12, 10, 7, 5, 3, 1, 3\n];\n\nTables.t24HB = [\n 15, 13, 46, 80, 146, 262, 248, 434, 426, 669, 653, 649, 621, 517, 1032, 88,\n 14, 12, 21, 38, 71, 130, 122, 216, 209, 198, 327, 345, 319, 297, 279, 42,\n 47, 22, 41, 74, 68, 128, 120, 221, 207, 194, 182, 340, 315, 295, 541, 18,\n 81, 39, 75, 70, 134, 125, 116, 220, 204, 190, 178, 325, 311, 293, 271, 16,\n 147, 72, 69, 135, 127, 118, 112, 210, 200, 188, 352, 323, 306, 285, 540, 14,\n 263, 66, 129, 126, 119, 114, 214, 202, 192, 180, 341, 317, 301, 281, 262, 12,\n 249, 123, 121, 117, 113, 215, 206, 195, 185, 347, 330, 308, 291, 272, 520, 10,\n 435, 115, 111, 109, 211, 203, 196, 187, 353, 332, 313, 298, 283, 531, 381, 17,\n 427, 212, 208, 205, 201, 193, 186, 177, 169, 320, 303, 286, 268, 514, 377, 16,\n 335, 199, 197, 191, 189, 181, 174, 333, 321, 305, 289, 275, 521, 379, 371, 11,\n 668, 184, 183, 179, 175, 344, 331, 314, 304, 290, 277, 530, 383, 373, 366, 10,\n 652, 346, 171, 168, 164, 318, 309, 299, 287, 276, 263, 513, 375, 368, 362, 6,\n 648, 322, 316, 312, 307, 302, 292, 284, 269, 261, 512, 376, 370, 364, 359, 4,\n 620, 300, 296, 294, 288, 282, 273, 266, 515, 380, 374, 369, 365, 361, 357, 2,\n 1033, 280, 278, 274, 267, 264, 259, 382, 378, 372, 367, 363, 360, 358, 356, 0,\n 43, 20, 19, 17, 15, 13, 11, 9, 7, 6, 4, 7, 5, 3, 1, 3\n];\n\nTables.t32HB = [\n 1 << 0, 5 << 1, 4 << 1, 5 << 2, 6 << 1, 5 << 2, 4 << 2, 4 << 3,\n 7 << 1, 3 << 2, 6 << 2, 0 << 3, 7 << 2, 2 << 3, 3 << 3, 1 << 4\n];\n\nTables.t33HB = [\n 15 << 0, 14 << 1, 13 << 1, 12 << 2, 11 << 1, 10 << 2, 9 << 2, 8 << 3,\n 7 << 1, 6 << 2, 5 << 2, 4 << 3, 3 << 2, 2 << 3, 1 << 3, 0 << 4\n];\n\nTables.t1l = [\n 1, 4,\n 3, 5\n];\n\nTables.t2l = [\n 1, 4, 7,\n 4, 5, 7,\n 6, 7, 8\n];\n\nTables.t3l = [\n 2, 3, 7,\n 4, 4, 7,\n 6, 7, 8\n];\n\nTables.t5l = [\n 1, 4, 7, 8,\n 4, 5, 8, 9,\n 7, 8, 9, 10,\n 8, 8, 9, 10\n];\n\nTables.t6l = [\n 3, 4, 6, 8,\n 4, 4, 6, 7,\n 5, 6, 7, 8,\n 7, 7, 8, 9\n];\n\nTables.t7l = [\n 1, 4, 7, 9, 9, 10,\n 4, 6, 8, 9, 9, 10,\n 7, 7, 9, 10, 10, 11,\n 8, 9, 10, 11, 11, 11,\n 8, 9, 10, 11, 11, 12,\n 9, 10, 11, 12, 12, 12\n];\n\nTables.t8l = [\n 2, 4, 7, 9, 9, 10,\n 4, 4, 6, 10, 10, 10,\n 7, 6, 8, 10, 10, 11,\n 9, 10, 10, 11, 11, 12,\n 9, 9, 10, 11, 12, 12,\n 10, 10, 11, 11, 13, 13\n];\n\nTables.t9l = [\n 3, 4, 6, 7, 9, 10,\n 4, 5, 6, 7, 8, 10,\n 5, 6, 7, 8, 9, 10,\n 7, 7, 8, 9, 9, 10,\n 8, 8, 9, 9, 10, 11,\n 9, 9, 10, 10, 11, 11\n];\n\nTables.t10l = [\n 1, 4, 7, 9, 10, 10, 10, 11,\n 4, 6, 8, 9, 10, 11, 10, 10,\n 7, 8, 9, 10, 11, 12, 11, 11,\n 8, 9, 10, 11, 12, 12, 11, 12,\n 9, 10, 11, 12, 12, 12, 12, 12,\n 10, 11, 12, 12, 13, 13, 12, 13,\n 9, 10, 11, 12, 12, 12, 13, 13,\n 10, 10, 11, 12, 12, 13, 13, 13\n];\n\nTables.t11l = [\n 2, 4, 6, 8, 9, 10, 9, 10,\n 4, 5, 6, 8, 10, 10, 9, 10,\n 6, 7, 8, 9, 10, 11, 10, 10,\n 8, 8, 9, 11, 10, 12, 10, 11,\n 9, 10, 10, 11, 11, 12, 11, 12,\n 9, 10, 11, 12, 12, 13, 12, 13,\n 9, 9, 9, 10, 11, 12, 12, 12,\n 9, 9, 10, 11, 12, 12, 12, 12\n];\n\nTables.t12l = [\n 4, 4, 6, 8, 9, 10, 10, 10,\n 4, 5, 6, 7, 9, 9, 10, 10,\n 6, 6, 7, 8, 9, 10, 9, 10,\n 7, 7, 8, 8, 9, 10, 10, 10,\n 8, 8, 9, 9, 10, 10, 10, 11,\n 9, 9, 10, 10, 10, 11, 10, 11,\n 9, 9, 9, 10, 10, 11, 11, 12,\n 10, 10, 10, 11, 11, 11, 11, 12\n];\n\nTables.t13l = [\n 1, 5, 7, 8, 9, 10, 10, 11, 10, 11, 12, 12, 13, 13, 14, 14,\n 4, 6, 8, 9, 10, 10, 11, 11, 11, 11, 12, 12, 13, 14, 14, 14,\n 7, 8, 9, 10, 11, 11, 12, 12, 11, 12, 12, 13, 13, 14, 15, 15,\n 8, 9, 10, 11, 11, 12, 12, 12, 12, 13, 13, 13, 13, 14, 15, 15,\n 9, 9, 11, 11, 12, 12, 13, 13, 12, 13, 13, 14, 14, 15, 15, 16,\n 10, 10, 11, 12, 12, 12, 13, 13, 13, 13, 14, 13, 15, 15, 16, 16,\n 10, 11, 12, 12, 13, 13, 13, 13, 13, 14, 14, 14, 15, 15, 16, 16,\n 11, 11, 12, 13, 13, 13, 14, 14, 14, 14, 15, 15, 15, 16, 18, 18,\n 10, 10, 11, 12, 12, 13, 13, 14, 14, 14, 14, 15, 15, 16, 17, 17,\n 11, 11, 12, 12, 13, 13, 13, 15, 14, 15, 15, 16, 16, 16, 18, 17,\n 11, 12, 12, 13, 13, 14, 14, 15, 14, 15, 16, 15, 16, 17, 18, 19,\n 12, 12, 12, 13, 14, 14, 14, 14, 15, 15, 15, 16, 17, 17, 17, 18,\n 12, 13, 13, 14, 14, 15, 14, 15, 16, 16, 17, 17, 17, 18, 18, 18,\n 13, 13, 14, 15, 15, 15, 16, 16, 16, 16, 16, 17, 18, 17, 18, 18,\n 14, 14, 14, 15, 15, 15, 17, 16, 16, 19, 17, 17, 17, 19, 18, 18,\n 13, 14, 15, 16, 16, 16, 17, 16, 17, 17, 18, 18, 21, 20, 21, 18\n];\n\nTables.t15l = [\n 3, 5, 6, 8, 8, 9, 10, 10, 10, 11, 11, 12, 12, 12, 13, 14,\n 5, 5, 7, 8, 9, 9, 10, 10, 10, 11, 11, 12, 12, 12, 13, 13,\n 6, 7, 7, 8, 9, 9, 10, 10, 10, 11, 11, 12, 12, 13, 13, 13,\n 7, 8, 8, 9, 9, 10, 10, 11, 11, 11, 12, 12, 12, 13, 13, 13,\n 8, 8, 9, 9, 10, 10, 11, 11, 11, 11, 12, 12, 12, 13, 13, 13,\n 9, 9, 9, 10, 10, 10, 11, 11, 11, 11, 12, 12, 13, 13, 13, 14,\n 10, 9, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 13, 13, 14, 14,\n 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 12, 13, 13, 13, 14,\n 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 13, 13, 14, 14, 14,\n 10, 10, 11, 11, 11, 11, 12, 12, 12, 13, 13, 13, 13, 14, 14, 14,\n 11, 11, 11, 11, 12, 12, 12, 12, 12, 13, 13, 13, 13, 14, 15, 14,\n 11, 11, 11, 11, 12, 12, 12, 12, 13, 13, 13, 13, 14, 14, 14, 15,\n 12, 12, 11, 12, 12, 12, 13, 13, 13, 13, 13, 13, 14, 14, 15, 15,\n 12, 12, 12, 12, 12, 13, 13, 13, 13, 14, 14, 14, 14, 14, 15, 15,\n 13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 14, 15,\n 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 15, 15, 15, 15\n];\n\nTables.t16_5l = [\n 1, 5, 7, 9, 10, 10, 11, 11, 12, 12, 12, 13, 13, 13, 14, 11,\n 4, 6, 8, 9, 10, 11, 11, 11, 12, 12, 12, 13, 14, 13, 14, 11,\n 7, 8, 9, 10, 11, 11, 12, 12, 13, 12, 13, 13, 13, 14, 14, 12,\n 9, 9, 10, 11, 11, 12, 12, 12, 13, 13, 14, 14, 14, 15, 15, 13,\n 10, 10, 11, 11, 12, 12, 13, 13, 13, 14, 14, 14, 15, 15, 15, 12,\n 10, 10, 11, 11, 12, 13, 13, 14, 13, 14, 14, 15, 15, 15, 16, 13,\n 11, 11, 11, 12, 13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 16, 13,\n 11, 11, 12, 12, 13, 13, 13, 14, 14, 15, 15, 15, 15, 17, 17, 13,\n 11, 12, 12, 13, 13, 13, 14, 14, 15, 15, 15, 15, 16, 16, 16, 13,\n 12, 12, 12, 13, 13, 14, 14, 15, 15, 15, 15, 16, 15, 16, 15, 14,\n 12, 13, 12, 13, 14, 14, 14, 14, 15, 16, 16, 16, 17, 17, 16, 13,\n 13, 13, 13, 13, 14, 14, 15, 16, 16, 16, 16, 16, 16, 15, 16, 14,\n 13, 14, 14, 14, 14, 15, 15, 15, 15, 17, 16, 16, 16, 16, 18, 14,\n 15, 14, 14, 14, 15, 15, 16, 16, 16, 18, 17, 17, 17, 19, 17, 14,\n 14, 15, 13, 14, 16, 16, 15, 16, 16, 17, 18, 17, 19, 17, 16, 14,\n 11, 11, 11, 12, 12, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 12\n];\n\nTables.t16l = [\n 1, 5, 7, 9, 10, 10, 11, 11, 12, 12, 12, 13, 13, 13, 14, 10,\n 4, 6, 8, 9, 10, 11, 11, 11, 12, 12, 12, 13, 14, 13, 14, 10,\n 7, 8, 9, 10, 11, 11, 12, 12, 13, 12, 13, 13, 13, 14, 14, 11,\n 9, 9, 10, 11, 11, 12, 12, 12, 13, 13, 14, 14, 14, 15, 15, 12,\n 10, 10, 11, 11, 12, 12, 13, 13, 13, 14, 14, 14, 15, 15, 15, 11,\n 10, 10, 11, 11, 12, 13, 13, 14, 13, 14, 14, 15, 15, 15, 16, 12,\n 11, 11, 11, 12, 13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 16, 12,\n 11, 11, 12, 12, 13, 13, 13, 14, 14, 15, 15, 15, 15, 17, 17, 12,\n 11, 12, 12, 13, 13, 13, 14, 14, 15, 15, 15, 15, 16, 16, 16, 12,\n 12, 12, 12, 13, 13, 14, 14, 15, 15, 15, 15, 16, 15, 16, 15, 13,\n 12, 13, 12, 13, 14, 14, 14, 14, 15, 16, 16, 16, 17, 17, 16, 12,\n 13, 13, 13, 13, 14, 14, 15, 16, 16, 16, 16, 16, 16, 15, 16, 13,\n 13, 14, 14, 14, 14, 15, 15, 15, 15, 17, 16, 16, 16, 16, 18, 13,\n 15, 14, 14, 14, 15, 15, 16, 16, 16, 18, 17, 17, 17, 19, 17, 13,\n 14, 15, 13, 14, 16, 16, 15, 16, 16, 17, 18, 17, 19, 17, 16, 13,\n 10, 10, 10, 11, 11, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 10\n];\n\nTables.t24l = [\n 4, 5, 7, 8, 9, 10, 10, 11, 11, 12, 12, 12, 12, 12, 13, 10,\n 5, 6, 7, 8, 9, 10, 10, 11, 11, 11, 12, 12, 12, 12, 12, 10,\n 7, 7, 8, 9, 9, 10, 10, 11, 11, 11, 11, 12, 12, 12, 13, 9,\n 8, 8, 9, 9, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 9,\n 9, 9, 9, 10, 10, 10, 10, 11, 11, 11, 12, 12, 12, 12, 13, 9,\n 10, 9, 10, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 12, 9,\n 10, 10, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 12, 13, 9,\n 11, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 12, 13, 13, 10,\n 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 13, 13, 10,\n 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 13, 13, 13, 10,\n 12, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 10,\n 12, 12, 11, 11, 11, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 10,\n 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 10,\n 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 10,\n 13, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 10,\n 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 6\n];\n\nTables.t32l = [\n 1 + 0, 4 + 1, 4 + 1, 5 + 2, 4 + 1, 6 + 2, 5 + 2, 6 + 3,\n 4 + 1, 5 + 2, 5 + 2, 6 + 3, 5 + 2, 6 + 3, 6 + 3, 6 + 4\n];\n\nTables.t33l = [\n 4 + 0, 4 + 1, 4 + 1, 4 + 2, 4 + 1, 4 + 2, 4 + 2, 4 + 3,\n 4 + 1, 4 + 2, 4 + 2, 4 + 3, 4 + 2, 4 + 3, 4 + 3, 4 + 4\n];\n\nTables.ht = [\n /* xlen, linmax, table, hlen */\n new HuffCodeTab(0, 0, null, null),\n new HuffCodeTab(2, 0, Tables.t1HB, Tables.t1l),\n new HuffCodeTab(3, 0, Tables.t2HB, Tables.t2l),\n new HuffCodeTab(3, 0, Tables.t3HB, Tables.t3l),\n new HuffCodeTab(0, 0, null, null), /* Apparently not used */\n new HuffCodeTab(4, 0, Tables.t5HB, Tables.t5l),\n new HuffCodeTab(4, 0, Tables.t6HB, Tables.t6l),\n new HuffCodeTab(6, 0, Tables.t7HB, Tables.t7l),\n new HuffCodeTab(6, 0, Tables.t8HB, Tables.t8l),\n new HuffCodeTab(6, 0, Tables.t9HB, Tables.t9l),\n new HuffCodeTab(8, 0, Tables.t10HB, Tables.t10l),\n new HuffCodeTab(8, 0, Tables.t11HB, Tables.t11l),\n new HuffCodeTab(8, 0, Tables.t12HB, Tables.t12l),\n new HuffCodeTab(16, 0, Tables.t13HB, Tables.t13l),\n new HuffCodeTab(0, 0, null, Tables.t16_5l), /* Apparently not used */\n new HuffCodeTab(16, 0, Tables.t15HB, Tables.t15l),\n\n new HuffCodeTab(1, 1, Tables.t16HB, Tables.t16l),\n new HuffCodeTab(2, 3, Tables.t16HB, Tables.t16l),\n new HuffCodeTab(3, 7, Tables.t16HB, Tables.t16l),\n new HuffCodeTab(4, 15, Tables.t16HB, Tables.t16l),\n new HuffCodeTab(6, 63, Tables.t16HB, Tables.t16l),\n new HuffCodeTab(8, 255, Tables.t16HB, Tables.t16l),\n new HuffCodeTab(10, 1023, Tables.t16HB, Tables.t16l),\n new HuffCodeTab(13, 8191, Tables.t16HB, Tables.t16l),\n\n new HuffCodeTab(4, 15, Tables.t24HB, Tables.t24l),\n new HuffCodeTab(5, 31, Tables.t24HB, Tables.t24l),\n new HuffCodeTab(6, 63, Tables.t24HB, Tables.t24l),\n new HuffCodeTab(7, 127, Tables.t24HB, Tables.t24l),\n new HuffCodeTab(8, 255, Tables.t24HB, Tables.t24l),\n new HuffCodeTab(9, 511, Tables.t24HB, Tables.t24l),\n new HuffCodeTab(11, 2047, Tables.t24HB, Tables.t24l),\n new HuffCodeTab(13, 8191, Tables.t24HB, Tables.t24l),\n\n new HuffCodeTab(0, 0, Tables.t32HB, Tables.t32l),\n new HuffCodeTab(0, 0, Tables.t33HB, Tables.t33l),\n];\n\n/**\n * \n * for (i = 0; i < 16*16; i++) [\n * largetbl[i] = ((ht[16].hlen[i]) << 16) + ht[24].hlen[i];\n * ]\n * \n *\n */\nTables.largetbl = [\n 0x010004, 0x050005, 0x070007, 0x090008, 0x0a0009, 0x0a000a, 0x0b000a, 0x0b000b,\n 0x0c000b, 0x0c000c, 0x0c000c, 0x0d000c, 0x0d000c, 0x0d000c, 0x0e000d, 0x0a000a,\n 0x040005, 0x060006, 0x080007, 0x090008, 0x0a0009, 0x0b000a, 0x0b000a, 0x0b000b,\n 0x0c000b, 0x0c000b, 0x0c000c, 0x0d000c, 0x0e000c, 0x0d000c, 0x0e000c, 0x0a000a,\n 0x070007, 0x080007, 0x090008, 0x0a0009, 0x0b0009, 0x0b000a, 0x0c000a, 0x0c000b,\n 0x0d000b, 0x0c000b, 0x0d000b, 0x0d000c, 0x0d000c, 0x0e000c, 0x0e000d, 0x0b0009,\n 0x090008, 0x090008, 0x0a0009, 0x0b0009, 0x0b000a, 0x0c000a, 0x0c000a, 0x0c000b,\n 0x0d000b, 0x0d000b, 0x0e000b, 0x0e000c, 0x0e000c, 0x0f000c, 0x0f000c, 0x0c0009,\n 0x0a0009, 0x0a0009, 0x0b0009, 0x0b000a, 0x0c000a, 0x0c000a, 0x0d000a, 0x0d000b,\n 0x0d000b, 0x0e000b, 0x0e000c, 0x0e000c, 0x0f000c, 0x0f000c, 0x0f000d, 0x0b0009,\n 0x0a000a, 0x0a0009, 0x0b000a, 0x0b000a, 0x0c000a, 0x0d000a, 0x0d000b, 0x0e000b,\n 0x0d000b, 0x0e000b, 0x0e000c, 0x0f000c, 0x0f000c, 0x0f000c, 0x10000c, 0x0c0009,\n 0x0b000a, 0x0b000a, 0x0b000a, 0x0c000a, 0x0d000a, 0x0d000b, 0x0d000b, 0x0d000b,\n 0x0e000b, 0x0e000c, 0x0e000c, 0x0e000c, 0x0f000c, 0x0f000c, 0x10000d, 0x0c0009,\n 0x0b000b, 0x0b000a, 0x0c000a, 0x0c000a, 0x0d000b, 0x0d000b, 0x0d000b, 0x0e000b,\n 0x0e000c, 0x0f000c, 0x0f000c, 0x0f000c, 0x0f000c, 0x11000d, 0x11000d, 0x0c000a,\n 0x0b000b, 0x0c000b, 0x0c000b, 0x0d000b, 0x0d000b, 0x0d000b, 0x0e000b, 0x0e000b,\n 0x0f000b, 0x0f000c, 0x0f000c, 0x0f000c, 0x10000c, 0x10000d, 0x10000d, 0x0c000a,\n 0x0c000b, 0x0c000b, 0x0c000b, 0x0d000b, 0x0d000b, 0x0e000b, 0x0e000b, 0x0f000c,\n 0x0f000c, 0x0f000c, 0x0f000c, 0x10000c, 0x0f000d, 0x10000d, 0x0f000d, 0x0d000a,\n 0x0c000c, 0x0d000b, 0x0c000b, 0x0d000b, 0x0e000b, 0x0e000c, 0x0e000c, 0x0e000c,\n 0x0f000c, 0x10000c, 0x10000c, 0x10000d, 0x11000d, 0x11000d, 0x10000d, 0x0c000a,\n 0x0d000c, 0x0d000c, 0x0d000b, 0x0d000b, 0x0e000b, 0x0e000c, 0x0f000c, 0x10000c,\n 0x10000c, 0x10000c, 0x10000c, 0x10000d, 0x10000d, 0x0f000d, 0x10000d, 0x0d000a,\n 0x0d000c, 0x0e000c, 0x0e000c, 0x0e000c, 0x0e000c, 0x0f000c, 0x0f000c, 0x0f000c,\n 0x0f000c, 0x11000c, 0x10000d, 0x10000d, 0x10000d, 0x10000d, 0x12000d, 0x0d000a,\n 0x0f000c, 0x0e000c, 0x0e000c, 0x0e000c, 0x0f000c, 0x0f000c, 0x10000c, 0x10000c,\n 0x10000d, 0x12000d, 0x11000d, 0x11000d, 0x11000d, 0x13000d, 0x11000d, 0x0d000a,\n 0x0e000d, 0x0f000c, 0x0d000c, 0x0e000c, 0x10000c, 0x10000c, 0x0f000c, 0x10000d,\n 0x10000d, 0x11000d, 0x12000d, 0x11000d, 0x13000d, 0x11000d, 0x10000d, 0x0d000a,\n 0x0a0009, 0x0a0009, 0x0a0009, 0x0b0009, 0x0b0009, 0x0c0009, 0x0c0009, 0x0c0009,\n 0x0d0009, 0x0d0009, 0x0d0009, 0x0d000a, 0x0d000a, 0x0d000a, 0x0d000a, 0x0a0006\n];\n/**\n * \n * for (i = 0; i < 3*3; i++) [\n * table23[i] = ((ht[2].hlen[i]) << 16) + ht[3].hlen[i];\n * ]\n * \n *\n */\nTables.table23 = [\n 0x010002, 0x040003, 0x070007,\n 0x040004, 0x050004, 0x070007,\n 0x060006, 0x070007, 0x080008\n];\n\n/**\n * \n * for (i = 0; i < 4*4; i++) [\n * table56[i] = ((ht[5].hlen[i]) << 16) + ht[6].hlen[i];\n * ]\n * \n *\n */\nTables.table56 = [\n 0x010003, 0x040004, 0x070006, 0x080008, 0x040004, 0x050004, 0x080006, 0x090007,\n 0x070005, 0x080006, 0x090007, 0x0a0008, 0x080007, 0x080007, 0x090008, 0x0a0009\n];\n\nTables.bitrate_table = [\n [0, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160, -1], /* MPEG 2 */\n [0, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, -1], /* MPEG 1 */\n [0, 8, 16, 24, 32, 40, 48, 56, 64, -1, -1, -1, -1, -1, -1, -1], /* MPEG 2.5 */\n];\n\n/**\n * MPEG 2, MPEG 1, MPEG 2.5.\n */\nTables.samplerate_table = [\n [22050, 24000, 16000, -1],\n [44100, 48000, 32000, -1],\n [11025, 12000, 8000, -1],\n];\n\n/**\n * This is the scfsi_band table from 2.4.2.7 of the IS.\n */\nTables.scfsi_band = [0, 6, 11, 16, 21];\n\nmodule.exports = Tables;\n","/*\n * quantize_pvt source file\n *\n * Copyright (c) 1999-2002 Takehiro Tominaga\n * Copyright (c) 2000-2002 Robert Hegemann\n * Copyright (c) 2001 Naoki Shibata\n * Copyright (c) 2002-2005 Gabriel Bouvigne\n *\n * This library is free software; you can redistribute it and/or\n * modify it under the terms of the GNU Lesser General Public\n * License as published by the Free Software Foundation; either\n * version 2 of the License, or (at your option) any later version.\n *\n * This library is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Library General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this library; if not, write to the\n * Free Software Foundation, Inc., 59 Temple Place - Suite 330,\n * Boston, MA 02111-1307, USA.\n */\n\n/* $Id: QuantizePVT.java,v 1.24 2011/05/24 20:48:06 kenchis Exp $ */\nvar ScaleFac = require('./ScaleFac.js');\nvar common = require('./common.js');\nvar System = common.System;\nvar VbrMode = common.VbrMode;\nvar Float = common.Float;\nvar ShortBlock = common.ShortBlock;\nvar Util = common.Util;\nvar Arrays = common.Arrays;\nvar new_array_n = common.new_array_n;\nvar new_byte = common.new_byte;\nvar new_double = common.new_double;\nvar new_float = common.new_float;\nvar new_float_n = common.new_float_n;\nvar new_int = common.new_int;\nvar new_int_n = common.new_int_n;\nvar assert = common.assert;\n\nvar Encoder = require('./Encoder.js');\nvar MeanBits = require('./MeanBits.js');\nvar LameInternalFlags = require('./LameInternalFlags.js');\n\nQuantizePVT.Q_MAX = (256 + 1);\nQuantizePVT.Q_MAX2 = 116;\nQuantizePVT.LARGE_BITS = 100000;\nQuantizePVT.IXMAX_VAL = 8206;\n\nfunction QuantizePVT() {\n\n var tak = null;\n var rv = null;\n var psy = null;\n\n this.setModules = function (_tk, _rv, _psy) {\n tak = _tk;\n rv = _rv;\n psy = _psy;\n };\n\n function POW20(x) {\n assert(0 <= (x + QuantizePVT.Q_MAX2) && x < QuantizePVT.Q_MAX);\n return pow20[x + QuantizePVT.Q_MAX2];\n }\n\n this.IPOW20 = function (x) {\n assert(0 <= x && x < QuantizePVT.Q_MAX);\n return ipow20[x];\n }\n\n /**\n * smallest such that 1.0+DBL_EPSILON != 1.0\n */\n var DBL_EPSILON = 2.2204460492503131e-016;\n\n /**\n * ix always <= 8191+15. see count_bits()\n */\n var IXMAX_VAL = QuantizePVT.IXMAX_VAL;\n\n var PRECALC_SIZE = (IXMAX_VAL + 2);\n\n var Q_MAX = QuantizePVT.Q_MAX;\n\n\n /**\n * \n * minimum possible number of\n * -cod_info.global_gain + ((scalefac[] + (cod_info.preflag ? pretab[sfb] : 0))\n * << (cod_info.scalefac_scale + 1)) + cod_info.subblock_gain[cod_info.window[sfb]] * 8;\n *\n * for long block, 0+((15+3)<<2) = 18*4 = 72\n * for short block, 0+(15<<2)+7*8 = 15*4+56 = 116\n * \n */\n var Q_MAX2 = QuantizePVT.Q_MAX2;\n\n var LARGE_BITS = QuantizePVT.LARGE_BITS;\n\n\n /**\n * Assuming dynamic range=96dB, this value should be 92\n */\n var NSATHSCALE = 100;\n\n /**\n * The following table is used to implement the scalefactor partitioning for\n * MPEG2 as described in section 2.4.3.2 of the IS. The indexing corresponds\n * to the way the tables are presented in the IS:\n *\n * [table_number][row_in_table][column of nr_of_sfb]\n */\n this.nr_of_sfb_block = [\n [[6, 5, 5, 5], [9, 9, 9, 9], [6, 9, 9, 9]],\n [[6, 5, 7, 3], [9, 9, 12, 6], [6, 9, 12, 6]],\n [[11, 10, 0, 0], [18, 18, 0, 0], [15, 18, 0, 0]],\n [[7, 7, 7, 0], [12, 12, 12, 0], [6, 15, 12, 0]],\n [[6, 6, 6, 3], [12, 9, 9, 6], [6, 12, 9, 6]],\n [[8, 8, 5, 0], [15, 12, 9, 0], [6, 18, 9, 0]]];\n\n /**\n * Table B.6: layer3 preemphasis\n */\n var pretab = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,\n 2, 2, 3, 3, 3, 2, 0];\n this.pretab = pretab;\n\n /**\n * Here are MPEG1 Table B.8 and MPEG2 Table B.1 -- Layer III scalefactor\n * bands.
\n * Index into this using a method such as:
\n * idx = fr_ps.header.sampling_frequency + (fr_ps.header.version * 3)\n */\n this.sfBandIndex = [\n // Table B.2.b: 22.05 kHz\n new ScaleFac([0, 6, 12, 18, 24, 30, 36, 44, 54, 66, 80, 96, 116, 140, 168, 200, 238, 284, 336, 396, 464,\n 522, 576],\n [0, 4, 8, 12, 18, 24, 32, 42, 56, 74, 100, 132, 174, 192]\n , [0, 0, 0, 0, 0, 0, 0] // sfb21 pseudo sub bands\n , [0, 0, 0, 0, 0, 0, 0] // sfb12 pseudo sub bands\n ),\n /* Table B.2.c: 24 kHz */ /* docs: 332. mpg123(broken): 330 */\n new ScaleFac([0, 6, 12, 18, 24, 30, 36, 44, 54, 66, 80, 96, 114, 136, 162, 194, 232, 278, 332, 394, 464,\n 540, 576],\n [0, 4, 8, 12, 18, 26, 36, 48, 62, 80, 104, 136, 180, 192]\n , [0, 0, 0, 0, 0, 0, 0] /* sfb21 pseudo sub bands */\n , [0, 0, 0, 0, 0, 0, 0] /* sfb12 pseudo sub bands */\n ),\n /* Table B.2.a: 16 kHz */\n new ScaleFac([0, 6, 12, 18, 24, 30, 36, 44, 54, 66, 80, 96, 116, 140, 168, 200, 238, 284, 336, 396, 464,\n 522, 576],\n [0, 4, 8, 12, 18, 26, 36, 48, 62, 80, 104, 134, 174, 192]\n , [0, 0, 0, 0, 0, 0, 0] /* sfb21 pseudo sub bands */\n , [0, 0, 0, 0, 0, 0, 0] /* sfb12 pseudo sub bands */\n ),\n /* Table B.8.b: 44.1 kHz */\n new ScaleFac([0, 4, 8, 12, 16, 20, 24, 30, 36, 44, 52, 62, 74, 90, 110, 134, 162, 196, 238, 288, 342, 418,\n 576],\n [0, 4, 8, 12, 16, 22, 30, 40, 52, 66, 84, 106, 136, 192]\n , [0, 0, 0, 0, 0, 0, 0] /* sfb21 pseudo sub bands */\n , [0, 0, 0, 0, 0, 0, 0] /* sfb12 pseudo sub bands */\n ),\n /* Table B.8.c: 48 kHz */\n new ScaleFac([0, 4, 8, 12, 16, 20, 24, 30, 36, 42, 50, 60, 72, 88, 106, 128, 156, 190, 230, 276, 330, 384,\n 576],\n [0, 4, 8, 12, 16, 22, 28, 38, 50, 64, 80, 100, 126, 192]\n , [0, 0, 0, 0, 0, 0, 0] /* sfb21 pseudo sub bands */\n , [0, 0, 0, 0, 0, 0, 0] /* sfb12 pseudo sub bands */\n ),\n /* Table B.8.a: 32 kHz */\n new ScaleFac([0, 4, 8, 12, 16, 20, 24, 30, 36, 44, 54, 66, 82, 102, 126, 156, 194, 240, 296, 364, 448, 550,\n 576],\n [0, 4, 8, 12, 16, 22, 30, 42, 58, 78, 104, 138, 180, 192]\n , [0, 0, 0, 0, 0, 0, 0] /* sfb21 pseudo sub bands */\n , [0, 0, 0, 0, 0, 0, 0] /* sfb12 pseudo sub bands */\n ),\n /* MPEG-2.5 11.025 kHz */\n new ScaleFac([0, 6, 12, 18, 24, 30, 36, 44, 54, 66, 80, 96, 116, 140, 168, 200, 238, 284, 336, 396, 464,\n 522, 576],\n [0 / 3, 12 / 3, 24 / 3, 36 / 3, 54 / 3, 78 / 3, 108 / 3, 144 / 3, 186 / 3, 240 / 3, 312 / 3,\n 402 / 3, 522 / 3, 576 / 3]\n , [0, 0, 0, 0, 0, 0, 0] /* sfb21 pseudo sub bands */\n , [0, 0, 0, 0, 0, 0, 0] /* sfb12 pseudo sub bands */\n ),\n /* MPEG-2.5 12 kHz */\n new ScaleFac([0, 6, 12, 18, 24, 30, 36, 44, 54, 66, 80, 96, 116, 140, 168, 200, 238, 284, 336, 396, 464,\n 522, 576],\n [0 / 3, 12 / 3, 24 / 3, 36 / 3, 54 / 3, 78 / 3, 108 / 3, 144 / 3, 186 / 3, 240 / 3, 312 / 3,\n 402 / 3, 522 / 3, 576 / 3]\n , [0, 0, 0, 0, 0, 0, 0] /* sfb21 pseudo sub bands */\n , [0, 0, 0, 0, 0, 0, 0] /* sfb12 pseudo sub bands */\n ),\n /* MPEG-2.5 8 kHz */\n new ScaleFac([0, 12, 24, 36, 48, 60, 72, 88, 108, 132, 160, 192, 232, 280, 336, 400, 476, 566, 568, 570,\n 572, 574, 576],\n [0 / 3, 24 / 3, 48 / 3, 72 / 3, 108 / 3, 156 / 3, 216 / 3, 288 / 3, 372 / 3, 480 / 3, 486 / 3,\n 492 / 3, 498 / 3, 576 / 3]\n , [0, 0, 0, 0, 0, 0, 0] /* sfb21 pseudo sub bands */\n , [0, 0, 0, 0, 0, 0, 0] /* sfb12 pseudo sub bands */\n )\n ];\n\n var pow20 = new_float(Q_MAX + Q_MAX2 + 1);\n var ipow20 = new_float(Q_MAX);\n var pow43 = new_float(PRECALC_SIZE);\n\n var adj43 = new_float(PRECALC_SIZE);\n this.adj43 = adj43;\n\n /**\n *
\n     * compute the ATH for each scalefactor band cd range: 0..96db\n     *\n     * Input: 3.3kHz signal 32767 amplitude (3.3kHz is where ATH is smallest =\n     * -5db) longblocks: sfb=12 en0/bw=-11db max_en0 = 1.3db shortblocks: sfb=5\n     * -9db 0db\n     *\n     * Input: 1 1 1 1 1 1 1 -1 -1 -1 -1 -1 -1 -1 (repeated) longblocks: amp=1\n     * sfb=12 en0/bw=-103 db max_en0 = -92db amp=32767 sfb=12 -12 db -1.4db\n     *\n     * Input: 1 1 1 1 1 1 1 -1 -1 -1 -1 -1 -1 -1 (repeated) shortblocks: amp=1\n     * sfb=5 en0/bw= -99 -86 amp=32767 sfb=5 -9 db 4db\n     *\n     *\n     * MAX energy of largest wave at 3.3kHz = 1db AVE energy of largest wave at\n     * 3.3kHz = -11db Let's take AVE: -11db = maximum signal in sfb=12. Dynamic\n     * range of CD: 96db. Therefor energy of smallest audible wave in sfb=12 =\n     * -11 - 96 = -107db = ATH at 3.3kHz.\n     *\n     * ATH formula for this wave: -5db. To adjust to LAME scaling, we need ATH =\n     * ATH_formula - 103 (db) ATH = ATH * 2.5e-10 (ener)\n     * 
\n */\n function ATHmdct(gfp, f) {\n var ath = psy.ATHformula(f, gfp);\n\n ath -= NSATHSCALE;\n\n /* modify the MDCT scaling for the ATH and convert to energy */\n ath = Math.pow(10.0, ath / 10.0 + gfp.ATHlower);\n return ath;\n }\n\n function compute_ath(gfp) {\n var ATH_l = gfp.internal_flags.ATH.l;\n var ATH_psfb21 = gfp.internal_flags.ATH.psfb21;\n var ATH_s = gfp.internal_flags.ATH.s;\n var ATH_psfb12 = gfp.internal_flags.ATH.psfb12;\n var gfc = gfp.internal_flags;\n var samp_freq = gfp.out_samplerate;\n\n for (var sfb = 0; sfb < Encoder.SBMAX_l; sfb++) {\n var start = gfc.scalefac_band.l[sfb];\n var end = gfc.scalefac_band.l[sfb + 1];\n ATH_l[sfb] = Float.MAX_VALUE;\n for (var i = start; i < end; i++) {\n var freq = i * samp_freq / (2 * 576);\n var ATH_f = ATHmdct(gfp, freq);\n /* freq in kHz */\n ATH_l[sfb] = Math.min(ATH_l[sfb], ATH_f);\n }\n }\n\n for (var sfb = 0; sfb < Encoder.PSFB21; sfb++) {\n var start = gfc.scalefac_band.psfb21[sfb];\n var end = gfc.scalefac_band.psfb21[sfb + 1];\n ATH_psfb21[sfb] = Float.MAX_VALUE;\n for (var i = start; i < end; i++) {\n var freq = i * samp_freq / (2 * 576);\n var ATH_f = ATHmdct(gfp, freq);\n /* freq in kHz */\n ATH_psfb21[sfb] = Math.min(ATH_psfb21[sfb], ATH_f);\n }\n }\n\n for (var sfb = 0; sfb < Encoder.SBMAX_s; sfb++) {\n var start = gfc.scalefac_band.s[sfb];\n var end = gfc.scalefac_band.s[sfb + 1];\n ATH_s[sfb] = Float.MAX_VALUE;\n for (var i = start; i < end; i++) {\n var freq = i * samp_freq / (2 * 192);\n var ATH_f = ATHmdct(gfp, freq);\n /* freq in kHz */\n ATH_s[sfb] = Math.min(ATH_s[sfb], ATH_f);\n }\n ATH_s[sfb] *= (gfc.scalefac_band.s[sfb + 1] - gfc.scalefac_band.s[sfb]);\n }\n\n for (var sfb = 0; sfb < Encoder.PSFB12; sfb++) {\n var start = gfc.scalefac_band.psfb12[sfb];\n var end = gfc.scalefac_band.psfb12[sfb + 1];\n ATH_psfb12[sfb] = Float.MAX_VALUE;\n for (var i = start; i < end; i++) {\n var freq = i * samp_freq / (2 * 192);\n var ATH_f = ATHmdct(gfp, freq);\n /* freq in kHz */\n ATH_psfb12[sfb] = Math.min(ATH_psfb12[sfb], ATH_f);\n }\n /* not sure about the following */\n ATH_psfb12[sfb] *= (gfc.scalefac_band.s[13] - gfc.scalefac_band.s[12]);\n }\n\n /*\n * no-ATH mode: reduce ATH to -200 dB\n */\n if (gfp.noATH) {\n for (var sfb = 0; sfb < Encoder.SBMAX_l; sfb++) {\n ATH_l[sfb] = 1E-20;\n }\n for (var sfb = 0; sfb < Encoder.PSFB21; sfb++) {\n ATH_psfb21[sfb] = 1E-20;\n }\n for (var sfb = 0; sfb < Encoder.SBMAX_s; sfb++) {\n ATH_s[sfb] = 1E-20;\n }\n for (var sfb = 0; sfb < Encoder.PSFB12; sfb++) {\n ATH_psfb12[sfb] = 1E-20;\n }\n }\n\n /*\n * work in progress, don't rely on it too much\n */\n gfc.ATH.floor = 10. * Math.log10(ATHmdct(gfp, -1.));\n }\n\n /**\n * initialization for iteration_loop\n */\n this.iteration_init = function (gfp) {\n var gfc = gfp.internal_flags;\n var l3_side = gfc.l3_side;\n var i;\n\n if (gfc.iteration_init_init == 0) {\n gfc.iteration_init_init = 1;\n\n l3_side.main_data_begin = 0;\n compute_ath(gfp);\n\n pow43[0] = 0.0;\n for (i = 1; i < PRECALC_SIZE; i++)\n pow43[i] = Math.pow(i, 4.0 / 3.0);\n\n for (i = 0; i < PRECALC_SIZE - 1; i++)\n adj43[i] = ((i + 1) - Math.pow(\n 0.5 * (pow43[i] + pow43[i + 1]), 0.75));\n adj43[i] = 0.5;\n\n for (i = 0; i < Q_MAX; i++)\n ipow20[i] = Math.pow(2.0, (i - 210) * -0.1875);\n for (i = 0; i <= Q_MAX + Q_MAX2; i++)\n pow20[i] = Math.pow(2.0, (i - 210 - Q_MAX2) * 0.25);\n\n tak.huffman_init(gfc);\n\n {\n var bass, alto, treble, sfb21;\n\n i = (gfp.exp_nspsytune >> 2) & 63;\n if (i >= 32)\n i -= 64;\n bass = Math.pow(10, i / 4.0 / 10.0);\n\n i = (gfp.exp_nspsytune >> 8) & 63;\n if (i >= 32)\n i -= 64;\n alto = Math.pow(10, i / 4.0 / 10.0);\n\n i = (gfp.exp_nspsytune >> 14) & 63;\n if (i >= 32)\n i -= 64;\n treble = Math.pow(10, i / 4.0 / 10.0);\n\n /*\n * to be compatible with Naoki's original code, the next 6 bits\n * define only the amount of changing treble for sfb21\n */\n i = (gfp.exp_nspsytune >> 20) & 63;\n if (i >= 32)\n i -= 64;\n sfb21 = treble * Math.pow(10, i / 4.0 / 10.0);\n for (i = 0; i < Encoder.SBMAX_l; i++) {\n var f;\n if (i <= 6)\n f = bass;\n else if (i <= 13)\n f = alto;\n else if (i <= 20)\n f = treble;\n else\n f = sfb21;\n\n gfc.nsPsy.longfact[i] = f;\n }\n for (i = 0; i < Encoder.SBMAX_s; i++) {\n var f;\n if (i <= 5)\n f = bass;\n else if (i <= 10)\n f = alto;\n else if (i <= 11)\n f = treble;\n else\n f = sfb21;\n\n gfc.nsPsy.shortfact[i] = f;\n }\n }\n }\n }\n\n /**\n * allocate bits among 2 channels based on PE
\n * mt 6/99
\n * bugfixes rh 8/01: often allocated more than the allowed 4095 bits\n */\n this.on_pe = function (gfp, pe,\n targ_bits, mean_bits, gr, cbr) {\n var gfc = gfp.internal_flags;\n var tbits = 0, bits;\n var add_bits = new_int(2);\n var ch;\n\n /* allocate targ_bits for granule */\n var mb = new MeanBits(tbits);\n var extra_bits = rv.ResvMaxBits(gfp, mean_bits, mb, cbr);\n tbits = mb.bits;\n /* maximum allowed bits for this granule */\n var max_bits = tbits + extra_bits;\n if (max_bits > LameInternalFlags.MAX_BITS_PER_GRANULE) {\n // hard limit per granule\n max_bits = LameInternalFlags.MAX_BITS_PER_GRANULE;\n }\n for (bits = 0, ch = 0; ch < gfc.channels_out; ++ch) {\n /******************************************************************\n * allocate bits for each channel\n ******************************************************************/\n targ_bits[ch] = Math.min(LameInternalFlags.MAX_BITS_PER_CHANNEL,\n tbits / gfc.channels_out);\n\n add_bits[ch] = 0 | (targ_bits[ch] * pe[gr][ch] / 700.0 - targ_bits[ch]);\n\n /* at most increase bits by 1.5*average */\n if (add_bits[ch] > mean_bits * 3 / 4)\n add_bits[ch] = mean_bits * 3 / 4;\n if (add_bits[ch] < 0)\n add_bits[ch] = 0;\n\n if (add_bits[ch] + targ_bits[ch] > LameInternalFlags.MAX_BITS_PER_CHANNEL)\n add_bits[ch] = Math.max(0,\n LameInternalFlags.MAX_BITS_PER_CHANNEL - targ_bits[ch]);\n\n bits += add_bits[ch];\n }\n if (bits > extra_bits) {\n for (ch = 0; ch < gfc.channels_out; ++ch) {\n add_bits[ch] = extra_bits * add_bits[ch] / bits;\n }\n }\n\n for (ch = 0; ch < gfc.channels_out; ++ch) {\n targ_bits[ch] += add_bits[ch];\n extra_bits -= add_bits[ch];\n }\n\n for (bits = 0, ch = 0; ch < gfc.channels_out; ++ch) {\n bits += targ_bits[ch];\n }\n if (bits > LameInternalFlags.MAX_BITS_PER_GRANULE) {\n var sum = 0;\n for (ch = 0; ch < gfc.channels_out; ++ch) {\n targ_bits[ch] *= LameInternalFlags.MAX_BITS_PER_GRANULE;\n targ_bits[ch] /= bits;\n sum += targ_bits[ch];\n }\n assert(sum <= LameInternalFlags.MAX_BITS_PER_GRANULE);\n }\n\n return max_bits;\n }\n\n this.reduce_side = function (targ_bits, ms_ener_ratio, mean_bits, max_bits) {\n assert(max_bits <= LameInternalFlags.MAX_BITS_PER_GRANULE);\n assert(targ_bits[0] + targ_bits[1] <= LameInternalFlags.MAX_BITS_PER_GRANULE);\n\n /*\n * ms_ener_ratio = 0: allocate 66/33 mid/side fac=.33 ms_ener_ratio =.5:\n * allocate 50/50 mid/side fac= 0\n */\n /* 75/25 split is fac=.5 */\n var fac = .33 * (.5 - ms_ener_ratio) / .5;\n if (fac < 0)\n fac = 0;\n if (fac > .5)\n fac = .5;\n\n /* number of bits to move from side channel to mid channel */\n /* move_bits = fac*targ_bits[1]; */\n var move_bits = 0 | (fac * .5 * (targ_bits[0] + targ_bits[1]));\n\n if (move_bits > LameInternalFlags.MAX_BITS_PER_CHANNEL - targ_bits[0]) {\n move_bits = LameInternalFlags.MAX_BITS_PER_CHANNEL - targ_bits[0];\n }\n if (move_bits < 0)\n move_bits = 0;\n\n if (targ_bits[1] >= 125) {\n /* dont reduce side channel below 125 bits */\n if (targ_bits[1] - move_bits > 125) {\n\n /* if mid channel already has 2x more than average, dont bother */\n /* mean_bits = bits per granule (for both channels) */\n if (targ_bits[0] < mean_bits)\n targ_bits[0] += move_bits;\n targ_bits[1] -= move_bits;\n } else {\n targ_bits[0] += targ_bits[1] - 125;\n targ_bits[1] = 125;\n }\n }\n\n move_bits = targ_bits[0] + targ_bits[1];\n if (move_bits > max_bits) {\n targ_bits[0] = (max_bits * targ_bits[0]) / move_bits;\n targ_bits[1] = (max_bits * targ_bits[1]) / move_bits;\n }\n assert(targ_bits[0] <= LameInternalFlags.MAX_BITS_PER_CHANNEL);\n assert(targ_bits[1] <= LameInternalFlags.MAX_BITS_PER_CHANNEL);\n assert(targ_bits[0] + targ_bits[1] <= LameInternalFlags.MAX_BITS_PER_GRANULE);\n };\n\n /**\n * Robert Hegemann 2001-04-27:\n * this adjusts the ATH, keeping the original noise floor\n * affects the higher frequencies more than the lower ones\n */\n this.athAdjust = function (a, x, athFloor) {\n /*\n * work in progress\n */\n var o = 90.30873362;\n var p = 94.82444863;\n var u = Util.FAST_LOG10_X(x, 10.0);\n var v = a * a;\n var w = 0.0;\n u -= athFloor;\n /* undo scaling */\n if (v > 1E-20)\n w = 1. + Util.FAST_LOG10_X(v, 10.0 / o);\n if (w < 0)\n w = 0.;\n u *= w;\n u += athFloor + o - p;\n /* redo scaling */\n\n return Math.pow(10., 0.1 * u);\n };\n\n /**\n * Calculate the allowed distortion for each scalefactor band, as determined\n * by the psychoacoustic model. xmin(sb) = ratio(sb) * en(sb) / bw(sb)\n *\n * returns number of sfb's with energy > ATH\n */\n this.calc_xmin = function (gfp, ratio, cod_info, pxmin) {\n var pxminPos = 0;\n var gfc = gfp.internal_flags;\n var gsfb, j = 0, ath_over = 0;\n var ATH = gfc.ATH;\n var xr = cod_info.xr;\n var enable_athaa_fix = (gfp.VBR == VbrMode.vbr_mtrh) ? 1 : 0;\n var masking_lower = gfc.masking_lower;\n\n if (gfp.VBR == VbrMode.vbr_mtrh || gfp.VBR == VbrMode.vbr_mt) {\n /* was already done in PSY-Model */\n masking_lower = 1.0;\n }\n\n for (gsfb = 0; gsfb < cod_info.psy_lmax; gsfb++) {\n var en0, xmin;\n var rh1, rh2;\n var width, l;\n\n if (gfp.VBR == VbrMode.vbr_rh || gfp.VBR == VbrMode.vbr_mtrh)\n xmin = athAdjust(ATH.adjust, ATH.l[gsfb], ATH.floor);\n else\n xmin = ATH.adjust * ATH.l[gsfb];\n\n width = cod_info.width[gsfb];\n rh1 = xmin / width;\n rh2 = DBL_EPSILON;\n l = width >> 1;\n en0 = 0.0;\n do {\n var xa, xb;\n xa = xr[j] * xr[j];\n en0 += xa;\n rh2 += (xa < rh1) ? xa : rh1;\n j++;\n xb = xr[j] * xr[j];\n en0 += xb;\n rh2 += (xb < rh1) ? xb : rh1;\n j++;\n } while (--l > 0);\n if (en0 > xmin)\n ath_over++;\n\n if (gsfb == Encoder.SBPSY_l) {\n var x = xmin * gfc.nsPsy.longfact[gsfb];\n if (rh2 < x) {\n rh2 = x;\n }\n }\n if (enable_athaa_fix != 0) {\n xmin = rh2;\n }\n if (!gfp.ATHonly) {\n var e = ratio.en.l[gsfb];\n if (e > 0.0) {\n var x;\n x = en0 * ratio.thm.l[gsfb] * masking_lower / e;\n if (enable_athaa_fix != 0)\n x *= gfc.nsPsy.longfact[gsfb];\n if (xmin < x)\n xmin = x;\n }\n }\n if (enable_athaa_fix != 0)\n pxmin[pxminPos++] = xmin;\n else\n pxmin[pxminPos++] = xmin * gfc.nsPsy.longfact[gsfb];\n }\n /* end of long block loop */\n\n /* use this function to determine the highest non-zero coeff */\n var max_nonzero = 575;\n if (cod_info.block_type != Encoder.SHORT_TYPE) {\n // NORM, START or STOP type, but not SHORT\n var k = 576;\n while (k-- != 0 && BitStream.EQ(xr[k], 0)) {\n max_nonzero = k;\n }\n }\n cod_info.max_nonzero_coeff = max_nonzero;\n\n for (var sfb = cod_info.sfb_smin; gsfb < cod_info.psymax; sfb++, gsfb += 3) {\n var width, b;\n var tmpATH;\n if (gfp.VBR == VbrMode.vbr_rh || gfp.VBR == VbrMode.vbr_mtrh)\n tmpATH = athAdjust(ATH.adjust, ATH.s[sfb], ATH.floor);\n else\n tmpATH = ATH.adjust * ATH.s[sfb];\n\n width = cod_info.width[gsfb];\n for (b = 0; b < 3; b++) {\n var en0 = 0.0, xmin;\n var rh1, rh2;\n var l = width >> 1;\n\n rh1 = tmpATH / width;\n rh2 = DBL_EPSILON;\n do {\n var xa, xb;\n xa = xr[j] * xr[j];\n en0 += xa;\n rh2 += (xa < rh1) ? xa : rh1;\n j++;\n xb = xr[j] * xr[j];\n en0 += xb;\n rh2 += (xb < rh1) ? xb : rh1;\n j++;\n } while (--l > 0);\n if (en0 > tmpATH)\n ath_over++;\n if (sfb == Encoder.SBPSY_s) {\n var x = tmpATH * gfc.nsPsy.shortfact[sfb];\n if (rh2 < x) {\n rh2 = x;\n }\n }\n if (enable_athaa_fix != 0)\n xmin = rh2;\n else\n xmin = tmpATH;\n\n if (!gfp.ATHonly && !gfp.ATHshort) {\n var e = ratio.en.s[sfb][b];\n if (e > 0.0) {\n var x;\n x = en0 * ratio.thm.s[sfb][b] * masking_lower / e;\n if (enable_athaa_fix != 0)\n x *= gfc.nsPsy.shortfact[sfb];\n if (xmin < x)\n xmin = x;\n }\n }\n if (enable_athaa_fix != 0)\n pxmin[pxminPos++] = xmin;\n else\n pxmin[pxminPos++] = xmin * gfc.nsPsy.shortfact[sfb];\n }\n /* b */\n if (gfp.useTemporal) {\n if (pxmin[pxminPos - 3] > pxmin[pxminPos - 3 + 1])\n pxmin[pxminPos - 3 + 1] += (pxmin[pxminPos - 3] - pxmin[pxminPos - 3 + 1])\n * gfc.decay;\n if (pxmin[pxminPos - 3 + 1] > pxmin[pxminPos - 3 + 2])\n pxmin[pxminPos - 3 + 2] += (pxmin[pxminPos - 3 + 1] - pxmin[pxminPos - 3 + 2])\n * gfc.decay;\n }\n }\n /* end of short block sfb loop */\n\n return ath_over;\n };\n\n function StartLine(j) {\n this.s = j;\n }\n\n this.calc_noise_core = function (cod_info, startline, l, step) {\n var noise = 0;\n var j = startline.s;\n var ix = cod_info.l3_enc;\n\n if (j > cod_info.count1) {\n while ((l--) != 0) {\n var temp;\n temp = cod_info.xr[j];\n j++;\n noise += temp * temp;\n temp = cod_info.xr[j];\n j++;\n noise += temp * temp;\n }\n } else if (j > cod_info.big_values) {\n var ix01 = new_float(2);\n ix01[0] = 0;\n ix01[1] = step;\n while ((l--) != 0) {\n var temp;\n temp = Math.abs(cod_info.xr[j]) - ix01[ix[j]];\n j++;\n noise += temp * temp;\n temp = Math.abs(cod_info.xr[j]) - ix01[ix[j]];\n j++;\n noise += temp * temp;\n }\n } else {\n while ((l--) != 0) {\n var temp;\n temp = Math.abs(cod_info.xr[j]) - pow43[ix[j]] * step;\n j++;\n noise += temp * temp;\n temp = Math.abs(cod_info.xr[j]) - pow43[ix[j]] * step;\n j++;\n noise += temp * temp;\n }\n }\n\n startline.s = j;\n return noise;\n }\n\n /**\n *
\n     * -oo dB  =>  -1.00\n     * - 6 dB  =>  -0.97\n     * - 3 dB  =>  -0.80\n     * - 2 dB  =>  -0.64\n     * - 1 dB  =>  -0.38\n     *   0 dB  =>   0.00\n     * + 1 dB  =>  +0.49\n     * + 2 dB  =>  +1.06\n     * + 3 dB  =>  +1.68\n     * + 6 dB  =>  +3.69\n     * +10 dB  =>  +6.45\n     * 
\n */\n this.calc_noise = function (cod_info, l3_xmin, distort, res, prev_noise) {\n var distortPos = 0;\n var l3_xminPos = 0;\n var sfb, l, over = 0;\n var over_noise_db = 0;\n /* 0 dB relative to masking */\n var tot_noise_db = 0;\n /* -200 dB relative to masking */\n var max_noise = -20.0;\n var j = 0;\n var scalefac = cod_info.scalefac;\n var scalefacPos = 0;\n\n res.over_SSD = 0;\n\n for (sfb = 0; sfb < cod_info.psymax; sfb++) {\n var s = cod_info.global_gain\n - (((scalefac[scalefacPos++]) + (cod_info.preflag != 0 ? pretab[sfb]\n : 0)) << (cod_info.scalefac_scale + 1))\n - cod_info.subblock_gain[cod_info.window[sfb]] * 8;\n var noise = 0.0;\n\n if (prev_noise != null && (prev_noise.step[sfb] == s)) {\n\n /* use previously computed values */\n noise = prev_noise.noise[sfb];\n j += cod_info.width[sfb];\n distort[distortPos++] = noise / l3_xmin[l3_xminPos++];\n\n noise = prev_noise.noise_log[sfb];\n\n } else {\n var step = POW20(s);\n l = cod_info.width[sfb] >> 1;\n\n if ((j + cod_info.width[sfb]) > cod_info.max_nonzero_coeff) {\n var usefullsize;\n usefullsize = cod_info.max_nonzero_coeff - j + 1;\n\n if (usefullsize > 0)\n l = usefullsize >> 1;\n else\n l = 0;\n }\n\n var sl = new StartLine(j);\n noise = this.calc_noise_core(cod_info, sl, l, step);\n j = sl.s;\n\n if (prev_noise != null) {\n /* save noise values */\n prev_noise.step[sfb] = s;\n prev_noise.noise[sfb] = noise;\n }\n\n noise = distort[distortPos++] = noise / l3_xmin[l3_xminPos++];\n\n /* multiplying here is adding in dB, but can overflow */\n noise = Util.FAST_LOG10(Math.max(noise, 1E-20));\n\n if (prev_noise != null) {\n /* save noise values */\n prev_noise.noise_log[sfb] = noise;\n }\n }\n\n if (prev_noise != null) {\n /* save noise values */\n prev_noise.global_gain = cod_info.global_gain;\n }\n\n tot_noise_db += noise;\n\n if (noise > 0.0) {\n var tmp;\n\n tmp = Math.max(0 | (noise * 10 + .5), 1);\n res.over_SSD += tmp * tmp;\n\n over++;\n /* multiplying here is adding in dB -but can overflow */\n /* over_noise *= noise; */\n over_noise_db += noise;\n }\n max_noise = Math.max(max_noise, noise);\n\n }\n\n res.over_count = over;\n res.tot_noise = tot_noise_db;\n res.over_noise = over_noise_db;\n res.max_noise = max_noise;\n\n return over;\n }\n\n /**\n * updates plotting data\n *\n * Mark Taylor 2000-??-??\n *\n * Robert Hegemann: moved noise/distortion calc into it\n */\n this.set_pinfo = function (gfp, cod_info, ratio, gr, ch) {\n var gfc = gfp.internal_flags;\n var sfb, sfb2;\n var l;\n var en0, en1;\n var ifqstep = (cod_info.scalefac_scale == 0) ? .5 : 1.0;\n var scalefac = cod_info.scalefac;\n\n var l3_xmin = new_float(L3Side.SFBMAX);\n var xfsf = new_float(L3Side.SFBMAX);\n var noise = new CalcNoiseResult();\n\n calc_xmin(gfp, ratio, cod_info, l3_xmin);\n calc_noise(cod_info, l3_xmin, xfsf, noise, null);\n\n var j = 0;\n sfb2 = cod_info.sfb_lmax;\n if (cod_info.block_type != Encoder.SHORT_TYPE\n && 0 == cod_info.mixed_block_flag)\n sfb2 = 22;\n for (sfb = 0; sfb < sfb2; sfb++) {\n var start = gfc.scalefac_band.l[sfb];\n var end = gfc.scalefac_band.l[sfb + 1];\n var bw = end - start;\n for (en0 = 0.0; j < end; j++)\n en0 += cod_info.xr[j] * cod_info.xr[j];\n en0 /= bw;\n /* convert to MDCT units */\n /* scaling so it shows up on FFT plot */\n en1 = 1e15;\n gfc.pinfo.en[gr][ch][sfb] = en1 * en0;\n gfc.pinfo.xfsf[gr][ch][sfb] = en1 * l3_xmin[sfb] * xfsf[sfb] / bw;\n\n if (ratio.en.l[sfb] > 0 && !gfp.ATHonly)\n en0 = en0 / ratio.en.l[sfb];\n else\n en0 = 0.0;\n\n gfc.pinfo.thr[gr][ch][sfb] = en1\n * Math.max(en0 * ratio.thm.l[sfb], gfc.ATH.l[sfb]);\n\n /* there is no scalefactor bands >= SBPSY_l */\n gfc.pinfo.LAMEsfb[gr][ch][sfb] = 0;\n if (cod_info.preflag != 0 && sfb >= 11)\n gfc.pinfo.LAMEsfb[gr][ch][sfb] = -ifqstep * pretab[sfb];\n\n if (sfb < Encoder.SBPSY_l) {\n /* scfsi should be decoded by caller side */\n assert(scalefac[sfb] >= 0);\n gfc.pinfo.LAMEsfb[gr][ch][sfb] -= ifqstep * scalefac[sfb];\n }\n }\n /* for sfb */\n\n if (cod_info.block_type == Encoder.SHORT_TYPE) {\n sfb2 = sfb;\n for (sfb = cod_info.sfb_smin; sfb < Encoder.SBMAX_s; sfb++) {\n var start = gfc.scalefac_band.s[sfb];\n var end = gfc.scalefac_band.s[sfb + 1];\n var bw = end - start;\n for (var i = 0; i < 3; i++) {\n for (en0 = 0.0, l = start; l < end; l++) {\n en0 += cod_info.xr[j] * cod_info.xr[j];\n j++;\n }\n en0 = Math.max(en0 / bw, 1e-20);\n /* convert to MDCT units */\n /* scaling so it shows up on FFT plot */\n en1 = 1e15;\n\n gfc.pinfo.en_s[gr][ch][3 * sfb + i] = en1 * en0;\n gfc.pinfo.xfsf_s[gr][ch][3 * sfb + i] = en1 * l3_xmin[sfb2]\n * xfsf[sfb2] / bw;\n if (ratio.en.s[sfb][i] > 0)\n en0 = en0 / ratio.en.s[sfb][i];\n else\n en0 = 0.0;\n if (gfp.ATHonly || gfp.ATHshort)\n en0 = 0;\n\n gfc.pinfo.thr_s[gr][ch][3 * sfb + i] = en1\n * Math.max(en0 * ratio.thm.s[sfb][i],\n gfc.ATH.s[sfb]);\n\n /* there is no scalefactor bands >= SBPSY_s */\n gfc.pinfo.LAMEsfb_s[gr][ch][3 * sfb + i] = -2.0\n * cod_info.subblock_gain[i];\n if (sfb < Encoder.SBPSY_s) {\n gfc.pinfo.LAMEsfb_s[gr][ch][3 * sfb + i] -= ifqstep\n * scalefac[sfb2];\n }\n sfb2++;\n }\n }\n }\n /* block type short */\n gfc.pinfo.LAMEqss[gr][ch] = cod_info.global_gain;\n gfc.pinfo.LAMEmainbits[gr][ch] = cod_info.part2_3_length\n + cod_info.part2_length;\n gfc.pinfo.LAMEsfbits[gr][ch] = cod_info.part2_length;\n\n gfc.pinfo.over[gr][ch] = noise.over_count;\n gfc.pinfo.max_noise[gr][ch] = noise.max_noise * 10.0;\n gfc.pinfo.over_noise[gr][ch] = noise.over_noise * 10.0;\n gfc.pinfo.tot_noise[gr][ch] = noise.tot_noise * 10.0;\n gfc.pinfo.over_SSD[gr][ch] = noise.over_SSD;\n }\n\n /**\n * updates plotting data for a whole frame\n *\n * Robert Hegemann 2000-10-21\n */\n function set_frame_pinfo(gfp, ratio) {\n var gfc = gfp.internal_flags;\n\n gfc.masking_lower = 1.0;\n\n /*\n * for every granule and channel patch l3_enc and set info\n */\n for (var gr = 0; gr < gfc.mode_gr; gr++) {\n for (var ch = 0; ch < gfc.channels_out; ch++) {\n var cod_info = gfc.l3_side.tt[gr][ch];\n var scalefac_sav = new_int(L3Side.SFBMAX);\n System.arraycopy(cod_info.scalefac, 0, scalefac_sav, 0,\n scalefac_sav.length);\n\n /*\n * reconstruct the scalefactors in case SCFSI was used\n */\n if (gr == 1) {\n var sfb;\n for (sfb = 0; sfb < cod_info.sfb_lmax; sfb++) {\n if (cod_info.scalefac[sfb] < 0) /* scfsi */\n cod_info.scalefac[sfb] = gfc.l3_side.tt[0][ch].scalefac[sfb];\n }\n }\n\n set_pinfo(gfp, cod_info, ratio[gr][ch], gr, ch);\n System.arraycopy(scalefac_sav, 0, cod_info.scalefac, 0,\n scalefac_sav.length);\n }\n /* for ch */\n }\n /* for gr */\n }\n\n}\n\nmodule.exports = QuantizePVT;\n","/*\n *\tMP3 huffman table selecting and bit counting\n *\n *\tCopyright (c) 1999-2005 Takehiro TOMINAGA\n *\tCopyright (c) 2002-2005 Gabriel Bouvigne\n *\n * This library is free software; you can redistribute it and/or\n * modify it under the terms of the GNU Lesser General Public\n * License as published by the Free Software Foundation; either\n * version 2 of the License, or (at your option) any later version.\n *\n * This library is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\t See the GNU\n * Library General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this library; if not, write to the\n * Free Software Foundation, Inc., 59 Temple Place - Suite 330,\n * Boston, MA 02111-1307, USA.\n */\n\n/* $Id: Takehiro.java,v 1.26 2011/05/24 20:48:06 kenchis Exp $ */\n\n//package mp3;\n\n//import java.util.Arrays;\nvar common = require('./common.js');\nvar System = common.System;\nvar VbrMode = common.VbrMode;\nvar Float = common.Float;\nvar ShortBlock = common.ShortBlock;\nvar Util = common.Util;\nvar Arrays = common.Arrays;\nvar new_array_n = common.new_array_n;\nvar new_byte = common.new_byte;\nvar new_double = common.new_double;\nvar new_float = common.new_float;\nvar new_float_n = common.new_float_n;\nvar new_int = common.new_int;\nvar new_int_n = common.new_int_n;\nvar assert = common.assert;\n\nvar Encoder = require('./Encoder.js');\nvar Tables = require('./Tables.js');\nvar GrInfo = require('./GrInfo.js');\nvar QuantizePVT = require('./QuantizePVT.js');\n\n\nfunction Takehiro() {\n\n var qupvt = null;\n this.qupvt = null;\n\n this.setModules = function (_qupvt) {\n this.qupvt = _qupvt;\n qupvt = _qupvt;\n }\n\n function Bits(b) {\n this.bits = 0 | b;\n }\n\n var subdv_table = [[0, 0], /* 0 bands */\n [0, 0], /* 1 bands */\n [0, 0], /* 2 bands */\n [0, 0], /* 3 bands */\n [0, 0], /* 4 bands */\n [0, 1], /* 5 bands */\n [1, 1], /* 6 bands */\n [1, 1], /* 7 bands */\n [1, 2], /* 8 bands */\n [2, 2], /* 9 bands */\n [2, 3], /* 10 bands */\n [2, 3], /* 11 bands */\n [3, 4], /* 12 bands */\n [3, 4], /* 13 bands */\n [3, 4], /* 14 bands */\n [4, 5], /* 15 bands */\n [4, 5], /* 16 bands */\n [4, 6], /* 17 bands */\n [5, 6], /* 18 bands */\n [5, 6], /* 19 bands */\n [5, 7], /* 20 bands */\n [6, 7], /* 21 bands */\n [6, 7], /* 22 bands */\n ];\n\n /**\n * nonlinear quantization of xr More accurate formula than the ISO formula.\n * Takes into account the fact that we are quantizing xr . ix, but we want\n * ix^4/3 to be as close as possible to x^4/3. (taking the nearest int would\n * mean ix is as close as possible to xr, which is different.)\n *\n * From Segher Boessenkool 11/1999\n *\n * 09/2000: ASM code removed in favor of IEEE754 hack by Takehiro Tominaga.\n * If you need the ASM code, check CVS circa Aug 2000.\n *\n * 01/2004: Optimizations by Gabriel Bouvigne\n */\n function quantize_lines_xrpow_01(l, istep, xr, xrPos, ix, ixPos) {\n var compareval0 = (1.0 - 0.4054) / istep;\n\n assert(l > 0);\n l = l >> 1;\n while ((l--) != 0) {\n ix[ixPos++] = (compareval0 > xr[xrPos++]) ? 0 : 1;\n ix[ixPos++] = (compareval0 > xr[xrPos++]) ? 0 : 1;\n }\n }\n\n /**\n * XRPOW_FTOI is a macro to convert floats to ints.
\n * if XRPOW_FTOI(x) = nearest_int(x), then QUANTFAC(x)=adj43asm[x]
\n * ROUNDFAC= -0.0946
\n *\n * if XRPOW_FTOI(x) = floor(x), then QUANTFAC(x)=asj43[x]
\n * ROUNDFAC=0.4054
\n *\n * Note: using floor() or 0| is extremely slow. On machines where the\n * TAKEHIRO_IEEE754_HACK code above does not work, it is worthwile to write\n * some ASM for XRPOW_FTOI().\n */\n function quantize_lines_xrpow(l, istep, xr, xrPos, ix, ixPos) {\n assert(l > 0);\n\n l = l >> 1;\n var remaining = l % 2;\n l = l >> 1;\n while (l-- != 0) {\n var x0, x1, x2, x3;\n var rx0, rx1, rx2, rx3;\n\n x0 = xr[xrPos++] * istep;\n x1 = xr[xrPos++] * istep;\n rx0 = 0 | x0;\n x2 = xr[xrPos++] * istep;\n rx1 = 0 | x1;\n x3 = xr[xrPos++] * istep;\n rx2 = 0 | x2;\n x0 += qupvt.adj43[rx0];\n rx3 = 0 | x3;\n x1 += qupvt.adj43[rx1];\n ix[ixPos++] = 0 | x0;\n x2 += qupvt.adj43[rx2];\n ix[ixPos++] = 0 | x1;\n x3 += qupvt.adj43[rx3];\n ix[ixPos++] = 0 | x2;\n ix[ixPos++] = 0 | x3;\n }\n if (remaining != 0) {\n var x0, x1;\n var rx0, rx1;\n\n x0 = xr[xrPos++] * istep;\n x1 = xr[xrPos++] * istep;\n rx0 = 0 | x0;\n rx1 = 0 | x1;\n x0 += qupvt.adj43[rx0];\n x1 += qupvt.adj43[rx1];\n ix[ixPos++] = 0 | x0;\n ix[ixPos++] = 0 | x1;\n }\n }\n\n /**\n * Quantization function This function will select which lines to quantize\n * and call the proper quantization function\n */\n function quantize_xrpow(xp, pi, istep, codInfo, prevNoise) {\n /* quantize on xr^(3/4) instead of xr */\n var sfb;\n var sfbmax;\n var j = 0;\n var prev_data_use;\n var accumulate = 0;\n var accumulate01 = 0;\n var xpPos = 0;\n var iData = pi;\n var iDataPos = 0;\n var acc_iData = iData;\n var acc_iDataPos = 0;\n var acc_xp = xp;\n var acc_xpPos = 0;\n\n /*\n * Reusing previously computed data does not seems to work if global\n * gain is changed. Finding why it behaves this way would allow to use a\n * cache of previously computed values (let's 10 cached values per sfb)\n * that would probably provide a noticeable speedup\n */\n prev_data_use = (prevNoise != null && (codInfo.global_gain == prevNoise.global_gain));\n\n if (codInfo.block_type == Encoder.SHORT_TYPE)\n sfbmax = 38;\n else\n sfbmax = 21;\n\n for (sfb = 0; sfb <= sfbmax; sfb++) {\n var step = -1;\n\n if (prev_data_use || codInfo.block_type == Encoder.NORM_TYPE) {\n step = codInfo.global_gain\n - ((codInfo.scalefac[sfb] + (codInfo.preflag != 0 ? qupvt.pretab[sfb]\n : 0)) << (codInfo.scalefac_scale + 1))\n - codInfo.subblock_gain[codInfo.window[sfb]] * 8;\n }\n assert(codInfo.width[sfb] >= 0);\n if (prev_data_use && (prevNoise.step[sfb] == step)) {\n /*\n * do not recompute this part, but compute accumulated lines\n */\n if (accumulate != 0) {\n quantize_lines_xrpow(accumulate, istep, acc_xp, acc_xpPos,\n acc_iData, acc_iDataPos);\n accumulate = 0;\n }\n if (accumulate01 != 0) {\n quantize_lines_xrpow_01(accumulate01, istep, acc_xp,\n acc_xpPos, acc_iData, acc_iDataPos);\n accumulate01 = 0;\n }\n } else { /* should compute this part */\n var l = codInfo.width[sfb];\n\n if ((j + codInfo.width[sfb]) > codInfo.max_nonzero_coeff) {\n /* do not compute upper zero part */\n var usefullsize;\n usefullsize = codInfo.max_nonzero_coeff - j + 1;\n Arrays.fill(pi, codInfo.max_nonzero_coeff, 576, 0);\n l = usefullsize;\n\n if (l < 0) {\n l = 0;\n }\n\n /* no need to compute higher sfb values */\n sfb = sfbmax + 1;\n }\n\n /* accumulate lines to quantize */\n if (0 == accumulate && 0 == accumulate01) {\n acc_iData = iData;\n acc_iDataPos = iDataPos;\n acc_xp = xp;\n acc_xpPos = xpPos;\n }\n if (prevNoise != null && prevNoise.sfb_count1 > 0\n && sfb >= prevNoise.sfb_count1\n && prevNoise.step[sfb] > 0\n && step >= prevNoise.step[sfb]) {\n\n if (accumulate != 0) {\n quantize_lines_xrpow(accumulate, istep, acc_xp,\n acc_xpPos, acc_iData, acc_iDataPos);\n accumulate = 0;\n acc_iData = iData;\n acc_iDataPos = iDataPos;\n acc_xp = xp;\n acc_xpPos = xpPos;\n }\n accumulate01 += l;\n } else {\n if (accumulate01 != 0) {\n quantize_lines_xrpow_01(accumulate01, istep, acc_xp,\n acc_xpPos, acc_iData, acc_iDataPos);\n accumulate01 = 0;\n acc_iData = iData;\n acc_iDataPos = iDataPos;\n acc_xp = xp;\n acc_xpPos = xpPos;\n }\n accumulate += l;\n }\n\n if (l <= 0) {\n /*\n * rh: 20040215 may happen due to \"prev_data_use\"\n * optimization\n */\n if (accumulate01 != 0) {\n quantize_lines_xrpow_01(accumulate01, istep, acc_xp,\n acc_xpPos, acc_iData, acc_iDataPos);\n accumulate01 = 0;\n }\n if (accumulate != 0) {\n quantize_lines_xrpow(accumulate, istep, acc_xp,\n acc_xpPos, acc_iData, acc_iDataPos);\n accumulate = 0;\n }\n\n break;\n /* ends for-loop */\n }\n }\n if (sfb <= sfbmax) {\n iDataPos += codInfo.width[sfb];\n xpPos += codInfo.width[sfb];\n j += codInfo.width[sfb];\n }\n }\n if (accumulate != 0) { /* last data part */\n quantize_lines_xrpow(accumulate, istep, acc_xp, acc_xpPos,\n acc_iData, acc_iDataPos);\n accumulate = 0;\n }\n if (accumulate01 != 0) { /* last data part */\n quantize_lines_xrpow_01(accumulate01, istep, acc_xp, acc_xpPos,\n acc_iData, acc_iDataPos);\n accumulate01 = 0;\n }\n\n }\n\n /**\n * ix_max\n */\n function ix_max(ix, ixPos, endPos) {\n var max1 = 0, max2 = 0;\n\n do {\n var x1 = ix[ixPos++];\n var x2 = ix[ixPos++];\n if (max1 < x1)\n max1 = x1;\n\n if (max2 < x2)\n max2 = x2;\n } while (ixPos < endPos);\n if (max1 < max2)\n max1 = max2;\n return max1;\n }\n\n function count_bit_ESC(ix, ixPos, end, t1, t2, s) {\n /* ESC-table is used */\n var linbits = Tables.ht[t1].xlen * 65536 + Tables.ht[t2].xlen;\n var sum = 0, sum2;\n\n do {\n var x = ix[ixPos++];\n var y = ix[ixPos++];\n\n if (x != 0) {\n if (x > 14) {\n x = 15;\n sum += linbits;\n }\n x *= 16;\n }\n\n if (y != 0) {\n if (y > 14) {\n y = 15;\n sum += linbits;\n }\n x += y;\n }\n\n sum += Tables.largetbl[x];\n } while (ixPos < end);\n\n sum2 = sum & 0xffff;\n sum >>= 16;\n\n if (sum > sum2) {\n sum = sum2;\n t1 = t2;\n }\n\n s.bits += sum;\n return t1;\n }\n\n function count_bit_noESC(ix, ixPos, end, s) {\n /* No ESC-words */\n var sum1 = 0;\n var hlen1 = Tables.ht[1].hlen;\n\n do {\n var x = ix[ixPos + 0] * 2 + ix[ixPos + 1];\n ixPos += 2;\n sum1 += hlen1[x];\n } while (ixPos < end);\n\n s.bits += sum1;\n return 1;\n }\n\n function count_bit_noESC_from2(ix, ixPos, end, t1, s) {\n /* No ESC-words */\n var sum = 0, sum2;\n var xlen = Tables.ht[t1].xlen;\n var hlen;\n if (t1 == 2)\n hlen = Tables.table23;\n else\n hlen = Tables.table56;\n\n do {\n var x = ix[ixPos + 0] * xlen + ix[ixPos + 1];\n ixPos += 2;\n sum += hlen[x];\n } while (ixPos < end);\n\n sum2 = sum & 0xffff;\n sum >>= 16;\n\n if (sum > sum2) {\n sum = sum2;\n t1++;\n }\n\n s.bits += sum;\n return t1;\n }\n\n function count_bit_noESC_from3(ix, ixPos, end, t1, s) {\n /* No ESC-words */\n var sum1 = 0;\n var sum2 = 0;\n var sum3 = 0;\n var xlen = Tables.ht[t1].xlen;\n var hlen1 = Tables.ht[t1].hlen;\n var hlen2 = Tables.ht[t1 + 1].hlen;\n var hlen3 = Tables.ht[t1 + 2].hlen;\n\n do {\n var x = ix[ixPos + 0] * xlen + ix[ixPos + 1];\n ixPos += 2;\n sum1 += hlen1[x];\n sum2 += hlen2[x];\n sum3 += hlen3[x];\n } while (ixPos < end);\n var t = t1;\n if (sum1 > sum2) {\n sum1 = sum2;\n t++;\n }\n if (sum1 > sum3) {\n sum1 = sum3;\n t = t1 + 2;\n }\n s.bits += sum1;\n\n return t;\n }\n\n /*************************************************************************/\n /* choose table */\n /*************************************************************************/\n\n var huf_tbl_noESC = [1, 2, 5, 7, 7, 10, 10, 13, 13,\n 13, 13, 13, 13, 13, 13];\n\n /**\n * Choose the Huffman table that will encode ix[begin..end] with the fewest\n * bits.\n *\n * Note: This code contains knowledge about the sizes and characteristics of\n * the Huffman tables as defined in the IS (Table B.7), and will not work\n * with any arbitrary tables.\n */\n function choose_table(ix, ixPos, endPos, s) {\n var max = ix_max(ix, ixPos, endPos);\n\n switch (max) {\n case 0:\n return max;\n\n case 1:\n return count_bit_noESC(ix, ixPos, endPos, s);\n\n case 2:\n case 3:\n return count_bit_noESC_from2(ix, ixPos, endPos,\n huf_tbl_noESC[max - 1], s);\n\n case 4:\n case 5:\n case 6:\n case 7:\n case 8:\n case 9:\n case 10:\n case 11:\n case 12:\n case 13:\n case 14:\n case 15:\n return count_bit_noESC_from3(ix, ixPos, endPos,\n huf_tbl_noESC[max - 1], s);\n\n default:\n /* try tables with linbits */\n if (max > QuantizePVT.IXMAX_VAL) {\n s.bits = QuantizePVT.LARGE_BITS;\n return -1;\n }\n max -= 15;\n var choice2;\n for (choice2 = 24; choice2 < 32; choice2++) {\n if (Tables.ht[choice2].linmax >= max) {\n break;\n }\n }\n var choice;\n for (choice = choice2 - 8; choice < 24; choice++) {\n if (Tables.ht[choice].linmax >= max) {\n break;\n }\n }\n return count_bit_ESC(ix, ixPos, endPos, choice, choice2, s);\n }\n }\n\n /**\n * count_bit\n */\n this.noquant_count_bits = function (gfc, gi, prev_noise) {\n var ix = gi.l3_enc;\n var i = Math.min(576, ((gi.max_nonzero_coeff + 2) >> 1) << 1);\n\n if (prev_noise != null)\n prev_noise.sfb_count1 = 0;\n\n /* Determine count1 region */\n for (; i > 1; i -= 2)\n if ((ix[i - 1] | ix[i - 2]) != 0)\n break;\n gi.count1 = i;\n\n /* Determines the number of bits to encode the quadruples. */\n var a1 = 0;\n var a2 = 0;\n for (; i > 3; i -= 4) {\n var p;\n /* hack to check if all values <= 1 */\n //throw \"TODO: HACK if ((((long) ix[i - 1] | (long) ix[i - 2] | (long) ix[i - 3] | (long) ix[i - 4]) & 0xffffffffL) > 1L \"\n //if (true) {\n if (((ix[i - 1] | ix[i - 2] | ix[i - 3] | ix[i - 4]) & 0x7fffffff) > 1) {\n break;\n }\n p = ((ix[i - 4] * 2 + ix[i - 3]) * 2 + ix[i - 2]) * 2 + ix[i - 1];\n a1 += Tables.t32l[p];\n a2 += Tables.t33l[p];\n }\n var bits = a1;\n gi.count1table_select = 0;\n if (a1 > a2) {\n bits = a2;\n gi.count1table_select = 1;\n }\n\n gi.count1bits = bits;\n gi.big_values = i;\n if (i == 0)\n return bits;\n\n if (gi.block_type == Encoder.SHORT_TYPE) {\n a1 = 3 * gfc.scalefac_band.s[3];\n if (a1 > gi.big_values)\n a1 = gi.big_values;\n a2 = gi.big_values;\n\n } else if (gi.block_type == Encoder.NORM_TYPE) {\n assert(i <= 576);\n /* bv_scf has 576 entries (0..575) */\n a1 = gi.region0_count = gfc.bv_scf[i - 2];\n a2 = gi.region1_count = gfc.bv_scf[i - 1];\n\n assert(a1 + a2 + 2 < Encoder.SBPSY_l);\n a2 = gfc.scalefac_band.l[a1 + a2 + 2];\n a1 = gfc.scalefac_band.l[a1 + 1];\n if (a2 < i) {\n var bi = new Bits(bits);\n gi.table_select[2] = choose_table(ix, a2, i, bi);\n bits = bi.bits;\n }\n } else {\n gi.region0_count = 7;\n /* gi.region1_count = SBPSY_l - 7 - 1; */\n gi.region1_count = Encoder.SBMAX_l - 1 - 7 - 1;\n a1 = gfc.scalefac_band.l[7 + 1];\n a2 = i;\n if (a1 > a2) {\n a1 = a2;\n }\n }\n\n /* have to allow for the case when bigvalues < region0 < region1 */\n /* (and region0, region1 are ignored) */\n a1 = Math.min(a1, i);\n a2 = Math.min(a2, i);\n\n assert(a1 >= 0);\n assert(a2 >= 0);\n\n /* Count the number of bits necessary to code the bigvalues region. */\n if (0 < a1) {\n var bi = new Bits(bits);\n gi.table_select[0] = choose_table(ix, 0, a1, bi);\n bits = bi.bits;\n }\n if (a1 < a2) {\n var bi = new Bits(bits);\n gi.table_select[1] = choose_table(ix, a1, a2, bi);\n bits = bi.bits;\n }\n if (gfc.use_best_huffman == 2) {\n gi.part2_3_length = bits;\n best_huffman_divide(gfc, gi);\n bits = gi.part2_3_length;\n }\n\n if (prev_noise != null) {\n if (gi.block_type == Encoder.NORM_TYPE) {\n var sfb = 0;\n while (gfc.scalefac_band.l[sfb] < gi.big_values) {\n sfb++;\n }\n prev_noise.sfb_count1 = sfb;\n }\n }\n\n return bits;\n }\n\n this.count_bits = function (gfc, xr, gi, prev_noise) {\n var ix = gi.l3_enc;\n\n /* since quantize_xrpow uses table lookup, we need to check this first: */\n var w = (QuantizePVT.IXMAX_VAL) / qupvt.IPOW20(gi.global_gain);\n\n if (gi.xrpow_max > w)\n return QuantizePVT.LARGE_BITS;\n\n quantize_xrpow(xr, ix, qupvt.IPOW20(gi.global_gain), gi, prev_noise);\n\n if ((gfc.substep_shaping & 2) != 0) {\n var j = 0;\n /* 0.634521682242439 = 0.5946*2**(.5*0.1875) */\n var gain = gi.global_gain + gi.scalefac_scale;\n var roundfac = 0.634521682242439 / qupvt.IPOW20(gain);\n for (var sfb = 0; sfb < gi.sfbmax; sfb++) {\n var width = gi.width[sfb];\n assert(width >= 0);\n if (0 == gfc.pseudohalf[sfb]) {\n j += width;\n } else {\n var k;\n for (k = j, j += width; k < j; ++k) {\n ix[k] = (xr[k] >= roundfac) ? ix[k] : 0;\n }\n }\n }\n }\n return this.noquant_count_bits(gfc, gi, prev_noise);\n }\n\n /**\n * re-calculate the best scalefac_compress using scfsi the saved bits are\n * kept in the bit reservoir.\n */\n function recalc_divide_init(gfc, cod_info, ix, r01_bits, r01_div, r0_tbl, r1_tbl) {\n var bigv = cod_info.big_values;\n\n for (var r0 = 0; r0 <= 7 + 15; r0++) {\n r01_bits[r0] = QuantizePVT.LARGE_BITS;\n }\n\n for (var r0 = 0; r0 < 16; r0++) {\n var a1 = gfc.scalefac_band.l[r0 + 1];\n if (a1 >= bigv)\n break;\n var r0bits = 0;\n var bi = new Bits(r0bits);\n var r0t = choose_table(ix, 0, a1, bi);\n r0bits = bi.bits;\n\n for (var r1 = 0; r1 < 8; r1++) {\n var a2 = gfc.scalefac_band.l[r0 + r1 + 2];\n if (a2 >= bigv)\n break;\n var bits = r0bits;\n bi = new Bits(bits);\n var r1t = choose_table(ix, a1, a2, bi);\n bits = bi.bits;\n if (r01_bits[r0 + r1] > bits) {\n r01_bits[r0 + r1] = bits;\n r01_div[r0 + r1] = r0;\n r0_tbl[r0 + r1] = r0t;\n r1_tbl[r0 + r1] = r1t;\n }\n }\n }\n }\n\n function recalc_divide_sub(gfc, cod_info2, gi, ix, r01_bits, r01_div, r0_tbl, r1_tbl) {\n var bigv = cod_info2.big_values;\n\n for (var r2 = 2; r2 < Encoder.SBMAX_l + 1; r2++) {\n var a2 = gfc.scalefac_band.l[r2];\n if (a2 >= bigv)\n break;\n var bits = r01_bits[r2 - 2] + cod_info2.count1bits;\n if (gi.part2_3_length <= bits)\n break;\n\n var bi = new Bits(bits);\n var r2t = choose_table(ix, a2, bigv, bi);\n bits = bi.bits;\n if (gi.part2_3_length <= bits)\n continue;\n\n gi.assign(cod_info2);\n gi.part2_3_length = bits;\n gi.region0_count = r01_div[r2 - 2];\n gi.region1_count = r2 - 2 - r01_div[r2 - 2];\n gi.table_select[0] = r0_tbl[r2 - 2];\n gi.table_select[1] = r1_tbl[r2 - 2];\n gi.table_select[2] = r2t;\n }\n }\n\n this.best_huffman_divide = function (gfc, gi) {\n var cod_info2 = new GrInfo();\n var ix = gi.l3_enc;\n var r01_bits = new_int(7 + 15 + 1);\n var r01_div = new_int(7 + 15 + 1);\n var r0_tbl = new_int(7 + 15 + 1);\n var r1_tbl = new_int(7 + 15 + 1);\n\n /* SHORT BLOCK stuff fails for MPEG2 */\n if (gi.block_type == Encoder.SHORT_TYPE && gfc.mode_gr == 1)\n return;\n\n cod_info2.assign(gi);\n if (gi.block_type == Encoder.NORM_TYPE) {\n recalc_divide_init(gfc, gi, ix, r01_bits, r01_div, r0_tbl, r1_tbl);\n recalc_divide_sub(gfc, cod_info2, gi, ix, r01_bits, r01_div,\n r0_tbl, r1_tbl);\n }\n var i = cod_info2.big_values;\n if (i == 0 || (ix[i - 2] | ix[i - 1]) > 1)\n return;\n\n i = gi.count1 + 2;\n if (i > 576)\n return;\n\n /* Determines the number of bits to encode the quadruples. */\n cod_info2.assign(gi);\n cod_info2.count1 = i;\n var a1 = 0;\n var a2 = 0;\n\n assert(i <= 576);\n\n for (; i > cod_info2.big_values; i -= 4) {\n var p = ((ix[i - 4] * 2 + ix[i - 3]) * 2 + ix[i - 2]) * 2\n + ix[i - 1];\n a1 += Tables.t32l[p];\n a2 += Tables.t33l[p];\n }\n cod_info2.big_values = i;\n\n cod_info2.count1table_select = 0;\n if (a1 > a2) {\n a1 = a2;\n cod_info2.count1table_select = 1;\n }\n\n cod_info2.count1bits = a1;\n\n if (cod_info2.block_type == Encoder.NORM_TYPE)\n recalc_divide_sub(gfc, cod_info2, gi, ix, r01_bits, r01_div,\n r0_tbl, r1_tbl);\n else {\n /* Count the number of bits necessary to code the bigvalues region. */\n cod_info2.part2_3_length = a1;\n a1 = gfc.scalefac_band.l[7 + 1];\n if (a1 > i) {\n a1 = i;\n }\n if (a1 > 0) {\n var bi = new Bits(cod_info2.part2_3_length);\n cod_info2.table_select[0] = choose_table(ix, 0, a1, bi);\n cod_info2.part2_3_length = bi.bits;\n }\n if (i > a1) {\n var bi = new Bits(cod_info2.part2_3_length);\n cod_info2.table_select[1] = choose_table(ix, a1, i, bi);\n cod_info2.part2_3_length = bi.bits;\n }\n if (gi.part2_3_length > cod_info2.part2_3_length)\n gi.assign(cod_info2);\n }\n }\n\n var slen1_n = [1, 1, 1, 1, 8, 2, 2, 2, 4, 4, 4, 8, 8, 8, 16, 16];\n var slen2_n = [1, 2, 4, 8, 1, 2, 4, 8, 2, 4, 8, 2, 4, 8, 4, 8];\n var slen1_tab = [0, 0, 0, 0, 3, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4];\n var slen2_tab = [0, 1, 2, 3, 0, 1, 2, 3, 1, 2, 3, 1, 2, 3, 2, 3];\n Takehiro.slen1_tab = slen1_tab;\n Takehiro.slen2_tab = slen2_tab;\n\n function scfsi_calc(ch, l3_side) {\n var sfb;\n var gi = l3_side.tt[1][ch];\n var g0 = l3_side.tt[0][ch];\n\n for (var i = 0; i < Tables.scfsi_band.length - 1; i++) {\n for (sfb = Tables.scfsi_band[i]; sfb < Tables.scfsi_band[i + 1]; sfb++) {\n if (g0.scalefac[sfb] != gi.scalefac[sfb]\n && gi.scalefac[sfb] >= 0)\n break;\n }\n if (sfb == Tables.scfsi_band[i + 1]) {\n for (sfb = Tables.scfsi_band[i]; sfb < Tables.scfsi_band[i + 1]; sfb++) {\n gi.scalefac[sfb] = -1;\n }\n l3_side.scfsi[ch][i] = 1;\n }\n }\n var s1 = 0;\n var c1 = 0;\n for (sfb = 0; sfb < 11; sfb++) {\n if (gi.scalefac[sfb] == -1)\n continue;\n c1++;\n if (s1 < gi.scalefac[sfb])\n s1 = gi.scalefac[sfb];\n }\n var s2 = 0;\n var c2 = 0;\n for (; sfb < Encoder.SBPSY_l; sfb++) {\n if (gi.scalefac[sfb] == -1)\n continue;\n c2++;\n if (s2 < gi.scalefac[sfb])\n s2 = gi.scalefac[sfb];\n }\n\n for (var i = 0; i < 16; i++) {\n if (s1 < slen1_n[i] && s2 < slen2_n[i]) {\n var c = slen1_tab[i] * c1 + slen2_tab[i] * c2;\n if (gi.part2_length > c) {\n gi.part2_length = c;\n gi.scalefac_compress = i;\n }\n }\n }\n }\n\n /**\n * Find the optimal way to store the scalefactors. Only call this routine\n * after final scalefactors have been chosen and the channel/granule will\n * not be re-encoded.\n */\n this.best_scalefac_store = function (gfc, gr, ch, l3_side) {\n /* use scalefac_scale if we can */\n var gi = l3_side.tt[gr][ch];\n var sfb, i, j, l;\n var recalc = 0;\n\n /*\n * remove scalefacs from bands with ix=0. This idea comes from the AAC\n * ISO docs. added mt 3/00\n */\n /* check if l3_enc=0 */\n j = 0;\n for (sfb = 0; sfb < gi.sfbmax; sfb++) {\n var width = gi.width[sfb];\n assert(width >= 0);\n j += width;\n for (l = -width; l < 0; l++) {\n if (gi.l3_enc[l + j] != 0)\n break;\n }\n if (l == 0)\n gi.scalefac[sfb] = recalc = -2;\n /* anything goes. */\n /*\n * only best_scalefac_store and calc_scfsi know--and only they\n * should know--about the magic number -2.\n */\n }\n\n if (0 == gi.scalefac_scale && 0 == gi.preflag) {\n var s = 0;\n for (sfb = 0; sfb < gi.sfbmax; sfb++)\n if (gi.scalefac[sfb] > 0)\n s |= gi.scalefac[sfb];\n\n if (0 == (s & 1) && s != 0) {\n for (sfb = 0; sfb < gi.sfbmax; sfb++)\n if (gi.scalefac[sfb] > 0)\n gi.scalefac[sfb] >>= 1;\n\n gi.scalefac_scale = recalc = 1;\n }\n }\n\n if (0 == gi.preflag && gi.block_type != Encoder.SHORT_TYPE\n && gfc.mode_gr == 2) {\n for (sfb = 11; sfb < Encoder.SBPSY_l; sfb++)\n if (gi.scalefac[sfb] < qupvt.pretab[sfb]\n && gi.scalefac[sfb] != -2)\n break;\n if (sfb == Encoder.SBPSY_l) {\n for (sfb = 11; sfb < Encoder.SBPSY_l; sfb++)\n if (gi.scalefac[sfb] > 0)\n gi.scalefac[sfb] -= qupvt.pretab[sfb];\n\n gi.preflag = recalc = 1;\n }\n }\n\n for (i = 0; i < 4; i++)\n l3_side.scfsi[ch][i] = 0;\n\n if (gfc.mode_gr == 2 && gr == 1\n && l3_side.tt[0][ch].block_type != Encoder.SHORT_TYPE\n && l3_side.tt[1][ch].block_type != Encoder.SHORT_TYPE) {\n scfsi_calc(ch, l3_side);\n recalc = 0;\n }\n for (sfb = 0; sfb < gi.sfbmax; sfb++) {\n if (gi.scalefac[sfb] == -2) {\n gi.scalefac[sfb] = 0;\n /* if anything goes, then 0 is a good choice */\n }\n }\n if (recalc != 0) {\n if (gfc.mode_gr == 2) {\n this.scale_bitcount(gi);\n } else {\n this.scale_bitcount_lsf(gfc, gi);\n }\n }\n }\n\n function all_scalefactors_not_negative(scalefac, n) {\n for (var i = 0; i < n; ++i) {\n if (scalefac[i] < 0)\n return false;\n }\n return true;\n }\n\n /**\n * number of bits used to encode scalefacs.\n *\n * 18*slen1_tab[i] + 18*slen2_tab[i]\n */\n var scale_short = [0, 18, 36, 54, 54, 36, 54, 72,\n 54, 72, 90, 72, 90, 108, 108, 126];\n\n /**\n * number of bits used to encode scalefacs.\n *\n * 17*slen1_tab[i] + 18*slen2_tab[i]\n */\n var scale_mixed = [0, 18, 36, 54, 51, 35, 53, 71,\n 52, 70, 88, 69, 87, 105, 104, 122];\n\n /**\n * number of bits used to encode scalefacs.\n *\n * 11*slen1_tab[i] + 10*slen2_tab[i]\n */\n var scale_long = [0, 10, 20, 30, 33, 21, 31, 41, 32, 42,\n 52, 43, 53, 63, 64, 74];\n\n /**\n * Also calculates the number of bits necessary to code the scalefactors.\n */\n this.scale_bitcount = function (cod_info) {\n var k, sfb, max_slen1 = 0, max_slen2 = 0;\n\n /* maximum values */\n var tab;\n var scalefac = cod_info.scalefac;\n\n assert(all_scalefactors_not_negative(scalefac, cod_info.sfbmax));\n\n if (cod_info.block_type == Encoder.SHORT_TYPE) {\n tab = scale_short;\n if (cod_info.mixed_block_flag != 0)\n tab = scale_mixed;\n } else { /* block_type == 1,2,or 3 */\n tab = scale_long;\n if (0 == cod_info.preflag) {\n for (sfb = 11; sfb < Encoder.SBPSY_l; sfb++)\n if (scalefac[sfb] < qupvt.pretab[sfb])\n break;\n\n if (sfb == Encoder.SBPSY_l) {\n cod_info.preflag = 1;\n for (sfb = 11; sfb < Encoder.SBPSY_l; sfb++)\n scalefac[sfb] -= qupvt.pretab[sfb];\n }\n }\n }\n\n for (sfb = 0; sfb < cod_info.sfbdivide; sfb++)\n if (max_slen1 < scalefac[sfb])\n max_slen1 = scalefac[sfb];\n\n for (; sfb < cod_info.sfbmax; sfb++)\n if (max_slen2 < scalefac[sfb])\n max_slen2 = scalefac[sfb];\n\n /*\n * from Takehiro TOMINAGA 10/99 loop over *all*\n * posible values of scalefac_compress to find the one which uses the\n * smallest number of bits. ISO would stop at first valid index\n */\n cod_info.part2_length = QuantizePVT.LARGE_BITS;\n for (k = 0; k < 16; k++) {\n if (max_slen1 < slen1_n[k] && max_slen2 < slen2_n[k]\n && cod_info.part2_length > tab[k]) {\n cod_info.part2_length = tab[k];\n cod_info.scalefac_compress = k;\n }\n }\n return cod_info.part2_length == QuantizePVT.LARGE_BITS;\n }\n\n /**\n * table of largest scalefactor values for MPEG2\n */\n var max_range_sfac_tab = [[15, 15, 7, 7],\n [15, 15, 7, 0], [7, 3, 0, 0], [15, 31, 31, 0],\n [7, 7, 7, 0], [3, 3, 0, 0]];\n\n /**\n * Also counts the number of bits to encode the scalefacs but for MPEG 2\n * Lower sampling frequencies (24, 22.05 and 16 kHz.)\n *\n * This is reverse-engineered from section 2.4.3.2 of the MPEG2 IS,\n * \"Audio Decoding Layer III\"\n */\n this.scale_bitcount_lsf = function (gfc, cod_info) {\n var table_number, row_in_table, partition, nr_sfb, window;\n var over;\n var i, sfb;\n var max_sfac = new_int(4);\n//var partition_table;\n var scalefac = cod_info.scalefac;\n\n /*\n * Set partition table. Note that should try to use table one, but do\n * not yet...\n */\n if (cod_info.preflag != 0)\n table_number = 2;\n else\n table_number = 0;\n\n for (i = 0; i < 4; i++)\n max_sfac[i] = 0;\n\n if (cod_info.block_type == Encoder.SHORT_TYPE) {\n row_in_table = 1;\n var partition_table = qupvt.nr_of_sfb_block[table_number][row_in_table];\n for (sfb = 0, partition = 0; partition < 4; partition++) {\n nr_sfb = partition_table[partition] / 3;\n for (i = 0; i < nr_sfb; i++, sfb++)\n for (window = 0; window < 3; window++)\n if (scalefac[sfb * 3 + window] > max_sfac[partition])\n max_sfac[partition] = scalefac[sfb * 3 + window];\n }\n } else {\n row_in_table = 0;\n var partition_table = qupvt.nr_of_sfb_block[table_number][row_in_table];\n for (sfb = 0, partition = 0; partition < 4; partition++) {\n nr_sfb = partition_table[partition];\n for (i = 0; i < nr_sfb; i++, sfb++)\n if (scalefac[sfb] > max_sfac[partition])\n max_sfac[partition] = scalefac[sfb];\n }\n }\n\n for (over = false, partition = 0; partition < 4; partition++) {\n if (max_sfac[partition] > max_range_sfac_tab[table_number][partition])\n over = true;\n }\n if (!over) {\n var slen1, slen2, slen3, slen4;\n\n cod_info.sfb_partition_table = qupvt.nr_of_sfb_block[table_number][row_in_table];\n for (partition = 0; partition < 4; partition++)\n cod_info.slen[partition] = log2tab[max_sfac[partition]];\n\n /* set scalefac_compress */\n slen1 = cod_info.slen[0];\n slen2 = cod_info.slen[1];\n slen3 = cod_info.slen[2];\n slen4 = cod_info.slen[3];\n\n switch (table_number) {\n case 0:\n cod_info.scalefac_compress = (((slen1 * 5) + slen2) << 4)\n + (slen3 << 2) + slen4;\n break;\n\n case 1:\n cod_info.scalefac_compress = 400 + (((slen1 * 5) + slen2) << 2)\n + slen3;\n break;\n\n case 2:\n cod_info.scalefac_compress = 500 + (slen1 * 3) + slen2;\n break;\n\n default:\n System.err.printf(\"intensity stereo not implemented yet\\n\");\n break;\n }\n }\n if (!over) {\n assert(cod_info.sfb_partition_table != null);\n cod_info.part2_length = 0;\n for (partition = 0; partition < 4; partition++)\n cod_info.part2_length += cod_info.slen[partition]\n * cod_info.sfb_partition_table[partition];\n }\n return over;\n }\n\n /*\n * Since no bands have been over-amplified, we can set scalefac_compress and\n * slen[] for the formatter\n */\n var log2tab = [0, 1, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4,\n 4, 4, 4, 4];\n\n this.huffman_init = function (gfc) {\n for (var i = 2; i <= 576; i += 2) {\n var scfb_anz = 0, bv_index;\n while (gfc.scalefac_band.l[++scfb_anz] < i)\n ;\n\n bv_index = subdv_table[scfb_anz][0]; // .region0_count\n while (gfc.scalefac_band.l[bv_index + 1] > i)\n bv_index--;\n\n if (bv_index < 0) {\n /*\n * this is an indication that everything is going to be encoded\n * as region0: bigvalues < region0 < region1 so lets set\n * region0, region1 to some value larger than bigvalues\n */\n bv_index = subdv_table[scfb_anz][0]; // .region0_count\n }\n\n gfc.bv_scf[i - 2] = bv_index;\n\n bv_index = subdv_table[scfb_anz][1]; // .region1_count\n while (gfc.scalefac_band.l[bv_index + gfc.bv_scf[i - 2] + 2] > i)\n bv_index--;\n\n if (bv_index < 0) {\n bv_index = subdv_table[scfb_anz][1]; // .region1_count\n }\n\n gfc.bv_scf[i - 1] = bv_index;\n }\n }\n}\n\nmodule.exports = Takehiro;\n","var common = require('./common.js');\nvar System = common.System;\nvar VbrMode = common.VbrMode;\nvar Float = common.Float;\nvar ShortBlock = common.ShortBlock;\nvar Util = common.Util;\nvar Arrays = common.Arrays;\nvar new_array_n = common.new_array_n;\nvar new_byte = common.new_byte;\nvar new_double = common.new_double;\nvar new_float = common.new_float;\nvar new_float_n = common.new_float_n;\nvar new_int = common.new_int;\nvar new_int_n = common.new_int_n;\nvar assert = common.assert;\n\nvar Takehiro = require('./Takehiro.js');\nvar Tables = require('./Tables.js');\nvar Encoder = require('./Encoder.js');\nvar LameInternalFlags = require('./LameInternalFlags.js');\n\nBitStream.EQ = function (a, b) {\n return (Math.abs(a) > Math.abs(b)) ? (Math.abs((a) - (b)) <= (Math\n .abs(a) * 1e-6))\n : (Math.abs((a) - (b)) <= (Math.abs(b) * 1e-6));\n};\n\nBitStream.NEQ = function (a, b) {\n return !BitStream.EQ(a, b);\n};\n\nfunction BitStream() {\n var self = this;\n var CRC16_POLYNOMIAL = 0x8005;\n\n /*\n * we work with ints, so when doing bit manipulation, we limit ourselves to\n * MAX_LENGTH-2 just to be on the safe side\n */\n var MAX_LENGTH = 32;\n\n //GainAnalysis ga;\n //MPGLib mpg;\n //Version ver;\n //VBRTag vbr;\n var ga = null;\n var mpg = null;\n var ver = null;\n var vbr = null;\n\n //public final void setModules(GainAnalysis ga, MPGLib mpg, Version ver,\n //\tVBRTag vbr) {\n\n this.setModules = function (_ga, _mpg, _ver, _vbr) {\n ga = _ga;\n mpg = _mpg;\n ver = _ver;\n vbr = _vbr;\n };\n\n /**\n * Bit stream buffer.\n */\n //private byte[] buf;\n var buf = null;\n /**\n * Bit counter of bit stream.\n */\n var totbit = 0;\n /**\n * Pointer to top byte in buffer.\n */\n var bufByteIdx = 0;\n /**\n * Pointer to top bit of top byte in buffer.\n */\n var bufBitIdx = 0;\n\n /**\n * compute bitsperframe and mean_bits for a layer III frame\n */\n this.getframebits = function (gfp) {\n var gfc = gfp.internal_flags;\n var bit_rate;\n\n /* get bitrate in kbps [?] */\n if (gfc.bitrate_index != 0)\n bit_rate = Tables.bitrate_table[gfp.version][gfc.bitrate_index];\n else\n bit_rate = gfp.brate;\n assert(8 <= bit_rate && bit_rate <= 640);\n\n /* main encoding routine toggles padding on and off */\n /* one Layer3 Slot consists of 8 bits */\n var bytes = 0 | (gfp.version + 1) * 72000 * bit_rate / gfp.out_samplerate + gfc.padding;\n return 8 * bytes;\n };\n\n function putheader_bits(gfc) {\n System.arraycopy(gfc.header[gfc.w_ptr].buf, 0, buf, bufByteIdx, gfc.sideinfo_len);\n bufByteIdx += gfc.sideinfo_len;\n totbit += gfc.sideinfo_len * 8;\n gfc.w_ptr = (gfc.w_ptr + 1) & (LameInternalFlags.MAX_HEADER_BUF - 1);\n }\n\n /**\n * write j bits into the bit stream\n */\n function putbits2(gfc, val, j) {\n assert(j < MAX_LENGTH - 2);\n\n while (j > 0) {\n var k;\n if (bufBitIdx == 0) {\n bufBitIdx = 8;\n bufByteIdx++;\n assert(bufByteIdx < Lame.LAME_MAXMP3BUFFER);\n assert(gfc.header[gfc.w_ptr].write_timing >= totbit);\n if (gfc.header[gfc.w_ptr].write_timing == totbit) {\n putheader_bits(gfc);\n }\n buf[bufByteIdx] = 0;\n }\n\n k = Math.min(j, bufBitIdx);\n j -= k;\n\n bufBitIdx -= k;\n\n assert(j < MAX_LENGTH);\n /* 32 too large on 32 bit machines */\n assert(bufBitIdx < MAX_LENGTH);\n\n buf[bufByteIdx] |= ((val >> j) << bufBitIdx);\n totbit += k;\n }\n }\n\n /**\n * write j bits into the bit stream, ignoring frame headers\n */\n function putbits_noheaders(gfc, val, j) {\n assert(j < MAX_LENGTH - 2);\n\n while (j > 0) {\n var k;\n if (bufBitIdx == 0) {\n bufBitIdx = 8;\n bufByteIdx++;\n assert(bufByteIdx < Lame.LAME_MAXMP3BUFFER);\n buf[bufByteIdx] = 0;\n }\n\n k = Math.min(j, bufBitIdx);\n j -= k;\n\n bufBitIdx -= k;\n\n assert(j < MAX_LENGTH);\n /* 32 too large on 32 bit machines */\n assert(bufBitIdx < MAX_LENGTH);\n\n buf[bufByteIdx] |= ((val >> j) << bufBitIdx);\n totbit += k;\n }\n }\n\n /**\n * Some combinations of bitrate, Fs, and stereo make it impossible to stuff\n * out a frame using just main_data, due to the limited number of bits to\n * indicate main_data_length. In these situations, we put stuffing bits into\n * the ancillary data...\n */\n function drain_into_ancillary(gfp, remainingBits) {\n var gfc = gfp.internal_flags;\n var i;\n assert(remainingBits >= 0);\n\n if (remainingBits >= 8) {\n putbits2(gfc, 0x4c, 8);\n remainingBits -= 8;\n }\n if (remainingBits >= 8) {\n putbits2(gfc, 0x41, 8);\n remainingBits -= 8;\n }\n if (remainingBits >= 8) {\n putbits2(gfc, 0x4d, 8);\n remainingBits -= 8;\n }\n if (remainingBits >= 8) {\n putbits2(gfc, 0x45, 8);\n remainingBits -= 8;\n }\n\n if (remainingBits >= 32) {\n var version = ver.getLameShortVersion();\n if (remainingBits >= 32)\n for (i = 0; i < version.length && remainingBits >= 8; ++i) {\n remainingBits -= 8;\n putbits2(gfc, version.charAt(i), 8);\n }\n }\n\n for (; remainingBits >= 1; remainingBits -= 1) {\n putbits2(gfc, gfc.ancillary_flag, 1);\n gfc.ancillary_flag ^= (!gfp.disable_reservoir ? 1 : 0);\n }\n\n assert(remainingBits == 0);\n\n }\n\n /**\n * write N bits into the header\n */\n function writeheader(gfc, val, j) {\n var ptr = gfc.header[gfc.h_ptr].ptr;\n\n while (j > 0) {\n var k = Math.min(j, 8 - (ptr & 7));\n j -= k;\n assert(j < MAX_LENGTH);\n /* >> 32 too large for 32 bit machines */\n\n gfc.header[gfc.h_ptr].buf[ptr >> 3] |= ((val >> j)) << (8 - (ptr & 7) - k);\n ptr += k;\n }\n gfc.header[gfc.h_ptr].ptr = ptr;\n }\n\n function CRC_update(value, crc) {\n value <<= 8;\n for (var i = 0; i < 8; i++) {\n value <<= 1;\n crc <<= 1;\n\n if ((((crc ^ value) & 0x10000) != 0))\n crc ^= CRC16_POLYNOMIAL;\n }\n return crc;\n }\n\n this.CRC_writeheader = function (gfc, header) {\n var crc = 0xffff;\n /* (jo) init crc16 for error_protection */\n\n crc = CRC_update(header[2] & 0xff, crc);\n crc = CRC_update(header[3] & 0xff, crc);\n for (var i = 6; i < gfc.sideinfo_len; i++) {\n crc = CRC_update(header[i] & 0xff, crc);\n }\n\n header[4] = (byte)(crc >> 8);\n header[5] = (byte)(crc & 255);\n };\n\n function encodeSideInfo2(gfp, bitsPerFrame) {\n var gfc = gfp.internal_flags;\n var l3_side;\n var gr, ch;\n\n l3_side = gfc.l3_side;\n gfc.header[gfc.h_ptr].ptr = 0;\n Arrays.fill(gfc.header[gfc.h_ptr].buf, 0, gfc.sideinfo_len, 0);\n if (gfp.out_samplerate < 16000)\n writeheader(gfc, 0xffe, 12);\n else\n writeheader(gfc, 0xfff, 12);\n writeheader(gfc, (gfp.version), 1);\n writeheader(gfc, 4 - 3, 2);\n writeheader(gfc, (!gfp.error_protection ? 1 : 0), 1);\n writeheader(gfc, (gfc.bitrate_index), 4);\n writeheader(gfc, (gfc.samplerate_index), 2);\n writeheader(gfc, (gfc.padding), 1);\n writeheader(gfc, (gfp.extension), 1);\n writeheader(gfc, (gfp.mode.ordinal()), 2);\n writeheader(gfc, (gfc.mode_ext), 2);\n writeheader(gfc, (gfp.copyright), 1);\n writeheader(gfc, (gfp.original), 1);\n writeheader(gfc, (gfp.emphasis), 2);\n if (gfp.error_protection) {\n writeheader(gfc, 0, 16);\n /* dummy */\n }\n\n if (gfp.version == 1) {\n /* MPEG1 */\n assert(l3_side.main_data_begin >= 0);\n writeheader(gfc, (l3_side.main_data_begin), 9);\n\n if (gfc.channels_out == 2)\n writeheader(gfc, l3_side.private_bits, 3);\n else\n writeheader(gfc, l3_side.private_bits, 5);\n\n for (ch = 0; ch < gfc.channels_out; ch++) {\n var band;\n for (band = 0; band < 4; band++) {\n writeheader(gfc, l3_side.scfsi[ch][band], 1);\n }\n }\n\n for (gr = 0; gr < 2; gr++) {\n for (ch = 0; ch < gfc.channels_out; ch++) {\n var gi = l3_side.tt[gr][ch];\n writeheader(gfc, gi.part2_3_length + gi.part2_length, 12);\n writeheader(gfc, gi.big_values / 2, 9);\n writeheader(gfc, gi.global_gain, 8);\n writeheader(gfc, gi.scalefac_compress, 4);\n\n if (gi.block_type != Encoder.NORM_TYPE) {\n writeheader(gfc, 1, 1);\n /* window_switching_flag */\n writeheader(gfc, gi.block_type, 2);\n writeheader(gfc, gi.mixed_block_flag, 1);\n\n if (gi.table_select[0] == 14)\n gi.table_select[0] = 16;\n writeheader(gfc, gi.table_select[0], 5);\n if (gi.table_select[1] == 14)\n gi.table_select[1] = 16;\n writeheader(gfc, gi.table_select[1], 5);\n\n writeheader(gfc, gi.subblock_gain[0], 3);\n writeheader(gfc, gi.subblock_gain[1], 3);\n writeheader(gfc, gi.subblock_gain[2], 3);\n } else {\n writeheader(gfc, 0, 1);\n /* window_switching_flag */\n if (gi.table_select[0] == 14)\n gi.table_select[0] = 16;\n writeheader(gfc, gi.table_select[0], 5);\n if (gi.table_select[1] == 14)\n gi.table_select[1] = 16;\n writeheader(gfc, gi.table_select[1], 5);\n if (gi.table_select[2] == 14)\n gi.table_select[2] = 16;\n writeheader(gfc, gi.table_select[2], 5);\n\n assert(0 <= gi.region0_count && gi.region0_count < 16);\n assert(0 <= gi.region1_count && gi.region1_count < 8);\n writeheader(gfc, gi.region0_count, 4);\n writeheader(gfc, gi.region1_count, 3);\n }\n writeheader(gfc, gi.preflag, 1);\n writeheader(gfc, gi.scalefac_scale, 1);\n writeheader(gfc, gi.count1table_select, 1);\n }\n }\n } else {\n /* MPEG2 */\n assert(l3_side.main_data_begin >= 0);\n writeheader(gfc, (l3_side.main_data_begin), 8);\n writeheader(gfc, l3_side.private_bits, gfc.channels_out);\n\n gr = 0;\n for (ch = 0; ch < gfc.channels_out; ch++) {\n var gi = l3_side.tt[gr][ch];\n writeheader(gfc, gi.part2_3_length + gi.part2_length, 12);\n writeheader(gfc, gi.big_values / 2, 9);\n writeheader(gfc, gi.global_gain, 8);\n writeheader(gfc, gi.scalefac_compress, 9);\n\n if (gi.block_type != Encoder.NORM_TYPE) {\n writeheader(gfc, 1, 1);\n /* window_switching_flag */\n writeheader(gfc, gi.block_type, 2);\n writeheader(gfc, gi.mixed_block_flag, 1);\n\n if (gi.table_select[0] == 14)\n gi.table_select[0] = 16;\n writeheader(gfc, gi.table_select[0], 5);\n if (gi.table_select[1] == 14)\n gi.table_select[1] = 16;\n writeheader(gfc, gi.table_select[1], 5);\n\n writeheader(gfc, gi.subblock_gain[0], 3);\n writeheader(gfc, gi.subblock_gain[1], 3);\n writeheader(gfc, gi.subblock_gain[2], 3);\n } else {\n writeheader(gfc, 0, 1);\n /* window_switching_flag */\n if (gi.table_select[0] == 14)\n gi.table_select[0] = 16;\n writeheader(gfc, gi.table_select[0], 5);\n if (gi.table_select[1] == 14)\n gi.table_select[1] = 16;\n writeheader(gfc, gi.table_select[1], 5);\n if (gi.table_select[2] == 14)\n gi.table_select[2] = 16;\n writeheader(gfc, gi.table_select[2], 5);\n\n assert(0 <= gi.region0_count && gi.region0_count < 16);\n assert(0 <= gi.region1_count && gi.region1_count < 8);\n writeheader(gfc, gi.region0_count, 4);\n writeheader(gfc, gi.region1_count, 3);\n }\n\n writeheader(gfc, gi.scalefac_scale, 1);\n writeheader(gfc, gi.count1table_select, 1);\n }\n }\n\n if (gfp.error_protection) {\n /* (jo) error_protection: add crc16 information to header */\n CRC_writeheader(gfc, gfc.header[gfc.h_ptr].buf);\n }\n\n {\n var old = gfc.h_ptr;\n assert(gfc.header[old].ptr == gfc.sideinfo_len * 8);\n\n gfc.h_ptr = (old + 1) & (LameInternalFlags.MAX_HEADER_BUF - 1);\n gfc.header[gfc.h_ptr].write_timing = gfc.header[old].write_timing\n + bitsPerFrame;\n\n if (gfc.h_ptr == gfc.w_ptr) {\n /* yikes! we are out of header buffer space */\n System.err\n .println(\"Error: MAX_HEADER_BUF too small in bitstream.c \\n\");\n }\n\n }\n }\n\n function huffman_coder_count1(gfc, gi) {\n /* Write count1 area */\n var h = Tables.ht[gi.count1table_select + 32];\n var i, bits = 0;\n\n var ix = gi.big_values;\n var xr = gi.big_values;\n assert(gi.count1table_select < 2);\n\n for (i = (gi.count1 - gi.big_values) / 4; i > 0; --i) {\n var huffbits = 0;\n var p = 0, v;\n\n v = gi.l3_enc[ix + 0];\n if (v != 0) {\n p += 8;\n if (gi.xr[xr + 0] < 0)\n huffbits++;\n assert(v <= 1);\n }\n\n v = gi.l3_enc[ix + 1];\n if (v != 0) {\n p += 4;\n huffbits *= 2;\n if (gi.xr[xr + 1] < 0)\n huffbits++;\n assert(v <= 1);\n }\n\n v = gi.l3_enc[ix + 2];\n if (v != 0) {\n p += 2;\n huffbits *= 2;\n if (gi.xr[xr + 2] < 0)\n huffbits++;\n assert(v <= 1);\n }\n\n v = gi.l3_enc[ix + 3];\n if (v != 0) {\n p++;\n huffbits *= 2;\n if (gi.xr[xr + 3] < 0)\n huffbits++;\n assert(v <= 1);\n }\n\n ix += 4;\n xr += 4;\n putbits2(gfc, huffbits + h.table[p], h.hlen[p]);\n bits += h.hlen[p];\n }\n return bits;\n }\n\n /**\n * Implements the pseudocode of page 98 of the IS\n */\n function Huffmancode(gfc, tableindex, start, end, gi) {\n var h = Tables.ht[tableindex];\n var bits = 0;\n\n assert(tableindex < 32);\n if (0 == tableindex)\n return bits;\n\n for (var i = start; i < end; i += 2) {\n var cbits = 0;\n var xbits = 0;\n var linbits = h.xlen;\n var xlen = h.xlen;\n var ext = 0;\n var x1 = gi.l3_enc[i];\n var x2 = gi.l3_enc[i + 1];\n\n if (x1 != 0) {\n if (gi.xr[i] < 0)\n ext++;\n cbits--;\n }\n\n if (tableindex > 15) {\n /* use ESC-words */\n if (x1 > 14) {\n var linbits_x1 = x1 - 15;\n assert(linbits_x1 <= h.linmax);\n ext |= linbits_x1 << 1;\n xbits = linbits;\n x1 = 15;\n }\n\n if (x2 > 14) {\n var linbits_x2 = x2 - 15;\n assert(linbits_x2 <= h.linmax);\n ext <<= linbits;\n ext |= linbits_x2;\n xbits += linbits;\n x2 = 15;\n }\n xlen = 16;\n }\n\n if (x2 != 0) {\n ext <<= 1;\n if (gi.xr[i + 1] < 0)\n ext++;\n cbits--;\n }\n\n assert((x1 | x2) < 16);\n\n x1 = x1 * xlen + x2;\n xbits -= cbits;\n cbits += h.hlen[x1];\n\n assert(cbits <= MAX_LENGTH);\n assert(xbits <= MAX_LENGTH);\n\n putbits2(gfc, h.table[x1], cbits);\n putbits2(gfc, ext, xbits);\n bits += cbits + xbits;\n }\n return bits;\n }\n\n /**\n * Note the discussion of huffmancodebits() on pages 28 and 29 of the IS, as\n * well as the definitions of the side information on pages 26 and 27.\n */\n function ShortHuffmancodebits(gfc, gi) {\n var region1Start = 3 * gfc.scalefac_band.s[3];\n if (region1Start > gi.big_values)\n region1Start = gi.big_values;\n\n /* short blocks do not have a region2 */\n var bits = Huffmancode(gfc, gi.table_select[0], 0, region1Start, gi);\n bits += Huffmancode(gfc, gi.table_select[1], region1Start,\n gi.big_values, gi);\n return bits;\n }\n\n function LongHuffmancodebits(gfc, gi) {\n var bigvalues, bits;\n var region1Start, region2Start;\n\n bigvalues = gi.big_values;\n assert(0 <= bigvalues && bigvalues <= 576);\n\n var i = gi.region0_count + 1;\n assert(0 <= i);\n assert(i < gfc.scalefac_band.l.length);\n region1Start = gfc.scalefac_band.l[i];\n i += gi.region1_count + 1;\n assert(0 <= i);\n assert(i < gfc.scalefac_band.l.length);\n region2Start = gfc.scalefac_band.l[i];\n\n if (region1Start > bigvalues)\n region1Start = bigvalues;\n\n if (region2Start > bigvalues)\n region2Start = bigvalues;\n\n bits = Huffmancode(gfc, gi.table_select[0], 0, region1Start, gi);\n bits += Huffmancode(gfc, gi.table_select[1], region1Start,\n region2Start, gi);\n bits += Huffmancode(gfc, gi.table_select[2], region2Start, bigvalues,\n gi);\n return bits;\n }\n\n function writeMainData(gfp) {\n var gr, ch, sfb, data_bits, tot_bits = 0;\n var gfc = gfp.internal_flags;\n var l3_side = gfc.l3_side;\n\n if (gfp.version == 1) {\n /* MPEG 1 */\n for (gr = 0; gr < 2; gr++) {\n for (ch = 0; ch < gfc.channels_out; ch++) {\n var gi = l3_side.tt[gr][ch];\n var slen1 = Takehiro.slen1_tab[gi.scalefac_compress];\n var slen2 = Takehiro.slen2_tab[gi.scalefac_compress];\n data_bits = 0;\n for (sfb = 0; sfb < gi.sfbdivide; sfb++) {\n if (gi.scalefac[sfb] == -1)\n continue;\n /* scfsi is used */\n putbits2(gfc, gi.scalefac[sfb], slen1);\n data_bits += slen1;\n }\n for (; sfb < gi.sfbmax; sfb++) {\n if (gi.scalefac[sfb] == -1)\n continue;\n /* scfsi is used */\n putbits2(gfc, gi.scalefac[sfb], slen2);\n data_bits += slen2;\n }\n assert(data_bits == gi.part2_length);\n\n if (gi.block_type == Encoder.SHORT_TYPE) {\n data_bits += ShortHuffmancodebits(gfc, gi);\n } else {\n data_bits += LongHuffmancodebits(gfc, gi);\n }\n data_bits += huffman_coder_count1(gfc, gi);\n /* does bitcount in quantize.c agree with actual bit count? */\n assert(data_bits == gi.part2_3_length + gi.part2_length);\n tot_bits += data_bits;\n }\n /* for ch */\n }\n /* for gr */\n } else {\n /* MPEG 2 */\n gr = 0;\n for (ch = 0; ch < gfc.channels_out; ch++) {\n var gi = l3_side.tt[gr][ch];\n var i, sfb_partition, scale_bits = 0;\n assert(gi.sfb_partition_table != null);\n data_bits = 0;\n sfb = 0;\n sfb_partition = 0;\n\n if (gi.block_type == Encoder.SHORT_TYPE) {\n for (; sfb_partition < 4; sfb_partition++) {\n var sfbs = gi.sfb_partition_table[sfb_partition] / 3;\n var slen = gi.slen[sfb_partition];\n for (i = 0; i < sfbs; i++, sfb++) {\n putbits2(gfc,\n Math.max(gi.scalefac[sfb * 3 + 0], 0), slen);\n putbits2(gfc,\n Math.max(gi.scalefac[sfb * 3 + 1], 0), slen);\n putbits2(gfc,\n Math.max(gi.scalefac[sfb * 3 + 2], 0), slen);\n scale_bits += 3 * slen;\n }\n }\n data_bits += ShortHuffmancodebits(gfc, gi);\n } else {\n for (; sfb_partition < 4; sfb_partition++) {\n var sfbs = gi.sfb_partition_table[sfb_partition];\n var slen = gi.slen[sfb_partition];\n for (i = 0; i < sfbs; i++, sfb++) {\n putbits2(gfc, Math.max(gi.scalefac[sfb], 0), slen);\n scale_bits += slen;\n }\n }\n data_bits += LongHuffmancodebits(gfc, gi);\n }\n data_bits += huffman_coder_count1(gfc, gi);\n /* does bitcount in quantize.c agree with actual bit count? */\n assert(data_bits == gi.part2_3_length);\n assert(scale_bits == gi.part2_length);\n tot_bits += scale_bits + data_bits;\n }\n /* for ch */\n }\n /* for gf */\n return tot_bits;\n }\n\n /* main_data */\n\n function TotalBytes() {\n this.total = 0;\n }\n\n /*\n * compute the number of bits required to flush all mp3 frames currently in\n * the buffer. This should be the same as the reservoir size. Only call this\n * routine between frames - i.e. only after all headers and data have been\n * added to the buffer by format_bitstream().\n *\n * Also compute total_bits_output = size of mp3 buffer (including frame\n * headers which may not have yet been send to the mp3 buffer) + number of\n * bits needed to flush all mp3 frames.\n *\n * total_bytes_output is the size of the mp3 output buffer if\n * lame_encode_flush_nogap() was called right now.\n */\n function compute_flushbits(gfp, total_bytes_output) {\n var gfc = gfp.internal_flags;\n var flushbits, remaining_headers;\n var bitsPerFrame;\n var last_ptr, first_ptr;\n first_ptr = gfc.w_ptr;\n /* first header to add to bitstream */\n last_ptr = gfc.h_ptr - 1;\n /* last header to add to bitstream */\n if (last_ptr == -1)\n last_ptr = LameInternalFlags.MAX_HEADER_BUF - 1;\n\n /* add this many bits to bitstream so we can flush all headers */\n flushbits = gfc.header[last_ptr].write_timing - totbit;\n total_bytes_output.total = flushbits;\n\n if (flushbits >= 0) {\n /* if flushbits >= 0, some headers have not yet been written */\n /* reduce flushbits by the size of the headers */\n remaining_headers = 1 + last_ptr - first_ptr;\n if (last_ptr < first_ptr)\n remaining_headers = 1 + last_ptr - first_ptr\n + LameInternalFlags.MAX_HEADER_BUF;\n flushbits -= remaining_headers * 8 * gfc.sideinfo_len;\n }\n\n /*\n * finally, add some bits so that the last frame is complete these bits\n * are not necessary to decode the last frame, but some decoders will\n * ignore last frame if these bits are missing\n */\n bitsPerFrame = self.getframebits(gfp);\n flushbits += bitsPerFrame;\n total_bytes_output.total += bitsPerFrame;\n /* round up: */\n if ((total_bytes_output.total % 8) != 0)\n total_bytes_output.total = 1 + (total_bytes_output.total / 8);\n else\n total_bytes_output.total = (total_bytes_output.total / 8);\n total_bytes_output.total += bufByteIdx + 1;\n\n if (flushbits < 0) {\n System.err.println(\"strange error flushing buffer ... \\n\");\n }\n return flushbits;\n }\n\n this.flush_bitstream = function (gfp) {\n var gfc = gfp.internal_flags;\n var l3_side;\n var flushbits;\n var last_ptr = gfc.h_ptr - 1;\n /* last header to add to bitstream */\n if (last_ptr == -1)\n last_ptr = LameInternalFlags.MAX_HEADER_BUF - 1;\n l3_side = gfc.l3_side;\n\n if ((flushbits = compute_flushbits(gfp, new TotalBytes())) < 0)\n return;\n drain_into_ancillary(gfp, flushbits);\n\n /* check that the 100% of the last frame has been written to bitstream */\n assert(gfc.header[last_ptr].write_timing + this.getframebits(gfp) == totbit);\n\n /*\n * we have padded out all frames with ancillary data, which is the same\n * as filling the bitreservoir with ancillary data, so :\n */\n gfc.ResvSize = 0;\n l3_side.main_data_begin = 0;\n\n /* save the ReplayGain value */\n if (gfc.findReplayGain) {\n var RadioGain = ga.GetTitleGain(gfc.rgdata);\n assert(NEQ(RadioGain, GainAnalysis.GAIN_NOT_ENOUGH_SAMPLES));\n gfc.RadioGain = Math.floor(RadioGain * 10.0 + 0.5) | 0;\n /* round to nearest */\n }\n\n /* find the gain and scale change required for no clipping */\n if (gfc.findPeakSample) {\n gfc.noclipGainChange = Math.ceil(Math\n .log10(gfc.PeakSample / 32767.0) * 20.0 * 10.0) | 0;\n /* round up */\n\n if (gfc.noclipGainChange > 0) {\n /* clipping occurs */\n if (EQ(gfp.scale, 1.0) || EQ(gfp.scale, 0.0))\n gfc.noclipScale = (Math\n .floor((32767.0 / gfc.PeakSample) * 100.0) / 100.0);\n /* round down */\n else {\n /*\n * the user specified his own scaling factor. We could\n * suggest the scaling factor of\n * (32767.0/gfp.PeakSample)*(gfp.scale) but it's usually\n * very inaccurate. So we'd rather not advice him on the\n * scaling factor.\n */\n gfc.noclipScale = -1;\n }\n } else\n /* no clipping */\n gfc.noclipScale = -1;\n }\n };\n\n this.add_dummy_byte = function (gfp, val, n) {\n var gfc = gfp.internal_flags;\n var i;\n\n while (n-- > 0) {\n putbits_noheaders(gfc, val, 8);\n\n for (i = 0; i < LameInternalFlags.MAX_HEADER_BUF; ++i)\n gfc.header[i].write_timing += 8;\n }\n };\n\n /**\n * This is called after a frame of audio has been quantized and coded. It\n * will write the encoded audio to the bitstream. Note that from a layer3\n * encoder's perspective the bit stream is primarily a series of main_data()\n * blocks, with header and side information inserted at the proper locations\n * to maintain framing. (See Figure A.7 in the IS).\n */\n this.format_bitstream = function (gfp) {\n var gfc = gfp.internal_flags;\n var l3_side;\n l3_side = gfc.l3_side;\n\n var bitsPerFrame = this.getframebits(gfp);\n drain_into_ancillary(gfp, l3_side.resvDrain_pre);\n\n encodeSideInfo2(gfp, bitsPerFrame);\n var bits = 8 * gfc.sideinfo_len;\n bits += writeMainData(gfp);\n drain_into_ancillary(gfp, l3_side.resvDrain_post);\n bits += l3_side.resvDrain_post;\n\n l3_side.main_data_begin += (bitsPerFrame - bits) / 8;\n\n /*\n * compare number of bits needed to clear all buffered mp3 frames with\n * what we think the resvsize is:\n */\n if (compute_flushbits(gfp, new TotalBytes()) != gfc.ResvSize) {\n System.err.println(\"Internal buffer inconsistency. flushbits <> ResvSize\");\n }\n\n /*\n * compare main_data_begin for the next frame with what we think the\n * resvsize is:\n */\n if ((l3_side.main_data_begin * 8) != gfc.ResvSize) {\n System.err.printf(\"bit reservoir error: \\n\"\n + \"l3_side.main_data_begin: %d \\n\"\n + \"Resvoir size: %d \\n\"\n + \"resv drain (post) %d \\n\"\n + \"resv drain (pre) %d \\n\"\n + \"header and sideinfo: %d \\n\"\n + \"data bits: %d \\n\"\n + \"total bits: %d (remainder: %d) \\n\"\n + \"bitsperframe: %d \\n\",\n 8 * l3_side.main_data_begin, gfc.ResvSize,\n l3_side.resvDrain_post, l3_side.resvDrain_pre,\n 8 * gfc.sideinfo_len, bits - l3_side.resvDrain_post - 8\n * gfc.sideinfo_len, bits, bits % 8, bitsPerFrame);\n\n System.err.println(\"This is a fatal error. It has several possible causes:\");\n System.err.println(\"90%% LAME compiled with buggy version of gcc using advanced optimizations\");\n System.err.println(\" 9%% Your system is overclocked\");\n System.err.println(\" 1%% bug in LAME encoding library\");\n\n gfc.ResvSize = l3_side.main_data_begin * 8;\n }\n //;\n assert(totbit % 8 == 0);\n\n if (totbit > 1000000000) {\n /*\n * to avoid totbit overflow, (at 8h encoding at 128kbs) lets reset\n * bit counter\n */\n var i;\n for (i = 0; i < LameInternalFlags.MAX_HEADER_BUF; ++i)\n gfc.header[i].write_timing -= totbit;\n totbit = 0;\n }\n\n return 0;\n };\n\n /**\n *
\n     * copy data out of the internal MP3 bit buffer into a user supplied\n     *       unsigned char buffer.\n     *\n     *       mp3data=0      indicates data in buffer is an id3tags and VBR tags\n     *       mp3data=1      data is real mp3 frame data.\n     * 
\n */\n this.copy_buffer = function (gfc, buffer, bufferPos, size, mp3data) {\n var minimum = bufByteIdx + 1;\n if (minimum <= 0)\n return 0;\n if (size != 0 && minimum > size) {\n /* buffer is too small */\n return -1;\n }\n System.arraycopy(buf, 0, buffer, bufferPos, minimum);\n bufByteIdx = -1;\n bufBitIdx = 0;\n\n if (mp3data != 0) {\n var crc = new_int(1);\n crc[0] = gfc.nMusicCRC;\n vbr.updateMusicCRC(crc, buffer, bufferPos, minimum);\n gfc.nMusicCRC = crc[0];\n\n /**\n * sum number of bytes belonging to the mp3 stream this info will be\n * written into the Xing/LAME header for seeking\n */\n if (minimum > 0) {\n gfc.VBR_seek_table.nBytesWritten += minimum;\n }\n\n if (gfc.decode_on_the_fly) { /* decode the frame */\n var pcm_buf = new_float_n([2, 1152]);\n var mp3_in = minimum;\n var samples_out = -1;\n var i;\n\n /* re-synthesis to pcm. Repeat until we get a samples_out=0 */\n while (samples_out != 0) {\n\n samples_out = mpg.hip_decode1_unclipped(gfc.hip, buffer,\n bufferPos, mp3_in, pcm_buf[0], pcm_buf[1]);\n /*\n * samples_out = 0: need more data to decode samples_out =\n * -1: error. Lets assume 0 pcm output samples_out = number\n * of samples output\n */\n\n /*\n * set the lenght of the mp3 input buffer to zero, so that\n * in the next iteration of the loop we will be querying\n * mpglib about buffered data\n */\n mp3_in = 0;\n\n if (samples_out == -1) {\n /*\n * error decoding. Not fatal, but might screw up the\n * ReplayGain tag. What should we do? Ignore for now\n */\n samples_out = 0;\n }\n if (samples_out > 0) {\n /* process the PCM data */\n\n /*\n * this should not be possible, and indicates we have\n * overflown the pcm_buf buffer\n */\n assert(samples_out <= 1152);\n\n if (gfc.findPeakSample) {\n for (i = 0; i < samples_out; i++) {\n if (pcm_buf[0][i] > gfc.PeakSample)\n gfc.PeakSample = pcm_buf[0][i];\n else if (-pcm_buf[0][i] > gfc.PeakSample)\n gfc.PeakSample = -pcm_buf[0][i];\n }\n if (gfc.channels_out > 1)\n for (i = 0; i < samples_out; i++) {\n if (pcm_buf[1][i] > gfc.PeakSample)\n gfc.PeakSample = pcm_buf[1][i];\n else if (-pcm_buf[1][i] > gfc.PeakSample)\n gfc.PeakSample = -pcm_buf[1][i];\n }\n }\n\n if (gfc.findReplayGain)\n if (ga.AnalyzeSamples(gfc.rgdata, pcm_buf[0], 0,\n pcm_buf[1], 0, samples_out,\n gfc.channels_out) == GainAnalysis.GAIN_ANALYSIS_ERROR)\n return -6;\n\n }\n /* if (samples_out>0) */\n }\n /* while (samples_out!=0) */\n }\n /* if (gfc.decode_on_the_fly) */\n\n }\n /* if (mp3data) */\n return minimum;\n };\n\n this.init_bit_stream_w = function (gfc) {\n buf = new_byte(Lame.LAME_MAXMP3BUFFER);\n\n gfc.h_ptr = gfc.w_ptr = 0;\n gfc.header[gfc.h_ptr].write_timing = 0;\n bufByteIdx = -1;\n bufBitIdx = 0;\n totbit = 0;\n };\n\n // From machine.h\n\n\n}\n\nmodule.exports = BitStream;\n","var common = require('./common.js');\nvar System = common.System;\nvar VbrMode = common.VbrMode;\nvar Float = common.Float;\nvar ShortBlock = common.ShortBlock;\nvar Util = common.Util;\nvar Arrays = common.Arrays;\nvar new_array_n = common.new_array_n;\nvar new_byte = common.new_byte;\nvar new_double = common.new_double;\nvar new_float = common.new_float;\nvar new_float_n = common.new_float_n;\nvar new_int = common.new_int;\nvar new_int_n = common.new_int_n;\nvar new_short_n = common.new_short_n;\nvar assert = common.assert;\n\nvar PsyModel = require('./PsyModel.js');\nvar LameGlobalFlags = require('./LameGlobalFlags.js');\nvar LameInternalFlags = require('./LameInternalFlags.js');\nvar ATH = require('./ATH.js');\nvar ReplayGain = require('./ReplayGain.js');\nvar CBRNewIterationLoop = require('./CBRNewIterationLoop.js');\nvar BitStream = require('./BitStream.js');\nvar Tables = require('./Tables.js');\nvar Encoder = require('./Encoder.js');\n\nfunction Lame() {\n var self = this;\n var LAME_MAXALBUMART = (128 * 1024);\n\n Lame.V9 = 410;\n Lame.V8 = 420;\n Lame.V7 = 430;\n Lame.V6 = 440;\n Lame.V5 = 450;\n Lame.V4 = 460;\n Lame.V3 = 470;\n Lame.V2 = 480;\n Lame.V1 = 490;\n Lame.V0 = 500;\n\n /* still there for compatibility */\n\n Lame.R3MIX = 1000;\n Lame.STANDARD = 1001;\n Lame.EXTREME = 1002;\n Lame.INSANE = 1003;\n Lame.STANDARD_FAST = 1004;\n Lame.EXTREME_FAST = 1005;\n Lame.MEDIUM = 1006;\n Lame.MEDIUM_FAST = 1007;\n\n /**\n * maximum size of mp3buffer needed if you encode at most 1152 samples for\n * each call to lame_encode_buffer. see lame_encode_buffer() below\n * (LAME_MAXMP3BUFFER is now obsolete)\n */\n var LAME_MAXMP3BUFFER = (16384 + LAME_MAXALBUMART);\n Lame.LAME_MAXMP3BUFFER = LAME_MAXMP3BUFFER;\n\n var ga;\n var bs;\n var p;\n var qupvt;\n var qu;\n var psy = new PsyModel();\n var vbr;\n var ver;\n var id3;\n var mpglib;\n this.enc = new Encoder();\n\n this.setModules = function (_ga, _bs, _p, _qupvt, _qu, _vbr, _ver, _id3, _mpglib) {\n ga = _ga;\n bs = _bs;\n p = _p;\n qupvt = _qupvt;\n qu = _qu;\n vbr = _vbr;\n ver = _ver;\n id3 = _id3;\n mpglib = _mpglib;\n this.enc.setModules(bs, psy, qupvt, vbr);\n }\n\n /**\n * PSY Model related stuff\n */\n function PSY() {\n /**\n * The dbQ stuff.\n */\n this.mask_adjust = 0.;\n /**\n * The dbQ stuff.\n */\n this.mask_adjust_short = 0.;\n /* at transition from one scalefactor band to next */\n /**\n * Band weight long scalefactor bands.\n */\n this.bo_l_weight = new_float(Encoder.SBMAX_l);\n /**\n * Band weight short scalefactor bands.\n */\n this.bo_s_weight = new_float(Encoder.SBMAX_s);\n }\n\n function LowPassHighPass() {\n this.lowerlimit = 0.;\n }\n\n function BandPass(bitrate, lPass) {\n this.lowpass = lPass;\n }\n\n var LAME_ID = 0xFFF88E3B;\n\n function lame_init_old(gfp) {\n var gfc;\n\n gfp.class_id = LAME_ID;\n\n gfc = gfp.internal_flags = new LameInternalFlags();\n\n /* Global flags. set defaults here for non-zero values */\n /* see lame.h for description */\n /*\n * set integer values to -1 to mean that LAME will compute the best\n * value, UNLESS the calling program as set it (and the value is no\n * longer -1)\n */\n\n gfp.mode = MPEGMode.NOT_SET;\n gfp.original = 1;\n gfp.in_samplerate = 44100;\n gfp.num_channels = 2;\n gfp.num_samples = -1;\n\n gfp.bWriteVbrTag = true;\n gfp.quality = -1;\n gfp.short_blocks = null;\n gfc.subblock_gain = -1;\n\n gfp.lowpassfreq = 0;\n gfp.highpassfreq = 0;\n gfp.lowpasswidth = -1;\n gfp.highpasswidth = -1;\n\n gfp.VBR = VbrMode.vbr_off;\n gfp.VBR_q = 4;\n gfp.ATHcurve = -1;\n gfp.VBR_mean_bitrate_kbps = 128;\n gfp.VBR_min_bitrate_kbps = 0;\n gfp.VBR_max_bitrate_kbps = 0;\n gfp.VBR_hard_min = 0;\n gfc.VBR_min_bitrate = 1;\n /* not 0 ????? */\n gfc.VBR_max_bitrate = 13;\n /* not 14 ????? */\n\n gfp.quant_comp = -1;\n gfp.quant_comp_short = -1;\n\n gfp.msfix = -1;\n\n gfc.resample_ratio = 1;\n\n gfc.OldValue[0] = 180;\n gfc.OldValue[1] = 180;\n gfc.CurrentStep[0] = 4;\n gfc.CurrentStep[1] = 4;\n gfc.masking_lower = 1;\n gfc.nsPsy.attackthre = -1;\n gfc.nsPsy.attackthre_s = -1;\n\n gfp.scale = -1;\n\n gfp.athaa_type = -1;\n gfp.ATHtype = -1;\n /* default = -1 = set in lame_init_params */\n gfp.athaa_loudapprox = -1;\n /* 1 = flat loudness approx. (total energy) */\n /* 2 = equal loudness curve */\n gfp.athaa_sensitivity = 0.0;\n /* no offset */\n gfp.useTemporal = null;\n gfp.interChRatio = -1;\n\n /*\n * The reason for int mf_samples_to_encode = ENCDELAY + POSTDELAY;\n * ENCDELAY = internal encoder delay. And then we have to add\n * POSTDELAY=288 because of the 50% MDCT overlap. A 576 MDCT granule\n * decodes to 1152 samples. To synthesize the 576 samples centered under\n * this granule we need the previous granule for the first 288 samples\n * (no problem), and the next granule for the next 288 samples (not\n * possible if this is last granule). So we need to pad with 288 samples\n * to make sure we can encode the 576 samples we are interested in.\n */\n gfc.mf_samples_to_encode = Encoder.ENCDELAY + Encoder.POSTDELAY;\n gfp.encoder_padding = 0;\n gfc.mf_size = Encoder.ENCDELAY - Encoder.MDCTDELAY;\n /*\n * we pad input with this many 0's\n */\n\n gfp.findReplayGain = false;\n gfp.decode_on_the_fly = false;\n\n gfc.decode_on_the_fly = false;\n gfc.findReplayGain = false;\n gfc.findPeakSample = false;\n\n gfc.RadioGain = 0;\n gfc.AudiophileGain = 0;\n gfc.noclipGainChange = 0;\n gfc.noclipScale = -1.0;\n\n gfp.preset = 0;\n\n gfp.write_id3tag_automatic = true;\n return 0;\n }\n\n this.lame_init = function () {\n var gfp = new LameGlobalFlags();\n\n var ret = lame_init_old(gfp);\n if (ret != 0) {\n return null;\n }\n\n gfp.lame_allocated_gfp = 1;\n return gfp;\n }\n\n function filter_coef(x) {\n if (x > 1.0)\n return 0.0;\n if (x <= 0.0)\n return 1.0;\n\n return Math.cos(Math.PI / 2 * x);\n }\n\n this.nearestBitrateFullIndex = function (bitrate) {\n /* borrowed from DM abr presets */\n\n var full_bitrate_table = [8, 16, 24, 32, 40, 48, 56, 64, 80,\n 96, 112, 128, 160, 192, 224, 256, 320];\n\n var lower_range = 0, lower_range_kbps = 0, upper_range = 0, upper_range_kbps = 0;\n\n /* We assume specified bitrate will be 320kbps */\n upper_range_kbps = full_bitrate_table[16];\n upper_range = 16;\n lower_range_kbps = full_bitrate_table[16];\n lower_range = 16;\n\n /*\n * Determine which significant bitrates the value specified falls\n * between, if loop ends without breaking then we were correct above\n * that the value was 320\n */\n for (var b = 0; b < 16; b++) {\n if ((Math.max(bitrate, full_bitrate_table[b + 1])) != bitrate) {\n upper_range_kbps = full_bitrate_table[b + 1];\n upper_range = b + 1;\n lower_range_kbps = full_bitrate_table[b];\n lower_range = (b);\n break;\n /* We found upper range */\n }\n }\n\n /* Determine which range the value specified is closer to */\n if ((upper_range_kbps - bitrate) > (bitrate - lower_range_kbps)) {\n return lower_range;\n }\n return upper_range;\n }\n\n function optimum_samplefreq(lowpassfreq, input_samplefreq) {\n /*\n * Rules:\n *\n * - if possible, sfb21 should NOT be used\n */\n var suggested_samplefreq = 44100;\n\n if (input_samplefreq >= 48000)\n suggested_samplefreq = 48000;\n else if (input_samplefreq >= 44100)\n suggested_samplefreq = 44100;\n else if (input_samplefreq >= 32000)\n suggested_samplefreq = 32000;\n else if (input_samplefreq >= 24000)\n suggested_samplefreq = 24000;\n else if (input_samplefreq >= 22050)\n suggested_samplefreq = 22050;\n else if (input_samplefreq >= 16000)\n suggested_samplefreq = 16000;\n else if (input_samplefreq >= 12000)\n suggested_samplefreq = 12000;\n else if (input_samplefreq >= 11025)\n suggested_samplefreq = 11025;\n else if (input_samplefreq >= 8000)\n suggested_samplefreq = 8000;\n\n if (lowpassfreq == -1)\n return suggested_samplefreq;\n\n if (lowpassfreq <= 15960)\n suggested_samplefreq = 44100;\n if (lowpassfreq <= 15250)\n suggested_samplefreq = 32000;\n if (lowpassfreq <= 11220)\n suggested_samplefreq = 24000;\n if (lowpassfreq <= 9970)\n suggested_samplefreq = 22050;\n if (lowpassfreq <= 7230)\n suggested_samplefreq = 16000;\n if (lowpassfreq <= 5420)\n suggested_samplefreq = 12000;\n if (lowpassfreq <= 4510)\n suggested_samplefreq = 11025;\n if (lowpassfreq <= 3970)\n suggested_samplefreq = 8000;\n\n if (input_samplefreq < suggested_samplefreq) {\n /*\n * choose a valid MPEG sample frequency above the input sample\n * frequency to avoid SFB21/12 bitrate bloat rh 061115\n */\n if (input_samplefreq > 44100) {\n return 48000;\n }\n if (input_samplefreq > 32000) {\n return 44100;\n }\n if (input_samplefreq > 24000) {\n return 32000;\n }\n if (input_samplefreq > 22050) {\n return 24000;\n }\n if (input_samplefreq > 16000) {\n return 22050;\n }\n if (input_samplefreq > 12000) {\n return 16000;\n }\n if (input_samplefreq > 11025) {\n return 12000;\n }\n if (input_samplefreq > 8000) {\n return 11025;\n }\n return 8000;\n }\n return suggested_samplefreq;\n }\n\n /**\n * convert samp freq in Hz to index\n */\n function SmpFrqIndex(sample_freq, gpf) {\n switch (sample_freq) {\n case 44100:\n gpf.version = 1;\n return 0;\n case 48000:\n gpf.version = 1;\n return 1;\n case 32000:\n gpf.version = 1;\n return 2;\n case 22050:\n gpf.version = 0;\n return 0;\n case 24000:\n gpf.version = 0;\n return 1;\n case 16000:\n gpf.version = 0;\n return 2;\n case 11025:\n gpf.version = 0;\n return 0;\n case 12000:\n gpf.version = 0;\n return 1;\n case 8000:\n gpf.version = 0;\n return 2;\n default:\n gpf.version = 0;\n return -1;\n }\n }\n\n /**\n * @param bRate\n * legal rates from 8 to 320\n */\n function FindNearestBitrate(bRate, version, samplerate) {\n /* MPEG-1 or MPEG-2 LSF */\n if (samplerate < 16000)\n version = 2;\n\n var bitrate = Tables.bitrate_table[version][1];\n\n for (var i = 2; i <= 14; i++) {\n if (Tables.bitrate_table[version][i] > 0) {\n if (Math.abs(Tables.bitrate_table[version][i] - bRate) < Math\n .abs(bitrate - bRate))\n bitrate = Tables.bitrate_table[version][i];\n }\n }\n return bitrate;\n }\n\n /**\n * @param bRate\n * legal rates from 32 to 448 kbps\n * @param version\n * MPEG-1 or MPEG-2/2.5 LSF\n */\n function BitrateIndex(bRate, version, samplerate) {\n /* convert bitrate in kbps to index */\n if (samplerate < 16000)\n version = 2;\n for (var i = 0; i <= 14; i++) {\n if (Tables.bitrate_table[version][i] > 0) {\n if (Tables.bitrate_table[version][i] == bRate) {\n return i;\n }\n }\n }\n return -1;\n }\n\n function optimum_bandwidth(lh, bitrate) {\n /**\n *
\n         *  Input:\n         *      bitrate     total bitrate in kbps\n         *\n         *   Output:\n         *      lowerlimit: best lowpass frequency limit for input filter in Hz\n         *      upperlimit: best highpass frequency limit for input filter in Hz\n         * 
\n */\n var freq_map = [new BandPass(8, 2000),\n new BandPass(16, 3700), new BandPass(24, 3900),\n new BandPass(32, 5500), new BandPass(40, 7000),\n new BandPass(48, 7500), new BandPass(56, 10000),\n new BandPass(64, 11000), new BandPass(80, 13500),\n new BandPass(96, 15100), new BandPass(112, 15600),\n new BandPass(128, 17000), new BandPass(160, 17500),\n new BandPass(192, 18600), new BandPass(224, 19400),\n new BandPass(256, 19700), new BandPass(320, 20500)];\n\n var table_index = self.nearestBitrateFullIndex(bitrate);\n lh.lowerlimit = freq_map[table_index].lowpass;\n }\n\n function lame_init_params_ppflt(gfp) {\n var gfc = gfp.internal_flags;\n /***************************************************************/\n /* compute info needed for polyphase filter (filter type==0, default) */\n /***************************************************************/\n\n var lowpass_band = 32;\n var highpass_band = -1;\n\n if (gfc.lowpass1 > 0) {\n var minband = 999;\n for (var band = 0; band <= 31; band++) {\n var freq = (band / 31.0);\n /* this band and above will be zeroed: */\n if (freq >= gfc.lowpass2) {\n lowpass_band = Math.min(lowpass_band, band);\n }\n if (gfc.lowpass1 < freq && freq < gfc.lowpass2) {\n minband = Math.min(minband, band);\n }\n }\n\n /*\n * compute the *actual* transition band implemented by the polyphase\n * filter\n */\n if (minband == 999) {\n gfc.lowpass1 = (lowpass_band - .75) / 31.0;\n } else {\n gfc.lowpass1 = (minband - .75) / 31.0;\n }\n gfc.lowpass2 = lowpass_band / 31.0;\n }\n\n /*\n * make sure highpass filter is within 90% of what the effective\n * highpass frequency will be\n */\n if (gfc.highpass2 > 0) {\n if (gfc.highpass2 < .9 * (.75 / 31.0)) {\n gfc.highpass1 = 0;\n gfc.highpass2 = 0;\n System.err.println(\"Warning: highpass filter disabled. \"\n + \"highpass frequency too small\\n\");\n }\n }\n\n if (gfc.highpass2 > 0) {\n var maxband = -1;\n for (var band = 0; band <= 31; band++) {\n var freq = band / 31.0;\n /* this band and below will be zereod */\n if (freq <= gfc.highpass1) {\n highpass_band = Math.max(highpass_band, band);\n }\n if (gfc.highpass1 < freq && freq < gfc.highpass2) {\n maxband = Math.max(maxband, band);\n }\n }\n /*\n * compute the *actual* transition band implemented by the polyphase\n * filter\n */\n gfc.highpass1 = highpass_band / 31.0;\n if (maxband == -1) {\n gfc.highpass2 = (highpass_band + .75) / 31.0;\n } else {\n gfc.highpass2 = (maxband + .75) / 31.0;\n }\n }\n\n for (var band = 0; band < 32; band++) {\n var fc1, fc2;\n var freq = band / 31.0;\n if (gfc.highpass2 > gfc.highpass1) {\n fc1 = filter_coef((gfc.highpass2 - freq)\n / (gfc.highpass2 - gfc.highpass1 + 1e-20));\n } else {\n fc1 = 1.0;\n }\n if (gfc.lowpass2 > gfc.lowpass1) {\n fc2 = filter_coef((freq - gfc.lowpass1)\n / (gfc.lowpass2 - gfc.lowpass1 + 1e-20));\n } else {\n fc2 = 1.0;\n }\n gfc.amp_filter[band] = (fc1 * fc2);\n }\n }\n\n function lame_init_qval(gfp) {\n var gfc = gfp.internal_flags;\n\n switch (gfp.quality) {\n default:\n case 9: /* no psymodel, no noise shaping */\n gfc.psymodel = 0;\n gfc.noise_shaping = 0;\n gfc.noise_shaping_amp = 0;\n gfc.noise_shaping_stop = 0;\n gfc.use_best_huffman = 0;\n gfc.full_outer_loop = 0;\n break;\n\n case 8:\n gfp.quality = 7;\n //$FALL-THROUGH$\n case 7:\n /*\n * use psymodel (for short block and m/s switching), but no noise\n * shapping\n */\n gfc.psymodel = 1;\n gfc.noise_shaping = 0;\n gfc.noise_shaping_amp = 0;\n gfc.noise_shaping_stop = 0;\n gfc.use_best_huffman = 0;\n gfc.full_outer_loop = 0;\n break;\n\n case 6:\n gfc.psymodel = 1;\n if (gfc.noise_shaping == 0)\n gfc.noise_shaping = 1;\n gfc.noise_shaping_amp = 0;\n gfc.noise_shaping_stop = 0;\n if (gfc.subblock_gain == -1)\n gfc.subblock_gain = 1;\n gfc.use_best_huffman = 0;\n gfc.full_outer_loop = 0;\n break;\n\n case 5:\n gfc.psymodel = 1;\n if (gfc.noise_shaping == 0)\n gfc.noise_shaping = 1;\n gfc.noise_shaping_amp = 0;\n gfc.noise_shaping_stop = 0;\n if (gfc.subblock_gain == -1)\n gfc.subblock_gain = 1;\n gfc.use_best_huffman = 0;\n gfc.full_outer_loop = 0;\n break;\n\n case 4:\n gfc.psymodel = 1;\n if (gfc.noise_shaping == 0)\n gfc.noise_shaping = 1;\n gfc.noise_shaping_amp = 0;\n gfc.noise_shaping_stop = 0;\n if (gfc.subblock_gain == -1)\n gfc.subblock_gain = 1;\n gfc.use_best_huffman = 1;\n gfc.full_outer_loop = 0;\n break;\n\n case 3:\n gfc.psymodel = 1;\n if (gfc.noise_shaping == 0)\n gfc.noise_shaping = 1;\n gfc.noise_shaping_amp = 1;\n gfc.noise_shaping_stop = 1;\n if (gfc.subblock_gain == -1)\n gfc.subblock_gain = 1;\n gfc.use_best_huffman = 1;\n gfc.full_outer_loop = 0;\n break;\n\n case 2:\n gfc.psymodel = 1;\n if (gfc.noise_shaping == 0)\n gfc.noise_shaping = 1;\n if (gfc.substep_shaping == 0)\n gfc.substep_shaping = 2;\n gfc.noise_shaping_amp = 1;\n gfc.noise_shaping_stop = 1;\n if (gfc.subblock_gain == -1)\n gfc.subblock_gain = 1;\n gfc.use_best_huffman = 1;\n /* inner loop */\n gfc.full_outer_loop = 0;\n break;\n\n case 1:\n gfc.psymodel = 1;\n if (gfc.noise_shaping == 0)\n gfc.noise_shaping = 1;\n if (gfc.substep_shaping == 0)\n gfc.substep_shaping = 2;\n gfc.noise_shaping_amp = 2;\n gfc.noise_shaping_stop = 1;\n if (gfc.subblock_gain == -1)\n gfc.subblock_gain = 1;\n gfc.use_best_huffman = 1;\n gfc.full_outer_loop = 0;\n break;\n\n case 0:\n gfc.psymodel = 1;\n if (gfc.noise_shaping == 0)\n gfc.noise_shaping = 1;\n if (gfc.substep_shaping == 0)\n gfc.substep_shaping = 2;\n gfc.noise_shaping_amp = 2;\n gfc.noise_shaping_stop = 1;\n if (gfc.subblock_gain == -1)\n gfc.subblock_gain = 1;\n gfc.use_best_huffman = 1;\n /*\n * type 2 disabled because of it slowness, in favor of full outer\n * loop search\n */\n gfc.full_outer_loop = 0;\n /*\n * full outer loop search disabled because of audible distortions it\n * may generate rh 060629\n */\n break;\n }\n\n }\n\n function lame_init_bitstream(gfp) {\n var gfc = gfp.internal_flags;\n gfp.frameNum = 0;\n\n if (gfp.write_id3tag_automatic) {\n id3.id3tag_write_v2(gfp);\n }\n /* initialize histogram data optionally used by frontend */\n\n gfc.bitrate_stereoMode_Hist = new_int_n([16, 4 + 1]);\n gfc.bitrate_blockType_Hist = new_int_n([16, 4 + 1 + 1]);\n\n gfc.PeakSample = 0.0;\n\n /* Write initial VBR Header to bitstream and init VBR data */\n if (gfp.bWriteVbrTag)\n vbr.InitVbrTag(gfp);\n }\n\n /********************************************************************\n * initialize internal params based on data in gf (globalflags struct filled\n * in by calling program)\n *\n * OUTLINE:\n *\n * We first have some complex code to determine bitrate, output samplerate\n * and mode. It is complicated by the fact that we allow the user to set\n * some or all of these parameters, and need to determine best possible\n * values for the rest of them:\n *\n * 1. set some CPU related flags 2. check if we are mono.mono, stereo.mono\n * or stereo.stereo 3. compute bitrate and output samplerate: user may have\n * set compression ratio user may have set a bitrate user may have set a\n * output samplerate 4. set some options which depend on output samplerate\n * 5. compute the actual compression ratio 6. set mode based on compression\n * ratio\n *\n * The remaining code is much simpler - it just sets options based on the\n * mode & compression ratio:\n *\n * set allow_diff_short based on mode select lowpass filter based on\n * compression ratio & mode set the bitrate index, and min/max bitrates for\n * VBR modes disable VBR tag if it is not appropriate initialize the\n * bitstream initialize scalefac_band data set sideinfo_len (based on\n * channels, CRC, out_samplerate) write an id3v2 tag into the bitstream\n * write VBR tag into the bitstream set mpeg1/2 flag estimate the number of\n * frames (based on a lot of data)\n *\n * now we set more flags: nspsytune: see code VBR modes see code CBR/ABR see\n * code\n *\n * Finally, we set the algorithm flags based on the gfp.quality value\n * lame_init_qval(gfp);\n *\n ********************************************************************/\n this.lame_init_params = function (gfp) {\n var gfc = gfp.internal_flags;\n\n gfc.Class_ID = 0;\n if (gfc.ATH == null)\n gfc.ATH = new ATH();\n if (gfc.PSY == null)\n gfc.PSY = new PSY();\n if (gfc.rgdata == null)\n gfc.rgdata = new ReplayGain();\n\n gfc.channels_in = gfp.num_channels;\n if (gfc.channels_in == 1)\n gfp.mode = MPEGMode.MONO;\n gfc.channels_out = (gfp.mode == MPEGMode.MONO) ? 1 : 2;\n gfc.mode_ext = Encoder.MPG_MD_MS_LR;\n if (gfp.mode == MPEGMode.MONO)\n gfp.force_ms = false;\n /*\n * don't allow forced mid/side stereo for mono output\n */\n\n if (gfp.VBR == VbrMode.vbr_off && gfp.VBR_mean_bitrate_kbps != 128\n && gfp.brate == 0)\n gfp.brate = gfp.VBR_mean_bitrate_kbps;\n\n if (gfp.VBR == VbrMode.vbr_off || gfp.VBR == VbrMode.vbr_mtrh\n || gfp.VBR == VbrMode.vbr_mt) {\n /* these modes can handle free format condition */\n } else {\n gfp.free_format = false;\n /* mode can't be mixed with free format */\n }\n\n if (gfp.VBR == VbrMode.vbr_off && gfp.brate == 0) {\n /* no bitrate or compression ratio specified, use 11.025 */\n if (BitStream.EQ(gfp.compression_ratio, 0))\n gfp.compression_ratio = 11.025;\n /*\n * rate to compress a CD down to exactly 128000 bps\n */\n }\n\n /* find bitrate if user specify a compression ratio */\n if (gfp.VBR == VbrMode.vbr_off && gfp.compression_ratio > 0) {\n\n if (gfp.out_samplerate == 0)\n gfp.out_samplerate = map2MP3Frequency((int)(0.97 * gfp.in_samplerate));\n /*\n * round up with a margin of 3 %\n */\n\n /*\n * choose a bitrate for the output samplerate which achieves\n * specified compression ratio\n */\n gfp.brate = 0 | (gfp.out_samplerate * 16 * gfc.channels_out / (1.e3 * gfp.compression_ratio));\n\n /* we need the version for the bitrate table look up */\n gfc.samplerate_index = SmpFrqIndex(gfp.out_samplerate, gfp);\n\n if (!gfp.free_format) /*\n * for non Free Format find the nearest allowed\n * bitrate\n */\n gfp.brate = FindNearestBitrate(gfp.brate, gfp.version,\n gfp.out_samplerate);\n }\n\n if (gfp.out_samplerate != 0) {\n if (gfp.out_samplerate < 16000) {\n gfp.VBR_mean_bitrate_kbps = Math.max(gfp.VBR_mean_bitrate_kbps,\n 8);\n gfp.VBR_mean_bitrate_kbps = Math.min(gfp.VBR_mean_bitrate_kbps,\n 64);\n } else if (gfp.out_samplerate < 32000) {\n gfp.VBR_mean_bitrate_kbps = Math.max(gfp.VBR_mean_bitrate_kbps,\n 8);\n gfp.VBR_mean_bitrate_kbps = Math.min(gfp.VBR_mean_bitrate_kbps,\n 160);\n } else {\n gfp.VBR_mean_bitrate_kbps = Math.max(gfp.VBR_mean_bitrate_kbps,\n 32);\n gfp.VBR_mean_bitrate_kbps = Math.min(gfp.VBR_mean_bitrate_kbps,\n 320);\n }\n }\n\n /****************************************************************/\n /* if a filter has not been enabled, see if we should add one: */\n /****************************************************************/\n if (gfp.lowpassfreq == 0) {\n var lowpass = 16000.;\n\n switch (gfp.VBR) {\n case VbrMode.vbr_off:\n {\n var lh = new LowPassHighPass();\n optimum_bandwidth(lh, gfp.brate);\n lowpass = lh.lowerlimit;\n break;\n }\n case VbrMode.vbr_abr:\n {\n var lh = new LowPassHighPass();\n optimum_bandwidth(lh, gfp.VBR_mean_bitrate_kbps);\n lowpass = lh.lowerlimit;\n break;\n }\n case VbrMode.vbr_rh:\n {\n var x = [19500, 19000, 18600, 18000, 17500, 16000,\n 15600, 14900, 12500, 10000, 3950];\n if (0 <= gfp.VBR_q && gfp.VBR_q <= 9) {\n var a = x[gfp.VBR_q], b = x[gfp.VBR_q + 1], m = gfp.VBR_q_frac;\n lowpass = linear_int(a, b, m);\n } else {\n lowpass = 19500;\n }\n break;\n }\n default:\n {\n var x = [19500, 19000, 18500, 18000, 17500, 16500,\n 15500, 14500, 12500, 9500, 3950];\n if (0 <= gfp.VBR_q && gfp.VBR_q <= 9) {\n var a = x[gfp.VBR_q], b = x[gfp.VBR_q + 1], m = gfp.VBR_q_frac;\n lowpass = linear_int(a, b, m);\n } else {\n lowpass = 19500;\n }\n }\n }\n if (gfp.mode == MPEGMode.MONO\n && (gfp.VBR == VbrMode.vbr_off || gfp.VBR == VbrMode.vbr_abr))\n lowpass *= 1.5;\n\n gfp.lowpassfreq = lowpass | 0;\n }\n\n if (gfp.out_samplerate == 0) {\n if (2 * gfp.lowpassfreq > gfp.in_samplerate) {\n gfp.lowpassfreq = gfp.in_samplerate / 2;\n }\n gfp.out_samplerate = optimum_samplefreq(gfp.lowpassfreq | 0,\n gfp.in_samplerate);\n }\n\n gfp.lowpassfreq = Math.min(20500, gfp.lowpassfreq);\n gfp.lowpassfreq = Math.min(gfp.out_samplerate / 2, gfp.lowpassfreq);\n\n if (gfp.VBR == VbrMode.vbr_off) {\n gfp.compression_ratio = gfp.out_samplerate * 16 * gfc.channels_out\n / (1.e3 * gfp.brate);\n }\n if (gfp.VBR == VbrMode.vbr_abr) {\n gfp.compression_ratio = gfp.out_samplerate * 16 * gfc.channels_out\n / (1.e3 * gfp.VBR_mean_bitrate_kbps);\n }\n\n /*\n * do not compute ReplayGain values and do not find the peak sample if\n * we can't store them\n */\n if (!gfp.bWriteVbrTag) {\n gfp.findReplayGain = false;\n gfp.decode_on_the_fly = false;\n gfc.findPeakSample = false;\n }\n gfc.findReplayGain = gfp.findReplayGain;\n gfc.decode_on_the_fly = gfp.decode_on_the_fly;\n\n if (gfc.decode_on_the_fly)\n gfc.findPeakSample = true;\n\n if (gfc.findReplayGain) {\n if (ga.InitGainAnalysis(gfc.rgdata, gfp.out_samplerate) == GainAnalysis.INIT_GAIN_ANALYSIS_ERROR) {\n gfp.internal_flags = null;\n return -6;\n }\n }\n\n if (gfc.decode_on_the_fly && !gfp.decode_only) {\n if (gfc.hip != null) {\n mpglib.hip_decode_exit(gfc.hip);\n }\n gfc.hip = mpglib.hip_decode_init();\n }\n\n gfc.mode_gr = gfp.out_samplerate <= 24000 ? 1 : 2;\n /*\n * Number of granules per frame\n */\n gfp.framesize = 576 * gfc.mode_gr;\n gfp.encoder_delay = Encoder.ENCDELAY;\n\n gfc.resample_ratio = gfp.in_samplerate / gfp.out_samplerate;\n\n /**\n *
\n         *  sample freq       bitrate     compression ratio\n         *     [kHz]      [kbps/channel]   for 16 bit input\n         *     44.1            56               12.6\n         *     44.1            64               11.025\n         *     44.1            80                8.82\n         *     22.05           24               14.7\n         *     22.05           32               11.025\n         *     22.05           40                8.82\n         *     16              16               16.0\n         *     16              24               10.667\n         * 
\n */\n /**\n *
\n         *  For VBR, take a guess at the compression_ratio.\n         *  For example:\n         *\n         *    VBR_q    compression     like\n         *     -        4.4         320 kbps/44 kHz\n         *   0...1      5.5         256 kbps/44 kHz\n         *     2        7.3         192 kbps/44 kHz\n         *     4        8.8         160 kbps/44 kHz\n         *     6       11           128 kbps/44 kHz\n         *     9       14.7          96 kbps\n         *\n         *  for lower bitrates, downsample with --resample\n         * 
\n */\n switch (gfp.VBR) {\n case VbrMode.vbr_mt:\n case VbrMode.vbr_rh:\n case VbrMode.vbr_mtrh:\n {\n /* numbers are a bit strange, but they determine the lowpass value */\n var cmp = [5.7, 6.5, 7.3, 8.2, 10, 11.9, 13, 14,\n 15, 16.5];\n gfp.compression_ratio = cmp[gfp.VBR_q];\n }\n break;\n case VbrMode.vbr_abr:\n gfp.compression_ratio = gfp.out_samplerate * 16 * gfc.channels_out\n / (1.e3 * gfp.VBR_mean_bitrate_kbps);\n break;\n default:\n gfp.compression_ratio = gfp.out_samplerate * 16 * gfc.channels_out\n / (1.e3 * gfp.brate);\n break;\n }\n\n /*\n * mode = -1 (not set by user) or mode = MONO (because of only 1 input\n * channel). If mode has not been set, then select J-STEREO\n */\n if (gfp.mode == MPEGMode.NOT_SET) {\n gfp.mode = MPEGMode.JOINT_STEREO;\n }\n\n /* apply user driven high pass filter */\n if (gfp.highpassfreq > 0) {\n gfc.highpass1 = 2. * gfp.highpassfreq;\n\n if (gfp.highpasswidth >= 0)\n gfc.highpass2 = 2. * (gfp.highpassfreq + gfp.highpasswidth);\n else\n /* 0% above on default */\n gfc.highpass2 = (1 + 0.00) * 2. * gfp.highpassfreq;\n\n gfc.highpass1 /= gfp.out_samplerate;\n gfc.highpass2 /= gfp.out_samplerate;\n } else {\n gfc.highpass1 = 0;\n gfc.highpass2 = 0;\n }\n /* apply user driven low pass filter */\n if (gfp.lowpassfreq > 0) {\n gfc.lowpass2 = 2. * gfp.lowpassfreq;\n if (gfp.lowpasswidth >= 0) {\n gfc.lowpass1 = 2. * (gfp.lowpassfreq - gfp.lowpasswidth);\n if (gfc.lowpass1 < 0) /* has to be >= 0 */\n gfc.lowpass1 = 0;\n } else { /* 0% below on default */\n gfc.lowpass1 = (1 - 0.00) * 2. * gfp.lowpassfreq;\n }\n gfc.lowpass1 /= gfp.out_samplerate;\n gfc.lowpass2 /= gfp.out_samplerate;\n } else {\n gfc.lowpass1 = 0;\n gfc.lowpass2 = 0;\n }\n\n /**********************************************************************/\n /* compute info needed for polyphase filter (filter type==0, default) */\n /**********************************************************************/\n lame_init_params_ppflt(gfp);\n /*******************************************************\n * samplerate and bitrate index\n *******************************************************/\n gfc.samplerate_index = SmpFrqIndex(gfp.out_samplerate, gfp);\n if (gfc.samplerate_index < 0) {\n gfp.internal_flags = null;\n return -1;\n }\n\n if (gfp.VBR == VbrMode.vbr_off) {\n if (gfp.free_format) {\n gfc.bitrate_index = 0;\n } else {\n gfp.brate = FindNearestBitrate(gfp.brate, gfp.version,\n gfp.out_samplerate);\n gfc.bitrate_index = BitrateIndex(gfp.brate, gfp.version,\n gfp.out_samplerate);\n if (gfc.bitrate_index <= 0) {\n gfp.internal_flags = null;\n return -1;\n }\n }\n } else {\n gfc.bitrate_index = 1;\n }\n\n /* for CBR, we will write an \"info\" tag. */\n\n if (gfp.analysis)\n gfp.bWriteVbrTag = false;\n\n /* some file options not allowed if output is: not specified or stdout */\n if (gfc.pinfo != null)\n gfp.bWriteVbrTag = false;\n /* disable Xing VBR tag */\n\n bs.init_bit_stream_w(gfc);\n\n var j = gfc.samplerate_index + (3 * gfp.version) + 6\n * (gfp.out_samplerate < 16000 ? 1 : 0);\n for (var i = 0; i < Encoder.SBMAX_l + 1; i++)\n gfc.scalefac_band.l[i] = qupvt.sfBandIndex[j].l[i];\n\n for (var i = 0; i < Encoder.PSFB21 + 1; i++) {\n var size = (gfc.scalefac_band.l[22] - gfc.scalefac_band.l[21])\n / Encoder.PSFB21;\n var start = gfc.scalefac_band.l[21] + i * size;\n gfc.scalefac_band.psfb21[i] = start;\n }\n gfc.scalefac_band.psfb21[Encoder.PSFB21] = 576;\n\n for (var i = 0; i < Encoder.SBMAX_s + 1; i++)\n gfc.scalefac_band.s[i] = qupvt.sfBandIndex[j].s[i];\n\n for (var i = 0; i < Encoder.PSFB12 + 1; i++) {\n var size = (gfc.scalefac_band.s[13] - gfc.scalefac_band.s[12])\n / Encoder.PSFB12;\n var start = gfc.scalefac_band.s[12] + i * size;\n gfc.scalefac_band.psfb12[i] = start;\n }\n gfc.scalefac_band.psfb12[Encoder.PSFB12] = 192;\n /* determine the mean bitrate for main data */\n if (gfp.version == 1) /* MPEG 1 */\n gfc.sideinfo_len = (gfc.channels_out == 1) ? 4 + 17 : 4 + 32;\n else\n /* MPEG 2 */\n gfc.sideinfo_len = (gfc.channels_out == 1) ? 4 + 9 : 4 + 17;\n\n if (gfp.error_protection)\n gfc.sideinfo_len += 2;\n\n lame_init_bitstream(gfp);\n\n gfc.Class_ID = LAME_ID;\n\n {\n var k;\n\n for (k = 0; k < 19; k++)\n gfc.nsPsy.pefirbuf[k] = 700 * gfc.mode_gr * gfc.channels_out;\n\n if (gfp.ATHtype == -1)\n gfp.ATHtype = 4;\n }\n assert(gfp.VBR_q <= 9);\n assert(gfp.VBR_q >= 0);\n\n switch (gfp.VBR) {\n\n case VbrMode.vbr_mt:\n gfp.VBR = VbrMode.vbr_mtrh;\n //$FALL-THROUGH$\n case VbrMode.vbr_mtrh:\n {\n if (gfp.useTemporal == null) {\n gfp.useTemporal = false;\n /* off by default for this VBR mode */\n }\n\n p.apply_preset(gfp, 500 - (gfp.VBR_q * 10), 0);\n /**\n *
\n                 *   The newer VBR code supports only a limited\n                 *     subset of quality levels:\n                 *     9-5=5 are the same, uses x^3/4 quantization\n                 *   4-0=0 are the same  5 plus best huffman divide code\n                 * 
\n */\n if (gfp.quality < 0)\n gfp.quality = LAME_DEFAULT_QUALITY;\n if (gfp.quality < 5)\n gfp.quality = 0;\n if (gfp.quality > 5)\n gfp.quality = 5;\n\n gfc.PSY.mask_adjust = gfp.maskingadjust;\n gfc.PSY.mask_adjust_short = gfp.maskingadjust_short;\n\n /*\n * sfb21 extra only with MPEG-1 at higher sampling rates\n */\n if (gfp.experimentalY)\n gfc.sfb21_extra = false;\n else\n gfc.sfb21_extra = (gfp.out_samplerate > 44000);\n\n gfc.iteration_loop = new VBRNewIterationLoop(qu);\n break;\n\n }\n case VbrMode.vbr_rh:\n {\n\n p.apply_preset(gfp, 500 - (gfp.VBR_q * 10), 0);\n\n gfc.PSY.mask_adjust = gfp.maskingadjust;\n gfc.PSY.mask_adjust_short = gfp.maskingadjust_short;\n\n /*\n * sfb21 extra only with MPEG-1 at higher sampling rates\n */\n if (gfp.experimentalY)\n gfc.sfb21_extra = false;\n else\n gfc.sfb21_extra = (gfp.out_samplerate > 44000);\n\n /*\n * VBR needs at least the output of GPSYCHO, so we have to garantee\n * that by setting a minimum quality level, actually level 6 does\n * it. down to level 6\n */\n if (gfp.quality > 6)\n gfp.quality = 6;\n\n if (gfp.quality < 0)\n gfp.quality = LAME_DEFAULT_QUALITY;\n\n gfc.iteration_loop = new VBROldIterationLoop(qu);\n break;\n }\n\n default: /* cbr/abr */\n {\n var vbrmode;\n\n /*\n * no sfb21 extra with CBR code\n */\n gfc.sfb21_extra = false;\n\n if (gfp.quality < 0)\n gfp.quality = LAME_DEFAULT_QUALITY;\n\n vbrmode = gfp.VBR;\n if (vbrmode == VbrMode.vbr_off)\n gfp.VBR_mean_bitrate_kbps = gfp.brate;\n /* second, set parameters depending on bitrate */\n p.apply_preset(gfp, gfp.VBR_mean_bitrate_kbps, 0);\n gfp.VBR = vbrmode;\n\n gfc.PSY.mask_adjust = gfp.maskingadjust;\n gfc.PSY.mask_adjust_short = gfp.maskingadjust_short;\n\n if (vbrmode == VbrMode.vbr_off) {\n gfc.iteration_loop = new CBRNewIterationLoop(qu);\n } else {\n gfc.iteration_loop = new ABRIterationLoop(qu);\n }\n break;\n }\n }\n assert(gfp.scale >= 0);\n /* initialize default values common for all modes */\n\n if (gfp.VBR != VbrMode.vbr_off) { /* choose a min/max bitrate for VBR */\n /* if the user didn't specify VBR_max_bitrate: */\n gfc.VBR_min_bitrate = 1;\n /*\n * default: allow 8 kbps (MPEG-2) or 32 kbps (MPEG-1)\n */\n gfc.VBR_max_bitrate = 14;\n /*\n * default: allow 160 kbps (MPEG-2) or 320 kbps (MPEG-1)\n */\n if (gfp.out_samplerate < 16000)\n gfc.VBR_max_bitrate = 8;\n /* default: allow 64 kbps (MPEG-2.5) */\n if (gfp.VBR_min_bitrate_kbps != 0) {\n gfp.VBR_min_bitrate_kbps = FindNearestBitrate(\n gfp.VBR_min_bitrate_kbps, gfp.version,\n gfp.out_samplerate);\n gfc.VBR_min_bitrate = BitrateIndex(gfp.VBR_min_bitrate_kbps,\n gfp.version, gfp.out_samplerate);\n if (gfc.VBR_min_bitrate < 0)\n return -1;\n }\n if (gfp.VBR_max_bitrate_kbps != 0) {\n gfp.VBR_max_bitrate_kbps = FindNearestBitrate(\n gfp.VBR_max_bitrate_kbps, gfp.version,\n gfp.out_samplerate);\n gfc.VBR_max_bitrate = BitrateIndex(gfp.VBR_max_bitrate_kbps,\n gfp.version, gfp.out_samplerate);\n if (gfc.VBR_max_bitrate < 0)\n return -1;\n }\n gfp.VBR_min_bitrate_kbps = Tables.bitrate_table[gfp.version][gfc.VBR_min_bitrate];\n gfp.VBR_max_bitrate_kbps = Tables.bitrate_table[gfp.version][gfc.VBR_max_bitrate];\n gfp.VBR_mean_bitrate_kbps = Math.min(\n Tables.bitrate_table[gfp.version][gfc.VBR_max_bitrate],\n gfp.VBR_mean_bitrate_kbps);\n gfp.VBR_mean_bitrate_kbps = Math.max(\n Tables.bitrate_table[gfp.version][gfc.VBR_min_bitrate],\n gfp.VBR_mean_bitrate_kbps);\n }\n\n /* just another daily changing developer switch */\n if (gfp.tune) {\n gfc.PSY.mask_adjust += gfp.tune_value_a;\n gfc.PSY.mask_adjust_short += gfp.tune_value_a;\n }\n\n /* initialize internal qval settings */\n lame_init_qval(gfp);\n assert(gfp.scale >= 0);\n /*\n * automatic ATH adjustment on\n */\n if (gfp.athaa_type < 0)\n gfc.ATH.useAdjust = 3;\n else\n gfc.ATH.useAdjust = gfp.athaa_type;\n\n /* initialize internal adaptive ATH settings -jd */\n gfc.ATH.aaSensitivityP = Math.pow(10.0, gfp.athaa_sensitivity\n / -10.0);\n\n if (gfp.short_blocks == null) {\n gfp.short_blocks = ShortBlock.short_block_allowed;\n }\n\n /*\n * Note Jan/2003: Many hardware decoders cannot handle short blocks in\n * regular stereo mode unless they are coupled (same type in both\n * channels) it is a rare event (1 frame per min. or so) that LAME would\n * use uncoupled short blocks, so lets turn them off until we decide how\n * to handle this. No other encoders allow uncoupled short blocks, even\n * though it is in the standard.\n */\n /*\n * rh 20040217: coupling makes no sense for mono and dual-mono streams\n */\n if (gfp.short_blocks == ShortBlock.short_block_allowed\n && (gfp.mode == MPEGMode.JOINT_STEREO || gfp.mode == MPEGMode.STEREO)) {\n gfp.short_blocks = ShortBlock.short_block_coupled;\n }\n\n if (gfp.quant_comp < 0)\n gfp.quant_comp = 1;\n if (gfp.quant_comp_short < 0)\n gfp.quant_comp_short = 0;\n\n if (gfp.msfix < 0)\n gfp.msfix = 0;\n\n /* select psychoacoustic model */\n gfp.exp_nspsytune = gfp.exp_nspsytune | 1;\n\n if (gfp.internal_flags.nsPsy.attackthre < 0)\n gfp.internal_flags.nsPsy.attackthre = PsyModel.NSATTACKTHRE;\n if (gfp.internal_flags.nsPsy.attackthre_s < 0)\n gfp.internal_flags.nsPsy.attackthre_s = PsyModel.NSATTACKTHRE_S;\n\n assert(gfp.scale >= 0);\n\n if (gfp.scale < 0)\n gfp.scale = 1;\n\n if (gfp.ATHtype < 0)\n gfp.ATHtype = 4;\n\n if (gfp.ATHcurve < 0)\n gfp.ATHcurve = 4;\n\n if (gfp.athaa_loudapprox < 0)\n gfp.athaa_loudapprox = 2;\n\n if (gfp.interChRatio < 0)\n gfp.interChRatio = 0;\n\n if (gfp.useTemporal == null)\n gfp.useTemporal = true;\n /* on by default */\n\n /*\n * padding method as described in\n * \"MPEG-Layer3 / Bitstream Syntax and Decoding\" by Martin Sieler, Ralph\n * Sperschneider\n *\n * note: there is no padding for the very first frame\n *\n * Robert Hegemann 2000-06-22\n */\n gfc.slot_lag = gfc.frac_SpF = 0;\n if (gfp.VBR == VbrMode.vbr_off)\n gfc.slot_lag = gfc.frac_SpF = (((gfp.version + 1) * 72000 * gfp.brate) % gfp.out_samplerate) | 0;\n\n qupvt.iteration_init(gfp);\n psy.psymodel_init(gfp);\n assert(gfp.scale >= 0);\n return 0;\n }\n\n function update_inbuffer_size(gfc, nsamples) {\n if (gfc.in_buffer_0 == null || gfc.in_buffer_nsamples < nsamples) {\n gfc.in_buffer_0 = new_float(nsamples);\n gfc.in_buffer_1 = new_float(nsamples);\n gfc.in_buffer_nsamples = nsamples;\n }\n }\n\n this.lame_encode_flush = function (gfp, mp3buffer, mp3bufferPos, mp3buffer_size) {\n var gfc = gfp.internal_flags;\n var buffer = new_short_n([2, 1152]);\n var imp3 = 0, mp3count, mp3buffer_size_remaining;\n\n /*\n * we always add POSTDELAY=288 padding to make sure granule with real\n * data can be complety decoded (because of 50% overlap with next\n * granule\n */\n var end_padding;\n var frames_left;\n var samples_to_encode = gfc.mf_samples_to_encode - Encoder.POSTDELAY;\n var mf_needed = calcNeeded(gfp);\n\n /* Was flush already called? */\n if (gfc.mf_samples_to_encode < 1) {\n return 0;\n }\n mp3count = 0;\n\n if (gfp.in_samplerate != gfp.out_samplerate) {\n /*\n * delay due to resampling; needs to be fixed, if resampling code\n * gets changed\n */\n samples_to_encode += 16. * gfp.out_samplerate / gfp.in_samplerate;\n }\n end_padding = gfp.framesize - (samples_to_encode % gfp.framesize);\n if (end_padding < 576)\n end_padding += gfp.framesize;\n gfp.encoder_padding = end_padding;\n\n frames_left = (samples_to_encode + end_padding) / gfp.framesize;\n\n /*\n * send in a frame of 0 padding until all internal sample buffers are\n * flushed\n */\n while (frames_left > 0 && imp3 >= 0) {\n var bunch = mf_needed - gfc.mf_size;\n var frame_num = gfp.frameNum;\n\n bunch *= gfp.in_samplerate;\n bunch /= gfp.out_samplerate;\n if (bunch > 1152)\n bunch = 1152;\n if (bunch < 1)\n bunch = 1;\n\n mp3buffer_size_remaining = mp3buffer_size - mp3count;\n\n /* if user specifed buffer size = 0, dont check size */\n if (mp3buffer_size == 0)\n mp3buffer_size_remaining = 0;\n\n imp3 = this.lame_encode_buffer(gfp, buffer[0], buffer[1], bunch,\n mp3buffer, mp3bufferPos, mp3buffer_size_remaining);\n\n mp3bufferPos += imp3;\n mp3count += imp3;\n frames_left -= (frame_num != gfp.frameNum) ? 1 : 0;\n }\n /*\n * Set gfc.mf_samples_to_encode to 0, so we may detect and break loops\n * calling it more than once in a row.\n */\n gfc.mf_samples_to_encode = 0;\n\n if (imp3 < 0) {\n /* some type of fatal error */\n return imp3;\n }\n\n mp3buffer_size_remaining = mp3buffer_size - mp3count;\n /* if user specifed buffer size = 0, dont check size */\n if (mp3buffer_size == 0)\n mp3buffer_size_remaining = 0;\n\n /* mp3 related stuff. bit buffer might still contain some mp3 data */\n bs.flush_bitstream(gfp);\n imp3 = bs.copy_buffer(gfc, mp3buffer, mp3bufferPos,\n mp3buffer_size_remaining, 1);\n if (imp3 < 0) {\n /* some type of fatal error */\n return imp3;\n }\n mp3bufferPos += imp3;\n mp3count += imp3;\n mp3buffer_size_remaining = mp3buffer_size - mp3count;\n /* if user specifed buffer size = 0, dont check size */\n if (mp3buffer_size == 0)\n mp3buffer_size_remaining = 0;\n\n if (gfp.write_id3tag_automatic) {\n /* write a id3 tag to the bitstream */\n id3.id3tag_write_v1(gfp);\n\n imp3 = bs.copy_buffer(gfc, mp3buffer, mp3bufferPos,\n mp3buffer_size_remaining, 0);\n\n if (imp3 < 0) {\n return imp3;\n }\n mp3count += imp3;\n }\n return mp3count;\n };\n\n this.lame_encode_buffer = function (gfp, buffer_l, buffer_r, nsamples, mp3buf, mp3bufPos, mp3buf_size) {\n var gfc = gfp.internal_flags;\n var in_buffer = [null, null];\n\n if (gfc.Class_ID != LAME_ID)\n return -3;\n\n if (nsamples == 0)\n return 0;\n\n update_inbuffer_size(gfc, nsamples);\n\n in_buffer[0] = gfc.in_buffer_0;\n in_buffer[1] = gfc.in_buffer_1;\n\n /* make a copy of input buffer, changing type to sample_t */\n for (var i = 0; i < nsamples; i++) {\n in_buffer[0][i] = buffer_l[i];\n if (gfc.channels_in > 1)\n in_buffer[1][i] = buffer_r[i];\n }\n\n return lame_encode_buffer_sample(gfp, in_buffer[0], in_buffer[1],\n nsamples, mp3buf, mp3bufPos, mp3buf_size);\n }\n\n function calcNeeded(gfp) {\n var mf_needed = Encoder.BLKSIZE + gfp.framesize - Encoder.FFTOFFSET;\n /*\n * amount needed for FFT\n */\n mf_needed = Math.max(mf_needed, 512 + gfp.framesize - 32);\n assert(LameInternalFlags.MFSIZE >= mf_needed);\n\n return mf_needed;\n }\n\n function lame_encode_buffer_sample(gfp, buffer_l, buffer_r, nsamples, mp3buf, mp3bufPos, mp3buf_size) {\n var gfc = gfp.internal_flags;\n var mp3size = 0, ret, i, ch, mf_needed;\n var mp3out;\n var mfbuf = [null, null];\n var in_buffer = [null, null];\n\n if (gfc.Class_ID != LAME_ID)\n return -3;\n\n if (nsamples == 0)\n return 0;\n\n /* copy out any tags that may have been written into bitstream */\n mp3out = bs.copy_buffer(gfc, mp3buf, mp3bufPos, mp3buf_size, 0);\n if (mp3out < 0)\n return mp3out;\n /* not enough buffer space */\n mp3bufPos += mp3out;\n mp3size += mp3out;\n\n in_buffer[0] = buffer_l;\n in_buffer[1] = buffer_r;\n\n /* Apply user defined re-scaling */\n\n /* user selected scaling of the samples */\n if (BitStream.NEQ(gfp.scale, 0) && BitStream.NEQ(gfp.scale, 1.0)) {\n for (i = 0; i < nsamples; ++i) {\n in_buffer[0][i] *= gfp.scale;\n if (gfc.channels_out == 2)\n in_buffer[1][i] *= gfp.scale;\n }\n }\n\n /* user selected scaling of the channel 0 (left) samples */\n if (BitStream.NEQ(gfp.scale_left, 0)\n && BitStream.NEQ(gfp.scale_left, 1.0)) {\n for (i = 0; i < nsamples; ++i) {\n in_buffer[0][i] *= gfp.scale_left;\n }\n }\n\n /* user selected scaling of the channel 1 (right) samples */\n if (BitStream.NEQ(gfp.scale_right, 0)\n && BitStream.NEQ(gfp.scale_right, 1.0)) {\n for (i = 0; i < nsamples; ++i) {\n in_buffer[1][i] *= gfp.scale_right;\n }\n }\n\n /* Downsample to Mono if 2 channels in and 1 channel out */\n if (gfp.num_channels == 2 && gfc.channels_out == 1) {\n for (i = 0; i < nsamples; ++i) {\n in_buffer[0][i] = 0.5 * ( in_buffer[0][i] + in_buffer[1][i]);\n in_buffer[1][i] = 0.0;\n }\n }\n\n mf_needed = calcNeeded(gfp);\n\n mfbuf[0] = gfc.mfbuf[0];\n mfbuf[1] = gfc.mfbuf[1];\n\n var in_bufferPos = 0;\n while (nsamples > 0) {\n var in_buffer_ptr = [null, null];\n var n_in = 0;\n /* number of input samples processed with fill_buffer */\n var n_out = 0;\n /* number of samples output with fill_buffer */\n /* n_in <> n_out if we are resampling */\n\n in_buffer_ptr[0] = in_buffer[0];\n in_buffer_ptr[1] = in_buffer[1];\n /* copy in new samples into mfbuf, with resampling */\n var inOut = new InOut();\n fill_buffer(gfp, mfbuf, in_buffer_ptr, in_bufferPos, nsamples,\n inOut);\n n_in = inOut.n_in;\n n_out = inOut.n_out;\n\n /* compute ReplayGain of resampled input if requested */\n if (gfc.findReplayGain && !gfc.decode_on_the_fly)\n if (ga.AnalyzeSamples(gfc.rgdata, mfbuf[0], gfc.mf_size,\n mfbuf[1], gfc.mf_size, n_out, gfc.channels_out) == GainAnalysis.GAIN_ANALYSIS_ERROR)\n return -6;\n\n /* update in_buffer counters */\n nsamples -= n_in;\n in_bufferPos += n_in;\n if (gfc.channels_out == 2)\n ;// in_bufferPos += n_in;\n\n /* update mfbuf[] counters */\n gfc.mf_size += n_out;\n assert(gfc.mf_size <= LameInternalFlags.MFSIZE);\n\n /*\n * lame_encode_flush may have set gfc.mf_sample_to_encode to 0 so we\n * have to reinitialize it here when that happened.\n */\n if (gfc.mf_samples_to_encode < 1) {\n gfc.mf_samples_to_encode = Encoder.ENCDELAY + Encoder.POSTDELAY;\n }\n gfc.mf_samples_to_encode += n_out;\n\n if (gfc.mf_size >= mf_needed) {\n /* encode the frame. */\n /* mp3buf = pointer to current location in buffer */\n /* mp3buf_size = size of original mp3 output buffer */\n /* = 0 if we should not worry about the */\n /* buffer size because calling program is */\n /* to lazy to compute it */\n /* mp3size = size of data written to buffer so far */\n /* mp3buf_size-mp3size = amount of space avalable */\n\n var buf_size = mp3buf_size - mp3size;\n if (mp3buf_size == 0)\n buf_size = 0;\n\n ret = lame_encode_frame(gfp, mfbuf[0], mfbuf[1], mp3buf,\n mp3bufPos, buf_size);\n\n if (ret < 0)\n return ret;\n mp3bufPos += ret;\n mp3size += ret;\n\n /* shift out old samples */\n gfc.mf_size -= gfp.framesize;\n gfc.mf_samples_to_encode -= gfp.framesize;\n for (ch = 0; ch < gfc.channels_out; ch++)\n for (i = 0; i < gfc.mf_size; i++)\n mfbuf[ch][i] = mfbuf[ch][i + gfp.framesize];\n }\n }\n assert(nsamples == 0);\n\n return mp3size;\n }\n\n function lame_encode_frame(gfp, inbuf_l, inbuf_r, mp3buf, mp3bufPos, mp3buf_size) {\n var ret = self.enc.lame_encode_mp3_frame(gfp, inbuf_l, inbuf_r, mp3buf,\n mp3bufPos, mp3buf_size);\n gfp.frameNum++;\n return ret;\n }\n\n function InOut() {\n this.n_in = 0;\n this.n_out = 0;\n }\n\n\n function NumUsed() {\n this.num_used = 0;\n }\n\n /**\n * Greatest common divisor.\n *

\n * Joint work of Euclid and M. Hendry\n */\n function gcd(i, j) {\n return j != 0 ? gcd(j, i % j) : i;\n }\n\n /**\n * Resampling via FIR filter, blackman window.\n */\n function blackman(x, fcn, l) {\n /*\n * This algorithm from: SIGNAL PROCESSING ALGORITHMS IN FORTRAN AND C\n * S.D. Stearns and R.A. David, Prentice-Hall, 1992\n */\n var wcn = (Math.PI * fcn);\n\n x /= l;\n if (x < 0)\n x = 0;\n if (x > 1)\n x = 1;\n var x2 = x - .5;\n\n var bkwn = 0.42 - 0.5 * Math.cos(2 * x * Math.PI) + 0.08 * Math.cos(4 * x * Math.PI);\n if (Math.abs(x2) < 1e-9)\n return (wcn / Math.PI);\n else\n return (bkwn * Math.sin(l * wcn * x2) / (Math.PI * l * x2));\n }\n\n function fill_buffer_resample(gfp, outbuf, outbufPos, desired_len, inbuf, in_bufferPos, len, num_used, ch) {\n var gfc = gfp.internal_flags;\n var i, j = 0, k;\n /* number of convolution functions to pre-compute */\n var bpc = gfp.out_samplerate\n / gcd(gfp.out_samplerate, gfp.in_samplerate);\n if (bpc > LameInternalFlags.BPC)\n bpc = LameInternalFlags.BPC;\n\n var intratio = (Math.abs(gfc.resample_ratio\n - Math.floor(.5 + gfc.resample_ratio)) < .0001) ? 1 : 0;\n var fcn = 1.00 / gfc.resample_ratio;\n if (fcn > 1.00)\n fcn = 1.00;\n var filter_l = 31;\n if (0 == filter_l % 2)\n --filter_l;\n /* must be odd */\n filter_l += intratio;\n /* unless resample_ratio=int, it must be even */\n\n var BLACKSIZE = filter_l + 1;\n /* size of data needed for FIR */\n\n if (gfc.fill_buffer_resample_init == 0) {\n gfc.inbuf_old[0] = new_float(BLACKSIZE);\n gfc.inbuf_old[1] = new_float(BLACKSIZE);\n for (i = 0; i <= 2 * bpc; ++i)\n gfc.blackfilt[i] = new_float(BLACKSIZE);\n\n gfc.itime[0] = 0;\n gfc.itime[1] = 0;\n\n /* precompute blackman filter coefficients */\n for (j = 0; j <= 2 * bpc; j++) {\n var sum = 0.;\n var offset = (j - bpc) / (2. * bpc);\n for (i = 0; i <= filter_l; i++)\n sum += gfc.blackfilt[j][i] = blackman(i - offset, fcn,\n filter_l);\n for (i = 0; i <= filter_l; i++)\n gfc.blackfilt[j][i] /= sum;\n }\n gfc.fill_buffer_resample_init = 1;\n }\n\n var inbuf_old = gfc.inbuf_old[ch];\n\n /* time of j'th element in inbuf = itime + j/ifreq; */\n /* time of k'th element in outbuf = j/ofreq */\n for (k = 0; k < desired_len; k++) {\n var time0;\n var joff;\n\n time0 = k * gfc.resample_ratio;\n /* time of k'th output sample */\n j = 0 | Math.floor(time0 - gfc.itime[ch]);\n\n /* check if we need more input data */\n if ((filter_l + j - filter_l / 2) >= len)\n break;\n\n /* blackman filter. by default, window centered at j+.5(filter_l%2) */\n /* but we want a window centered at time0. */\n var offset = (time0 - gfc.itime[ch] - (j + .5 * (filter_l % 2)));\n assert(Math.abs(offset) <= .501);\n\n /* find the closest precomputed window for this offset: */\n joff = 0 | Math.floor((offset * 2 * bpc) + bpc + .5);\n var xvalue = 0.;\n for (i = 0; i <= filter_l; ++i) {\n var j2 = i + j - filter_l / 2;\n var y;\n assert(j2 < len);\n assert(j2 + BLACKSIZE >= 0);\n y = (j2 < 0) ? inbuf_old[BLACKSIZE + j2] : inbuf[in_bufferPos\n + j2];\n xvalue += y * gfc.blackfilt[joff][i];\n }\n outbuf[outbufPos + k] = xvalue;\n }\n\n /* k = number of samples added to outbuf */\n /* last k sample used data from [j-filter_l/2,j+filter_l-filter_l/2] */\n\n /* how many samples of input data were used: */\n num_used.num_used = Math.min(len, filter_l + j - filter_l / 2);\n\n /*\n * adjust our input time counter. Incriment by the number of samples\n * used, then normalize so that next output sample is at time 0, next\n * input buffer is at time itime[ch]\n */\n gfc.itime[ch] += num_used.num_used - k * gfc.resample_ratio;\n\n /* save the last BLACKSIZE samples into the inbuf_old buffer */\n if (num_used.num_used >= BLACKSIZE) {\n for (i = 0; i < BLACKSIZE; i++)\n inbuf_old[i] = inbuf[in_bufferPos + num_used.num_used + i\n - BLACKSIZE];\n } else {\n /* shift in num_used.num_used samples into inbuf_old */\n var n_shift = BLACKSIZE - num_used.num_used;\n /*\n * number of samples to\n * shift\n */\n\n /*\n * shift n_shift samples by num_used.num_used, to make room for the\n * num_used new samples\n */\n for (i = 0; i < n_shift; ++i)\n inbuf_old[i] = inbuf_old[i + num_used.num_used];\n\n /* shift in the num_used.num_used samples */\n for (j = 0; i < BLACKSIZE; ++i, ++j)\n inbuf_old[i] = inbuf[in_bufferPos + j];\n\n assert(j == num_used.num_used);\n }\n return k;\n /* return the number samples created at the new samplerate */\n }\n\n function fill_buffer(gfp, mfbuf, in_buffer, in_bufferPos, nsamples, io) {\n var gfc = gfp.internal_flags;\n\n /* copy in new samples into mfbuf, with resampling if necessary */\n if ((gfc.resample_ratio < .9999) || (gfc.resample_ratio > 1.0001)) {\n for (var ch = 0; ch < gfc.channels_out; ch++) {\n var numUsed = new NumUsed();\n io.n_out = fill_buffer_resample(gfp, mfbuf[ch], gfc.mf_size,\n gfp.framesize, in_buffer[ch], in_bufferPos, nsamples,\n numUsed, ch);\n io.n_in = numUsed.num_used;\n }\n } else {\n io.n_out = Math.min(gfp.framesize, nsamples);\n io.n_in = io.n_out;\n for (var i = 0; i < io.n_out; ++i) {\n mfbuf[0][gfc.mf_size + i] = in_buffer[0][in_bufferPos + i];\n if (gfc.channels_out == 2)\n mfbuf[1][gfc.mf_size + i] = in_buffer[1][in_bufferPos + i];\n }\n }\n }\n\n}\n\nmodule.exports = Lame;\n","var common = require('./common.js');\nvar System = common.System;\nvar VbrMode = common.VbrMode;\nvar Float = common.Float;\nvar ShortBlock = common.ShortBlock;\nvar Util = common.Util;\nvar Arrays = common.Arrays;\nvar new_array_n = common.new_array_n;\nvar new_byte = common.new_byte;\nvar new_double = common.new_double;\nvar new_float = common.new_float;\nvar new_float_n = common.new_float_n;\nvar new_int = common.new_int;\nvar new_int_n = common.new_int_n;\nvar assert = common.assert;\n\nfunction Presets() {\n function VBRPresets(qual, comp, compS,\n y, shThreshold, shThresholdS,\n adj, adjShort, lower,\n curve, sens, inter,\n joint, mod, fix) {\n this.vbr_q = qual;\n this.quant_comp = comp;\n this.quant_comp_s = compS;\n this.expY = y;\n this.st_lrm = shThreshold;\n this.st_s = shThresholdS;\n this.masking_adj = adj;\n this.masking_adj_short = adjShort;\n this.ath_lower = lower;\n this.ath_curve = curve;\n this.ath_sensitivity = sens;\n this.interch = inter;\n this.safejoint = joint;\n this.sfb21mod = mod;\n this.msfix = fix;\n }\n\n function ABRPresets(kbps, comp, compS,\n joint, fix, shThreshold,\n shThresholdS, bass, sc,\n mask, lower, curve,\n interCh, sfScale) {\n this.quant_comp = comp;\n this.quant_comp_s = compS;\n this.safejoint = joint;\n this.nsmsfix = fix;\n this.st_lrm = shThreshold;\n this.st_s = shThresholdS;\n this.nsbass = bass;\n this.scale = sc;\n this.masking_adj = mask;\n this.ath_lower = lower;\n this.ath_curve = curve;\n this.interch = interCh;\n this.sfscale = sfScale;\n }\n\n var lame;\n\n this.setModules = function (_lame) {\n lame = _lame;\n };\n\n /**\n *

\n     * Switch mappings for VBR mode VBR_RH\n     *             vbr_q  qcomp_l  qcomp_s  expY  st_lrm   st_s  mask adj_l  adj_s  ath_lower  ath_curve  ath_sens  interChR  safejoint sfb21mod  msfix\n     * 
\n */\n var vbr_old_switch_map = [\n new VBRPresets(0, 9, 9, 0, 5.20, 125.0, -4.2, -6.3, 4.8, 1, 0, 0, 2, 21, 0.97),\n new VBRPresets(1, 9, 9, 0, 5.30, 125.0, -3.6, -5.6, 4.5, 1.5, 0, 0, 2, 21, 1.35),\n new VBRPresets(2, 9, 9, 0, 5.60, 125.0, -2.2, -3.5, 2.8, 2, 0, 0, 2, 21, 1.49),\n new VBRPresets(3, 9, 9, 1, 5.80, 130.0, -1.8, -2.8, 2.6, 3, -4, 0, 2, 20, 1.64),\n new VBRPresets(4, 9, 9, 1, 6.00, 135.0, -0.7, -1.1, 1.1, 3.5, -8, 0, 2, 0, 1.79),\n new VBRPresets(5, 9, 9, 1, 6.40, 140.0, 0.5, 0.4, -7.5, 4, -12, 0.0002, 0, 0, 1.95),\n new VBRPresets(6, 9, 9, 1, 6.60, 145.0, 0.67, 0.65, -14.7, 6.5, -19, 0.0004, 0, 0, 2.30),\n new VBRPresets(7, 9, 9, 1, 6.60, 145.0, 0.8, 0.75, -19.7, 8, -22, 0.0006, 0, 0, 2.70),\n new VBRPresets(8, 9, 9, 1, 6.60, 145.0, 1.2, 1.15, -27.5, 10, -23, 0.0007, 0, 0, 0),\n new VBRPresets(9, 9, 9, 1, 6.60, 145.0, 1.6, 1.6, -36, 11, -25, 0.0008, 0, 0, 0),\n new VBRPresets(10, 9, 9, 1, 6.60, 145.0, 2.0, 2.0, -36, 12, -25, 0.0008, 0, 0, 0)\n ];\n\n /**\n *
\n     *                 vbr_q  qcomp_l  qcomp_s  expY  st_lrm   st_s  mask adj_l  adj_s  ath_lower  ath_curve  ath_sens  interChR  safejoint sfb21mod  msfix\n     * 
\n */\n var vbr_psy_switch_map = [\n new VBRPresets(0, 9, 9, 0, 4.20, 25.0, -7.0, -4.0, 7.5, 1, 0, 0, 2, 26, 0.97),\n new VBRPresets(1, 9, 9, 0, 4.20, 25.0, -5.6, -3.6, 4.5, 1.5, 0, 0, 2, 21, 1.35),\n new VBRPresets(2, 9, 9, 0, 4.20, 25.0, -4.4, -1.8, 2, 2, 0, 0, 2, 18, 1.49),\n new VBRPresets(3, 9, 9, 1, 4.20, 25.0, -3.4, -1.25, 1.1, 3, -4, 0, 2, 15, 1.64),\n new VBRPresets(4, 9, 9, 1, 4.20, 25.0, -2.2, 0.1, 0, 3.5, -8, 0, 2, 0, 1.79),\n new VBRPresets(5, 9, 9, 1, 4.20, 25.0, -1.0, 1.65, -7.7, 4, -12, 0.0002, 0, 0, 1.95),\n new VBRPresets(6, 9, 9, 1, 4.20, 25.0, -0.0, 2.47, -7.7, 6.5, -19, 0.0004, 0, 0, 2),\n new VBRPresets(7, 9, 9, 1, 4.20, 25.0, 0.5, 2.0, -14.5, 8, -22, 0.0006, 0, 0, 2),\n new VBRPresets(8, 9, 9, 1, 4.20, 25.0, 1.0, 2.4, -22.0, 10, -23, 0.0007, 0, 0, 2),\n new VBRPresets(9, 9, 9, 1, 4.20, 25.0, 1.5, 2.95, -30.0, 11, -25, 0.0008, 0, 0, 2),\n new VBRPresets(10, 9, 9, 1, 4.20, 25.0, 2.0, 2.95, -36.0, 12, -30, 0.0008, 0, 0, 2)\n ];\n\n function apply_vbr_preset(gfp, a, enforce) {\n var vbr_preset = gfp.VBR == VbrMode.vbr_rh ? vbr_old_switch_map\n : vbr_psy_switch_map;\n\n var x = gfp.VBR_q_frac;\n var p = vbr_preset[a];\n var q = vbr_preset[a + 1];\n var set = p;\n\n // NOOP(vbr_q);\n // NOOP(quant_comp);\n // NOOP(quant_comp_s);\n // NOOP(expY);\n p.st_lrm = p.st_lrm + x * (q.st_lrm - p.st_lrm);\n // LERP(st_lrm);\n p.st_s = p.st_s + x * (q.st_s - p.st_s);\n // LERP(st_s);\n p.masking_adj = p.masking_adj + x * (q.masking_adj - p.masking_adj);\n // LERP(masking_adj);\n p.masking_adj_short = p.masking_adj_short + x\n * (q.masking_adj_short - p.masking_adj_short);\n // LERP(masking_adj_short);\n p.ath_lower = p.ath_lower + x * (q.ath_lower - p.ath_lower);\n // LERP(ath_lower);\n p.ath_curve = p.ath_curve + x * (q.ath_curve - p.ath_curve);\n // LERP(ath_curve);\n p.ath_sensitivity = p.ath_sensitivity + x\n * (q.ath_sensitivity - p.ath_sensitivity);\n // LERP(ath_sensitivity);\n p.interch = p.interch + x * (q.interch - p.interch);\n // LERP(interch);\n // NOOP(safejoint);\n // NOOP(sfb21mod);\n p.msfix = p.msfix + x * (q.msfix - p.msfix);\n // LERP(msfix);\n\n lame_set_VBR_q(gfp, set.vbr_q);\n\n if (enforce != 0)\n gfp.quant_comp = set.quant_comp;\n else if (!(Math.abs(gfp.quant_comp - -1) > 0))\n gfp.quant_comp = set.quant_comp;\n // SET_OPTION(quant_comp, set.quant_comp, -1);\n if (enforce != 0)\n gfp.quant_comp_short = set.quant_comp_s;\n else if (!(Math.abs(gfp.quant_comp_short - -1) > 0))\n gfp.quant_comp_short = set.quant_comp_s;\n // SET_OPTION(quant_comp_short, set.quant_comp_s, -1);\n if (set.expY != 0) {\n gfp.experimentalY = set.expY != 0;\n }\n if (enforce != 0)\n gfp.internal_flags.nsPsy.attackthre = set.st_lrm;\n else if (!(Math.abs(gfp.internal_flags.nsPsy.attackthre - -1) > 0))\n gfp.internal_flags.nsPsy.attackthre = set.st_lrm;\n // SET_OPTION(short_threshold_lrm, set.st_lrm, -1);\n if (enforce != 0)\n gfp.internal_flags.nsPsy.attackthre_s = set.st_s;\n else if (!(Math.abs(gfp.internal_flags.nsPsy.attackthre_s - -1) > 0))\n gfp.internal_flags.nsPsy.attackthre_s = set.st_s;\n // SET_OPTION(short_threshold_s, set.st_s, -1);\n if (enforce != 0)\n gfp.maskingadjust = set.masking_adj;\n else if (!(Math.abs(gfp.maskingadjust - 0) > 0))\n gfp.maskingadjust = set.masking_adj;\n // SET_OPTION(maskingadjust, set.masking_adj, 0);\n if (enforce != 0)\n gfp.maskingadjust_short = set.masking_adj_short;\n else if (!(Math.abs(gfp.maskingadjust_short - 0) > 0))\n gfp.maskingadjust_short = set.masking_adj_short;\n // SET_OPTION(maskingadjust_short, set.masking_adj_short, 0);\n if (enforce != 0)\n gfp.ATHlower = -set.ath_lower / 10.0;\n else if (!(Math.abs((-gfp.ATHlower * 10.0) - 0) > 0))\n gfp.ATHlower = -set.ath_lower / 10.0;\n // SET_OPTION(ATHlower, set.ath_lower, 0);\n if (enforce != 0)\n gfp.ATHcurve = set.ath_curve;\n else if (!(Math.abs(gfp.ATHcurve - -1) > 0))\n gfp.ATHcurve = set.ath_curve;\n // SET_OPTION(ATHcurve, set.ath_curve, -1);\n if (enforce != 0)\n gfp.athaa_sensitivity = set.ath_sensitivity;\n else if (!(Math.abs(gfp.athaa_sensitivity - -1) > 0))\n gfp.athaa_sensitivity = set.ath_sensitivity;\n // SET_OPTION(athaa_sensitivity, set.ath_sensitivity, 0);\n if (set.interch > 0) {\n if (enforce != 0)\n gfp.interChRatio = set.interch;\n else if (!(Math.abs(gfp.interChRatio - -1) > 0))\n gfp.interChRatio = set.interch;\n // SET_OPTION(interChRatio, set.interch, -1);\n }\n\n /* parameters for which there is no proper set/get interface */\n if (set.safejoint > 0) {\n gfp.exp_nspsytune = gfp.exp_nspsytune | set.safejoint;\n }\n if (set.sfb21mod > 0) {\n gfp.exp_nspsytune = gfp.exp_nspsytune | (set.sfb21mod << 20);\n }\n if (enforce != 0)\n gfp.msfix = set.msfix;\n else if (!(Math.abs(gfp.msfix - -1) > 0))\n gfp.msfix = set.msfix;\n // SET_OPTION(msfix, set.msfix, -1);\n\n if (enforce == 0) {\n gfp.VBR_q = a;\n gfp.VBR_q_frac = x;\n }\n }\n\n /**\n *
\n     *  Switch mappings for ABR mode\n     *\n     *              kbps  quant q_s safejoint nsmsfix st_lrm  st_s  ns-bass scale   msk ath_lwr ath_curve  interch , sfscale\n     * 
\n */\n var abr_switch_map = [\n new ABRPresets(8, 9, 9, 0, 0, 6.60, 145, 0, 0.95, 0, -30.0, 11, 0.0012, 1), /* 8, impossible to use in stereo */\n new ABRPresets(16, 9, 9, 0, 0, 6.60, 145, 0, 0.95, 0, -25.0, 11, 0.0010, 1), /* 16 */\n new ABRPresets(24, 9, 9, 0, 0, 6.60, 145, 0, 0.95, 0, -20.0, 11, 0.0010, 1), /* 24 */\n new ABRPresets(32, 9, 9, 0, 0, 6.60, 145, 0, 0.95, 0, -15.0, 11, 0.0010, 1), /* 32 */\n new ABRPresets(40, 9, 9, 0, 0, 6.60, 145, 0, 0.95, 0, -10.0, 11, 0.0009, 1), /* 40 */\n new ABRPresets(48, 9, 9, 0, 0, 6.60, 145, 0, 0.95, 0, -10.0, 11, 0.0009, 1), /* 48 */\n new ABRPresets(56, 9, 9, 0, 0, 6.60, 145, 0, 0.95, 0, -6.0, 11, 0.0008, 1), /* 56 */\n new ABRPresets(64, 9, 9, 0, 0, 6.60, 145, 0, 0.95, 0, -2.0, 11, 0.0008, 1), /* 64 */\n new ABRPresets(80, 9, 9, 0, 0, 6.60, 145, 0, 0.95, 0, .0, 8, 0.0007, 1), /* 80 */\n new ABRPresets(96, 9, 9, 0, 2.50, 6.60, 145, 0, 0.95, 0, 1.0, 5.5, 0.0006, 1), /* 96 */\n new ABRPresets(112, 9, 9, 0, 2.25, 6.60, 145, 0, 0.95, 0, 2.0, 4.5, 0.0005, 1), /* 112 */\n new ABRPresets(128, 9, 9, 0, 1.95, 6.40, 140, 0, 0.95, 0, 3.0, 4, 0.0002, 1), /* 128 */\n new ABRPresets(160, 9, 9, 1, 1.79, 6.00, 135, 0, 0.95, -2, 5.0, 3.5, 0, 1), /* 160 */\n new ABRPresets(192, 9, 9, 1, 1.49, 5.60, 125, 0, 0.97, -4, 7.0, 3, 0, 0), /* 192 */\n new ABRPresets(224, 9, 9, 1, 1.25, 5.20, 125, 0, 0.98, -6, 9.0, 2, 0, 0), /* 224 */\n new ABRPresets(256, 9, 9, 1, 0.97, 5.20, 125, 0, 1.00, -8, 10.0, 1, 0, 0), /* 256 */\n new ABRPresets(320, 9, 9, 1, 0.90, 5.20, 125, 0, 1.00, -10, 12.0, 0, 0, 0) /* 320 */\n ];\n\n function apply_abr_preset(gfp, preset, enforce) {\n /* Variables for the ABR stuff */\n var actual_bitrate = preset;\n\n var r = lame.nearestBitrateFullIndex(preset);\n\n gfp.VBR = VbrMode.vbr_abr;\n gfp.VBR_mean_bitrate_kbps = actual_bitrate;\n gfp.VBR_mean_bitrate_kbps = Math.min(gfp.VBR_mean_bitrate_kbps, 320);\n gfp.VBR_mean_bitrate_kbps = Math.max(gfp.VBR_mean_bitrate_kbps, 8);\n gfp.brate = gfp.VBR_mean_bitrate_kbps;\n if (gfp.VBR_mean_bitrate_kbps > 320) {\n gfp.disable_reservoir = true;\n }\n\n /* parameters for which there is no proper set/get interface */\n if (abr_switch_map[r].safejoint > 0)\n gfp.exp_nspsytune = gfp.exp_nspsytune | 2;\n /* safejoint */\n\n if (abr_switch_map[r].sfscale > 0) {\n gfp.internal_flags.noise_shaping = 2;\n }\n /* ns-bass tweaks */\n if (Math.abs(abr_switch_map[r].nsbass) > 0) {\n var k = (int)(abr_switch_map[r].nsbass * 4);\n if (k < 0)\n k += 64;\n gfp.exp_nspsytune = gfp.exp_nspsytune | (k << 2);\n }\n\n if (enforce != 0)\n gfp.quant_comp = abr_switch_map[r].quant_comp;\n else if (!(Math.abs(gfp.quant_comp - -1) > 0))\n gfp.quant_comp = abr_switch_map[r].quant_comp;\n // SET_OPTION(quant_comp, abr_switch_map[r].quant_comp, -1);\n if (enforce != 0)\n gfp.quant_comp_short = abr_switch_map[r].quant_comp_s;\n else if (!(Math.abs(gfp.quant_comp_short - -1) > 0))\n gfp.quant_comp_short = abr_switch_map[r].quant_comp_s;\n // SET_OPTION(quant_comp_short, abr_switch_map[r].quant_comp_s, -1);\n\n if (enforce != 0)\n gfp.msfix = abr_switch_map[r].nsmsfix;\n else if (!(Math.abs(gfp.msfix - -1) > 0))\n gfp.msfix = abr_switch_map[r].nsmsfix;\n // SET_OPTION(msfix, abr_switch_map[r].nsmsfix, -1);\n\n if (enforce != 0)\n gfp.internal_flags.nsPsy.attackthre = abr_switch_map[r].st_lrm;\n else if (!(Math.abs(gfp.internal_flags.nsPsy.attackthre - -1) > 0))\n gfp.internal_flags.nsPsy.attackthre = abr_switch_map[r].st_lrm;\n // SET_OPTION(short_threshold_lrm, abr_switch_map[r].st_lrm, -1);\n if (enforce != 0)\n gfp.internal_flags.nsPsy.attackthre_s = abr_switch_map[r].st_s;\n else if (!(Math.abs(gfp.internal_flags.nsPsy.attackthre_s - -1) > 0))\n gfp.internal_flags.nsPsy.attackthre_s = abr_switch_map[r].st_s;\n // SET_OPTION(short_threshold_s, abr_switch_map[r].st_s, -1);\n\n /*\n * ABR seems to have big problems with clipping, especially at low\n * bitrates\n */\n /*\n * so we compensate for that here by using a scale value depending on\n * bitrate\n */\n if (enforce != 0)\n gfp.scale = abr_switch_map[r].scale;\n else if (!(Math.abs(gfp.scale - -1) > 0))\n gfp.scale = abr_switch_map[r].scale;\n // SET_OPTION(scale, abr_switch_map[r].scale, -1);\n\n if (enforce != 0)\n gfp.maskingadjust = abr_switch_map[r].masking_adj;\n else if (!(Math.abs(gfp.maskingadjust - 0) > 0))\n gfp.maskingadjust = abr_switch_map[r].masking_adj;\n // SET_OPTION(maskingadjust, abr_switch_map[r].masking_adj, 0);\n if (abr_switch_map[r].masking_adj > 0) {\n if (enforce != 0)\n gfp.maskingadjust_short = (abr_switch_map[r].masking_adj * .9);\n else if (!(Math.abs(gfp.maskingadjust_short - 0) > 0))\n gfp.maskingadjust_short = (abr_switch_map[r].masking_adj * .9);\n // SET_OPTION(maskingadjust_short, abr_switch_map[r].masking_adj *\n // .9, 0);\n } else {\n if (enforce != 0)\n gfp.maskingadjust_short = (abr_switch_map[r].masking_adj * 1.1);\n else if (!(Math.abs(gfp.maskingadjust_short - 0) > 0))\n gfp.maskingadjust_short = (abr_switch_map[r].masking_adj * 1.1);\n // SET_OPTION(maskingadjust_short, abr_switch_map[r].masking_adj *\n // 1.1, 0);\n }\n\n if (enforce != 0)\n gfp.ATHlower = -abr_switch_map[r].ath_lower / 10.;\n else if (!(Math.abs((-gfp.ATHlower * 10.) - 0) > 0))\n gfp.ATHlower = -abr_switch_map[r].ath_lower / 10.;\n // SET_OPTION(ATHlower, abr_switch_map[r].ath_lower, 0);\n if (enforce != 0)\n gfp.ATHcurve = abr_switch_map[r].ath_curve;\n else if (!(Math.abs(gfp.ATHcurve - -1) > 0))\n gfp.ATHcurve = abr_switch_map[r].ath_curve;\n // SET_OPTION(ATHcurve, abr_switch_map[r].ath_curve, -1);\n\n if (enforce != 0)\n gfp.interChRatio = abr_switch_map[r].interch;\n else if (!(Math.abs(gfp.interChRatio - -1) > 0))\n gfp.interChRatio = abr_switch_map[r].interch;\n // SET_OPTION(interChRatio, abr_switch_map[r].interch, -1);\n\n return preset;\n }\n\n this.apply_preset = function(gfp, preset, enforce) {\n /* translate legacy presets */\n switch (preset) {\n case Lame.R3MIX:\n {\n preset = Lame.V3;\n gfp.VBR = VbrMode.vbr_mtrh;\n break;\n }\n case Lame.MEDIUM:\n {\n preset = Lame.V4;\n gfp.VBR = VbrMode.vbr_rh;\n break;\n }\n case Lame.MEDIUM_FAST:\n {\n preset = Lame.V4;\n gfp.VBR = VbrMode.vbr_mtrh;\n break;\n }\n case Lame.STANDARD:\n {\n preset = Lame.V2;\n gfp.VBR = VbrMode.vbr_rh;\n break;\n }\n case Lame.STANDARD_FAST:\n {\n preset = Lame.V2;\n gfp.VBR = VbrMode.vbr_mtrh;\n break;\n }\n case Lame.EXTREME:\n {\n preset = Lame.V0;\n gfp.VBR = VbrMode.vbr_rh;\n break;\n }\n case Lame.EXTREME_FAST:\n {\n preset = Lame.V0;\n gfp.VBR = VbrMode.vbr_mtrh;\n break;\n }\n case Lame.INSANE:\n {\n preset = 320;\n gfp.preset = preset;\n apply_abr_preset(gfp, preset, enforce);\n gfp.VBR = VbrMode.vbr_off;\n return preset;\n }\n }\n\n gfp.preset = preset;\n {\n switch (preset) {\n case Lame.V9:\n apply_vbr_preset(gfp, 9, enforce);\n return preset;\n case Lame.V8:\n apply_vbr_preset(gfp, 8, enforce);\n return preset;\n case Lame.V7:\n apply_vbr_preset(gfp, 7, enforce);\n return preset;\n case Lame.V6:\n apply_vbr_preset(gfp, 6, enforce);\n return preset;\n case Lame.V5:\n apply_vbr_preset(gfp, 5, enforce);\n return preset;\n case Lame.V4:\n apply_vbr_preset(gfp, 4, enforce);\n return preset;\n case Lame.V3:\n apply_vbr_preset(gfp, 3, enforce);\n return preset;\n case Lame.V2:\n apply_vbr_preset(gfp, 2, enforce);\n return preset;\n case Lame.V1:\n apply_vbr_preset(gfp, 1, enforce);\n return preset;\n case Lame.V0:\n apply_vbr_preset(gfp, 0, enforce);\n return preset;\n default:\n break;\n }\n }\n if (8 <= preset && preset <= 320) {\n return apply_abr_preset(gfp, preset, enforce);\n }\n\n /* no corresponding preset found */\n gfp.preset = 0;\n return preset;\n }\n\n // Rest from getset.c:\n\n /**\n * VBR quality level.
\n * 0 = highest
\n * 9 = lowest\n */\n function lame_set_VBR_q(gfp, VBR_q) {\n var ret = 0;\n\n if (0 > VBR_q) {\n /* Unknown VBR quality level! */\n ret = -1;\n VBR_q = 0;\n }\n if (9 < VBR_q) {\n ret = -1;\n VBR_q = 9;\n }\n\n gfp.VBR_q = VBR_q;\n gfp.VBR_q_frac = 0;\n return ret;\n }\n\n}\n\nmodule.exports = Presets;\n","function VBRQuantize() {\n var qupvt;\n var tak;\n\n this.setModules = function (_qupvt, _tk) {\n qupvt = _qupvt;\n tak = _tk;\n }\n //TODO\n\n}\n\nmodule.exports = VBRQuantize;\n","//package mp3;\n\nfunction CalcNoiseResult() {\n /**\n * sum of quantization noise > masking\n */\n this.over_noise = 0.;\n /**\n * sum of all quantization noise\n */\n this.tot_noise = 0.;\n /**\n * max quantization noise\n */\n this.max_noise = 0.;\n /**\n * number of quantization noise > masking\n */\n this.over_count = 0;\n /**\n * SSD-like cost of distorted bands\n */\n this.over_SSD = 0;\n this.bits = 0;\n}\n\nmodule.exports = CalcNoiseResult;\n","var common = require('./common.js');\nvar new_float = common.new_float;\nvar new_int = common.new_int;\nvar assert = common.assert;\n\nfunction CalcNoiseData() {\n this.global_gain = 0;\n this.sfb_count1 = 0;\n this.step = new_int(39);\n this.noise = new_float(39);\n this.noise_log = new_float(39);\n}\n\nmodule.exports = CalcNoiseData;\n","/*\n * MP3 quantization\n *\n * Copyright (c) 1999-2000 Mark Taylor\n * Copyright (c) 1999-2003 Takehiro Tominaga\n * Copyright (c) 2000-2007 Robert Hegemann\n * Copyright (c) 2001-2005 Gabriel Bouvigne\n *\n * This library is free software; you can redistribute it and/or\n * modify it under the terms of the GNU Lesser General Public\n * License as published by the Free Software Foundation; either\n * version 2 of the License, or (at your option) any later version.\n *\n * This library is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Library General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this library; if not, write to the\n * Free Software Foundation, Inc., 59 Temple Place - Suite 330,\n * Boston, MA 02111-1307, USA.\n */\n\n/* $Id: Quantize.java,v 1.24 2011/05/24 20:48:06 kenchis Exp $ */\n\n//package mp3;\n\n//import java.util.Arrays;\nvar common = require('./common.js');\nvar System = common.System;\nvar VbrMode = common.VbrMode;\nvar Float = common.Float;\nvar ShortBlock = common.ShortBlock;\nvar Util = common.Util;\nvar Arrays = common.Arrays;\nvar new_array_n = common.new_array_n;\nvar new_byte = common.new_byte;\nvar new_double = common.new_double;\nvar new_float = common.new_float;\nvar new_float_n = common.new_float_n;\nvar new_int = common.new_int;\nvar new_int_n = common.new_int_n;\nvar assert = common.assert;\n\nvar VBRQuantize = require('./VBRQuantize.js');\nvar CalcNoiseResult = require('./CalcNoiseResult.js');\nvar CalcNoiseData = require('./CalcNoiseData.js');\nvar Encoder = require('./Encoder.js');\nvar GrInfo = require('./GrInfo.js');\nvar L3Side = require('./L3Side.js');\n\nfunction Quantize() {\n var bs;\n this.rv = null;\n var rv;\n this.qupvt = null;\n var qupvt;\n\n var vbr = new VBRQuantize();\n var tk;\n\n this.setModules = function (_bs, _rv, _qupvt, _tk) {\n bs = _bs;\n rv = _rv;\n this.rv = _rv;\n qupvt = _qupvt;\n this.qupvt = _qupvt;\n tk = _tk;\n vbr.setModules(qupvt, tk);\n }\n\n /**\n * convert from L/R <. Mid/Side\n */\n this.ms_convert = function (l3_side, gr) {\n for (var i = 0; i < 576; ++i) {\n var l = l3_side.tt[gr][0].xr[i];\n var r = l3_side.tt[gr][1].xr[i];\n l3_side.tt[gr][0].xr[i] = (l + r) * (Util.SQRT2 * 0.5);\n l3_side.tt[gr][1].xr[i] = (l - r) * (Util.SQRT2 * 0.5);\n }\n };\n\n /**\n * mt 6/99\n *\n * initializes cod_info, scalefac and xrpow\n *\n * returns 0 if all energies in xr are zero, else 1\n */\n function init_xrpow_core(cod_info, xrpow, upper, sum) {\n sum = 0;\n for (var i = 0; i <= upper; ++i) {\n var tmp = Math.abs(cod_info.xr[i]);\n sum += tmp;\n xrpow[i] = Math.sqrt(tmp * Math.sqrt(tmp));\n\n if (xrpow[i] > cod_info.xrpow_max)\n cod_info.xrpow_max = xrpow[i];\n }\n return sum;\n }\n\n this.init_xrpow = function (gfc, cod_info, xrpow) {\n var sum = 0;\n var upper = 0 | cod_info.max_nonzero_coeff;\n\n assert(xrpow != null);\n cod_info.xrpow_max = 0;\n\n /*\n * check if there is some energy we have to quantize and calculate xrpow\n * matching our fresh scalefactors\n */\n assert(0 <= upper && upper <= 575);\n\n Arrays.fill(xrpow, upper, 576, 0);\n\n sum = init_xrpow_core(cod_info, xrpow, upper, sum);\n\n /*\n * return 1 if we have something to quantize, else 0\n */\n if (sum > 1E-20) {\n var j = 0;\n if ((gfc.substep_shaping & 2) != 0)\n j = 1;\n\n for (var i = 0; i < cod_info.psymax; i++)\n gfc.pseudohalf[i] = j;\n\n return true;\n }\n\n Arrays.fill(cod_info.l3_enc, 0, 576, 0);\n return false;\n }\n\n /**\n * Gabriel Bouvigne feb/apr 2003
\n * Analog silence detection in partitionned sfb21 or sfb12 for short blocks\n *\n * From top to bottom of sfb, changes to 0 coeffs which are below ath. It\n * stops on the first coeff higher than ath.\n */\n function psfb21_analogsilence(gfc, cod_info) {\n var ath = gfc.ATH;\n var xr = cod_info.xr;\n\n if (cod_info.block_type != Encoder.SHORT_TYPE) {\n /* NORM, START or STOP type, but not SHORT blocks */\n var stop = false;\n for (var gsfb = Encoder.PSFB21 - 1; gsfb >= 0 && !stop; gsfb--) {\n var start = gfc.scalefac_band.psfb21[gsfb];\n var end = gfc.scalefac_band.psfb21[gsfb + 1];\n var ath21 = qupvt.athAdjust(ath.adjust, ath.psfb21[gsfb],\n ath.floor);\n\n if (gfc.nsPsy.longfact[21] > 1e-12)\n ath21 *= gfc.nsPsy.longfact[21];\n\n for (var j = end - 1; j >= start; j--) {\n if (Math.abs(xr[j]) < ath21)\n xr[j] = 0;\n else {\n stop = true;\n break;\n }\n }\n }\n } else {\n /* note: short blocks coeffs are reordered */\n for (var block = 0; block < 3; block++) {\n var stop = false;\n for (var gsfb = Encoder.PSFB12 - 1; gsfb >= 0 && !stop; gsfb--) {\n var start = gfc.scalefac_band.s[12]\n * 3\n + (gfc.scalefac_band.s[13] - gfc.scalefac_band.s[12])\n * block\n + (gfc.scalefac_band.psfb12[gsfb] - gfc.scalefac_band.psfb12[0]);\n var end = start\n + (gfc.scalefac_band.psfb12[gsfb + 1] - gfc.scalefac_band.psfb12[gsfb]);\n var ath12 = qupvt.athAdjust(ath.adjust, ath.psfb12[gsfb],\n ath.floor);\n\n if (gfc.nsPsy.shortfact[12] > 1e-12)\n ath12 *= gfc.nsPsy.shortfact[12];\n\n for (var j = end - 1; j >= start; j--) {\n if (Math.abs(xr[j]) < ath12)\n xr[j] = 0;\n else {\n stop = true;\n break;\n }\n }\n }\n }\n }\n\n }\n\n this.init_outer_loop = function (gfc, cod_info) {\n /*\n * initialize fresh cod_info\n */\n cod_info.part2_3_length = 0;\n cod_info.big_values = 0;\n cod_info.count1 = 0;\n cod_info.global_gain = 210;\n cod_info.scalefac_compress = 0;\n /* mixed_block_flag, block_type was set in psymodel.c */\n cod_info.table_select[0] = 0;\n cod_info.table_select[1] = 0;\n cod_info.table_select[2] = 0;\n cod_info.subblock_gain[0] = 0;\n cod_info.subblock_gain[1] = 0;\n cod_info.subblock_gain[2] = 0;\n cod_info.subblock_gain[3] = 0;\n /* this one is always 0 */\n cod_info.region0_count = 0;\n cod_info.region1_count = 0;\n cod_info.preflag = 0;\n cod_info.scalefac_scale = 0;\n cod_info.count1table_select = 0;\n cod_info.part2_length = 0;\n cod_info.sfb_lmax = Encoder.SBPSY_l;\n cod_info.sfb_smin = Encoder.SBPSY_s;\n cod_info.psy_lmax = gfc.sfb21_extra ? Encoder.SBMAX_l : Encoder.SBPSY_l;\n cod_info.psymax = cod_info.psy_lmax;\n cod_info.sfbmax = cod_info.sfb_lmax;\n cod_info.sfbdivide = 11;\n for (var sfb = 0; sfb < Encoder.SBMAX_l; sfb++) {\n cod_info.width[sfb] = gfc.scalefac_band.l[sfb + 1]\n - gfc.scalefac_band.l[sfb];\n /* which is always 0. */\n cod_info.window[sfb] = 3;\n }\n if (cod_info.block_type == Encoder.SHORT_TYPE) {\n var ixwork = new_float(576);\n\n cod_info.sfb_smin = 0;\n cod_info.sfb_lmax = 0;\n if (cod_info.mixed_block_flag != 0) {\n /*\n * MPEG-1: sfbs 0-7 long block, 3-12 short blocks MPEG-2(.5):\n * sfbs 0-5 long block, 3-12 short blocks\n */\n cod_info.sfb_smin = 3;\n cod_info.sfb_lmax = gfc.mode_gr * 2 + 4;\n }\n cod_info.psymax = cod_info.sfb_lmax\n + 3\n * ((gfc.sfb21_extra ? Encoder.SBMAX_s : Encoder.SBPSY_s) - cod_info.sfb_smin);\n cod_info.sfbmax = cod_info.sfb_lmax + 3\n * (Encoder.SBPSY_s - cod_info.sfb_smin);\n cod_info.sfbdivide = cod_info.sfbmax - 18;\n cod_info.psy_lmax = cod_info.sfb_lmax;\n /* re-order the short blocks, for more efficient encoding below */\n /* By Takehiro TOMINAGA */\n /*\n * Within each scalefactor band, data is given for successive time\n * windows, beginning with window 0 and ending with window 2. Within\n * each window, the quantized values are then arranged in order of\n * increasing frequency...\n */\n var ix = gfc.scalefac_band.l[cod_info.sfb_lmax];\n System.arraycopy(cod_info.xr, 0, ixwork, 0, 576);\n for (var sfb = cod_info.sfb_smin; sfb < Encoder.SBMAX_s; sfb++) {\n var start = gfc.scalefac_band.s[sfb];\n var end = gfc.scalefac_band.s[sfb + 1];\n for (var window = 0; window < 3; window++) {\n for (var l = start; l < end; l++) {\n cod_info.xr[ix++] = ixwork[3 * l + window];\n }\n }\n }\n\n var j = cod_info.sfb_lmax;\n for (var sfb = cod_info.sfb_smin; sfb < Encoder.SBMAX_s; sfb++) {\n cod_info.width[j] = cod_info.width[j + 1] = cod_info.width[j + 2] = gfc.scalefac_band.s[sfb + 1]\n - gfc.scalefac_band.s[sfb];\n cod_info.window[j] = 0;\n cod_info.window[j + 1] = 1;\n cod_info.window[j + 2] = 2;\n j += 3;\n }\n }\n\n cod_info.count1bits = 0;\n cod_info.sfb_partition_table = qupvt.nr_of_sfb_block[0][0];\n cod_info.slen[0] = 0;\n cod_info.slen[1] = 0;\n cod_info.slen[2] = 0;\n cod_info.slen[3] = 0;\n\n cod_info.max_nonzero_coeff = 575;\n\n /*\n * fresh scalefactors are all zero\n */\n Arrays.fill(cod_info.scalefac, 0);\n\n psfb21_analogsilence(gfc, cod_info);\n };\n\n function BinSearchDirection(ordinal) {\n this.ordinal = ordinal;\n }\n\n BinSearchDirection.BINSEARCH_NONE = new BinSearchDirection(0);\n BinSearchDirection.BINSEARCH_UP = new BinSearchDirection(1);\n BinSearchDirection.BINSEARCH_DOWN = new BinSearchDirection(2);\n\n /**\n * author/date??\n *\n * binary step size search used by outer_loop to get a quantizer step size\n * to start with\n */\n function bin_search_StepSize(gfc, cod_info, desired_rate, ch, xrpow) {\n var nBits;\n var CurrentStep = gfc.CurrentStep[ch];\n var flagGoneOver = false;\n var start = gfc.OldValue[ch];\n var Direction = BinSearchDirection.BINSEARCH_NONE;\n cod_info.global_gain = start;\n desired_rate -= cod_info.part2_length;\n\n assert(CurrentStep != 0);\n for (; ;) {\n var step;\n nBits = tk.count_bits(gfc, xrpow, cod_info, null);\n\n if (CurrentStep == 1 || nBits == desired_rate)\n break;\n /* nothing to adjust anymore */\n\n if (nBits > desired_rate) {\n /* increase Quantize_StepSize */\n if (Direction == BinSearchDirection.BINSEARCH_DOWN)\n flagGoneOver = true;\n\n if (flagGoneOver)\n CurrentStep /= 2;\n Direction = BinSearchDirection.BINSEARCH_UP;\n step = CurrentStep;\n } else {\n /* decrease Quantize_StepSize */\n if (Direction == BinSearchDirection.BINSEARCH_UP)\n flagGoneOver = true;\n\n if (flagGoneOver)\n CurrentStep /= 2;\n Direction = BinSearchDirection.BINSEARCH_DOWN;\n step = -CurrentStep;\n }\n cod_info.global_gain += step;\n if (cod_info.global_gain < 0) {\n cod_info.global_gain = 0;\n flagGoneOver = true;\n }\n if (cod_info.global_gain > 255) {\n cod_info.global_gain = 255;\n flagGoneOver = true;\n }\n }\n\n assert(cod_info.global_gain >= 0);\n assert(cod_info.global_gain < 256);\n\n while (nBits > desired_rate && cod_info.global_gain < 255) {\n cod_info.global_gain++;\n nBits = tk.count_bits(gfc, xrpow, cod_info, null);\n }\n gfc.CurrentStep[ch] = (start - cod_info.global_gain >= 4) ? 4 : 2;\n gfc.OldValue[ch] = cod_info.global_gain;\n cod_info.part2_3_length = nBits;\n return nBits;\n }\n\n this.trancate_smallspectrums = function (gfc, gi, l3_xmin, work) {\n var distort = new_float(L3Side.SFBMAX);\n\n if ((0 == (gfc.substep_shaping & 4) && gi.block_type == Encoder.SHORT_TYPE)\n || (gfc.substep_shaping & 0x80) != 0)\n return;\n qupvt.calc_noise(gi, l3_xmin, distort, new CalcNoiseResult(), null);\n for (var j = 0; j < 576; j++) {\n var xr = 0.0;\n if (gi.l3_enc[j] != 0)\n xr = Math.abs(gi.xr[j]);\n work[j] = xr;\n }\n\n var j = 0;\n var sfb = 8;\n if (gi.block_type == Encoder.SHORT_TYPE)\n sfb = 6;\n do {\n var allowedNoise, trancateThreshold;\n var nsame, start;\n\n var width = gi.width[sfb];\n j += width;\n if (distort[sfb] >= 1.0)\n continue;\n\n Arrays.sort(work, j - width, width);\n if (BitStream.EQ(work[j - 1], 0.0))\n continue;\n /* all zero sfb */\n\n allowedNoise = (1.0 - distort[sfb]) * l3_xmin[sfb];\n trancateThreshold = 0.0;\n start = 0;\n do {\n var noise;\n for (nsame = 1; start + nsame < width; nsame++)\n if (BitStream.NEQ(work[start + j - width], work[start + j\n + nsame - width]))\n break;\n\n noise = work[start + j - width] * work[start + j - width]\n * nsame;\n if (allowedNoise < noise) {\n if (start != 0)\n trancateThreshold = work[start + j - width - 1];\n break;\n }\n allowedNoise -= noise;\n start += nsame;\n } while (start < width);\n if (BitStream.EQ(trancateThreshold, 0.0))\n continue;\n\n do {\n if (Math.abs(gi.xr[j - width]) <= trancateThreshold)\n gi.l3_enc[j - width] = 0;\n } while (--width > 0);\n } while (++sfb < gi.psymax);\n\n gi.part2_3_length = tk.noquant_count_bits(gfc, gi, null);\n };\n\n /**\n * author/date??\n *\n * Function: Returns zero if there is a scalefac which has not been\n * amplified. Otherwise it returns one.\n */\n function loop_break(cod_info) {\n for (var sfb = 0; sfb < cod_info.sfbmax; sfb++)\n if (cod_info.scalefac[sfb]\n + cod_info.subblock_gain[cod_info.window[sfb]] == 0)\n return false;\n\n return true;\n }\n\n /* mt 5/99: Function: Improved calc_noise for a single channel */\n\n function penalties(noise) {\n return Util.FAST_LOG10((0.368 + 0.632 * noise * noise * noise));\n }\n\n /**\n * author/date??\n *\n * several different codes to decide which quantization is better\n */\n function get_klemm_noise(distort, gi) {\n var klemm_noise = 1E-37;\n for (var sfb = 0; sfb < gi.psymax; sfb++)\n klemm_noise += penalties(distort[sfb]);\n\n return Math.max(1e-20, klemm_noise);\n }\n\n function quant_compare(quant_comp, best, calc, gi, distort) {\n /**\n * noise is given in decibels (dB) relative to masking thesholds.
\n *\n * over_noise: ??? (the previous comment is fully wrong)
\n * tot_noise: ??? (the previous comment is fully wrong)
\n * max_noise: max quantization noise\n */\n var better;\n\n switch (quant_comp) {\n default:\n case 9:\n {\n if (best.over_count > 0) {\n /* there are distorted sfb */\n better = calc.over_SSD <= best.over_SSD;\n if (calc.over_SSD == best.over_SSD)\n better = calc.bits < best.bits;\n } else {\n /* no distorted sfb */\n better = ((calc.max_noise < 0) && ((calc.max_noise * 10 + calc.bits) <= (best.max_noise * 10 + best.bits)));\n }\n break;\n }\n\n case 0:\n better = calc.over_count < best.over_count\n || (calc.over_count == best.over_count && calc.over_noise < best.over_noise)\n || (calc.over_count == best.over_count\n && BitStream.EQ(calc.over_noise, best.over_noise) && calc.tot_noise < best.tot_noise);\n break;\n\n case 8:\n calc.max_noise = get_klemm_noise(distort, gi);\n //$FALL-THROUGH$\n case 1:\n better = calc.max_noise < best.max_noise;\n break;\n case 2:\n better = calc.tot_noise < best.tot_noise;\n break;\n case 3:\n better = (calc.tot_noise < best.tot_noise)\n && (calc.max_noise < best.max_noise);\n break;\n case 4:\n better = (calc.max_noise <= 0.0 && best.max_noise > 0.2)\n || (calc.max_noise <= 0.0 && best.max_noise < 0.0\n && best.max_noise > calc.max_noise - 0.2 && calc.tot_noise < best.tot_noise)\n || (calc.max_noise <= 0.0 && best.max_noise > 0.0\n && best.max_noise > calc.max_noise - 0.2 && calc.tot_noise < best.tot_noise\n + best.over_noise)\n || (calc.max_noise > 0.0 && best.max_noise > -0.05\n && best.max_noise > calc.max_noise - 0.1 && calc.tot_noise\n + calc.over_noise < best.tot_noise\n + best.over_noise)\n || (calc.max_noise > 0.0 && best.max_noise > -0.1\n && best.max_noise > calc.max_noise - 0.15 && calc.tot_noise\n + calc.over_noise + calc.over_noise < best.tot_noise\n + best.over_noise + best.over_noise);\n break;\n case 5:\n better = calc.over_noise < best.over_noise\n || (BitStream.EQ(calc.over_noise, best.over_noise) && calc.tot_noise < best.tot_noise);\n break;\n case 6:\n better = calc.over_noise < best.over_noise\n || (BitStream.EQ(calc.over_noise, best.over_noise) && (calc.max_noise < best.max_noise || (BitStream\n .EQ(calc.max_noise, best.max_noise) && calc.tot_noise <= best.tot_noise)));\n break;\n case 7:\n better = calc.over_count < best.over_count\n || calc.over_noise < best.over_noise;\n break;\n }\n\n if (best.over_count == 0) {\n /*\n * If no distorted bands, only use this quantization if it is\n * better, and if it uses less bits. Unfortunately, part2_3_length\n * is sometimes a poor estimator of the final size at low bitrates.\n */\n better = better && calc.bits < best.bits;\n }\n\n return better;\n }\n\n /**\n * author/date??\n *\n *
\n     *  Amplify the scalefactor bands that violate the masking threshold.\n     *  See ISO 11172-3 Section C.1.5.4.3.5\n     *\n     *  distort[] = noise/masking\n     *  distort[] > 1   ==> noise is not masked\n     *  distort[] < 1   ==> noise is masked\n     *  max_dist = maximum value of distort[]\n     *\n     *  Three algorithms:\n     *  noise_shaping_amp\n     *        0             Amplify all bands with distort[]>1.\n     *\n     *        1             Amplify all bands with distort[] >= max_dist^(.5);\n     *                     ( 50% in the db scale)\n     *\n     *        2             Amplify first band with distort[] >= max_dist;\n     *\n     *\n     *  For algorithms 0 and 1, if max_dist < 1, then amplify all bands\n     *  with distort[] >= .95*max_dist.  This is to make sure we always\n     *  amplify at least one band.\n     * 
\n */\n function amp_scalefac_bands(gfp, cod_info, distort, xrpow, bRefine) {\n var gfc = gfp.internal_flags;\n var ifqstep34;\n\n if (cod_info.scalefac_scale == 0) {\n ifqstep34 = 1.29683955465100964055;\n /* 2**(.75*.5) */\n } else {\n ifqstep34 = 1.68179283050742922612;\n /* 2**(.75*1) */\n }\n\n /* compute maximum value of distort[] */\n var trigger = 0;\n for (var sfb = 0; sfb < cod_info.sfbmax; sfb++) {\n if (trigger < distort[sfb])\n trigger = distort[sfb];\n }\n\n var noise_shaping_amp = gfc.noise_shaping_amp;\n if (noise_shaping_amp == 3) {\n if (bRefine)\n noise_shaping_amp = 2;\n else\n noise_shaping_amp = 1;\n }\n switch (noise_shaping_amp) {\n case 2:\n /* amplify exactly 1 band */\n break;\n\n case 1:\n /* amplify bands within 50% of max (on db scale) */\n if (trigger > 1.0)\n trigger = Math.pow(trigger, .5);\n else\n trigger *= .95;\n break;\n\n case 0:\n default:\n /* ISO algorithm. amplify all bands with distort>1 */\n if (trigger > 1.0)\n trigger = 1.0;\n else\n trigger *= .95;\n break;\n }\n\n var j = 0;\n for (var sfb = 0; sfb < cod_info.sfbmax; sfb++) {\n var width = cod_info.width[sfb];\n var l;\n j += width;\n if (distort[sfb] < trigger)\n continue;\n\n if ((gfc.substep_shaping & 2) != 0) {\n gfc.pseudohalf[sfb] = (0 == gfc.pseudohalf[sfb]) ? 1 : 0;\n if (0 == gfc.pseudohalf[sfb] && gfc.noise_shaping_amp == 2)\n return;\n }\n cod_info.scalefac[sfb]++;\n for (l = -width; l < 0; l++) {\n xrpow[j + l] *= ifqstep34;\n if (xrpow[j + l] > cod_info.xrpow_max)\n cod_info.xrpow_max = xrpow[j + l];\n }\n\n if (gfc.noise_shaping_amp == 2)\n return;\n }\n }\n\n /**\n * Takehiro Tominaga 2000-xx-xx\n *\n * turns on scalefac scale and adjusts scalefactors\n */\n function inc_scalefac_scale(cod_info, xrpow) {\n var ifqstep34 = 1.29683955465100964055;\n\n var j = 0;\n for (var sfb = 0; sfb < cod_info.sfbmax; sfb++) {\n var width = cod_info.width[sfb];\n var s = cod_info.scalefac[sfb];\n if (cod_info.preflag != 0)\n s += qupvt.pretab[sfb];\n j += width;\n if ((s & 1) != 0) {\n s++;\n for (var l = -width; l < 0; l++) {\n xrpow[j + l] *= ifqstep34;\n if (xrpow[j + l] > cod_info.xrpow_max)\n cod_info.xrpow_max = xrpow[j + l];\n }\n }\n cod_info.scalefac[sfb] = s >> 1;\n }\n cod_info.preflag = 0;\n cod_info.scalefac_scale = 1;\n }\n\n /**\n * Takehiro Tominaga 2000-xx-xx\n *\n * increases the subblock gain and adjusts scalefactors\n */\n function inc_subblock_gain(gfc, cod_info, xrpow) {\n var sfb;\n var scalefac = cod_info.scalefac;\n\n /* subbloc_gain can't do anything in the long block region */\n for (sfb = 0; sfb < cod_info.sfb_lmax; sfb++) {\n if (scalefac[sfb] >= 16)\n return true;\n }\n\n for (var window = 0; window < 3; window++) {\n var s1 = 0;\n var s2 = 0;\n\n for (sfb = cod_info.sfb_lmax + window; sfb < cod_info.sfbdivide; sfb += 3) {\n if (s1 < scalefac[sfb])\n s1 = scalefac[sfb];\n }\n for (; sfb < cod_info.sfbmax; sfb += 3) {\n if (s2 < scalefac[sfb])\n s2 = scalefac[sfb];\n }\n\n if (s1 < 16 && s2 < 8)\n continue;\n\n if (cod_info.subblock_gain[window] >= 7)\n return true;\n\n /*\n * even though there is no scalefactor for sfb12 subblock gain\n * affects upper frequencies too, that's why we have to go up to\n * SBMAX_s\n */\n cod_info.subblock_gain[window]++;\n var j = gfc.scalefac_band.l[cod_info.sfb_lmax];\n for (sfb = cod_info.sfb_lmax + window; sfb < cod_info.sfbmax; sfb += 3) {\n var amp;\n var width = cod_info.width[sfb];\n var s = scalefac[sfb];\n assert(s >= 0);\n s = s - (4 >> cod_info.scalefac_scale);\n if (s >= 0) {\n scalefac[sfb] = s;\n j += width * 3;\n continue;\n }\n\n scalefac[sfb] = 0;\n {\n var gain = 210 + (s << (cod_info.scalefac_scale + 1));\n amp = qupvt.IPOW20(gain);\n }\n j += width * (window + 1);\n for (var l = -width; l < 0; l++) {\n xrpow[j + l] *= amp;\n if (xrpow[j + l] > cod_info.xrpow_max)\n cod_info.xrpow_max = xrpow[j + l];\n }\n j += width * (3 - window - 1);\n }\n\n {\n var amp = qupvt.IPOW20(202);\n j += cod_info.width[sfb] * (window + 1);\n for (var l = -cod_info.width[sfb]; l < 0; l++) {\n xrpow[j + l] *= amp;\n if (xrpow[j + l] > cod_info.xrpow_max)\n cod_info.xrpow_max = xrpow[j + l];\n }\n }\n }\n return false;\n }\n\n /**\n *
\n     *  Takehiro Tominaga /date??\n     *  Robert Hegemann 2000-09-06: made a function of it\n     *\n     *  amplifies scalefactor bands,\n     *   - if all are already amplified returns 0\n     *   - if some bands are amplified too much:\n     *      * try to increase scalefac_scale\n     *      * if already scalefac_scale was set\n     *          try on short blocks to increase subblock gain\n     * 
\n */\n function balance_noise(gfp, cod_info, distort, xrpow, bRefine) {\n var gfc = gfp.internal_flags;\n\n amp_scalefac_bands(gfp, cod_info, distort, xrpow, bRefine);\n\n /*\n * check to make sure we have not amplified too much loop_break returns\n * 0 if there is an unamplified scalefac scale_bitcount returns 0 if no\n * scalefactors are too large\n */\n\n var status = loop_break(cod_info);\n\n if (status)\n return false;\n /* all bands amplified */\n\n /*\n * not all scalefactors have been amplified. so these scalefacs are\n * possibly valid. encode them:\n */\n if (gfc.mode_gr == 2)\n status = tk.scale_bitcount(cod_info);\n else\n status = tk.scale_bitcount_lsf(gfc, cod_info);\n\n if (!status)\n return true;\n /* amplified some bands not exceeding limits */\n\n /*\n * some scalefactors are too large. lets try setting scalefac_scale=1\n */\n if (gfc.noise_shaping > 1) {\n Arrays.fill(gfc.pseudohalf, 0);\n if (0 == cod_info.scalefac_scale) {\n inc_scalefac_scale(cod_info, xrpow);\n status = false;\n } else {\n if (cod_info.block_type == Encoder.SHORT_TYPE\n && gfc.subblock_gain > 0) {\n status = (inc_subblock_gain(gfc, cod_info, xrpow) || loop_break(cod_info));\n }\n }\n }\n\n if (!status) {\n if (gfc.mode_gr == 2)\n status = tk.scale_bitcount(cod_info);\n else\n status = tk.scale_bitcount_lsf(gfc, cod_info);\n }\n return !status;\n }\n\n /**\n *
\n     *  Function: The outer iteration loop controls the masking conditions\n     *  of all scalefactorbands. It computes the best scalefac and\n     *  global gain. This module calls the inner iteration loop\n     *\n     *  mt 5/99 completely rewritten to allow for bit reservoir control,\n     *  mid/side channels with L/R or mid/side masking thresholds,\n     *  and chooses best quantization instead of last quantization when\n     *  no distortion free quantization can be found.\n     *\n     *  added VBR support mt 5/99\n     *\n     *  some code shuffle rh 9/00\n     * 
\n *\n * @param l3_xmin\n * allowed distortion\n * @param xrpow\n * coloured magnitudes of spectral\n * @param targ_bits\n * maximum allowed bits\n */\n this.outer_loop = function (gfp, cod_info, l3_xmin, xrpow, ch, targ_bits) {\n var gfc = gfp.internal_flags;\n var cod_info_w = new GrInfo();\n var save_xrpow = new_float(576);\n var distort = new_float(L3Side.SFBMAX);\n var best_noise_info = new CalcNoiseResult();\n var better;\n var prev_noise = new CalcNoiseData();\n var best_part2_3_length = 9999999;\n var bEndOfSearch = false;\n var bRefine = false;\n var best_ggain_pass1 = 0;\n\n bin_search_StepSize(gfc, cod_info, targ_bits, ch, xrpow);\n\n if (0 == gfc.noise_shaping)\n /* fast mode, no noise shaping, we are ready */\n return 100;\n /* default noise_info.over_count */\n\n /* compute the distortion in this quantization */\n /* coefficients and thresholds both l/r (or both mid/side) */\n qupvt.calc_noise(cod_info, l3_xmin, distort, best_noise_info,\n prev_noise);\n best_noise_info.bits = cod_info.part2_3_length;\n\n cod_info_w.assign(cod_info);\n var age = 0;\n System.arraycopy(xrpow, 0, save_xrpow, 0, 576);\n\n while (!bEndOfSearch) {\n /* BEGIN MAIN LOOP */\n do {\n var noise_info = new CalcNoiseResult();\n var search_limit;\n var maxggain = 255;\n\n /*\n * When quantization with no distorted bands is found, allow up\n * to X new unsuccesful tries in serial. This gives us more\n * possibilities for different quant_compare modes. Much more\n * than 3 makes not a big difference, it is only slower.\n */\n\n if ((gfc.substep_shaping & 2) != 0) {\n search_limit = 20;\n } else {\n search_limit = 3;\n }\n\n /*\n * Check if the last scalefactor band is distorted. in VBR mode\n * we can't get rid of the distortion, so quit now and VBR mode\n * will try again with more bits. (makes a 10% speed increase,\n * the files I tested were binary identical, 2000/05/20 Robert\n * Hegemann) distort[] > 1 means noise > allowed noise\n */\n if (gfc.sfb21_extra) {\n if (distort[cod_info_w.sfbmax] > 1.0)\n break;\n if (cod_info_w.block_type == Encoder.SHORT_TYPE\n && (distort[cod_info_w.sfbmax + 1] > 1.0 || distort[cod_info_w.sfbmax + 2] > 1.0))\n break;\n }\n\n /* try a new scalefactor conbination on cod_info_w */\n if (!balance_noise(gfp, cod_info_w, distort, xrpow, bRefine))\n break;\n if (cod_info_w.scalefac_scale != 0)\n maxggain = 254;\n\n /*\n * inner_loop starts with the initial quantization step computed\n * above and slowly increases until the bits < huff_bits. Thus\n * it is important not to start with too large of an inital\n * quantization step. Too small is ok, but inner_loop will take\n * longer\n */\n var huff_bits = targ_bits - cod_info_w.part2_length;\n if (huff_bits <= 0)\n break;\n\n /*\n * increase quantizer stepsize until needed bits are below\n * maximum\n */\n while ((cod_info_w.part2_3_length = tk.count_bits(gfc, xrpow,\n cod_info_w, prev_noise)) > huff_bits\n && cod_info_w.global_gain <= maxggain)\n cod_info_w.global_gain++;\n\n if (cod_info_w.global_gain > maxggain)\n break;\n\n if (best_noise_info.over_count == 0) {\n\n while ((cod_info_w.part2_3_length = tk.count_bits(gfc,\n xrpow, cod_info_w, prev_noise)) > best_part2_3_length\n && cod_info_w.global_gain <= maxggain)\n cod_info_w.global_gain++;\n\n if (cod_info_w.global_gain > maxggain)\n break;\n }\n\n /* compute the distortion in this quantization */\n qupvt.calc_noise(cod_info_w, l3_xmin, distort, noise_info,\n prev_noise);\n noise_info.bits = cod_info_w.part2_3_length;\n\n /*\n * check if this quantization is better than our saved\n * quantization\n */\n if (cod_info.block_type != Encoder.SHORT_TYPE) {\n // NORM, START or STOP type\n better = gfp.quant_comp;\n } else\n better = gfp.quant_comp_short;\n\n better = quant_compare(better, best_noise_info, noise_info,\n cod_info_w, distort) ? 1 : 0;\n\n /* save data so we can restore this quantization later */\n if (better != 0) {\n best_part2_3_length = cod_info.part2_3_length;\n best_noise_info = noise_info;\n cod_info.assign(cod_info_w);\n age = 0;\n /* save data so we can restore this quantization later */\n /* store for later reuse */\n System.arraycopy(xrpow, 0, save_xrpow, 0, 576);\n } else {\n /* early stop? */\n if (gfc.full_outer_loop == 0) {\n if (++age > search_limit\n && best_noise_info.over_count == 0)\n break;\n if ((gfc.noise_shaping_amp == 3) && bRefine && age > 30)\n break;\n if ((gfc.noise_shaping_amp == 3)\n && bRefine\n && (cod_info_w.global_gain - best_ggain_pass1) > 15)\n break;\n }\n }\n } while ((cod_info_w.global_gain + cod_info_w.scalefac_scale) < 255);\n\n if (gfc.noise_shaping_amp == 3) {\n if (!bRefine) {\n /* refine search */\n cod_info_w.assign(cod_info);\n System.arraycopy(save_xrpow, 0, xrpow, 0, 576);\n age = 0;\n best_ggain_pass1 = cod_info_w.global_gain;\n\n bRefine = true;\n } else {\n /* search already refined, stop */\n bEndOfSearch = true;\n }\n\n } else {\n bEndOfSearch = true;\n }\n }\n\n assert((cod_info.global_gain + cod_info.scalefac_scale) <= 255);\n /*\n * finish up\n */\n if (gfp.VBR == VbrMode.vbr_rh || gfp.VBR == VbrMode.vbr_mtrh)\n /* restore for reuse on next try */\n System.arraycopy(save_xrpow, 0, xrpow, 0, 576);\n /*\n * do the 'substep shaping'\n */\n else if ((gfc.substep_shaping & 1) != 0)\n trancate_smallspectrums(gfc, cod_info, l3_xmin, xrpow);\n\n return best_noise_info.over_count;\n }\n\n /**\n * Robert Hegemann 2000-09-06\n *\n * update reservoir status after FINAL quantization/bitrate\n */\n this.iteration_finish_one = function (gfc, gr, ch) {\n var l3_side = gfc.l3_side;\n var cod_info = l3_side.tt[gr][ch];\n\n /*\n * try some better scalefac storage\n */\n tk.best_scalefac_store(gfc, gr, ch, l3_side);\n\n /*\n * best huffman_divide may save some bits too\n */\n if (gfc.use_best_huffman == 1)\n tk.best_huffman_divide(gfc, cod_info);\n\n /*\n * update reservoir status after FINAL quantization/bitrate\n */\n rv.ResvAdjust(gfc, cod_info);\n };\n\n /**\n *\n * 2000-09-04 Robert Hegemann\n *\n * @param l3_xmin\n * allowed distortion of the scalefactor\n * @param xrpow\n * coloured magnitudes of spectral values\n */\n this.VBR_encode_granule = function (gfp, cod_info, l3_xmin, xrpow, ch, min_bits, max_bits) {\n var gfc = gfp.internal_flags;\n var bst_cod_info = new GrInfo();\n var bst_xrpow = new_float(576);\n var Max_bits = max_bits;\n var real_bits = max_bits + 1;\n var this_bits = (max_bits + min_bits) / 2;\n var dbits, over, found = 0;\n var sfb21_extra = gfc.sfb21_extra;\n\n assert(Max_bits <= LameInternalFlags.MAX_BITS_PER_CHANNEL);\n Arrays.fill(bst_cod_info.l3_enc, 0);\n\n /*\n * search within round about 40 bits of optimal\n */\n do {\n assert(this_bits >= min_bits);\n assert(this_bits <= max_bits);\n assert(min_bits <= max_bits);\n\n if (this_bits > Max_bits - 42)\n gfc.sfb21_extra = false;\n else\n gfc.sfb21_extra = sfb21_extra;\n\n over = outer_loop(gfp, cod_info, l3_xmin, xrpow, ch, this_bits);\n\n /*\n * is quantization as good as we are looking for ? in this case: is\n * no scalefactor band distorted?\n */\n if (over <= 0) {\n found = 1;\n /*\n * now we know it can be done with \"real_bits\" and maybe we can\n * skip some iterations\n */\n real_bits = cod_info.part2_3_length;\n\n /*\n * store best quantization so far\n */\n bst_cod_info.assign(cod_info);\n System.arraycopy(xrpow, 0, bst_xrpow, 0, 576);\n\n /*\n * try with fewer bits\n */\n max_bits = real_bits - 32;\n dbits = max_bits - min_bits;\n this_bits = (max_bits + min_bits) / 2;\n } else {\n /*\n * try with more bits\n */\n min_bits = this_bits + 32;\n dbits = max_bits - min_bits;\n this_bits = (max_bits + min_bits) / 2;\n\n if (found != 0) {\n found = 2;\n /*\n * start again with best quantization so far\n */\n cod_info.assign(bst_cod_info);\n System.arraycopy(bst_xrpow, 0, xrpow, 0, 576);\n }\n }\n } while (dbits > 12);\n\n gfc.sfb21_extra = sfb21_extra;\n\n /*\n * found=0 => nothing found, use last one found=1 => we just found the\n * best and left the loop found=2 => we restored a good one and have now\n * l3_enc to restore too\n */\n if (found == 2) {\n System.arraycopy(bst_cod_info.l3_enc, 0, cod_info.l3_enc, 0, 576);\n }\n assert(cod_info.part2_3_length <= Max_bits);\n }\n\n /**\n * Robert Hegemann 2000-09-05\n *\n * calculates * how many bits are available for analog silent granules * how\n * many bits to use for the lowest allowed bitrate * how many bits each\n * bitrate would provide\n */\n this.get_framebits = function (gfp, frameBits) {\n var gfc = gfp.internal_flags;\n\n /*\n * always use at least this many bits per granule per channel unless we\n * detect analog silence, see below\n */\n gfc.bitrate_index = gfc.VBR_min_bitrate;\n var bitsPerFrame = bs.getframebits(gfp);\n\n /*\n * bits for analog silence\n */\n gfc.bitrate_index = 1;\n bitsPerFrame = bs.getframebits(gfp);\n\n for (var i = 1; i <= gfc.VBR_max_bitrate; i++) {\n gfc.bitrate_index = i;\n var mb = new MeanBits(bitsPerFrame);\n frameBits[i] = rv.ResvFrameBegin(gfp, mb);\n bitsPerFrame = mb.bits;\n }\n };\n\n /* RH: this one needs to be overhauled sometime */\n\n /**\n *
\n     *  2000-09-04 Robert Hegemann\n     *\n     *  * converts LR to MS coding when necessary\n     *  * calculates allowed/adjusted quantization noise amounts\n     *  * detects analog silent frames\n     *\n     *  some remarks:\n     *  - lower masking depending on Quality setting\n     *  - quality control together with adjusted ATH MDCT scaling\n     *    on lower quality setting allocate more noise from\n     *    ATH masking, and on higher quality setting allocate\n     *    less noise from ATH masking.\n     *  - experiments show that going more than 2dB over GPSYCHO's\n     *    limits ends up in very annoying artefacts\n     * 
\n */\n this.VBR_old_prepare = function (gfp, pe, ms_ener_ratio, ratio, l3_xmin, frameBits, min_bits,\n max_bits, bands) {\n var gfc = gfp.internal_flags;\n\n var masking_lower_db, adjust = 0.0;\n var analog_silence = 1;\n var bits = 0;\n\n gfc.bitrate_index = gfc.VBR_max_bitrate;\n var avg = rv.ResvFrameBegin(gfp, new MeanBits(0)) / gfc.mode_gr;\n\n get_framebits(gfp, frameBits);\n\n for (var gr = 0; gr < gfc.mode_gr; gr++) {\n var mxb = qupvt.on_pe(gfp, pe, max_bits[gr], avg, gr, 0);\n if (gfc.mode_ext == Encoder.MPG_MD_MS_LR) {\n ms_convert(gfc.l3_side, gr);\n qupvt.reduce_side(max_bits[gr], ms_ener_ratio[gr], avg, mxb);\n }\n for (var ch = 0; ch < gfc.channels_out; ++ch) {\n var cod_info = gfc.l3_side.tt[gr][ch];\n\n if (cod_info.block_type != Encoder.SHORT_TYPE) {\n // NORM, START or STOP type\n adjust = 1.28 / (1 + Math\n .exp(3.5 - pe[gr][ch] / 300.)) - 0.05;\n masking_lower_db = gfc.PSY.mask_adjust - adjust;\n } else {\n adjust = 2.56 / (1 + Math\n .exp(3.5 - pe[gr][ch] / 300.)) - 0.14;\n masking_lower_db = gfc.PSY.mask_adjust_short - adjust;\n }\n gfc.masking_lower = Math.pow(10.0,\n masking_lower_db * 0.1);\n\n init_outer_loop(gfc, cod_info);\n bands[gr][ch] = qupvt.calc_xmin(gfp, ratio[gr][ch], cod_info,\n l3_xmin[gr][ch]);\n if (bands[gr][ch] != 0)\n analog_silence = 0;\n\n min_bits[gr][ch] = 126;\n\n bits += max_bits[gr][ch];\n }\n }\n for (var gr = 0; gr < gfc.mode_gr; gr++) {\n for (var ch = 0; ch < gfc.channels_out; ch++) {\n if (bits > frameBits[gfc.VBR_max_bitrate]) {\n max_bits[gr][ch] *= frameBits[gfc.VBR_max_bitrate];\n max_bits[gr][ch] /= bits;\n }\n if (min_bits[gr][ch] > max_bits[gr][ch])\n min_bits[gr][ch] = max_bits[gr][ch];\n\n }\n /* for ch */\n }\n /* for gr */\n\n return analog_silence;\n };\n\n this.bitpressure_strategy = function (gfc, l3_xmin, min_bits, max_bits) {\n for (var gr = 0; gr < gfc.mode_gr; gr++) {\n for (var ch = 0; ch < gfc.channels_out; ch++) {\n var gi = gfc.l3_side.tt[gr][ch];\n var pxmin = l3_xmin[gr][ch];\n var pxminPos = 0;\n for (var sfb = 0; sfb < gi.psy_lmax; sfb++)\n pxmin[pxminPos++] *= 1. + .029 * sfb * sfb\n / Encoder.SBMAX_l / Encoder.SBMAX_l;\n\n if (gi.block_type == Encoder.SHORT_TYPE) {\n for (var sfb = gi.sfb_smin; sfb < Encoder.SBMAX_s; sfb++) {\n pxmin[pxminPos++] *= 1. + .029 * sfb * sfb\n / Encoder.SBMAX_s / Encoder.SBMAX_s;\n pxmin[pxminPos++] *= 1. + .029 * sfb * sfb\n / Encoder.SBMAX_s / Encoder.SBMAX_s;\n pxmin[pxminPos++] *= 1. + .029 * sfb * sfb\n / Encoder.SBMAX_s / Encoder.SBMAX_s;\n }\n }\n max_bits[gr][ch] = 0 | Math.max(min_bits[gr][ch],\n 0.9 * max_bits[gr][ch]);\n }\n }\n };\n\n this.VBR_new_prepare = function (gfp, pe, ratio, l3_xmin, frameBits, max_bits) {\n var gfc = gfp.internal_flags;\n\n var analog_silence = 1;\n var avg = 0, bits = 0;\n var maximum_framebits;\n\n if (!gfp.free_format) {\n gfc.bitrate_index = gfc.VBR_max_bitrate;\n\n var mb = new MeanBits(avg);\n rv.ResvFrameBegin(gfp, mb);\n avg = mb.bits;\n\n get_framebits(gfp, frameBits);\n maximum_framebits = frameBits[gfc.VBR_max_bitrate];\n } else {\n gfc.bitrate_index = 0;\n var mb = new MeanBits(avg);\n maximum_framebits = rv.ResvFrameBegin(gfp, mb);\n avg = mb.bits;\n frameBits[0] = maximum_framebits;\n }\n\n for (var gr = 0; gr < gfc.mode_gr; gr++) {\n qupvt.on_pe(gfp, pe, max_bits[gr], avg, gr, 0);\n if (gfc.mode_ext == Encoder.MPG_MD_MS_LR) {\n ms_convert(gfc.l3_side, gr);\n }\n for (var ch = 0; ch < gfc.channels_out; ++ch) {\n var cod_info = gfc.l3_side.tt[gr][ch];\n\n gfc.masking_lower = Math.pow(10.0,\n gfc.PSY.mask_adjust * 0.1);\n\n init_outer_loop(gfc, cod_info);\n if (0 != qupvt.calc_xmin(gfp, ratio[gr][ch], cod_info,\n l3_xmin[gr][ch]))\n analog_silence = 0;\n\n bits += max_bits[gr][ch];\n }\n }\n for (var gr = 0; gr < gfc.mode_gr; gr++) {\n for (var ch = 0; ch < gfc.channels_out; ch++) {\n if (bits > maximum_framebits) {\n max_bits[gr][ch] *= maximum_framebits;\n max_bits[gr][ch] /= bits;\n }\n\n }\n /* for ch */\n }\n /* for gr */\n\n return analog_silence;\n };\n\n /**\n * calculates target bits for ABR encoding\n *\n * mt 2000/05/31\n */\n this.calc_target_bits = function (gfp, pe, ms_ener_ratio, targ_bits, analog_silence_bits, max_frame_bits) {\n var gfc = gfp.internal_flags;\n var l3_side = gfc.l3_side;\n var res_factor;\n var gr, ch, totbits, mean_bits = 0;\n\n gfc.bitrate_index = gfc.VBR_max_bitrate;\n var mb = new MeanBits(mean_bits);\n max_frame_bits[0] = rv.ResvFrameBegin(gfp, mb);\n mean_bits = mb.bits;\n\n gfc.bitrate_index = 1;\n mean_bits = bs.getframebits(gfp) - gfc.sideinfo_len * 8;\n analog_silence_bits[0] = mean_bits / (gfc.mode_gr * gfc.channels_out);\n\n mean_bits = gfp.VBR_mean_bitrate_kbps * gfp.framesize * 1000;\n if ((gfc.substep_shaping & 1) != 0)\n mean_bits *= 1.09;\n mean_bits /= gfp.out_samplerate;\n mean_bits -= gfc.sideinfo_len * 8;\n mean_bits /= (gfc.mode_gr * gfc.channels_out);\n\n /**\n *
\n         *           res_factor is the percentage of the target bitrate that should\n         *           be used on average.  the remaining bits are added to the\n         *           bitreservoir and used for difficult to encode frames.\n         *\n         *           Since we are tracking the average bitrate, we should adjust\n         *           res_factor \"on the fly\", increasing it if the average bitrate\n         *           is greater than the requested bitrate, and decreasing it\n         *           otherwise.  Reasonable ranges are from .9 to 1.0\n         *\n         *           Until we get the above suggestion working, we use the following\n         *           tuning:\n         *           compression ratio    res_factor\n         *           5.5  (256kbps)         1.0      no need for bitreservoir\n         *           11   (128kbps)         .93      7% held for reservoir\n         *\n         *           with linear interpolation for other values.\n         * 
\n */\n res_factor = .93 + .07 * (11.0 - gfp.compression_ratio)\n / (11.0 - 5.5);\n if (res_factor < .90)\n res_factor = .90;\n if (res_factor > 1.00)\n res_factor = 1.00;\n\n for (gr = 0; gr < gfc.mode_gr; gr++) {\n var sum = 0;\n for (ch = 0; ch < gfc.channels_out; ch++) {\n targ_bits[gr][ch] = (int)(res_factor * mean_bits);\n\n if (pe[gr][ch] > 700) {\n var add_bits = (int)((pe[gr][ch] - 700) / 1.4);\n\n var cod_info = l3_side.tt[gr][ch];\n targ_bits[gr][ch] = (int)(res_factor * mean_bits);\n\n /* short blocks use a little extra, no matter what the pe */\n if (cod_info.block_type == Encoder.SHORT_TYPE) {\n if (add_bits < mean_bits / 2)\n add_bits = mean_bits / 2;\n }\n /* at most increase bits by 1.5*average */\n if (add_bits > mean_bits * 3 / 2)\n add_bits = mean_bits * 3 / 2;\n else if (add_bits < 0)\n add_bits = 0;\n\n targ_bits[gr][ch] += add_bits;\n }\n if (targ_bits[gr][ch] > LameInternalFlags.MAX_BITS_PER_CHANNEL) {\n targ_bits[gr][ch] = LameInternalFlags.MAX_BITS_PER_CHANNEL;\n }\n sum += targ_bits[gr][ch];\n }\n /* for ch */\n if (sum > LameInternalFlags.MAX_BITS_PER_GRANULE) {\n for (ch = 0; ch < gfc.channels_out; ++ch) {\n targ_bits[gr][ch] *= LameInternalFlags.MAX_BITS_PER_GRANULE;\n targ_bits[gr][ch] /= sum;\n }\n }\n }\n /* for gr */\n\n if (gfc.mode_ext == Encoder.MPG_MD_MS_LR)\n for (gr = 0; gr < gfc.mode_gr; gr++) {\n qupvt.reduce_side(targ_bits[gr], ms_ener_ratio[gr], mean_bits\n * gfc.channels_out,\n LameInternalFlags.MAX_BITS_PER_GRANULE);\n }\n\n /*\n * sum target bits\n */\n totbits = 0;\n for (gr = 0; gr < gfc.mode_gr; gr++) {\n for (ch = 0; ch < gfc.channels_out; ch++) {\n if (targ_bits[gr][ch] > LameInternalFlags.MAX_BITS_PER_CHANNEL)\n targ_bits[gr][ch] = LameInternalFlags.MAX_BITS_PER_CHANNEL;\n totbits += targ_bits[gr][ch];\n }\n }\n\n /*\n * repartion target bits if needed\n */\n if (totbits > max_frame_bits[0]) {\n for (gr = 0; gr < gfc.mode_gr; gr++) {\n for (ch = 0; ch < gfc.channels_out; ch++) {\n targ_bits[gr][ch] *= max_frame_bits[0];\n targ_bits[gr][ch] /= totbits;\n }\n }\n }\n }\n\n}\n\nmodule.exports = Quantize;\n","/*\n * bit reservoir source file\n *\n * Copyright (c) 1999-2000 Mark Taylor\n *\n * This library is free software; you can redistribute it and/or\n * modify it under the terms of the GNU Lesser General Public\n * License as published by the Free Software Foundation; either\n * version 2 of the License, or (at your option) any later version.\n *\n * This library is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Library General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this library; if not, write to the\n * Free Software Foundation, Inc., 59 Temple Place - Suite 330,\n * Boston, MA 02111-1307, USA.\n */\n\n/* $Id: Reservoir.java,v 1.9 2011/05/24 20:48:06 kenchis Exp $ */\n\n//package mp3;\n\n/**\n * ResvFrameBegin:
\n * Called (repeatedly) at the beginning of a frame. Updates the maximum size of\n * the reservoir, and checks to make sure main_data_begin was set properly by\n * the formatter
\n * Background information:\n * \n * This is the original text from the ISO standard. Because of sooo many bugs\n * and irritations correcting comments are added in brackets []. A '^W' means\n * you should remove the last word.\n * \n *
\n *  1. The following rule can be used to calculate the maximum\n *     number of bits used for one granule [^W frame]:
\n * At the highest possible bitrate of Layer III (320 kbps\n * per stereo signal [^W^W^W], 48 kHz) the frames must be of\n * [^W^W^W are designed to have] constant length, i.e.\n * one buffer [^W^W the frame] length is:
\n * \n * 320 kbps * 1152/48 kHz = 7680 bit = 960 byte\n * \n * This value is used as the maximum buffer per channel [^W^W] at\n * lower bitrates [than 320 kbps]. At 64 kbps mono or 128 kbps\n * stereo the main granule length is 64 kbps * 576/48 kHz = 768 bit\n * [per granule and channel] at 48 kHz sampling frequency.\n * This means that there is a maximum deviation (short time buffer\n * [= reservoir]) of 7680 - 2*2*768 = 4608 bits is allowed at 64 kbps.\n * The actual deviation is equal to the number of bytes [with the\n * meaning of octets] denoted by the main_data_end offset pointer.\n * The actual maximum deviation is (2^9-1)*8 bit = 4088 bits\n * [for MPEG-1 and (2^8-1)*8 bit for MPEG-2, both are hard limits].\n * ... The xchange of buffer bits between the left and right channel\n * is allowed without restrictions [exception: dual channel].\n * Because of the [constructed] constraint on the buffer size\n * main_data_end is always set to 0 in the case of bit_rate_index==14,\n * i.e. data rate 320 kbps per stereo signal [^W^W^W]. In this case\n * all data are allocated between adjacent header [^W sync] words\n * [, i.e. there is no buffering at all].\n *
\n */\n\nvar common = require('./common.js');\nvar assert = common.assert;\n\nfunction Reservoir() {\n\tvar bs;\n\n\tthis.setModules = function(_bs) {\n\t\tbs = _bs;\n\t}\n\n\tthis.ResvFrameBegin = function(gfp, mean_bits) {\n\t\tvar gfc = gfp.internal_flags;\n\t\tvar maxmp3buf;\n\t\tvar l3_side = gfc.l3_side;\n\n\t\tvar frameLength = bs.getframebits(gfp);\n\t\tmean_bits.bits = (frameLength - gfc.sideinfo_len * 8) / gfc.mode_gr;\n\n\t\t/**\n\t\t *
\n\t\t *  Meaning of the variables:\n\t\t *      resvLimit: (0, 8, ..., 8*255 (MPEG-2), 8*511 (MPEG-1))\n\t\t *          Number of bits can be stored in previous frame(s) due to\n\t\t *          counter size constaints\n\t\t *      maxmp3buf: ( ??? ... 8*1951 (MPEG-1 and 2), 8*2047 (MPEG-2.5))\n\t\t *          Number of bits allowed to encode one frame (you can take 8*511 bit\n\t\t *          from the bit reservoir and at most 8*1440 bit from the current\n\t\t *          frame (320 kbps, 32 kHz), so 8*1951 bit is the largest possible\n\t\t *          value for MPEG-1 and -2)\n\t\t * \n\t\t *          maximum allowed granule/channel size times 4 = 8*2047 bits.,\n\t\t *          so this is the absolute maximum supported by the format.\n\t\t * \n\t\t * \n\t\t *      fullFrameBits:  maximum number of bits available for encoding\n\t\t *                      the current frame.\n\t\t * \n\t\t *      mean_bits:      target number of bits per granule.\n\t\t * \n\t\t *      frameLength:\n\t\t * \n\t\t *      gfc.ResvMax:   maximum allowed reservoir\n\t\t * \n\t\t *      gfc.ResvSize:  current reservoir size\n\t\t * \n\t\t *      l3_side.resvDrain_pre:\n\t\t *         ancillary data to be added to previous frame:\n\t\t *         (only usefull in VBR modes if it is possible to have\n\t\t *         maxmp3buf < fullFrameBits)).  Currently disabled,\n\t\t *         see #define NEW_DRAIN\n\t\t *         2010-02-13: RH now enabled, it seems to be needed for CBR too,\n\t\t *                     as there exists one example, where the FhG decoder\n\t\t *                     can't decode a -b320 CBR file anymore.\n\t\t * \n\t\t *      l3_side.resvDrain_post:\n\t\t *         ancillary data to be added to this frame:\n\t\t * \n\t\t * 
\n\t\t */\n\n\t\t/* main_data_begin has 9 bits in MPEG-1, 8 bits MPEG-2 */\n\t\tvar resvLimit = (8 * 256) * gfc.mode_gr - 8;\n\n\t\t/*\n\t\t * maximum allowed frame size. dont use more than this number of bits,\n\t\t * even if the frame has the space for them:\n\t\t */\n\t\tif (gfp.brate > 320) {\n\t\t\t/* in freeformat the buffer is constant */\n\t\t\tmaxmp3buf = 8 * ((int) ((gfp.brate * 1000)\n\t\t\t\t\t/ (gfp.out_samplerate / 1152) / 8 + .5));\n\t\t} else {\n\t\t\t/*\n\t\t\t * all mp3 decoders should have enough buffer to handle this value:\n\t\t\t * size of a 320kbps 32kHz frame\n\t\t\t */\n\t\t\tmaxmp3buf = 8 * 1440;\n\n\t\t\t/*\n\t\t\t * Bouvigne suggests this more lax interpretation of the ISO doc\n\t\t\t * instead of using 8*960.\n\t\t\t */\n\n\t\t\tif (gfp.strict_ISO) {\n\t\t\t\tmaxmp3buf = 8 * ((int) (320000 / (gfp.out_samplerate / 1152) / 8 + .5));\n\t\t\t}\n\t\t}\n\n\t\tgfc.ResvMax = maxmp3buf - frameLength;\n\t\tif (gfc.ResvMax > resvLimit)\n\t\t\tgfc.ResvMax = resvLimit;\n\t\tif (gfc.ResvMax < 0 || gfp.disable_reservoir)\n\t\t\tgfc.ResvMax = 0;\n\n\t\tvar fullFrameBits = mean_bits.bits * gfc.mode_gr\n\t\t\t\t+ Math.min(gfc.ResvSize, gfc.ResvMax);\n\n\t\tif (fullFrameBits > maxmp3buf)\n\t\t\tfullFrameBits = maxmp3buf;\n\n\t\tassert (0 == gfc.ResvMax % 8);\n\t\tassert (gfc.ResvMax >= 0);\n\n\t\tl3_side.resvDrain_pre = 0;\n\n\t\t// frame analyzer code\n\t\tif (gfc.pinfo != null) {\n\t\t\t/*\n\t\t\t * expected bits per channel per granule [is this also right for\n\t\t\t * mono/stereo, MPEG-1/2 ?]\n\t\t\t */\n\t\t\tgfc.pinfo.mean_bits = mean_bits.bits / 2;\n\t\t\tgfc.pinfo.resvsize = gfc.ResvSize;\n\t\t}\n\n\t\treturn fullFrameBits;\n\t}\n\n\t/**\n\t * returns targ_bits: target number of bits to use for 1 granule
\n\t * extra_bits: amount extra available from reservoir
\n\t * Mark Taylor 4/99\n\t */\n\tthis.ResvMaxBits = function(gfp, mean_bits, targ_bits, cbr) {\n\t\tvar gfc = gfp.internal_flags;\n\t\tvar add_bits;\n var ResvSize = gfc.ResvSize, ResvMax = gfc.ResvMax;\n\n\t\t/* compensate the saved bits used in the 1st granule */\n\t\tif (cbr != 0)\n\t\t\tResvSize += mean_bits;\n\n\t\tif ((gfc.substep_shaping & 1) != 0)\n\t\t\tResvMax *= 0.9;\n\n\t\ttarg_bits.bits = mean_bits;\n\n\t\t/* extra bits if the reservoir is almost full */\n\t\tif (ResvSize * 10 > ResvMax * 9) {\n\t\t\tadd_bits = ResvSize - (ResvMax * 9) / 10;\n\t\t\ttarg_bits.bits += add_bits;\n\t\t\tgfc.substep_shaping |= 0x80;\n\t\t} else {\n\t\t\tadd_bits = 0;\n\t\t\tgfc.substep_shaping &= 0x7f;\n\t\t\t/*\n\t\t\t * build up reservoir. this builds the reservoir a little slower\n\t\t\t * than FhG. It could simple be mean_bits/15, but this was rigged to\n\t\t\t * always produce 100 (the old value) at 128kbs\n\t\t\t */\n\t\t\tif (!gfp.disable_reservoir && 0 == (gfc.substep_shaping & 1))\n\t\t\t\ttarg_bits.bits -= .1 * mean_bits;\n\t\t}\n\n\t\t/* amount from the reservoir we are allowed to use. ISO says 6/10 */\n\t\tvar extra_bits = (ResvSize < (gfc.ResvMax * 6) / 10 ? ResvSize\n\t\t\t\t: (gfc.ResvMax * 6) / 10);\n\t\textra_bits -= add_bits;\n\n\t\tif (extra_bits < 0)\n\t\t\textra_bits = 0;\n\t\treturn extra_bits;\n\t}\n\n\t/**\n\t * Called after a granule's bit allocation. Readjusts the size of the\n\t * reservoir to reflect the granule's usage.\n\t */\n\tthis.ResvAdjust = function(gfc, gi) {\n\t\tgfc.ResvSize -= gi.part2_3_length + gi.part2_length;\n\t}\n\n\t/**\n\t * Called after all granules in a frame have been allocated. Makes sure that\n\t * the reservoir size is within limits, possibly by adding stuffing bits.\n\t */\n\tthis.ResvFrameEnd = function(gfc, mean_bits) {\n\t\tvar over_bits;\n\t\tvar l3_side = gfc.l3_side;\n\n\t\tgfc.ResvSize += mean_bits * gfc.mode_gr;\n\t\tvar stuffingBits = 0;\n\t\tl3_side.resvDrain_post = 0;\n\t\tl3_side.resvDrain_pre = 0;\n\n\t\t/* we must be byte aligned */\n\t\tif ((over_bits = gfc.ResvSize % 8) != 0)\n\t\t\tstuffingBits += over_bits;\n\n\t\tover_bits = (gfc.ResvSize - stuffingBits) - gfc.ResvMax;\n\t\tif (over_bits > 0) {\n\t\t\tassert (0 == over_bits % 8);\n\t\t\tassert (over_bits >= 0);\n\t\t\tstuffingBits += over_bits;\n\t\t}\n\n\t\t/*\n\t\t * NOTE: enabling the NEW_DRAIN code fixes some problems with FhG\n\t\t * decoder shipped with MS Windows operating systems. Using this, it is\n\t\t * even possible to use Gabriel's lax buffer consideration again, which\n\t\t * assumes, any decoder should have a buffer large enough for a 320 kbps\n\t\t * frame at 32 kHz sample rate.\n\t\t * \n\t\t * old drain code: lame -b320 BlackBird.wav --. does not play with\n\t\t * GraphEdit.exe using FhG decoder V1.5 Build 50\n\t\t * \n\t\t * new drain code: lame -b320 BlackBird.wav --. plays fine with\n\t\t * GraphEdit.exe using FhG decoder V1.5 Build 50\n\t\t * \n\t\t * Robert Hegemann, 2010-02-13.\n\t\t */\n\t\t/*\n\t\t * drain as many bits as possible into previous frame ancillary data In\n\t\t * particular, in VBR mode ResvMax may have changed, and we have to make\n\t\t * sure main_data_begin does not create a reservoir bigger than ResvMax\n\t\t * mt 4/00\n\t\t */\n\t\t{\n\t\t\tvar mdb_bytes = Math.min(l3_side.main_data_begin * 8, stuffingBits) / 8;\n\t\t\tl3_side.resvDrain_pre += 8 * mdb_bytes;\n\t\t\tstuffingBits -= 8 * mdb_bytes;\n\t\t\tgfc.ResvSize -= 8 * mdb_bytes;\n\t\t\tl3_side.main_data_begin -= mdb_bytes;\n\t\t}\n\t\t/* drain the rest into this frames ancillary data */\n\t\tl3_side.resvDrain_post += stuffingBits;\n\t\tgfc.ResvSize -= stuffingBits;\n\t}\n}\n\nmodule.exports = Reservoir;\n","function Version() {\n\n /**\n * URL for the LAME website.\n */\n var LAME_URL = \"http://www.mp3dev.org/\";\n\n /**\n * Major version number.\n */\n var LAME_MAJOR_VERSION = 3;\n /**\n * Minor version number.\n */\n var LAME_MINOR_VERSION = 98;\n /**\n * Patch level.\n */\n var LAME_PATCH_VERSION = 4;\n\n /**\n * Major version number.\n */\n var PSY_MAJOR_VERSION = 0;\n /**\n * Minor version number.\n */\n var PSY_MINOR_VERSION = 93;\n\n /**\n * A string which describes the version of LAME.\n *\n * @return string which describes the version of LAME\n */\n this.getLameVersion = function () {\n // primary to write screen reports\n return (LAME_MAJOR_VERSION + \".\" + LAME_MINOR_VERSION + \".\" + LAME_PATCH_VERSION);\n }\n\n /**\n * The short version of the LAME version string.\n *\n * @return short version of the LAME version string\n */\n this.getLameShortVersion = function () {\n // Adding date and time to version string makes it harder for output\n // validation\n return (LAME_MAJOR_VERSION + \".\" + LAME_MINOR_VERSION + \".\" + LAME_PATCH_VERSION);\n }\n\n /**\n * The shortest version of the LAME version string.\n *\n * @return shortest version of the LAME version string\n */\n this.getLameVeryShortVersion = function () {\n // Adding date and time to version string makes it harder for output\n return (\"LAME\" + LAME_MAJOR_VERSION + \".\" + LAME_MINOR_VERSION + \"r\");\n }\n\n /**\n * String which describes the version of GPSYCHO\n *\n * @return string which describes the version of GPSYCHO\n */\n this.getPsyVersion = function () {\n return (PSY_MAJOR_VERSION + \".\" + PSY_MINOR_VERSION);\n }\n\n /**\n * String which is a URL for the LAME website.\n *\n * @return string which is a URL for the LAME website\n */\n this.getLameUrl = function () {\n return LAME_URL;\n }\n\n /**\n * Quite useless for a java version, however we are compatible ;-)\n *\n * @return \"32bits\"\n */\n this.getLameOsBitness = function () {\n return \"32bits\";\n }\n\n}\n\nmodule.exports = Version;\n","var common = require('./common.js');\nvar System = common.System;\nvar VbrMode = common.VbrMode;\nvar Float = common.Float;\nvar ShortBlock = common.ShortBlock;\nvar Util = common.Util;\nvar Arrays = common.Arrays;\nvar new_array_n = common.new_array_n;\nvar new_byte = common.new_byte;\nvar new_double = common.new_double;\nvar new_float = common.new_float;\nvar new_float_n = common.new_float_n;\nvar new_int = common.new_int;\nvar new_int_n = common.new_int_n;\nvar assert = common.assert;\n\n/**\n * A Vbr header may be present in the ancillary data field of the first frame of\n * an mp3 bitstream
\n * The Vbr header (optionally) contains\n *
    \n *
  • frames total number of audio frames in the bitstream\n *
  • bytes total number of bytes in the bitstream\n *
  • toc table of contents\n *
\n *\n * toc (table of contents) gives seek points for random access.
\n * The ith entry determines the seek point for i-percent duration.
\n * seek point in bytes = (toc[i]/256.0) * total_bitstream_bytes
\n * e.g. half duration seek point = (toc[50]/256.0) * total_bitstream_bytes\n */\nVBRTag.NUMTOCENTRIES = 100;\nVBRTag.MAXFRAMESIZE = 2880;\n\nfunction VBRTag() {\n\n var lame;\n var bs;\n var v;\n\n this.setModules = function (_lame, _bs, _v) {\n lame = _lame;\n bs = _bs;\n v = _v;\n };\n\n var FRAMES_FLAG = 0x0001;\n var BYTES_FLAG = 0x0002;\n var TOC_FLAG = 0x0004;\n var VBR_SCALE_FLAG = 0x0008;\n\n var NUMTOCENTRIES = VBRTag.NUMTOCENTRIES;\n\n /**\n * (0xB40) the max freeformat 640 32kHz framesize.\n */\n var MAXFRAMESIZE = VBRTag.MAXFRAMESIZE;\n\n /**\n *
\n     *    4 bytes for Header Tag\n     *    4 bytes for Header Flags\n     *  100 bytes for entry (toc)\n     *    4 bytes for frame size\n     *    4 bytes for stream size\n     *    4 bytes for VBR scale. a VBR quality indicator: 0=best 100=worst\n     *   20 bytes for LAME tag.  for example, \"LAME3.12 (beta 6)\"\n     * ___________\n     *  140 bytes\n     * 
\n */\n var VBRHEADERSIZE = (NUMTOCENTRIES + 4 + 4 + 4 + 4 + 4);\n\n var LAMEHEADERSIZE = (VBRHEADERSIZE + 9 + 1 + 1 + 8\n + 1 + 1 + 3 + 1 + 1 + 2 + 4 + 2 + 2);\n\n /**\n * The size of the Xing header MPEG-1, bit rate in kbps.\n */\n var XING_BITRATE1 = 128;\n /**\n * The size of the Xing header MPEG-2, bit rate in kbps.\n */\n var XING_BITRATE2 = 64;\n /**\n * The size of the Xing header MPEG-2.5, bit rate in kbps.\n */\n var XING_BITRATE25 = 32;\n\n /**\n * ISO-8859-1 charset for byte to string operations.\n */\n var ISO_8859_1 = null; //Charset.forName(\"ISO-8859-1\");\n\n /**\n * VBR header magic string.\n */\n var VBRTag0 = \"Xing\";\n /**\n * VBR header magic string (VBR == VBRMode.vbr_off).\n */\n var VBRTag1 = \"Info\";\n\n /**\n * Lookup table for fast CRC-16 computation. Uses the polynomial\n * x^16+x^15+x^2+1\n */\n var crc16Lookup = [0x0000, 0xC0C1, 0xC181, 0x0140,\n 0xC301, 0x03C0, 0x0280, 0xC241, 0xC601, 0x06C0, 0x0780, 0xC741,\n 0x0500, 0xC5C1, 0xC481, 0x0440, 0xCC01, 0x0CC0, 0x0D80, 0xCD41,\n 0x0F00, 0xCFC1, 0xCE81, 0x0E40, 0x0A00, 0xCAC1, 0xCB81, 0x0B40,\n 0xC901, 0x09C0, 0x0880, 0xC841, 0xD801, 0x18C0, 0x1980, 0xD941,\n 0x1B00, 0xDBC1, 0xDA81, 0x1A40, 0x1E00, 0xDEC1, 0xDF81, 0x1F40,\n 0xDD01, 0x1DC0, 0x1C80, 0xDC41, 0x1400, 0xD4C1, 0xD581, 0x1540,\n 0xD701, 0x17C0, 0x1680, 0xD641, 0xD201, 0x12C0, 0x1380, 0xD341,\n 0x1100, 0xD1C1, 0xD081, 0x1040, 0xF001, 0x30C0, 0x3180, 0xF141,\n 0x3300, 0xF3C1, 0xF281, 0x3240, 0x3600, 0xF6C1, 0xF781, 0x3740,\n 0xF501, 0x35C0, 0x3480, 0xF441, 0x3C00, 0xFCC1, 0xFD81, 0x3D40,\n 0xFF01, 0x3FC0, 0x3E80, 0xFE41, 0xFA01, 0x3AC0, 0x3B80, 0xFB41,\n 0x3900, 0xF9C1, 0xF881, 0x3840, 0x2800, 0xE8C1, 0xE981, 0x2940,\n 0xEB01, 0x2BC0, 0x2A80, 0xEA41, 0xEE01, 0x2EC0, 0x2F80, 0xEF41,\n 0x2D00, 0xEDC1, 0xEC81, 0x2C40, 0xE401, 0x24C0, 0x2580, 0xE541,\n 0x2700, 0xE7C1, 0xE681, 0x2640, 0x2200, 0xE2C1, 0xE381, 0x2340,\n 0xE101, 0x21C0, 0x2080, 0xE041, 0xA001, 0x60C0, 0x6180, 0xA141,\n 0x6300, 0xA3C1, 0xA281, 0x6240, 0x6600, 0xA6C1, 0xA781, 0x6740,\n 0xA501, 0x65C0, 0x6480, 0xA441, 0x6C00, 0xACC1, 0xAD81, 0x6D40,\n 0xAF01, 0x6FC0, 0x6E80, 0xAE41, 0xAA01, 0x6AC0, 0x6B80, 0xAB41,\n 0x6900, 0xA9C1, 0xA881, 0x6840, 0x7800, 0xB8C1, 0xB981, 0x7940,\n 0xBB01, 0x7BC0, 0x7A80, 0xBA41, 0xBE01, 0x7EC0, 0x7F80, 0xBF41,\n 0x7D00, 0xBDC1, 0xBC81, 0x7C40, 0xB401, 0x74C0, 0x7580, 0xB541,\n 0x7700, 0xB7C1, 0xB681, 0x7640, 0x7200, 0xB2C1, 0xB381, 0x7340,\n 0xB101, 0x71C0, 0x7080, 0xB041, 0x5000, 0x90C1, 0x9181, 0x5140,\n 0x9301, 0x53C0, 0x5280, 0x9241, 0x9601, 0x56C0, 0x5780, 0x9741,\n 0x5500, 0x95C1, 0x9481, 0x5440, 0x9C01, 0x5CC0, 0x5D80, 0x9D41,\n 0x5F00, 0x9FC1, 0x9E81, 0x5E40, 0x5A00, 0x9AC1, 0x9B81, 0x5B40,\n 0x9901, 0x59C0, 0x5880, 0x9841, 0x8801, 0x48C0, 0x4980, 0x8941,\n 0x4B00, 0x8BC1, 0x8A81, 0x4A40, 0x4E00, 0x8EC1, 0x8F81, 0x4F40,\n 0x8D01, 0x4DC0, 0x4C80, 0x8C41, 0x4400, 0x84C1, 0x8581, 0x4540,\n 0x8701, 0x47C0, 0x4680, 0x8641, 0x8201, 0x42C0, 0x4380, 0x8341,\n 0x4100, 0x81C1, 0x8081, 0x4040];\n\n /***********************************************************************\n * Robert Hegemann 2001-01-17\n ***********************************************************************/\n\n function addVbr(v, bitrate) {\n v.nVbrNumFrames++;\n v.sum += bitrate;\n v.seen++;\n\n if (v.seen < v.want) {\n return;\n }\n\n if (v.pos < v.size) {\n v.bag[v.pos] = v.sum;\n v.pos++;\n v.seen = 0;\n }\n if (v.pos == v.size) {\n for (var i = 1; i < v.size; i += 2) {\n v.bag[i / 2] = v.bag[i];\n }\n v.want *= 2;\n v.pos /= 2;\n }\n }\n\n function xingSeekTable(v, t) {\n if (v.pos <= 0)\n return;\n\n for (var i = 1; i < NUMTOCENTRIES; ++i) {\n var j = i / NUMTOCENTRIES, act, sum;\n var indx = 0 | (Math.floor(j * v.pos));\n if (indx > v.pos - 1)\n indx = v.pos - 1;\n act = v.bag[indx];\n sum = v.sum;\n var seek_point = 0 | (256. * act / sum);\n if (seek_point > 255)\n seek_point = 255;\n t[i] = 0xff & seek_point;\n }\n }\n\n /**\n * Add VBR entry, used to fill the VBR TOC entries.\n *\n * @param gfp\n * global flags\n */\n this.addVbrFrame = function (gfp) {\n var gfc = gfp.internal_flags;\n var kbps = Tables.bitrate_table[gfp.version][gfc.bitrate_index];\n assert(gfc.VBR_seek_table.bag != null);\n addVbr(gfc.VBR_seek_table, kbps);\n }\n\n /**\n * Read big endian integer (4-bytes) from header.\n *\n * @param buf\n * header containing the integer\n * @param bufPos\n * offset into the header\n * @return extracted integer\n */\n function extractInteger(buf, bufPos) {\n var x = buf[bufPos + 0] & 0xff;\n x <<= 8;\n x |= buf[bufPos + 1] & 0xff;\n x <<= 8;\n x |= buf[bufPos + 2] & 0xff;\n x <<= 8;\n x |= buf[bufPos + 3] & 0xff;\n return x;\n }\n\n /**\n * Write big endian integer (4-bytes) in the header.\n *\n * @param buf\n * header to write the integer into\n * @param bufPos\n * offset into the header\n * @param value\n * integer value to write\n */\n function createInteger(buf, bufPos, value) {\n buf[bufPos + 0] = 0xff & ((value >> 24) & 0xff);\n buf[bufPos + 1] = 0xff & ((value >> 16) & 0xff);\n buf[bufPos + 2] = 0xff & ((value >> 8) & 0xff);\n buf[bufPos + 3] = 0xff & (value & 0xff);\n }\n\n /**\n * Write big endian short (2-bytes) in the header.\n *\n * @param buf\n * header to write the integer into\n * @param bufPos\n * offset into the header\n * @param value\n * integer value to write\n */\n function createShort(buf, bufPos, value) {\n buf[bufPos + 0] = 0xff & ((value >> 8) & 0xff);\n buf[bufPos + 1] = 0xff & (value & 0xff);\n }\n\n /**\n * Check for magic strings (Xing/Info).\n *\n * @param buf\n * header to check\n * @param bufPos\n * header offset to check\n * @return magic string found\n */\n function isVbrTag(buf, bufPos) {\n return new String(buf, bufPos, VBRTag0.length(), ISO_8859_1)\n .equals(VBRTag0)\n || new String(buf, bufPos, VBRTag1.length(), ISO_8859_1)\n .equals(VBRTag1);\n }\n\n function shiftInBitsValue(x, n, v) {\n return 0xff & ((x << n) | (v & ~(-1 << n)));\n }\n\n /**\n * Construct the MP3 header using the settings of the global flags.\n *\n * \n *\n * @param gfp\n * global flags\n * @param buffer\n * header\n */\n function setLameTagFrameHeader(gfp, buffer) {\n var gfc = gfp.internal_flags;\n\n // MP3 Sync Word\n buffer[0] = shiftInBitsValue(buffer[0], 8, 0xff);\n\n buffer[1] = shiftInBitsValue(buffer[1], 3, 7);\n buffer[1] = shiftInBitsValue(buffer[1], 1,\n (gfp.out_samplerate < 16000) ? 0 : 1);\n // Version\n buffer[1] = shiftInBitsValue(buffer[1], 1, gfp.version);\n // 01 == Layer 3\n buffer[1] = shiftInBitsValue(buffer[1], 2, 4 - 3);\n // Error protection\n buffer[1] = shiftInBitsValue(buffer[1], 1, (!gfp.error_protection) ? 1\n : 0);\n\n // Bit rate\n buffer[2] = shiftInBitsValue(buffer[2], 4, gfc.bitrate_index);\n // Frequency\n buffer[2] = shiftInBitsValue(buffer[2], 2, gfc.samplerate_index);\n // Pad. Bit\n buffer[2] = shiftInBitsValue(buffer[2], 1, 0);\n // Priv. Bit\n buffer[2] = shiftInBitsValue(buffer[2], 1, gfp.extension);\n\n // Mode\n buffer[3] = shiftInBitsValue(buffer[3], 2, gfp.mode.ordinal());\n // Mode extension (Used with Joint Stereo)\n buffer[3] = shiftInBitsValue(buffer[3], 2, gfc.mode_ext);\n // Copy\n buffer[3] = shiftInBitsValue(buffer[3], 1, gfp.copyright);\n // Original\n buffer[3] = shiftInBitsValue(buffer[3], 1, gfp.original);\n // Emphasis\n buffer[3] = shiftInBitsValue(buffer[3], 2, gfp.emphasis);\n\n /* the default VBR header. 48 kbps layer III, no padding, no crc */\n /* but sampling freq, mode and copyright/copy protection taken */\n /* from first valid frame */\n buffer[0] = 0xff;\n var abyte = 0xff & (buffer[1] & 0xf1);\n var bitrate;\n if (1 == gfp.version) {\n bitrate = XING_BITRATE1;\n } else {\n if (gfp.out_samplerate < 16000)\n bitrate = XING_BITRATE25;\n else\n bitrate = XING_BITRATE2;\n }\n\n if (gfp.VBR == VbrMode.vbr_off)\n bitrate = gfp.brate;\n\n var bbyte;\n if (gfp.free_format)\n bbyte = 0x00;\n else\n bbyte = 0xff & (16 * lame.BitrateIndex(bitrate, gfp.version,\n gfp.out_samplerate));\n\n /*\n * Use as much of the info from the real frames in the Xing header:\n * samplerate, channels, crc, etc...\n */\n if (gfp.version == 1) {\n /* MPEG1 */\n buffer[1] = 0xff & (abyte | 0x0a);\n /* was 0x0b; */\n abyte = 0xff & (buffer[2] & 0x0d);\n /* AF keep also private bit */\n buffer[2] = 0xff & (bbyte | abyte);\n /* 64kbs MPEG1 frame */\n } else {\n /* MPEG2 */\n buffer[1] = 0xff & (abyte | 0x02);\n /* was 0x03; */\n abyte = 0xff & (buffer[2] & 0x0d);\n /* AF keep also private bit */\n buffer[2] = 0xff & (bbyte | abyte);\n /* 64kbs MPEG2 frame */\n }\n }\n\n /**\n * Get VBR tag information\n *\n * @param buf\n * header to analyze\n * @param bufPos\n * offset into the header\n * @return VBR tag data\n */\n this.getVbrTag = function (buf) {\n var pTagData = new VBRTagData();\n var bufPos = 0;\n\n /* get Vbr header data */\n pTagData.flags = 0;\n\n /* get selected MPEG header data */\n var hId = (buf[bufPos + 1] >> 3) & 1;\n var hSrIndex = (buf[bufPos + 2] >> 2) & 3;\n var hMode = (buf[bufPos + 3] >> 6) & 3;\n var hBitrate = ((buf[bufPos + 2] >> 4) & 0xf);\n hBitrate = Tables.bitrate_table[hId][hBitrate];\n\n /* check for FFE syncword */\n if ((buf[bufPos + 1] >> 4) == 0xE)\n pTagData.samprate = Tables.samplerate_table[2][hSrIndex];\n else\n pTagData.samprate = Tables.samplerate_table[hId][hSrIndex];\n\n /* determine offset of header */\n if (hId != 0) {\n /* mpeg1 */\n if (hMode != 3)\n bufPos += (32 + 4);\n else\n bufPos += (17 + 4);\n } else {\n /* mpeg2 */\n if (hMode != 3)\n bufPos += (17 + 4);\n else\n bufPos += (9 + 4);\n }\n\n if (!isVbrTag(buf, bufPos))\n return null;\n\n bufPos += 4;\n\n pTagData.hId = hId;\n\n /* get flags */\n var head_flags = pTagData.flags = extractInteger(buf, bufPos);\n bufPos += 4;\n\n if ((head_flags & FRAMES_FLAG) != 0) {\n pTagData.frames = extractInteger(buf, bufPos);\n bufPos += 4;\n }\n\n if ((head_flags & BYTES_FLAG) != 0) {\n pTagData.bytes = extractInteger(buf, bufPos);\n bufPos += 4;\n }\n\n if ((head_flags & TOC_FLAG) != 0) {\n if (pTagData.toc != null) {\n for (var i = 0; i < NUMTOCENTRIES; i++)\n pTagData.toc[i] = buf[bufPos + i];\n }\n bufPos += NUMTOCENTRIES;\n }\n\n pTagData.vbrScale = -1;\n\n if ((head_flags & VBR_SCALE_FLAG) != 0) {\n pTagData.vbrScale = extractInteger(buf, bufPos);\n bufPos += 4;\n }\n\n pTagData.headersize = ((hId + 1) * 72000 * hBitrate)\n / pTagData.samprate;\n\n bufPos += 21;\n var encDelay = buf[bufPos + 0] << 4;\n encDelay += buf[bufPos + 1] >> 4;\n var encPadding = (buf[bufPos + 1] & 0x0F) << 8;\n encPadding += buf[bufPos + 2] & 0xff;\n /* check for reasonable values (this may be an old Xing header, */\n /* not a INFO tag) */\n if (encDelay < 0 || encDelay > 3000)\n encDelay = -1;\n if (encPadding < 0 || encPadding > 3000)\n encPadding = -1;\n\n pTagData.encDelay = encDelay;\n pTagData.encPadding = encPadding;\n\n /* success */\n return pTagData;\n }\n\n /**\n * Initializes the header\n *\n * @param gfp\n * global flags\n */\n this.InitVbrTag = function (gfp) {\n var gfc = gfp.internal_flags;\n\n /**\n *
\n         * Xing VBR pretends to be a 48kbs layer III frame.  (at 44.1kHz).\n         * (at 48kHz they use 56kbs since 48kbs frame not big enough for\n         * table of contents)\n         * let's always embed Xing header inside a 64kbs layer III frame.\n         * this gives us enough room for a LAME version string too.\n         * size determined by sampling frequency (MPEG1)\n         * 32kHz:    216 bytes@48kbs    288bytes@ 64kbs\n         * 44.1kHz:  156 bytes          208bytes@64kbs     (+1 if padding = 1)\n         * 48kHz:    144 bytes          192\n         *\n         * MPEG 2 values are the same since the framesize and samplerate\n         * are each reduced by a factor of 2.\n         * 
\n */\n var kbps_header;\n if (1 == gfp.version) {\n kbps_header = XING_BITRATE1;\n } else {\n if (gfp.out_samplerate < 16000)\n kbps_header = XING_BITRATE25;\n else\n kbps_header = XING_BITRATE2;\n }\n\n if (gfp.VBR == VbrMode.vbr_off)\n kbps_header = gfp.brate;\n\n // make sure LAME Header fits into Frame\n var totalFrameSize = ((gfp.version + 1) * 72000 * kbps_header)\n / gfp.out_samplerate;\n var headerSize = (gfc.sideinfo_len + LAMEHEADERSIZE);\n gfc.VBR_seek_table.TotalFrameSize = totalFrameSize;\n if (totalFrameSize < headerSize || totalFrameSize > MAXFRAMESIZE) {\n /* disable tag, it wont fit */\n gfp.bWriteVbrTag = false;\n return;\n }\n\n gfc.VBR_seek_table.nVbrNumFrames = 0;\n gfc.VBR_seek_table.nBytesWritten = 0;\n gfc.VBR_seek_table.sum = 0;\n\n gfc.VBR_seek_table.seen = 0;\n gfc.VBR_seek_table.want = 1;\n gfc.VBR_seek_table.pos = 0;\n\n if (gfc.VBR_seek_table.bag == null) {\n gfc.VBR_seek_table.bag = new int[400];\n gfc.VBR_seek_table.size = 400;\n }\n\n // write dummy VBR tag of all 0's into bitstream\n var buffer = new_byte(MAXFRAMESIZE);\n\n setLameTagFrameHeader(gfp, buffer);\n var n = gfc.VBR_seek_table.TotalFrameSize;\n for (var i = 0; i < n; ++i) {\n bs.add_dummy_byte(gfp, buffer[i] & 0xff, 1);\n }\n }\n\n /**\n * Fast CRC-16 computation (uses table crc16Lookup).\n *\n * @param value\n * @param crc\n * @return\n */\n function crcUpdateLookup(value, crc) {\n var tmp = crc ^ value;\n crc = (crc >> 8) ^ crc16Lookup[tmp & 0xff];\n return crc;\n }\n\n this.updateMusicCRC = function (crc, buffer, bufferPos, size) {\n for (var i = 0; i < size; ++i)\n crc[0] = crcUpdateLookup(buffer[bufferPos + i], crc[0]);\n }\n\n /**\n * Write LAME info: mini version + info on various switches used (Jonathan\n * Dee 2001/08/31).\n *\n * @param gfp\n * global flags\n * @param musicLength\n * music length\n * @param streamBuffer\n * pointer to output buffer\n * @param streamBufferPos\n * offset into the output buffer\n * @param crc\n * computation of CRC-16 of Lame Tag so far (starting at frame\n * sync)\n * @return number of bytes written to the stream\n */\n function putLameVBR(gfp, musicLength, streamBuffer, streamBufferPos, crc) {\n var gfc = gfp.internal_flags;\n var bytesWritten = 0;\n\n /* encoder delay */\n var encDelay = gfp.encoder_delay;\n /* encoder padding */\n var encPadding = gfp.encoder_padding;\n\n /* recall: gfp.VBR_q is for example set by the switch -V */\n /* gfp.quality by -q, -h, -f, etc */\n var quality = (100 - 10 * gfp.VBR_q - gfp.quality);\n\n var version = v.getLameVeryShortVersion();\n var vbr;\n var revision = 0x00;\n var revMethod;\n // numbering different in vbr_mode vs. Lame tag\n var vbrTypeTranslator = [1, 5, 3, 2, 4, 0, 3];\n var lowpass = 0 | (((gfp.lowpassfreq / 100.0) + .5) > 255 ? 255\n : (gfp.lowpassfreq / 100.0) + .5);\n var peakSignalAmplitude = 0;\n var radioReplayGain = 0;\n var audiophileReplayGain = 0;\n var noiseShaping = gfp.internal_flags.noise_shaping;\n var stereoMode = 0;\n var nonOptimal = 0;\n var sourceFreq = 0;\n var misc = 0;\n var musicCRC = 0;\n\n // psy model type: Gpsycho or NsPsytune\n var expNPsyTune = (gfp.exp_nspsytune & 1) != 0;\n var safeJoint = (gfp.exp_nspsytune & 2) != 0;\n var noGapMore = false;\n var noGapPrevious = false;\n var noGapCount = gfp.internal_flags.nogap_total;\n var noGapCurr = gfp.internal_flags.nogap_current;\n\n // 4 bits\n var athType = gfp.ATHtype;\n var flags = 0;\n\n // vbr modes\n var abrBitrate;\n switch (gfp.VBR) {\n case vbr_abr:\n abrBitrate = gfp.VBR_mean_bitrate_kbps;\n break;\n case vbr_off:\n abrBitrate = gfp.brate;\n break;\n default:\n abrBitrate = gfp.VBR_min_bitrate_kbps;\n }\n\n // revision and vbr method\n if (gfp.VBR.ordinal() < vbrTypeTranslator.length)\n vbr = vbrTypeTranslator[gfp.VBR.ordinal()];\n else\n vbr = 0x00; // unknown\n\n revMethod = 0x10 * revision + vbr;\n\n // ReplayGain\n if (gfc.findReplayGain) {\n if (gfc.RadioGain > 0x1FE)\n gfc.RadioGain = 0x1FE;\n if (gfc.RadioGain < -0x1FE)\n gfc.RadioGain = -0x1FE;\n\n // set name code\n radioReplayGain = 0x2000;\n // set originator code to `determined automatically'\n radioReplayGain |= 0xC00;\n\n if (gfc.RadioGain >= 0) {\n // set gain adjustment\n radioReplayGain |= gfc.RadioGain;\n } else {\n // set the sign bit\n radioReplayGain |= 0x200;\n // set gain adjustment\n radioReplayGain |= -gfc.RadioGain;\n }\n }\n\n // peak sample\n if (gfc.findPeakSample)\n peakSignalAmplitude = Math\n .abs(0 | ((( gfc.PeakSample) / 32767.0) * Math.pow(2, 23) + .5));\n\n // nogap\n if (noGapCount != -1) {\n if (noGapCurr > 0)\n noGapPrevious = true;\n\n if (noGapCurr < noGapCount - 1)\n noGapMore = true;\n }\n\n // flags\n flags = athType + ((expNPsyTune ? 1 : 0) << 4)\n + ((safeJoint ? 1 : 0) << 5) + ((noGapMore ? 1 : 0) << 6)\n + ((noGapPrevious ? 1 : 0) << 7);\n\n if (quality < 0)\n quality = 0;\n\n // stereo mode field (Intensity stereo is not implemented)\n switch (gfp.mode) {\n case MONO:\n stereoMode = 0;\n break;\n case STEREO:\n stereoMode = 1;\n break;\n case DUAL_CHANNEL:\n stereoMode = 2;\n break;\n case JOINT_STEREO:\n if (gfp.force_ms)\n stereoMode = 4;\n else\n stereoMode = 3;\n break;\n case NOT_SET:\n //$FALL-THROUGH$\n default:\n stereoMode = 7;\n break;\n }\n\n if (gfp.in_samplerate <= 32000)\n sourceFreq = 0x00;\n else if (gfp.in_samplerate == 48000)\n sourceFreq = 0x02;\n else if (gfp.in_samplerate > 48000)\n sourceFreq = 0x03;\n else {\n // default is 44100Hz\n sourceFreq = 0x01;\n }\n\n // Check if the user overrided the default LAME behavior with some\n // nasty options\n if (gfp.short_blocks == ShortBlock.short_block_forced\n || gfp.short_blocks == ShortBlock.short_block_dispensed\n || ((gfp.lowpassfreq == -1) && (gfp.highpassfreq == -1)) || /* \"-k\" */\n (gfp.scale_left < gfp.scale_right)\n || (gfp.scale_left > gfp.scale_right)\n || (gfp.disable_reservoir && gfp.brate < 320) || gfp.noATH\n || gfp.ATHonly || (athType == 0) || gfp.in_samplerate <= 32000)\n nonOptimal = 1;\n\n misc = noiseShaping + (stereoMode << 2) + (nonOptimal << 5)\n + (sourceFreq << 6);\n\n musicCRC = gfc.nMusicCRC;\n\n // Write all this information into the stream\n\n createInteger(streamBuffer, streamBufferPos + bytesWritten, quality);\n bytesWritten += 4;\n\n for (var j = 0; j < 9; j++) {\n streamBuffer[streamBufferPos + bytesWritten + j] = 0xff & version .charAt(j);\n }\n bytesWritten += 9;\n\n streamBuffer[streamBufferPos + bytesWritten] = 0xff & revMethod;\n bytesWritten++;\n\n streamBuffer[streamBufferPos + bytesWritten] = 0xff & lowpass;\n bytesWritten++;\n\n createInteger(streamBuffer, streamBufferPos + bytesWritten,\n peakSignalAmplitude);\n bytesWritten += 4;\n\n createShort(streamBuffer, streamBufferPos + bytesWritten,\n radioReplayGain);\n bytesWritten += 2;\n\n createShort(streamBuffer, streamBufferPos + bytesWritten,\n audiophileReplayGain);\n bytesWritten += 2;\n\n streamBuffer[streamBufferPos + bytesWritten] = 0xff & flags;\n bytesWritten++;\n\n if (abrBitrate >= 255)\n streamBuffer[streamBufferPos + bytesWritten] = 0xFF;\n else\n streamBuffer[streamBufferPos + bytesWritten] = 0xff & abrBitrate;\n bytesWritten++;\n\n streamBuffer[streamBufferPos + bytesWritten] = 0xff & (encDelay >> 4);\n streamBuffer[streamBufferPos + bytesWritten + 1] = 0xff & ((encDelay << 4) + (encPadding >> 8));\n streamBuffer[streamBufferPos + bytesWritten + 2] = 0xff & encPadding;\n\n bytesWritten += 3;\n\n streamBuffer[streamBufferPos + bytesWritten] = 0xff & misc;\n bytesWritten++;\n\n // unused in rev0\n streamBuffer[streamBufferPos + bytesWritten++] = 0;\n\n createShort(streamBuffer, streamBufferPos + bytesWritten, gfp.preset);\n bytesWritten += 2;\n\n createInteger(streamBuffer, streamBufferPos + bytesWritten, musicLength);\n bytesWritten += 4;\n\n createShort(streamBuffer, streamBufferPos + bytesWritten, musicCRC);\n bytesWritten += 2;\n\n // Calculate tag CRC.... must be done here, since it includes previous\n // information\n\n for (var i = 0; i < bytesWritten; i++)\n crc = crcUpdateLookup(streamBuffer[streamBufferPos + i], crc);\n\n createShort(streamBuffer, streamBufferPos + bytesWritten, crc);\n bytesWritten += 2;\n\n return bytesWritten;\n }\n\n function skipId3v2(fpStream) {\n // seek to the beginning of the stream\n fpStream.seek(0);\n // read 10 bytes in case there's an ID3 version 2 header here\n var id3v2Header = new_byte(10);\n fpStream.readFully(id3v2Header);\n /* does the stream begin with the ID3 version 2 file identifier? */\n var id3v2TagSize;\n if (!new String(id3v2Header, \"ISO-8859-1\").startsWith(\"ID3\")) {\n /*\n * the tag size (minus the 10-byte header) is encoded into four\n * bytes where the most significant bit is clear in each byte\n */\n id3v2TagSize = (((id3v2Header[6] & 0x7f) << 21)\n | ((id3v2Header[7] & 0x7f) << 14)\n | ((id3v2Header[8] & 0x7f) << 7) | (id3v2Header[9] & 0x7f))\n + id3v2Header.length;\n } else {\n /* no ID3 version 2 tag in this stream */\n id3v2TagSize = 0;\n }\n return id3v2TagSize;\n }\n\n this.getLameTagFrame = function (gfp, buffer) {\n var gfc = gfp.internal_flags;\n\n if (!gfp.bWriteVbrTag) {\n return 0;\n }\n if (gfc.Class_ID != Lame.LAME_ID) {\n return 0;\n }\n if (gfc.VBR_seek_table.pos <= 0) {\n return 0;\n }\n if (buffer.length < gfc.VBR_seek_table.TotalFrameSize) {\n return gfc.VBR_seek_table.TotalFrameSize;\n }\n\n Arrays.fill(buffer, 0, gfc.VBR_seek_table.TotalFrameSize, 0);\n\n // 4 bytes frame header\n setLameTagFrameHeader(gfp, buffer);\n\n // Create TOC entries\n var toc = new_byte(NUMTOCENTRIES);\n\n if (gfp.free_format) {\n for (var i = 1; i < NUMTOCENTRIES; ++i)\n toc[i] = 0xff & (255 * i / 100);\n } else {\n xingSeekTable(gfc.VBR_seek_table, toc);\n }\n\n // Start writing the tag after the zero frame\n var streamIndex = gfc.sideinfo_len;\n /**\n * Note: Xing header specifies that Xing data goes in the ancillary data\n * with NO ERROR PROTECTION. If error protecton in enabled, the Xing\n * data still starts at the same offset, and now it is in sideinfo data\n * block, and thus will not decode correctly by non-Xing tag aware\n * players\n */\n if (gfp.error_protection)\n streamIndex -= 2;\n\n // Put Vbr tag\n if (gfp.VBR == VbrMode.vbr_off) {\n buffer[streamIndex++] = 0xff & VBRTag1.charAt(0);\n buffer[streamIndex++] = 0xff & VBRTag1.charAt(1);\n buffer[streamIndex++] = 0xff & VBRTag1.charAt(2);\n buffer[streamIndex++] = 0xff & VBRTag1.charAt(3);\n\n } else {\n buffer[streamIndex++] = 0xff & VBRTag0.charAt(0);\n buffer[streamIndex++] = 0xff & VBRTag0.charAt(1);\n buffer[streamIndex++] = 0xff & VBRTag0.charAt(2);\n buffer[streamIndex++] = 0xff & VBRTag0.charAt(3);\n }\n\n // Put header flags\n createInteger(buffer, streamIndex, FRAMES_FLAG + BYTES_FLAG + TOC_FLAG\n + VBR_SCALE_FLAG);\n streamIndex += 4;\n\n // Put Total Number of frames\n createInteger(buffer, streamIndex, gfc.VBR_seek_table.nVbrNumFrames);\n streamIndex += 4;\n\n // Put total audio stream size, including Xing/LAME Header\n var streamSize = (gfc.VBR_seek_table.nBytesWritten + gfc.VBR_seek_table.TotalFrameSize);\n createInteger(buffer, streamIndex, 0 | streamSize);\n streamIndex += 4;\n\n /* Put TOC */\n System.arraycopy(toc, 0, buffer, streamIndex, toc.length);\n streamIndex += toc.length;\n\n if (gfp.error_protection) {\n // (jo) error_protection: add crc16 information to header\n bs.CRC_writeheader(gfc, buffer);\n }\n\n // work out CRC so far: initially crc = 0\n var crc = 0x00;\n for (var i = 0; i < streamIndex; i++)\n crc = crcUpdateLookup(buffer[i], crc);\n // Put LAME VBR info\n streamIndex += putLameVBR(gfp, streamSize, buffer, streamIndex, crc);\n\n return gfc.VBR_seek_table.TotalFrameSize;\n }\n\n /**\n * Write final VBR tag to the file.\n *\n * @param gfp\n * global flags\n * @param stream\n * stream to add the VBR tag to\n * @return 0 (OK), -1 else\n * @throws IOException\n * I/O error\n */\n this.putVbrTag = function (gfp, stream) {\n var gfc = gfp.internal_flags;\n\n if (gfc.VBR_seek_table.pos <= 0)\n return -1;\n\n // Seek to end of file\n stream.seek(stream.length());\n\n // Get file size, abort if file has zero length.\n if (stream.length() == 0)\n return -1;\n\n // The VBR tag may NOT be located at the beginning of the stream. If an\n // ID3 version 2 tag was added, then it must be skipped to write the VBR\n // tag data.\n var id3v2TagSize = skipId3v2(stream);\n\n // Seek to the beginning of the stream\n stream.seek(id3v2TagSize);\n\n var buffer = new_byte(MAXFRAMESIZE);\n var bytes = getLameTagFrame(gfp, buffer);\n if (bytes > buffer.length) {\n return -1;\n }\n\n if (bytes < 1) {\n return 0;\n }\n\n // Put it all to disk again\n stream.write(buffer, 0, bytes);\n // success\n return 0;\n }\n\n}\n\nmodule.exports = VBRTag;\n","var common = require('./common.js');\nvar System = common.System;\nvar VbrMode = common.VbrMode;\nvar Float = common.Float;\nvar ShortBlock = common.ShortBlock;\nvar Util = common.Util;\nvar Arrays = common.Arrays;\nvar new_array_n = common.new_array_n;\nvar new_byte = common.new_byte;\nvar new_double = common.new_double;\nvar new_float = common.new_float;\nvar new_float_n = common.new_float_n;\nvar new_int = common.new_int;\nvar new_int_n = common.new_int_n;\nvar assert = common.assert;\n\nLame = require('./Lame.js');\nPresets = require('./Presets.js');\nGainAnalysis = require('./GainAnalysis.js');\nQuantizePVT = require('./QuantizePVT.js');\nQuantize = require('./Quantize.js');\nTakehiro = require('./Takehiro.js');\nReservoir = require('./Reservoir.js');\nMPEGMode = require('./MPEGMode.js');\nBitStream = require('./BitStream.js');\nvar Encoder = require('./Encoder.js');\nvar Version = require('./Version.js');\nvar VBRTag = require('./VBRTag.js');\n\nfunction GetAudio() {\n var parse;\n var mpg;\n\n this.setModules = function (parse2, mpg2) {\n parse = parse2;\n mpg = mpg2;\n }\n}\n\n\nfunction Parse() {\n var ver;\n var id3;\n var pre;\n\n this.setModules = function (ver2, id32, pre2) {\n ver = ver2;\n id3 = id32;\n pre = pre2;\n }\n}\n\nfunction MPGLib() {\n}\n\nfunction ID3Tag() {\n var bits;\n var ver;\n\n this.setModules = function (_bits, _ver) {\n bits = _bits;\n ver = _ver;\n }\n}\n\nfunction Mp3Encoder(channels, samplerate, kbps) {\n if (arguments.length != 3) {\n console.error('WARN: Mp3Encoder(channels, samplerate, kbps) not specified');\n channels = 1;\n samplerate = 44100;\n kbps = 128;\n }\n var lame = new Lame();\n var gaud = new GetAudio();\n var ga = new GainAnalysis();\n var bs = new BitStream();\n var p = new Presets();\n var qupvt = new QuantizePVT();\n var qu = new Quantize();\n var vbr = new VBRTag();\n var ver = new Version();\n var id3 = new ID3Tag();\n var rv = new Reservoir();\n var tak = new Takehiro();\n var parse = new Parse();\n var mpg = new MPGLib();\n\n lame.setModules(ga, bs, p, qupvt, qu, vbr, ver, id3, mpg);\n bs.setModules(ga, mpg, ver, vbr);\n id3.setModules(bs, ver);\n p.setModules(lame);\n qu.setModules(bs, rv, qupvt, tak);\n qupvt.setModules(tak, rv, lame.enc.psy);\n rv.setModules(bs);\n tak.setModules(qupvt);\n vbr.setModules(lame, bs, ver);\n gaud.setModules(parse, mpg);\n parse.setModules(ver, id3, p);\n\n var gfp = lame.lame_init();\n\n gfp.num_channels = channels;\n gfp.in_samplerate = samplerate;\n gfp.brate = kbps;\n gfp.mode = MPEGMode.STEREO;\n gfp.quality = 3;\n gfp.bWriteVbrTag = false;\n gfp.disable_reservoir = true;\n gfp.write_id3tag_automatic = false;\n\n var retcode = lame.lame_init_params(gfp);\n assert(0 == retcode);\n var maxSamples = 1152;\n var mp3buf_size = 0 | (1.25 * maxSamples + 7200);\n var mp3buf = new_byte(mp3buf_size);\n\n this.encodeBuffer = function (left, right) {\n if (channels == 1) {\n right = left;\n }\n assert(left.length == right.length);\n if (left.length > maxSamples) {\n maxSamples = left.length;\n mp3buf_size = 0 | (1.25 * maxSamples + 7200);\n mp3buf = new_byte(mp3buf_size);\n }\n\n var _sz = lame.lame_encode_buffer(gfp, left, right, left.length, mp3buf, 0, mp3buf_size);\n return new Int8Array(mp3buf.subarray(0, _sz));\n };\n\n this.flush = function () {\n var _sz = lame.lame_encode_flush(gfp, mp3buf, 0, mp3buf_size);\n return new Int8Array(mp3buf.subarray(0, _sz));\n };\n}\n\nfunction WavHeader() {\n this.dataOffset = 0;\n this.dataLen = 0;\n this.channels = 0;\n this.sampleRate = 0;\n}\n\nfunction fourccToInt(fourcc) {\n return fourcc.charCodeAt(0) << 24 | fourcc.charCodeAt(1) << 16 | fourcc.charCodeAt(2) << 8 | fourcc.charCodeAt(3);\n}\n\nWavHeader.RIFF = fourccToInt(\"RIFF\");\nWavHeader.WAVE = fourccToInt(\"WAVE\");\nWavHeader.fmt_ = fourccToInt(\"fmt \");\nWavHeader.data = fourccToInt(\"data\");\n\nWavHeader.readHeader = function (dataView) {\n var w = new WavHeader();\n\n var header = dataView.getUint32(0, false);\n if (WavHeader.RIFF != header) {\n return;\n }\n var fileLen = dataView.getUint32(4, true);\n if (WavHeader.WAVE != dataView.getUint32(8, false)) {\n return;\n }\n if (WavHeader.fmt_ != dataView.getUint32(12, false)) {\n return;\n }\n var fmtLen = dataView.getUint32(16, true);\n var pos = 16 + 4;\n switch (fmtLen) {\n case 16:\n case 18:\n w.channels = dataView.getUint16(pos + 2, true);\n w.sampleRate = dataView.getUint32(pos + 4, true);\n break;\n default:\n throw 'extended fmt chunk not implemented';\n }\n pos += fmtLen;\n var data = WavHeader.data;\n var len = 0;\n while (data != header) {\n header = dataView.getUint32(pos, false);\n len = dataView.getUint32(pos + 4, true);\n if (data == header) {\n break;\n }\n pos += (len + 8);\n }\n w.dataLen = len;\n w.dataOffset = pos + 8;\n return w;\n};\n\nmodule.exports.Mp3Encoder = Mp3Encoder;\nmodule.exports.WavHeader = WavHeader;\n","import { Mp3Encoder } from 'lamejs';\n\nclass Encoder {\n constructor(config) {\n this.config = {\n sampleRate: 44100,\n bitRate: 128\n };\n\n Object.assign(this.config, config);\n\n this.mp3Encoder = new Mp3Encoder(\n 1,\n this.config.sampleRate,\n this.config.bitRate\n );\n\n // Audio is processed by frames of 1152 samples per audio channel\n // http://lame.sourceforge.net/tech-FAQ.txt\n this.maxSamples = 1152;\n\n this.samplesMono = null;\n this.clearBuffer();\n }\n\n /**\n * Clear active buffer\n */\n clearBuffer() {\n this.dataBuffer = [];\n }\n\n /**\n * Append new audio buffer to current active buffer\n * @param {Buffer} buffer\n */\n appendToBuffer(buffer) {\n this.dataBuffer.push(new Int8Array(buffer));\n }\n\n /**\n * Float current data to 16 bits PCM\n * @param {Float32Array} input\n * @param {Int16Array} output\n */\n floatTo16BitPCM(input, output) {\n for (let i = 0; i < input.length; i++) {\n const s = Math.max(-1, Math.min(1, input[i]));\n output[i] = (s < 0 ? s * 0x8000 : s * 0x7FFF);\n }\n }\n\n /**\n * Convert buffer to proper format\n * @param {Array} arrayBuffer\n */\n convertBuffer(arrayBuffer) {\n const data = new Float32Array(arrayBuffer);\n const out = new Int16Array(arrayBuffer.length);\n this.floatTo16BitPCM(data, out);\n\n return out;\n }\n\n /**\n * Encode and append current buffer to dataBuffer\n * @param {Array} arrayBuffer\n */\n encode(arrayBuffer) {\n this.samplesMono = this.convertBuffer(arrayBuffer);\n let remaining = this.samplesMono.length;\n\n for (let i = 0; remaining >= 0; i += this.maxSamples) {\n const left = this.samplesMono.subarray(i, i + this.maxSamples);\n const mp3buffer = this.mp3Encoder.encodeBuffer(left);\n this.appendToBuffer(mp3buffer);\n remaining -= this.maxSamples;\n }\n }\n\n /**\n * Return full dataBuffer\n */\n finish() {\n this.appendToBuffer(this.mp3Encoder.flush());\n\n return this.dataBuffer;\n }\n};\n\nexport default Encoder;\n","import Encoder from './encoder';\n\nclass MicRecorder {\n constructor(config) {\n this.config = {\n // 128 or 160 kbit/s – mid-range bitrate quality\n bitRate: 128,\n\n // There is a known issue with some macOS machines, where the recording\n // will sometimes have a loud 'pop' or 'pop-click' sound. This flag\n // prevents getting audio from the microphone a few milliseconds after\n // the begining of the recording. It also helps to remove the mouse\n // \"click\" sound from the output mp3 file.\n startRecordingAt: 300,\n deviceId: null,\n };\n\n this.activeStream = null;\n this.context = null;\n this.microphone = null;\n this.processor = null;\n this.startTime = 0;\n\n Object.assign(this.config, config);\n }\n\n /**\n * Starts to listen for the microphone sound\n * @param {MediaStream} stream\n */\n addMicrophoneListener(stream) {\n this.activeStream = stream;\n\n // This prevents the weird noise once you start listening to the microphone\n this.timerToStart = setTimeout(() => {\n delete this.timerToStart;\n }, this.config.startRecordingAt);\n\n // Set up Web Audio API to process data from the media stream (microphone).\n this.microphone = this.context.createMediaStreamSource(stream);\n\n // Settings a bufferSize of 0 instructs the browser to choose the best bufferSize\n this.processor = this.context.createScriptProcessor(0, 1, 1);\n\n // Add all buffers from LAME into an array.\n this.processor.onaudioprocess = (event) => {\n if (this.timerToStart) {\n return;\n }\n\n // Send microphone data to LAME for MP3 encoding while recording.\n this.lameEncoder.encode(event.inputBuffer.getChannelData(0));\n };\n\n // Begin retrieving microphone data.\n this.microphone.connect(this.processor);\n this.processor.connect(this.context.destination);\n };\n\n /**\n * Disconnect microphone, processor and remove activeStream\n */\n stop() {\n if (this.processor && this.microphone) {\n // Clean up the Web Audio API resources.\n this.microphone.disconnect();\n this.processor.disconnect();\n\n // If all references using this.context are destroyed, context is closed\n // automatically. DOMException is fired when trying to close again\n if (this.context && this.context.state !== 'closed') {\n this.context.close();\n }\n\n this.processor.onaudioprocess = null;\n\n // Stop all audio tracks. Also, removes recording icon from chrome tab\n this.activeStream.getAudioTracks().forEach(track => track.stop());\n }\n\n return this;\n };\n\n /**\n * Requests access to the microphone and start recording\n * @return Promise\n */\n start() {\n const AudioContext = window.AudioContext || window.webkitAudioContext;\n this.context = new AudioContext();\n this.config.sampleRate = this.context.sampleRate;\n this.lameEncoder = new Encoder(this.config);\n\n const audio = this.config.deviceId ? { deviceId: { exact: this.config.deviceId } } : true;\n\n return new Promise((resolve, reject) => {\n navigator.mediaDevices.getUserMedia({ audio })\n .then(stream => {\n this.addMicrophoneListener(stream);\n resolve(stream);\n }).catch(function(err) {\n reject(err);\n });\n })\n };\n\n /**\n * Return Mp3 Buffer and Blob with type mp3\n * @return {Promise}\n */\n getMp3() {\n const finalBuffer = this.lameEncoder.finish();\n\n return new Promise((resolve, reject) => {\n if (finalBuffer.length === 0) {\n reject(new Error('No buffer to send'));\n } else {\n resolve([finalBuffer, new Blob(finalBuffer, { type: 'audio/mp3' })]);\n this.lameEncoder.clearBuffer();\n }\n });\n };\n};\n\nexport default MicRecorder;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"\")&&(k=k.replace(\"\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e\"+b.valueOf().toString()+\"\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a>=g;e-=g;rg=1<<32-oc(b)+e|c<w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;ww?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&Ng(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=Lg(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Tg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Rg(f.type,f.key,f.props,null,a.mode,h),h.ref=Lg(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=Sg(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);Mg(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=Qg(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Ug=Og(!0),Vg=Og(!1),Wg=Uf(null),Xg=null,Yg=null,Zg=null;function $g(){Zg=Yg=Xg=null}function ah(a){var b=Wg.current;E(Wg);a._currentValue=b}function bh(a,b,c){for(;null!==a;){var d=a.alternate;(a.childLanes&b)!==b?(a.childLanes|=b,null!==d&&(d.childLanes|=b)):null!==d&&(d.childLanes&b)!==b&&(d.childLanes|=b);if(a===c)break;a=a.return}}\nfunction ch(a,b){Xg=a;Zg=Yg=null;a=a.dependencies;null!==a&&null!==a.firstContext&&(0!==(a.lanes&b)&&(dh=!0),a.firstContext=null)}function eh(a){var b=a._currentValue;if(Zg!==a)if(a={context:a,memoizedValue:b,next:null},null===Yg){if(null===Xg)throw Error(p(308));Yg=a;Xg.dependencies={lanes:0,firstContext:a}}else Yg=Yg.next=a;return b}var fh=null;function gh(a){null===fh?fh=[a]:fh.push(a)}\nfunction hh(a,b,c,d){var e=b.interleaved;null===e?(c.next=c,gh(b)):(c.next=e.next,e.next=c);b.interleaved=c;return ih(a,d)}function ih(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);c=a;for(a=a.return;null!==a;)a.childLanes|=b,c=a.alternate,null!==c&&(c.childLanes|=b),c=a,a=a.return;return 3===c.tag?c.stateNode:null}var jh=!1;function kh(a){a.updateQueue={baseState:a.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}\nfunction lh(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,firstBaseUpdate:a.firstBaseUpdate,lastBaseUpdate:a.lastBaseUpdate,shared:a.shared,effects:a.effects})}function mh(a,b){return{eventTime:a,lane:b,tag:0,payload:null,callback:null,next:null}}\nfunction nh(a,b,c){var d=a.updateQueue;if(null===d)return null;d=d.shared;if(0!==(K&2)){var e=d.pending;null===e?b.next=b:(b.next=e.next,e.next=b);d.pending=b;return ih(a,c)}e=d.interleaved;null===e?(b.next=b,gh(d)):(b.next=e.next,e.next=b);d.interleaved=b;return ih(a,c)}function oh(a,b,c){b=b.updateQueue;if(null!==b&&(b=b.shared,0!==(c&4194240))){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nfunction ph(a,b){var c=a.updateQueue,d=a.alternate;if(null!==d&&(d=d.updateQueue,c===d)){var e=null,f=null;c=c.firstBaseUpdate;if(null!==c){do{var g={eventTime:c.eventTime,lane:c.lane,tag:c.tag,payload:c.payload,callback:c.callback,next:null};null===f?e=f=g:f=f.next=g;c=c.next}while(null!==c);null===f?e=f=b:f=f.next=b}else e=f=b;c={baseState:d.baseState,firstBaseUpdate:e,lastBaseUpdate:f,shared:d.shared,effects:d.effects};a.updateQueue=c;return}a=c.lastBaseUpdate;null===a?c.firstBaseUpdate=b:a.next=\nb;c.lastBaseUpdate=b}\nfunction qh(a,b,c,d){var e=a.updateQueue;jh=!1;var f=e.firstBaseUpdate,g=e.lastBaseUpdate,h=e.shared.pending;if(null!==h){e.shared.pending=null;var k=h,l=k.next;k.next=null;null===g?f=l:g.next=l;g=k;var m=a.alternate;null!==m&&(m=m.updateQueue,h=m.lastBaseUpdate,h!==g&&(null===h?m.firstBaseUpdate=l:h.next=l,m.lastBaseUpdate=k))}if(null!==f){var q=e.baseState;g=0;m=l=k=null;h=f;do{var r=h.lane,y=h.eventTime;if((d&r)===r){null!==m&&(m=m.next={eventTime:y,lane:0,tag:h.tag,payload:h.payload,callback:h.callback,\nnext:null});a:{var n=a,t=h;r=b;y=c;switch(t.tag){case 1:n=t.payload;if(\"function\"===typeof n){q=n.call(y,q,r);break a}q=n;break a;case 3:n.flags=n.flags&-65537|128;case 0:n=t.payload;r=\"function\"===typeof n?n.call(y,q,r):n;if(null===r||void 0===r)break a;q=A({},q,r);break a;case 2:jh=!0}}null!==h.callback&&0!==h.lane&&(a.flags|=64,r=e.effects,null===r?e.effects=[h]:r.push(h))}else y={eventTime:y,lane:r,tag:h.tag,payload:h.payload,callback:h.callback,next:null},null===m?(l=m=y,k=q):m=m.next=y,g|=r;\nh=h.next;if(null===h)if(h=e.shared.pending,null===h)break;else r=h,h=r.next,r.next=null,e.lastBaseUpdate=r,e.shared.pending=null}while(1);null===m&&(k=q);e.baseState=k;e.firstBaseUpdate=l;e.lastBaseUpdate=m;b=e.shared.interleaved;if(null!==b){e=b;do g|=e.lane,e=e.next;while(e!==b)}else null===f&&(e.shared.lanes=0);rh|=g;a.lanes=g;a.memoizedState=q}}\nfunction sh(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;bc?c:4;a(!0);var d=Gh.transition;Gh.transition={};try{a(!1),b()}finally{C=c,Gh.transition=d}}function wi(){return Uh().memoizedState}\nfunction xi(a,b,c){var d=yi(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,c);else if(c=hh(a,b,c,d),null!==c){var e=R();gi(c,a,d,e);Bi(c,b,d)}}\nfunction ii(a,b,c){var d=yi(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,gh(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=hh(a,b,e,d);null!==c&&(e=R(),gi(c,a,d,e),Bi(c,b,d))}}\nfunction zi(a){var b=a.alternate;return a===M||null!==b&&b===M}function Ai(a,b){Jh=Ih=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Bi(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar Rh={readContext:eh,useCallback:P,useContext:P,useEffect:P,useImperativeHandle:P,useInsertionEffect:P,useLayoutEffect:P,useMemo:P,useReducer:P,useRef:P,useState:P,useDebugValue:P,useDeferredValue:P,useTransition:P,useMutableSource:P,useSyncExternalStore:P,useId:P,unstable_isNewReconciler:!1},Oh={readContext:eh,useCallback:function(a,b){Th().memoizedState=[a,void 0===b?null:b];return a},useContext:eh,useEffect:mi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ki(4194308,\n4,pi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ki(4194308,4,a,b)},useInsertionEffect:function(a,b){return ki(4,2,a,b)},useMemo:function(a,b){var c=Th();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=Th();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=xi.bind(null,M,a);return[d.memoizedState,a]},useRef:function(a){var b=\nTh();a={current:a};return b.memoizedState=a},useState:hi,useDebugValue:ri,useDeferredValue:function(a){return Th().memoizedState=a},useTransition:function(){var a=hi(!1),b=a[0];a=vi.bind(null,a[1]);Th().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=M,e=Th();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===Q)throw Error(p(349));0!==(Hh&30)||di(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;mi(ai.bind(null,d,\nf,a),[a]);d.flags|=2048;bi(9,ci.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=Th(),b=Q.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Kh++;0\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;zj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eGj&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304)}else{if(!d)if(a=Ch(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Dj(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Gj&&1073741824!==c&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=L.current,G(L,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Hj(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(fj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Ij(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return zh(),E(Wf),E(H),Eh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Bh(b),null;case 13:E(L);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(L),null;case 4:return zh(),null;case 10:return ah(b.type._context),null;case 22:case 23:return Hj(),\nnull;case 24:return null;default:return null}}var Jj=!1,U=!1,Kj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Lj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Mj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Nj=!1;\nfunction Oj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Ci(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Nj;Nj=!1;return n}\nfunction Pj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Mj(b,c,f)}e=e.next}while(e!==d)}}function Qj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Rj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Sj(a){var b=a.alternate;null!==b&&(a.alternate=null,Sj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Tj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Uj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Tj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Vj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Vj(a,b,c),a=a.sibling;null!==a;)Vj(a,b,c),a=a.sibling}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}var X=null,Xj=!1;function Yj(a,b,c){for(c=c.child;null!==c;)Zj(a,b,c),c=c.sibling}\nfunction Zj(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Lj(c,b);case 6:var d=X,e=Xj;X=null;Yj(a,b,c);X=d;Xj=e;null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Xj;X=c.stateNode.containerInfo;Xj=!0;\nYj(a,b,c);X=d;Xj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Mj(c,b,g):0!==(f&4)&&Mj(c,b,g));e=e.next}while(e!==d)}Yj(a,b,c);break;case 1:if(!U&&(Lj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Yj(a,b,c);break;case 21:Yj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Yj(a,b,c),U=d):Yj(a,b,c);break;default:Yj(a,b,c)}}function ak(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Kj);b.forEach(function(b){var d=bk.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction ck(a,b){var c=b.deletions;if(null!==c)for(var d=0;de&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*lk(d/1960))-d;if(10a?16:a;if(null===wk)var d=!1;else{a=wk;wk=null;xk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;kB()-fk?Kk(a,0):rk|=c);Dk(a,b)}function Yk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=R();a=ih(a,b);null!==a&&(Ac(a,b,c),Dk(a,c))}function uj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Yk(a,c)}\nfunction bk(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Yk(a,c)}var Vk;\nVk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)dh=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return dh=!1,yj(a,b,c);dh=0!==(a.flags&131072)?!0:!1}else dh=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;ij(a,b);a=b.pendingProps;var e=Yf(b,H.current);ch(b,c);e=Nh(null,b,d,a,e,c);var f=Sh();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,kh(b),e.updater=Ei,b.stateNode=e,e._reactInternals=b,Ii(b,d,a,c),b=jj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Xi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{ij(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=Zk(d);a=Ci(d,a);switch(e){case 0:b=cj(null,b,d,a,c);break a;case 1:b=hj(null,b,d,a,c);break a;case 11:b=Yi(null,b,d,a,c);break a;case 14:b=$i(null,b,d,Ci(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),cj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),hj(a,b,d,e,c);case 3:a:{kj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;lh(a,b);qh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ji(Error(p(423)),b);b=lj(a,b,d,c,e);break a}else if(d!==e){e=Ji(Error(p(424)),b);b=lj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Vg(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=Zi(a,b,c);break a}Xi(a,b,d,c)}b=b.child}return b;case 5:return Ah(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\ngj(a,b),Xi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return oj(a,b,c);case 4:return yh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Ug(b,null,d,c):Xi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),Yi(a,b,d,e,c);case 7:return Xi(a,b,b.pendingProps,c),b.child;case 8:return Xi(a,b,b.pendingProps.children,c),b.child;case 12:return Xi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Wg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=Zi(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=mh(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);bh(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);bh(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Xi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,ch(b,c),e=eh(e),d=d(e),b.flags|=1,Xi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Ci(d,b.pendingProps),e=Ci(d.type,e),$i(a,b,d,e,c);case 15:return bj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),ij(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,ch(b,c),Gi(b,d,e),Ii(b,d,e,c),jj(null,b,d,!0,a,c);case 19:return xj(a,b,c);case 22:return dj(a,b,c)}throw Error(p(156,b.tag));};function Fk(a,b){return ac(a,b)}\nfunction $k(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new $k(a,b,c,d)}function aj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction Zk(a){if(\"function\"===typeof a)return aj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction Pg(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction Rg(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)aj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Tg(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return pj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Tg(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function pj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function Qg(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction Sg(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction al(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function bl(a,b,c,d,e,f,g,h,k){a=new al(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};kh(f);return a}function cl(a,b,c){var d=3 0 && index + match.length !== title.length && match.search(smallWords) > -1 && title.charAt(index - 2) !== \":\" && (title.charAt(index + match.length) !== \"-\" || title.charAt(index - 1) === \"-\") && title.charAt(index - 1).search(/[^\\s-]/) < 0) {\n return match.toLowerCase();\n }\n if (match.substr(1).search(/[A-Z]|\\../) > -1) {\n return match;\n }\n return match.charAt(0).toUpperCase() + match.substr(1);\n });\n}\n\n// See if s could be an email address. We don't want to send personal data like email.\n// https://support.google.com/analytics/answer/2795983?hl=en\nfunction mightBeEmail(s) {\n // There's no point trying to validate rfc822 fully, just look for ...@...\n return typeof s === \"string\" && s.indexOf(\"@\") !== -1;\n}\nvar redacted = \"REDACTED (Potential Email Address)\";\nfunction redactEmail(string) {\n if (mightBeEmail(string)) {\n console.warn(\"This arg looks like an email address, redacting.\");\n return redacted;\n }\n return string;\n}\nfunction format() {\n var s = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"\";\n var titleCase = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var redactingEmail = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n var _str = s || \"\";\n if (titleCase) {\n _str = toTitleCase(s);\n }\n if (redactingEmail) {\n _str = redactEmail(_str);\n }\n return _str;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = exports.GA4 = void 0;\nvar _gtag = _interopRequireDefault(require(\"./gtag\"));\nvar _format = _interopRequireDefault(require(\"./format\"));\nvar _excluded = [\"eventCategory\", \"eventAction\", \"eventLabel\", \"eventValue\", \"hitType\"],\n _excluded2 = [\"title\", \"location\"],\n _excluded3 = [\"page\", \"hitType\"];\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i[\"return\"] && (_r = _i[\"return\"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n/*\nLinks\nhttps://developers.google.com/gtagjs/reference/api\nhttps://developers.google.com/tag-platform/gtagjs/reference\n*/\n/**\n * @typedef GaOptions\n * @type {Object}\n * @property {boolean} [cookieUpdate=true]\n * @property {number} [cookieExpires=63072000] Default two years\n * @property {string} [cookieDomain=\"auto\"]\n * @property {string} [cookieFlags]\n * @property {string} [userId]\n * @property {string} [clientId]\n * @property {boolean} [anonymizeIp]\n * @property {string} [contentGroup1]\n * @property {string} [contentGroup2]\n * @property {string} [contentGroup3]\n * @property {string} [contentGroup4]\n * @property {string} [contentGroup5]\n * @property {boolean} [allowAdFeatures=true]\n * @property {boolean} [allowAdPersonalizationSignals]\n * @property {boolean} [nonInteraction]\n * @property {string} [page]\n */\n/**\n * @typedef UaEventOptions\n * @type {Object}\n * @property {string} action\n * @property {string} category\n * @property {string} [label]\n * @property {number} [value]\n * @property {boolean} [nonInteraction]\n * @property {('beacon'|'xhr'|'image')} [transport]\n */\n/**\n * @typedef InitOptions\n * @type {Object}\n * @property {string} trackingId\n * @property {GaOptions|any} [gaOptions]\n * @property {Object} [gtagOptions] New parameter\n */\nvar GA4 = /*#__PURE__*/function () {\n function GA4() {\n var _this = this;\n _classCallCheck(this, GA4);\n _defineProperty(this, \"reset\", function () {\n _this.isInitialized = false;\n _this._testMode = false;\n _this._currentMeasurementId;\n _this._hasLoadedGA = false;\n _this._isQueuing = false;\n _this._queueGtag = [];\n });\n _defineProperty(this, \"_gtag\", function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (!_this._testMode) {\n if (_this._isQueuing) {\n _this._queueGtag.push(args);\n } else {\n _gtag[\"default\"].apply(void 0, args);\n }\n } else {\n _this._queueGtag.push(args);\n }\n });\n _defineProperty(this, \"_loadGA\", function (GA_MEASUREMENT_ID, nonce) {\n var gtagUrl = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : \"https://www.googletagmanager.com/gtag/js\";\n if (typeof window === \"undefined\" || typeof document === \"undefined\") {\n return;\n }\n if (!_this._hasLoadedGA) {\n // Global Site Tag (gtag.js) - Google Analytics\n var script = document.createElement(\"script\");\n script.async = true;\n script.src = \"\".concat(gtagUrl, \"?id=\").concat(GA_MEASUREMENT_ID);\n if (nonce) {\n script.setAttribute(\"nonce\", nonce);\n }\n document.body.appendChild(script);\n window.dataLayer = window.dataLayer || [];\n window.gtag = function gtag() {\n window.dataLayer.push(arguments);\n };\n _this._hasLoadedGA = true;\n }\n });\n _defineProperty(this, \"_toGtagOptions\", function (gaOptions) {\n if (!gaOptions) {\n return;\n }\n var mapFields = {\n // Old https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#cookieUpdate\n // New https://developers.google.com/analytics/devguides/collection/gtagjs/cookies-user-id#cookie_update\n cookieUpdate: \"cookie_update\",\n cookieExpires: \"cookie_expires\",\n cookieDomain: \"cookie_domain\",\n cookieFlags: \"cookie_flags\",\n // must be in set method?\n userId: \"user_id\",\n clientId: \"client_id\",\n anonymizeIp: \"anonymize_ip\",\n // https://support.google.com/analytics/answer/2853546?hl=en#zippy=%2Cin-this-article\n contentGroup1: \"content_group1\",\n contentGroup2: \"content_group2\",\n contentGroup3: \"content_group3\",\n contentGroup4: \"content_group4\",\n contentGroup5: \"content_group5\",\n // https://support.google.com/analytics/answer/9050852?hl=en\n allowAdFeatures: \"allow_google_signals\",\n allowAdPersonalizationSignals: \"allow_ad_personalization_signals\",\n nonInteraction: \"non_interaction\",\n page: \"page_path\",\n hitCallback: \"event_callback\"\n };\n var gtagOptions = Object.entries(gaOptions).reduce(function (prev, _ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n key = _ref2[0],\n value = _ref2[1];\n if (mapFields[key]) {\n prev[mapFields[key]] = value;\n } else {\n prev[key] = value;\n }\n return prev;\n }, {});\n return gtagOptions;\n });\n _defineProperty(this, \"initialize\", function (GA_MEASUREMENT_ID) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (!GA_MEASUREMENT_ID) {\n throw new Error(\"Require GA_MEASUREMENT_ID\");\n }\n var initConfigs = typeof GA_MEASUREMENT_ID === \"string\" ? [{\n trackingId: GA_MEASUREMENT_ID\n }] : GA_MEASUREMENT_ID;\n _this._currentMeasurementId = initConfigs[0].trackingId;\n var gaOptions = options.gaOptions,\n gtagOptions = options.gtagOptions,\n nonce = options.nonce,\n _options$testMode = options.testMode,\n testMode = _options$testMode === void 0 ? false : _options$testMode,\n gtagUrl = options.gtagUrl;\n _this._testMode = testMode;\n if (!testMode) {\n _this._loadGA(_this._currentMeasurementId, nonce, gtagUrl);\n }\n if (!_this.isInitialized) {\n _this._gtag(\"js\", new Date());\n initConfigs.forEach(function (config) {\n var mergedGtagOptions = _objectSpread(_objectSpread(_objectSpread({}, _this._toGtagOptions(_objectSpread(_objectSpread({}, gaOptions), config.gaOptions))), gtagOptions), config.gtagOptions);\n if (Object.keys(mergedGtagOptions).length) {\n _this._gtag(\"config\", config.trackingId, mergedGtagOptions);\n } else {\n _this._gtag(\"config\", config.trackingId);\n }\n });\n }\n _this.isInitialized = true;\n if (!testMode) {\n var queues = _toConsumableArray(_this._queueGtag);\n _this._queueGtag = [];\n _this._isQueuing = false;\n while (queues.length) {\n var queue = queues.shift();\n _this._gtag.apply(_this, _toConsumableArray(queue));\n if (queue[0] === \"get\") {\n _this._isQueuing = true;\n }\n }\n }\n });\n _defineProperty(this, \"set\", function (fieldsObject) {\n if (!fieldsObject) {\n console.warn(\"`fieldsObject` is required in .set()\");\n return;\n }\n if (_typeof(fieldsObject) !== \"object\") {\n console.warn(\"Expected `fieldsObject` arg to be an Object\");\n return;\n }\n if (Object.keys(fieldsObject).length === 0) {\n console.warn(\"empty `fieldsObject` given to .set()\");\n }\n _this._gaCommand(\"set\", fieldsObject);\n });\n _defineProperty(this, \"_gaCommandSendEvent\", function (eventCategory, eventAction, eventLabel, eventValue, fieldsObject) {\n _this._gtag(\"event\", eventAction, _objectSpread(_objectSpread({\n event_category: eventCategory,\n event_label: eventLabel,\n value: eventValue\n }, fieldsObject && {\n non_interaction: fieldsObject.nonInteraction\n }), _this._toGtagOptions(fieldsObject)));\n });\n _defineProperty(this, \"_gaCommandSendEventParameters\", function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n if (typeof args[0] === \"string\") {\n _this._gaCommandSendEvent.apply(_this, _toConsumableArray(args.slice(1)));\n } else {\n var _args$ = args[0],\n eventCategory = _args$.eventCategory,\n eventAction = _args$.eventAction,\n eventLabel = _args$.eventLabel,\n eventValue = _args$.eventValue,\n hitType = _args$.hitType,\n rest = _objectWithoutProperties(_args$, _excluded);\n _this._gaCommandSendEvent(eventCategory, eventAction, eventLabel, eventValue, rest);\n }\n });\n _defineProperty(this, \"_gaCommandSendTiming\", function (timingCategory, timingVar, timingValue, timingLabel) {\n _this._gtag(\"event\", \"timing_complete\", {\n name: timingVar,\n value: timingValue,\n event_category: timingCategory,\n event_label: timingLabel\n });\n });\n _defineProperty(this, \"_gaCommandSendPageview\", function (page, fieldsObject) {\n if (fieldsObject && Object.keys(fieldsObject).length) {\n var _this$_toGtagOptions = _this._toGtagOptions(fieldsObject),\n title = _this$_toGtagOptions.title,\n location = _this$_toGtagOptions.location,\n rest = _objectWithoutProperties(_this$_toGtagOptions, _excluded2);\n _this._gtag(\"event\", \"page_view\", _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, page && {\n page_path: page\n }), title && {\n page_title: title\n }), location && {\n page_location: location\n }), rest));\n } else if (page) {\n _this._gtag(\"event\", \"page_view\", {\n page_path: page\n });\n } else {\n _this._gtag(\"event\", \"page_view\");\n }\n });\n _defineProperty(this, \"_gaCommandSendPageviewParameters\", function () {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n if (typeof args[0] === \"string\") {\n _this._gaCommandSendPageview.apply(_this, _toConsumableArray(args.slice(1)));\n } else {\n var _args$2 = args[0],\n page = _args$2.page,\n hitType = _args$2.hitType,\n rest = _objectWithoutProperties(_args$2, _excluded3);\n _this._gaCommandSendPageview(page, rest);\n }\n });\n _defineProperty(this, \"_gaCommandSend\", function () {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n var hitType = typeof args[0] === \"string\" ? args[0] : args[0].hitType;\n switch (hitType) {\n case \"event\":\n _this._gaCommandSendEventParameters.apply(_this, args);\n break;\n case \"pageview\":\n _this._gaCommandSendPageviewParameters.apply(_this, args);\n break;\n case \"timing\":\n _this._gaCommandSendTiming.apply(_this, _toConsumableArray(args.slice(1)));\n break;\n case \"screenview\":\n case \"transaction\":\n case \"item\":\n case \"social\":\n case \"exception\":\n console.warn(\"Unsupported send command: \".concat(hitType));\n break;\n default:\n console.warn(\"Send command doesn't exist: \".concat(hitType));\n }\n });\n _defineProperty(this, \"_gaCommandSet\", function () {\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n if (typeof args[0] === \"string\") {\n args[0] = _defineProperty({}, args[0], args[1]);\n }\n _this._gtag(\"set\", _this._toGtagOptions(args[0]));\n });\n _defineProperty(this, \"_gaCommand\", function (command) {\n for (var _len6 = arguments.length, args = new Array(_len6 > 1 ? _len6 - 1 : 0), _key6 = 1; _key6 < _len6; _key6++) {\n args[_key6 - 1] = arguments[_key6];\n }\n switch (command) {\n case \"send\":\n _this._gaCommandSend.apply(_this, args);\n break;\n case \"set\":\n _this._gaCommandSet.apply(_this, args);\n break;\n default:\n console.warn(\"Command doesn't exist: \".concat(command));\n }\n });\n _defineProperty(this, \"ga\", function () {\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n args[_key7] = arguments[_key7];\n }\n if (typeof args[0] === \"string\") {\n _this._gaCommand.apply(_this, args);\n } else {\n var readyCallback = args[0];\n _this._gtag(\"get\", _this._currentMeasurementId, \"client_id\", function (clientId) {\n _this._isQueuing = false;\n var queues = _this._queueGtag;\n readyCallback({\n get: function get(property) {\n return property === \"clientId\" ? clientId : property === \"trackingId\" ? _this._currentMeasurementId : property === \"apiVersion\" ? \"1\" : undefined;\n }\n });\n while (queues.length) {\n var queue = queues.shift();\n _this._gtag.apply(_this, _toConsumableArray(queue));\n }\n });\n _this._isQueuing = true;\n }\n return _this.ga;\n });\n _defineProperty(this, \"event\", function (optionsOrName, params) {\n if (typeof optionsOrName === \"string\") {\n _this._gtag(\"event\", optionsOrName, _this._toGtagOptions(params));\n } else {\n var action = optionsOrName.action,\n category = optionsOrName.category,\n label = optionsOrName.label,\n value = optionsOrName.value,\n nonInteraction = optionsOrName.nonInteraction,\n transport = optionsOrName.transport;\n if (!category || !action) {\n console.warn(\"args.category AND args.action are required in event()\");\n return;\n }\n\n // Required Fields\n var fieldObject = {\n hitType: \"event\",\n eventCategory: (0, _format[\"default\"])(category),\n eventAction: (0, _format[\"default\"])(action)\n };\n\n // Optional Fields\n if (label) {\n fieldObject.eventLabel = (0, _format[\"default\"])(label);\n }\n if (typeof value !== \"undefined\") {\n if (typeof value !== \"number\") {\n console.warn(\"Expected `args.value` arg to be a Number.\");\n } else {\n fieldObject.eventValue = value;\n }\n }\n if (typeof nonInteraction !== \"undefined\") {\n if (typeof nonInteraction !== \"boolean\") {\n console.warn(\"`args.nonInteraction` must be a boolean.\");\n } else {\n fieldObject.nonInteraction = nonInteraction;\n }\n }\n if (typeof transport !== \"undefined\") {\n if (typeof transport !== \"string\") {\n console.warn(\"`args.transport` must be a string.\");\n } else {\n if ([\"beacon\", \"xhr\", \"image\"].indexOf(transport) === -1) {\n console.warn(\"`args.transport` must be either one of these values: `beacon`, `xhr` or `image`\");\n }\n fieldObject.transport = transport;\n }\n }\n _this._gaCommand(\"send\", fieldObject);\n }\n });\n _defineProperty(this, \"send\", function (fieldObject) {\n _this._gaCommand(\"send\", fieldObject);\n });\n this.reset();\n }\n _createClass(GA4, [{\n key: \"gtag\",\n value: function gtag() {\n this._gtag.apply(this, arguments);\n }\n }]);\n return GA4;\n}();\nexports.GA4 = GA4;\nvar _default = new GA4();\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar gtag = function gtag() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (typeof window !== \"undefined\") {\n var _window;\n if (typeof window.gtag === \"undefined\") {\n window.dataLayer = window.dataLayer || [];\n window.gtag = function gtag() {\n window.dataLayer.push(arguments);\n };\n }\n (_window = window).gtag.apply(_window, args);\n }\n};\nvar _default = gtag;\nexports[\"default\"] = _default;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = exports.ReactGAImplementation = void 0;\nvar _ga = _interopRequireWildcard(require(\"./ga4\"));\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\nvar ReactGAImplementation = _ga.GA4;\nexports.ReactGAImplementation = ReactGAImplementation;\nvar _default = _ga[\"default\"];\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _reactRouterDom = require(\"react-router-dom\");\n\nvar _excluded = [\"children\", \"onClick\", \"replace\", \"to\", \"state\", \"activeClassName\", \"className\", \"activeStyle\", \"style\", \"isActive\"];\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nvar isModifiedEvent = function isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n};\n\nvar LinkContainer = function LinkContainer(_ref) {\n var children = _ref.children,\n onClick = _ref.onClick,\n replace = _ref.replace,\n to = _ref.to,\n state = _ref.state,\n activeClassName = _ref.activeClassName,\n className = _ref.className,\n activeStyle = _ref.activeStyle,\n style = _ref.style,\n getIsActive = _ref.isActive,\n props = _objectWithoutProperties(_ref, _excluded);\n\n var path = _typeof(to) === 'object' ? to.pathname || '' : to;\n var navigate = (0, _reactRouterDom.useNavigate)();\n var href = (0, _reactRouterDom.useHref)(typeof to === 'string' ? {\n pathname: to\n } : to);\n var match = (0, _reactRouterDom.useMatch)(path);\n var location = (0, _reactRouterDom.useLocation)();\n\n var child = _react[\"default\"].Children.only(children);\n\n var isActive = !!(getIsActive ? typeof getIsActive === 'function' ? getIsActive(match, location) : getIsActive : match);\n\n var handleClick = function handleClick(event) {\n if (children.props.onClick) {\n children.props.onClick(event);\n }\n\n if (onClick) {\n onClick(event);\n }\n\n if (!event.defaultPrevented && // onClick prevented default\n event.button === 0 && // ignore right clicks\n !isModifiedEvent(event) // ignore clicks with modifier keys\n ) {\n event.preventDefault();\n navigate(to, {\n replace: replace,\n state: state\n });\n }\n };\n\n return /*#__PURE__*/_react[\"default\"].cloneElement(child, _objectSpread(_objectSpread({}, props), {}, {\n className: [className, child.props.className, isActive ? activeClassName : null].join(' ').trim(),\n style: isActive ? _objectSpread(_objectSpread({}, style), activeStyle) : style,\n href: href,\n onClick: handleClick\n }));\n};\n\nLinkContainer.propTypes = {\n children: _propTypes[\"default\"].element.isRequired,\n onClick: _propTypes[\"default\"].func,\n replace: _propTypes[\"default\"].bool,\n to: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].string, _propTypes[\"default\"].object]).isRequired,\n state: _propTypes[\"default\"].object,\n className: _propTypes[\"default\"].string,\n activeClassName: _propTypes[\"default\"].string,\n style: _propTypes[\"default\"].objectOf(_propTypes[\"default\"].oneOfType([_propTypes[\"default\"].string, _propTypes[\"default\"].number])),\n activeStyle: _propTypes[\"default\"].objectOf(_propTypes[\"default\"].oneOfType([_propTypes[\"default\"].string, _propTypes[\"default\"].number])),\n isActive: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].func, _propTypes[\"default\"].bool])\n};\nLinkContainer.defaultProps = {\n replace: false,\n activeClassName: 'active',\n onClick: null,\n className: null,\n style: null,\n activeStyle: null,\n isActive: null\n};\nvar _default = LinkContainer;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"LinkContainer\", {\n enumerable: true,\n get: function get() {\n return _LinkContainer[\"default\"];\n }\n});\n\nvar _LinkContainer = _interopRequireDefault(require(\"./LinkContainer\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }","import type {\n FormEncType,\n HTMLFormMethod,\n RelativeRoutingType,\n} from \"@remix-run/router\";\nimport { stripBasename, UNSAFE_warning as warning } from \"@remix-run/router\";\n\nexport const defaultMethod: HTMLFormMethod = \"get\";\nconst defaultEncType: FormEncType = \"application/x-www-form-urlencoded\";\n\nexport function isHtmlElement(object: any): object is HTMLElement {\n return object != null && typeof object.tagName === \"string\";\n}\n\nexport function isButtonElement(object: any): object is HTMLButtonElement {\n return isHtmlElement(object) && object.tagName.toLowerCase() === \"button\";\n}\n\nexport function isFormElement(object: any): object is HTMLFormElement {\n return isHtmlElement(object) && object.tagName.toLowerCase() === \"form\";\n}\n\nexport function isInputElement(object: any): object is HTMLInputElement {\n return isHtmlElement(object) && object.tagName.toLowerCase() === \"input\";\n}\n\ntype LimitedMouseEvent = Pick<\n MouseEvent,\n \"button\" | \"metaKey\" | \"altKey\" | \"ctrlKey\" | \"shiftKey\"\n>;\n\nfunction isModifiedEvent(event: LimitedMouseEvent) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nexport function shouldProcessLinkClick(\n event: LimitedMouseEvent,\n target?: string\n) {\n return (\n event.button === 0 && // Ignore everything but left clicks\n (!target || target === \"_self\") && // Let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // Ignore clicks with modifier keys\n );\n}\n\nexport type ParamKeyValuePair = [string, string];\n\nexport type URLSearchParamsInit =\n | string\n | ParamKeyValuePair[]\n | Record\n | URLSearchParams;\n\n/**\n * Creates a URLSearchParams object using the given initializer.\n *\n * This is identical to `new URLSearchParams(init)` except it also\n * supports arrays as values in the object form of the initializer\n * instead of just strings. This is convenient when you need multiple\n * values for a given key, but don't want to use an array initializer.\n *\n * For example, instead of:\n *\n * let searchParams = new URLSearchParams([\n * ['sort', 'name'],\n * ['sort', 'price']\n * ]);\n *\n * you can do:\n *\n * let searchParams = createSearchParams({\n * sort: ['name', 'price']\n * });\n */\nexport function createSearchParams(\n init: URLSearchParamsInit = \"\"\n): URLSearchParams {\n return new URLSearchParams(\n typeof init === \"string\" ||\n Array.isArray(init) ||\n init instanceof URLSearchParams\n ? init\n : Object.keys(init).reduce((memo, key) => {\n let value = init[key];\n return memo.concat(\n Array.isArray(value) ? value.map((v) => [key, v]) : [[key, value]]\n );\n }, [] as ParamKeyValuePair[])\n );\n}\n\nexport function getSearchParamsForLocation(\n locationSearch: string,\n defaultSearchParams: URLSearchParams | null\n) {\n let searchParams = createSearchParams(locationSearch);\n\n if (defaultSearchParams) {\n // Use `defaultSearchParams.forEach(...)` here instead of iterating of\n // `defaultSearchParams.keys()` to work-around a bug in Firefox related to\n // web extensions. Relevant Bugzilla tickets:\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1414602\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1023984\n defaultSearchParams.forEach((_, key) => {\n if (!searchParams.has(key)) {\n defaultSearchParams.getAll(key).forEach((value) => {\n searchParams.append(key, value);\n });\n }\n });\n }\n\n return searchParams;\n}\n\n// Thanks https://github.com/sindresorhus/type-fest!\ntype JsonObject = { [Key in string]: JsonValue } & {\n [Key in string]?: JsonValue | undefined;\n};\ntype JsonArray = JsonValue[] | readonly JsonValue[];\ntype JsonPrimitive = string | number | boolean | null;\ntype JsonValue = JsonPrimitive | JsonObject | JsonArray;\n\nexport type SubmitTarget =\n | HTMLFormElement\n | HTMLButtonElement\n | HTMLInputElement\n | FormData\n | URLSearchParams\n | JsonValue\n | null;\n\n// One-time check for submitter support\nlet _formDataSupportsSubmitter: boolean | null = null;\n\nfunction isFormDataSubmitterSupported() {\n if (_formDataSupportsSubmitter === null) {\n try {\n new FormData(\n document.createElement(\"form\"),\n // @ts-expect-error if FormData supports the submitter parameter, this will throw\n 0\n );\n _formDataSupportsSubmitter = false;\n } catch (e) {\n _formDataSupportsSubmitter = true;\n }\n }\n return _formDataSupportsSubmitter;\n}\n\nexport interface SubmitOptions {\n /**\n * The HTTP method used to submit the form. Overrides ``.\n * Defaults to \"GET\".\n */\n method?: HTMLFormMethod;\n\n /**\n * The action URL path used to submit the form. Overrides ``.\n * Defaults to the path of the current route.\n */\n action?: string;\n\n /**\n * The encoding used to submit the form. Overrides ``.\n * Defaults to \"application/x-www-form-urlencoded\".\n */\n encType?: FormEncType;\n\n /**\n * Indicate a specific fetcherKey to use when using navigate=false\n */\n fetcherKey?: string;\n\n /**\n * navigate=false will use a fetcher instead of a navigation\n */\n navigate?: boolean;\n\n /**\n * Set `true` to replace the current entry in the browser's history stack\n * instead of creating a new one (i.e. stay on \"the same page\"). Defaults\n * to `false`.\n */\n replace?: boolean;\n\n /**\n * State object to add to the history stack entry for this navigation\n */\n state?: any;\n\n /**\n * Determines whether the form action is relative to the route hierarchy or\n * the pathname. Use this if you want to opt out of navigating the route\n * hierarchy and want to instead route based on /-delimited URL segments\n */\n relative?: RelativeRoutingType;\n\n /**\n * In browser-based environments, prevent resetting scroll after this\n * navigation when using the component\n */\n preventScrollReset?: boolean;\n\n /**\n * Enable flushSync for this navigation's state updates\n */\n unstable_flushSync?: boolean;\n\n /**\n * Enable view transitions on this submission navigation\n */\n unstable_viewTransition?: boolean;\n}\n\nconst supportedFormEncTypes: Set = new Set([\n \"application/x-www-form-urlencoded\",\n \"multipart/form-data\",\n \"text/plain\",\n]);\n\nfunction getFormEncType(encType: string | null) {\n if (encType != null && !supportedFormEncTypes.has(encType as FormEncType)) {\n warning(\n false,\n `\"${encType}\" is not a valid \\`encType\\` for \\`\\`/\\`\\` ` +\n `and will default to \"${defaultEncType}\"`\n );\n\n return null;\n }\n return encType;\n}\n\nexport function getFormSubmissionInfo(\n target: SubmitTarget,\n basename: string\n): {\n action: string | null;\n method: string;\n encType: string;\n formData: FormData | undefined;\n body: any;\n} {\n let method: string;\n let action: string | null;\n let encType: string;\n let formData: FormData | undefined;\n let body: any;\n\n if (isFormElement(target)) {\n // When grabbing the action from the element, it will have had the basename\n // prefixed to ensure non-JS scenarios work, so strip it since we'll\n // re-prefix in the router\n let attr = target.getAttribute(\"action\");\n action = attr ? stripBasename(attr, basename) : null;\n method = target.getAttribute(\"method\") || defaultMethod;\n encType = getFormEncType(target.getAttribute(\"enctype\")) || defaultEncType;\n\n formData = new FormData(target);\n } else if (\n isButtonElement(target) ||\n (isInputElement(target) &&\n (target.type === \"submit\" || target.type === \"image\"))\n ) {\n let form = target.form;\n\n if (form == null) {\n throw new Error(\n `Cannot submit a