@openmrs/esm-utils 6.3.1-pre.2965 → 6.3.1-pre.2997

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/.swcrc +16 -0
  2. package/.turbo/turbo-build.log +3 -17
  3. package/dist/age-helpers.d.ts +12 -0
  4. package/dist/age-helpers.js +86 -0
  5. package/dist/dates/date-util.d.ts +144 -0
  6. package/dist/dates/date-util.js +335 -0
  7. package/dist/dates/index.d.ts +1 -0
  8. package/dist/dates/index.js +1 -0
  9. package/dist/get-locale.d.ts +5 -0
  10. package/dist/get-locale.js +13 -0
  11. package/dist/index.d.ts +10 -0
  12. package/dist/index.js +10 -0
  13. package/dist/is-online.d.ts +1 -0
  14. package/dist/is-online.js +3 -0
  15. package/dist/patient-helpers.d.ts +42 -0
  16. package/dist/patient-helpers.js +78 -0
  17. package/dist/retry.d.ts +38 -0
  18. package/dist/retry.js +45 -0
  19. package/dist/shallowEqual.d.ts +12 -0
  20. package/dist/shallowEqual.js +36 -0
  21. package/dist/storage.d.ts +10 -0
  22. package/dist/storage.js +15 -0
  23. package/dist/test-helpers.d.ts +12 -0
  24. package/dist/test-helpers.js +27 -0
  25. package/dist/version.d.ts +1 -0
  26. package/dist/version.js +21 -0
  27. package/package.json +34 -22
  28. package/src/age-helpers.test.ts +1 -0
  29. package/src/age-helpers.ts +1 -1
  30. package/src/dates/date-util.test.ts +4 -3
  31. package/src/dates/date-util.ts +4 -4
  32. package/src/patient-helpers.test.ts +2 -1
  33. package/src/test-helpers.ts +10 -5
  34. package/src/version.test.ts +4 -0
  35. package/tsconfig.build.json +9 -0
  36. package/tsconfig.json +3 -23
  37. package/vitest.config.ts +8 -0
  38. package/dist/openmrs-esm-utils.js +0 -3
  39. package/dist/openmrs-esm-utils.js.LICENSE.txt +0 -7
  40. package/dist/openmrs-esm-utils.js.map +0 -1
  41. package/jest.config.js +0 -13
  42. package/webpack.config.js +0 -42
@@ -1 +0,0 @@
1
- {"version":3,"file":"openmrs-esm-utils.js","mappings":"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Ac5c,UAGlBif,EAAmBrC,cAAc9X,IAAI,IAAIrJ,QAC3C6F,GAAGiZ,EAAUja,MAAM0e,IAHzB,CAACA,EAAUzE,EAAUvS,YAMzB,CACHsS,GAA4B3E,EAAe4E,EAAUha,KAAK,IAC1Dga,EAAUha,KAAK,GAAGyH,WAE1B,CC7BO,SAASkX,GAAelU,EAAGzR,GAC9B,IAAI4lB,EAAqB5lB,EAAG4lB,mBAC5B,OAAOzL,GAAeyL,EAAoBnU,GACpCmU,EAAmBnU,GACnB,CACV,CJLA,GAAQmD,IAAI,CACRtT,SAAU,MKJP,IAAIukB,GAAkB,u8ECDlBC,GAAe,CACtB,KAAQ,CACJ,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEJ,KAAQ,CACJ,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEJ,KAAQ,CACJ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,QAAW,CACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,KAAQ,CACJ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,KAAQ,CACJ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,KAAQ,CACJ,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEJ,KAAQ,CACJ,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEJ,KAAQ,CACJ,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEJ,KAAQ,CACJ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,KAAQ,CACJ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,KAAQ,CACJ,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEJ,SAAY,CACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,KAAQ,CACJ,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEJ,KAAQ,CACJ,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEJ,KAAQ,CACJ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,KAAQ,CACJ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,QAAW,CACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,KAAQ,CACJ,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEJ,KAAQ,CACJ,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEJ,KAAQ,CACJ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,KAAQ,CACJ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,KAAQ,CACJ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,KAAQ,CACJ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,KAAQ,CACJ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,SAAY,CACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,KAAQ,CACJ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,KAAQ,CACJ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,KAAQ,CACJ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,SAAY,CACR,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEJ,QAAW,CACP,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEJ,SAAY,CACR,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEJ,SAAY,CACR,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEJ,SAAY,CACR,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEJ,KAAQ,CACJ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,KAAQ,CACJ,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEJ,KAAQ,CACJ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,KAAQ,CACJ,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEJ,KAAQ,CACJ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,KAAQ,CACJ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,SAAY,CACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,SAAY,CACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,KAAQ,CACJ,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEJ,KAAQ,CACJ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,KAAQ,CACJ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,KAAQ,CACJ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,KAAQ,CACJ,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEJ,KAAQ,CACJ,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEJ,KAAQ,CACJ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,QAAW,CACP,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEJ,KAAQ,CACJ,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEJ,KAAQ,CACJ,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEJ,KAAQ,CACJ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ,KAAQ,CACJ,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEJ,KAAQ,CACJ,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S,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,UAAW,CACP,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,GAAM,CACF,GAAM,CACF,SAGR,GAAM,CACF,GAAM,CACF,SAGR,SAAU,CACN,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,GAAM,CACF,GAAM,CACF,SAGR,GAAM,CACF,GAAM,CACF,SAGR,IAAO,CACH,GAAM,CACF,SAGR,GAAM,CACF,GAAM,CACF,YAGR,QAAS,CACL,GAAM,CACF,YAGR,GAAM,CACF,GAAM,CACF,SAGR,UAAW,CACP,GAAM,CACF,SAGR,aAAc,CACV,GAAM,CACF,SAGR,aAAc,CACV,GAAM,CACF,SAGR,aAAc,CACV,GAAM,CACF,SAGR,aAAc,CACV,GAAM,CACF,SAGR,aAAc,CACV,GAAM,CACF,SAGR,aAAc,CACV,GAAM,CACF,SAGR,aAAc,CACV,GAAM,CACF,SAGR,aAAc,CACV,GAAM,CACF,SAGR,aAAc,CACV,GAAM,CACF,SAGR,aAAc,CACV,GAAM,CACF,SAGR,aAAc,CACV,GAAM,CACF,SAGR,UAAW,CACP,GAAM,CACF,SAGR,aAAc,CACV,GAAM,CACF,SAGR,aAAc,CACV,GAAM,CACF,SAGR,aAAc,CACV,GAAM,CACF,SAGR,aAAc,CACV,GAAM,CACF,SAGR,aAAc,CACV,GAAM,CACF,SAGR,aAAc,CACV,GAAM,CACF,SAGR,aAAc,CACV,GAAM,CACF,SAGR,aAAc,CACV,GAAM,CACF,SAGR,aAAc,CACV,GAAM,CACF,SAGR,aAAc,CACV,GAAM,CACF,SAGR,aAAc,CACV,GAAM,CACF,SAGR,GAAM,CACF,GAAM,CACF,QAEJ,UAAa,CACT,KAAQ,MAGhB,IAAO,CACH,GAAM,CACF,SAGR,GAAM,CACF,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,GAAM,CACF,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,IAAO,CACH,GAAM,CACF,SAGR,IAAO,CACH,GAAM,CACF,SAGR,GAAM,CACF,GAAM,CACF,SAGR,GAAM,CACF,GAAM,CACF,SAGR,QAAS,CACL,GAAM,CACF,SAGR,IAAO,CACH,GAAM,CACF,SAGR,GAAM,CACF,GAAM,CACF,SAGR,IAAO,CACH,GAAM,CACF,SAGR,SAAU,CACN,GAAM,CACF,SAGR,GAAM,CACF,GAAM,CACF,SAGR,GAAM,CACF,GAAM,CACF,SAGR,IAAO,CACH,GAAM,CACF,SAGR,SAAU,CA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KACXM,QAAS,SAGjB,CACIW,GAAI,CACAlB,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIW,GAAI,CACAlB,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIW,GAAI,CACAlB,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIW,GAAI,CACAlB,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIW,GAAI,CACAlB,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIW,GAAI,CACAlB,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIW,GAAI,CACAlB,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIW,GAAI,CACAlB,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIW,GAAI,CACAlB,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIW,GAAI,CACAlB,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIW,GAAI,CACAlB,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIW,GAAI,CACAlB,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIW,GAAI,CACAlB,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIW,GAAI,CACAlB,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIW,GAAI,CACAlB,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIW,GAAI,CACAlB,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIW,GAAI,CACAlB,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIW,GAAI,CACAlB,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIW,GAAI,CACAlB,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIW,GAAI,CACAlB,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIW,GAAI,CACAlB,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIW,GAAI,CACAlB,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIW,GAAI,CACAlB,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIW,GAAI,CACAlB,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIW,GAAI,CACAlB,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIiB,GAAI,CACAxB,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIkB,GAAI,CACAzB,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACImB,GAAI,CACA1B,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACImB,GAAI,CACA1B,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACImB,GAAI,CACA1B,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACImB,GAAI,CACA1B,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACImB,GAAI,CACA1B,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACImB,GAAI,CACA1B,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACImB,GAAI,CACA1B,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACImB,GAAI,CACA1B,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIoB,GAAI,CACA3B,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIoB,GAAI,CACA3B,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIoB,GAAI,CACA3B,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIoB,GAAI,CACA3B,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIqB,GAAI,CACA5B,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIsB,IAAK,CACD7B,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIsB,IAAK,CACD7B,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIsB,IAAK,CACD7B,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIsB,IAAK,CACD7B,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIsB,IAAK,CACD7B,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIsB,IAAK,CACD7B,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIsB,IAAK,CACD7B,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIsB,IAAK,CACD7B,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIuB,IAAK,CACD9B,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIwB,IAAK,CACD/B,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIyB,IAAK,CACDhC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIyB,IAAK,CACDhC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIyB,IAAK,CACDhC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIyB,IAAK,CACDhC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIyB,IAAK,CACDhC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIyB,IAAK,CACDhC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIyB,IAAK,CACDhC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIyB,IAAK,CACDhC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIyB,IAAK,CACDhC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIyB,IAAK,CACDhC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIyB,IAAK,CACDhC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIyB,IAAK,CACDhC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIyB,IAAK,CACDhC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACI0B,GAAI,CACAjC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACI2B,GAAI,CACAlC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACI2B,GAAI,CACAlC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACI2B,GAAI,CACAlC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACI2B,GAAI,CACAlC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACI2B,GAAI,CACAlC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACI2B,GAAI,CACAlC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACI2B,GAAI,CACAlC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACI2B,GAAI,CACAlC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACI2B,GAAI,CACAlC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACI2B,GAAI,CACAlC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACI2B,GAAI,CACAlC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACI4B,GAAI,CACAnC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACI6B,GAAI,CACApC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACI6B,GAAI,CACApC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACI6B,GAAI,CACApC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACI6B,GAAI,CACApC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACI6B,GAAI,CACApC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACI6B,GAAI,CACApC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACI6B,GAAI,CACApC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACI6B,GAAI,CACApC,SAAU,KACVC,UAAW,KACXM,QAAS,SAGjB,CACI6B,GAAI,CACApC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACI6B,GAAI,CACApC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACI6B,GAAI,CACApC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACI6B,GAAI,CACApC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACI6B,GAAI,CACApC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACI6B,GAAI,CACApC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACI6B,GAAI,CACApC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACI6B,GAAI,CACApC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACI6B,GAAI,CACApC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACI6B,GAAI,CACApC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACI6B,GAAI,CACApC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACI6B,GAAI,CACApC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACI6B,GAAI,CACApC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACI6B,GAAI,CACApC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACI6B,GAAI,CACApC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACI6B,GAAI,CACApC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACI6B,GAAI,CACApC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACI6B,GAAI,CACApC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACI6B,GAAI,CACApC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACI6B,GAAI,CACApC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACI6B,GAAI,CACApC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACI6B,GAAI,CACApC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACI6B,GAAI,CACApC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACI6B,GAAI,CACApC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACI6B,GAAI,CACApC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACI6B,GAAI,CACApC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACI6B,GAAI,CACApC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACI8B,GAAI,CACArC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACI+B,GAAI,CACAtC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACI+B,GAAI,CACAtC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACI+B,GAAI,CACAtC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIgC,GAAI,CACAvC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIpiB,GAAI,CACA6hB,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIpiB,GAAI,CACA6hB,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIiC,GAAI,CACAxC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIiC,GAAI,CACAxC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIiC,GAAI,CACAxC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIiC,GAAI,CACAxC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIiC,GAAI,CACAxC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIiC,GAAI,CACAxC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIiC,GAAI,CACAxC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIiC,GAAI,CACAxC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIiC,GAAI,CACAxC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIiC,GAAI,CACAxC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIiC,GAAI,CACAxC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIiC,GAAI,CACAxC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIiC,GAAI,CACAxC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIiC,GAAI,CACAxC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIiC,GAAI,CACAxC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIiC,GAAI,CACAxC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIiC,GAAI,CACAxC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIiC,GAAI,CACAxC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIiC,GAAI,CACAxC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIiC,GAAI,CACAxC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIiC,GAAI,CACAxC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIiC,GAAI,CACAxC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIiC,GAAI,CACAxC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIiC,GAAI,CACAxC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIiC,GAAI,CACAxC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIiC,GAAI,CACAxC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIiC,GAAI,CACAxC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIiC,GAAI,CACAxC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIiC,GAAI,CACAxC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIiC,GAAI,CACAxC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIiC,GAAI,CACAxC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIiC,GAAI,CACAxC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIiC,GAAI,CACAxC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIiC,GAAI,CACAxC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIiC,GAAI,CACAxC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIiC,GAAI,CACAxC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIiC,GAAI,CACAxC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIiC,GAAI,CACAxC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIiC,GAAI,CACAxC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIiC,GAAI,CACAxC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIiC,GAAI,CACAxC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIiC,GAAI,CACAxC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIkC,GAAI,CACAzC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIkC,GAAI,CACAzC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIkC,GAAI,CACAzC,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACImC,GAAI,CACA1C,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACImC,GAAI,CACA1C,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACImC,GAAI,CACA1C,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIoC,IAAK,CACD3C,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIqC,GAAI,CACA5C,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIsC,GAAI,CACA7C,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIQ,GAAI,CACAf,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIQ,GAAI,CACAf,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIQ,GAAI,CACAf,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIQ,GAAI,CACAf,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIQ,GAAI,CACAf,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIQ,GAAI,CACAf,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIQ,GAAI,CACAf,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIQ,GAAI,CACAf,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIQ,GAAI,CACAf,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIQ,GAAI,CACAf,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIQ,GAAI,CACAf,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIQ,GAAI,CACAf,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACIQ,GAAI,CACAf,SAAU,MACVC,UAAW,KACXM,QAAS,SAGjB,CACI,IAAK,CACDP,SAAU,IACVC,UAAW,OAGnB,CACI,UAAW,CACPD,SAAU,UACVC,UAAW,KACXM,QAAS,SAGjB,CACI,UAAW,CACPP,SAAU,UACVC,UAAW,KACXM,QAAS,SAGjB,CACI,UAAW,CACPP,SAAU,UACVC,UAAW,KACXM,QAAS,SAGjB,CACI,UAAW,CACPP,SAAU,UACVC,UAAW,KACXM,QAAS,SAGjB,CACI,UAAW,CACPP,SAAU,UACVC,UAAW,KACXM,QAAS,SAGjB,CACI,UAAW,CACPP,SAAU,UACVC,UAAW,KACXM,QAAS,SAGjB,CACI,UAAW,CACPP,SAAU,UACVC,UAAW,KACXM,QAAS,SAGjB,CACI,UAAW,CACPP,SAAU,UACVC,UAAW,KACXM,QAAS,SAGjB,CACI,UAAW,CACPP,SAAU,UACVC,UAAW,KACXM,QAAS,SAGjB,CACI,UAAW,CACPP,SAAU,UACVC,UAAW,KACXM,QAAS,SAGjB,CACI,UAAW,CACPP,SAAU,UACVC,UAAW,KACXM,QAAS,SAGjB,CACI,UAAW,CACPP,SAAU,UACVC,UAAW,KACXM,QAAS,SAGjB,CACI,UAAW,CACPP,SAAU,UACVC,UAAW,KACXM,QAAS,SAGjB,CACI,UAAW,CACPP,SAAU,UACVC,UAAW,KACXM,QAAS,SAGjB,CACI,UAAW,CACPP,SAAU,UACVC,UAAW,KACXM,QAAS,SAGjB,CACI,UAAW,CACPP,SAAU,UACVC,UAAW,KACXM,QAAS,SAGjB,CACI,UAAW,CACPP,SAAU,UACVC,UAAW,KACXM,QAAS,SAGjB,CACI,UAAW,CACPP,SAAU,UACVC,UAAW,KACXM,QAAS,SAGjB,CACI,UAAW,CACPP,SAAU,UACVC,UAAW,KACXM,QAAS,SAGjB,CACI,UAAW,CACPP,SAAU,UACVC,UAAW,KACXM,QAAS,SAGjB,CACI,UAAW,CACPP,SAAU,UACVC,UAAW,KACXM,QAAS,SAGjB,CACI,UAAW,CACPP,SAAU,UACVC,UAAW,KACXM,QAAS,SAGjB,CACI,UAAW,CACPP,SAAU,UACVC,UAAW,KACXM,QAAS,SAGjB,CACI,UAAW,CACPP,SAAU,UACVC,UAAW,KACXM,QAAS,SAGjB,CACI,UAAW,CACPP,SAAU,UACVC,UAAW,MAGnB,CACI,UAAW,CACPD,SAAU,UACVC,UAAW,KACXM,QAAS,SAGjB,CACI,UAAW,CACPP,SAAU,UACVC,UAAW,KACXM,QAAS,SAGjB,CACI,UAAW,CACPP,SAAU,UACVC,UAAW,KACXM,QAAS,SAGjB,CACI,UAAW,CACPP,SAAU,UACVC,UAAW,KACXM,QAAS,SAGjB,CACI,UAAW,CACPP,SAAU,UACVC,UAAW,KACXM,QAAS,SAGjB,CACI,UAAW,CACPP,SAAU,UACVC,UAAW,KACXM,QAAS,SAGjB,CACI,UAAW,CACPP,SAAU,UACVC,UAAW,KACXM,QAAS,SAGjB,CACI,UAAW,CACPP,SAAU,UACVC,UAAW,KACXM,QAAS,SAGjB,CACI,UAAW,CACPP,SAAU,UACVC,UAAW,KACXM,QAAS,SAGjB,CACI,UAAW,CACPP,SAAU,UACVC,UAAW,KACXM,QAAS,SAGjB,CACI,UAAW,CACPP,SAAU,UACVC,UAAW,KACXM,QAAS,SAGjB,CACI,UAAW,CACPP,SAAU,UACVC,UAAW,KACXM,QAAS,SAGjB,CACI,UAAW,CACPP,SAAU,UACVC,UAAW,KACXM,QAAS,SAGjB,CACI,UAAW,CACPP,SAAU,UACVC,UAAW,IACXM,QAAS,SAGjB,CACI,UAAW,CACPP,SAAU,UACVC,UAAW,IACXM,QAAS,SAGjB,CACI,UAAW,CACPP,SAAU,UACVC,UAAW,IACXM,QAAS,SAGjB,CACI,UAAW,CACPP,SAAU,UACVC,UAAW,IACXM,QAAS,SAGjB,CACI,UAAW,CACPP,SAAU,UACVC,UAAW,IACXM,QAAS,SAGjB,CACI,UAAW,CACPP,SAAU,UACVC,UAAW,IACXM,QAAS,SAGjB,CACI,UAAW,CACPP,SAAU,UACVC,UAAW,IACXM,QAAS,SAGjB,CACI,UAAW,CACPP,SAAU,UACVC,UAAW,IACXM,QAAS,SAGjB,CACI,UAAW,CACPP,SAAU,UACVC,UAAW,IACXM,QAAS,SAGjB,CACI,UAAW,CACPP,SAAU,UACVC,UAAW,IACXM,QAAS,SAGjB,CACI,UAAW,CACPP,SAAU,UACVC,UAAW,IACXM,QAAS,SAGjB,CACI,MAAO,CACHP,SAAU,MACVC,UAAW,OAGnB,CACI,gBAAiB,CACbD,SAAU,gBACVC,UAAW,MAGnB,CACI,iBAAkB,CACdD,SAAU,iBACVC,UAAW,MAGnB,CACI,SAAU,CACND,SAAU,SACVC,UAAW,MAGnB,CACI,aAAc,CACVD,SAAU,aACVC,UAAW,MAGnB,CACI,UAAW,CACPD,SAAU,cACVC,UAAW,MAGnB,CACI,cAAe,CACXD,SAAU,cACVC,UAAW,MAGnB,CACI,SAAU,CACND,SAAU,SACVC,UAAW,MAGnB,CACI,iBAAkB,CACdD,SAAU,iBACVC,UAAW,MAGnB,CACI,kBAAmB,CACfD,SAAU,kBACVC,UAAW,MAGnB,CACI,SAAU,CACND,SAAU,SACVC,UAAW,MAGnB,CACI,iBAAkB,CACdD,SAAU,iBACVC,UAAW,MAGnB,CACI,kBAAmB,CACfD,SAAU,kBACVC,UAAW,MAGnB,CACI,SAAU,CACND,SAAU,SACVC,UAAW,MAGnB,CACI,iBAAkB,CACdD,SAAU,iBACVC,UAAW,MAGnB,CACI,kBAAmB,CACfD,SAAU,kBACVC,UAAW,MAGnB,CACI,YAAa,CACTD,SAAU,YACVC,UAAW,MAGnB,CACI,QAAS,CACLD,SAAU,QACVC,UAAW,UCpjFxB6C,EAAU,CACjB,MAAO,CACH,MACA,sBACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEJ,MAAO,CACH,MACA,sBACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEJ,MAAO,CACH,MACA,MACA,MACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEJ,MAAO,CACH,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEJ,MAAO,CACH,MACA,MACA,MACA,MACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEJ,MAAO,CACH,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEJ,MAAO,CACH,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEJ,MAAO,CACH,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEJ,MAAO,CACH,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEJ,MAAO,CACH,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEJ,MAAO,CACH,MACA,KACA,KACA,KACA,KACA,MAEJ,MAAO,CACH,MACA,MACA,MACA,MACA,sBACA,MACA,MACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEJ,MAAO,CACH,MACA,KACA,KACA,KACA,KACA,MAEJ,MAAO,CACH,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEJ,MAAO,CACH,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEJ,MAAO,CACH,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEJ,MAAO,CACH,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEJ,MAAO,CACH,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEJ,MAAO,CACH,MACA,KACA,KACA,KACA,KACA,KACA,MAEJ,MAAO,CACH,MACA,KACA,KACA,KACA,KACA,MAEJ,MAAO,CACH,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEJ,MAAO,CACH,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEJ,IAAO,CACH,MACA,MACA,MACA,MACA,MACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEJ,IAAO,CACH,MACA,KACA,KACA,KACA,KACA,MAEJ,IAAO,CACH,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEJ,IAAO,CACH,MACA,MACA,MACA,MACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEJ,IAAO,CACH,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEJ,IAAO,CACH,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEJ,IAAO,CACH,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEJ,IAAO,CACH,MACA,MACA,MACA,MACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEJ,IAAO,CACH,MACA,MACA,MACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEJ,GAAM,CACF,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEJ,GAAM,CACF,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEJ,GAAM,CACF,KACA,KACA,KACA,KACA,KACA,MAEJ,GAAM,CACF,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KA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","sources":["webpack://@openmrs/esm-utils/../../../node_modules/@formatjs/intl-durationformat/index.js","webpack://@openmrs/esm-utils/../../../node_modules/@formatjs/intl-durationformat/node_modules/@formatjs/ecma402-abstract/lib/CanonicalizeLocaleList.js","webpack://@openmrs/esm-utils/../../../node_modules/@formatjs/intl-durationformat/node_modules/@formatjs/ecma402-abstract/lib/CanonicalizeTimeZoneName.js","webpack://@openmrs/esm-utils/../../../node_modules/decimal.js/decimal.mjs","webpack://@openmrs/esm-utils/../../../node_modules/@formatjs/intl-durationformat/node_modules/@formatjs/ecma402-abstract/lib/constants.js","webpack://@openmrs/esm-utils/../../../node_modules/@formatjs/fast-memoize/lib/index.js","webpack://@openmrs/esm-utils/../../../node_modules/@formatjs/intl-durationformat/node_modules/@formatjs/ecma402-abstract/lib/utils.js","webpack://@openmrs/esm-utils/../../../node_modules/@formatjs/intl-durationformat/node_modules/@formatjs/ecma402-abstract/lib/262.js","webpack://@openmrs/esm-utils/../../../node_modules/@formatjs/intl-durationformat/node_modules/@formatjs/ecma402-abstract/lib/CoerceOptionsToObject.js","webpack://@openmrs/esm-utils/../../../node_modules/@formatjs/intl-durationformat/node_modules/@formatjs/ecma402-abstract/lib/DefaultNumberOption.js","webpack://@openmrs/esm-utils/../../../node_modules/@formatjs/intl-durationformat/node_modules/@formatjs/ecma402-abstract/lib/GetNumberOption.js","webpack://@openmrs/esm-utils/../../../node_modules/@formatjs/intl-durationformat/node_modules/@formatjs/ecma402-abstract/lib/GetOption.js","webpack://@openmrs/esm-utils/../../../node_modules/@formatjs/intl-durationformat/node_modules/@formatjs/ecma402-abstract/lib/GetOptionsObject.js","webpack://@openmrs/esm-utils/../../../node_modules/@formatjs/intl-durationformat/node_modules/@formatjs/ecma402-abstract/lib/GetStringOrBooleanOption.js","webpack://@openmrs/esm-utils/../../../node_modules/@formatjs/intl-durationformat/node_modules/@formatjs/ecma402-abstract/lib/IsSanctionedSimpleUnitIdentifier.js","webpack://@openmrs/esm-utils/../../../node_modules/@formatjs/intl-durationformat/node_modules/@formatjs/ecma402-abstract/lib/IsValidTimeZoneName.js","webpack://@openmrs/esm-utils/../../../node_modules/@formatjs/intl-durationformat/node_modules/@formatjs/ecma402-abstract/lib/IsWellFormedCurrencyCode.js","webpack://@openmrs/esm-utils/../../../node_modules/@formatjs/intl-durationformat/node_modules/@formatjs/ecma402-abstract/lib/IsWellFormedUnitIdentifier.js","webpack://@openmrs/esm-utils/../../../node_modules/@formatjs/intl-durationformat/node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/ApplyUnsignedRoundingMode.js","webpack://@openmrs/esm-utils/../../../node_modules/@formatjs/intl-durationformat/node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/CollapseNumberRange.js","webpack://@openmrs/esm-utils/../../../node_modules/@formatjs/intl-durationformat/node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/ComputeExponentForMagnitude.js","webpack://@openmrs/esm-utils/../../../node_modules/@formatjs/intl-durationformat/node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/GetUnsignedRoundingMode.js","webpack://@openmrs/esm-utils/../../../node_modules/@formatjs/intl-durationformat/node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/ToRawFixed.js","webpack://@openmrs/esm-utils/../../../node_modules/@formatjs/intl-durationformat/node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/ToRawPrecision.js","webpack://@openmrs/esm-utils/../../../node_modules/@formatjs/intl-durationformat/node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/FormatNumericToString.js","webpack://@openmrs/esm-utils/../../../node_modules/@formatjs/intl-durationformat/node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/ComputeExponent.js","webpack://@openmrs/esm-utils/../../../node_modules/@formatjs/intl-durationformat/node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/CurrencyDigits.js","webpack://@openmrs/esm-utils/../../../node_modules/@formatjs/intl-durationformat/node_modules/@formatjs/ecma402-abstract/lib/regex.generated.js","webpack://@openmrs/esm-utils/../../../node_modules/@formatjs/intl-durationformat/node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/digit-mapping.generated.js","webpack://@openmrs/esm-utils/../../../node_modules/@formatjs/intl-durationformat/node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/format_to_parts.js","webpack://@openmrs/esm-utils/../../../node_modules/@formatjs/intl-durationformat/node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/FormatApproximately.js","webpack://@openmrs/esm-utils/../../../node_modules/@formatjs/intl-durationformat/node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/PartitionNumberPattern.js","webpack://@openmrs/esm-utils/../../../node_modules/@formatjs/intl-durationformat/node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/FormatNumeric.js","webpack://@openmrs/esm-utils/../../../node_modules/@formatjs/intl-durationformat/node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/PartitionNumberRangePattern.js","webpack://@openmrs/esm-utils/../../../node_modules/@formatjs/intl-durationformat/node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/FormatNumericRange.js","webpack://@openmrs/esm-utils/../../../node_modules/@formatjs/intl-durationformat/node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/FormatNumericRangeToParts.js","webpack://@openmrs/esm-utils/../../../node_modules/@formatjs/intl-durationformat/node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/FormatNumericToParts.js","webpack://@openmrs/esm-utils/../../../node_modules/@formatjs/intl-durationformat/node_modules/@formatjs/ecma402-abstract/lib/types/date-time.js","webpack://@openmrs/esm-utils/../../../node_modules/@formatjs/intl-durationformat/node_modules/@formatjs/ecma402-abstract/lib/data.js","webpack://@openmrs/esm-utils/../../../node_modules/@formatjs/intl-durationformat/node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/SetNumberFormatDigitOptions.js","webpack://@openmrs/esm-utils/../../../node_modules/@formatjs/intl-durationformat/node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/SetNumberFormatUnitOptions.js","webpack://@openmrs/esm-utils/../../../node_modules/@formatjs/intl-durationformat/node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/InitializeNumberFormat.js","webpack://@openmrs/esm-utils/../../../node_modules/@formatjs/intl-durationformat/node_modules/@formatjs/ecma402-abstract/lib/PartitionPattern.js","webpack://@openmrs/esm-utils/../../../node_modules/@formatjs/intl-durationformat/node_modules/@formatjs/ecma402-abstract/lib/SupportedLocales.js","webpack://@openmrs/esm-utils/../../../node_modules/@formatjs/intl-durationformat/node_modules/@formatjs/ecma402-abstract/lib/ToIntlMathematicalValue.js","webpack://@openmrs/esm-utils/../../../node_modules/@formatjs/intl-durationformat/src/abstract/DurationRecordSign.js","webpack://@openmrs/esm-utils/../../../node_modules/@formatjs/intl-durationformat/src/abstract/GetDurationUnitOptions.js","webpack://@openmrs/esm-utils/../../../node_modules/@formatjs/intl-durationformat/src/abstract/IsValidDurationRecord.js","webpack://@openmrs/esm-utils/../../../node_modules/@formatjs/intl-durationformat/src/abstract/PartitionDurationFormatPattern.js","webpack://@openmrs/esm-utils/../../../node_modules/@formatjs/intl-durationformat/src/abstract/ToDurationRecord.js","webpack://@openmrs/esm-utils/../../../node_modules/@formatjs/intl-durationformat/src/abstract/ToIntegerIfIntegral.js","webpack://@openmrs/esm-utils/../../../node_modules/@formatjs/intl-durationformat/src/constants.js","webpack://@openmrs/esm-utils/../../../node_modules/@formatjs/intl-durationformat/src/core.js","webpack://@openmrs/esm-utils/../../../node_modules/@formatjs/intl-durationformat/src/get_internal_slots.js","webpack://@openmrs/esm-utils/../../../node_modules/@formatjs/intl-durationformat/src/numbering-systems.generated.js","webpack://@openmrs/esm-utils/../../../node_modules/@formatjs/intl-durationformat/src/time-separators.generated.js","webpack://@openmrs/esm-utils/../../../node_modules/@formatjs/intl-localematcher/lib/abstract/languageMatching.js","webpack://@openmrs/esm-utils/../../../node_modules/@formatjs/intl-localematcher/lib/abstract/regions.generated.js","webpack://@openmrs/esm-utils/../../../node_modules/@formatjs/intl-localematcher/lib/abstract/utils.js","webpack://@openmrs/esm-utils/../../../node_modules/@formatjs/intl-localematcher/lib/abstract/BestFitMatcher.js","webpack://@openmrs/esm-utils/../../../node_modules/@formatjs/intl-localematcher/lib/abstract/CanonicalizeUnicodeLocaleId.js","webpack://@openmrs/esm-utils/../../../node_modules/@formatjs/intl-localematcher/lib/abstract/BestAvailableLocale.js","webpack://@openmrs/esm-utils/../../../node_modules/@formatjs/intl-localematcher/lib/abstract/ResolveLocale.js","webpack://@openmrs/esm-utils/../../../node_modules/@formatjs/intl-localematcher/lib/abstract/LookupMatcher.js","webpack://@openmrs/esm-utils/../../../node_modules/@formatjs/intl-localematcher/lib/abstract/UnicodeExtensionComponents.js","webpack://@openmrs/esm-utils/../../../node_modules/@formatjs/intl-localematcher/lib/abstract/CanonicalizeUValue.js","webpack://@openmrs/esm-utils/../../../node_modules/@formatjs/intl-localematcher/lib/abstract/InsertUnicodeExtensionAndCanonicalize.js","webpack://@openmrs/esm-utils/../../../node_modules/@formatjs/intl-localematcher/lib/abstract/LookupSupportedLocales.js","webpack://@openmrs/esm-utils/../../../node_modules/@formatjs/intl-localematcher/lib/index.js","webpack://@openmrs/esm-utils/../../../node_modules/@formatjs/intl-localematcher/lib/abstract/CanonicalizeLocaleList.js","webpack://@openmrs/esm-utils/../../../node_modules/dayjs/plugin/isToday.js","webpack://@openmrs/esm-utils/../../../node_modules/dayjs/plugin/objectSupport.js","webpack://@openmrs/esm-utils/../../../node_modules/dayjs/plugin/utc.js","webpack://@openmrs/esm-utils/./node_modules/semver/classes/comparator.js","webpack://@openmrs/esm-utils/./node_modules/semver/classes/range.js","webpack://@openmrs/esm-utils/./node_modules/semver/classes/semver.js","webpack://@openmrs/esm-utils/./node_modules/semver/functions/clean.js","webpack://@openmrs/esm-utils/./node_modules/semver/functions/cmp.js","webpack://@openmrs/esm-utils/./node_modules/semver/functions/coerce.js","webpack://@openmrs/esm-utils/./node_modules/semver/functions/compare-build.js","webpack://@openmrs/esm-utils/./node_modules/semver/functions/compare-loose.js","webpack://@openmrs/esm-utils/./node_modules/semver/functions/compare.js","webpack://@openmrs/esm-utils/./node_modules/semver/functions/diff.js","webpack://@openmrs/esm-utils/./node_modules/semver/functions/eq.js","webpack://@openmrs/esm-utils/./node_modules/semver/functions/gt.js","webpack://@openmrs/esm-utils/./node_modules/semver/functions/gte.js","webpack://@openmrs/esm-utils/./node_modules/semver/functions/inc.js","webpack://@openmrs/esm-utils/./node_modules/semver/functions/lt.js","webpack://@openmrs/esm-utils/./node_modules/semver/functions/lte.js","webpack://@openmrs/esm-utils/./node_modules/semver/functions/major.js","webpack://@openmrs/esm-utils/./node_modules/semver/functions/minor.js","webpack://@openmrs/esm-utils/./node_modules/semver/functions/neq.js","webpack://@openmrs/esm-utils/./node_modules/semver/functions/parse.js","webpack://@openmrs/esm-utils/./node_modules/semver/functions/patch.js","webpack://@openmrs/esm-utils/./node_modules/semver/functions/prerelease.js","webpack://@openmrs/esm-utils/./node_modules/semver/functions/rcompare.js","webpack://@openmrs/esm-utils/./node_modules/semver/functions/rsort.js","webpack://@openmrs/esm-utils/./node_modules/semver/functions/satisfies.js","webpack://@openmrs/esm-utils/./node_modules/semver/functions/sort.js","webpack://@openmrs/esm-utils/./node_modules/semver/functions/valid.js","webpack://@openmrs/esm-utils/./node_modules/semver/index.js","webpack://@openmrs/esm-utils/./node_modules/semver/internal/constants.js","webpack://@openmrs/esm-utils/./node_modules/semver/internal/debug.js","webpack://@openmrs/esm-utils/./node_modules/semver/internal/identifiers.js","webpack://@openmrs/esm-utils/./node_modules/semver/internal/re.js","webpack://@openmrs/esm-utils/./node_modules/semver/ranges/gtr.js","webpack://@openmrs/esm-utils/./node_modules/semver/ranges/intersects.js","webpack://@openmrs/esm-utils/./node_modules/semver/ranges/ltr.js","webpack://@openmrs/esm-utils/./node_modules/semver/ranges/max-satisfying.js","webpack://@openmrs/esm-utils/./node_modules/semver/ranges/min-satisfying.js","webpack://@openmrs/esm-utils/./node_modules/semver/ranges/min-version.js","webpack://@openmrs/esm-utils/./node_modules/semver/ranges/outside.js","webpack://@openmrs/esm-utils/./node_modules/semver/ranges/simplify.js","webpack://@openmrs/esm-utils/./node_modules/semver/ranges/subset.js","webpack://@openmrs/esm-utils/./node_modules/semver/ranges/to-comparators.js","webpack://@openmrs/esm-utils/./node_modules/semver/ranges/valid.js","webpack://@openmrs/esm-utils/external system \"dayjs\"","webpack://@openmrs/esm-utils/../../../node_modules/tslib/tslib.es6.mjs","webpack://@openmrs/esm-utils/webpack/bootstrap","webpack://@openmrs/esm-utils/webpack/runtime/compat get default export","webpack://@openmrs/esm-utils/webpack/runtime/define property getters","webpack://@openmrs/esm-utils/webpack/runtime/hasOwnProperty shorthand","webpack://@openmrs/esm-utils/webpack/runtime/make namespace object","webpack://@openmrs/esm-utils/../../../node_modules/any-date-parser/dist/index.mjs","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_arrayMap.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/eq.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_assocIndexOf.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_listCacheDelete.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_ListCache.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_listCacheClear.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_listCacheGet.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_listCacheHas.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_listCacheSet.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_freeGlobal.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_root.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_Symbol.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_getRawTag.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_objectToString.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_baseGetTag.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/isObject.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/isFunction.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_coreJsData.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_isMasked.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_toSource.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_baseIsNative.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_getNative.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_getValue.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_Map.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_nativeCreate.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_hashGet.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_hashHas.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_Hash.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_hashClear.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_hashDelete.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_hashSet.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_getMapData.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_isKeyable.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_MapCache.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_mapCacheClear.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_mapCacheDelete.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_mapCacheGet.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_mapCacheHas.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_mapCacheSet.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_Stack.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_stackClear.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_stackDelete.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_stackGet.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_stackHas.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_stackSet.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_defineProperty.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_baseAssignValue.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_assignValue.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_copyObject.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/isObjectLike.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_baseIsArguments.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/isArguments.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/isArray.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/isBuffer.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/stubFalse.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_isIndex.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/isLength.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_baseIsTypedArray.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_baseUnary.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_nodeUtil.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/isTypedArray.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_arrayLikeKeys.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_baseTimes.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_isPrototype.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_overArg.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_nativeKeys.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_baseKeys.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/isArrayLike.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/keys.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_baseKeysIn.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_nativeKeysIn.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/keysIn.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_cloneBuffer.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/stubArray.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_getSymbols.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_arrayFilter.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_arrayPush.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_getPrototype.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_getSymbolsIn.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_baseGetAllKeys.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_getAllKeys.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_getAllKeysIn.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_DataView.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_Promise.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_Set.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_WeakMap.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_getTag.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_initCloneArray.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_Uint8Array.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_cloneArrayBuffer.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_cloneRegExp.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_cloneSymbol.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_initCloneByTag.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_cloneDataView.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_cloneTypedArray.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_baseCreate.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/isMap.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_baseIsMap.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/isSet.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_baseIsSet.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_baseClone.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_copyArray.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_initCloneObject.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_copySymbolsIn.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_baseAssignIn.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_copySymbols.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_baseAssign.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_arrayEach.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/isSymbol.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_isKey.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/memoize.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_stringToPath.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_memoizeCapped.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_baseToString.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/toString.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_castPath.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_toKey.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_parent.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_baseGet.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_baseSlice.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_baseUnset.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/last.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/isPlainObject.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_customOmitClone.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_isFlattenable.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_baseFlatten.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/flatten.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_overRest.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_baseSetToString.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/constant.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/identity.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_shortOut.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_setToString.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/omit.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_flatRest.js","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/_apply.js","webpack://@openmrs/esm-utils/./src/get-locale.ts","webpack://@openmrs/esm-utils/./src/age-helpers.ts","webpack://@openmrs/esm-utils/../../../node_modules/@internationalized/date/dist/manipulation.mjs","webpack://@openmrs/esm-utils/../../../node_modules/@internationalized/date/dist/queries.mjs","webpack://@openmrs/esm-utils/../../../node_modules/@internationalized/date/dist/utils.mjs","webpack://@openmrs/esm-utils/../../../node_modules/@internationalized/date/dist/GregorianCalendar.mjs","webpack://@openmrs/esm-utils/../../../node_modules/@internationalized/date/dist/string.mjs","webpack://@openmrs/esm-utils/../../../node_modules/@swc/helpers/esm/_class_private_field_init.js","webpack://@openmrs/esm-utils/../../../node_modules/@swc/helpers/esm/_check_private_redeclaration.js","webpack://@openmrs/esm-utils/../../../node_modules/@internationalized/date/dist/CalendarDate.mjs","webpack://@openmrs/esm-utils/../../../node_modules/@internationalized/date/dist/conversion.mjs","webpack://@openmrs/esm-utils/../../../node_modules/@internationalized/date/dist/BuddhistCalendar.mjs","webpack://@openmrs/esm-utils/../../../node_modules/@internationalized/date/dist/EthiopicCalendar.mjs","webpack://@openmrs/esm-utils/../../../node_modules/@internationalized/date/dist/HebrewCalendar.mjs","webpack://@openmrs/esm-utils/../../../node_modules/@internationalized/date/dist/IndianCalendar.mjs","webpack://@openmrs/esm-utils/../../../node_modules/@internationalized/date/dist/IslamicCalendar.mjs","webpack://@openmrs/esm-utils/../../../node_modules/@internationalized/date/dist/JapaneseCalendar.mjs","webpack://@openmrs/esm-utils/../../../node_modules/@internationalized/date/dist/PersianCalendar.mjs","webpack://@openmrs/esm-utils/../../../node_modules/@internationalized/date/dist/TaiwanCalendar.mjs","webpack://@openmrs/esm-utils/../../../node_modules/lodash-es/isNil.js","webpack://@openmrs/esm-utils/./src/dates/date-util.ts","webpack://@openmrs/esm-utils/../../../node_modules/@internationalized/date/dist/createCalendar.mjs","webpack://@openmrs/esm-utils/./src/is-online.ts","webpack://@openmrs/esm-utils/./src/patient-helpers.ts","webpack://@openmrs/esm-utils/./src/shallowEqual.ts","webpack://@openmrs/esm-utils/./src/storage.ts","webpack://@openmrs/esm-utils/./src/test-helpers.ts","webpack://@openmrs/esm-utils/./src/version.ts","webpack://@openmrs/esm-utils/./src/retry.ts"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./src/core\"), exports);\n","/**\n * http://ecma-international.org/ecma-402/7.0/index.html#sec-canonicalizelocalelist\n * @param locales\n */\nexport function CanonicalizeLocaleList(locales) {\n // TODO\n return Intl.getCanonicalLocales(locales);\n}\n","/**\n * https://tc39.es/ecma402/#sec-canonicalizetimezonename\n * @param tz\n */\nexport function CanonicalizeTimeZoneName(tz, _a) {\n var zoneNames = _a.zoneNames, uppercaseLinks = _a.uppercaseLinks;\n var uppercasedTz = tz.toUpperCase();\n var uppercasedZones = zoneNames.reduce(function (all, z) {\n all[z.toUpperCase()] = z;\n return all;\n }, {});\n var ianaTimeZone = uppercaseLinks[uppercasedTz] || uppercasedZones[uppercasedTz];\n if (ianaTimeZone === 'Etc/UTC' || ianaTimeZone === 'Etc/GMT') {\n return 'UTC';\n }\n return ianaTimeZone;\n}\n","/*!\r\n * decimal.js v10.5.0\r\n * An arbitrary-precision Decimal type for JavaScript.\r\n * https://github.com/MikeMcl/decimal.js\r\n * Copyright (c) 2025 Michael Mclaughlin <M8ch88l@gmail.com>\r\n * MIT Licence\r\n */\r\n\r\n\r\n// ----------------------------------- EDITABLE DEFAULTS ------------------------------------ //\r\n\r\n\r\n // The maximum exponent magnitude.\r\n // The limit on the value of `toExpNeg`, `toExpPos`, `minE` and `maxE`.\r\nvar EXP_LIMIT = 9e15, // 0 to 9e15\r\n\r\n // The limit on the value of `precision`, and on the value of the first argument to\r\n // `toDecimalPlaces`, `toExponential`, `toFixed`, `toPrecision` and `toSignificantDigits`.\r\n MAX_DIGITS = 1e9, // 0 to 1e9\r\n\r\n // Base conversion alphabet.\r\n NUMERALS = '0123456789abcdef',\r\n\r\n // The natural logarithm of 10 (1025 digits).\r\n LN10 = '2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058',\r\n\r\n // Pi (1025 digits).\r\n PI = '3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789',\r\n\r\n\r\n // The initial configuration properties of the Decimal constructor.\r\n DEFAULTS = {\r\n\r\n // These values must be integers within the stated ranges (inclusive).\r\n // Most of these values can be changed at run-time using the `Decimal.config` method.\r\n\r\n // The maximum number of significant digits of the result of a calculation or base conversion.\r\n // E.g. `Decimal.config({ precision: 20 });`\r\n precision: 20, // 1 to MAX_DIGITS\r\n\r\n // The rounding mode used when rounding to `precision`.\r\n //\r\n // ROUND_UP 0 Away from zero.\r\n // ROUND_DOWN 1 Towards zero.\r\n // ROUND_CEIL 2 Towards +Infinity.\r\n // ROUND_FLOOR 3 Towards -Infinity.\r\n // ROUND_HALF_UP 4 Towards nearest neighbour. If equidistant, up.\r\n // ROUND_HALF_DOWN 5 Towards nearest neighbour. If equidistant, down.\r\n // ROUND_HALF_EVEN 6 Towards nearest neighbour. If equidistant, towards even neighbour.\r\n // ROUND_HALF_CEIL 7 Towards nearest neighbour. If equidistant, towards +Infinity.\r\n // ROUND_HALF_FLOOR 8 Towards nearest neighbour. If equidistant, towards -Infinity.\r\n //\r\n // E.g.\r\n // `Decimal.rounding = 4;`\r\n // `Decimal.rounding = Decimal.ROUND_HALF_UP;`\r\n rounding: 4, // 0 to 8\r\n\r\n // The modulo mode used when calculating the modulus: a mod n.\r\n // The quotient (q = a / n) is calculated according to the corresponding rounding mode.\r\n // The remainder (r) is calculated as: r = a - n * q.\r\n //\r\n // UP 0 The remainder is positive if the dividend is negative, else is negative.\r\n // DOWN 1 The remainder has the same sign as the dividend (JavaScript %).\r\n // FLOOR 3 The remainder has the same sign as the divisor (Python %).\r\n // HALF_EVEN 6 The IEEE 754 remainder function.\r\n // EUCLID 9 Euclidian division. q = sign(n) * floor(a / abs(n)). Always positive.\r\n //\r\n // Truncated division (1), floored division (3), the IEEE 754 remainder (6), and Euclidian\r\n // division (9) are commonly used for the modulus operation. The other rounding modes can also\r\n // be used, but they may not give useful results.\r\n modulo: 1, // 0 to 9\r\n\r\n // The exponent value at and beneath which `toString` returns exponential notation.\r\n // JavaScript numbers: -7\r\n toExpNeg: -7, // 0 to -EXP_LIMIT\r\n\r\n // The exponent value at and above which `toString` returns exponential notation.\r\n // JavaScript numbers: 21\r\n toExpPos: 21, // 0 to EXP_LIMIT\r\n\r\n // The minimum exponent value, beneath which underflow to zero occurs.\r\n // JavaScript numbers: -324 (5e-324)\r\n minE: -EXP_LIMIT, // -1 to -EXP_LIMIT\r\n\r\n // The maximum exponent value, above which overflow to Infinity occurs.\r\n // JavaScript numbers: 308 (1.7976931348623157e+308)\r\n maxE: EXP_LIMIT, // 1 to EXP_LIMIT\r\n\r\n // Whether to use cryptographically-secure random number generation, if available.\r\n crypto: false // true/false\r\n },\r\n\r\n\r\n// ----------------------------------- END OF EDITABLE DEFAULTS ------------------------------- //\r\n\r\n\r\n inexact, quadrant,\r\n external = true,\r\n\r\n decimalError = '[DecimalError] ',\r\n invalidArgument = decimalError + 'Invalid argument: ',\r\n precisionLimitExceeded = decimalError + 'Precision limit exceeded',\r\n cryptoUnavailable = decimalError + 'crypto unavailable',\r\n tag = '[object Decimal]',\r\n\r\n mathfloor = Math.floor,\r\n mathpow = Math.pow,\r\n\r\n isBinary = /^0b([01]+(\\.[01]*)?|\\.[01]+)(p[+-]?\\d+)?$/i,\r\n isHex = /^0x([0-9a-f]+(\\.[0-9a-f]*)?|\\.[0-9a-f]+)(p[+-]?\\d+)?$/i,\r\n isOctal = /^0o([0-7]+(\\.[0-7]*)?|\\.[0-7]+)(p[+-]?\\d+)?$/i,\r\n isDecimal = /^(\\d+(\\.\\d*)?|\\.\\d+)(e[+-]?\\d+)?$/i,\r\n\r\n BASE = 1e7,\r\n LOG_BASE = 7,\r\n MAX_SAFE_INTEGER = 9007199254740991,\r\n\r\n LN10_PRECISION = LN10.length - 1,\r\n PI_PRECISION = PI.length - 1,\r\n\r\n // Decimal.prototype object\r\n P = { toStringTag: tag };\r\n\r\n\r\n// Decimal prototype methods\r\n\r\n\r\n/*\r\n * absoluteValue abs\r\n * ceil\r\n * clampedTo clamp\r\n * comparedTo cmp\r\n * cosine cos\r\n * cubeRoot cbrt\r\n * decimalPlaces dp\r\n * dividedBy div\r\n * dividedToIntegerBy divToInt\r\n * equals eq\r\n * floor\r\n * greaterThan gt\r\n * greaterThanOrEqualTo gte\r\n * hyperbolicCosine cosh\r\n * hyperbolicSine sinh\r\n * hyperbolicTangent tanh\r\n * inverseCosine acos\r\n * inverseHyperbolicCosine acosh\r\n * inverseHyperbolicSine asinh\r\n * inverseHyperbolicTangent atanh\r\n * inverseSine asin\r\n * inverseTangent atan\r\n * isFinite\r\n * isInteger isInt\r\n * isNaN\r\n * isNegative isNeg\r\n * isPositive isPos\r\n * isZero\r\n * lessThan lt\r\n * lessThanOrEqualTo lte\r\n * logarithm log\r\n * [maximum] [max]\r\n * [minimum] [min]\r\n * minus sub\r\n * modulo mod\r\n * naturalExponential exp\r\n * naturalLogarithm ln\r\n * negated neg\r\n * plus add\r\n * precision sd\r\n * round\r\n * sine sin\r\n * squareRoot sqrt\r\n * tangent tan\r\n * times mul\r\n * toBinary\r\n * toDecimalPlaces toDP\r\n * toExponential\r\n * toFixed\r\n * toFraction\r\n * toHexadecimal toHex\r\n * toNearest\r\n * toNumber\r\n * toOctal\r\n * toPower pow\r\n * toPrecision\r\n * toSignificantDigits toSD\r\n * toString\r\n * truncated trunc\r\n * valueOf toJSON\r\n */\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the absolute value of this Decimal.\r\n *\r\n */\r\nP.absoluteValue = P.abs = function () {\r\n var x = new this.constructor(this);\r\n if (x.s < 0) x.s = 1;\r\n return finalise(x);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a whole number in the\r\n * direction of positive Infinity.\r\n *\r\n */\r\nP.ceil = function () {\r\n return finalise(new this.constructor(this), this.e + 1, 2);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the value of this Decimal clamped to the range\r\n * delineated by `min` and `max`.\r\n *\r\n * min {number|string|bigint|Decimal}\r\n * max {number|string|bigint|Decimal}\r\n *\r\n */\r\nP.clampedTo = P.clamp = function (min, max) {\r\n var k,\r\n x = this,\r\n Ctor = x.constructor;\r\n min = new Ctor(min);\r\n max = new Ctor(max);\r\n if (!min.s || !max.s) return new Ctor(NaN);\r\n if (min.gt(max)) throw Error(invalidArgument + max);\r\n k = x.cmp(min);\r\n return k < 0 ? min : x.cmp(max) > 0 ? max : new Ctor(x);\r\n};\r\n\r\n\r\n/*\r\n * Return\r\n * 1 if the value of this Decimal is greater than the value of `y`,\r\n * -1 if the value of this Decimal is less than the value of `y`,\r\n * 0 if they have the same value,\r\n * NaN if the value of either Decimal is NaN.\r\n *\r\n */\r\nP.comparedTo = P.cmp = function (y) {\r\n var i, j, xdL, ydL,\r\n x = this,\r\n xd = x.d,\r\n yd = (y = new x.constructor(y)).d,\r\n xs = x.s,\r\n ys = y.s;\r\n\r\n // Either NaN or ±Infinity?\r\n if (!xd || !yd) {\r\n return !xs || !ys ? NaN : xs !== ys ? xs : xd === yd ? 0 : !xd ^ xs < 0 ? 1 : -1;\r\n }\r\n\r\n // Either zero?\r\n if (!xd[0] || !yd[0]) return xd[0] ? xs : yd[0] ? -ys : 0;\r\n\r\n // Signs differ?\r\n if (xs !== ys) return xs;\r\n\r\n // Compare exponents.\r\n if (x.e !== y.e) return x.e > y.e ^ xs < 0 ? 1 : -1;\r\n\r\n xdL = xd.length;\r\n ydL = yd.length;\r\n\r\n // Compare digit by digit.\r\n for (i = 0, j = xdL < ydL ? xdL : ydL; i < j; ++i) {\r\n if (xd[i] !== yd[i]) return xd[i] > yd[i] ^ xs < 0 ? 1 : -1;\r\n }\r\n\r\n // Compare lengths.\r\n return xdL === ydL ? 0 : xdL > ydL ^ xs < 0 ? 1 : -1;\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the cosine of the value in radians of this Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-1, 1]\r\n *\r\n * cos(0) = 1\r\n * cos(-0) = 1\r\n * cos(Infinity) = NaN\r\n * cos(-Infinity) = NaN\r\n * cos(NaN) = NaN\r\n *\r\n */\r\nP.cosine = P.cos = function () {\r\n var pr, rm,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (!x.d) return new Ctor(NaN);\r\n\r\n // cos(0) = cos(-0) = 1\r\n if (!x.d[0]) return new Ctor(1);\r\n\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n Ctor.precision = pr + Math.max(x.e, x.sd()) + LOG_BASE;\r\n Ctor.rounding = 1;\r\n\r\n x = cosine(Ctor, toLessThanHalfPi(Ctor, x));\r\n\r\n Ctor.precision = pr;\r\n Ctor.rounding = rm;\r\n\r\n return finalise(quadrant == 2 || quadrant == 3 ? x.neg() : x, pr, rm, true);\r\n};\r\n\r\n\r\n/*\r\n *\r\n * Return a new Decimal whose value is the cube root of the value of this Decimal, rounded to\r\n * `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * cbrt(0) = 0\r\n * cbrt(-0) = -0\r\n * cbrt(1) = 1\r\n * cbrt(-1) = -1\r\n * cbrt(N) = N\r\n * cbrt(-I) = -I\r\n * cbrt(I) = I\r\n *\r\n * Math.cbrt(x) = (x < 0 ? -Math.pow(-x, 1/3) : Math.pow(x, 1/3))\r\n *\r\n */\r\nP.cubeRoot = P.cbrt = function () {\r\n var e, m, n, r, rep, s, sd, t, t3, t3plusx,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (!x.isFinite() || x.isZero()) return new Ctor(x);\r\n external = false;\r\n\r\n // Initial estimate.\r\n s = x.s * mathpow(x.s * x, 1 / 3);\r\n\r\n // Math.cbrt underflow/overflow?\r\n // Pass x to Math.pow as integer, then adjust the exponent of the result.\r\n if (!s || Math.abs(s) == 1 / 0) {\r\n n = digitsToString(x.d);\r\n e = x.e;\r\n\r\n // Adjust n exponent so it is a multiple of 3 away from x exponent.\r\n if (s = (e - n.length + 1) % 3) n += (s == 1 || s == -2 ? '0' : '00');\r\n s = mathpow(n, 1 / 3);\r\n\r\n // Rarely, e may be one less than the result exponent value.\r\n e = mathfloor((e + 1) / 3) - (e % 3 == (e < 0 ? -1 : 2));\r\n\r\n if (s == 1 / 0) {\r\n n = '5e' + e;\r\n } else {\r\n n = s.toExponential();\r\n n = n.slice(0, n.indexOf('e') + 1) + e;\r\n }\r\n\r\n r = new Ctor(n);\r\n r.s = x.s;\r\n } else {\r\n r = new Ctor(s.toString());\r\n }\r\n\r\n sd = (e = Ctor.precision) + 3;\r\n\r\n // Halley's method.\r\n // TODO? Compare Newton's method.\r\n for (;;) {\r\n t = r;\r\n t3 = t.times(t).times(t);\r\n t3plusx = t3.plus(x);\r\n r = divide(t3plusx.plus(x).times(t), t3plusx.plus(t3), sd + 2, 1);\r\n\r\n // TODO? Replace with for-loop and checkRoundingDigits.\r\n if (digitsToString(t.d).slice(0, sd) === (n = digitsToString(r.d)).slice(0, sd)) {\r\n n = n.slice(sd - 3, sd + 1);\r\n\r\n // The 4th rounding digit may be in error by -1 so if the 4 rounding digits are 9999 or 4999\r\n // , i.e. approaching a rounding boundary, continue the iteration.\r\n if (n == '9999' || !rep && n == '4999') {\r\n\r\n // On the first iteration only, check to see if rounding up gives the exact result as the\r\n // nines may infinitely repeat.\r\n if (!rep) {\r\n finalise(t, e + 1, 0);\r\n\r\n if (t.times(t).times(t).eq(x)) {\r\n r = t;\r\n break;\r\n }\r\n }\r\n\r\n sd += 4;\r\n rep = 1;\r\n } else {\r\n\r\n // If the rounding digits are null, 0{0,4} or 50{0,3}, check for an exact result.\r\n // If not, then there are further digits and m will be truthy.\r\n if (!+n || !+n.slice(1) && n.charAt(0) == '5') {\r\n\r\n // Truncate to the first rounding digit.\r\n finalise(r, e + 1, 1);\r\n m = !r.times(r).times(r).eq(x);\r\n }\r\n\r\n break;\r\n }\r\n }\r\n }\r\n\r\n external = true;\r\n\r\n return finalise(r, e, Ctor.rounding, m);\r\n};\r\n\r\n\r\n/*\r\n * Return the number of decimal places of the value of this Decimal.\r\n *\r\n */\r\nP.decimalPlaces = P.dp = function () {\r\n var w,\r\n d = this.d,\r\n n = NaN;\r\n\r\n if (d) {\r\n w = d.length - 1;\r\n n = (w - mathfloor(this.e / LOG_BASE)) * LOG_BASE;\r\n\r\n // Subtract the number of trailing zeros of the last word.\r\n w = d[w];\r\n if (w) for (; w % 10 == 0; w /= 10) n--;\r\n if (n < 0) n = 0;\r\n }\r\n\r\n return n;\r\n};\r\n\r\n\r\n/*\r\n * n / 0 = I\r\n * n / N = N\r\n * n / I = 0\r\n * 0 / n = 0\r\n * 0 / 0 = N\r\n * 0 / N = N\r\n * 0 / I = 0\r\n * N / n = N\r\n * N / 0 = N\r\n * N / N = N\r\n * N / I = N\r\n * I / n = I\r\n * I / 0 = I\r\n * I / N = N\r\n * I / I = N\r\n *\r\n * Return a new Decimal whose value is the value of this Decimal divided by `y`, rounded to\r\n * `precision` significant digits using rounding mode `rounding`.\r\n *\r\n */\r\nP.dividedBy = P.div = function (y) {\r\n return divide(this, new this.constructor(y));\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the integer part of dividing the value of this Decimal\r\n * by the value of `y`, rounded to `precision` significant digits using rounding mode `rounding`.\r\n *\r\n */\r\nP.dividedToIntegerBy = P.divToInt = function (y) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n return finalise(divide(x, new Ctor(y), 0, 1, 1), Ctor.precision, Ctor.rounding);\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Decimal is equal to the value of `y`, otherwise return false.\r\n *\r\n */\r\nP.equals = P.eq = function (y) {\r\n return this.cmp(y) === 0;\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a whole number in the\r\n * direction of negative Infinity.\r\n *\r\n */\r\nP.floor = function () {\r\n return finalise(new this.constructor(this), this.e + 1, 3);\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Decimal is greater than the value of `y`, otherwise return\r\n * false.\r\n *\r\n */\r\nP.greaterThan = P.gt = function (y) {\r\n return this.cmp(y) > 0;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Decimal is greater than or equal to the value of `y`,\r\n * otherwise return false.\r\n *\r\n */\r\nP.greaterThanOrEqualTo = P.gte = function (y) {\r\n var k = this.cmp(y);\r\n return k == 1 || k === 0;\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the hyperbolic cosine of the value in radians of this\r\n * Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [1, Infinity]\r\n *\r\n * cosh(x) = 1 + x^2/2! + x^4/4! + x^6/6! + ...\r\n *\r\n * cosh(0) = 1\r\n * cosh(-0) = 1\r\n * cosh(Infinity) = Infinity\r\n * cosh(-Infinity) = Infinity\r\n * cosh(NaN) = NaN\r\n *\r\n * x time taken (ms) result\r\n * 1000 9 9.8503555700852349694e+433\r\n * 10000 25 4.4034091128314607936e+4342\r\n * 100000 171 1.4033316802130615897e+43429\r\n * 1000000 3817 1.5166076984010437725e+434294\r\n * 10000000 abandoned after 2 minute wait\r\n *\r\n * TODO? Compare performance of cosh(x) = 0.5 * (exp(x) + exp(-x))\r\n *\r\n */\r\nP.hyperbolicCosine = P.cosh = function () {\r\n var k, n, pr, rm, len,\r\n x = this,\r\n Ctor = x.constructor,\r\n one = new Ctor(1);\r\n\r\n if (!x.isFinite()) return new Ctor(x.s ? 1 / 0 : NaN);\r\n if (x.isZero()) return one;\r\n\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n Ctor.precision = pr + Math.max(x.e, x.sd()) + 4;\r\n Ctor.rounding = 1;\r\n len = x.d.length;\r\n\r\n // Argument reduction: cos(4x) = 1 - 8cos^2(x) + 8cos^4(x) + 1\r\n // i.e. cos(x) = 1 - cos^2(x/4)(8 - 8cos^2(x/4))\r\n\r\n // Estimate the optimum number of times to use the argument reduction.\r\n // TODO? Estimation reused from cosine() and may not be optimal here.\r\n if (len < 32) {\r\n k = Math.ceil(len / 3);\r\n n = (1 / tinyPow(4, k)).toString();\r\n } else {\r\n k = 16;\r\n n = '2.3283064365386962890625e-10';\r\n }\r\n\r\n x = taylorSeries(Ctor, 1, x.times(n), new Ctor(1), true);\r\n\r\n // Reverse argument reduction\r\n var cosh2_x,\r\n i = k,\r\n d8 = new Ctor(8);\r\n for (; i--;) {\r\n cosh2_x = x.times(x);\r\n x = one.minus(cosh2_x.times(d8.minus(cosh2_x.times(d8))));\r\n }\r\n\r\n return finalise(x, Ctor.precision = pr, Ctor.rounding = rm, true);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the hyperbolic sine of the value in radians of this\r\n * Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-Infinity, Infinity]\r\n *\r\n * sinh(x) = x + x^3/3! + x^5/5! + x^7/7! + ...\r\n *\r\n * sinh(0) = 0\r\n * sinh(-0) = -0\r\n * sinh(Infinity) = Infinity\r\n * sinh(-Infinity) = -Infinity\r\n * sinh(NaN) = NaN\r\n *\r\n * x time taken (ms)\r\n * 10 2 ms\r\n * 100 5 ms\r\n * 1000 14 ms\r\n * 10000 82 ms\r\n * 100000 886 ms 1.4033316802130615897e+43429\r\n * 200000 2613 ms\r\n * 300000 5407 ms\r\n * 400000 8824 ms\r\n * 500000 13026 ms 8.7080643612718084129e+217146\r\n * 1000000 48543 ms\r\n *\r\n * TODO? Compare performance of sinh(x) = 0.5 * (exp(x) - exp(-x))\r\n *\r\n */\r\nP.hyperbolicSine = P.sinh = function () {\r\n var k, pr, rm, len,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (!x.isFinite() || x.isZero()) return new Ctor(x);\r\n\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n Ctor.precision = pr + Math.max(x.e, x.sd()) + 4;\r\n Ctor.rounding = 1;\r\n len = x.d.length;\r\n\r\n if (len < 3) {\r\n x = taylorSeries(Ctor, 2, x, x, true);\r\n } else {\r\n\r\n // Alternative argument reduction: sinh(3x) = sinh(x)(3 + 4sinh^2(x))\r\n // i.e. sinh(x) = sinh(x/3)(3 + 4sinh^2(x/3))\r\n // 3 multiplications and 1 addition\r\n\r\n // Argument reduction: sinh(5x) = sinh(x)(5 + sinh^2(x)(20 + 16sinh^2(x)))\r\n // i.e. sinh(x) = sinh(x/5)(5 + sinh^2(x/5)(20 + 16sinh^2(x/5)))\r\n // 4 multiplications and 2 additions\r\n\r\n // Estimate the optimum number of times to use the argument reduction.\r\n k = 1.4 * Math.sqrt(len);\r\n k = k > 16 ? 16 : k | 0;\r\n\r\n x = x.times(1 / tinyPow(5, k));\r\n x = taylorSeries(Ctor, 2, x, x, true);\r\n\r\n // Reverse argument reduction\r\n var sinh2_x,\r\n d5 = new Ctor(5),\r\n d16 = new Ctor(16),\r\n d20 = new Ctor(20);\r\n for (; k--;) {\r\n sinh2_x = x.times(x);\r\n x = x.times(d5.plus(sinh2_x.times(d16.times(sinh2_x).plus(d20))));\r\n }\r\n }\r\n\r\n Ctor.precision = pr;\r\n Ctor.rounding = rm;\r\n\r\n return finalise(x, pr, rm, true);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the hyperbolic tangent of the value in radians of this\r\n * Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-1, 1]\r\n *\r\n * tanh(x) = sinh(x) / cosh(x)\r\n *\r\n * tanh(0) = 0\r\n * tanh(-0) = -0\r\n * tanh(Infinity) = 1\r\n * tanh(-Infinity) = -1\r\n * tanh(NaN) = NaN\r\n *\r\n */\r\nP.hyperbolicTangent = P.tanh = function () {\r\n var pr, rm,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (!x.isFinite()) return new Ctor(x.s);\r\n if (x.isZero()) return new Ctor(x);\r\n\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n Ctor.precision = pr + 7;\r\n Ctor.rounding = 1;\r\n\r\n return divide(x.sinh(), x.cosh(), Ctor.precision = pr, Ctor.rounding = rm);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the arccosine (inverse cosine) in radians of the value of\r\n * this Decimal.\r\n *\r\n * Domain: [-1, 1]\r\n * Range: [0, pi]\r\n *\r\n * acos(x) = pi/2 - asin(x)\r\n *\r\n * acos(0) = pi/2\r\n * acos(-0) = pi/2\r\n * acos(1) = 0\r\n * acos(-1) = pi\r\n * acos(1/2) = pi/3\r\n * acos(-1/2) = 2*pi/3\r\n * acos(|x| > 1) = NaN\r\n * acos(NaN) = NaN\r\n *\r\n */\r\nP.inverseCosine = P.acos = function () {\r\n var x = this,\r\n Ctor = x.constructor,\r\n k = x.abs().cmp(1),\r\n pr = Ctor.precision,\r\n rm = Ctor.rounding;\r\n\r\n if (k !== -1) {\r\n return k === 0\r\n // |x| is 1\r\n ? x.isNeg() ? getPi(Ctor, pr, rm) : new Ctor(0)\r\n // |x| > 1 or x is NaN\r\n : new Ctor(NaN);\r\n }\r\n\r\n if (x.isZero()) return getPi(Ctor, pr + 4, rm).times(0.5);\r\n\r\n // TODO? Special case acos(0.5) = pi/3 and acos(-0.5) = 2*pi/3\r\n\r\n Ctor.precision = pr + 6;\r\n Ctor.rounding = 1;\r\n\r\n // See https://github.com/MikeMcl/decimal.js/pull/217\r\n x = new Ctor(1).minus(x).div(x.plus(1)).sqrt().atan();\r\n\r\n Ctor.precision = pr;\r\n Ctor.rounding = rm;\r\n\r\n return x.times(2);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the inverse of the hyperbolic cosine in radians of the\r\n * value of this Decimal.\r\n *\r\n * Domain: [1, Infinity]\r\n * Range: [0, Infinity]\r\n *\r\n * acosh(x) = ln(x + sqrt(x^2 - 1))\r\n *\r\n * acosh(x < 1) = NaN\r\n * acosh(NaN) = NaN\r\n * acosh(Infinity) = Infinity\r\n * acosh(-Infinity) = NaN\r\n * acosh(0) = NaN\r\n * acosh(-0) = NaN\r\n * acosh(1) = 0\r\n * acosh(-1) = NaN\r\n *\r\n */\r\nP.inverseHyperbolicCosine = P.acosh = function () {\r\n var pr, rm,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (x.lte(1)) return new Ctor(x.eq(1) ? 0 : NaN);\r\n if (!x.isFinite()) return new Ctor(x);\r\n\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n Ctor.precision = pr + Math.max(Math.abs(x.e), x.sd()) + 4;\r\n Ctor.rounding = 1;\r\n external = false;\r\n\r\n x = x.times(x).minus(1).sqrt().plus(x);\r\n\r\n external = true;\r\n Ctor.precision = pr;\r\n Ctor.rounding = rm;\r\n\r\n return x.ln();\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the inverse of the hyperbolic sine in radians of the value\r\n * of this Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-Infinity, Infinity]\r\n *\r\n * asinh(x) = ln(x + sqrt(x^2 + 1))\r\n *\r\n * asinh(NaN) = NaN\r\n * asinh(Infinity) = Infinity\r\n * asinh(-Infinity) = -Infinity\r\n * asinh(0) = 0\r\n * asinh(-0) = -0\r\n *\r\n */\r\nP.inverseHyperbolicSine = P.asinh = function () {\r\n var pr, rm,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (!x.isFinite() || x.isZero()) return new Ctor(x);\r\n\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n Ctor.precision = pr + 2 * Math.max(Math.abs(x.e), x.sd()) + 6;\r\n Ctor.rounding = 1;\r\n external = false;\r\n\r\n x = x.times(x).plus(1).sqrt().plus(x);\r\n\r\n external = true;\r\n Ctor.precision = pr;\r\n Ctor.rounding = rm;\r\n\r\n return x.ln();\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the inverse of the hyperbolic tangent in radians of the\r\n * value of this Decimal.\r\n *\r\n * Domain: [-1, 1]\r\n * Range: [-Infinity, Infinity]\r\n *\r\n * atanh(x) = 0.5 * ln((1 + x) / (1 - x))\r\n *\r\n * atanh(|x| > 1) = NaN\r\n * atanh(NaN) = NaN\r\n * atanh(Infinity) = NaN\r\n * atanh(-Infinity) = NaN\r\n * atanh(0) = 0\r\n * atanh(-0) = -0\r\n * atanh(1) = Infinity\r\n * atanh(-1) = -Infinity\r\n *\r\n */\r\nP.inverseHyperbolicTangent = P.atanh = function () {\r\n var pr, rm, wpr, xsd,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (!x.isFinite()) return new Ctor(NaN);\r\n if (x.e >= 0) return new Ctor(x.abs().eq(1) ? x.s / 0 : x.isZero() ? x : NaN);\r\n\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n xsd = x.sd();\r\n\r\n if (Math.max(xsd, pr) < 2 * -x.e - 1) return finalise(new Ctor(x), pr, rm, true);\r\n\r\n Ctor.precision = wpr = xsd - x.e;\r\n\r\n x = divide(x.plus(1), new Ctor(1).minus(x), wpr + pr, 1);\r\n\r\n Ctor.precision = pr + 4;\r\n Ctor.rounding = 1;\r\n\r\n x = x.ln();\r\n\r\n Ctor.precision = pr;\r\n Ctor.rounding = rm;\r\n\r\n return x.times(0.5);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the arcsine (inverse sine) in radians of the value of this\r\n * Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-pi/2, pi/2]\r\n *\r\n * asin(x) = 2*atan(x/(1 + sqrt(1 - x^2)))\r\n *\r\n * asin(0) = 0\r\n * asin(-0) = -0\r\n * asin(1/2) = pi/6\r\n * asin(-1/2) = -pi/6\r\n * asin(1) = pi/2\r\n * asin(-1) = -pi/2\r\n * asin(|x| > 1) = NaN\r\n * asin(NaN) = NaN\r\n *\r\n * TODO? Compare performance of Taylor series.\r\n *\r\n */\r\nP.inverseSine = P.asin = function () {\r\n var halfPi, k,\r\n pr, rm,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (x.isZero()) return new Ctor(x);\r\n\r\n k = x.abs().cmp(1);\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n\r\n if (k !== -1) {\r\n\r\n // |x| is 1\r\n if (k === 0) {\r\n halfPi = getPi(Ctor, pr + 4, rm).times(0.5);\r\n halfPi.s = x.s;\r\n return halfPi;\r\n }\r\n\r\n // |x| > 1 or x is NaN\r\n return new Ctor(NaN);\r\n }\r\n\r\n // TODO? Special case asin(1/2) = pi/6 and asin(-1/2) = -pi/6\r\n\r\n Ctor.precision = pr + 6;\r\n Ctor.rounding = 1;\r\n\r\n x = x.div(new Ctor(1).minus(x.times(x)).sqrt().plus(1)).atan();\r\n\r\n Ctor.precision = pr;\r\n Ctor.rounding = rm;\r\n\r\n return x.times(2);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the arctangent (inverse tangent) in radians of the value\r\n * of this Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-pi/2, pi/2]\r\n *\r\n * atan(x) = x - x^3/3 + x^5/5 - x^7/7 + ...\r\n *\r\n * atan(0) = 0\r\n * atan(-0) = -0\r\n * atan(1) = pi/4\r\n * atan(-1) = -pi/4\r\n * atan(Infinity) = pi/2\r\n * atan(-Infinity) = -pi/2\r\n * atan(NaN) = NaN\r\n *\r\n */\r\nP.inverseTangent = P.atan = function () {\r\n var i, j, k, n, px, t, r, wpr, x2,\r\n x = this,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision,\r\n rm = Ctor.rounding;\r\n\r\n if (!x.isFinite()) {\r\n if (!x.s) return new Ctor(NaN);\r\n if (pr + 4 <= PI_PRECISION) {\r\n r = getPi(Ctor, pr + 4, rm).times(0.5);\r\n r.s = x.s;\r\n return r;\r\n }\r\n } else if (x.isZero()) {\r\n return new Ctor(x);\r\n } else if (x.abs().eq(1) && pr + 4 <= PI_PRECISION) {\r\n r = getPi(Ctor, pr + 4, rm).times(0.25);\r\n r.s = x.s;\r\n return r;\r\n }\r\n\r\n Ctor.precision = wpr = pr + 10;\r\n Ctor.rounding = 1;\r\n\r\n // TODO? if (x >= 1 && pr <= PI_PRECISION) atan(x) = halfPi * x.s - atan(1 / x);\r\n\r\n // Argument reduction\r\n // Ensure |x| < 0.42\r\n // atan(x) = 2 * atan(x / (1 + sqrt(1 + x^2)))\r\n\r\n k = Math.min(28, wpr / LOG_BASE + 2 | 0);\r\n\r\n for (i = k; i; --i) x = x.div(x.times(x).plus(1).sqrt().plus(1));\r\n\r\n external = false;\r\n\r\n j = Math.ceil(wpr / LOG_BASE);\r\n n = 1;\r\n x2 = x.times(x);\r\n r = new Ctor(x);\r\n px = x;\r\n\r\n // atan(x) = x - x^3/3 + x^5/5 - x^7/7 + ...\r\n for (; i !== -1;) {\r\n px = px.times(x2);\r\n t = r.minus(px.div(n += 2));\r\n\r\n px = px.times(x2);\r\n r = t.plus(px.div(n += 2));\r\n\r\n if (r.d[j] !== void 0) for (i = j; r.d[i] === t.d[i] && i--;);\r\n }\r\n\r\n if (k) r = r.times(2 << (k - 1));\r\n\r\n external = true;\r\n\r\n return finalise(r, Ctor.precision = pr, Ctor.rounding = rm, true);\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Decimal is a finite number, otherwise return false.\r\n *\r\n */\r\nP.isFinite = function () {\r\n return !!this.d;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Decimal is an integer, otherwise return false.\r\n *\r\n */\r\nP.isInteger = P.isInt = function () {\r\n return !!this.d && mathfloor(this.e / LOG_BASE) > this.d.length - 2;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Decimal is NaN, otherwise return false.\r\n *\r\n */\r\nP.isNaN = function () {\r\n return !this.s;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Decimal is negative, otherwise return false.\r\n *\r\n */\r\nP.isNegative = P.isNeg = function () {\r\n return this.s < 0;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Decimal is positive, otherwise return false.\r\n *\r\n */\r\nP.isPositive = P.isPos = function () {\r\n return this.s > 0;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Decimal is 0 or -0, otherwise return false.\r\n *\r\n */\r\nP.isZero = function () {\r\n return !!this.d && this.d[0] === 0;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Decimal is less than `y`, otherwise return false.\r\n *\r\n */\r\nP.lessThan = P.lt = function (y) {\r\n return this.cmp(y) < 0;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Decimal is less than or equal to `y`, otherwise return false.\r\n *\r\n */\r\nP.lessThanOrEqualTo = P.lte = function (y) {\r\n return this.cmp(y) < 1;\r\n};\r\n\r\n\r\n/*\r\n * Return the logarithm of the value of this Decimal to the specified base, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * If no base is specified, return log[10](arg).\r\n *\r\n * log[base](arg) = ln(arg) / ln(base)\r\n *\r\n * The result will always be correctly rounded if the base of the log is 10, and 'almost always'\r\n * otherwise:\r\n *\r\n * Depending on the rounding mode, the result may be incorrectly rounded if the first fifteen\r\n * rounding digits are [49]99999999999999 or [50]00000000000000. In that case, the maximum error\r\n * between the result and the correctly rounded result will be one ulp (unit in the last place).\r\n *\r\n * log[-b](a) = NaN\r\n * log[0](a) = NaN\r\n * log[1](a) = NaN\r\n * log[NaN](a) = NaN\r\n * log[Infinity](a) = NaN\r\n * log[b](0) = -Infinity\r\n * log[b](-0) = -Infinity\r\n * log[b](-a) = NaN\r\n * log[b](1) = 0\r\n * log[b](Infinity) = Infinity\r\n * log[b](NaN) = NaN\r\n *\r\n * [base] {number|string|bigint|Decimal} The base of the logarithm.\r\n *\r\n */\r\nP.logarithm = P.log = function (base) {\r\n var isBase10, d, denominator, k, inf, num, sd, r,\r\n arg = this,\r\n Ctor = arg.constructor,\r\n pr = Ctor.precision,\r\n rm = Ctor.rounding,\r\n guard = 5;\r\n\r\n // Default base is 10.\r\n if (base == null) {\r\n base = new Ctor(10);\r\n isBase10 = true;\r\n } else {\r\n base = new Ctor(base);\r\n d = base.d;\r\n\r\n // Return NaN if base is negative, or non-finite, or is 0 or 1.\r\n if (base.s < 0 || !d || !d[0] || base.eq(1)) return new Ctor(NaN);\r\n\r\n isBase10 = base.eq(10);\r\n }\r\n\r\n d = arg.d;\r\n\r\n // Is arg negative, non-finite, 0 or 1?\r\n if (arg.s < 0 || !d || !d[0] || arg.eq(1)) {\r\n return new Ctor(d && !d[0] ? -1 / 0 : arg.s != 1 ? NaN : d ? 0 : 1 / 0);\r\n }\r\n\r\n // The result will have a non-terminating decimal expansion if base is 10 and arg is not an\r\n // integer power of 10.\r\n if (isBase10) {\r\n if (d.length > 1) {\r\n inf = true;\r\n } else {\r\n for (k = d[0]; k % 10 === 0;) k /= 10;\r\n inf = k !== 1;\r\n }\r\n }\r\n\r\n external = false;\r\n sd = pr + guard;\r\n num = naturalLogarithm(arg, sd);\r\n denominator = isBase10 ? getLn10(Ctor, sd + 10) : naturalLogarithm(base, sd);\r\n\r\n // The result will have 5 rounding digits.\r\n r = divide(num, denominator, sd, 1);\r\n\r\n // If at a rounding boundary, i.e. the result's rounding digits are [49]9999 or [50]0000,\r\n // calculate 10 further digits.\r\n //\r\n // If the result is known to have an infinite decimal expansion, repeat this until it is clear\r\n // that the result is above or below the boundary. Otherwise, if after calculating the 10\r\n // further digits, the last 14 are nines, round up and assume the result is exact.\r\n // Also assume the result is exact if the last 14 are zero.\r\n //\r\n // Example of a result that will be incorrectly rounded:\r\n // log[1048576](4503599627370502) = 2.60000000000000009610279511444746...\r\n // The above result correctly rounded using ROUND_CEIL to 1 decimal place should be 2.7, but it\r\n // will be given as 2.6 as there are 15 zeros immediately after the requested decimal place, so\r\n // the exact result would be assumed to be 2.6, which rounded using ROUND_CEIL to 1 decimal\r\n // place is still 2.6.\r\n if (checkRoundingDigits(r.d, k = pr, rm)) {\r\n\r\n do {\r\n sd += 10;\r\n num = naturalLogarithm(arg, sd);\r\n denominator = isBase10 ? getLn10(Ctor, sd + 10) : naturalLogarithm(base, sd);\r\n r = divide(num, denominator, sd, 1);\r\n\r\n if (!inf) {\r\n\r\n // Check for 14 nines from the 2nd rounding digit, as the first may be 4.\r\n if (+digitsToString(r.d).slice(k + 1, k + 15) + 1 == 1e14) {\r\n r = finalise(r, pr + 1, 0);\r\n }\r\n\r\n break;\r\n }\r\n } while (checkRoundingDigits(r.d, k += 10, rm));\r\n }\r\n\r\n external = true;\r\n\r\n return finalise(r, pr, rm);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the maximum of the arguments and the value of this Decimal.\r\n *\r\n * arguments {number|string|bigint|Decimal}\r\n *\r\nP.max = function () {\r\n Array.prototype.push.call(arguments, this);\r\n return maxOrMin(this.constructor, arguments, -1);\r\n};\r\n */\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the minimum of the arguments and the value of this Decimal.\r\n *\r\n * arguments {number|string|bigint|Decimal}\r\n *\r\nP.min = function () {\r\n Array.prototype.push.call(arguments, this);\r\n return maxOrMin(this.constructor, arguments, 1);\r\n};\r\n */\r\n\r\n\r\n/*\r\n * n - 0 = n\r\n * n - N = N\r\n * n - I = -I\r\n * 0 - n = -n\r\n * 0 - 0 = 0\r\n * 0 - N = N\r\n * 0 - I = -I\r\n * N - n = N\r\n * N - 0 = N\r\n * N - N = N\r\n * N - I = N\r\n * I - n = I\r\n * I - 0 = I\r\n * I - N = N\r\n * I - I = N\r\n *\r\n * Return a new Decimal whose value is the value of this Decimal minus `y`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n */\r\nP.minus = P.sub = function (y) {\r\n var d, e, i, j, k, len, pr, rm, xd, xe, xLTy, yd,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n y = new Ctor(y);\r\n\r\n // If either is not finite...\r\n if (!x.d || !y.d) {\r\n\r\n // Return NaN if either is NaN.\r\n if (!x.s || !y.s) y = new Ctor(NaN);\r\n\r\n // Return y negated if x is finite and y is ±Infinity.\r\n else if (x.d) y.s = -y.s;\r\n\r\n // Return x if y is finite and x is ±Infinity.\r\n // Return x if both are ±Infinity with different signs.\r\n // Return NaN if both are ±Infinity with the same sign.\r\n else y = new Ctor(y.d || x.s !== y.s ? x : NaN);\r\n\r\n return y;\r\n }\r\n\r\n // If signs differ...\r\n if (x.s != y.s) {\r\n y.s = -y.s;\r\n return x.plus(y);\r\n }\r\n\r\n xd = x.d;\r\n yd = y.d;\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n\r\n // If either is zero...\r\n if (!xd[0] || !yd[0]) {\r\n\r\n // Return y negated if x is zero and y is non-zero.\r\n if (yd[0]) y.s = -y.s;\r\n\r\n // Return x if y is zero and x is non-zero.\r\n else if (xd[0]) y = new Ctor(x);\r\n\r\n // Return zero if both are zero.\r\n // From IEEE 754 (2008) 6.3: 0 - 0 = -0 - -0 = -0 when rounding to -Infinity.\r\n else return new Ctor(rm === 3 ? -0 : 0);\r\n\r\n return external ? finalise(y, pr, rm) : y;\r\n }\r\n\r\n // x and y are finite, non-zero numbers with the same sign.\r\n\r\n // Calculate base 1e7 exponents.\r\n e = mathfloor(y.e / LOG_BASE);\r\n xe = mathfloor(x.e / LOG_BASE);\r\n\r\n xd = xd.slice();\r\n k = xe - e;\r\n\r\n // If base 1e7 exponents differ...\r\n if (k) {\r\n xLTy = k < 0;\r\n\r\n if (xLTy) {\r\n d = xd;\r\n k = -k;\r\n len = yd.length;\r\n } else {\r\n d = yd;\r\n e = xe;\r\n len = xd.length;\r\n }\r\n\r\n // Numbers with massively different exponents would result in a very high number of\r\n // zeros needing to be prepended, but this can be avoided while still ensuring correct\r\n // rounding by limiting the number of zeros to `Math.ceil(pr / LOG_BASE) + 2`.\r\n i = Math.max(Math.ceil(pr / LOG_BASE), len) + 2;\r\n\r\n if (k > i) {\r\n k = i;\r\n d.length = 1;\r\n }\r\n\r\n // Prepend zeros to equalise exponents.\r\n d.reverse();\r\n for (i = k; i--;) d.push(0);\r\n d.reverse();\r\n\r\n // Base 1e7 exponents equal.\r\n } else {\r\n\r\n // Check digits to determine which is the bigger number.\r\n\r\n i = xd.length;\r\n len = yd.length;\r\n xLTy = i < len;\r\n if (xLTy) len = i;\r\n\r\n for (i = 0; i < len; i++) {\r\n if (xd[i] != yd[i]) {\r\n xLTy = xd[i] < yd[i];\r\n break;\r\n }\r\n }\r\n\r\n k = 0;\r\n }\r\n\r\n if (xLTy) {\r\n d = xd;\r\n xd = yd;\r\n yd = d;\r\n y.s = -y.s;\r\n }\r\n\r\n len = xd.length;\r\n\r\n // Append zeros to `xd` if shorter.\r\n // Don't add zeros to `yd` if shorter as subtraction only needs to start at `yd` length.\r\n for (i = yd.length - len; i > 0; --i) xd[len++] = 0;\r\n\r\n // Subtract yd from xd.\r\n for (i = yd.length; i > k;) {\r\n\r\n if (xd[--i] < yd[i]) {\r\n for (j = i; j && xd[--j] === 0;) xd[j] = BASE - 1;\r\n --xd[j];\r\n xd[i] += BASE;\r\n }\r\n\r\n xd[i] -= yd[i];\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (; xd[--len] === 0;) xd.pop();\r\n\r\n // Remove leading zeros and adjust exponent accordingly.\r\n for (; xd[0] === 0; xd.shift()) --e;\r\n\r\n // Zero?\r\n if (!xd[0]) return new Ctor(rm === 3 ? -0 : 0);\r\n\r\n y.d = xd;\r\n y.e = getBase10Exponent(xd, e);\r\n\r\n return external ? finalise(y, pr, rm) : y;\r\n};\r\n\r\n\r\n/*\r\n * n % 0 = N\r\n * n % N = N\r\n * n % I = n\r\n * 0 % n = 0\r\n * -0 % n = -0\r\n * 0 % 0 = N\r\n * 0 % N = N\r\n * 0 % I = 0\r\n * N % n = N\r\n * N % 0 = N\r\n * N % N = N\r\n * N % I = N\r\n * I % n = N\r\n * I % 0 = N\r\n * I % N = N\r\n * I % I = N\r\n *\r\n * Return a new Decimal whose value is the value of this Decimal modulo `y`, rounded to\r\n * `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * The result depends on the modulo mode.\r\n *\r\n */\r\nP.modulo = P.mod = function (y) {\r\n var q,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n y = new Ctor(y);\r\n\r\n // Return NaN if x is ±Infinity or NaN, or y is NaN or ±0.\r\n if (!x.d || !y.s || y.d && !y.d[0]) return new Ctor(NaN);\r\n\r\n // Return x if y is ±Infinity or x is ±0.\r\n if (!y.d || x.d && !x.d[0]) {\r\n return finalise(new Ctor(x), Ctor.precision, Ctor.rounding);\r\n }\r\n\r\n // Prevent rounding of intermediate calculations.\r\n external = false;\r\n\r\n if (Ctor.modulo == 9) {\r\n\r\n // Euclidian division: q = sign(y) * floor(x / abs(y))\r\n // result = x - q * y where 0 <= result < abs(y)\r\n q = divide(x, y.abs(), 0, 3, 1);\r\n q.s *= y.s;\r\n } else {\r\n q = divide(x, y, 0, Ctor.modulo, 1);\r\n }\r\n\r\n q = q.times(y);\r\n\r\n external = true;\r\n\r\n return x.minus(q);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the natural exponential of the value of this Decimal,\r\n * i.e. the base e raised to the power the value of this Decimal, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n */\r\nP.naturalExponential = P.exp = function () {\r\n return naturalExponential(this);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the natural logarithm of the value of this Decimal,\r\n * rounded to `precision` significant digits using rounding mode `rounding`.\r\n *\r\n */\r\nP.naturalLogarithm = P.ln = function () {\r\n return naturalLogarithm(this);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the value of this Decimal negated, i.e. as if multiplied by\r\n * -1.\r\n *\r\n */\r\nP.negated = P.neg = function () {\r\n var x = new this.constructor(this);\r\n x.s = -x.s;\r\n return finalise(x);\r\n};\r\n\r\n\r\n/*\r\n * n + 0 = n\r\n * n + N = N\r\n * n + I = I\r\n * 0 + n = n\r\n * 0 + 0 = 0\r\n * 0 + N = N\r\n * 0 + I = I\r\n * N + n = N\r\n * N + 0 = N\r\n * N + N = N\r\n * N + I = N\r\n * I + n = I\r\n * I + 0 = I\r\n * I + N = N\r\n * I + I = I\r\n *\r\n * Return a new Decimal whose value is the value of this Decimal plus `y`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n */\r\nP.plus = P.add = function (y) {\r\n var carry, d, e, i, k, len, pr, rm, xd, yd,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n y = new Ctor(y);\r\n\r\n // If either is not finite...\r\n if (!x.d || !y.d) {\r\n\r\n // Return NaN if either is NaN.\r\n if (!x.s || !y.s) y = new Ctor(NaN);\r\n\r\n // Return x if y is finite and x is ±Infinity.\r\n // Return x if both are ±Infinity with the same sign.\r\n // Return NaN if both are ±Infinity with different signs.\r\n // Return y if x is finite and y is ±Infinity.\r\n else if (!x.d) y = new Ctor(y.d || x.s === y.s ? x : NaN);\r\n\r\n return y;\r\n }\r\n\r\n // If signs differ...\r\n if (x.s != y.s) {\r\n y.s = -y.s;\r\n return x.minus(y);\r\n }\r\n\r\n xd = x.d;\r\n yd = y.d;\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n\r\n // If either is zero...\r\n if (!xd[0] || !yd[0]) {\r\n\r\n // Return x if y is zero.\r\n // Return y if y is non-zero.\r\n if (!yd[0]) y = new Ctor(x);\r\n\r\n return external ? finalise(y, pr, rm) : y;\r\n }\r\n\r\n // x and y are finite, non-zero numbers with the same sign.\r\n\r\n // Calculate base 1e7 exponents.\r\n k = mathfloor(x.e / LOG_BASE);\r\n e = mathfloor(y.e / LOG_BASE);\r\n\r\n xd = xd.slice();\r\n i = k - e;\r\n\r\n // If base 1e7 exponents differ...\r\n if (i) {\r\n\r\n if (i < 0) {\r\n d = xd;\r\n i = -i;\r\n len = yd.length;\r\n } else {\r\n d = yd;\r\n e = k;\r\n len = xd.length;\r\n }\r\n\r\n // Limit number of zeros prepended to max(ceil(pr / LOG_BASE), len) + 1.\r\n k = Math.ceil(pr / LOG_BASE);\r\n len = k > len ? k + 1 : len + 1;\r\n\r\n if (i > len) {\r\n i = len;\r\n d.length = 1;\r\n }\r\n\r\n // Prepend zeros to equalise exponents. Note: Faster to use reverse then do unshifts.\r\n d.reverse();\r\n for (; i--;) d.push(0);\r\n d.reverse();\r\n }\r\n\r\n len = xd.length;\r\n i = yd.length;\r\n\r\n // If yd is longer than xd, swap xd and yd so xd points to the longer array.\r\n if (len - i < 0) {\r\n i = len;\r\n d = yd;\r\n yd = xd;\r\n xd = d;\r\n }\r\n\r\n // Only start adding at yd.length - 1 as the further digits of xd can be left as they are.\r\n for (carry = 0; i;) {\r\n carry = (xd[--i] = xd[i] + yd[i] + carry) / BASE | 0;\r\n xd[i] %= BASE;\r\n }\r\n\r\n if (carry) {\r\n xd.unshift(carry);\r\n ++e;\r\n }\r\n\r\n // Remove trailing zeros.\r\n // No need to check for zero, as +x + +y != 0 && -x + -y != 0\r\n for (len = xd.length; xd[--len] == 0;) xd.pop();\r\n\r\n y.d = xd;\r\n y.e = getBase10Exponent(xd, e);\r\n\r\n return external ? finalise(y, pr, rm) : y;\r\n};\r\n\r\n\r\n/*\r\n * Return the number of significant digits of the value of this Decimal.\r\n *\r\n * [z] {boolean|number} Whether to count integer-part trailing zeros: true, false, 1 or 0.\r\n *\r\n */\r\nP.precision = P.sd = function (z) {\r\n var k,\r\n x = this;\r\n\r\n if (z !== void 0 && z !== !!z && z !== 1 && z !== 0) throw Error(invalidArgument + z);\r\n\r\n if (x.d) {\r\n k = getPrecision(x.d);\r\n if (z && x.e + 1 > k) k = x.e + 1;\r\n } else {\r\n k = NaN;\r\n }\r\n\r\n return k;\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a whole number using\r\n * rounding mode `rounding`.\r\n *\r\n */\r\nP.round = function () {\r\n var x = this,\r\n Ctor = x.constructor;\r\n\r\n return finalise(new Ctor(x), x.e + 1, Ctor.rounding);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the sine of the value in radians of this Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-1, 1]\r\n *\r\n * sin(x) = x - x^3/3! + x^5/5! - ...\r\n *\r\n * sin(0) = 0\r\n * sin(-0) = -0\r\n * sin(Infinity) = NaN\r\n * sin(-Infinity) = NaN\r\n * sin(NaN) = NaN\r\n *\r\n */\r\nP.sine = P.sin = function () {\r\n var pr, rm,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (!x.isFinite()) return new Ctor(NaN);\r\n if (x.isZero()) return new Ctor(x);\r\n\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n Ctor.precision = pr + Math.max(x.e, x.sd()) + LOG_BASE;\r\n Ctor.rounding = 1;\r\n\r\n x = sine(Ctor, toLessThanHalfPi(Ctor, x));\r\n\r\n Ctor.precision = pr;\r\n Ctor.rounding = rm;\r\n\r\n return finalise(quadrant > 2 ? x.neg() : x, pr, rm, true);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the square root of this Decimal, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * sqrt(-n) = N\r\n * sqrt(N) = N\r\n * sqrt(-I) = N\r\n * sqrt(I) = I\r\n * sqrt(0) = 0\r\n * sqrt(-0) = -0\r\n *\r\n */\r\nP.squareRoot = P.sqrt = function () {\r\n var m, n, sd, r, rep, t,\r\n x = this,\r\n d = x.d,\r\n e = x.e,\r\n s = x.s,\r\n Ctor = x.constructor;\r\n\r\n // Negative/NaN/Infinity/zero?\r\n if (s !== 1 || !d || !d[0]) {\r\n return new Ctor(!s || s < 0 && (!d || d[0]) ? NaN : d ? x : 1 / 0);\r\n }\r\n\r\n external = false;\r\n\r\n // Initial estimate.\r\n s = Math.sqrt(+x);\r\n\r\n // Math.sqrt underflow/overflow?\r\n // Pass x to Math.sqrt as integer, then adjust the exponent of the result.\r\n if (s == 0 || s == 1 / 0) {\r\n n = digitsToString(d);\r\n\r\n if ((n.length + e) % 2 == 0) n += '0';\r\n s = Math.sqrt(n);\r\n e = mathfloor((e + 1) / 2) - (e < 0 || e % 2);\r\n\r\n if (s == 1 / 0) {\r\n n = '5e' + e;\r\n } else {\r\n n = s.toExponential();\r\n n = n.slice(0, n.indexOf('e') + 1) + e;\r\n }\r\n\r\n r = new Ctor(n);\r\n } else {\r\n r = new Ctor(s.toString());\r\n }\r\n\r\n sd = (e = Ctor.precision) + 3;\r\n\r\n // Newton-Raphson iteration.\r\n for (;;) {\r\n t = r;\r\n r = t.plus(divide(x, t, sd + 2, 1)).times(0.5);\r\n\r\n // TODO? Replace with for-loop and checkRoundingDigits.\r\n if (digitsToString(t.d).slice(0, sd) === (n = digitsToString(r.d)).slice(0, sd)) {\r\n n = n.slice(sd - 3, sd + 1);\r\n\r\n // The 4th rounding digit may be in error by -1 so if the 4 rounding digits are 9999 or\r\n // 4999, i.e. approaching a rounding boundary, continue the iteration.\r\n if (n == '9999' || !rep && n == '4999') {\r\n\r\n // On the first iteration only, check to see if rounding up gives the exact result as the\r\n // nines may infinitely repeat.\r\n if (!rep) {\r\n finalise(t, e + 1, 0);\r\n\r\n if (t.times(t).eq(x)) {\r\n r = t;\r\n break;\r\n }\r\n }\r\n\r\n sd += 4;\r\n rep = 1;\r\n } else {\r\n\r\n // If the rounding digits are null, 0{0,4} or 50{0,3}, check for an exact result.\r\n // If not, then there are further digits and m will be truthy.\r\n if (!+n || !+n.slice(1) && n.charAt(0) == '5') {\r\n\r\n // Truncate to the first rounding digit.\r\n finalise(r, e + 1, 1);\r\n m = !r.times(r).eq(x);\r\n }\r\n\r\n break;\r\n }\r\n }\r\n }\r\n\r\n external = true;\r\n\r\n return finalise(r, e, Ctor.rounding, m);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the tangent of the value in radians of this Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-Infinity, Infinity]\r\n *\r\n * tan(0) = 0\r\n * tan(-0) = -0\r\n * tan(Infinity) = NaN\r\n * tan(-Infinity) = NaN\r\n * tan(NaN) = NaN\r\n *\r\n */\r\nP.tangent = P.tan = function () {\r\n var pr, rm,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (!x.isFinite()) return new Ctor(NaN);\r\n if (x.isZero()) return new Ctor(x);\r\n\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n Ctor.precision = pr + 10;\r\n Ctor.rounding = 1;\r\n\r\n x = x.sin();\r\n x.s = 1;\r\n x = divide(x, new Ctor(1).minus(x.times(x)).sqrt(), pr + 10, 0);\r\n\r\n Ctor.precision = pr;\r\n Ctor.rounding = rm;\r\n\r\n return finalise(quadrant == 2 || quadrant == 4 ? x.neg() : x, pr, rm, true);\r\n};\r\n\r\n\r\n/*\r\n * n * 0 = 0\r\n * n * N = N\r\n * n * I = I\r\n * 0 * n = 0\r\n * 0 * 0 = 0\r\n * 0 * N = N\r\n * 0 * I = N\r\n * N * n = N\r\n * N * 0 = N\r\n * N * N = N\r\n * N * I = N\r\n * I * n = I\r\n * I * 0 = N\r\n * I * N = N\r\n * I * I = I\r\n *\r\n * Return a new Decimal whose value is this Decimal times `y`, rounded to `precision` significant\r\n * digits using rounding mode `rounding`.\r\n *\r\n */\r\nP.times = P.mul = function (y) {\r\n var carry, e, i, k, r, rL, t, xdL, ydL,\r\n x = this,\r\n Ctor = x.constructor,\r\n xd = x.d,\r\n yd = (y = new Ctor(y)).d;\r\n\r\n y.s *= x.s;\r\n\r\n // If either is NaN, ±Infinity or ±0...\r\n if (!xd || !xd[0] || !yd || !yd[0]) {\r\n\r\n return new Ctor(!y.s || xd && !xd[0] && !yd || yd && !yd[0] && !xd\r\n\r\n // Return NaN if either is NaN.\r\n // Return NaN if x is ±0 and y is ±Infinity, or y is ±0 and x is ±Infinity.\r\n ? NaN\r\n\r\n // Return ±Infinity if either is ±Infinity.\r\n // Return ±0 if either is ±0.\r\n : !xd || !yd ? y.s / 0 : y.s * 0);\r\n }\r\n\r\n e = mathfloor(x.e / LOG_BASE) + mathfloor(y.e / LOG_BASE);\r\n xdL = xd.length;\r\n ydL = yd.length;\r\n\r\n // Ensure xd points to the longer array.\r\n if (xdL < ydL) {\r\n r = xd;\r\n xd = yd;\r\n yd = r;\r\n rL = xdL;\r\n xdL = ydL;\r\n ydL = rL;\r\n }\r\n\r\n // Initialise the result array with zeros.\r\n r = [];\r\n rL = xdL + ydL;\r\n for (i = rL; i--;) r.push(0);\r\n\r\n // Multiply!\r\n for (i = ydL; --i >= 0;) {\r\n carry = 0;\r\n for (k = xdL + i; k > i;) {\r\n t = r[k] + yd[i] * xd[k - i - 1] + carry;\r\n r[k--] = t % BASE | 0;\r\n carry = t / BASE | 0;\r\n }\r\n\r\n r[k] = (r[k] + carry) % BASE | 0;\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (; !r[--rL];) r.pop();\r\n\r\n if (carry) ++e;\r\n else r.shift();\r\n\r\n y.d = r;\r\n y.e = getBase10Exponent(r, e);\r\n\r\n return external ? finalise(y, Ctor.precision, Ctor.rounding) : y;\r\n};\r\n\r\n\r\n/*\r\n * Return a string representing the value of this Decimal in base 2, round to `sd` significant\r\n * digits using rounding mode `rm`.\r\n *\r\n * If the optional `sd` argument is present then return binary exponential notation.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\nP.toBinary = function (sd, rm) {\r\n return toStringBinary(this, 2, sd, rm);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a maximum of `dp`\r\n * decimal places using rounding mode `rm` or `rounding` if `rm` is omitted.\r\n *\r\n * If `dp` is omitted, return a new Decimal whose value is the value of this Decimal.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\nP.toDecimalPlaces = P.toDP = function (dp, rm) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n\r\n x = new Ctor(x);\r\n if (dp === void 0) return x;\r\n\r\n checkInt32(dp, 0, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n return finalise(x, dp + x.e + 1, rm);\r\n};\r\n\r\n\r\n/*\r\n * Return a string representing the value of this Decimal in exponential notation rounded to\r\n * `dp` fixed decimal places using rounding mode `rounding`.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\nP.toExponential = function (dp, rm) {\r\n var str,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (dp === void 0) {\r\n str = finiteToString(x, true);\r\n } else {\r\n checkInt32(dp, 0, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n x = finalise(new Ctor(x), dp + 1, rm);\r\n str = finiteToString(x, true, dp + 1);\r\n }\r\n\r\n return x.isNeg() && !x.isZero() ? '-' + str : str;\r\n};\r\n\r\n\r\n/*\r\n * Return a string representing the value of this Decimal in normal (fixed-point) notation to\r\n * `dp` fixed decimal places and rounded using rounding mode `rm` or `rounding` if `rm` is\r\n * omitted.\r\n *\r\n * As with JavaScript numbers, (-0).toFixed(0) is '0', but e.g. (-0.00001).toFixed(0) is '-0'.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * (-0).toFixed(0) is '0', but (-0.1).toFixed(0) is '-0'.\r\n * (-0).toFixed(1) is '0.0', but (-0.01).toFixed(1) is '-0.0'.\r\n * (-0).toFixed(3) is '0.000'.\r\n * (-0.5).toFixed(0) is '-0'.\r\n *\r\n */\r\nP.toFixed = function (dp, rm) {\r\n var str, y,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (dp === void 0) {\r\n str = finiteToString(x);\r\n } else {\r\n checkInt32(dp, 0, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n y = finalise(new Ctor(x), dp + x.e + 1, rm);\r\n str = finiteToString(y, false, dp + y.e + 1);\r\n }\r\n\r\n // To determine whether to add the minus sign look at the value before it was rounded,\r\n // i.e. look at `x` rather than `y`.\r\n return x.isNeg() && !x.isZero() ? '-' + str : str;\r\n};\r\n\r\n\r\n/*\r\n * Return an array representing the value of this Decimal as a simple fraction with an integer\r\n * numerator and an integer denominator.\r\n *\r\n * The denominator will be a positive non-zero value less than or equal to the specified maximum\r\n * denominator. If a maximum denominator is not specified, the denominator will be the lowest\r\n * value necessary to represent the number exactly.\r\n *\r\n * [maxD] {number|string|bigint|Decimal} Maximum denominator. Integer >= 1 and < Infinity.\r\n *\r\n */\r\nP.toFraction = function (maxD) {\r\n var d, d0, d1, d2, e, k, n, n0, n1, pr, q, r,\r\n x = this,\r\n xd = x.d,\r\n Ctor = x.constructor;\r\n\r\n if (!xd) return new Ctor(x);\r\n\r\n n1 = d0 = new Ctor(1);\r\n d1 = n0 = new Ctor(0);\r\n\r\n d = new Ctor(d1);\r\n e = d.e = getPrecision(xd) - x.e - 1;\r\n k = e % LOG_BASE;\r\n d.d[0] = mathpow(10, k < 0 ? LOG_BASE + k : k);\r\n\r\n if (maxD == null) {\r\n\r\n // d is 10**e, the minimum max-denominator needed.\r\n maxD = e > 0 ? d : n1;\r\n } else {\r\n n = new Ctor(maxD);\r\n if (!n.isInt() || n.lt(n1)) throw Error(invalidArgument + n);\r\n maxD = n.gt(d) ? (e > 0 ? d : n1) : n;\r\n }\r\n\r\n external = false;\r\n n = new Ctor(digitsToString(xd));\r\n pr = Ctor.precision;\r\n Ctor.precision = e = xd.length * LOG_BASE * 2;\r\n\r\n for (;;) {\r\n q = divide(n, d, 0, 1, 1);\r\n d2 = d0.plus(q.times(d1));\r\n if (d2.cmp(maxD) == 1) break;\r\n d0 = d1;\r\n d1 = d2;\r\n d2 = n1;\r\n n1 = n0.plus(q.times(d2));\r\n n0 = d2;\r\n d2 = d;\r\n d = n.minus(q.times(d2));\r\n n = d2;\r\n }\r\n\r\n d2 = divide(maxD.minus(d0), d1, 0, 1, 1);\r\n n0 = n0.plus(d2.times(n1));\r\n d0 = d0.plus(d2.times(d1));\r\n n0.s = n1.s = x.s;\r\n\r\n // Determine which fraction is closer to x, n0/d0 or n1/d1?\r\n r = divide(n1, d1, e, 1).minus(x).abs().cmp(divide(n0, d0, e, 1).minus(x).abs()) < 1\r\n ? [n1, d1] : [n0, d0];\r\n\r\n Ctor.precision = pr;\r\n external = true;\r\n\r\n return r;\r\n};\r\n\r\n\r\n/*\r\n * Return a string representing the value of this Decimal in base 16, round to `sd` significant\r\n * digits using rounding mode `rm`.\r\n *\r\n * If the optional `sd` argument is present then return binary exponential notation.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\nP.toHexadecimal = P.toHex = function (sd, rm) {\r\n return toStringBinary(this, 16, sd, rm);\r\n};\r\n\r\n\r\n/*\r\n * Returns a new Decimal whose value is the nearest multiple of `y` in the direction of rounding\r\n * mode `rm`, or `Decimal.rounding` if `rm` is omitted, to the value of this Decimal.\r\n *\r\n * The return value will always have the same sign as this Decimal, unless either this Decimal\r\n * or `y` is NaN, in which case the return value will be also be NaN.\r\n *\r\n * The return value is not affected by the value of `precision`.\r\n *\r\n * y {number|string|bigint|Decimal} The magnitude to round to a multiple of.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * 'toNearest() rounding mode not an integer: {rm}'\r\n * 'toNearest() rounding mode out of range: {rm}'\r\n *\r\n */\r\nP.toNearest = function (y, rm) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n\r\n x = new Ctor(x);\r\n\r\n if (y == null) {\r\n\r\n // If x is not finite, return x.\r\n if (!x.d) return x;\r\n\r\n y = new Ctor(1);\r\n rm = Ctor.rounding;\r\n } else {\r\n y = new Ctor(y);\r\n if (rm === void 0) {\r\n rm = Ctor.rounding;\r\n } else {\r\n checkInt32(rm, 0, 8);\r\n }\r\n\r\n // If x is not finite, return x if y is not NaN, else NaN.\r\n if (!x.d) return y.s ? x : y;\r\n\r\n // If y is not finite, return Infinity with the sign of x if y is Infinity, else NaN.\r\n if (!y.d) {\r\n if (y.s) y.s = x.s;\r\n return y;\r\n }\r\n }\r\n\r\n // If y is not zero, calculate the nearest multiple of y to x.\r\n if (y.d[0]) {\r\n external = false;\r\n x = divide(x, y, 0, rm, 1).times(y);\r\n external = true;\r\n finalise(x);\r\n\r\n // If y is zero, return zero with the sign of x.\r\n } else {\r\n y.s = x.s;\r\n x = y;\r\n }\r\n\r\n return x;\r\n};\r\n\r\n\r\n/*\r\n * Return the value of this Decimal converted to a number primitive.\r\n * Zero keeps its sign.\r\n *\r\n */\r\nP.toNumber = function () {\r\n return +this;\r\n};\r\n\r\n\r\n/*\r\n * Return a string representing the value of this Decimal in base 8, round to `sd` significant\r\n * digits using rounding mode `rm`.\r\n *\r\n * If the optional `sd` argument is present then return binary exponential notation.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\nP.toOctal = function (sd, rm) {\r\n return toStringBinary(this, 8, sd, rm);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the value of this Decimal raised to the power `y`, rounded\r\n * to `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * ECMAScript compliant.\r\n *\r\n * pow(x, NaN) = NaN\r\n * pow(x, ±0) = 1\r\n\r\n * pow(NaN, non-zero) = NaN\r\n * pow(abs(x) > 1, +Infinity) = +Infinity\r\n * pow(abs(x) > 1, -Infinity) = +0\r\n * pow(abs(x) == 1, ±Infinity) = NaN\r\n * pow(abs(x) < 1, +Infinity) = +0\r\n * pow(abs(x) < 1, -Infinity) = +Infinity\r\n * pow(+Infinity, y > 0) = +Infinity\r\n * pow(+Infinity, y < 0) = +0\r\n * pow(-Infinity, odd integer > 0) = -Infinity\r\n * pow(-Infinity, even integer > 0) = +Infinity\r\n * pow(-Infinity, odd integer < 0) = -0\r\n * pow(-Infinity, even integer < 0) = +0\r\n * pow(+0, y > 0) = +0\r\n * pow(+0, y < 0) = +Infinity\r\n * pow(-0, odd integer > 0) = -0\r\n * pow(-0, even integer > 0) = +0\r\n * pow(-0, odd integer < 0) = -Infinity\r\n * pow(-0, even integer < 0) = +Infinity\r\n * pow(finite x < 0, finite non-integer) = NaN\r\n *\r\n * For non-integer or very large exponents pow(x, y) is calculated using\r\n *\r\n * x^y = exp(y*ln(x))\r\n *\r\n * Assuming the first 15 rounding digits are each equally likely to be any digit 0-9, the\r\n * probability of an incorrectly rounded result\r\n * P([49]9{14} | [50]0{14}) = 2 * 0.2 * 10^-14 = 4e-15 = 1/2.5e+14\r\n * i.e. 1 in 250,000,000,000,000\r\n *\r\n * If a result is incorrectly rounded the maximum error will be 1 ulp (unit in last place).\r\n *\r\n * y {number|string|bigint|Decimal} The power to which to raise this Decimal.\r\n *\r\n */\r\nP.toPower = P.pow = function (y) {\r\n var e, k, pr, r, rm, s,\r\n x = this,\r\n Ctor = x.constructor,\r\n yn = +(y = new Ctor(y));\r\n\r\n // Either ±Infinity, NaN or ±0?\r\n if (!x.d || !y.d || !x.d[0] || !y.d[0]) return new Ctor(mathpow(+x, yn));\r\n\r\n x = new Ctor(x);\r\n\r\n if (x.eq(1)) return x;\r\n\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n\r\n if (y.eq(1)) return finalise(x, pr, rm);\r\n\r\n // y exponent\r\n e = mathfloor(y.e / LOG_BASE);\r\n\r\n // If y is a small integer use the 'exponentiation by squaring' algorithm.\r\n if (e >= y.d.length - 1 && (k = yn < 0 ? -yn : yn) <= MAX_SAFE_INTEGER) {\r\n r = intPow(Ctor, x, k, pr);\r\n return y.s < 0 ? new Ctor(1).div(r) : finalise(r, pr, rm);\r\n }\r\n\r\n s = x.s;\r\n\r\n // if x is negative\r\n if (s < 0) {\r\n\r\n // if y is not an integer\r\n if (e < y.d.length - 1) return new Ctor(NaN);\r\n\r\n // Result is positive if x is negative and the last digit of integer y is even.\r\n if ((y.d[e] & 1) == 0) s = 1;\r\n\r\n // if x.eq(-1)\r\n if (x.e == 0 && x.d[0] == 1 && x.d.length == 1) {\r\n x.s = s;\r\n return x;\r\n }\r\n }\r\n\r\n // Estimate result exponent.\r\n // x^y = 10^e, where e = y * log10(x)\r\n // log10(x) = log10(x_significand) + x_exponent\r\n // log10(x_significand) = ln(x_significand) / ln(10)\r\n k = mathpow(+x, yn);\r\n e = k == 0 || !isFinite(k)\r\n ? mathfloor(yn * (Math.log('0.' + digitsToString(x.d)) / Math.LN10 + x.e + 1))\r\n : new Ctor(k + '').e;\r\n\r\n // Exponent estimate may be incorrect e.g. x: 0.999999999999999999, y: 2.29, e: 0, r.e: -1.\r\n\r\n // Overflow/underflow?\r\n if (e > Ctor.maxE + 1 || e < Ctor.minE - 1) return new Ctor(e > 0 ? s / 0 : 0);\r\n\r\n external = false;\r\n Ctor.rounding = x.s = 1;\r\n\r\n // Estimate the extra guard digits needed to ensure five correct rounding digits from\r\n // naturalLogarithm(x). Example of failure without these extra digits (precision: 10):\r\n // new Decimal(2.32456).pow('2087987436534566.46411')\r\n // should be 1.162377823e+764914905173815, but is 1.162355823e+764914905173815\r\n k = Math.min(12, (e + '').length);\r\n\r\n // r = x^y = exp(y*ln(x))\r\n r = naturalExponential(y.times(naturalLogarithm(x, pr + k)), pr);\r\n\r\n // r may be Infinity, e.g. (0.9999999999999999).pow(-1e+40)\r\n if (r.d) {\r\n\r\n // Truncate to the required precision plus five rounding digits.\r\n r = finalise(r, pr + 5, 1);\r\n\r\n // If the rounding digits are [49]9999 or [50]0000 increase the precision by 10 and recalculate\r\n // the result.\r\n if (checkRoundingDigits(r.d, pr, rm)) {\r\n e = pr + 10;\r\n\r\n // Truncate to the increased precision plus five rounding digits.\r\n r = finalise(naturalExponential(y.times(naturalLogarithm(x, e + k)), e), e + 5, 1);\r\n\r\n // Check for 14 nines from the 2nd rounding digit (the first rounding digit may be 4 or 9).\r\n if (+digitsToString(r.d).slice(pr + 1, pr + 15) + 1 == 1e14) {\r\n r = finalise(r, pr + 1, 0);\r\n }\r\n }\r\n }\r\n\r\n r.s = s;\r\n external = true;\r\n Ctor.rounding = rm;\r\n\r\n return finalise(r, pr, rm);\r\n};\r\n\r\n\r\n/*\r\n * Return a string representing the value of this Decimal rounded to `sd` significant digits\r\n * using rounding mode `rounding`.\r\n *\r\n * Return exponential notation if `sd` is less than the number of digits necessary to represent\r\n * the integer part of the value in normal notation.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\nP.toPrecision = function (sd, rm) {\r\n var str,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (sd === void 0) {\r\n str = finiteToString(x, x.e <= Ctor.toExpNeg || x.e >= Ctor.toExpPos);\r\n } else {\r\n checkInt32(sd, 1, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n x = finalise(new Ctor(x), sd, rm);\r\n str = finiteToString(x, sd <= x.e || x.e <= Ctor.toExpNeg, sd);\r\n }\r\n\r\n return x.isNeg() && !x.isZero() ? '-' + str : str;\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a maximum of `sd`\r\n * significant digits using rounding mode `rm`, or to `precision` and `rounding` respectively if\r\n * omitted.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * 'toSD() digits out of range: {sd}'\r\n * 'toSD() digits not an integer: {sd}'\r\n * 'toSD() rounding mode not an integer: {rm}'\r\n * 'toSD() rounding mode out of range: {rm}'\r\n *\r\n */\r\nP.toSignificantDigits = P.toSD = function (sd, rm) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n\r\n if (sd === void 0) {\r\n sd = Ctor.precision;\r\n rm = Ctor.rounding;\r\n } else {\r\n checkInt32(sd, 1, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n }\r\n\r\n return finalise(new Ctor(x), sd, rm);\r\n};\r\n\r\n\r\n/*\r\n * Return a string representing the value of this Decimal.\r\n *\r\n * Return exponential notation if this Decimal has a positive exponent equal to or greater than\r\n * `toExpPos`, or a negative exponent equal to or less than `toExpNeg`.\r\n *\r\n */\r\nP.toString = function () {\r\n var x = this,\r\n Ctor = x.constructor,\r\n str = finiteToString(x, x.e <= Ctor.toExpNeg || x.e >= Ctor.toExpPos);\r\n\r\n return x.isNeg() && !x.isZero() ? '-' + str : str;\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the value of this Decimal truncated to a whole number.\r\n *\r\n */\r\nP.truncated = P.trunc = function () {\r\n return finalise(new this.constructor(this), this.e + 1, 1);\r\n};\r\n\r\n\r\n/*\r\n * Return a string representing the value of this Decimal.\r\n * Unlike `toString`, negative zero will include the minus sign.\r\n *\r\n */\r\nP.valueOf = P.toJSON = function () {\r\n var x = this,\r\n Ctor = x.constructor,\r\n str = finiteToString(x, x.e <= Ctor.toExpNeg || x.e >= Ctor.toExpPos);\r\n\r\n return x.isNeg() ? '-' + str : str;\r\n};\r\n\r\n\r\n// Helper functions for Decimal.prototype (P) and/or Decimal methods, and their callers.\r\n\r\n\r\n/*\r\n * digitsToString P.cubeRoot, P.logarithm, P.squareRoot, P.toFraction, P.toPower,\r\n * finiteToString, naturalExponential, naturalLogarithm\r\n * checkInt32 P.toDecimalPlaces, P.toExponential, P.toFixed, P.toNearest,\r\n * P.toPrecision, P.toSignificantDigits, toStringBinary, random\r\n * checkRoundingDigits P.logarithm, P.toPower, naturalExponential, naturalLogarithm\r\n * convertBase toStringBinary, parseOther\r\n * cos P.cos\r\n * divide P.atanh, P.cubeRoot, P.dividedBy, P.dividedToIntegerBy,\r\n * P.logarithm, P.modulo, P.squareRoot, P.tan, P.tanh, P.toFraction,\r\n * P.toNearest, toStringBinary, naturalExponential, naturalLogarithm,\r\n * taylorSeries, atan2, parseOther\r\n * finalise P.absoluteValue, P.atan, P.atanh, P.ceil, P.cos, P.cosh,\r\n * P.cubeRoot, P.dividedToIntegerBy, P.floor, P.logarithm, P.minus,\r\n * P.modulo, P.negated, P.plus, P.round, P.sin, P.sinh, P.squareRoot,\r\n * P.tan, P.times, P.toDecimalPlaces, P.toExponential, P.toFixed,\r\n * P.toNearest, P.toPower, P.toPrecision, P.toSignificantDigits,\r\n * P.truncated, divide, getLn10, getPi, naturalExponential,\r\n * naturalLogarithm, ceil, floor, round, trunc\r\n * finiteToString P.toExponential, P.toFixed, P.toPrecision, P.toString, P.valueOf,\r\n * toStringBinary\r\n * getBase10Exponent P.minus, P.plus, P.times, parseOther\r\n * getLn10 P.logarithm, naturalLogarithm\r\n * getPi P.acos, P.asin, P.atan, toLessThanHalfPi, atan2\r\n * getPrecision P.precision, P.toFraction\r\n * getZeroString digitsToString, finiteToString\r\n * intPow P.toPower, parseOther\r\n * isOdd toLessThanHalfPi\r\n * maxOrMin max, min\r\n * naturalExponential P.naturalExponential, P.toPower\r\n * naturalLogarithm P.acosh, P.asinh, P.atanh, P.logarithm, P.naturalLogarithm,\r\n * P.toPower, naturalExponential\r\n * nonFiniteToString finiteToString, toStringBinary\r\n * parseDecimal Decimal\r\n * parseOther Decimal\r\n * sin P.sin\r\n * taylorSeries P.cosh, P.sinh, cos, sin\r\n * toLessThanHalfPi P.cos, P.sin\r\n * toStringBinary P.toBinary, P.toHexadecimal, P.toOctal\r\n * truncate intPow\r\n *\r\n * Throws: P.logarithm, P.precision, P.toFraction, checkInt32, getLn10, getPi,\r\n * naturalLogarithm, config, parseOther, random, Decimal\r\n */\r\n\r\n\r\nfunction digitsToString(d) {\r\n var i, k, ws,\r\n indexOfLastWord = d.length - 1,\r\n str = '',\r\n w = d[0];\r\n\r\n if (indexOfLastWord > 0) {\r\n str += w;\r\n for (i = 1; i < indexOfLastWord; i++) {\r\n ws = d[i] + '';\r\n k = LOG_BASE - ws.length;\r\n if (k) str += getZeroString(k);\r\n str += ws;\r\n }\r\n\r\n w = d[i];\r\n ws = w + '';\r\n k = LOG_BASE - ws.length;\r\n if (k) str += getZeroString(k);\r\n } else if (w === 0) {\r\n return '0';\r\n }\r\n\r\n // Remove trailing zeros of last w.\r\n for (; w % 10 === 0;) w /= 10;\r\n\r\n return str + w;\r\n}\r\n\r\n\r\nfunction checkInt32(i, min, max) {\r\n if (i !== ~~i || i < min || i > max) {\r\n throw Error(invalidArgument + i);\r\n }\r\n}\r\n\r\n\r\n/*\r\n * Check 5 rounding digits if `repeating` is null, 4 otherwise.\r\n * `repeating == null` if caller is `log` or `pow`,\r\n * `repeating != null` if caller is `naturalLogarithm` or `naturalExponential`.\r\n */\r\nfunction checkRoundingDigits(d, i, rm, repeating) {\r\n var di, k, r, rd;\r\n\r\n // Get the length of the first word of the array d.\r\n for (k = d[0]; k >= 10; k /= 10) --i;\r\n\r\n // Is the rounding digit in the first word of d?\r\n if (--i < 0) {\r\n i += LOG_BASE;\r\n di = 0;\r\n } else {\r\n di = Math.ceil((i + 1) / LOG_BASE);\r\n i %= LOG_BASE;\r\n }\r\n\r\n // i is the index (0 - 6) of the rounding digit.\r\n // E.g. if within the word 3487563 the first rounding digit is 5,\r\n // then i = 4, k = 1000, rd = 3487563 % 1000 = 563\r\n k = mathpow(10, LOG_BASE - i);\r\n rd = d[di] % k | 0;\r\n\r\n if (repeating == null) {\r\n if (i < 3) {\r\n if (i == 0) rd = rd / 100 | 0;\r\n else if (i == 1) rd = rd / 10 | 0;\r\n r = rm < 4 && rd == 99999 || rm > 3 && rd == 49999 || rd == 50000 || rd == 0;\r\n } else {\r\n r = (rm < 4 && rd + 1 == k || rm > 3 && rd + 1 == k / 2) &&\r\n (d[di + 1] / k / 100 | 0) == mathpow(10, i - 2) - 1 ||\r\n (rd == k / 2 || rd == 0) && (d[di + 1] / k / 100 | 0) == 0;\r\n }\r\n } else {\r\n if (i < 4) {\r\n if (i == 0) rd = rd / 1000 | 0;\r\n else if (i == 1) rd = rd / 100 | 0;\r\n else if (i == 2) rd = rd / 10 | 0;\r\n r = (repeating || rm < 4) && rd == 9999 || !repeating && rm > 3 && rd == 4999;\r\n } else {\r\n r = ((repeating || rm < 4) && rd + 1 == k ||\r\n (!repeating && rm > 3) && rd + 1 == k / 2) &&\r\n (d[di + 1] / k / 1000 | 0) == mathpow(10, i - 3) - 1;\r\n }\r\n }\r\n\r\n return r;\r\n}\r\n\r\n\r\n// Convert string of `baseIn` to an array of numbers of `baseOut`.\r\n// Eg. convertBase('255', 10, 16) returns [15, 15].\r\n// Eg. convertBase('ff', 16, 10) returns [2, 5, 5].\r\nfunction convertBase(str, baseIn, baseOut) {\r\n var j,\r\n arr = [0],\r\n arrL,\r\n i = 0,\r\n strL = str.length;\r\n\r\n for (; i < strL;) {\r\n for (arrL = arr.length; arrL--;) arr[arrL] *= baseIn;\r\n arr[0] += NUMERALS.indexOf(str.charAt(i++));\r\n for (j = 0; j < arr.length; j++) {\r\n if (arr[j] > baseOut - 1) {\r\n if (arr[j + 1] === void 0) arr[j + 1] = 0;\r\n arr[j + 1] += arr[j] / baseOut | 0;\r\n arr[j] %= baseOut;\r\n }\r\n }\r\n }\r\n\r\n return arr.reverse();\r\n}\r\n\r\n\r\n/*\r\n * cos(x) = 1 - x^2/2! + x^4/4! - ...\r\n * |x| < pi/2\r\n *\r\n */\r\nfunction cosine(Ctor, x) {\r\n var k, len, y;\r\n\r\n if (x.isZero()) return x;\r\n\r\n // Argument reduction: cos(4x) = 8*(cos^4(x) - cos^2(x)) + 1\r\n // i.e. cos(x) = 8*(cos^4(x/4) - cos^2(x/4)) + 1\r\n\r\n // Estimate the optimum number of times to use the argument reduction.\r\n len = x.d.length;\r\n if (len < 32) {\r\n k = Math.ceil(len / 3);\r\n y = (1 / tinyPow(4, k)).toString();\r\n } else {\r\n k = 16;\r\n y = '2.3283064365386962890625e-10';\r\n }\r\n\r\n Ctor.precision += k;\r\n\r\n x = taylorSeries(Ctor, 1, x.times(y), new Ctor(1));\r\n\r\n // Reverse argument reduction\r\n for (var i = k; i--;) {\r\n var cos2x = x.times(x);\r\n x = cos2x.times(cos2x).minus(cos2x).times(8).plus(1);\r\n }\r\n\r\n Ctor.precision -= k;\r\n\r\n return x;\r\n}\r\n\r\n\r\n/*\r\n * Perform division in the specified base.\r\n */\r\nvar divide = (function () {\r\n\r\n // Assumes non-zero x and k, and hence non-zero result.\r\n function multiplyInteger(x, k, base) {\r\n var temp,\r\n carry = 0,\r\n i = x.length;\r\n\r\n for (x = x.slice(); i--;) {\r\n temp = x[i] * k + carry;\r\n x[i] = temp % base | 0;\r\n carry = temp / base | 0;\r\n }\r\n\r\n if (carry) x.unshift(carry);\r\n\r\n return x;\r\n }\r\n\r\n function compare(a, b, aL, bL) {\r\n var i, r;\r\n\r\n if (aL != bL) {\r\n r = aL > bL ? 1 : -1;\r\n } else {\r\n for (i = r = 0; i < aL; i++) {\r\n if (a[i] != b[i]) {\r\n r = a[i] > b[i] ? 1 : -1;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return r;\r\n }\r\n\r\n function subtract(a, b, aL, base) {\r\n var i = 0;\r\n\r\n // Subtract b from a.\r\n for (; aL--;) {\r\n a[aL] -= i;\r\n i = a[aL] < b[aL] ? 1 : 0;\r\n a[aL] = i * base + a[aL] - b[aL];\r\n }\r\n\r\n // Remove leading zeros.\r\n for (; !a[0] && a.length > 1;) a.shift();\r\n }\r\n\r\n return function (x, y, pr, rm, dp, base) {\r\n var cmp, e, i, k, logBase, more, prod, prodL, q, qd, rem, remL, rem0, sd, t, xi, xL, yd0,\r\n yL, yz,\r\n Ctor = x.constructor,\r\n sign = x.s == y.s ? 1 : -1,\r\n xd = x.d,\r\n yd = y.d;\r\n\r\n // Either NaN, Infinity or 0?\r\n if (!xd || !xd[0] || !yd || !yd[0]) {\r\n\r\n return new Ctor(// Return NaN if either NaN, or both Infinity or 0.\r\n !x.s || !y.s || (xd ? yd && xd[0] == yd[0] : !yd) ? NaN :\r\n\r\n // Return ±0 if x is 0 or y is ±Infinity, or return ±Infinity as y is 0.\r\n xd && xd[0] == 0 || !yd ? sign * 0 : sign / 0);\r\n }\r\n\r\n if (base) {\r\n logBase = 1;\r\n e = x.e - y.e;\r\n } else {\r\n base = BASE;\r\n logBase = LOG_BASE;\r\n e = mathfloor(x.e / logBase) - mathfloor(y.e / logBase);\r\n }\r\n\r\n yL = yd.length;\r\n xL = xd.length;\r\n q = new Ctor(sign);\r\n qd = q.d = [];\r\n\r\n // Result exponent may be one less than e.\r\n // The digit array of a Decimal from toStringBinary may have trailing zeros.\r\n for (i = 0; yd[i] == (xd[i] || 0); i++);\r\n\r\n if (yd[i] > (xd[i] || 0)) e--;\r\n\r\n if (pr == null) {\r\n sd = pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n } else if (dp) {\r\n sd = pr + (x.e - y.e) + 1;\r\n } else {\r\n sd = pr;\r\n }\r\n\r\n if (sd < 0) {\r\n qd.push(1);\r\n more = true;\r\n } else {\r\n\r\n // Convert precision in number of base 10 digits to base 1e7 digits.\r\n sd = sd / logBase + 2 | 0;\r\n i = 0;\r\n\r\n // divisor < 1e7\r\n if (yL == 1) {\r\n k = 0;\r\n yd = yd[0];\r\n sd++;\r\n\r\n // k is the carry.\r\n for (; (i < xL || k) && sd--; i++) {\r\n t = k * base + (xd[i] || 0);\r\n qd[i] = t / yd | 0;\r\n k = t % yd | 0;\r\n }\r\n\r\n more = k || i < xL;\r\n\r\n // divisor >= 1e7\r\n } else {\r\n\r\n // Normalise xd and yd so highest order digit of yd is >= base/2\r\n k = base / (yd[0] + 1) | 0;\r\n\r\n if (k > 1) {\r\n yd = multiplyInteger(yd, k, base);\r\n xd = multiplyInteger(xd, k, base);\r\n yL = yd.length;\r\n xL = xd.length;\r\n }\r\n\r\n xi = yL;\r\n rem = xd.slice(0, yL);\r\n remL = rem.length;\r\n\r\n // Add zeros to make remainder as long as divisor.\r\n for (; remL < yL;) rem[remL++] = 0;\r\n\r\n yz = yd.slice();\r\n yz.unshift(0);\r\n yd0 = yd[0];\r\n\r\n if (yd[1] >= base / 2) ++yd0;\r\n\r\n do {\r\n k = 0;\r\n\r\n // Compare divisor and remainder.\r\n cmp = compare(yd, rem, yL, remL);\r\n\r\n // If divisor < remainder.\r\n if (cmp < 0) {\r\n\r\n // Calculate trial digit, k.\r\n rem0 = rem[0];\r\n if (yL != remL) rem0 = rem0 * base + (rem[1] || 0);\r\n\r\n // k will be how many times the divisor goes into the current remainder.\r\n k = rem0 / yd0 | 0;\r\n\r\n // Algorithm:\r\n // 1. product = divisor * trial digit (k)\r\n // 2. if product > remainder: product -= divisor, k--\r\n // 3. remainder -= product\r\n // 4. if product was < remainder at 2:\r\n // 5. compare new remainder and divisor\r\n // 6. If remainder > divisor: remainder -= divisor, k++\r\n\r\n if (k > 1) {\r\n if (k >= base) k = base - 1;\r\n\r\n // product = divisor * trial digit.\r\n prod = multiplyInteger(yd, k, base);\r\n prodL = prod.length;\r\n remL = rem.length;\r\n\r\n // Compare product and remainder.\r\n cmp = compare(prod, rem, prodL, remL);\r\n\r\n // product > remainder.\r\n if (cmp == 1) {\r\n k--;\r\n\r\n // Subtract divisor from product.\r\n subtract(prod, yL < prodL ? yz : yd, prodL, base);\r\n }\r\n } else {\r\n\r\n // cmp is -1.\r\n // If k is 0, there is no need to compare yd and rem again below, so change cmp to 1\r\n // to avoid it. If k is 1 there is a need to compare yd and rem again below.\r\n if (k == 0) cmp = k = 1;\r\n prod = yd.slice();\r\n }\r\n\r\n prodL = prod.length;\r\n if (prodL < remL) prod.unshift(0);\r\n\r\n // Subtract product from remainder.\r\n subtract(rem, prod, remL, base);\r\n\r\n // If product was < previous remainder.\r\n if (cmp == -1) {\r\n remL = rem.length;\r\n\r\n // Compare divisor and new remainder.\r\n cmp = compare(yd, rem, yL, remL);\r\n\r\n // If divisor < new remainder, subtract divisor from remainder.\r\n if (cmp < 1) {\r\n k++;\r\n\r\n // Subtract divisor from remainder.\r\n subtract(rem, yL < remL ? yz : yd, remL, base);\r\n }\r\n }\r\n\r\n remL = rem.length;\r\n } else if (cmp === 0) {\r\n k++;\r\n rem = [0];\r\n } // if cmp === 1, k will be 0\r\n\r\n // Add the next digit, k, to the result array.\r\n qd[i++] = k;\r\n\r\n // Update the remainder.\r\n if (cmp && rem[0]) {\r\n rem[remL++] = xd[xi] || 0;\r\n } else {\r\n rem = [xd[xi]];\r\n remL = 1;\r\n }\r\n\r\n } while ((xi++ < xL || rem[0] !== void 0) && sd--);\r\n\r\n more = rem[0] !== void 0;\r\n }\r\n\r\n // Leading zero?\r\n if (!qd[0]) qd.shift();\r\n }\r\n\r\n // logBase is 1 when divide is being used for base conversion.\r\n if (logBase == 1) {\r\n q.e = e;\r\n inexact = more;\r\n } else {\r\n\r\n // To calculate q.e, first get the number of digits of qd[0].\r\n for (i = 1, k = qd[0]; k >= 10; k /= 10) i++;\r\n q.e = i + e * logBase - 1;\r\n\r\n finalise(q, dp ? pr + q.e + 1 : pr, rm, more);\r\n }\r\n\r\n return q;\r\n };\r\n})();\r\n\r\n\r\n/*\r\n * Round `x` to `sd` significant digits using rounding mode `rm`.\r\n * Check for over/under-flow.\r\n */\r\n function finalise(x, sd, rm, isTruncated) {\r\n var digits, i, j, k, rd, roundUp, w, xd, xdi,\r\n Ctor = x.constructor;\r\n\r\n // Don't round if sd is null or undefined.\r\n out: if (sd != null) {\r\n xd = x.d;\r\n\r\n // Infinity/NaN.\r\n if (!xd) return x;\r\n\r\n // rd: the rounding digit, i.e. the digit after the digit that may be rounded up.\r\n // w: the word of xd containing rd, a base 1e7 number.\r\n // xdi: the index of w within xd.\r\n // digits: the number of digits of w.\r\n // i: what would be the index of rd within w if all the numbers were 7 digits long (i.e. if\r\n // they had leading zeros)\r\n // j: if > 0, the actual index of rd within w (if < 0, rd is a leading zero).\r\n\r\n // Get the length of the first word of the digits array xd.\r\n for (digits = 1, k = xd[0]; k >= 10; k /= 10) digits++;\r\n i = sd - digits;\r\n\r\n // Is the rounding digit in the first word of xd?\r\n if (i < 0) {\r\n i += LOG_BASE;\r\n j = sd;\r\n w = xd[xdi = 0];\r\n\r\n // Get the rounding digit at index j of w.\r\n rd = w / mathpow(10, digits - j - 1) % 10 | 0;\r\n } else {\r\n xdi = Math.ceil((i + 1) / LOG_BASE);\r\n k = xd.length;\r\n if (xdi >= k) {\r\n if (isTruncated) {\r\n\r\n // Needed by `naturalExponential`, `naturalLogarithm` and `squareRoot`.\r\n for (; k++ <= xdi;) xd.push(0);\r\n w = rd = 0;\r\n digits = 1;\r\n i %= LOG_BASE;\r\n j = i - LOG_BASE + 1;\r\n } else {\r\n break out;\r\n }\r\n } else {\r\n w = k = xd[xdi];\r\n\r\n // Get the number of digits of w.\r\n for (digits = 1; k >= 10; k /= 10) digits++;\r\n\r\n // Get the index of rd within w.\r\n i %= LOG_BASE;\r\n\r\n // Get the index of rd within w, adjusted for leading zeros.\r\n // The number of leading zeros of w is given by LOG_BASE - digits.\r\n j = i - LOG_BASE + digits;\r\n\r\n // Get the rounding digit at index j of w.\r\n rd = j < 0 ? 0 : w / mathpow(10, digits - j - 1) % 10 | 0;\r\n }\r\n }\r\n\r\n // Are there any non-zero digits after the rounding digit?\r\n isTruncated = isTruncated || sd < 0 ||\r\n xd[xdi + 1] !== void 0 || (j < 0 ? w : w % mathpow(10, digits - j - 1));\r\n\r\n // The expression `w % mathpow(10, digits - j - 1)` returns all the digits of w to the right\r\n // of the digit at (left-to-right) index j, e.g. if w is 908714 and j is 2, the expression\r\n // will give 714.\r\n\r\n roundUp = rm < 4\r\n ? (rd || isTruncated) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))\r\n : rd > 5 || rd == 5 && (rm == 4 || isTruncated || rm == 6 &&\r\n\r\n // Check whether the digit to the left of the rounding digit is odd.\r\n ((i > 0 ? j > 0 ? w / mathpow(10, digits - j) : 0 : xd[xdi - 1]) % 10) & 1 ||\r\n rm == (x.s < 0 ? 8 : 7));\r\n\r\n if (sd < 1 || !xd[0]) {\r\n xd.length = 0;\r\n if (roundUp) {\r\n\r\n // Convert sd to decimal places.\r\n sd -= x.e + 1;\r\n\r\n // 1, 0.1, 0.01, 0.001, 0.0001 etc.\r\n xd[0] = mathpow(10, (LOG_BASE - sd % LOG_BASE) % LOG_BASE);\r\n x.e = -sd || 0;\r\n } else {\r\n\r\n // Zero.\r\n xd[0] = x.e = 0;\r\n }\r\n\r\n return x;\r\n }\r\n\r\n // Remove excess digits.\r\n if (i == 0) {\r\n xd.length = xdi;\r\n k = 1;\r\n xdi--;\r\n } else {\r\n xd.length = xdi + 1;\r\n k = mathpow(10, LOG_BASE - i);\r\n\r\n // E.g. 56700 becomes 56000 if 7 is the rounding digit.\r\n // j > 0 means i > number of leading zeros of w.\r\n xd[xdi] = j > 0 ? (w / mathpow(10, digits - j) % mathpow(10, j) | 0) * k : 0;\r\n }\r\n\r\n if (roundUp) {\r\n for (;;) {\r\n\r\n // Is the digit to be rounded up in the first word of xd?\r\n if (xdi == 0) {\r\n\r\n // i will be the length of xd[0] before k is added.\r\n for (i = 1, j = xd[0]; j >= 10; j /= 10) i++;\r\n j = xd[0] += k;\r\n for (k = 1; j >= 10; j /= 10) k++;\r\n\r\n // if i != k the length has increased.\r\n if (i != k) {\r\n x.e++;\r\n if (xd[0] == BASE) xd[0] = 1;\r\n }\r\n\r\n break;\r\n } else {\r\n xd[xdi] += k;\r\n if (xd[xdi] != BASE) break;\r\n xd[xdi--] = 0;\r\n k = 1;\r\n }\r\n }\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (i = xd.length; xd[--i] === 0;) xd.pop();\r\n }\r\n\r\n if (external) {\r\n\r\n // Overflow?\r\n if (x.e > Ctor.maxE) {\r\n\r\n // Infinity.\r\n x.d = null;\r\n x.e = NaN;\r\n\r\n // Underflow?\r\n } else if (x.e < Ctor.minE) {\r\n\r\n // Zero.\r\n x.e = 0;\r\n x.d = [0];\r\n // Ctor.underflow = true;\r\n } // else Ctor.underflow = false;\r\n }\r\n\r\n return x;\r\n}\r\n\r\n\r\nfunction finiteToString(x, isExp, sd) {\r\n if (!x.isFinite()) return nonFiniteToString(x);\r\n var k,\r\n e = x.e,\r\n str = digitsToString(x.d),\r\n len = str.length;\r\n\r\n if (isExp) {\r\n if (sd && (k = sd - len) > 0) {\r\n str = str.charAt(0) + '.' + str.slice(1) + getZeroString(k);\r\n } else if (len > 1) {\r\n str = str.charAt(0) + '.' + str.slice(1);\r\n }\r\n\r\n str = str + (x.e < 0 ? 'e' : 'e+') + x.e;\r\n } else if (e < 0) {\r\n str = '0.' + getZeroString(-e - 1) + str;\r\n if (sd && (k = sd - len) > 0) str += getZeroString(k);\r\n } else if (e >= len) {\r\n str += getZeroString(e + 1 - len);\r\n if (sd && (k = sd - e - 1) > 0) str = str + '.' + getZeroString(k);\r\n } else {\r\n if ((k = e + 1) < len) str = str.slice(0, k) + '.' + str.slice(k);\r\n if (sd && (k = sd - len) > 0) {\r\n if (e + 1 === len) str += '.';\r\n str += getZeroString(k);\r\n }\r\n }\r\n\r\n return str;\r\n}\r\n\r\n\r\n// Calculate the base 10 exponent from the base 1e7 exponent.\r\nfunction getBase10Exponent(digits, e) {\r\n var w = digits[0];\r\n\r\n // Add the number of digits of the first word of the digits array.\r\n for ( e *= LOG_BASE; w >= 10; w /= 10) e++;\r\n return e;\r\n}\r\n\r\n\r\nfunction getLn10(Ctor, sd, pr) {\r\n if (sd > LN10_PRECISION) {\r\n\r\n // Reset global state in case the exception is caught.\r\n external = true;\r\n if (pr) Ctor.precision = pr;\r\n throw Error(precisionLimitExceeded);\r\n }\r\n return finalise(new Ctor(LN10), sd, 1, true);\r\n}\r\n\r\n\r\nfunction getPi(Ctor, sd, rm) {\r\n if (sd > PI_PRECISION) throw Error(precisionLimitExceeded);\r\n return finalise(new Ctor(PI), sd, rm, true);\r\n}\r\n\r\n\r\nfunction getPrecision(digits) {\r\n var w = digits.length - 1,\r\n len = w * LOG_BASE + 1;\r\n\r\n w = digits[w];\r\n\r\n // If non-zero...\r\n if (w) {\r\n\r\n // Subtract the number of trailing zeros of the last word.\r\n for (; w % 10 == 0; w /= 10) len--;\r\n\r\n // Add the number of digits of the first word.\r\n for (w = digits[0]; w >= 10; w /= 10) len++;\r\n }\r\n\r\n return len;\r\n}\r\n\r\n\r\nfunction getZeroString(k) {\r\n var zs = '';\r\n for (; k--;) zs += '0';\r\n return zs;\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the value of Decimal `x` to the power `n`, where `n` is an\r\n * integer of type number.\r\n *\r\n * Implements 'exponentiation by squaring'. Called by `pow` and `parseOther`.\r\n *\r\n */\r\nfunction intPow(Ctor, x, n, pr) {\r\n var isTruncated,\r\n r = new Ctor(1),\r\n\r\n // Max n of 9007199254740991 takes 53 loop iterations.\r\n // Maximum digits array length; leaves [28, 34] guard digits.\r\n k = Math.ceil(pr / LOG_BASE + 4);\r\n\r\n external = false;\r\n\r\n for (;;) {\r\n if (n % 2) {\r\n r = r.times(x);\r\n if (truncate(r.d, k)) isTruncated = true;\r\n }\r\n\r\n n = mathfloor(n / 2);\r\n if (n === 0) {\r\n\r\n // To ensure correct rounding when r.d is truncated, increment the last word if it is zero.\r\n n = r.d.length - 1;\r\n if (isTruncated && r.d[n] === 0) ++r.d[n];\r\n break;\r\n }\r\n\r\n x = x.times(x);\r\n truncate(x.d, k);\r\n }\r\n\r\n external = true;\r\n\r\n return r;\r\n}\r\n\r\n\r\nfunction isOdd(n) {\r\n return n.d[n.d.length - 1] & 1;\r\n}\r\n\r\n\r\n/*\r\n * Handle `max` (`n` is -1) and `min` (`n` is 1).\r\n */\r\nfunction maxOrMin(Ctor, args, n) {\r\n var k, y,\r\n x = new Ctor(args[0]),\r\n i = 0;\r\n\r\n for (; ++i < args.length;) {\r\n y = new Ctor(args[i]);\r\n\r\n // NaN?\r\n if (!y.s) {\r\n x = y;\r\n break;\r\n }\r\n\r\n k = x.cmp(y);\r\n\r\n if (k === n || k === 0 && x.s === n) {\r\n x = y;\r\n }\r\n }\r\n\r\n return x;\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the natural exponential of `x` rounded to `sd` significant\r\n * digits.\r\n *\r\n * Taylor/Maclaurin series.\r\n *\r\n * exp(x) = x^0/0! + x^1/1! + x^2/2! + x^3/3! + ...\r\n *\r\n * Argument reduction:\r\n * Repeat x = x / 32, k += 5, until |x| < 0.1\r\n * exp(x) = exp(x / 2^k)^(2^k)\r\n *\r\n * Previously, the argument was initially reduced by\r\n * exp(x) = exp(r) * 10^k where r = x - k * ln10, k = floor(x / ln10)\r\n * to first put r in the range [0, ln10], before dividing by 32 until |x| < 0.1, but this was\r\n * found to be slower than just dividing repeatedly by 32 as above.\r\n *\r\n * Max integer argument: exp('20723265836946413') = 6.3e+9000000000000000\r\n * Min integer argument: exp('-20723265836946411') = 1.2e-9000000000000000\r\n * (Math object integer min/max: Math.exp(709) = 8.2e+307, Math.exp(-745) = 5e-324)\r\n *\r\n * exp(Infinity) = Infinity\r\n * exp(-Infinity) = 0\r\n * exp(NaN) = NaN\r\n * exp(±0) = 1\r\n *\r\n * exp(x) is non-terminating for any finite, non-zero x.\r\n *\r\n * The result will always be correctly rounded.\r\n *\r\n */\r\nfunction naturalExponential(x, sd) {\r\n var denominator, guard, j, pow, sum, t, wpr,\r\n rep = 0,\r\n i = 0,\r\n k = 0,\r\n Ctor = x.constructor,\r\n rm = Ctor.rounding,\r\n pr = Ctor.precision;\r\n\r\n // 0/NaN/Infinity?\r\n if (!x.d || !x.d[0] || x.e > 17) {\r\n\r\n return new Ctor(x.d\r\n ? !x.d[0] ? 1 : x.s < 0 ? 0 : 1 / 0\r\n : x.s ? x.s < 0 ? 0 : x : 0 / 0);\r\n }\r\n\r\n if (sd == null) {\r\n external = false;\r\n wpr = pr;\r\n } else {\r\n wpr = sd;\r\n }\r\n\r\n t = new Ctor(0.03125);\r\n\r\n // while abs(x) >= 0.1\r\n while (x.e > -2) {\r\n\r\n // x = x / 2^5\r\n x = x.times(t);\r\n k += 5;\r\n }\r\n\r\n // Use 2 * log10(2^k) + 5 (empirically derived) to estimate the increase in precision\r\n // necessary to ensure the first 4 rounding digits are correct.\r\n guard = Math.log(mathpow(2, k)) / Math.LN10 * 2 + 5 | 0;\r\n wpr += guard;\r\n denominator = pow = sum = new Ctor(1);\r\n Ctor.precision = wpr;\r\n\r\n for (;;) {\r\n pow = finalise(pow.times(x), wpr, 1);\r\n denominator = denominator.times(++i);\r\n t = sum.plus(divide(pow, denominator, wpr, 1));\r\n\r\n if (digitsToString(t.d).slice(0, wpr) === digitsToString(sum.d).slice(0, wpr)) {\r\n j = k;\r\n while (j--) sum = finalise(sum.times(sum), wpr, 1);\r\n\r\n // Check to see if the first 4 rounding digits are [49]999.\r\n // If so, repeat the summation with a higher precision, otherwise\r\n // e.g. with precision: 18, rounding: 1\r\n // exp(18.404272462595034083567793919843761) = 98372560.1229999999 (should be 98372560.123)\r\n // `wpr - guard` is the index of first rounding digit.\r\n if (sd == null) {\r\n\r\n if (rep < 3 && checkRoundingDigits(sum.d, wpr - guard, rm, rep)) {\r\n Ctor.precision = wpr += 10;\r\n denominator = pow = t = new Ctor(1);\r\n i = 0;\r\n rep++;\r\n } else {\r\n return finalise(sum, Ctor.precision = pr, rm, external = true);\r\n }\r\n } else {\r\n Ctor.precision = pr;\r\n return sum;\r\n }\r\n }\r\n\r\n sum = t;\r\n }\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the natural logarithm of `x` rounded to `sd` significant\r\n * digits.\r\n *\r\n * ln(-n) = NaN\r\n * ln(0) = -Infinity\r\n * ln(-0) = -Infinity\r\n * ln(1) = 0\r\n * ln(Infinity) = Infinity\r\n * ln(-Infinity) = NaN\r\n * ln(NaN) = NaN\r\n *\r\n * ln(n) (n != 1) is non-terminating.\r\n *\r\n */\r\nfunction naturalLogarithm(y, sd) {\r\n var c, c0, denominator, e, numerator, rep, sum, t, wpr, x1, x2,\r\n n = 1,\r\n guard = 10,\r\n x = y,\r\n xd = x.d,\r\n Ctor = x.constructor,\r\n rm = Ctor.rounding,\r\n pr = Ctor.precision;\r\n\r\n // Is x negative or Infinity, NaN, 0 or 1?\r\n if (x.s < 0 || !xd || !xd[0] || !x.e && xd[0] == 1 && xd.length == 1) {\r\n return new Ctor(xd && !xd[0] ? -1 / 0 : x.s != 1 ? NaN : xd ? 0 : x);\r\n }\r\n\r\n if (sd == null) {\r\n external = false;\r\n wpr = pr;\r\n } else {\r\n wpr = sd;\r\n }\r\n\r\n Ctor.precision = wpr += guard;\r\n c = digitsToString(xd);\r\n c0 = c.charAt(0);\r\n\r\n if (Math.abs(e = x.e) < 1.5e15) {\r\n\r\n // Argument reduction.\r\n // The series converges faster the closer the argument is to 1, so using\r\n // ln(a^b) = b * ln(a), ln(a) = ln(a^b) / b\r\n // multiply the argument by itself until the leading digits of the significand are 7, 8, 9,\r\n // 10, 11, 12 or 13, recording the number of multiplications so the sum of the series can\r\n // later be divided by this number, then separate out the power of 10 using\r\n // ln(a*10^b) = ln(a) + b*ln(10).\r\n\r\n // max n is 21 (gives 0.9, 1.0 or 1.1) (9e15 / 21 = 4.2e14).\r\n //while (c0 < 9 && c0 != 1 || c0 == 1 && c.charAt(1) > 1) {\r\n // max n is 6 (gives 0.7 - 1.3)\r\n while (c0 < 7 && c0 != 1 || c0 == 1 && c.charAt(1) > 3) {\r\n x = x.times(y);\r\n c = digitsToString(x.d);\r\n c0 = c.charAt(0);\r\n n++;\r\n }\r\n\r\n e = x.e;\r\n\r\n if (c0 > 1) {\r\n x = new Ctor('0.' + c);\r\n e++;\r\n } else {\r\n x = new Ctor(c0 + '.' + c.slice(1));\r\n }\r\n } else {\r\n\r\n // The argument reduction method above may result in overflow if the argument y is a massive\r\n // number with exponent >= 1500000000000000 (9e15 / 6 = 1.5e15), so instead recall this\r\n // function using ln(x*10^e) = ln(x) + e*ln(10).\r\n t = getLn10(Ctor, wpr + 2, pr).times(e + '');\r\n x = naturalLogarithm(new Ctor(c0 + '.' + c.slice(1)), wpr - guard).plus(t);\r\n Ctor.precision = pr;\r\n\r\n return sd == null ? finalise(x, pr, rm, external = true) : x;\r\n }\r\n\r\n // x1 is x reduced to a value near 1.\r\n x1 = x;\r\n\r\n // Taylor series.\r\n // ln(y) = ln((1 + x)/(1 - x)) = 2(x + x^3/3 + x^5/5 + x^7/7 + ...)\r\n // where x = (y - 1)/(y + 1) (|x| < 1)\r\n sum = numerator = x = divide(x.minus(1), x.plus(1), wpr, 1);\r\n x2 = finalise(x.times(x), wpr, 1);\r\n denominator = 3;\r\n\r\n for (;;) {\r\n numerator = finalise(numerator.times(x2), wpr, 1);\r\n t = sum.plus(divide(numerator, new Ctor(denominator), wpr, 1));\r\n\r\n if (digitsToString(t.d).slice(0, wpr) === digitsToString(sum.d).slice(0, wpr)) {\r\n sum = sum.times(2);\r\n\r\n // Reverse the argument reduction. Check that e is not 0 because, besides preventing an\r\n // unnecessary calculation, -0 + 0 = +0 and to ensure correct rounding -0 needs to stay -0.\r\n if (e !== 0) sum = sum.plus(getLn10(Ctor, wpr + 2, pr).times(e + ''));\r\n sum = divide(sum, new Ctor(n), wpr, 1);\r\n\r\n // Is rm > 3 and the first 4 rounding digits 4999, or rm < 4 (or the summation has\r\n // been repeated previously) and the first 4 rounding digits 9999?\r\n // If so, restart the summation with a higher precision, otherwise\r\n // e.g. with precision: 12, rounding: 1\r\n // ln(135520028.6126091714265381533) = 18.7246299999 when it should be 18.72463.\r\n // `wpr - guard` is the index of first rounding digit.\r\n if (sd == null) {\r\n if (checkRoundingDigits(sum.d, wpr - guard, rm, rep)) {\r\n Ctor.precision = wpr += guard;\r\n t = numerator = x = divide(x1.minus(1), x1.plus(1), wpr, 1);\r\n x2 = finalise(x.times(x), wpr, 1);\r\n denominator = rep = 1;\r\n } else {\r\n return finalise(sum, Ctor.precision = pr, rm, external = true);\r\n }\r\n } else {\r\n Ctor.precision = pr;\r\n return sum;\r\n }\r\n }\r\n\r\n sum = t;\r\n denominator += 2;\r\n }\r\n}\r\n\r\n\r\n// ±Infinity, NaN.\r\nfunction nonFiniteToString(x) {\r\n // Unsigned.\r\n return String(x.s * x.s / 0);\r\n}\r\n\r\n\r\n/*\r\n * Parse the value of a new Decimal `x` from string `str`.\r\n */\r\nfunction parseDecimal(x, str) {\r\n var e, i, len;\r\n\r\n // TODO BigInt str: no need to check for decimal point, exponential form or leading zeros.\r\n // Decimal point?\r\n if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');\r\n\r\n // Exponential form?\r\n if ((i = str.search(/e/i)) > 0) {\r\n\r\n // Determine exponent.\r\n if (e < 0) e = i;\r\n e += +str.slice(i + 1);\r\n str = str.substring(0, i);\r\n } else if (e < 0) {\r\n\r\n // Integer.\r\n e = str.length;\r\n }\r\n\r\n // Determine leading zeros.\r\n for (i = 0; str.charCodeAt(i) === 48; i++);\r\n\r\n // Determine trailing zeros.\r\n for (len = str.length; str.charCodeAt(len - 1) === 48; --len);\r\n str = str.slice(i, len);\r\n\r\n if (str) {\r\n len -= i;\r\n x.e = e = e - i - 1;\r\n x.d = [];\r\n\r\n // Transform base\r\n\r\n // e is the base 10 exponent.\r\n // i is where to slice str to get the first word of the digits array.\r\n i = (e + 1) % LOG_BASE;\r\n if (e < 0) i += LOG_BASE;\r\n\r\n if (i < len) {\r\n if (i) x.d.push(+str.slice(0, i));\r\n for (len -= LOG_BASE; i < len;) x.d.push(+str.slice(i, i += LOG_BASE));\r\n str = str.slice(i);\r\n i = LOG_BASE - str.length;\r\n } else {\r\n i -= len;\r\n }\r\n\r\n for (; i--;) str += '0';\r\n x.d.push(+str);\r\n\r\n if (external) {\r\n\r\n // Overflow?\r\n if (x.e > x.constructor.maxE) {\r\n\r\n // Infinity.\r\n x.d = null;\r\n x.e = NaN;\r\n\r\n // Underflow?\r\n } else if (x.e < x.constructor.minE) {\r\n\r\n // Zero.\r\n x.e = 0;\r\n x.d = [0];\r\n // x.constructor.underflow = true;\r\n } // else x.constructor.underflow = false;\r\n }\r\n } else {\r\n\r\n // Zero.\r\n x.e = 0;\r\n x.d = [0];\r\n }\r\n\r\n return x;\r\n}\r\n\r\n\r\n/*\r\n * Parse the value of a new Decimal `x` from a string `str`, which is not a decimal value.\r\n */\r\nfunction parseOther(x, str) {\r\n var base, Ctor, divisor, i, isFloat, len, p, xd, xe;\r\n\r\n if (str.indexOf('_') > -1) {\r\n str = str.replace(/(\\d)_(?=\\d)/g, '$1');\r\n if (isDecimal.test(str)) return parseDecimal(x, str);\r\n } else if (str === 'Infinity' || str === 'NaN') {\r\n if (!+str) x.s = NaN;\r\n x.e = NaN;\r\n x.d = null;\r\n return x;\r\n }\r\n\r\n if (isHex.test(str)) {\r\n base = 16;\r\n str = str.toLowerCase();\r\n } else if (isBinary.test(str)) {\r\n base = 2;\r\n } else if (isOctal.test(str)) {\r\n base = 8;\r\n } else {\r\n throw Error(invalidArgument + str);\r\n }\r\n\r\n // Is there a binary exponent part?\r\n i = str.search(/p/i);\r\n\r\n if (i > 0) {\r\n p = +str.slice(i + 1);\r\n str = str.substring(2, i);\r\n } else {\r\n str = str.slice(2);\r\n }\r\n\r\n // Convert `str` as an integer then divide the result by `base` raised to a power such that the\r\n // fraction part will be restored.\r\n i = str.indexOf('.');\r\n isFloat = i >= 0;\r\n Ctor = x.constructor;\r\n\r\n if (isFloat) {\r\n str = str.replace('.', '');\r\n len = str.length;\r\n i = len - i;\r\n\r\n // log[10](16) = 1.2041... , log[10](88) = 1.9444....\r\n divisor = intPow(Ctor, new Ctor(base), i, i * 2);\r\n }\r\n\r\n xd = convertBase(str, base, BASE);\r\n xe = xd.length - 1;\r\n\r\n // Remove trailing zeros.\r\n for (i = xe; xd[i] === 0; --i) xd.pop();\r\n if (i < 0) return new Ctor(x.s * 0);\r\n x.e = getBase10Exponent(xd, xe);\r\n x.d = xd;\r\n external = false;\r\n\r\n // At what precision to perform the division to ensure exact conversion?\r\n // maxDecimalIntegerPartDigitCount = ceil(log[10](b) * otherBaseIntegerPartDigitCount)\r\n // log[10](2) = 0.30103, log[10](8) = 0.90309, log[10](16) = 1.20412\r\n // E.g. ceil(1.2 * 3) = 4, so up to 4 decimal digits are needed to represent 3 hex int digits.\r\n // maxDecimalFractionPartDigitCount = {Hex:4|Oct:3|Bin:1} * otherBaseFractionPartDigitCount\r\n // Therefore using 4 * the number of digits of str will always be enough.\r\n if (isFloat) x = divide(x, divisor, len * 4);\r\n\r\n // Multiply by the binary exponent part if present.\r\n if (p) x = x.times(Math.abs(p) < 54 ? mathpow(2, p) : Decimal.pow(2, p));\r\n external = true;\r\n\r\n return x;\r\n}\r\n\r\n\r\n/*\r\n * sin(x) = x - x^3/3! + x^5/5! - ...\r\n * |x| < pi/2\r\n *\r\n */\r\nfunction sine(Ctor, x) {\r\n var k,\r\n len = x.d.length;\r\n\r\n if (len < 3) {\r\n return x.isZero() ? x : taylorSeries(Ctor, 2, x, x);\r\n }\r\n\r\n // Argument reduction: sin(5x) = 16*sin^5(x) - 20*sin^3(x) + 5*sin(x)\r\n // i.e. sin(x) = 16*sin^5(x/5) - 20*sin^3(x/5) + 5*sin(x/5)\r\n // and sin(x) = sin(x/5)(5 + sin^2(x/5)(16sin^2(x/5) - 20))\r\n\r\n // Estimate the optimum number of times to use the argument reduction.\r\n k = 1.4 * Math.sqrt(len);\r\n k = k > 16 ? 16 : k | 0;\r\n\r\n x = x.times(1 / tinyPow(5, k));\r\n x = taylorSeries(Ctor, 2, x, x);\r\n\r\n // Reverse argument reduction\r\n var sin2_x,\r\n d5 = new Ctor(5),\r\n d16 = new Ctor(16),\r\n d20 = new Ctor(20);\r\n for (; k--;) {\r\n sin2_x = x.times(x);\r\n x = x.times(d5.plus(sin2_x.times(d16.times(sin2_x).minus(d20))));\r\n }\r\n\r\n return x;\r\n}\r\n\r\n\r\n// Calculate Taylor series for `cos`, `cosh`, `sin` and `sinh`.\r\nfunction taylorSeries(Ctor, n, x, y, isHyperbolic) {\r\n var j, t, u, x2,\r\n i = 1,\r\n pr = Ctor.precision,\r\n k = Math.ceil(pr / LOG_BASE);\r\n\r\n external = false;\r\n x2 = x.times(x);\r\n u = new Ctor(y);\r\n\r\n for (;;) {\r\n t = divide(u.times(x2), new Ctor(n++ * n++), pr, 1);\r\n u = isHyperbolic ? y.plus(t) : y.minus(t);\r\n y = divide(t.times(x2), new Ctor(n++ * n++), pr, 1);\r\n t = u.plus(y);\r\n\r\n if (t.d[k] !== void 0) {\r\n for (j = k; t.d[j] === u.d[j] && j--;);\r\n if (j == -1) break;\r\n }\r\n\r\n j = u;\r\n u = y;\r\n y = t;\r\n t = j;\r\n i++;\r\n }\r\n\r\n external = true;\r\n t.d.length = k + 1;\r\n\r\n return t;\r\n}\r\n\r\n\r\n// Exponent e must be positive and non-zero.\r\nfunction tinyPow(b, e) {\r\n var n = b;\r\n while (--e) n *= b;\r\n return n;\r\n}\r\n\r\n\r\n// Return the absolute value of `x` reduced to less than or equal to half pi.\r\nfunction toLessThanHalfPi(Ctor, x) {\r\n var t,\r\n isNeg = x.s < 0,\r\n pi = getPi(Ctor, Ctor.precision, 1),\r\n halfPi = pi.times(0.5);\r\n\r\n x = x.abs();\r\n\r\n if (x.lte(halfPi)) {\r\n quadrant = isNeg ? 4 : 1;\r\n return x;\r\n }\r\n\r\n t = x.divToInt(pi);\r\n\r\n if (t.isZero()) {\r\n quadrant = isNeg ? 3 : 2;\r\n } else {\r\n x = x.minus(t.times(pi));\r\n\r\n // 0 <= x < pi\r\n if (x.lte(halfPi)) {\r\n quadrant = isOdd(t) ? (isNeg ? 2 : 3) : (isNeg ? 4 : 1);\r\n return x;\r\n }\r\n\r\n quadrant = isOdd(t) ? (isNeg ? 1 : 4) : (isNeg ? 3 : 2);\r\n }\r\n\r\n return x.minus(pi).abs();\r\n}\r\n\r\n\r\n/*\r\n * Return the value of Decimal `x` as a string in base `baseOut`.\r\n *\r\n * If the optional `sd` argument is present include a binary exponent suffix.\r\n */\r\nfunction toStringBinary(x, baseOut, sd, rm) {\r\n var base, e, i, k, len, roundUp, str, xd, y,\r\n Ctor = x.constructor,\r\n isExp = sd !== void 0;\r\n\r\n if (isExp) {\r\n checkInt32(sd, 1, MAX_DIGITS);\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n } else {\r\n sd = Ctor.precision;\r\n rm = Ctor.rounding;\r\n }\r\n\r\n if (!x.isFinite()) {\r\n str = nonFiniteToString(x);\r\n } else {\r\n str = finiteToString(x);\r\n i = str.indexOf('.');\r\n\r\n // Use exponential notation according to `toExpPos` and `toExpNeg`? No, but if required:\r\n // maxBinaryExponent = floor((decimalExponent + 1) * log[2](10))\r\n // minBinaryExponent = floor(decimalExponent * log[2](10))\r\n // log[2](10) = 3.321928094887362347870319429489390175864\r\n\r\n if (isExp) {\r\n base = 2;\r\n if (baseOut == 16) {\r\n sd = sd * 4 - 3;\r\n } else if (baseOut == 8) {\r\n sd = sd * 3 - 2;\r\n }\r\n } else {\r\n base = baseOut;\r\n }\r\n\r\n // Convert the number as an integer then divide the result by its base raised to a power such\r\n // that the fraction part will be restored.\r\n\r\n // Non-integer.\r\n if (i >= 0) {\r\n str = str.replace('.', '');\r\n y = new Ctor(1);\r\n y.e = str.length - i;\r\n y.d = convertBase(finiteToString(y), 10, base);\r\n y.e = y.d.length;\r\n }\r\n\r\n xd = convertBase(str, 10, base);\r\n e = len = xd.length;\r\n\r\n // Remove trailing zeros.\r\n for (; xd[--len] == 0;) xd.pop();\r\n\r\n if (!xd[0]) {\r\n str = isExp ? '0p+0' : '0';\r\n } else {\r\n if (i < 0) {\r\n e--;\r\n } else {\r\n x = new Ctor(x);\r\n x.d = xd;\r\n x.e = e;\r\n x = divide(x, y, sd, rm, 0, base);\r\n xd = x.d;\r\n e = x.e;\r\n roundUp = inexact;\r\n }\r\n\r\n // The rounding digit, i.e. the digit after the digit that may be rounded up.\r\n i = xd[sd];\r\n k = base / 2;\r\n roundUp = roundUp || xd[sd + 1] !== void 0;\r\n\r\n roundUp = rm < 4\r\n ? (i !== void 0 || roundUp) && (rm === 0 || rm === (x.s < 0 ? 3 : 2))\r\n : i > k || i === k && (rm === 4 || roundUp || rm === 6 && xd[sd - 1] & 1 ||\r\n rm === (x.s < 0 ? 8 : 7));\r\n\r\n xd.length = sd;\r\n\r\n if (roundUp) {\r\n\r\n // Rounding up may mean the previous digit has to be rounded up and so on.\r\n for (; ++xd[--sd] > base - 1;) {\r\n xd[sd] = 0;\r\n if (!sd) {\r\n ++e;\r\n xd.unshift(1);\r\n }\r\n }\r\n }\r\n\r\n // Determine trailing zeros.\r\n for (len = xd.length; !xd[len - 1]; --len);\r\n\r\n // E.g. [4, 11, 15] becomes 4bf.\r\n for (i = 0, str = ''; i < len; i++) str += NUMERALS.charAt(xd[i]);\r\n\r\n // Add binary exponent suffix?\r\n if (isExp) {\r\n if (len > 1) {\r\n if (baseOut == 16 || baseOut == 8) {\r\n i = baseOut == 16 ? 4 : 3;\r\n for (--len; len % i; len++) str += '0';\r\n xd = convertBase(str, base, baseOut);\r\n for (len = xd.length; !xd[len - 1]; --len);\r\n\r\n // xd[0] will always be be 1\r\n for (i = 1, str = '1.'; i < len; i++) str += NUMERALS.charAt(xd[i]);\r\n } else {\r\n str = str.charAt(0) + '.' + str.slice(1);\r\n }\r\n }\r\n\r\n str = str + (e < 0 ? 'p' : 'p+') + e;\r\n } else if (e < 0) {\r\n for (; ++e;) str = '0' + str;\r\n str = '0.' + str;\r\n } else {\r\n if (++e > len) for (e -= len; e-- ;) str += '0';\r\n else if (e < len) str = str.slice(0, e) + '.' + str.slice(e);\r\n }\r\n }\r\n\r\n str = (baseOut == 16 ? '0x' : baseOut == 2 ? '0b' : baseOut == 8 ? '0o' : '') + str;\r\n }\r\n\r\n return x.s < 0 ? '-' + str : str;\r\n}\r\n\r\n\r\n// Does not strip trailing zeros.\r\nfunction truncate(arr, len) {\r\n if (arr.length > len) {\r\n arr.length = len;\r\n return true;\r\n }\r\n}\r\n\r\n\r\n// Decimal methods\r\n\r\n\r\n/*\r\n * abs\r\n * acos\r\n * acosh\r\n * add\r\n * asin\r\n * asinh\r\n * atan\r\n * atanh\r\n * atan2\r\n * cbrt\r\n * ceil\r\n * clamp\r\n * clone\r\n * config\r\n * cos\r\n * cosh\r\n * div\r\n * exp\r\n * floor\r\n * hypot\r\n * ln\r\n * log\r\n * log2\r\n * log10\r\n * max\r\n * min\r\n * mod\r\n * mul\r\n * pow\r\n * random\r\n * round\r\n * set\r\n * sign\r\n * sin\r\n * sinh\r\n * sqrt\r\n * sub\r\n * sum\r\n * tan\r\n * tanh\r\n * trunc\r\n */\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the absolute value of `x`.\r\n *\r\n * x {number|string|bigint|Decimal}\r\n *\r\n */\r\nfunction abs(x) {\r\n return new this(x).abs();\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the arccosine in radians of `x`.\r\n *\r\n * x {number|string|bigint|Decimal}\r\n *\r\n */\r\nfunction acos(x) {\r\n return new this(x).acos();\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the inverse of the hyperbolic cosine of `x`, rounded to\r\n * `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|bigint|Decimal} A value in radians.\r\n *\r\n */\r\nfunction acosh(x) {\r\n return new this(x).acosh();\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the sum of `x` and `y`, rounded to `precision` significant\r\n * digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|bigint|Decimal}\r\n * y {number|string|bigint|Decimal}\r\n *\r\n */\r\nfunction add(x, y) {\r\n return new this(x).plus(y);\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the arcsine in radians of `x`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|bigint|Decimal}\r\n *\r\n */\r\nfunction asin(x) {\r\n return new this(x).asin();\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the inverse of the hyperbolic sine of `x`, rounded to\r\n * `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|bigint|Decimal} A value in radians.\r\n *\r\n */\r\nfunction asinh(x) {\r\n return new this(x).asinh();\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the arctangent in radians of `x`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|bigint|Decimal}\r\n *\r\n */\r\nfunction atan(x) {\r\n return new this(x).atan();\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the inverse of the hyperbolic tangent of `x`, rounded to\r\n * `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|bigint|Decimal} A value in radians.\r\n *\r\n */\r\nfunction atanh(x) {\r\n return new this(x).atanh();\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the arctangent in radians of `y/x` in the range -pi to pi\r\n * (inclusive), rounded to `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-pi, pi]\r\n *\r\n * y {number|string|bigint|Decimal} The y-coordinate.\r\n * x {number|string|bigint|Decimal} The x-coordinate.\r\n *\r\n * atan2(±0, -0) = ±pi\r\n * atan2(±0, +0) = ±0\r\n * atan2(±0, -x) = ±pi for x > 0\r\n * atan2(±0, x) = ±0 for x > 0\r\n * atan2(-y, ±0) = -pi/2 for y > 0\r\n * atan2(y, ±0) = pi/2 for y > 0\r\n * atan2(±y, -Infinity) = ±pi for finite y > 0\r\n * atan2(±y, +Infinity) = ±0 for finite y > 0\r\n * atan2(±Infinity, x) = ±pi/2 for finite x\r\n * atan2(±Infinity, -Infinity) = ±3*pi/4\r\n * atan2(±Infinity, +Infinity) = ±pi/4\r\n * atan2(NaN, x) = NaN\r\n * atan2(y, NaN) = NaN\r\n *\r\n */\r\nfunction atan2(y, x) {\r\n y = new this(y);\r\n x = new this(x);\r\n var r,\r\n pr = this.precision,\r\n rm = this.rounding,\r\n wpr = pr + 4;\r\n\r\n // Either NaN\r\n if (!y.s || !x.s) {\r\n r = new this(NaN);\r\n\r\n // Both ±Infinity\r\n } else if (!y.d && !x.d) {\r\n r = getPi(this, wpr, 1).times(x.s > 0 ? 0.25 : 0.75);\r\n r.s = y.s;\r\n\r\n // x is ±Infinity or y is ±0\r\n } else if (!x.d || y.isZero()) {\r\n r = x.s < 0 ? getPi(this, pr, rm) : new this(0);\r\n r.s = y.s;\r\n\r\n // y is ±Infinity or x is ±0\r\n } else if (!y.d || x.isZero()) {\r\n r = getPi(this, wpr, 1).times(0.5);\r\n r.s = y.s;\r\n\r\n // Both non-zero and finite\r\n } else if (x.s < 0) {\r\n this.precision = wpr;\r\n this.rounding = 1;\r\n r = this.atan(divide(y, x, wpr, 1));\r\n x = getPi(this, wpr, 1);\r\n this.precision = pr;\r\n this.rounding = rm;\r\n r = y.s < 0 ? r.minus(x) : r.plus(x);\r\n } else {\r\n r = this.atan(divide(y, x, wpr, 1));\r\n }\r\n\r\n return r;\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the cube root of `x`, rounded to `precision` significant\r\n * digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|bigint|Decimal}\r\n *\r\n */\r\nfunction cbrt(x) {\r\n return new this(x).cbrt();\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is `x` rounded to an integer using `ROUND_CEIL`.\r\n *\r\n * x {number|string|bigint|Decimal}\r\n *\r\n */\r\nfunction ceil(x) {\r\n return finalise(x = new this(x), x.e + 1, 2);\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is `x` clamped to the range delineated by `min` and `max`.\r\n *\r\n * x {number|string|bigint|Decimal}\r\n * min {number|string|bigint|Decimal}\r\n * max {number|string|bigint|Decimal}\r\n *\r\n */\r\nfunction clamp(x, min, max) {\r\n return new this(x).clamp(min, max);\r\n}\r\n\r\n\r\n/*\r\n * Configure global settings for a Decimal constructor.\r\n *\r\n * `obj` is an object with one or more of the following properties,\r\n *\r\n * precision {number}\r\n * rounding {number}\r\n * toExpNeg {number}\r\n * toExpPos {number}\r\n * maxE {number}\r\n * minE {number}\r\n * modulo {number}\r\n * crypto {boolean|number}\r\n * defaults {true}\r\n *\r\n * E.g. Decimal.config({ precision: 20, rounding: 4 })\r\n *\r\n */\r\nfunction config(obj) {\r\n if (!obj || typeof obj !== 'object') throw Error(decimalError + 'Object expected');\r\n var i, p, v,\r\n useDefaults = obj.defaults === true,\r\n ps = [\r\n 'precision', 1, MAX_DIGITS,\r\n 'rounding', 0, 8,\r\n 'toExpNeg', -EXP_LIMIT, 0,\r\n 'toExpPos', 0, EXP_LIMIT,\r\n 'maxE', 0, EXP_LIMIT,\r\n 'minE', -EXP_LIMIT, 0,\r\n 'modulo', 0, 9\r\n ];\r\n\r\n for (i = 0; i < ps.length; i += 3) {\r\n if (p = ps[i], useDefaults) this[p] = DEFAULTS[p];\r\n if ((v = obj[p]) !== void 0) {\r\n if (mathfloor(v) === v && v >= ps[i + 1] && v <= ps[i + 2]) this[p] = v;\r\n else throw Error(invalidArgument + p + ': ' + v);\r\n }\r\n }\r\n\r\n if (p = 'crypto', useDefaults) this[p] = DEFAULTS[p];\r\n if ((v = obj[p]) !== void 0) {\r\n if (v === true || v === false || v === 0 || v === 1) {\r\n if (v) {\r\n if (typeof crypto != 'undefined' && crypto &&\r\n (crypto.getRandomValues || crypto.randomBytes)) {\r\n this[p] = true;\r\n } else {\r\n throw Error(cryptoUnavailable);\r\n }\r\n } else {\r\n this[p] = false;\r\n }\r\n } else {\r\n throw Error(invalidArgument + p + ': ' + v);\r\n }\r\n }\r\n\r\n return this;\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the cosine of `x`, rounded to `precision` significant\r\n * digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|bigint|Decimal} A value in radians.\r\n *\r\n */\r\nfunction cos(x) {\r\n return new this(x).cos();\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the hyperbolic cosine of `x`, rounded to precision\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|bigint|Decimal} A value in radians.\r\n *\r\n */\r\nfunction cosh(x) {\r\n return new this(x).cosh();\r\n}\r\n\r\n\r\n/*\r\n * Create and return a Decimal constructor with the same configuration properties as this Decimal\r\n * constructor.\r\n *\r\n */\r\nfunction clone(obj) {\r\n var i, p, ps;\r\n\r\n /*\r\n * The Decimal constructor and exported function.\r\n * Return a new Decimal instance.\r\n *\r\n * v {number|string|bigint|Decimal} A numeric value.\r\n *\r\n */\r\n function Decimal(v) {\r\n var e, i, t,\r\n x = this;\r\n\r\n // Decimal called without new.\r\n if (!(x instanceof Decimal)) return new Decimal(v);\r\n\r\n // Retain a reference to this Decimal constructor, and shadow Decimal.prototype.constructor\r\n // which points to Object.\r\n x.constructor = Decimal;\r\n\r\n if (isDecimalInstance(v)) {\r\n x.s = v.s;\r\n\r\n if (external) {\r\n if (!v.d || v.e > Decimal.maxE) {\r\n\r\n // Infinity.\r\n x.e = NaN;\r\n x.d = null;\r\n } else if (v.e < Decimal.minE) {\r\n\r\n // Zero.\r\n x.e = 0;\r\n x.d = [0];\r\n } else {\r\n x.e = v.e;\r\n x.d = v.d.slice();\r\n }\r\n } else {\r\n x.e = v.e;\r\n x.d = v.d ? v.d.slice() : v.d;\r\n }\r\n\r\n return;\r\n }\r\n\r\n t = typeof v;\r\n\r\n if (t === 'number') {\r\n if (v === 0) {\r\n x.s = 1 / v < 0 ? -1 : 1;\r\n x.e = 0;\r\n x.d = [0];\r\n return;\r\n }\r\n\r\n if (v < 0) {\r\n v = -v;\r\n x.s = -1;\r\n } else {\r\n x.s = 1;\r\n }\r\n\r\n // Fast path for small integers.\r\n if (v === ~~v && v < 1e7) {\r\n for (e = 0, i = v; i >= 10; i /= 10) e++;\r\n\r\n if (external) {\r\n if (e > Decimal.maxE) {\r\n x.e = NaN;\r\n x.d = null;\r\n } else if (e < Decimal.minE) {\r\n x.e = 0;\r\n x.d = [0];\r\n } else {\r\n x.e = e;\r\n x.d = [v];\r\n }\r\n } else {\r\n x.e = e;\r\n x.d = [v];\r\n }\r\n\r\n return;\r\n }\r\n\r\n // Infinity or NaN?\r\n if (v * 0 !== 0) {\r\n if (!v) x.s = NaN;\r\n x.e = NaN;\r\n x.d = null;\r\n return;\r\n }\r\n\r\n return parseDecimal(x, v.toString());\r\n }\r\n\r\n if (t === 'string') {\r\n if ((i = v.charCodeAt(0)) === 45) { // minus sign\r\n v = v.slice(1);\r\n x.s = -1;\r\n } else {\r\n if (i === 43) v = v.slice(1); // plus sign\r\n x.s = 1;\r\n }\r\n\r\n return isDecimal.test(v) ? parseDecimal(x, v) : parseOther(x, v);\r\n }\r\n\r\n if (t === 'bigint') {\r\n if (v < 0) {\r\n v = -v;\r\n x.s = -1;\r\n } else {\r\n x.s = 1;\r\n }\r\n\r\n return parseDecimal(x, v.toString());\r\n }\r\n\r\n throw Error(invalidArgument + v);\r\n }\r\n\r\n Decimal.prototype = P;\r\n\r\n Decimal.ROUND_UP = 0;\r\n Decimal.ROUND_DOWN = 1;\r\n Decimal.ROUND_CEIL = 2;\r\n Decimal.ROUND_FLOOR = 3;\r\n Decimal.ROUND_HALF_UP = 4;\r\n Decimal.ROUND_HALF_DOWN = 5;\r\n Decimal.ROUND_HALF_EVEN = 6;\r\n Decimal.ROUND_HALF_CEIL = 7;\r\n Decimal.ROUND_HALF_FLOOR = 8;\r\n Decimal.EUCLID = 9;\r\n\r\n Decimal.config = Decimal.set = config;\r\n Decimal.clone = clone;\r\n Decimal.isDecimal = isDecimalInstance;\r\n\r\n Decimal.abs = abs;\r\n Decimal.acos = acos;\r\n Decimal.acosh = acosh; // ES6\r\n Decimal.add = add;\r\n Decimal.asin = asin;\r\n Decimal.asinh = asinh; // ES6\r\n Decimal.atan = atan;\r\n Decimal.atanh = atanh; // ES6\r\n Decimal.atan2 = atan2;\r\n Decimal.cbrt = cbrt; // ES6\r\n Decimal.ceil = ceil;\r\n Decimal.clamp = clamp;\r\n Decimal.cos = cos;\r\n Decimal.cosh = cosh; // ES6\r\n Decimal.div = div;\r\n Decimal.exp = exp;\r\n Decimal.floor = floor;\r\n Decimal.hypot = hypot; // ES6\r\n Decimal.ln = ln;\r\n Decimal.log = log;\r\n Decimal.log10 = log10; // ES6\r\n Decimal.log2 = log2; // ES6\r\n Decimal.max = max;\r\n Decimal.min = min;\r\n Decimal.mod = mod;\r\n Decimal.mul = mul;\r\n Decimal.pow = pow;\r\n Decimal.random = random;\r\n Decimal.round = round;\r\n Decimal.sign = sign; // ES6\r\n Decimal.sin = sin;\r\n Decimal.sinh = sinh; // ES6\r\n Decimal.sqrt = sqrt;\r\n Decimal.sub = sub;\r\n Decimal.sum = sum;\r\n Decimal.tan = tan;\r\n Decimal.tanh = tanh; // ES6\r\n Decimal.trunc = trunc; // ES6\r\n\r\n if (obj === void 0) obj = {};\r\n if (obj) {\r\n if (obj.defaults !== true) {\r\n ps = ['precision', 'rounding', 'toExpNeg', 'toExpPos', 'maxE', 'minE', 'modulo', 'crypto'];\r\n for (i = 0; i < ps.length;) if (!obj.hasOwnProperty(p = ps[i++])) obj[p] = this[p];\r\n }\r\n }\r\n\r\n Decimal.config(obj);\r\n\r\n return Decimal;\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is `x` divided by `y`, rounded to `precision` significant\r\n * digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|bigint|Decimal}\r\n * y {number|string|bigint|Decimal}\r\n *\r\n */\r\nfunction div(x, y) {\r\n return new this(x).div(y);\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the natural exponential of `x`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|bigint|Decimal} The power to which to raise the base of the natural log.\r\n *\r\n */\r\nfunction exp(x) {\r\n return new this(x).exp();\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is `x` round to an integer using `ROUND_FLOOR`.\r\n *\r\n * x {number|string|bigint|Decimal}\r\n *\r\n */\r\nfunction floor(x) {\r\n return finalise(x = new this(x), x.e + 1, 3);\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the square root of the sum of the squares of the arguments,\r\n * rounded to `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * hypot(a, b, ...) = sqrt(a^2 + b^2 + ...)\r\n *\r\n * arguments {number|string|bigint|Decimal}\r\n *\r\n */\r\nfunction hypot() {\r\n var i, n,\r\n t = new this(0);\r\n\r\n external = false;\r\n\r\n for (i = 0; i < arguments.length;) {\r\n n = new this(arguments[i++]);\r\n if (!n.d) {\r\n if (n.s) {\r\n external = true;\r\n return new this(1 / 0);\r\n }\r\n t = n;\r\n } else if (t.d) {\r\n t = t.plus(n.times(n));\r\n }\r\n }\r\n\r\n external = true;\r\n\r\n return t.sqrt();\r\n}\r\n\r\n\r\n/*\r\n * Return true if object is a Decimal instance (where Decimal is any Decimal constructor),\r\n * otherwise return false.\r\n *\r\n */\r\nfunction isDecimalInstance(obj) {\r\n return obj instanceof Decimal || obj && obj.toStringTag === tag || false;\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the natural logarithm of `x`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|bigint|Decimal}\r\n *\r\n */\r\nfunction ln(x) {\r\n return new this(x).ln();\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the log of `x` to the base `y`, or to base 10 if no base\r\n * is specified, rounded to `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * log[y](x)\r\n *\r\n * x {number|string|bigint|Decimal} The argument of the logarithm.\r\n * y {number|string|bigint|Decimal} The base of the logarithm.\r\n *\r\n */\r\nfunction log(x, y) {\r\n return new this(x).log(y);\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the base 2 logarithm of `x`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|bigint|Decimal}\r\n *\r\n */\r\nfunction log2(x) {\r\n return new this(x).log(2);\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the base 10 logarithm of `x`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|bigint|Decimal}\r\n *\r\n */\r\nfunction log10(x) {\r\n return new this(x).log(10);\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the maximum of the arguments.\r\n *\r\n * arguments {number|string|bigint|Decimal}\r\n *\r\n */\r\nfunction max() {\r\n return maxOrMin(this, arguments, -1);\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the minimum of the arguments.\r\n *\r\n * arguments {number|string|bigint|Decimal}\r\n *\r\n */\r\nfunction min() {\r\n return maxOrMin(this, arguments, 1);\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is `x` modulo `y`, rounded to `precision` significant digits\r\n * using rounding mode `rounding`.\r\n *\r\n * x {number|string|bigint|Decimal}\r\n * y {number|string|bigint|Decimal}\r\n *\r\n */\r\nfunction mod(x, y) {\r\n return new this(x).mod(y);\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is `x` multiplied by `y`, rounded to `precision` significant\r\n * digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|bigint|Decimal}\r\n * y {number|string|bigint|Decimal}\r\n *\r\n */\r\nfunction mul(x, y) {\r\n return new this(x).mul(y);\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is `x` raised to the power `y`, rounded to precision\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|bigint|Decimal} The base.\r\n * y {number|string|bigint|Decimal} The exponent.\r\n *\r\n */\r\nfunction pow(x, y) {\r\n return new this(x).pow(y);\r\n}\r\n\r\n\r\n/*\r\n * Returns a new Decimal with a random value equal to or greater than 0 and less than 1, and with\r\n * `sd`, or `Decimal.precision` if `sd` is omitted, significant digits (or less if trailing zeros\r\n * are produced).\r\n *\r\n * [sd] {number} Significant digits. Integer, 0 to MAX_DIGITS inclusive.\r\n *\r\n */\r\nfunction random(sd) {\r\n var d, e, k, n,\r\n i = 0,\r\n r = new this(1),\r\n rd = [];\r\n\r\n if (sd === void 0) sd = this.precision;\r\n else checkInt32(sd, 1, MAX_DIGITS);\r\n\r\n k = Math.ceil(sd / LOG_BASE);\r\n\r\n if (!this.crypto) {\r\n for (; i < k;) rd[i++] = Math.random() * 1e7 | 0;\r\n\r\n // Browsers supporting crypto.getRandomValues.\r\n } else if (crypto.getRandomValues) {\r\n d = crypto.getRandomValues(new Uint32Array(k));\r\n\r\n for (; i < k;) {\r\n n = d[i];\r\n\r\n // 0 <= n < 4294967296\r\n // Probability n >= 4.29e9, is 4967296 / 4294967296 = 0.00116 (1 in 865).\r\n if (n >= 4.29e9) {\r\n d[i] = crypto.getRandomValues(new Uint32Array(1))[0];\r\n } else {\r\n\r\n // 0 <= n <= 4289999999\r\n // 0 <= (n % 1e7) <= 9999999\r\n rd[i++] = n % 1e7;\r\n }\r\n }\r\n\r\n // Node.js supporting crypto.randomBytes.\r\n } else if (crypto.randomBytes) {\r\n\r\n // buffer\r\n d = crypto.randomBytes(k *= 4);\r\n\r\n for (; i < k;) {\r\n\r\n // 0 <= n < 2147483648\r\n n = d[i] + (d[i + 1] << 8) + (d[i + 2] << 16) + ((d[i + 3] & 0x7f) << 24);\r\n\r\n // Probability n >= 2.14e9, is 7483648 / 2147483648 = 0.0035 (1 in 286).\r\n if (n >= 2.14e9) {\r\n crypto.randomBytes(4).copy(d, i);\r\n } else {\r\n\r\n // 0 <= n <= 2139999999\r\n // 0 <= (n % 1e7) <= 9999999\r\n rd.push(n % 1e7);\r\n i += 4;\r\n }\r\n }\r\n\r\n i = k / 4;\r\n } else {\r\n throw Error(cryptoUnavailable);\r\n }\r\n\r\n k = rd[--i];\r\n sd %= LOG_BASE;\r\n\r\n // Convert trailing digits to zeros according to sd.\r\n if (k && sd) {\r\n n = mathpow(10, LOG_BASE - sd);\r\n rd[i] = (k / n | 0) * n;\r\n }\r\n\r\n // Remove trailing words which are zero.\r\n for (; rd[i] === 0; i--) rd.pop();\r\n\r\n // Zero?\r\n if (i < 0) {\r\n e = 0;\r\n rd = [0];\r\n } else {\r\n e = -1;\r\n\r\n // Remove leading words which are zero and adjust exponent accordingly.\r\n for (; rd[0] === 0; e -= LOG_BASE) rd.shift();\r\n\r\n // Count the digits of the first word of rd to determine leading zeros.\r\n for (k = 1, n = rd[0]; n >= 10; n /= 10) k++;\r\n\r\n // Adjust the exponent for leading zeros of the first word of rd.\r\n if (k < LOG_BASE) e -= LOG_BASE - k;\r\n }\r\n\r\n r.e = e;\r\n r.d = rd;\r\n\r\n return r;\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is `x` rounded to an integer using rounding mode `rounding`.\r\n *\r\n * To emulate `Math.round`, set rounding to 7 (ROUND_HALF_CEIL).\r\n *\r\n * x {number|string|bigint|Decimal}\r\n *\r\n */\r\nfunction round(x) {\r\n return finalise(x = new this(x), x.e + 1, this.rounding);\r\n}\r\n\r\n\r\n/*\r\n * Return\r\n * 1 if x > 0,\r\n * -1 if x < 0,\r\n * 0 if x is 0,\r\n * -0 if x is -0,\r\n * NaN otherwise\r\n *\r\n * x {number|string|bigint|Decimal}\r\n *\r\n */\r\nfunction sign(x) {\r\n x = new this(x);\r\n return x.d ? (x.d[0] ? x.s : 0 * x.s) : x.s || NaN;\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the sine of `x`, rounded to `precision` significant digits\r\n * using rounding mode `rounding`.\r\n *\r\n * x {number|string|bigint|Decimal} A value in radians.\r\n *\r\n */\r\nfunction sin(x) {\r\n return new this(x).sin();\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the hyperbolic sine of `x`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|bigint|Decimal} A value in radians.\r\n *\r\n */\r\nfunction sinh(x) {\r\n return new this(x).sinh();\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the square root of `x`, rounded to `precision` significant\r\n * digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|bigint|Decimal}\r\n *\r\n */\r\nfunction sqrt(x) {\r\n return new this(x).sqrt();\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is `x` minus `y`, rounded to `precision` significant digits\r\n * using rounding mode `rounding`.\r\n *\r\n * x {number|string|bigint|Decimal}\r\n * y {number|string|bigint|Decimal}\r\n *\r\n */\r\nfunction sub(x, y) {\r\n return new this(x).sub(y);\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the sum of the arguments, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * Only the result is rounded, not the intermediate calculations.\r\n *\r\n * arguments {number|string|bigint|Decimal}\r\n *\r\n */\r\nfunction sum() {\r\n var i = 0,\r\n args = arguments,\r\n x = new this(args[i]);\r\n\r\n external = false;\r\n for (; x.s && ++i < args.length;) x = x.plus(args[i]);\r\n external = true;\r\n\r\n return finalise(x, this.precision, this.rounding);\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the tangent of `x`, rounded to `precision` significant\r\n * digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|bigint|Decimal} A value in radians.\r\n *\r\n */\r\nfunction tan(x) {\r\n return new this(x).tan();\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the hyperbolic tangent of `x`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|bigint|Decimal} A value in radians.\r\n *\r\n */\r\nfunction tanh(x) {\r\n return new this(x).tanh();\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is `x` truncated to an integer.\r\n *\r\n * x {number|string|bigint|Decimal}\r\n *\r\n */\r\nfunction trunc(x) {\r\n return finalise(x = new this(x), x.e + 1, 1);\r\n}\r\n\r\n\r\nP[Symbol.for('nodejs.util.inspect.custom')] = P.toString;\r\nP[Symbol.toStringTag] = 'Decimal';\r\n\r\n// Create and configure initial Decimal constructor.\r\nexport var Decimal = P.constructor = clone(DEFAULTS);\r\n\r\n// Create the internal constants from their string values.\r\nLN10 = new Decimal(LN10);\r\nPI = new Decimal(PI);\r\n\r\nexport default Decimal;\r\n","import Decimal from 'decimal.js';\nexport var TEN = new Decimal(10);\nexport var ZERO = new Decimal(0);\nexport var NEGATIVE_ZERO = new Decimal(-0);\n","//\n// Main\n//\nexport function memoize(fn, options) {\n var cache = options && options.cache ? options.cache : cacheDefault;\n var serializer = options && options.serializer ? options.serializer : serializerDefault;\n var strategy = options && options.strategy ? options.strategy : strategyDefault;\n return strategy(fn, {\n cache: cache,\n serializer: serializer,\n });\n}\n//\n// Strategy\n//\nfunction isPrimitive(value) {\n return (value == null || typeof value === 'number' || typeof value === 'boolean'); // || typeof value === \"string\" 'unsafe' primitive for our needs\n}\nfunction monadic(fn, cache, serializer, arg) {\n var cacheKey = isPrimitive(arg) ? arg : serializer(arg);\n var computedValue = cache.get(cacheKey);\n if (typeof computedValue === 'undefined') {\n computedValue = fn.call(this, arg);\n cache.set(cacheKey, computedValue);\n }\n return computedValue;\n}\nfunction variadic(fn, cache, serializer) {\n var args = Array.prototype.slice.call(arguments, 3);\n var cacheKey = serializer(args);\n var computedValue = cache.get(cacheKey);\n if (typeof computedValue === 'undefined') {\n computedValue = fn.apply(this, args);\n cache.set(cacheKey, computedValue);\n }\n return computedValue;\n}\nfunction assemble(fn, context, strategy, cache, serialize) {\n return strategy.bind(context, fn, cache, serialize);\n}\nfunction strategyDefault(fn, options) {\n var strategy = fn.length === 1 ? monadic : variadic;\n return assemble(fn, this, strategy, options.cache.create(), options.serializer);\n}\nfunction strategyVariadic(fn, options) {\n return assemble(fn, this, variadic, options.cache.create(), options.serializer);\n}\nfunction strategyMonadic(fn, options) {\n return assemble(fn, this, monadic, options.cache.create(), options.serializer);\n}\n//\n// Serializer\n//\nvar serializerDefault = function () {\n return JSON.stringify(arguments);\n};\n//\n// Cache\n//\nvar ObjectWithoutPrototypeCache = /** @class */ (function () {\n function ObjectWithoutPrototypeCache() {\n this.cache = Object.create(null);\n }\n ObjectWithoutPrototypeCache.prototype.get = function (key) {\n return this.cache[key];\n };\n ObjectWithoutPrototypeCache.prototype.set = function (key, value) {\n this.cache[key] = value;\n };\n return ObjectWithoutPrototypeCache;\n}());\nvar cacheDefault = {\n create: function create() {\n return new ObjectWithoutPrototypeCache();\n },\n};\nexport var strategies = {\n variadic: strategyVariadic,\n monadic: strategyMonadic,\n};\n","import { __spreadArray } from \"tslib\";\nimport { memoize, strategies } from '@formatjs/fast-memoize';\nexport function repeat(s, times) {\n if (typeof s.repeat === 'function') {\n return s.repeat(times);\n }\n var arr = new Array(times);\n for (var i = 0; i < arr.length; i++) {\n arr[i] = s;\n }\n return arr.join('');\n}\nexport function setInternalSlot(map, pl, field, value) {\n if (!map.get(pl)) {\n map.set(pl, Object.create(null));\n }\n var slots = map.get(pl);\n slots[field] = value;\n}\nexport function setMultiInternalSlots(map, pl, props) {\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\n var k = _a[_i];\n setInternalSlot(map, pl, k, props[k]);\n }\n}\nexport function getInternalSlot(map, pl, field) {\n return getMultiInternalSlots(map, pl, field)[field];\n}\nexport function getMultiInternalSlots(map, pl) {\n var fields = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n fields[_i - 2] = arguments[_i];\n }\n var slots = map.get(pl);\n if (!slots) {\n throw new TypeError(\"\".concat(pl, \" InternalSlot has not been initialized\"));\n }\n return fields.reduce(function (all, f) {\n all[f] = slots[f];\n return all;\n }, Object.create(null));\n}\nexport function isLiteralPart(patternPart) {\n return patternPart.type === 'literal';\n}\n/*\n 17 ECMAScript Standard Built-in Objects:\n Every built-in Function object, including constructors, that is not\n identified as an anonymous function has a name property whose value\n is a String.\n\n Unless otherwise specified, the name property of a built-in Function\n object, if it exists, has the attributes { [[Writable]]: false,\n [[Enumerable]]: false, [[Configurable]]: true }.\n*/\nexport function defineProperty(target, name, _a) {\n var value = _a.value;\n Object.defineProperty(target, name, {\n configurable: true,\n enumerable: false,\n writable: true,\n value: value,\n });\n}\n/**\n * 7.3.5 CreateDataProperty\n * @param target\n * @param name\n * @param value\n */\nexport function createDataProperty(target, name, value) {\n Object.defineProperty(target, name, {\n configurable: true,\n enumerable: true,\n writable: true,\n value: value,\n });\n}\nexport var UNICODE_EXTENSION_SEQUENCE_REGEX = /-u(?:-[0-9a-z]{2,8})+/gi;\nexport function invariant(condition, message, Err) {\n if (Err === void 0) { Err = Error; }\n if (!condition) {\n throw new Err(message);\n }\n}\nexport var createMemoizedNumberFormat = memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.NumberFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();\n}, {\n strategy: strategies.variadic,\n});\nexport var createMemoizedDateTimeFormat = memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.DateTimeFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();\n}, {\n strategy: strategies.variadic,\n});\nexport var createMemoizedPluralRules = memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.PluralRules).bind.apply(_a, __spreadArray([void 0], args, false)))();\n}, {\n strategy: strategies.variadic,\n});\nexport var createMemoizedLocale = memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.Locale).bind.apply(_a, __spreadArray([void 0], args, false)))();\n}, {\n strategy: strategies.variadic,\n});\nexport var createMemoizedListFormat = memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.ListFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();\n}, {\n strategy: strategies.variadic,\n});\n","import { Decimal } from 'decimal.js';\nimport { ZERO } from './constants';\nimport { invariant } from './utils';\n/**\n * https://tc39.es/ecma262/#sec-tostring\n */\nexport function ToString(o) {\n // Only symbol is irregular...\n if (typeof o === 'symbol') {\n throw TypeError('Cannot convert a Symbol value to a string');\n }\n return String(o);\n}\n/**\n * https://tc39.es/ecma262/#sec-tonumber\n * @param val\n */\nexport function ToNumber(arg) {\n if (typeof arg === 'number') {\n return new Decimal(arg);\n }\n invariant(typeof arg !== 'bigint' && typeof arg !== 'symbol', 'BigInt and Symbol are not supported', TypeError);\n if (arg === undefined) {\n return new Decimal(NaN);\n }\n if (arg === null || arg === 0) {\n return ZERO;\n }\n if (arg === true) {\n return new Decimal(1);\n }\n if (typeof arg === 'string') {\n try {\n return new Decimal(arg);\n }\n catch (e) {\n return new Decimal(NaN);\n }\n }\n invariant(typeof arg === 'object', 'object expected', TypeError);\n var primValue = ToPrimitive(arg, 'number');\n invariant(typeof primValue !== 'object', 'object expected', TypeError);\n return ToNumber(primValue);\n}\n/**\n * https://tc39.es/ecma262/#sec-tointeger\n * @param n\n */\nfunction ToInteger(n) {\n var number = ToNumber(n);\n if (number.isNaN() || number.isZero()) {\n return ZERO;\n }\n if (number.isFinite()) {\n return number;\n }\n var integer = number.abs().floor();\n if (number.isNegative()) {\n integer = integer.negated();\n }\n return integer;\n}\n/**\n * https://tc39.es/ecma262/#sec-timeclip\n * @param time\n */\nexport function TimeClip(time) {\n if (!time.isFinite()) {\n return new Decimal(NaN);\n }\n if (time.abs().greaterThan(8.64 * 1e15)) {\n return new Decimal(NaN);\n }\n return ToInteger(time);\n}\n/**\n * https://tc39.es/ecma262/#sec-toobject\n * @param arg\n */\nexport function ToObject(arg) {\n if (arg == null) {\n throw new TypeError('undefined/null cannot be converted to object');\n }\n return Object(arg);\n}\n/**\n * https://www.ecma-international.org/ecma-262/11.0/index.html#sec-samevalue\n * @param x\n * @param y\n */\nexport function SameValue(x, y) {\n if (Object.is) {\n return Object.is(x, y);\n }\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n }\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n}\n/**\n * https://www.ecma-international.org/ecma-262/11.0/index.html#sec-arraycreate\n * @param len\n */\nexport function ArrayCreate(len) {\n return new Array(len);\n}\n/**\n * https://www.ecma-international.org/ecma-262/11.0/index.html#sec-hasownproperty\n * @param o\n * @param prop\n */\nexport function HasOwnProperty(o, prop) {\n return Object.prototype.hasOwnProperty.call(o, prop);\n}\n/**\n * https://www.ecma-international.org/ecma-262/11.0/index.html#sec-type\n * @param x\n */\nexport function Type(x) {\n if (x === null) {\n return 'Null';\n }\n if (typeof x === 'undefined') {\n return 'Undefined';\n }\n if (typeof x === 'function' || typeof x === 'object') {\n return 'Object';\n }\n if (typeof x === 'number') {\n return 'Number';\n }\n if (typeof x === 'boolean') {\n return 'Boolean';\n }\n if (typeof x === 'string') {\n return 'String';\n }\n if (typeof x === 'symbol') {\n return 'Symbol';\n }\n if (typeof x === 'bigint') {\n return 'BigInt';\n }\n}\nvar MS_PER_DAY = 86400000;\n/**\n * https://www.ecma-international.org/ecma-262/11.0/index.html#eqn-modulo\n * @param x\n * @param y\n * @return k of the same sign as y\n */\nfunction mod(x, y) {\n return x - Math.floor(x / y) * y;\n}\n/**\n * https://tc39.es/ecma262/#eqn-Day\n * @param t\n */\nexport function Day(t) {\n return Math.floor(t / MS_PER_DAY);\n}\n/**\n * https://tc39.es/ecma262/#sec-week-day\n * @param t\n */\nexport function WeekDay(t) {\n return mod(Day(t) + 4, 7);\n}\n/**\n * https://tc39.es/ecma262/#sec-year-number\n * @param y\n */\nexport function DayFromYear(y) {\n return Date.UTC(y, 0) / MS_PER_DAY;\n}\n/**\n * https://tc39.es/ecma262/#sec-year-number\n * @param y\n */\nexport function TimeFromYear(y) {\n return Date.UTC(y, 0);\n}\n/**\n * https://tc39.es/ecma262/#sec-year-number\n * @param t\n */\nexport function YearFromTime(t) {\n return new Date(t).getUTCFullYear();\n}\nexport function DaysInYear(y) {\n if (y % 4 !== 0) {\n return 365;\n }\n if (y % 100 !== 0) {\n return 366;\n }\n if (y % 400 !== 0) {\n return 365;\n }\n return 366;\n}\nexport function DayWithinYear(t) {\n return Day(t) - DayFromYear(YearFromTime(t));\n}\nexport function InLeapYear(t) {\n return DaysInYear(YearFromTime(t)) === 365 ? 0 : 1;\n}\n/**\n * https://tc39.es/ecma262/#sec-month-number\n * @param t\n */\nexport function MonthFromTime(t) {\n var dwy = DayWithinYear(t);\n var leap = InLeapYear(t);\n if (dwy >= 0 && dwy < 31) {\n return 0;\n }\n if (dwy < 59 + leap) {\n return 1;\n }\n if (dwy < 90 + leap) {\n return 2;\n }\n if (dwy < 120 + leap) {\n return 3;\n }\n if (dwy < 151 + leap) {\n return 4;\n }\n if (dwy < 181 + leap) {\n return 5;\n }\n if (dwy < 212 + leap) {\n return 6;\n }\n if (dwy < 243 + leap) {\n return 7;\n }\n if (dwy < 273 + leap) {\n return 8;\n }\n if (dwy < 304 + leap) {\n return 9;\n }\n if (dwy < 334 + leap) {\n return 10;\n }\n if (dwy < 365 + leap) {\n return 11;\n }\n throw new Error('Invalid time');\n}\nexport function DateFromTime(t) {\n var dwy = DayWithinYear(t);\n var mft = MonthFromTime(t);\n var leap = InLeapYear(t);\n if (mft === 0) {\n return dwy + 1;\n }\n if (mft === 1) {\n return dwy - 30;\n }\n if (mft === 2) {\n return dwy - 58 - leap;\n }\n if (mft === 3) {\n return dwy - 89 - leap;\n }\n if (mft === 4) {\n return dwy - 119 - leap;\n }\n if (mft === 5) {\n return dwy - 150 - leap;\n }\n if (mft === 6) {\n return dwy - 180 - leap;\n }\n if (mft === 7) {\n return dwy - 211 - leap;\n }\n if (mft === 8) {\n return dwy - 242 - leap;\n }\n if (mft === 9) {\n return dwy - 272 - leap;\n }\n if (mft === 10) {\n return dwy - 303 - leap;\n }\n if (mft === 11) {\n return dwy - 333 - leap;\n }\n throw new Error('Invalid time');\n}\nvar HOURS_PER_DAY = 24;\nvar MINUTES_PER_HOUR = 60;\nvar SECONDS_PER_MINUTE = 60;\nvar MS_PER_SECOND = 1e3;\nvar MS_PER_MINUTE = MS_PER_SECOND * SECONDS_PER_MINUTE;\nvar MS_PER_HOUR = MS_PER_MINUTE * MINUTES_PER_HOUR;\nexport function HourFromTime(t) {\n return mod(Math.floor(t / MS_PER_HOUR), HOURS_PER_DAY);\n}\nexport function MinFromTime(t) {\n return mod(Math.floor(t / MS_PER_MINUTE), MINUTES_PER_HOUR);\n}\nexport function SecFromTime(t) {\n return mod(Math.floor(t / MS_PER_SECOND), SECONDS_PER_MINUTE);\n}\nfunction IsCallable(fn) {\n return typeof fn === 'function';\n}\n/**\n * The abstract operation OrdinaryHasInstance implements\n * the default algorithm for determining if an object O\n * inherits from the instance object inheritance path\n * provided by constructor C.\n * @param C class\n * @param O object\n * @param internalSlots internalSlots\n */\nexport function OrdinaryHasInstance(C, O, internalSlots) {\n if (!IsCallable(C)) {\n return false;\n }\n if (internalSlots === null || internalSlots === void 0 ? void 0 : internalSlots.boundTargetFunction) {\n var BC = internalSlots === null || internalSlots === void 0 ? void 0 : internalSlots.boundTargetFunction;\n return O instanceof BC;\n }\n if (typeof O !== 'object') {\n return false;\n }\n var P = C.prototype;\n if (typeof P !== 'object') {\n throw new TypeError('OrdinaryHasInstance called on an object with an invalid prototype property.');\n }\n return Object.prototype.isPrototypeOf.call(P, O);\n}\nexport function msFromTime(t) {\n return mod(t, MS_PER_SECOND);\n}\nfunction OrdinaryToPrimitive(O, hint) {\n var methodNames;\n if (hint === 'string') {\n methodNames = ['toString', 'valueOf'];\n }\n else {\n methodNames = ['valueOf', 'toString'];\n }\n for (var _i = 0, methodNames_1 = methodNames; _i < methodNames_1.length; _i++) {\n var name_1 = methodNames_1[_i];\n var method = O[name_1];\n if (IsCallable(method)) {\n var result = method.call(O);\n if (typeof result !== 'object') {\n return result;\n }\n }\n }\n throw new TypeError('Cannot convert object to primitive value');\n}\nexport function ToPrimitive(input, preferredType) {\n if (typeof input === 'object' && input != null) {\n var exoticToPrim = Symbol.toPrimitive in input ? input[Symbol.toPrimitive] : undefined;\n var hint = void 0;\n if (exoticToPrim !== undefined) {\n if (preferredType === undefined) {\n hint = 'default';\n }\n else if (preferredType === 'string') {\n hint = 'string';\n }\n else {\n invariant(preferredType === 'number', 'preferredType must be \"string\" or \"number\"');\n hint = 'number';\n }\n var result = exoticToPrim.call(input, hint);\n if (typeof result !== 'object') {\n return result;\n }\n throw new TypeError('Cannot convert exotic object to primitive.');\n }\n if (preferredType === undefined) {\n preferredType = 'number';\n }\n return OrdinaryToPrimitive(input, preferredType);\n }\n return input;\n}\n","import { ToObject } from './262';\n/**\n * https://tc39.es/ecma402/#sec-coerceoptionstoobject\n * @param options\n * @returns\n */\nexport function CoerceOptionsToObject(options) {\n if (typeof options === 'undefined') {\n return Object.create(null);\n }\n return ToObject(options);\n}\n","/**\n * https://tc39.es/ecma402/#sec-defaultnumberoption\n * @param val\n * @param min\n * @param max\n * @param fallback\n */\nexport function DefaultNumberOption(inputVal, min, max, fallback) {\n if (inputVal === undefined) {\n // @ts-expect-error\n return fallback;\n }\n var val = Number(inputVal);\n if (isNaN(val) || val < min || val > max) {\n throw new RangeError(\"\".concat(val, \" is outside of range [\").concat(min, \", \").concat(max, \"]\"));\n }\n return Math.floor(val);\n}\n","/**\n * https://tc39.es/ecma402/#sec-getnumberoption\n * @param options\n * @param property\n * @param min\n * @param max\n * @param fallback\n */\nimport { DefaultNumberOption } from './DefaultNumberOption';\nexport function GetNumberOption(options, property, minimum, maximum, fallback) {\n var val = options[property];\n return DefaultNumberOption(val, minimum, maximum, fallback);\n}\n","import { ToString } from './262';\n/**\n * https://tc39.es/ecma402/#sec-getoption\n * @param opts\n * @param prop\n * @param type\n * @param values\n * @param fallback\n */\nexport function GetOption(opts, prop, type, values, fallback) {\n if (typeof opts !== 'object') {\n throw new TypeError('Options must be an object');\n }\n var value = opts[prop];\n if (value !== undefined) {\n if (type !== 'boolean' && type !== 'string') {\n throw new TypeError('invalid type');\n }\n if (type === 'boolean') {\n value = Boolean(value);\n }\n if (type === 'string') {\n value = ToString(value);\n }\n if (values !== undefined && !values.filter(function (val) { return val == value; }).length) {\n throw new RangeError(\"\".concat(value, \" is not within \").concat(values.join(', ')));\n }\n return value;\n }\n return fallback;\n}\n","/**\n * https://tc39.es/ecma402/#sec-getoptionsobject\n * @param options\n * @returns\n */\nexport function GetOptionsObject(options) {\n if (typeof options === 'undefined') {\n return Object.create(null);\n }\n if (typeof options === 'object') {\n return options;\n }\n throw new TypeError('Options must be an object');\n}\n","/**\n * https://tc39.es/ecma402/#sec-getstringorbooleanoption\n * @param opts\n * @param prop\n * @param values\n * @param trueValue\n * @param falsyValue\n * @param fallback\n */\nimport { ToString } from './262';\nexport function GetStringOrBooleanOption(opts, prop, values, trueValue, falsyValue, fallback) {\n var value = opts[prop];\n if (value === undefined) {\n return fallback;\n }\n if (value === true) {\n return trueValue;\n }\n var valueBoolean = Boolean(value);\n if (valueBoolean === false) {\n return falsyValue;\n }\n value = ToString(value);\n if (value === 'true' || value === 'false') {\n return fallback;\n }\n if ((values || []).indexOf(value) === -1) {\n throw new RangeError(\"Invalid value \".concat(value));\n }\n return value;\n}\n","/**\n * https://tc39.es/ecma402/#table-sanctioned-simple-unit-identifiers\n */\nexport var SANCTIONED_UNITS = [\n 'angle-degree',\n 'area-acre',\n 'area-hectare',\n 'concentr-percent',\n 'digital-bit',\n 'digital-byte',\n 'digital-gigabit',\n 'digital-gigabyte',\n 'digital-kilobit',\n 'digital-kilobyte',\n 'digital-megabit',\n 'digital-megabyte',\n 'digital-petabyte',\n 'digital-terabit',\n 'digital-terabyte',\n 'duration-day',\n 'duration-hour',\n 'duration-millisecond',\n 'duration-minute',\n 'duration-month',\n 'duration-second',\n 'duration-week',\n 'duration-year',\n 'length-centimeter',\n 'length-foot',\n 'length-inch',\n 'length-kilometer',\n 'length-meter',\n 'length-mile-scandinavian',\n 'length-mile',\n 'length-millimeter',\n 'length-yard',\n 'mass-gram',\n 'mass-kilogram',\n 'mass-ounce',\n 'mass-pound',\n 'mass-stone',\n 'temperature-celsius',\n 'temperature-fahrenheit',\n 'volume-fluid-ounce',\n 'volume-gallon',\n 'volume-liter',\n 'volume-milliliter',\n];\n// In CLDR, the unit name always follows the form `namespace-unit` pattern.\n// For example: `digital-bit` instead of `bit`. This function removes the namespace prefix.\nexport function removeUnitNamespace(unit) {\n return unit.slice(unit.indexOf('-') + 1);\n}\n/**\n * https://tc39.es/ecma402/#table-sanctioned-simple-unit-identifiers\n */\nexport var SIMPLE_UNITS = SANCTIONED_UNITS.map(removeUnitNamespace);\n/**\n * https://tc39.es/ecma402/#sec-issanctionedsimpleunitidentifier\n */\nexport function IsSanctionedSimpleUnitIdentifier(unitIdentifier) {\n return SIMPLE_UNITS.indexOf(unitIdentifier) > -1;\n}\n","/**\n * https://tc39.es/ecma402/#sec-isvalidtimezonename\n * @param tz\n * @param implDetails implementation details\n */\nexport function IsValidTimeZoneName(tz, _a) {\n var zoneNamesFromData = _a.zoneNamesFromData, uppercaseLinks = _a.uppercaseLinks;\n var uppercasedTz = tz.toUpperCase();\n var zoneNames = new Set();\n var linkNames = new Set();\n zoneNamesFromData.map(function (z) { return z.toUpperCase(); }).forEach(function (z) { return zoneNames.add(z); });\n Object.keys(uppercaseLinks).forEach(function (linkName) {\n linkNames.add(linkName.toUpperCase());\n zoneNames.add(uppercaseLinks[linkName].toUpperCase());\n });\n return zoneNames.has(uppercasedTz) || linkNames.has(uppercasedTz);\n}\n","/**\n * This follows https://tc39.es/ecma402/#sec-case-sensitivity-and-case-mapping\n * @param str string to convert\n */\nfunction toUpperCase(str) {\n return str.replace(/([a-z])/g, function (_, c) { return c.toUpperCase(); });\n}\nvar NOT_A_Z_REGEX = /[^A-Z]/;\n/**\n * https://tc39.es/ecma402/#sec-iswellformedcurrencycode\n */\nexport function IsWellFormedCurrencyCode(currency) {\n currency = toUpperCase(currency);\n if (currency.length !== 3) {\n return false;\n }\n if (NOT_A_Z_REGEX.test(currency)) {\n return false;\n }\n return true;\n}\n","import { IsSanctionedSimpleUnitIdentifier } from './IsSanctionedSimpleUnitIdentifier';\n/**\n * This follows https://tc39.es/ecma402/#sec-case-sensitivity-and-case-mapping\n * @param str string to convert\n */\nfunction toLowerCase(str) {\n return str.replace(/([A-Z])/g, function (_, c) { return c.toLowerCase(); });\n}\n/**\n * https://tc39.es/ecma402/#sec-iswellformedunitidentifier\n * @param unit\n */\nexport function IsWellFormedUnitIdentifier(unit) {\n unit = toLowerCase(unit);\n if (IsSanctionedSimpleUnitIdentifier(unit)) {\n return true;\n }\n var units = unit.split('-per-');\n if (units.length !== 2) {\n return false;\n }\n var numerator = units[0], denominator = units[1];\n if (!IsSanctionedSimpleUnitIdentifier(numerator) ||\n !IsSanctionedSimpleUnitIdentifier(denominator)) {\n return false;\n }\n return true;\n}\n","import { invariant } from '../utils';\nexport function ApplyUnsignedRoundingMode(x, r1, r2, unsignedRoundingMode) {\n if (x.eq(r1))\n return r1;\n invariant(r1.lessThan(x) && x.lessThan(r2), \"x should be between r1 and r2 but x=\".concat(x, \", r1=\").concat(r1, \", r2=\").concat(r2));\n if (unsignedRoundingMode === 'zero') {\n return r1;\n }\n if (unsignedRoundingMode === 'infinity') {\n return r2;\n }\n var d1 = x.minus(r1);\n var d2 = r2.minus(x);\n if (d1.lessThan(d2)) {\n return r1;\n }\n if (d2.lessThan(d1)) {\n return r2;\n }\n invariant(d1.eq(d2), 'd1 should be equal to d2');\n if (unsignedRoundingMode === 'half-zero') {\n return r1;\n }\n if (unsignedRoundingMode === 'half-infinity') {\n return r2;\n }\n invariant(unsignedRoundingMode === 'half-even', 'unsignedRoundingMode should be half-even');\n var cardinality = r1.div(r2.minus(r1)).mod(2);\n if (cardinality.isZero()) {\n return r1;\n }\n return r2;\n}\n","var PART_TYPES_TO_COLLAPSE = new Set([\n 'unit',\n 'exponentMinusSign',\n 'minusSign',\n 'plusSign',\n 'percentSign',\n 'exponentSeparator',\n 'percent',\n 'percentSign',\n 'currency',\n 'literal',\n]);\n/**\n * https://tc39.es/ecma402/#sec-collapsenumberrange\n * LDML: https://unicode-org.github.io/cldr/ldml/tr35-numbers.html#collapsing-number-ranges\n */\nexport function CollapseNumberRange(numberFormat, result, _a) {\n var getInternalSlots = _a.getInternalSlots;\n var internalSlots = getInternalSlots(numberFormat);\n var symbols = internalSlots.dataLocaleData.numbers.symbols[internalSlots.numberingSystem];\n var rangeSignRegex = new RegExp(\"s?[\".concat(symbols.rangeSign, \"]s?\"));\n var rangeSignIndex = result.findIndex(function (r) { return r.type === 'literal' && rangeSignRegex.test(r.value); });\n var prefixSignParts = [];\n for (var i = rangeSignIndex - 1; i >= 0; i--) {\n if (!PART_TYPES_TO_COLLAPSE.has(result[i].type)) {\n break;\n }\n prefixSignParts.unshift(result[i]);\n }\n // Don't collapse if it's a single code point\n if (Array.from(prefixSignParts.map(function (p) { return p.value; }).join('')).length > 1) {\n var newResult = Array.from(result);\n newResult.splice(rangeSignIndex - prefixSignParts.length, prefixSignParts.length);\n return newResult;\n }\n var suffixSignParts = [];\n for (var i = rangeSignIndex + 1; i < result.length; i++) {\n if (!PART_TYPES_TO_COLLAPSE.has(result[i].type)) {\n break;\n }\n suffixSignParts.push(result[i]);\n }\n // Don't collapse if it's a single code point\n if (Array.from(suffixSignParts.map(function (p) { return p.value; }).join('')).length > 1) {\n var newResult = Array.from(result);\n newResult.splice(rangeSignIndex + 1, suffixSignParts.length);\n return newResult;\n }\n return result;\n}\n","import Decimal from 'decimal.js';\nimport { invariant } from '../utils';\nDecimal.set({\n toExpPos: 100,\n});\n/**\n * The abstract operation ComputeExponentForMagnitude computes an exponent by which to scale a\n * number of the given magnitude (power of ten of the most significant digit) according to the\n * locale and the desired notation (scientific, engineering, or compact).\n */\nexport function ComputeExponentForMagnitude(internalSlots, magnitude) {\n var notation = internalSlots.notation, dataLocaleData = internalSlots.dataLocaleData, numberingSystem = internalSlots.numberingSystem;\n switch (notation) {\n case 'standard':\n return 0;\n case 'scientific':\n return magnitude.toNumber();\n case 'engineering':\n var thousands = magnitude.div(3).floor();\n return thousands.times(3).toNumber();\n default: {\n invariant(notation === 'compact', 'Invalid notation');\n // Let exponent be an implementation- and locale-dependent (ILD) integer by which to scale a\n // number of the given magnitude in compact notation for the current locale.\n var compactDisplay = internalSlots.compactDisplay, style = internalSlots.style, currencyDisplay = internalSlots.currencyDisplay;\n var thresholdMap = void 0;\n if (style === 'currency' && currencyDisplay !== 'name') {\n var currency = dataLocaleData.numbers.currency[numberingSystem] ||\n dataLocaleData.numbers.currency[dataLocaleData.numbers.nu[0]];\n thresholdMap = currency.short;\n }\n else {\n var decimal = dataLocaleData.numbers.decimal[numberingSystem] ||\n dataLocaleData.numbers.decimal[dataLocaleData.numbers.nu[0]];\n thresholdMap = compactDisplay === 'long' ? decimal.long : decimal.short;\n }\n if (!thresholdMap) {\n return 0;\n }\n var num = Decimal.pow(10, magnitude).toString();\n var thresholds = Object.keys(thresholdMap); // TODO: this can be pre-processed\n if (num < thresholds[0]) {\n return 0;\n }\n if (num > thresholds[thresholds.length - 1]) {\n return thresholds[thresholds.length - 1].length - 1;\n }\n var i = thresholds.indexOf(num);\n if (i === -1) {\n return 0;\n }\n // See https://unicode.org/reports/tr35/tr35-numbers.html#Compact_Number_Formats\n // Special handling if the pattern is precisely `0`.\n var magnitudeKey = thresholds[i];\n // TODO: do we need to handle plural here?\n var compactPattern = thresholdMap[magnitudeKey].other;\n if (compactPattern === '0') {\n return 0;\n }\n // Example: in zh-TW, `10000000` maps to `0000萬`. So we need to return 8 - 4 = 4 here.\n return (magnitudeKey.length -\n thresholdMap[magnitudeKey].other.match(/0+/)[0].length);\n }\n }\n}\n","var negativeMapping = {\n ceil: 'zero',\n floor: 'infinity',\n expand: 'infinity',\n trunc: 'zero',\n halfCeil: 'half-zero',\n halfFloor: 'half-infinity',\n halfExpand: 'half-infinity',\n halfTrunc: 'half-zero',\n halfEven: 'half-even',\n};\nvar positiveMapping = {\n ceil: 'infinity',\n floor: 'zero',\n expand: 'infinity',\n trunc: 'zero',\n halfCeil: 'half-infinity',\n halfFloor: 'half-zero',\n halfExpand: 'half-infinity',\n halfTrunc: 'half-zero',\n halfEven: 'half-even',\n};\nexport function GetUnsignedRoundingMode(roundingMode, isNegative) {\n if (isNegative) {\n return negativeMapping[roundingMode];\n }\n return positiveMapping[roundingMode];\n}\n","import Decimal from 'decimal.js';\nimport { repeat } from '../utils';\nimport { ApplyUnsignedRoundingMode } from './ApplyUnsignedRoundingMode';\n//IMPL: Setting Decimal configuration\nDecimal.set({\n toExpPos: 100,\n});\n//IMPL: Helper function to calculate raw fixed value\nfunction ToRawFixedFn(n, f) {\n return n.times(Decimal.pow(10, -f));\n}\n//IMPL: Helper function to find n1 and r1\nfunction findN1R1(x, f, roundingIncrement) {\n var nx = x.times(Decimal.pow(10, f)).floor();\n var n1 = nx.div(roundingIncrement).floor().times(roundingIncrement);\n var r1 = ToRawFixedFn(n1, f);\n return {\n n1: n1,\n r1: r1,\n };\n}\n//IMPL: Helper function to find n2 and r2\nfunction findN2R2(x, f, roundingIncrement) {\n var nx = x.times(Decimal.pow(10, f)).ceil();\n var n2 = nx.div(roundingIncrement).ceil().times(roundingIncrement);\n var r2 = ToRawFixedFn(n2, f);\n return {\n n2: n2,\n r2: r2,\n };\n}\n/**\n * https://tc39.es/ecma402/#sec-torawfixed\n * @param x a finite non-negative Number or BigInt\n * @param minFraction an integer between 0 and 20\n * @param maxFraction an integer between 0 and 20\n */\nexport function ToRawFixed(x, minFraction, maxFraction, roundingIncrement, unsignedRoundingMode) {\n // 1. Let f be maxFraction.\n var f = maxFraction;\n // 2. Let n1 and r1 be the results of performing the maximized rounding of x to f fraction digits.\n var _a = findN1R1(x, f, roundingIncrement), n1 = _a.n1, r1 = _a.r1;\n // 3. Let n2 and r2 be the results of performing the minimized rounding of x to f fraction digits.\n var _b = findN2R2(x, f, roundingIncrement), n2 = _b.n2, r2 = _b.r2;\n // 4. Let r be ApplyUnsignedRoundingMode(x, r1, r2, unsignedRoundingMode).\n var r = ApplyUnsignedRoundingMode(x, r1, r2, unsignedRoundingMode);\n var n, xFinal;\n var m;\n // 5. If r is equal to r1, then\n if (r.eq(r1)) {\n // a. Let n be n1.\n n = n1;\n // b. Let xFinal be r1.\n xFinal = r1;\n }\n else {\n // 6. Else,\n // a. Let n be n2.\n n = n2;\n // b. Let xFinal be r2.\n xFinal = r2;\n }\n // 7. If n is 0, let m be \"0\".\n if (n.isZero()) {\n m = '0';\n }\n else {\n // 8. Else, let m be the String representation of n.\n m = n.toString();\n }\n var int;\n // 9. If f is not 0, then\n if (f !== 0) {\n // a. Let k be the length of m.\n var k = m.length;\n // b. If k < f, then\n if (k <= f) {\n // i. Let z be the String value consisting of f + 1 - k occurrences of the character \"0\".\n var z = repeat('0', f - k + 1);\n // ii. Set m to the string-concatenation of z and m.\n m = z + m;\n // iii. Set k to f + 1.\n k = f + 1;\n }\n // c. Let a be the substring of m from 0 to k - f.\n var a = m.slice(0, k - f);\n // d. Let b be the substring of m from k - f to k.\n var b = m.slice(m.length - f);\n // e. Set m to the string-concatenation of a, \".\", and b.\n m = a + '.' + b;\n // f. Let int be the length of a.\n int = a.length;\n }\n else {\n // 10. Else, let int be the length of m.\n int = m.length;\n }\n // 11. Let cut be maxFraction - minFraction.\n var cut = maxFraction - minFraction;\n // 12. Repeat, while cut > 0 and the last character of m is \"0\",\n while (cut > 0 && m[m.length - 1] === '0') {\n // a. Remove the last character from m.\n m = m.slice(0, m.length - 1);\n // b. Decrease cut by 1.\n cut--;\n }\n // 13. If the last character of m is \".\", then\n if (m[m.length - 1] === '\\u002e') {\n // a. Remove the last character from m.\n m = m.slice(0, m.length - 1);\n }\n // 14. Return the Record { [[FormattedString]]: m, [[RoundedNumber]]: xFinal, [[IntegerDigitsCount]]: int, [[RoundingMagnitude]]: -f }.\n return {\n formattedString: m,\n roundedNumber: xFinal,\n integerDigitsCount: int,\n roundingMagnitude: -f,\n };\n}\n","import Decimal from 'decimal.js';\nimport { ZERO } from '../constants';\nimport { invariant, repeat } from '../utils';\nimport { ApplyUnsignedRoundingMode } from './ApplyUnsignedRoundingMode';\n//IMPL: Helper function to find n1, e1, and r1\nfunction findN1E1R1(x, p) {\n var maxN1 = Decimal.pow(10, p);\n var minN1 = Decimal.pow(10, p - 1);\n var maxE1 = x.div(minN1).log(10).plus(p).minus(1).ceil();\n var currentE1 = maxE1;\n while (true) {\n var currentN1 = x.div(Decimal.pow(10, currentE1.minus(p).plus(1))).floor();\n if (currentN1.lessThan(maxN1) && currentN1.greaterThanOrEqualTo(minN1)) {\n var currentR1 = currentN1.times(Decimal.pow(10, currentE1.minus(p).plus(1)));\n if (currentR1.lessThanOrEqualTo(x)) {\n return {\n n1: currentN1,\n e1: currentE1,\n r1: currentR1,\n };\n }\n }\n currentE1 = currentE1.minus(1);\n }\n}\n//IMPL: Helper function to find n2, e2, and r2\nfunction findN2E2R2(x, p) {\n var maxN2 = Decimal.pow(10, p);\n var minN2 = Decimal.pow(10, p - 1);\n var minE2 = x.div(maxN2).log(10).plus(p).minus(1).floor();\n var currentE2 = minE2;\n while (true) {\n var currentN2 = x.div(Decimal.pow(10, currentE2.minus(p).plus(1))).ceil();\n if (currentN2.lessThan(maxN2) && currentN2.greaterThanOrEqualTo(minN2)) {\n var currentR2 = currentN2.times(Decimal.pow(10, currentE2.minus(p).plus(1)));\n if (currentR2.greaterThanOrEqualTo(x)) {\n return {\n n2: currentN2,\n e2: currentE2,\n r2: currentR2,\n };\n }\n }\n currentE2 = currentE2.plus(1);\n }\n}\n/**\n * https://tc39.es/ecma402/#sec-torawprecision\n * @param x a finite non-negative Number or BigInt\n * @param minPrecision an integer between 1 and 21\n * @param maxPrecision an integer between 1 and 21\n */\nexport function ToRawPrecision(x, minPrecision, maxPrecision, unsignedRoundingMode) {\n // 1. Let p be maxPrecision.\n var p = maxPrecision;\n var m;\n var e;\n var xFinal;\n // 2. If x = 0, then\n if (x.isZero()) {\n // a. Let m be the String value consisting of p occurrences of the character \"0\".\n m = repeat('0', p);\n // b. Let e be 0.\n e = 0;\n // c. Let xFinal be 0.\n xFinal = ZERO;\n }\n else {\n // 3. Else,\n // a. Let {n1, e1, r1} be the result of findN1E1R1(x, p).\n var _a = findN1E1R1(x, p), n1 = _a.n1, e1 = _a.e1, r1 = _a.r1;\n // b. Let {n2, e2, r2} be the result of findN2E2R2(x, p).\n var _b = findN2E2R2(x, p), n2 = _b.n2, e2 = _b.e2, r2 = _b.r2;\n // c. Let r be ApplyUnsignedRoundingMode(x, r1, r2, unsignedRoundingMode).\n var r = ApplyUnsignedRoundingMode(x, r1, r2, unsignedRoundingMode);\n var n \n // d. If r = r1, then\n = void 0;\n // d. If r = r1, then\n if (r.eq(r1)) {\n // i. Let n be n1.\n n = n1;\n // ii. Let e be e1.\n e = e1.toNumber();\n // iii. Let xFinal be r1.\n xFinal = r1;\n }\n else {\n // e. Else,\n // i. Let n be n2.\n n = n2;\n // ii. Let e be e2.\n e = e2.toNumber();\n // iii. Let xFinal be r2.\n xFinal = r2;\n }\n // f. Let m be the String representation of n.\n m = n.toString();\n }\n var int;\n // 4. If e ≥ p - 1, then\n if (e >= p - 1) {\n // a. Let m be the string-concatenation of m and p - 1 - e occurrences of the character \"0\".\n m = m + repeat('0', e - p + 1);\n // b. Let int be e + 1.\n int = e + 1;\n }\n else if (e >= 0) {\n // 5. Else if e ≥ 0, then\n // a. Let m be the string-concatenation of the first e + 1 characters of m, \".\", and the remaining p - (e + 1) characters of m.\n m = m.slice(0, e + 1) + '.' + m.slice(m.length - (p - (e + 1)));\n // b. Let int be e + 1.\n int = e + 1;\n }\n else {\n // 6. Else,\n // a. Assert: e < 0.\n invariant(e < 0, 'e should be less than 0');\n // b. Let m be the string-concatenation of \"0.\", -e - 1 occurrences of the character \"0\", and m.\n m = '0.' + repeat('0', -e - 1) + m;\n // c. Let int be 1.\n int = 1;\n }\n // 7. If m contains \".\", and maxPrecision > minPrecision, then\n if (m.includes('.') && maxPrecision > minPrecision) {\n // a. Let cut be maxPrecision - minPrecision.\n var cut = maxPrecision - minPrecision;\n // b. Repeat, while cut > 0 and the last character of m is \"0\",\n while (cut > 0 && m[m.length - 1] === '0') {\n // i. Remove the last character from m.\n m = m.slice(0, m.length - 1);\n // ii. Decrease cut by 1.\n cut--;\n }\n // c. If the last character of m is \".\", then\n if (m[m.length - 1] === '.') {\n // i. Remove the last character from m.\n m = m.slice(0, m.length - 1);\n }\n }\n // 8. Return the Record { [[FormattedString]]: m, [[RoundedNumber]]: xFinal, [[IntegerDigitsCount]]: int, [[RoundingMagnitude]]: e }.\n return {\n formattedString: m,\n roundedNumber: xFinal,\n integerDigitsCount: int,\n roundingMagnitude: e,\n };\n}\n","import { NEGATIVE_ZERO, ZERO } from '../constants';\nimport { invariant, repeat } from '../utils';\nimport { GetUnsignedRoundingMode } from './GetUnsignedRoundingMode';\nimport { ToRawFixed } from './ToRawFixed';\nimport { ToRawPrecision } from './ToRawPrecision';\n/**\n * https://tc39.es/ecma402/#sec-formatnumberstring\n */\nexport function FormatNumericToString(intlObject, _x) {\n var x = _x;\n var sign;\n // -0\n if (x.isZero() && x.isNegative()) {\n sign = 'negative';\n x = ZERO;\n }\n else {\n invariant(x.isFinite(), 'NumberFormatDigitInternalSlots value is not finite');\n if (x.lessThan(0)) {\n sign = 'negative';\n }\n else {\n sign = 'positive';\n }\n if (sign === 'negative') {\n x = x.negated();\n }\n }\n var result;\n var roundingType = intlObject.roundingType;\n var unsignedRoundingMode = GetUnsignedRoundingMode(intlObject.roundingMode, sign === 'negative');\n switch (roundingType) {\n case 'significantDigits':\n result = ToRawPrecision(x, intlObject.minimumSignificantDigits, intlObject.maximumSignificantDigits, unsignedRoundingMode);\n break;\n case 'fractionDigits':\n result = ToRawFixed(x, intlObject.minimumFractionDigits, intlObject.maximumFractionDigits, intlObject.roundingIncrement, unsignedRoundingMode);\n break;\n default:\n var sResult = ToRawPrecision(x, intlObject.minimumSignificantDigits, intlObject.maximumSignificantDigits, unsignedRoundingMode);\n var fResult = ToRawFixed(x, intlObject.minimumFractionDigits, intlObject.maximumFractionDigits, intlObject.roundingIncrement, unsignedRoundingMode);\n if (intlObject.roundingType === 'morePrecision') {\n if (sResult.roundingMagnitude <= fResult.roundingMagnitude) {\n result = sResult;\n }\n else {\n result = fResult;\n }\n }\n else {\n invariant(intlObject.roundingType === 'lessPrecision', 'Invalid roundingType');\n if (sResult.roundingMagnitude <= fResult.roundingMagnitude) {\n result = fResult;\n }\n else {\n result = sResult;\n }\n }\n break;\n }\n x = result.roundedNumber;\n var string = result.formattedString;\n if (intlObject.trailingZeroDisplay === 'stripIfInteger' && x.isInteger()) {\n var i = string.indexOf('.');\n if (i > -1) {\n string = string.slice(0, i);\n }\n }\n var int = result.integerDigitsCount;\n var minInteger = intlObject.minimumIntegerDigits;\n if (int < minInteger) {\n var forwardZeros = repeat('0', minInteger - int);\n string = forwardZeros + string;\n }\n if (sign === 'negative') {\n if (x.isZero()) {\n x = NEGATIVE_ZERO;\n }\n else {\n x = x.negated();\n }\n }\n return { roundedNumber: x, formattedString: string };\n}\n","import Decimal from 'decimal.js';\nimport { ComputeExponentForMagnitude } from './ComputeExponentForMagnitude';\nimport { FormatNumericToString } from './FormatNumericToString';\n/**\n * The abstract operation ComputeExponent computes an exponent (power of ten) by which to scale x\n * according to the number formatting settings. It handles cases such as 999 rounding up to 1000,\n * requiring a different exponent.\n *\n * NOT IN SPEC: it returns [exponent, magnitude].\n */\nexport function ComputeExponent(internalSlots, x) {\n if (x.isZero()) {\n return [0, 0];\n }\n if (x.isNegative()) {\n x = x.negated();\n }\n var magnitude = x.log(10).floor();\n var exponent = ComputeExponentForMagnitude(internalSlots, magnitude);\n // Preserve more precision by doing multiplication when exponent is negative.\n x = x.times(Decimal.pow(10, -exponent));\n var formatNumberResult = FormatNumericToString(internalSlots, x);\n if (formatNumberResult.roundedNumber.isZero()) {\n return [exponent, magnitude.toNumber()];\n }\n var newMagnitude = formatNumberResult.roundedNumber.log(10).floor();\n if (newMagnitude.eq(magnitude.minus(exponent))) {\n return [exponent, magnitude.toNumber()];\n }\n return [\n ComputeExponentForMagnitude(internalSlots, magnitude.plus(1)),\n magnitude.plus(1).toNumber(),\n ];\n}\n","import { HasOwnProperty } from '../262';\n/**\n * https://tc39.es/ecma402/#sec-currencydigits\n */\nexport function CurrencyDigits(c, _a) {\n var currencyDigitsData = _a.currencyDigitsData;\n return HasOwnProperty(currencyDigitsData, c)\n ? currencyDigitsData[c]\n : 2;\n}\n","// @generated from regex-gen.ts\nexport var S_UNICODE_REGEX = /[\\$\\+<->\\^`\\|~\\xA2-\\xA6\\xA8\\xA9\\xAC\\xAE-\\xB1\\xB4\\xB8\\xD7\\xF7\\u02C2-\\u02C5\\u02D2-\\u02DF\\u02E5-\\u02EB\\u02ED\\u02EF-\\u02FF\\u0375\\u0384\\u0385\\u03F6\\u0482\\u058D-\\u058F\\u0606-\\u0608\\u060B\\u060E\\u060F\\u06DE\\u06E9\\u06FD\\u06FE\\u07F6\\u07FE\\u07FF\\u09F2\\u09F3\\u09FA\\u09FB\\u0AF1\\u0B70\\u0BF3-\\u0BFA\\u0C7F\\u0D4F\\u0D79\\u0E3F\\u0F01-\\u0F03\\u0F13\\u0F15-\\u0F17\\u0F1A-\\u0F1F\\u0F34\\u0F36\\u0F38\\u0FBE-\\u0FC5\\u0FC7-\\u0FCC\\u0FCE\\u0FCF\\u0FD5-\\u0FD8\\u109E\\u109F\\u1390-\\u1399\\u166D\\u17DB\\u1940\\u19DE-\\u19FF\\u1B61-\\u1B6A\\u1B74-\\u1B7C\\u1FBD\\u1FBF-\\u1FC1\\u1FCD-\\u1FCF\\u1FDD-\\u1FDF\\u1FED-\\u1FEF\\u1FFD\\u1FFE\\u2044\\u2052\\u207A-\\u207C\\u208A-\\u208C\\u20A0-\\u20BF\\u2100\\u2101\\u2103-\\u2106\\u2108\\u2109\\u2114\\u2116-\\u2118\\u211E-\\u2123\\u2125\\u2127\\u2129\\u212E\\u213A\\u213B\\u2140-\\u2144\\u214A-\\u214D\\u214F\\u218A\\u218B\\u2190-\\u2307\\u230C-\\u2328\\u232B-\\u2426\\u2440-\\u244A\\u249C-\\u24E9\\u2500-\\u2767\\u2794-\\u27C4\\u27C7-\\u27E5\\u27F0-\\u2982\\u2999-\\u29D7\\u29DC-\\u29FB\\u29FE-\\u2B73\\u2B76-\\u2B95\\u2B97-\\u2BFF\\u2CE5-\\u2CEA\\u2E50\\u2E51\\u2E80-\\u2E99\\u2E9B-\\u2EF3\\u2F00-\\u2FD5\\u2FF0-\\u2FFB\\u3004\\u3012\\u3013\\u3020\\u3036\\u3037\\u303E\\u303F\\u309B\\u309C\\u3190\\u3191\\u3196-\\u319F\\u31C0-\\u31E3\\u3200-\\u321E\\u322A-\\u3247\\u3250\\u3260-\\u327F\\u328A-\\u32B0\\u32C0-\\u33FF\\u4DC0-\\u4DFF\\uA490-\\uA4C6\\uA700-\\uA716\\uA720\\uA721\\uA789\\uA78A\\uA828-\\uA82B\\uA836-\\uA839\\uAA77-\\uAA79\\uAB5B\\uAB6A\\uAB6B\\uFB29\\uFBB2-\\uFBC1\\uFDFC\\uFDFD\\uFE62\\uFE64-\\uFE66\\uFE69\\uFF04\\uFF0B\\uFF1C-\\uFF1E\\uFF3E\\uFF40\\uFF5C\\uFF5E\\uFFE0-\\uFFE6\\uFFE8-\\uFFEE\\uFFFC\\uFFFD]|\\uD800[\\uDD37-\\uDD3F\\uDD79-\\uDD89\\uDD8C-\\uDD8E\\uDD90-\\uDD9C\\uDDA0\\uDDD0-\\uDDFC]|\\uD802[\\uDC77\\uDC78\\uDEC8]|\\uD805\\uDF3F|\\uD807[\\uDFD5-\\uDFF1]|\\uD81A[\\uDF3C-\\uDF3F\\uDF45]|\\uD82F\\uDC9C|\\uD834[\\uDC00-\\uDCF5\\uDD00-\\uDD26\\uDD29-\\uDD64\\uDD6A-\\uDD6C\\uDD83\\uDD84\\uDD8C-\\uDDA9\\uDDAE-\\uDDE8\\uDE00-\\uDE41\\uDE45\\uDF00-\\uDF56]|\\uD835[\\uDEC1\\uDEDB\\uDEFB\\uDF15\\uDF35\\uDF4F\\uDF6F\\uDF89\\uDFA9\\uDFC3]|\\uD836[\\uDC00-\\uDDFF\\uDE37-\\uDE3A\\uDE6D-\\uDE74\\uDE76-\\uDE83\\uDE85\\uDE86]|\\uD838[\\uDD4F\\uDEFF]|\\uD83B[\\uDCAC\\uDCB0\\uDD2E\\uDEF0\\uDEF1]|\\uD83C[\\uDC00-\\uDC2B\\uDC30-\\uDC93\\uDCA0-\\uDCAE\\uDCB1-\\uDCBF\\uDCC1-\\uDCCF\\uDCD1-\\uDCF5\\uDD0D-\\uDDAD\\uDDE6-\\uDE02\\uDE10-\\uDE3B\\uDE40-\\uDE48\\uDE50\\uDE51\\uDE60-\\uDE65\\uDF00-\\uDFFF]|\\uD83D[\\uDC00-\\uDED7\\uDEE0-\\uDEEC\\uDEF0-\\uDEFC\\uDF00-\\uDF73\\uDF80-\\uDFD8\\uDFE0-\\uDFEB]|\\uD83E[\\uDC00-\\uDC0B\\uDC10-\\uDC47\\uDC50-\\uDC59\\uDC60-\\uDC87\\uDC90-\\uDCAD\\uDCB0\\uDCB1\\uDD00-\\uDD78\\uDD7A-\\uDDCB\\uDDCD-\\uDE53\\uDE60-\\uDE6D\\uDE70-\\uDE74\\uDE78-\\uDE7A\\uDE80-\\uDE86\\uDE90-\\uDEA8\\uDEB0-\\uDEB6\\uDEC0-\\uDEC2\\uDED0-\\uDED6\\uDF00-\\uDF92\\uDF94-\\uDFCA]/;\n","export var digitMapping = {\n \"adlm\": [\n \"𞥐\",\n \"𞥑\",\n \"𞥒\",\n \"𞥓\",\n \"𞥔\",\n \"𞥕\",\n \"𞥖\",\n \"𞥗\",\n \"𞥘\",\n \"𞥙\"\n ],\n \"ahom\": [\n \"𑜰\",\n \"𑜱\",\n \"𑜲\",\n \"𑜳\",\n \"𑜴\",\n \"𑜵\",\n \"𑜶\",\n \"𑜷\",\n \"𑜸\",\n \"𑜹\"\n ],\n \"arab\": [\n \"٠\",\n \"١\",\n \"٢\",\n \"٣\",\n \"٤\",\n \"٥\",\n \"٦\",\n \"٧\",\n \"٨\",\n \"٩\"\n ],\n \"arabext\": [\n \"۰\",\n \"۱\",\n \"۲\",\n \"۳\",\n \"۴\",\n \"۵\",\n \"۶\",\n \"۷\",\n \"۸\",\n \"۹\"\n ],\n \"bali\": [\n \"᭐\",\n \"᭑\",\n \"᭒\",\n \"᭓\",\n \"᭔\",\n \"᭕\",\n \"᭖\",\n \"᭗\",\n \"᭘\",\n \"᭙\"\n ],\n \"beng\": [\n \"০\",\n \"১\",\n \"২\",\n \"৩\",\n \"৪\",\n \"৫\",\n \"৬\",\n \"৭\",\n \"৮\",\n \"৯\"\n ],\n \"bhks\": [\n \"𑱐\",\n \"𑱑\",\n \"𑱒\",\n \"𑱓\",\n \"𑱔\",\n \"𑱕\",\n \"𑱖\",\n \"𑱗\",\n \"𑱘\",\n \"𑱙\"\n ],\n \"brah\": [\n \"𑁦\",\n \"𑁧\",\n \"𑁨\",\n \"𑁩\",\n \"𑁪\",\n \"𑁫\",\n \"𑁬\",\n \"𑁭\",\n \"𑁮\",\n \"𑁯\"\n ],\n \"cakm\": [\n \"𑄶\",\n \"𑄷\",\n \"𑄸\",\n \"𑄹\",\n \"𑄺\",\n \"𑄻\",\n \"𑄼\",\n \"𑄽\",\n \"𑄾\",\n \"𑄿\"\n ],\n \"cham\": [\n \"꩐\",\n \"꩑\",\n \"꩒\",\n \"꩓\",\n \"꩔\",\n \"꩕\",\n \"꩖\",\n \"꩗\",\n \"꩘\",\n \"꩙\"\n ],\n \"deva\": [\n \"०\",\n \"१\",\n \"२\",\n \"३\",\n \"४\",\n \"५\",\n \"६\",\n \"७\",\n \"८\",\n \"९\"\n ],\n \"diak\": [\n \"𑥐\",\n \"𑥑\",\n \"𑥒\",\n \"𑥓\",\n \"𑥔\",\n \"𑥕\",\n \"𑥖\",\n \"𑥗\",\n \"𑥘\",\n \"𑥙\"\n ],\n \"fullwide\": [\n \"0\",\n \"1\",\n \"2\",\n \"3\",\n \"4\",\n \"5\",\n \"6\",\n \"7\",\n \"8\",\n \"9\"\n ],\n \"gong\": [\n \"𑶠\",\n \"𑶡\",\n \"𑶢\",\n \"𑶣\",\n \"𑶤\",\n \"𑶥\",\n \"𑶦\",\n \"𑶧\",\n \"𑶨\",\n \"𑶩\"\n ],\n \"gonm\": [\n \"𑵐\",\n \"𑵑\",\n \"𑵒\",\n \"𑵓\",\n \"𑵔\",\n \"𑵕\",\n \"𑵖\",\n \"𑵗\",\n \"𑵘\",\n \"𑵙\"\n ],\n \"gujr\": [\n \"૦\",\n \"૧\",\n \"૨\",\n \"૩\",\n \"૪\",\n \"૫\",\n \"૬\",\n \"૭\",\n \"૮\",\n \"૯\"\n ],\n \"guru\": [\n \"੦\",\n \"੧\",\n \"੨\",\n \"੩\",\n \"੪\",\n \"੫\",\n \"੬\",\n \"੭\",\n \"੮\",\n \"੯\"\n ],\n \"hanidec\": [\n \"〇\",\n \"一\",\n \"二\",\n \"三\",\n \"四\",\n \"五\",\n \"六\",\n \"七\",\n \"八\",\n \"九\"\n ],\n \"hmng\": [\n \"𖭐\",\n \"𖭑\",\n \"𖭒\",\n \"𖭓\",\n \"𖭔\",\n \"𖭕\",\n \"𖭖\",\n \"𖭗\",\n \"𖭘\",\n \"𖭙\"\n ],\n \"hmnp\": [\n \"𞅀\",\n \"𞅁\",\n \"𞅂\",\n \"𞅃\",\n \"𞅄\",\n \"𞅅\",\n \"𞅆\",\n \"𞅇\",\n \"𞅈\",\n \"𞅉\"\n ],\n \"java\": [\n \"꧐\",\n \"꧑\",\n \"꧒\",\n \"꧓\",\n \"꧔\",\n \"꧕\",\n \"꧖\",\n \"꧗\",\n \"꧘\",\n \"꧙\"\n ],\n \"kali\": [\n \"꤀\",\n \"꤁\",\n \"꤂\",\n \"꤃\",\n \"꤄\",\n \"꤅\",\n \"꤆\",\n \"꤇\",\n \"꤈\",\n \"꤉\"\n ],\n \"khmr\": [\n \"០\",\n \"១\",\n \"២\",\n \"៣\",\n \"៤\",\n \"៥\",\n \"៦\",\n \"៧\",\n \"៨\",\n \"៩\"\n ],\n \"knda\": [\n \"೦\",\n \"೧\",\n \"೨\",\n \"೩\",\n \"೪\",\n \"೫\",\n \"೬\",\n \"೭\",\n \"೮\",\n \"೯\"\n ],\n \"lana\": [\n \"᪀\",\n \"᪁\",\n \"᪂\",\n \"᪃\",\n \"᪄\",\n \"᪅\",\n \"᪆\",\n \"᪇\",\n \"᪈\",\n \"᪉\"\n ],\n \"lanatham\": [\n \"᪐\",\n \"᪑\",\n \"᪒\",\n \"᪓\",\n \"᪔\",\n \"᪕\",\n \"᪖\",\n \"᪗\",\n \"᪘\",\n \"᪙\"\n ],\n \"laoo\": [\n \"໐\",\n \"໑\",\n \"໒\",\n \"໓\",\n \"໔\",\n \"໕\",\n \"໖\",\n \"໗\",\n \"໘\",\n \"໙\"\n ],\n \"lepc\": [\n \"᪐\",\n \"᪑\",\n \"᪒\",\n \"᪓\",\n \"᪔\",\n \"᪕\",\n \"᪖\",\n \"᪗\",\n \"᪘\",\n \"᪙\"\n ],\n \"limb\": [\n \"᥆\",\n \"᥇\",\n \"᥈\",\n \"᥉\",\n \"᥊\",\n \"᥋\",\n \"᥌\",\n \"᥍\",\n \"᥎\",\n \"᥏\"\n ],\n \"mathbold\": [\n \"𝟎\",\n \"𝟏\",\n \"𝟐\",\n \"𝟑\",\n \"𝟒\",\n \"𝟓\",\n \"𝟔\",\n \"𝟕\",\n \"𝟖\",\n \"𝟗\"\n ],\n \"mathdbl\": [\n \"𝟘\",\n \"𝟙\",\n \"𝟚\",\n \"𝟛\",\n \"𝟜\",\n \"𝟝\",\n \"𝟞\",\n \"𝟟\",\n \"𝟠\",\n \"𝟡\"\n ],\n \"mathmono\": [\n \"𝟶\",\n \"𝟷\",\n \"𝟸\",\n \"𝟹\",\n \"𝟺\",\n \"𝟻\",\n \"𝟼\",\n \"𝟽\",\n \"𝟾\",\n \"𝟿\"\n ],\n \"mathsanb\": [\n \"𝟬\",\n \"𝟭\",\n \"𝟮\",\n \"𝟯\",\n \"𝟰\",\n \"𝟱\",\n \"𝟲\",\n \"𝟳\",\n \"𝟴\",\n \"𝟵\"\n ],\n \"mathsans\": [\n \"𝟢\",\n \"𝟣\",\n \"𝟤\",\n \"𝟥\",\n \"𝟦\",\n \"𝟧\",\n \"𝟨\",\n \"𝟩\",\n \"𝟪\",\n \"𝟫\"\n ],\n \"mlym\": [\n \"൦\",\n \"൧\",\n \"൨\",\n \"൩\",\n \"൪\",\n \"൫\",\n \"൬\",\n \"൭\",\n \"൮\",\n \"൯\"\n ],\n \"modi\": [\n \"𑙐\",\n \"𑙑\",\n \"𑙒\",\n \"𑙓\",\n \"𑙔\",\n \"𑙕\",\n \"𑙖\",\n \"𑙗\",\n \"𑙘\",\n \"𑙙\"\n ],\n \"mong\": [\n \"᠐\",\n \"᠑\",\n \"᠒\",\n \"᠓\",\n \"᠔\",\n \"᠕\",\n \"᠖\",\n \"᠗\",\n \"᠘\",\n \"᠙\"\n ],\n \"mroo\": [\n \"𖩠\",\n \"𖩡\",\n \"𖩢\",\n \"𖩣\",\n \"𖩤\",\n \"𖩥\",\n \"𖩦\",\n \"𖩧\",\n \"𖩨\",\n \"𖩩\"\n ],\n \"mtei\": [\n \"꯰\",\n \"꯱\",\n \"꯲\",\n \"꯳\",\n \"꯴\",\n \"꯵\",\n \"꯶\",\n \"꯷\",\n \"꯸\",\n \"꯹\"\n ],\n \"mymr\": [\n \"၀\",\n \"၁\",\n \"၂\",\n \"၃\",\n \"၄\",\n \"၅\",\n \"၆\",\n \"၇\",\n \"၈\",\n \"၉\"\n ],\n \"mymrshan\": [\n \"႐\",\n \"႑\",\n \"႒\",\n \"႓\",\n \"႔\",\n \"႕\",\n \"႖\",\n \"႗\",\n \"႘\",\n \"႙\"\n ],\n \"mymrtlng\": [\n \"꧰\",\n \"꧱\",\n \"꧲\",\n \"꧳\",\n \"꧴\",\n \"꧵\",\n \"꧶\",\n \"꧷\",\n \"꧸\",\n \"꧹\"\n ],\n \"newa\": [\n \"𑑐\",\n \"𑑑\",\n \"𑑒\",\n \"𑑓\",\n \"𑑔\",\n \"𑑕\",\n \"𑑖\",\n \"𑑗\",\n \"𑑘\",\n \"𑑙\"\n ],\n \"nkoo\": [\n \"߀\",\n \"߁\",\n \"߂\",\n \"߃\",\n \"߄\",\n \"߅\",\n \"߆\",\n \"߇\",\n \"߈\",\n \"߉\"\n ],\n \"olck\": [\n \"᱐\",\n \"᱑\",\n \"᱒\",\n \"᱓\",\n \"᱔\",\n \"᱕\",\n \"᱖\",\n \"᱗\",\n \"᱘\",\n \"᱙\"\n ],\n \"orya\": [\n \"୦\",\n \"୧\",\n \"୨\",\n \"୩\",\n \"୪\",\n \"୫\",\n \"୬\",\n \"୭\",\n \"୮\",\n \"୯\"\n ],\n \"osma\": [\n \"𐒠\",\n \"𐒡\",\n \"𐒢\",\n \"𐒣\",\n \"𐒤\",\n \"𐒥\",\n \"𐒦\",\n \"𐒧\",\n \"𐒨\",\n \"𐒩\"\n ],\n \"rohg\": [\n \"𐴰\",\n \"𐴱\",\n \"𐴲\",\n \"𐴳\",\n \"𐴴\",\n \"𐴵\",\n \"𐴶\",\n \"𐴷\",\n \"𐴸\",\n \"𐴹\"\n ],\n \"saur\": [\n \"꣐\",\n \"꣑\",\n \"꣒\",\n \"꣓\",\n \"꣔\",\n \"꣕\",\n \"꣖\",\n \"꣗\",\n \"꣘\",\n \"꣙\"\n ],\n \"segment\": [\n \"🯰\",\n \"🯱\",\n \"🯲\",\n \"🯳\",\n \"🯴\",\n \"🯵\",\n \"🯶\",\n \"🯷\",\n \"🯸\",\n \"🯹\"\n ],\n \"shrd\": [\n \"𑇐\",\n \"𑇑\",\n \"𑇒\",\n \"𑇓\",\n \"𑇔\",\n \"𑇕\",\n \"𑇖\",\n \"𑇗\",\n \"𑇘\",\n \"𑇙\"\n ],\n \"sind\": [\n \"𑋰\",\n \"𑋱\",\n \"𑋲\",\n \"𑋳\",\n \"𑋴\",\n \"𑋵\",\n \"𑋶\",\n \"𑋷\",\n \"𑋸\",\n \"𑋹\"\n ],\n \"sinh\": [\n \"෦\",\n \"෧\",\n \"෨\",\n \"෩\",\n \"෪\",\n \"෫\",\n \"෬\",\n \"෭\",\n \"෮\",\n \"෯\"\n ],\n \"sora\": [\n \"𑃰\",\n \"𑃱\",\n \"𑃲\",\n \"𑃳\",\n \"𑃴\",\n \"𑃵\",\n \"𑃶\",\n \"𑃷\",\n \"𑃸\",\n \"𑃹\"\n ],\n \"sund\": [\n \"᮰\",\n \"᮱\",\n \"᮲\",\n \"᮳\",\n \"᮴\",\n \"᮵\",\n \"᮶\",\n \"᮷\",\n \"᮸\",\n \"᮹\"\n ],\n \"takr\": [\n \"𑛀\",\n \"𑛁\",\n \"𑛂\",\n \"𑛃\",\n \"𑛄\",\n \"𑛅\",\n \"𑛆\",\n \"𑛇\",\n \"𑛈\",\n \"𑛉\"\n ],\n \"talu\": [\n \"᧐\",\n \"᧑\",\n \"᧒\",\n \"᧓\",\n \"᧔\",\n \"᧕\",\n \"᧖\",\n \"᧗\",\n \"᧘\",\n \"᧙\"\n ],\n \"tamldec\": [\n \"௦\",\n \"௧\",\n \"௨\",\n \"௩\",\n \"௪\",\n \"௫\",\n \"௬\",\n \"௭\",\n \"௮\",\n \"௯\"\n ],\n \"telu\": [\n \"౦\",\n \"౧\",\n \"౨\",\n \"౩\",\n \"౪\",\n \"౫\",\n \"౬\",\n \"౭\",\n \"౮\",\n \"౯\"\n ],\n \"thai\": [\n \"๐\",\n \"๑\",\n \"๒\",\n \"๓\",\n \"๔\",\n \"๕\",\n \"๖\",\n \"๗\",\n \"๘\",\n \"๙\"\n ],\n \"tibt\": [\n \"༠\",\n \"༡\",\n \"༢\",\n \"༣\",\n \"༤\",\n \"༥\",\n \"༦\",\n \"༧\",\n \"༨\",\n \"༩\"\n ],\n \"tirh\": [\n \"𑓐\",\n \"𑓑\",\n \"𑓒\",\n \"𑓓\",\n \"𑓔\",\n \"𑓕\",\n \"𑓖\",\n \"𑓗\",\n \"𑓘\",\n \"𑓙\"\n ],\n \"vaii\": [\n \"ᘠ\",\n \"ᘡ\",\n \"ᘢ\",\n \"ᘣ\",\n \"ᘤ\",\n \"ᘥ\",\n \"ᘦ\",\n \"ᘧ\",\n \"ᘨ\",\n \"ᘩ\"\n ],\n \"wara\": [\n \"𑣠\",\n \"𑣡\",\n \"𑣢\",\n \"𑣣\",\n \"𑣤\",\n \"𑣥\",\n \"𑣦\",\n \"𑣧\",\n \"𑣨\",\n \"𑣩\"\n ],\n \"wcho\": [\n \"𞋰\",\n \"𞋱\",\n \"𞋲\",\n \"𞋳\",\n \"𞋴\",\n \"𞋵\",\n \"𞋶\",\n \"𞋷\",\n \"𞋸\",\n \"𞋹\"\n ]\n};\n","import Decimal from 'decimal.js';\nimport { S_UNICODE_REGEX } from '../regex.generated';\nimport { digitMapping } from './digit-mapping.generated';\nimport { GetUnsignedRoundingMode } from './GetUnsignedRoundingMode';\nimport { ToRawFixed } from './ToRawFixed';\n// This is from: unicode-12.1.0/General_Category/Symbol/regex.js\n// IE11 does not support unicode flag, otherwise this is just /\\p{S}/u.\n// /^\\p{S}/u\nvar CARET_S_UNICODE_REGEX = new RegExp(\"^\".concat(S_UNICODE_REGEX.source));\n// /\\p{S}$/u\nvar S_DOLLAR_UNICODE_REGEX = new RegExp(\"\".concat(S_UNICODE_REGEX.source, \"$\"));\nvar CLDR_NUMBER_PATTERN = /[#0](?:[\\.,][#0]+)*/g;\nexport default function formatToParts(numberResult, data, pl, options) {\n var _a;\n var sign = numberResult.sign, exponent = numberResult.exponent, magnitude = numberResult.magnitude;\n var notation = options.notation, style = options.style, numberingSystem = options.numberingSystem;\n var defaultNumberingSystem = data.numbers.nu[0];\n // #region Part 1: partition and interpolate the CLDR number pattern.\n // ----------------------------------------------------------\n var compactNumberPattern = null;\n if (notation === 'compact' && magnitude) {\n compactNumberPattern = getCompactDisplayPattern(numberResult, pl, data, style, options.compactDisplay, options.currencyDisplay, numberingSystem);\n }\n // This is used multiple times\n var nonNameCurrencyPart;\n if (style === 'currency' && options.currencyDisplay !== 'name') {\n var byCurrencyDisplay = data.currencies[options.currency];\n if (byCurrencyDisplay) {\n switch (options.currencyDisplay) {\n case 'code':\n nonNameCurrencyPart = options.currency;\n break;\n case 'symbol':\n nonNameCurrencyPart = byCurrencyDisplay.symbol;\n break;\n default:\n nonNameCurrencyPart = byCurrencyDisplay.narrow;\n break;\n }\n }\n else {\n // Fallback for unknown currency\n nonNameCurrencyPart = options.currency;\n }\n }\n var numberPattern;\n if (!compactNumberPattern) {\n // Note: if the style is unit, or is currency and the currency display is name,\n // its unit parts will be interpolated in part 2. So here we can fallback to decimal.\n if (style === 'decimal' ||\n style === 'unit' ||\n (style === 'currency' && options.currencyDisplay === 'name')) {\n // Shortcut for decimal\n var decimalData = data.numbers.decimal[numberingSystem] ||\n data.numbers.decimal[defaultNumberingSystem];\n numberPattern = getPatternForSign(decimalData.standard, sign);\n }\n else if (style === 'currency') {\n var currencyData = data.numbers.currency[numberingSystem] ||\n data.numbers.currency[defaultNumberingSystem];\n // We replace number pattern part with `0` for easier postprocessing.\n numberPattern = getPatternForSign(currencyData[options.currencySign], sign);\n }\n else {\n // percent\n var percentPattern = data.numbers.percent[numberingSystem] ||\n data.numbers.percent[defaultNumberingSystem];\n numberPattern = getPatternForSign(percentPattern, sign);\n }\n }\n else {\n numberPattern = compactNumberPattern;\n }\n // Extract the decimal number pattern string. It looks like \"#,##0,00\", which will later be\n // used to infer decimal group sizes.\n var decimalNumberPattern = CLDR_NUMBER_PATTERN.exec(numberPattern)[0];\n // Now we start to substitute patterns\n // 1. replace strings like `0` and `#,##0.00` with `{0}`\n // 2. unquote characters (invariant: the quoted characters does not contain the special tokens)\n numberPattern = numberPattern\n .replace(CLDR_NUMBER_PATTERN, '{0}')\n .replace(/'(.)'/g, '$1');\n // Handle currency spacing (both compact and non-compact).\n if (style === 'currency' && options.currencyDisplay !== 'name') {\n var currencyData = data.numbers.currency[numberingSystem] ||\n data.numbers.currency[defaultNumberingSystem];\n // See `currencySpacing` substitution rule in TR-35.\n // Here we always assume the currencyMatch is \"[:^S:]\" and surroundingMatch is \"[:digit:]\".\n //\n // Example 1: for pattern \"#,##0.00¤\" with symbol \"US$\", we replace \"¤\" with the symbol,\n // but insert an extra non-break space before the symbol, because \"[:^S:]\" matches \"U\" in\n // \"US$\" and \"[:digit:]\" matches the latn numbering system digits.\n //\n // Example 2: for pattern \"¤#,##0.00\" with symbol \"US$\", there is no spacing between symbol\n // and number, because `$` does not match \"[:^S:]\".\n //\n // Implementation note: here we do the best effort to infer the insertion.\n // We also assume that `beforeInsertBetween` and `afterInsertBetween` will never be `;`.\n var afterCurrency = currencyData.currencySpacing.afterInsertBetween;\n if (afterCurrency && !S_DOLLAR_UNICODE_REGEX.test(nonNameCurrencyPart)) {\n numberPattern = numberPattern.replace('¤{0}', \"\\u00A4\".concat(afterCurrency, \"{0}\"));\n }\n var beforeCurrency = currencyData.currencySpacing.beforeInsertBetween;\n if (beforeCurrency && !CARET_S_UNICODE_REGEX.test(nonNameCurrencyPart)) {\n numberPattern = numberPattern.replace('{0}¤', \"{0}\".concat(beforeCurrency, \"\\u00A4\"));\n }\n }\n // The following tokens are special: `{0}`, `¤`, `%`, `-`, `+`, `{c:...}.\n var numberPatternParts = numberPattern.split(/({c:[^}]+}|\\{0\\}|[¤%\\-\\+])/g);\n var numberParts = [];\n var symbols = data.numbers.symbols[numberingSystem] ||\n data.numbers.symbols[defaultNumberingSystem];\n for (var _i = 0, numberPatternParts_1 = numberPatternParts; _i < numberPatternParts_1.length; _i++) {\n var part = numberPatternParts_1[_i];\n if (!part) {\n continue;\n }\n switch (part) {\n case '{0}': {\n // We only need to handle scientific and engineering notation here.\n numberParts.push.apply(numberParts, partitionNumberIntoParts(symbols, numberResult, notation, exponent, numberingSystem, \n // If compact number pattern exists, do not insert group separators.\n !compactNumberPattern && ((_a = options.useGrouping) !== null && _a !== void 0 ? _a : true), decimalNumberPattern, style, options.roundingIncrement, GetUnsignedRoundingMode(options.roundingMode, sign === -1)));\n break;\n }\n case '-':\n numberParts.push({ type: 'minusSign', value: symbols.minusSign });\n break;\n case '+':\n numberParts.push({ type: 'plusSign', value: symbols.plusSign });\n break;\n case '%':\n numberParts.push({ type: 'percentSign', value: symbols.percentSign });\n break;\n case '¤':\n // Computed above when handling currency spacing.\n numberParts.push({ type: 'currency', value: nonNameCurrencyPart });\n break;\n default:\n if (/^\\{c:/.test(part)) {\n numberParts.push({\n type: 'compact',\n value: part.substring(3, part.length - 1),\n });\n }\n else {\n // literal\n numberParts.push({ type: 'literal', value: part });\n }\n break;\n }\n }\n // #endregion\n // #region Part 2: interpolate unit pattern if necessary.\n // ----------------------------------------------\n switch (style) {\n case 'currency': {\n // `currencyDisplay: 'name'` has similar pattern handling as units.\n if (options.currencyDisplay === 'name') {\n var unitPattern = (data.numbers.currency[numberingSystem] ||\n data.numbers.currency[defaultNumberingSystem]).unitPattern;\n // Select plural\n var unitName = void 0;\n var currencyNameData = data.currencies[options.currency];\n if (currencyNameData) {\n unitName = selectPlural(pl, numberResult.roundedNumber\n .times(Decimal.pow(10, exponent))\n .toNumber(), currencyNameData.displayName);\n }\n else {\n // Fallback for unknown currency\n unitName = options.currency;\n }\n // Do {0} and {1} substitution\n var unitPatternParts = unitPattern.split(/(\\{[01]\\})/g);\n var result = [];\n for (var _b = 0, unitPatternParts_1 = unitPatternParts; _b < unitPatternParts_1.length; _b++) {\n var part = unitPatternParts_1[_b];\n switch (part) {\n case '{0}':\n result.push.apply(result, numberParts);\n break;\n case '{1}':\n result.push({ type: 'currency', value: unitName });\n break;\n default:\n if (part) {\n result.push({ type: 'literal', value: part });\n }\n break;\n }\n }\n return result;\n }\n else {\n return numberParts;\n }\n }\n case 'unit': {\n var unit = options.unit, unitDisplay = options.unitDisplay;\n var unitData = data.units.simple[unit];\n var unitPattern = void 0;\n if (unitData) {\n // Simple unit pattern\n unitPattern = selectPlural(pl, numberResult.roundedNumber\n .times(Decimal.pow(10, exponent))\n .toNumber(), data.units.simple[unit][unitDisplay]);\n }\n else {\n // See: http://unicode.org/reports/tr35/tr35-general.html#perUnitPatterns\n // If cannot find unit in the simple pattern, it must be \"per\" compound pattern.\n // Implementation note: we are not following TR-35 here because we need to format to parts!\n var _c = unit.split('-per-'), numeratorUnit = _c[0], denominatorUnit = _c[1];\n unitData = data.units.simple[numeratorUnit];\n var numeratorUnitPattern = selectPlural(pl, numberResult.roundedNumber\n .times(Decimal.pow(10, exponent))\n .toNumber(), data.units.simple[numeratorUnit][unitDisplay]);\n var perUnitPattern = data.units.simple[denominatorUnit].perUnit[unitDisplay];\n if (perUnitPattern) {\n // perUnitPattern exists, combine it with numeratorUnitPattern\n unitPattern = perUnitPattern.replace('{0}', numeratorUnitPattern);\n }\n else {\n // get compoundUnit pattern (e.g. \"{0} per {1}\"), repalce {0} with numerator pattern and {1} with\n // the denominator pattern in singular form.\n var perPattern = data.units.compound.per[unitDisplay];\n var denominatorPattern = selectPlural(pl, 1, data.units.simple[denominatorUnit][unitDisplay]);\n unitPattern = unitPattern = perPattern\n .replace('{0}', numeratorUnitPattern)\n .replace('{1}', denominatorPattern.replace('{0}', ''));\n }\n }\n var result = [];\n // We need spacing around \"{0}\" because they are not treated as \"unit\" parts, but \"literal\".\n for (var _d = 0, _e = unitPattern.split(/(\\s*\\{0\\}\\s*)/); _d < _e.length; _d++) {\n var part = _e[_d];\n var interpolateMatch = /^(\\s*)\\{0\\}(\\s*)$/.exec(part);\n if (interpolateMatch) {\n // Space before \"{0}\"\n if (interpolateMatch[1]) {\n result.push({ type: 'literal', value: interpolateMatch[1] });\n }\n // \"{0}\" itself\n result.push.apply(result, numberParts);\n // Space after \"{0}\"\n if (interpolateMatch[2]) {\n result.push({ type: 'literal', value: interpolateMatch[2] });\n }\n }\n else if (part) {\n result.push({ type: 'unit', value: part });\n }\n }\n return result;\n }\n default:\n return numberParts;\n }\n // #endregion\n}\n// A subset of https://tc39.es/ecma402/#sec-partitionnotationsubpattern\n// Plus the exponent parts handling.\nfunction partitionNumberIntoParts(symbols, numberResult, notation, exponent, numberingSystem, useGrouping, \n/**\n * This is the decimal number pattern without signs or symbols.\n * It is used to infer the group size when `useGrouping` is true.\n *\n * A typical value looks like \"#,##0.00\" (primary group size is 3).\n * Some locales like Hindi has secondary group size of 2 (e.g. \"#,##,##0.00\").\n */\ndecimalNumberPattern, style, roundingIncrement, unsignedRoundingMode) {\n var result = [];\n // eslint-disable-next-line prefer-const\n var n = numberResult.formattedString, x = numberResult.roundedNumber;\n if (x.isNaN()) {\n return [{ type: 'nan', value: n }];\n }\n else if (!x.isFinite()) {\n return [{ type: 'infinity', value: n }];\n }\n var digitReplacementTable = digitMapping[numberingSystem];\n if (digitReplacementTable) {\n n = n.replace(/\\d/g, function (digit) { return digitReplacementTable[+digit] || digit; });\n }\n // TODO: Else use an implementation dependent algorithm to map n to the appropriate\n // representation of n in the given numbering system.\n var decimalSepIndex = n.indexOf('.');\n var integer;\n var fraction;\n if (decimalSepIndex > 0) {\n integer = n.slice(0, decimalSepIndex);\n fraction = n.slice(decimalSepIndex + 1);\n }\n else {\n integer = n;\n }\n // #region Grouping integer digits\n // The weird compact and x >= 10000 check is to ensure consistency with Node.js and Chrome.\n // Note that `de` does not have compact form for thousands, but Node.js does not insert grouping separator\n // unless the rounded number is greater than 10000:\n // NumberFormat('de', {notation: 'compact', compactDisplay: 'short'}).format(1234) //=> \"1234\"\n // NumberFormat('de').format(1234) //=> \"1.234\"\n var shouldUseGrouping = false;\n if (useGrouping === 'always') {\n shouldUseGrouping = true;\n }\n else if (useGrouping === 'min2') {\n shouldUseGrouping = x.greaterThanOrEqualTo(10000);\n }\n else if (useGrouping === 'auto' || useGrouping) {\n shouldUseGrouping = notation !== 'compact' || x.greaterThanOrEqualTo(10000);\n }\n if (shouldUseGrouping) {\n // a. Let groupSepSymbol be the implementation-, locale-, and numbering system-dependent (ILND) String representing the grouping separator.\n // For currency we should use `currencyGroup` instead of generic `group`\n var groupSepSymbol = style === 'currency' && symbols.currencyGroup != null\n ? symbols.currencyGroup\n : symbols.group;\n var groups = [];\n // > There may be two different grouping sizes: The primary grouping size used for the least\n // > significant integer group, and the secondary grouping size used for more significant groups.\n // > If a pattern contains multiple grouping separators, the interval between the last one and the\n // > end of the integer defines the primary grouping size, and the interval between the last two\n // > defines the secondary grouping size. All others are ignored.\n var integerNumberPattern = decimalNumberPattern.split('.')[0];\n var patternGroups = integerNumberPattern.split(',');\n var primaryGroupingSize = 3;\n var secondaryGroupingSize = 3;\n if (patternGroups.length > 1) {\n primaryGroupingSize = patternGroups[patternGroups.length - 1].length;\n }\n if (patternGroups.length > 2) {\n secondaryGroupingSize = patternGroups[patternGroups.length - 2].length;\n }\n var i = integer.length - primaryGroupingSize;\n if (i > 0) {\n // Slice the least significant integer group\n groups.push(integer.slice(i, i + primaryGroupingSize));\n // Then iteratively push the more signicant groups\n // TODO: handle surrogate pairs in some numbering system digits\n for (i -= secondaryGroupingSize; i > 0; i -= secondaryGroupingSize) {\n groups.push(integer.slice(i, i + secondaryGroupingSize));\n }\n groups.push(integer.slice(0, i + secondaryGroupingSize));\n }\n else {\n groups.push(integer);\n }\n while (groups.length > 0) {\n var integerGroup = groups.pop();\n result.push({ type: 'integer', value: integerGroup });\n if (groups.length > 0) {\n result.push({ type: 'group', value: groupSepSymbol });\n }\n }\n }\n else {\n result.push({ type: 'integer', value: integer });\n }\n // #endregion\n if (fraction !== undefined) {\n var decimalSepSymbol = style === 'currency' && symbols.currencyDecimal != null\n ? symbols.currencyDecimal\n : symbols.decimal;\n result.push({ type: 'decimal', value: decimalSepSymbol }, { type: 'fraction', value: fraction });\n }\n if ((notation === 'scientific' || notation === 'engineering') &&\n x.isFinite()) {\n result.push({ type: 'exponentSeparator', value: symbols.exponential });\n if (exponent < 0) {\n result.push({ type: 'exponentMinusSign', value: symbols.minusSign });\n exponent = -exponent;\n }\n var exponentResult = ToRawFixed(new Decimal(exponent), 0, 0, roundingIncrement, unsignedRoundingMode);\n result.push({\n type: 'exponentInteger',\n value: exponentResult.formattedString,\n });\n }\n return result;\n}\nfunction getPatternForSign(pattern, sign) {\n if (pattern.indexOf(';') < 0) {\n pattern = \"\".concat(pattern, \";-\").concat(pattern);\n }\n var _a = pattern.split(';'), zeroPattern = _a[0], negativePattern = _a[1];\n switch (sign) {\n case 0:\n return zeroPattern;\n case -1:\n return negativePattern;\n default:\n return negativePattern.indexOf('-') >= 0\n ? negativePattern.replace(/-/g, '+')\n : \"+\".concat(zeroPattern);\n }\n}\n// Find the CLDR pattern for compact notation based on the magnitude of data and style.\n//\n// Example return value: \"¤ {c:laki}000;¤{c:laki} -0\" (`sw` locale):\n// - Notice the `{c:...}` token that wraps the compact literal.\n// - The consecutive zeros are normalized to single zero to match CLDR_NUMBER_PATTERN.\n//\n// Returning null means the compact display pattern cannot be found.\nfunction getCompactDisplayPattern(numberResult, pl, data, style, compactDisplay, currencyDisplay, numberingSystem) {\n var _a;\n var roundedNumber = numberResult.roundedNumber, sign = numberResult.sign, magnitude = numberResult.magnitude;\n var magnitudeKey = String(Math.pow(10, magnitude));\n var defaultNumberingSystem = data.numbers.nu[0];\n var pattern;\n if (style === 'currency' && currencyDisplay !== 'name') {\n var byNumberingSystem = data.numbers.currency;\n var currencyData = byNumberingSystem[numberingSystem] ||\n byNumberingSystem[defaultNumberingSystem];\n // NOTE: compact notation ignores currencySign!\n var compactPluralRules = (_a = currencyData.short) === null || _a === void 0 ? void 0 : _a[magnitudeKey];\n if (!compactPluralRules) {\n return null;\n }\n pattern = selectPlural(pl, roundedNumber.toNumber(), compactPluralRules);\n }\n else {\n var byNumberingSystem = data.numbers.decimal;\n var byCompactDisplay = byNumberingSystem[numberingSystem] ||\n byNumberingSystem[defaultNumberingSystem];\n var compactPlaralRule = byCompactDisplay[compactDisplay][magnitudeKey];\n if (!compactPlaralRule) {\n return null;\n }\n pattern = selectPlural(pl, roundedNumber.toNumber(), compactPlaralRule);\n }\n // See https://unicode.org/reports/tr35/tr35-numbers.html#Compact_Number_Formats\n // > If the value is precisely “0”, either explicit or defaulted, then the normal number format\n // > pattern for that sort of object is supplied.\n if (pattern === '0') {\n return null;\n }\n pattern = getPatternForSign(pattern, sign)\n // Extract compact literal from the pattern\n .replace(/([^\\s;\\-\\+\\d¤]+)/g, '{c:$1}')\n // We replace one or more zeros with a single zero so it matches `CLDR_NUMBER_PATTERN`.\n .replace(/0+/, '0');\n return pattern;\n}\nfunction selectPlural(pl, x, rules) {\n return rules[pl.select(x)] || rules.other;\n}\n","/**\n * https://tc39.es/ecma402/#sec-formatapproximately\n */\nexport function FormatApproximately(internalSlots, result) {\n var symbols = internalSlots.dataLocaleData.numbers.symbols[internalSlots.numberingSystem];\n var approximatelySign = symbols.approximatelySign;\n result.push({ type: 'approximatelySign', value: approximatelySign });\n return result;\n}\n","import Decimal from 'decimal.js';\nimport { invariant } from '../utils';\nimport { ComputeExponent } from './ComputeExponent';\nimport formatToParts from './format_to_parts';\nimport { FormatNumericToString } from './FormatNumericToString';\n/**\n * https://tc39.es/ecma402/#sec-partitionnumberpattern\n */\nexport function PartitionNumberPattern(internalSlots, _x) {\n var _a;\n var x = _x;\n // IMPL: We need to record the magnitude of the number\n var magnitude = 0;\n // 2. Let dataLocaleData be internalSlots.[[dataLocaleData]].\n var pl = internalSlots.pl, dataLocaleData = internalSlots.dataLocaleData, numberingSystem = internalSlots.numberingSystem;\n // 3. Let symbols be dataLocaleData.[[numbers]].[[symbols]][internalSlots.[[numberingSystem]]].\n var symbols = dataLocaleData.numbers.symbols[numberingSystem] ||\n dataLocaleData.numbers.symbols[dataLocaleData.numbers.nu[0]];\n // 4. Let exponent be 0.\n var exponent = 0;\n // 5. Let n be ! ToString(x).\n var n;\n // 6. If x is NaN, then\n if (x.isNaN()) {\n // 6.a. Let n be symbols.[[nan]].\n n = symbols.nan;\n }\n else if (!x.isFinite()) {\n // 7. Else if x is a non-finite Number, then\n // 7.a. Let n be symbols.[[infinity]].\n n = symbols.infinity;\n }\n else {\n // 8. Else,\n if (!x.isZero()) {\n // 8.a. If x < 0, let x be -x.\n invariant(x.isFinite(), 'Input must be a mathematical value');\n // 8.b. If internalSlots.[[style]] is \"percent\", let x be 100 × x.\n if (internalSlots.style == 'percent') {\n x = x.times(100);\n }\n // 8.c. Let exponent be ComputeExponent(numberFormat, x).\n ;\n _a = ComputeExponent(internalSlots, x), exponent = _a[0], \n // IMPL: We need to record the magnitude of the number\n magnitude = _a[1];\n // 8.d. Let x be x × 10^(-exponent).\n x = x.times(Decimal.pow(10, -exponent));\n }\n // 8.e. Let formatNumberResult be FormatNumericToString(internalSlots, x).\n var formatNumberResult = FormatNumericToString(internalSlots, x);\n // 8.f. Let n be formatNumberResult.[[formattedString]].\n n = formatNumberResult.formattedString;\n // 8.g. Let x be formatNumberResult.[[roundedNumber]].\n x = formatNumberResult.roundedNumber;\n }\n // 9. Let sign be 0.\n var sign;\n // 10. If x is negative, then\n var signDisplay = internalSlots.signDisplay;\n switch (signDisplay) {\n case 'never':\n // 10.a. If internalSlots.[[signDisplay]] is \"never\", then\n // 10.a.i. Let sign be 0.\n sign = 0;\n break;\n case 'auto':\n // 10.b. Else if internalSlots.[[signDisplay]] is \"auto\", then\n if (x.isPositive() || x.isNaN()) {\n // 10.b.i. If x is positive or x is NaN, let sign be 0.\n sign = 0;\n }\n else {\n // 10.b.ii. Else, let sign be -1.\n sign = -1;\n }\n break;\n case 'always':\n // 10.c. Else if internalSlots.[[signDisplay]] is \"always\", then\n if (x.isPositive() || x.isNaN()) {\n // 10.c.i. If x is positive or x is NaN, let sign be 1.\n sign = 1;\n }\n else {\n // 10.c.ii. Else, let sign be -1.\n sign = -1;\n }\n break;\n case 'exceptZero':\n // 10.d. Else if internalSlots.[[signDisplay]] is \"exceptZero\", then\n if (x.isZero()) {\n // 10.d.i. If x is 0, let sign be 0.\n sign = 0;\n }\n else if (x.isNegative()) {\n // 10.d.ii. Else if x is negative, let sign be -1.\n sign = -1;\n }\n else {\n // 10.d.iii. Else, let sign be 1.\n sign = 1;\n }\n break;\n default:\n // 10.e. Else,\n invariant(signDisplay === 'negative', 'signDisplay must be \"negative\"');\n if (x.isNegative() && !x.isZero()) {\n // 10.e.i. If x is negative and x is not 0, let sign be -1.\n sign = -1;\n }\n else {\n // 10.e.ii. Else, let sign be 0.\n sign = 0;\n }\n break;\n }\n // 11. Return ? FormatNumberToParts(numberFormat, x, n, exponent, sign).\n return formatToParts({\n roundedNumber: x,\n formattedString: n,\n exponent: exponent,\n // IMPL: We're returning this for our implementation of formatToParts\n magnitude: magnitude,\n sign: sign,\n }, internalSlots.dataLocaleData, pl, internalSlots);\n}\n","import { PartitionNumberPattern } from './PartitionNumberPattern';\nexport function FormatNumeric(internalSlots, x) {\n var parts = PartitionNumberPattern(internalSlots, x);\n return parts.map(function (p) { return p.value; }).join('');\n}\n","import { invariant } from '../utils';\nimport { CollapseNumberRange } from './CollapseNumberRange';\nimport { FormatApproximately } from './FormatApproximately';\nimport { FormatNumeric } from './FormatNumeric';\nimport { PartitionNumberPattern } from './PartitionNumberPattern';\n/**\n * https://tc39.es/ecma402/#sec-partitionnumberrangepattern\n */\nexport function PartitionNumberRangePattern(numberFormat, x, y, _a) {\n var getInternalSlots = _a.getInternalSlots;\n // 1. Assert: x and y are both mathematical values.\n invariant(!x.isNaN() && !y.isNaN(), 'Input must be a number', RangeError);\n var internalSlots = getInternalSlots(numberFormat);\n // 3. Let xResult be ? PartitionNumberPattern(numberFormat, x).\n var xResult = PartitionNumberPattern(internalSlots, x);\n // 4. Let yResult be ? PartitionNumberPattern(numberFormat, y).\n var yResult = PartitionNumberPattern(internalSlots, y);\n if (FormatNumeric(internalSlots, x) === FormatNumeric(internalSlots, y)) {\n var appxResult = FormatApproximately(internalSlots, xResult);\n appxResult.forEach(function (el) {\n el.source = 'shared';\n });\n return appxResult;\n }\n var result = [];\n xResult.forEach(function (el) {\n el.source = 'startRange';\n result.push(el);\n });\n // 9. Let symbols be internalSlots.[[dataLocaleData]].[[numbers]].[[symbols]][internalSlots.[[numberingSystem]]].\n var rangeSeparator = internalSlots.dataLocaleData.numbers.symbols[internalSlots.numberingSystem]\n .rangeSign;\n result.push({ type: 'literal', value: rangeSeparator, source: 'shared' });\n yResult.forEach(function (el) {\n el.source = 'endRange';\n result.push(el);\n });\n // 13. Return ? CollapseNumberRange(numberFormat, result).\n return CollapseNumberRange(numberFormat, result, { getInternalSlots: getInternalSlots });\n}\n","import { PartitionNumberRangePattern } from './PartitionNumberRangePattern';\n/**\n * https://tc39.es/ecma402/#sec-formatnumericrange\n */\nexport function FormatNumericRange(numberFormat, x, y, _a) {\n var getInternalSlots = _a.getInternalSlots;\n var parts = PartitionNumberRangePattern(numberFormat, x, y, {\n getInternalSlots: getInternalSlots,\n });\n return parts.map(function (part) { return part.value; }).join('');\n}\n","import { PartitionNumberRangePattern } from './PartitionNumberRangePattern';\n/**\n * https://tc39.es/ecma402/#sec-formatnumericrangetoparts\n */\nexport function FormatNumericRangeToParts(numberFormat, x, y, _a) {\n var getInternalSlots = _a.getInternalSlots;\n var parts = PartitionNumberRangePattern(numberFormat, x, y, {\n getInternalSlots: getInternalSlots,\n });\n return parts.map(function (part, index) { return ({\n type: part.type,\n value: part.value,\n source: part.source,\n result: index.toString(),\n }); });\n}\n","import { ArrayCreate } from '../262';\nimport { PartitionNumberPattern } from './PartitionNumberPattern';\nexport function FormatNumericToParts(nf, x, implDetails) {\n var parts = PartitionNumberPattern(implDetails.getInternalSlots(nf), x);\n var result = ArrayCreate(0);\n for (var _i = 0, parts_1 = parts; _i < parts_1.length; _i++) {\n var part = parts_1[_i];\n result.push({\n type: part.type,\n value: part.value,\n });\n }\n return result;\n}\n","export var RangePatternType;\n(function (RangePatternType) {\n RangePatternType[\"startRange\"] = \"startRange\";\n RangePatternType[\"shared\"] = \"shared\";\n RangePatternType[\"endRange\"] = \"endRange\";\n})(RangePatternType || (RangePatternType = {}));\n","import { __extends } from \"tslib\";\nvar MissingLocaleDataError = /** @class */ (function (_super) {\n __extends(MissingLocaleDataError, _super);\n function MissingLocaleDataError() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = 'MISSING_LOCALE_DATA';\n return _this;\n }\n return MissingLocaleDataError;\n}(Error));\nexport function isMissingLocaleDataError(e) {\n return e.type === 'MISSING_LOCALE_DATA';\n}\n","import { DefaultNumberOption } from '../DefaultNumberOption';\nimport { GetNumberOption } from '../GetNumberOption';\nimport { GetOption } from '../GetOption';\nimport { invariant } from '../utils';\n//IMPL: Valid rounding increments as per implementation\nvar VALID_ROUNDING_INCREMENTS = new Set([\n 1, 2, 5, 10, 20, 25, 50, 100, 200, 250, 500, 1000, 2000, 2500, 5000,\n]);\n/**\n * https://tc39.es/ecma402/#sec-setnfdigitoptions\n */\nexport function SetNumberFormatDigitOptions(internalSlots, opts, mnfdDefault, mxfdDefault, notation) {\n // 1. Let mnid be ? GetNumberOption(opts, \"minimumIntegerDigits\", 1, 21, 1).\n var mnid = GetNumberOption(opts, 'minimumIntegerDigits', 1, 21, 1);\n // 2. Let mnfd be opts.[[MinimumFractionDigits]].\n var mnfd = opts.minimumFractionDigits;\n // 3. Let mxfd be opts.[[MaximumFractionDigits]].\n var mxfd = opts.maximumFractionDigits;\n // 4. Let mnsd be opts.[[MinimumSignificantDigits]].\n var mnsd = opts.minimumSignificantDigits;\n // 5. Let mxsd be opts.[[MaximumSignificantDigits]].\n var mxsd = opts.maximumSignificantDigits;\n // 6. Set internalSlots.[[MinimumIntegerDigits]] to mnid.\n internalSlots.minimumIntegerDigits = mnid;\n // 7. Let roundingIncrement be ? GetNumberOption(opts, \"roundingIncrement\", 1, 5000, 1).\n var roundingIncrement = GetNumberOption(opts, 'roundingIncrement', 1, 5000, 1);\n // 8. If roundingIncrement is not an element of the list {1, 2, 5, 10, 20, 25, 50, 100, 200, 250, 500, 1000, 2000, 2500, 5000}, throw a RangeError exception.\n invariant(VALID_ROUNDING_INCREMENTS.has(roundingIncrement), \"Invalid rounding increment value: \".concat(roundingIncrement, \".\\nValid values are \").concat(Array.from(VALID_ROUNDING_INCREMENTS).join(', '), \".\"));\n // 9. Let roundingMode be ? GetOption(opts, \"roundingMode\", \"string\", « \"ceil\", \"floor\", \"expand\", \"trunc\", \"halfCeil\", \"halfFloor\", \"halfExpand\", \"halfTrunc\", \"halfEven\" », \"halfExpand\").\n var roundingMode = GetOption(opts, 'roundingMode', 'string', [\n 'ceil',\n 'floor',\n 'expand',\n 'trunc',\n 'halfCeil',\n 'halfFloor',\n 'halfExpand',\n 'halfTrunc',\n 'halfEven',\n ], 'halfExpand');\n // 10. Let roundingPriority be ? GetOption(opts, \"roundingPriority\", \"string\", « \"auto\", \"morePrecision\", \"lessPrecision\" », \"auto\").\n var roundingPriority = GetOption(opts, 'roundingPriority', 'string', ['auto', 'morePrecision', 'lessPrecision'], 'auto');\n // 11. Let trailingZeroDisplay be ? GetOption(opts, \"trailingZeroDisplay\", \"string\", « \"auto\", \"stripIfInteger\" », \"auto\").\n var trailingZeroDisplay = GetOption(opts, 'trailingZeroDisplay', 'string', ['auto', 'stripIfInteger'], 'auto');\n // 12. If roundingIncrement is not 1, then\n if (roundingIncrement !== 1) {\n // 12.a. Set mxfdDefault to mnfdDefault.\n mxfdDefault = mnfdDefault;\n }\n // 13. Set internalSlots.[[RoundingIncrement]] to roundingIncrement.\n internalSlots.roundingIncrement = roundingIncrement;\n // 14. Set internalSlots.[[RoundingMode]] to roundingMode.\n internalSlots.roundingMode = roundingMode;\n // 15. Set internalSlots.[[TrailingZeroDisplay]] to trailingZeroDisplay.\n internalSlots.trailingZeroDisplay = trailingZeroDisplay;\n // 16. Let hasSd be true if mnsd is not undefined or mxsd is not undefined; otherwise, let hasSd be false.\n var hasSd = mnsd !== undefined || mxsd !== undefined;\n // 17. Let hasFd be true if mnfd is not undefined or mxfd is not undefined; otherwise, let hasFd be false.\n var hasFd = mnfd !== undefined || mxfd !== undefined;\n // 18. Let needSd be true.\n var needSd = true;\n // 19. Let needFd be true.\n var needFd = true;\n // 20. If roundingPriority is \"auto\", then\n if (roundingPriority === 'auto') {\n // 20.a. Set needSd to hasSd.\n needSd = hasSd;\n // 20.b. If hasSd is true or hasFd is false and notation is \"compact\", then\n if (hasSd || (!hasFd && notation === 'compact')) {\n // 20.b.i. Set needFd to false.\n needFd = false;\n }\n }\n // 21. If needSd is true, then\n if (needSd) {\n // 21.a. If hasSd is true, then\n if (hasSd) {\n // 21.a.i. Set internalSlots.[[MinimumSignificantDigits]] to ? DefaultNumberOption(mnsd, 1, 21, 1).\n internalSlots.minimumSignificantDigits = DefaultNumberOption(mnsd, 1, 21, 1);\n // 21.a.ii. Set internalSlots.[[MaximumSignificantDigits]] to ? DefaultNumberOption(mxsd, internalSlots.[[MinimumSignificantDigits]], 21, 21).\n internalSlots.maximumSignificantDigits = DefaultNumberOption(mxsd, internalSlots.minimumSignificantDigits, 21, 21);\n }\n else {\n // 21.b. Else,\n // 21.b.i. Set internalSlots.[[MinimumSignificantDigits]] to 1.\n internalSlots.minimumSignificantDigits = 1;\n // 21.b.ii. Set internalSlots.[[MaximumSignificantDigits]] to 21.\n internalSlots.maximumSignificantDigits = 21;\n }\n }\n // 22. If needFd is true, then\n if (needFd) {\n // 22.a. If hasFd is true, then\n if (hasFd) {\n // 22.a.i. Set mnfd to ? DefaultNumberOption(mnfd, 0, 100, undefined).\n mnfd = DefaultNumberOption(mnfd, 0, 100, undefined);\n // 22.a.ii. Set mxfd to ? DefaultNumberOption(mxfd, 0, 100, undefined).\n mxfd = DefaultNumberOption(mxfd, 0, 100, undefined);\n // 22.a.iii. If mnfd is undefined, then\n if (mnfd === undefined) {\n // 22.a.iii.1. Assert: mxfd is not undefined.\n invariant(mxfd !== undefined, 'maximumFractionDigits must be defined');\n // 22.a.iii.2. Set mnfd to min(mnfdDefault, mxfd).\n mnfd = Math.min(mnfdDefault, mxfd);\n }\n else if (mxfd === undefined) {\n // 22.a.iv. Else if mxfd is undefined, then\n // 22.a.iv.1. Set mxfd to max(mxfdDefault, mnfd).\n mxfd = Math.max(mxfdDefault, mnfd);\n }\n else if (mnfd > mxfd) {\n // 22.a.v. Else if mnfd > mxfd, throw a RangeError exception.\n throw new RangeError(\"Invalid range, \".concat(mnfd, \" > \").concat(mxfd));\n }\n // 22.a.vi. Set internalSlots.[[MinimumFractionDigits]] to mnfd.\n internalSlots.minimumFractionDigits = mnfd;\n // 22.a.vii. Set internalSlots.[[MaximumFractionDigits]] to mxfd.\n internalSlots.maximumFractionDigits = mxfd;\n }\n else {\n // 22.b. Else,\n // 22.b.i. Set internalSlots.[[MinimumFractionDigits]] to mnfdDefault.\n internalSlots.minimumFractionDigits = mnfdDefault;\n // 22.b.ii. Set internalSlots.[[MaximumFractionDigits]] to mxfdDefault.\n internalSlots.maximumFractionDigits = mxfdDefault;\n }\n }\n // 23. If needSd is false and needFd is false, then\n if (!needSd && !needFd) {\n // 23.a. Set internalSlots.[[MinimumFractionDigits]] to 0.\n internalSlots.minimumFractionDigits = 0;\n // 23.b. Set internalSlots.[[MaximumFractionDigits]] to 0.\n internalSlots.maximumFractionDigits = 0;\n // 23.c. Set internalSlots.[[MinimumSignificantDigits]] to 1.\n internalSlots.minimumSignificantDigits = 1;\n // 23.d. Set internalSlots.[[MaximumSignificantDigits]] to 2.\n internalSlots.maximumSignificantDigits = 2;\n // 23.e. Set internalSlots.[[RoundingType]] to \"morePrecision\".\n internalSlots.roundingType = 'morePrecision';\n // 23.f. Set internalSlots.[[RoundingPriority]] to \"morePrecision\".\n internalSlots.roundingPriority = 'morePrecision';\n }\n else if (roundingPriority === 'morePrecision') {\n // 24. Else if roundingPriority is \"morePrecision\", then\n // 24.a. Set internalSlots.[[RoundingType]] to \"morePrecision\".\n internalSlots.roundingType = 'morePrecision';\n // 24.b. Set internalSlots.[[RoundingPriority]] to \"morePrecision\".\n internalSlots.roundingPriority = 'morePrecision';\n }\n else if (roundingPriority === 'lessPrecision') {\n // 25. Else if roundingPriority is \"lessPrecision\", then\n // 25.a. Set internalSlots.[[RoundingType]] to \"lessPrecision\".\n internalSlots.roundingType = 'lessPrecision';\n // 25.b. Set internalSlots.[[RoundingPriority]] to \"lessPrecision\".\n internalSlots.roundingPriority = 'lessPrecision';\n }\n else if (hasSd) {\n // 26. Else if hasSd is true, then\n // 26.a. Set internalSlots.[[RoundingType]] to \"significantDigits\".\n internalSlots.roundingType = 'significantDigits';\n // 26.b. Set internalSlots.[[RoundingPriority]] to \"auto\".\n internalSlots.roundingPriority = 'auto';\n }\n else {\n // 27. Else,\n // 27.a. Set internalSlots.[[RoundingType]] to \"fractionDigits\".\n internalSlots.roundingType = 'fractionDigits';\n // 27.b. Set internalSlots.[[RoundingPriority]] to \"auto\".\n internalSlots.roundingPriority = 'auto';\n }\n // 28. If roundingIncrement is not 1, then\n if (roundingIncrement !== 1) {\n // 28.a. Assert: internalSlots.[[RoundingType]] is \"fractionDigits\".\n invariant(internalSlots.roundingType === 'fractionDigits', 'Invalid roundingType', TypeError);\n // 28.b. Assert: internalSlots.[[MaximumFractionDigits]] is equal to internalSlots.[[MinimumFractionDigits]].\n invariant(internalSlots.maximumFractionDigits ===\n internalSlots.minimumFractionDigits, 'With roundingIncrement > 1, maximumFractionDigits and minimumFractionDigits must be equal.', RangeError);\n }\n}\n","import { GetOption } from '../GetOption';\nimport { IsWellFormedCurrencyCode } from '../IsWellFormedCurrencyCode';\nimport { IsWellFormedUnitIdentifier } from '../IsWellFormedUnitIdentifier';\nimport { invariant } from '../utils';\n/**\n * https://tc39.es/ecma402/#sec-setnumberformatunitoptions\n */\nexport function SetNumberFormatUnitOptions(internalSlots, options) {\n if (options === void 0) { options = Object.create(null); }\n // 1. Let style be ? GetOption(options, \"style\", \"string\", « \"decimal\", \"percent\", \"currency\", \"unit\" », \"decimal\").\n var style = GetOption(options, 'style', 'string', ['decimal', 'percent', 'currency', 'unit'], 'decimal');\n // 2. Set internalSlots.[[Style]] to style.\n internalSlots.style = style;\n // 3. Let currency be ? GetOption(options, \"currency\", \"string\", undefined, undefined).\n var currency = GetOption(options, 'currency', 'string', undefined, undefined);\n // 4. If currency is not undefined, then\n // a. If the result of IsWellFormedCurrencyCode(currency) is false, throw a RangeError exception.\n invariant(currency === undefined || IsWellFormedCurrencyCode(currency), 'Malformed currency code', RangeError);\n // 5. If style is \"currency\" and currency is undefined, throw a TypeError exception.\n invariant(style !== 'currency' || currency !== undefined, 'currency cannot be undefined', TypeError);\n // 6. Let currencyDisplay be ? GetOption(options, \"currencyDisplay\", \"string\", « \"code\", \"symbol\", \"narrowSymbol\", \"name\" », \"symbol\").\n var currencyDisplay = GetOption(options, 'currencyDisplay', 'string', ['code', 'symbol', 'narrowSymbol', 'name'], 'symbol');\n // 7. Let currencySign be ? GetOption(options, \"currencySign\", \"string\", « \"standard\", \"accounting\" », \"standard\").\n var currencySign = GetOption(options, 'currencySign', 'string', ['standard', 'accounting'], 'standard');\n // 8. Let unit be ? GetOption(options, \"unit\", \"string\", undefined, undefined).\n var unit = GetOption(options, 'unit', 'string', undefined, undefined);\n // 9. If unit is not undefined, then\n // a. If the result of IsWellFormedUnitIdentifier(unit) is false, throw a RangeError exception.\n invariant(unit === undefined || IsWellFormedUnitIdentifier(unit), 'Invalid unit argument for Intl.NumberFormat()', RangeError);\n // 10. If style is \"unit\" and unit is undefined, throw a TypeError exception.\n invariant(style !== 'unit' || unit !== undefined, 'unit cannot be undefined', TypeError);\n // 11. Let unitDisplay be ? GetOption(options, \"unitDisplay\", \"string\", « \"short\", \"narrow\", \"long\" », \"short\").\n var unitDisplay = GetOption(options, 'unitDisplay', 'string', ['short', 'narrow', 'long'], 'short');\n // 12. If style is \"currency\", then\n if (style === 'currency') {\n // a. Set internalSlots.[[Currency]] to the result of converting currency to upper case as specified in 6.1.\n internalSlots.currency = currency.toUpperCase();\n // b. Set internalSlots.[[CurrencyDisplay]] to currencyDisplay.\n internalSlots.currencyDisplay = currencyDisplay;\n // c. Set internalSlots.[[CurrencySign]] to currencySign.\n internalSlots.currencySign = currencySign;\n }\n // 13. If style is \"unit\", then\n if (style === 'unit') {\n // a. Set internalSlots.[[Unit]] to unit.\n internalSlots.unit = unit;\n // b. Set internalSlots.[[UnitDisplay]] to unitDisplay.\n internalSlots.unitDisplay = unitDisplay;\n }\n}\n","import { ResolveLocale } from '@formatjs/intl-localematcher';\nimport { CanonicalizeLocaleList } from '../CanonicalizeLocaleList';\nimport { CoerceOptionsToObject } from '../CoerceOptionsToObject';\nimport { GetOption } from '../GetOption';\nimport { GetStringOrBooleanOption } from '../GetStringOrBooleanOption';\nimport { invariant } from '../utils';\nimport { CurrencyDigits } from './CurrencyDigits';\nimport { SetNumberFormatDigitOptions } from './SetNumberFormatDigitOptions';\nimport { SetNumberFormatUnitOptions } from './SetNumberFormatUnitOptions';\n/**\n * https://tc39.es/ecma402/#sec-initializenumberformat\n */\nexport function InitializeNumberFormat(nf, locales, opts, _a) {\n var getInternalSlots = _a.getInternalSlots, localeData = _a.localeData, availableLocales = _a.availableLocales, numberingSystemNames = _a.numberingSystemNames, getDefaultLocale = _a.getDefaultLocale, currencyDigitsData = _a.currencyDigitsData;\n var requestedLocales = CanonicalizeLocaleList(locales);\n var options = CoerceOptionsToObject(opts);\n var opt = Object.create(null);\n var matcher = GetOption(options, 'localeMatcher', 'string', ['lookup', 'best fit'], 'best fit');\n opt.localeMatcher = matcher;\n var numberingSystem = GetOption(options, 'numberingSystem', 'string', undefined, undefined);\n if (numberingSystem !== undefined &&\n numberingSystemNames.indexOf(numberingSystem) < 0) {\n // 8.a. If numberingSystem does not match the Unicode Locale Identifier type nonterminal,\n // throw a RangeError exception.\n throw RangeError(\"Invalid numberingSystems: \".concat(numberingSystem));\n }\n opt.nu = numberingSystem;\n var r = ResolveLocale(Array.from(availableLocales), requestedLocales, opt, \n // [[RelevantExtensionKeys]] slot, which is a constant\n ['nu'], localeData, getDefaultLocale);\n var dataLocaleData = localeData[r.dataLocale];\n invariant(!!dataLocaleData, \"Missing locale data for \".concat(r.dataLocale));\n var internalSlots = getInternalSlots(nf);\n internalSlots.locale = r.locale;\n internalSlots.dataLocale = r.dataLocale;\n internalSlots.numberingSystem = r.nu;\n internalSlots.dataLocaleData = dataLocaleData;\n SetNumberFormatUnitOptions(internalSlots, options);\n var style = internalSlots.style;\n var notation = GetOption(options, 'notation', 'string', ['standard', 'scientific', 'engineering', 'compact'], 'standard');\n internalSlots.notation = notation;\n var mnfdDefault;\n var mxfdDefault;\n if (style === 'currency' && notation === 'standard') {\n var currency = internalSlots.currency;\n var cDigits = CurrencyDigits(currency, { currencyDigitsData: currencyDigitsData });\n mnfdDefault = cDigits;\n mxfdDefault = cDigits;\n }\n else {\n mnfdDefault = 0;\n mxfdDefault = style === 'percent' ? 0 : 3;\n }\n SetNumberFormatDigitOptions(internalSlots, options, mnfdDefault, mxfdDefault, notation);\n var compactDisplay = GetOption(options, 'compactDisplay', 'string', ['short', 'long'], 'short');\n var defaultUseGrouping = 'auto';\n if (notation === 'compact') {\n internalSlots.compactDisplay = compactDisplay;\n defaultUseGrouping = 'min2';\n }\n var useGrouping = GetStringOrBooleanOption(options, 'useGrouping', ['min2', 'auto', 'always'], 'always', false, defaultUseGrouping);\n internalSlots.useGrouping = useGrouping;\n var signDisplay = GetOption(options, 'signDisplay', 'string', ['auto', 'never', 'always', 'exceptZero', 'negative'], 'auto');\n internalSlots.signDisplay = signDisplay;\n return nf;\n}\n","import { invariant } from './utils';\n/**\n * https://tc39.es/ecma402/#sec-partitionpattern\n * @param pattern\n */\nexport function PartitionPattern(pattern) {\n var result = [];\n var beginIndex = pattern.indexOf('{');\n var endIndex = 0;\n var nextIndex = 0;\n var length = pattern.length;\n while (beginIndex < pattern.length && beginIndex > -1) {\n endIndex = pattern.indexOf('}', beginIndex);\n invariant(endIndex > beginIndex, \"Invalid pattern \".concat(pattern));\n if (beginIndex > nextIndex) {\n result.push({\n type: 'literal',\n value: pattern.substring(nextIndex, beginIndex),\n });\n }\n result.push({\n type: pattern.substring(beginIndex + 1, endIndex),\n value: undefined,\n });\n nextIndex = endIndex + 1;\n beginIndex = pattern.indexOf('{', nextIndex);\n }\n if (nextIndex < length) {\n result.push({\n type: 'literal',\n value: pattern.substring(nextIndex, length),\n });\n }\n return result;\n}\n","import { LookupSupportedLocales } from '@formatjs/intl-localematcher';\nimport { ToObject } from './262';\nimport { GetOption } from './GetOption';\n/**\n * https://tc39.es/ecma402/#sec-supportedlocales\n * @param availableLocales\n * @param requestedLocales\n * @param options\n */\nexport function SupportedLocales(availableLocales, requestedLocales, options) {\n var matcher = 'best fit';\n if (options !== undefined) {\n options = ToObject(options);\n matcher = GetOption(options, 'localeMatcher', 'string', ['lookup', 'best fit'], 'best fit');\n }\n if (matcher === 'best fit') {\n return LookupSupportedLocales(Array.from(availableLocales), requestedLocales);\n }\n return LookupSupportedLocales(Array.from(availableLocales), requestedLocales);\n}\n","import Decimal from 'decimal.js';\nimport { ToPrimitive } from './262';\nexport function ToIntlMathematicalValue(input) {\n var primValue = ToPrimitive(input, 'number');\n if (typeof primValue === 'bigint') {\n return new Decimal(primValue);\n }\n // IMPL\n if (primValue === undefined) {\n return new Decimal(NaN);\n }\n if (primValue === true) {\n return new Decimal(1);\n }\n if (primValue === false) {\n return new Decimal(0);\n }\n if (primValue === null) {\n return new Decimal(0);\n }\n try {\n return new Decimal(primValue);\n }\n catch (e) {\n return new Decimal(NaN);\n }\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DurationRecordSign = DurationRecordSign;\nvar constants_1 = require(\"../constants\");\nfunction DurationRecordSign(record) {\n for (var _i = 0, TABLE_1_1 = constants_1.TABLE_1; _i < TABLE_1_1.length; _i++) {\n var key = TABLE_1_1[_i];\n if (record[key] < 0) {\n return -1;\n }\n if (record[key] > 0) {\n return 1;\n }\n }\n return 0;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GetDurationUnitOptions = GetDurationUnitOptions;\nvar ecma402_abstract_1 = require(\"@formatjs/ecma402-abstract\");\nfunction GetDurationUnitOptions(unit, options, baseStyle, stylesList, digitalBase, prevStyle) {\n var style = (0, ecma402_abstract_1.GetOption)(options, unit, 'string', stylesList, undefined);\n var displayDefault = 'always';\n if (style === undefined) {\n if (baseStyle === 'digital') {\n if (unit !== 'hours' && unit !== 'minutes' && unit !== 'seconds') {\n displayDefault = 'auto';\n }\n style = digitalBase;\n }\n else {\n displayDefault = 'auto';\n if (prevStyle === 'numeric' || prevStyle === '2-digit') {\n style = 'numeric';\n }\n else {\n style = baseStyle;\n }\n }\n }\n var displayField = \"\".concat(unit, \"Display\");\n var display = (0, ecma402_abstract_1.GetOption)(options, displayField, 'string', ['always', 'auto'], displayDefault);\n if (prevStyle === 'numeric' || prevStyle === '2-digit') {\n if (style !== 'numeric' && style !== '2-digit') {\n throw new RangeError(\"Can't mix numeric and non-numeric styles\");\n }\n else if (unit === 'minutes' || unit === 'seconds') {\n style = '2-digit';\n }\n if (style === 'numeric' &&\n display === 'always' &&\n (unit === 'milliseconds' ||\n unit === 'microseconds' ||\n unit === 'nanoseconds')) {\n throw new RangeError(\"Can't display milliseconds, microseconds, or nanoseconds in numeric format\");\n }\n }\n return {\n style: style,\n display: display,\n };\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.IsValidDurationRecord = IsValidDurationRecord;\nvar ecma402_abstract_1 = require(\"@formatjs/ecma402-abstract\");\nvar constants_1 = require(\"../constants\");\nvar DurationRecordSign_1 = require(\"./DurationRecordSign\");\nfunction IsValidDurationRecord(record) {\n var sign = (0, DurationRecordSign_1.DurationRecordSign)(record);\n for (var _i = 0, TABLE_1_1 = constants_1.TABLE_1; _i < TABLE_1_1.length; _i++) {\n var key = TABLE_1_1[_i];\n var v = record[key];\n (0, ecma402_abstract_1.invariant)(isFinite(Number(v)), \"\".concat(key, \" is not finite\"));\n if (v < 0 && sign > 0) {\n return false;\n }\n if (v > 0 && sign < 0) {\n return false;\n }\n }\n return true;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PartitionDurationFormatPattern = PartitionDurationFormatPattern;\nvar ecma402_abstract_1 = require(\"@formatjs/ecma402-abstract\");\nvar constants_1 = require(\"../constants\");\nvar core_1 = require(\"../core\");\nvar get_internal_slots_1 = require(\"../get_internal_slots\");\nfunction PartitionDurationFormatPattern(df, duration) {\n var result = [];\n var done = false;\n var separated = false;\n var internalSlots = (0, get_internal_slots_1.getInternalSlots)(df);\n var dataLocale = internalSlots.dataLocale;\n var dataLocaleData = core_1.DurationFormat.localeData[dataLocale];\n if (!dataLocaleData) {\n throw new TypeError('Invalid locale');\n }\n var numberingSystem = internalSlots.numberingSystem;\n var separator = dataLocaleData.digitalFormat[numberingSystem];\n var _loop_1 = function (i) {\n var row = constants_1.TABLE_2[i];\n var value = duration[row.valueField];\n var style = internalSlots[row.styleSlot];\n var display = internalSlots[row.displaySlot];\n var unit = row.unit, numberFormatUnit = row.numberFormatUnit;\n var nfOpts = Object.create(null);\n if (unit === 'seconds' ||\n unit === 'milliseconds' ||\n unit === 'microseconds') {\n var nextStyle = void 0;\n if (unit === 'seconds') {\n nextStyle = internalSlots.milliseconds;\n }\n else if (unit === 'milliseconds') {\n nextStyle = internalSlots.microseconds;\n }\n else {\n nextStyle = internalSlots.nanoseconds;\n }\n if (nextStyle === 'numeric') {\n if (unit === 'seconds') {\n value +=\n duration.milliseconds / 1e3 +\n duration.microseconds / 1e6 +\n duration.nanoseconds / 1e9;\n }\n else if (unit === 'milliseconds') {\n value += duration.microseconds / 1e3 + duration.nanoseconds / 1e6;\n }\n else {\n value += duration.nanoseconds / 1e3;\n }\n if (internalSlots.fractionalDigits === undefined) {\n nfOpts.maximumFractionDigits = 9;\n nfOpts.minimumFractionDigits = 0;\n }\n else {\n nfOpts.maximumFractionDigits = internalSlots.fractionalDigits;\n nfOpts.minimumFractionDigits = internalSlots.fractionalDigits;\n }\n nfOpts.roundingMode = 'trunc';\n done = true;\n }\n }\n if (value !== 0 || display !== 'auto') {\n nfOpts.numberingSystem = internalSlots.numberingSystem;\n if (style === '2-digit') {\n nfOpts.minimumIntegerDigits = 2;\n }\n if (style !== '2-digit' && style !== 'numeric') {\n nfOpts.style = 'unit';\n nfOpts.unit = numberFormatUnit;\n nfOpts.unitDisplay = style;\n }\n var nf = (0, ecma402_abstract_1.createMemoizedNumberFormat)(internalSlots.locale, nfOpts);\n var list_1;\n if (!separated) {\n list_1 = [];\n }\n else {\n list_1 = result[result.length - 1];\n list_1.push({\n type: 'literal',\n value: separator,\n });\n }\n var parts = nf.formatToParts(value);\n parts.forEach(function (_a) {\n var type = _a.type, value = _a.value;\n list_1.push({\n type: type,\n value: value,\n unit: numberFormatUnit,\n });\n });\n if (!separated) {\n if (style === '2-digit' || style === 'numeric') {\n separated = true;\n }\n result.push(list_1);\n }\n }\n else {\n separated = false;\n }\n };\n for (var i = 0; i < constants_1.TABLE_2.length && !done; i++) {\n _loop_1(i);\n }\n var lfOpts = Object.create(null);\n lfOpts.type = 'unit';\n var listStyle = internalSlots.style;\n if (listStyle === 'digital') {\n listStyle = 'short';\n }\n lfOpts.style = listStyle;\n var lf = (0, ecma402_abstract_1.createMemoizedListFormat)(internalSlots.locale, lfOpts);\n var strings = [];\n for (var _i = 0, result_1 = result; _i < result_1.length; _i++) {\n var parts = result_1[_i];\n var string = '';\n for (var _a = 0, parts_1 = parts; _a < parts_1.length; _a++) {\n var value = parts_1[_a].value;\n string += value;\n }\n strings.push(string);\n }\n var formatted = lf.formatToParts(strings);\n var resultIndex = 0;\n var resultLength = result.length;\n var flattened = [];\n for (var _b = 0, formatted_1 = formatted; _b < formatted_1.length; _b++) {\n var _c = formatted_1[_b], type = _c.type, value = _c.value;\n if (type === 'element') {\n (0, ecma402_abstract_1.invariant)(resultIndex < resultLength, 'Index out of bounds');\n var parts = result[resultIndex];\n for (var _d = 0, parts_2 = parts; _d < parts_2.length; _d++) {\n var part = parts_2[_d];\n flattened.push(part);\n }\n resultIndex++;\n }\n else {\n (0, ecma402_abstract_1.invariant)(type === 'literal', 'Type must be literal');\n flattened.push({\n type: 'literal',\n value: value,\n });\n }\n }\n return flattened;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ToDurationRecord = ToDurationRecord;\nvar IsValidDurationRecord_1 = require(\"./IsValidDurationRecord\");\nvar ToIntegerIfIntegral_1 = require(\"./ToIntegerIfIntegral\");\nfunction ToDurationRecord(input) {\n if (typeof input !== 'object') {\n if (typeof input === 'string') {\n throw new RangeError('Invalid duration format');\n }\n throw new TypeError('Invalid duration');\n }\n var result = {\n years: 0,\n months: 0,\n weeks: 0,\n days: 0,\n hours: 0,\n minutes: 0,\n seconds: 0,\n milliseconds: 0,\n microseconds: 0,\n nanoseconds: 0,\n };\n if (input.days !== undefined) {\n result.days = (0, ToIntegerIfIntegral_1.ToIntegerIfIntegral)(input.days);\n }\n if (input.hours !== undefined) {\n result.hours = (0, ToIntegerIfIntegral_1.ToIntegerIfIntegral)(input.hours);\n }\n if (input.microseconds !== undefined) {\n result.microseconds = (0, ToIntegerIfIntegral_1.ToIntegerIfIntegral)(input.microseconds);\n }\n if (input.milliseconds !== undefined) {\n result.milliseconds = (0, ToIntegerIfIntegral_1.ToIntegerIfIntegral)(input.milliseconds);\n }\n if (input.minutes !== undefined) {\n result.minutes = (0, ToIntegerIfIntegral_1.ToIntegerIfIntegral)(input.minutes);\n }\n if (input.months !== undefined) {\n result.months = (0, ToIntegerIfIntegral_1.ToIntegerIfIntegral)(input.months);\n }\n if (input.nanoseconds !== undefined) {\n result.nanoseconds = (0, ToIntegerIfIntegral_1.ToIntegerIfIntegral)(input.nanoseconds);\n }\n if (input.seconds !== undefined) {\n result.seconds = (0, ToIntegerIfIntegral_1.ToIntegerIfIntegral)(input.seconds);\n }\n if (input.weeks !== undefined) {\n result.weeks = (0, ToIntegerIfIntegral_1.ToIntegerIfIntegral)(input.weeks);\n }\n if (input.years !== undefined) {\n result.years = (0, ToIntegerIfIntegral_1.ToIntegerIfIntegral)(input.years);\n }\n if (input.years === undefined &&\n input.months === undefined &&\n input.weeks === undefined &&\n input.days === undefined &&\n input.hours === undefined &&\n input.minutes === undefined &&\n input.seconds === undefined &&\n input.milliseconds === undefined &&\n input.microseconds === undefined &&\n input.nanoseconds === undefined) {\n throw new TypeError('Invalid duration format');\n }\n if (!(0, IsValidDurationRecord_1.IsValidDurationRecord)(result)) {\n throw new RangeError('Invalid duration format');\n }\n return result;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ToIntegerIfIntegral = ToIntegerIfIntegral;\nvar ecma402_abstract_1 = require(\"@formatjs/ecma402-abstract\");\nfunction ToIntegerIfIntegral(arg) {\n var number = (0, ecma402_abstract_1.ToNumber)(arg);\n (0, ecma402_abstract_1.invariant)(number.isInteger(), \"\".concat(arg, \" is not an integer\"));\n return number.toNumber();\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TABLE_2 = exports.TABLE_1 = void 0;\nexports.TABLE_1 = [\n 'years',\n 'months',\n 'weeks',\n 'days',\n 'hours',\n 'minutes',\n 'seconds',\n 'milliseconds',\n 'microseconds',\n 'nanoseconds',\n];\nexports.TABLE_2 = [\n {\n valueField: 'years',\n styleSlot: 'years',\n displaySlot: 'yearsDisplay',\n unit: 'years',\n numberFormatUnit: 'year',\n },\n {\n valueField: 'months',\n styleSlot: 'months',\n displaySlot: 'monthsDisplay',\n unit: 'months',\n numberFormatUnit: 'month',\n },\n {\n valueField: 'weeks',\n styleSlot: 'weeks',\n displaySlot: 'weeksDisplay',\n unit: 'weeks',\n numberFormatUnit: 'week',\n },\n {\n valueField: 'days',\n styleSlot: 'days',\n displaySlot: 'daysDisplay',\n unit: 'days',\n numberFormatUnit: 'day',\n },\n {\n valueField: 'hours',\n styleSlot: 'hours',\n displaySlot: 'hoursDisplay',\n unit: 'hours',\n numberFormatUnit: 'hour',\n },\n {\n valueField: 'minutes',\n styleSlot: 'minutes',\n displaySlot: 'minutesDisplay',\n unit: 'minutes',\n numberFormatUnit: 'minute',\n },\n {\n valueField: 'seconds',\n styleSlot: 'seconds',\n displaySlot: 'secondsDisplay',\n unit: 'seconds',\n numberFormatUnit: 'second',\n },\n {\n valueField: 'milliseconds',\n styleSlot: 'milliseconds',\n displaySlot: 'millisecondsDisplay',\n unit: 'milliseconds',\n numberFormatUnit: 'millisecond',\n },\n {\n valueField: 'microseconds',\n styleSlot: 'microseconds',\n displaySlot: 'microsecondsDisplay',\n unit: 'microseconds',\n numberFormatUnit: 'microsecond',\n },\n {\n valueField: 'nanoseconds',\n styleSlot: 'nanoseconds',\n displaySlot: 'nanosecondsDisplay',\n unit: 'nanoseconds',\n numberFormatUnit: 'nanosecond',\n },\n];\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DurationFormat = void 0;\nvar ecma402_abstract_1 = require(\"@formatjs/ecma402-abstract\");\nvar intl_localematcher_1 = require(\"@formatjs/intl-localematcher\");\nvar GetDurationUnitOptions_1 = require(\"./abstract/GetDurationUnitOptions\");\nvar PartitionDurationFormatPattern_1 = require(\"./abstract/PartitionDurationFormatPattern\");\nvar ToDurationRecord_1 = require(\"./abstract/ToDurationRecord\");\nvar get_internal_slots_1 = require(\"./get_internal_slots\");\nvar numbering_systems_generated_1 = require(\"./numbering-systems.generated\");\nvar time_separators_generated_1 = require(\"./time-separators.generated\");\nvar RESOLVED_OPTIONS_KEYS = [\n 'locale',\n 'style',\n 'years',\n 'yearsDisplay',\n 'months',\n 'monthsDisplay',\n 'weeks',\n 'weeksDisplay',\n 'days',\n 'daysDisplay',\n 'hours',\n 'hoursDisplay',\n 'minutes',\n 'minutesDisplay',\n 'seconds',\n 'secondsDisplay',\n 'milliseconds',\n 'millisecondsDisplay',\n 'microseconds',\n 'microsecondsDisplay',\n 'nanoseconds',\n 'nanosecondsDisplay',\n 'numberingSystem',\n 'fractionalDigits',\n];\nvar TABLE_3 = [\n {\n styleSlot: 'years',\n displaySlot: 'yearsDisplay',\n unit: 'years',\n values: ['long', 'short', 'narrow'],\n digitalDefault: 'short',\n },\n {\n styleSlot: 'months',\n displaySlot: 'monthsDisplay',\n unit: 'months',\n values: ['long', 'short', 'narrow'],\n digitalDefault: 'short',\n },\n {\n styleSlot: 'weeks',\n displaySlot: 'weeksDisplay',\n unit: 'weeks',\n values: ['long', 'short', 'narrow'],\n digitalDefault: 'short',\n },\n {\n styleSlot: 'days',\n displaySlot: 'daysDisplay',\n unit: 'days',\n values: ['long', 'short', 'narrow'],\n digitalDefault: 'short',\n },\n {\n styleSlot: 'hours',\n displaySlot: 'hoursDisplay',\n unit: 'hours',\n values: ['long', 'short', 'narrow', 'numeric', '2-digit'],\n digitalDefault: 'numeric',\n },\n {\n styleSlot: 'minutes',\n displaySlot: 'minutesDisplay',\n unit: 'minutes',\n values: ['long', 'short', 'narrow', 'numeric', '2-digit'],\n digitalDefault: 'numeric',\n },\n {\n styleSlot: 'seconds',\n displaySlot: 'secondsDisplay',\n unit: 'seconds',\n values: ['long', 'short', 'narrow', 'numeric', '2-digit'],\n digitalDefault: 'numeric',\n },\n {\n styleSlot: 'milliseconds',\n displaySlot: 'millisecondsDisplay',\n unit: 'milliseconds',\n values: ['long', 'short', 'narrow', 'numeric'],\n digitalDefault: 'numeric',\n },\n {\n styleSlot: 'microseconds',\n displaySlot: 'microsecondsDisplay',\n unit: 'microseconds',\n values: ['long', 'short', 'narrow', 'numeric'],\n digitalDefault: 'numeric',\n },\n {\n styleSlot: 'nanoseconds',\n displaySlot: 'nanosecondsDisplay',\n unit: 'nanoseconds',\n values: ['long', 'short', 'narrow', 'numeric'],\n digitalDefault: 'numeric',\n },\n];\nvar DurationFormat = /** @class */ (function () {\n function DurationFormat(locales, options) {\n // test262/test/intl402/ListFormat/constructor/constructor/newtarget-undefined.js\n // Cannot use `new.target` bc of IE11 & TS transpiles it to something else\n var newTarget = this && this instanceof DurationFormat ? this.constructor : void 0;\n if (!newTarget) {\n throw new TypeError(\"Intl.DurationFormat must be called with 'new'\");\n }\n var requestedLocales = (0, ecma402_abstract_1.CanonicalizeLocaleList)(locales);\n var opt = Object.create(null);\n var opts = options === undefined ? Object.create(null) : (0, ecma402_abstract_1.ToObject)(options);\n var matcher = (0, ecma402_abstract_1.GetOption)(opts, 'localeMatcher', 'string', ['best fit', 'lookup'], 'best fit');\n var numberingSystem = (0, ecma402_abstract_1.GetOption)(opts, 'numberingSystem', 'string', undefined, undefined);\n if (numberingSystem !== undefined &&\n numbering_systems_generated_1.numberingSystemNames.indexOf(numberingSystem) < 0) {\n // 8.a. If numberingSystem does not match the Unicode Locale Identifier type nonterminal,\n // throw a RangeError exception.\n throw RangeError(\"Invalid numberingSystems: \".concat(numberingSystem));\n }\n opt.nu = numberingSystem;\n opt.localeMatcher = matcher;\n var localeData = DurationFormat.localeData, availableLocales = DurationFormat.availableLocales;\n var r = (0, intl_localematcher_1.ResolveLocale)(availableLocales, requestedLocales, opt, \n // [[RelevantExtensionKeys]] slot, which is a constant\n ['nu'], localeData, DurationFormat.getDefaultLocale);\n var locale = r.locale;\n var internalSlots = (0, get_internal_slots_1.getInternalSlots)(this);\n internalSlots.initializedDurationFormat = true;\n internalSlots.locale = locale;\n internalSlots.numberingSystem = r.nu;\n var style = (0, ecma402_abstract_1.GetOption)(opts, 'style', 'string', ['long', 'short', 'narrow', 'digital'], 'short');\n internalSlots.style = style;\n internalSlots.dataLocale = r.dataLocale;\n var prevStyle = '';\n TABLE_3.forEach(function (row) {\n var styleSlot = row.styleSlot, displaySlot = row.displaySlot, unit = row.unit, valueList = row.values, digitalBase = row.digitalDefault;\n var unitOptions = (0, GetDurationUnitOptions_1.GetDurationUnitOptions)(unit, opts, style, valueList, digitalBase, prevStyle);\n internalSlots[styleSlot] = unitOptions.style;\n internalSlots[displaySlot] = unitOptions.display;\n if (unit === 'hours' ||\n unit === 'minutes' ||\n unit === 'seconds' ||\n unit === 'milliseconds' ||\n unit === 'microseconds') {\n prevStyle = unitOptions.style;\n }\n });\n internalSlots.fractionalDigits = (0, ecma402_abstract_1.GetNumberOption)(opts, 'fractionalDigits', 0, 9, undefined);\n }\n DurationFormat.prototype.resolvedOptions = function () {\n if (typeof this !== 'object' ||\n !(0, ecma402_abstract_1.OrdinaryHasInstance)(DurationFormat, this)) {\n throw TypeError('Method Intl.DurationFormat.prototype.resolvedOptions called on incompatible receiver');\n }\n var internalSlots = (0, get_internal_slots_1.getInternalSlots)(this);\n var ro = {};\n for (var _i = 0, RESOLVED_OPTIONS_KEYS_1 = RESOLVED_OPTIONS_KEYS; _i < RESOLVED_OPTIONS_KEYS_1.length; _i++) {\n var key = RESOLVED_OPTIONS_KEYS_1[_i];\n var v = internalSlots[key];\n if (key === 'fractionalDigits') {\n if (v !== undefined) {\n v = Number(v);\n }\n }\n else {\n (0, ecma402_abstract_1.invariant)(v !== undefined, \"Missing internal slot \".concat(key));\n }\n ro[key] = v;\n }\n return ro;\n };\n DurationFormat.prototype.formatToParts = function (duration) {\n var df = this;\n var locInternalSlots = (0, get_internal_slots_1.getInternalSlots)(this);\n if (locInternalSlots.initializedDurationFormat === undefined) {\n throw new TypeError('Error uninitialized locale');\n }\n var record = (0, ToDurationRecord_1.ToDurationRecord)(duration);\n var parts = (0, PartitionDurationFormatPattern_1.PartitionDurationFormatPattern)(df, record);\n var result = [];\n for (var _i = 0, parts_1 = parts; _i < parts_1.length; _i++) {\n var _a = parts_1[_i], type = _a.type, unit = _a.unit, value = _a.value;\n var obj = { type: type, value: value };\n if (unit) {\n obj.unit = unit;\n }\n result.push(obj);\n }\n return result;\n };\n DurationFormat.prototype.format = function (duration) {\n var df = this;\n var locInternalSlots = (0, get_internal_slots_1.getInternalSlots)(this);\n if (locInternalSlots.initializedDurationFormat === undefined) {\n throw new TypeError('Error uninitialized locale');\n }\n var record = (0, ToDurationRecord_1.ToDurationRecord)(duration);\n var parts = (0, PartitionDurationFormatPattern_1.PartitionDurationFormatPattern)(df, record);\n var result = '';\n for (var _i = 0, parts_2 = parts; _i < parts_2.length; _i++) {\n var value = parts_2[_i].value;\n result += value;\n }\n return result;\n };\n DurationFormat.supportedLocalesOf = function (locales, options) {\n return (0, ecma402_abstract_1.SupportedLocales)(DurationFormat.availableLocales, (0, ecma402_abstract_1.CanonicalizeLocaleList)(locales), options);\n };\n DurationFormat.__defaultLocale = 'en';\n DurationFormat.availableLocales = new Set();\n DurationFormat.localeData = Object.keys(time_separators_generated_1.TIME_SEPARATORS.localeData).reduce(function (all, locale) {\n DurationFormat.availableLocales.add(locale);\n var nu = time_separators_generated_1.TIME_SEPARATORS.localeData[locale].nu;\n all[locale] = {\n nu: nu,\n digitalFormat: time_separators_generated_1.TIME_SEPARATORS.localeData[locale].separator ||\n nu.reduce(function (separators, n) {\n separators[n] = time_separators_generated_1.TIME_SEPARATORS.default;\n return separators;\n }, {}),\n };\n return all;\n }, {});\n DurationFormat.getDefaultLocale = function () {\n return DurationFormat.__defaultLocale;\n };\n DurationFormat.polyfilled = true;\n return DurationFormat;\n}());\nexports.DurationFormat = DurationFormat;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getInternalSlots = getInternalSlots;\nvar internalSlotMap = new WeakMap();\nfunction getInternalSlots(x) {\n var internalSlots = internalSlotMap.get(x);\n if (!internalSlots) {\n internalSlots = Object.create(null);\n internalSlotMap.set(x, internalSlots);\n }\n return internalSlots;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.numberingSystemNames = void 0;\nexports.numberingSystemNames = [\"adlm\", \"ahom\", \"arab\", \"arabext\", \"armn\", \"armnlow\", \"bali\", \"beng\", \"bhks\", \"brah\", \"cakm\", \"cham\", \"cyrl\", \"deva\", \"diak\", \"ethi\", \"fullwide\", \"gara\", \"geor\", \"gong\", \"gonm\", \"grek\", \"greklow\", \"gujr\", \"gukh\", \"guru\", \"hanidays\", \"hanidec\", \"hans\", \"hansfin\", \"hant\", \"hantfin\", \"hebr\", \"hmng\", \"hmnp\", \"java\", \"jpan\", \"jpanfin\", \"jpanyear\", \"kali\", \"kawi\", \"khmr\", \"knda\", \"krai\", \"lana\", \"lanatham\", \"laoo\", \"latn\", \"lepc\", \"limb\", \"mathbold\", \"mathdbl\", \"mathmono\", \"mathsanb\", \"mathsans\", \"mlym\", \"modi\", \"mong\", \"mroo\", \"mtei\", \"mymr\", \"mymrepka\", \"mymrpao\", \"mymrshan\", \"mymrtlng\", \"nagm\", \"newa\", \"nkoo\", \"olck\", \"onao\", \"orya\", \"osma\", \"outlined\", \"rohg\", \"roman\", \"romanlow\", \"saur\", \"segment\", \"shrd\", \"sind\", \"sinh\", \"sora\", \"sund\", \"sunu\", \"takr\", \"talu\", \"taml\", \"tamldec\", \"telu\", \"thai\", \"tibt\", \"tirh\", \"tnsa\", \"vaii\", \"wara\", \"wcho\"];\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TIME_SEPARATORS = void 0;\n/* @generated */\n// prettier-ignore\nexports.TIME_SEPARATORS = {\n \"default\": \":\",\n \"localeData\": {\n \"aa\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"aa-DJ\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"aa-ER\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"ab\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"af\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"af-NA\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"agq\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"ak\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"am\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"an\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"ann\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"apc\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"ar\": {\n \"nu\": [\n \"latn\",\n \"latn\"\n ]\n },\n \"ar-AE\": {\n \"nu\": [\n \"latn\",\n \"latn\"\n ]\n },\n \"ar-BH\": {\n \"nu\": [\n \"arab\",\n \"latn\"\n ]\n },\n \"ar-DJ\": {\n \"nu\": [\n \"arab\",\n \"latn\"\n ]\n },\n \"ar-DZ\": {\n \"nu\": [\n \"latn\",\n \"latn\"\n ]\n },\n \"ar-EG\": {\n \"nu\": [\n \"arab\",\n \"latn\"\n ]\n },\n \"ar-EH\": {\n \"nu\": [\n \"latn\",\n \"latn\"\n ]\n },\n \"ar-ER\": {\n \"nu\": [\n \"arab\",\n \"latn\"\n ]\n },\n \"ar-IL\": {\n \"nu\": [\n \"arab\",\n \"latn\"\n ]\n },\n \"ar-IQ\": {\n \"nu\": [\n \"arab\",\n \"latn\"\n ]\n },\n \"ar-JO\": {\n \"nu\": [\n \"arab\",\n \"latn\"\n ]\n },\n \"ar-KM\": {\n \"nu\": [\n \"arab\",\n \"latn\"\n ]\n },\n \"ar-KW\": {\n \"nu\": [\n \"arab\",\n \"latn\"\n ]\n },\n \"ar-LB\": {\n \"nu\": [\n \"arab\",\n \"latn\"\n ]\n },\n \"ar-LY\": {\n \"nu\": [\n \"latn\",\n \"latn\"\n ]\n },\n \"ar-MA\": {\n \"nu\": [\n \"latn\",\n \"latn\"\n ]\n },\n \"ar-MR\": {\n \"nu\": [\n \"arab\",\n \"latn\"\n ]\n },\n \"ar-OM\": {\n \"nu\": [\n \"arab\",\n \"latn\"\n ]\n },\n \"ar-PS\": {\n \"nu\": [\n \"arab\",\n \"latn\"\n ]\n },\n \"ar-QA\": {\n \"nu\": [\n \"arab\",\n \"latn\"\n ]\n },\n \"ar-SA\": {\n \"nu\": [\n \"arab\",\n \"latn\"\n ]\n },\n \"ar-SD\": {\n \"nu\": [\n \"arab\",\n \"latn\"\n ]\n },\n \"ar-SO\": {\n \"nu\": [\n \"arab\",\n \"latn\"\n ]\n },\n \"ar-SS\": {\n \"nu\": [\n \"arab\",\n \"latn\"\n ]\n },\n \"ar-SY\": {\n \"nu\": [\n \"arab\",\n \"latn\"\n ]\n },\n \"ar-TD\": {\n \"nu\": [\n \"arab\",\n \"latn\"\n ]\n },\n \"ar-TN\": {\n \"nu\": [\n \"latn\",\n \"latn\"\n ]\n },\n \"ar-YE\": {\n \"nu\": [\n \"arab\",\n \"latn\"\n ]\n },\n \"arn\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"as\": {\n \"nu\": [\n \"beng\"\n ]\n },\n \"asa\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"ast\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"az\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"az-Arab\": {\n \"nu\": [\n \"arabext\"\n ]\n },\n \"az-Arab-IQ\": {\n \"nu\": [\n \"arabext\"\n ]\n },\n \"az-Arab-TR\": {\n \"nu\": [\n \"arabext\"\n ]\n },\n \"az-Cyrl\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"az-Latn\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"ba\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"bal\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"bal-Arab\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"bal-Latn\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"bas\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"be\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"be-tarask\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"bem\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"bew\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"bez\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"bg\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"bgc\": {\n \"nu\": [\n \"deva\"\n ]\n },\n \"bgn\": {\n \"nu\": [\n \"arabext\"\n ]\n },\n \"bgn-AE\": {\n \"nu\": [\n \"arabext\"\n ]\n },\n \"bgn-AF\": {\n \"nu\": [\n \"arabext\"\n ]\n },\n \"bgn-IR\": {\n \"nu\": [\n \"arabext\"\n ]\n },\n \"bgn-OM\": {\n \"nu\": [\n \"arabext\"\n ]\n },\n \"bho\": {\n \"nu\": [\n \"deva\"\n ]\n },\n \"blo\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"blt\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"bm\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"bm-Nkoo\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"bn\": {\n \"nu\": [\n \"beng\"\n ]\n },\n \"bn-IN\": {\n \"nu\": [\n \"beng\"\n ]\n },\n \"bo\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"bo-IN\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"br\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"brx\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"bs\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"bs-Cyrl\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"bs-Latn\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"bss\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"byn\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"ca\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"ca-AD\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"ca-ES-valencia\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"ca-FR\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"ca-IT\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"cad\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"cch\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"ccp\": {\n \"nu\": [\n \"cakm\"\n ]\n },\n \"ccp-IN\": {\n \"nu\": [\n \"cakm\"\n ]\n },\n \"ce\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"ceb\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"cgg\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"cho\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"chr\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"cic\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"ckb\": {\n \"nu\": [\n \"arab\"\n ]\n },\n \"ckb-IR\": {\n \"nu\": [\n \"arab\"\n ]\n },\n \"co\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"cs\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"csw\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"cu\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"cv\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"cy\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"da\": {\n \"nu\": [\n \"latn\"\n ],\n \"separator\": {\n \"latn\": \".\"\n }\n },\n \"da-GL\": {\n \"nu\": [\n \"latn\"\n ],\n \"separator\": {\n \"latn\": \".\"\n }\n },\n \"dav\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"de\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"de-AT\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"de-BE\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"de-CH\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"de-IT\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"de-LI\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"de-LU\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"dje\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"doi\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"dsb\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"dua\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"dv\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"dyo\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"dz\": {\n \"nu\": [\n \"tibt\"\n ]\n },\n \"ebu\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"ee\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"ee-TG\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"el\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"el-CY\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"el-polyton\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-001\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-150\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-AE\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-AG\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-AI\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-AS\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-AT\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-AU\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-BB\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-BE\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-BI\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-BM\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-BS\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-BW\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-BZ\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-CA\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-CC\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-CH\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-CK\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-CM\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-CX\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-CY\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-DE\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-DG\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-DK\": {\n \"nu\": [\n \"latn\"\n ],\n \"separator\": {\n \"latn\": \".\"\n }\n },\n \"en-DM\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-Dsrt\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-ER\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-FI\": {\n \"nu\": [\n \"latn\"\n ],\n \"separator\": {\n \"latn\": \".\"\n }\n },\n \"en-FJ\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-FK\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-FM\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-GB\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-GD\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-GG\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-GH\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-GI\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-GM\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-GU\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-GY\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-HK\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-ID\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-IE\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-IL\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-IM\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-IN\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-IO\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-JE\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-JM\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-KE\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-KI\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-KN\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-KY\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-LC\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-LR\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-LS\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-MG\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-MH\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-MO\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-MP\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-MS\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-MT\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-MU\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-MV\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-MW\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-MY\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-NA\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-NF\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-NG\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-NL\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-NR\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-NU\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-NZ\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-PG\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-PH\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-PK\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-PN\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-PR\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-PW\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-RW\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-SB\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-SC\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-SD\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-SE\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-SG\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-SH\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-SI\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-SL\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-SS\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-SX\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-SZ\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-Shaw\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-TC\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-TK\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-TO\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-TT\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-TV\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-TZ\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-UG\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-UM\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-VC\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-VG\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-VI\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-VU\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-WS\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-ZA\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-ZM\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"en-ZW\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"eo\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"es\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"es-419\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"es-AR\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"es-BO\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"es-BR\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"es-BZ\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"es-CL\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"es-CO\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"es-CR\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"es-CU\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"es-DO\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"es-EA\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"es-EC\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"es-GQ\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"es-GT\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"es-HN\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"es-IC\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"es-MX\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"es-NI\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"es-PA\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"es-PE\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"es-PH\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"es-PR\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"es-PY\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"es-SV\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"es-US\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"es-UY\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"es-VE\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"et\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"eu\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"ewo\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"fa\": {\n \"nu\": [\n \"arabext\"\n ]\n },\n \"fa-AF\": {\n \"nu\": [\n \"arabext\"\n ]\n },\n \"ff\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"ff-Adlm\": {\n \"nu\": [\n \"adlm\"\n ]\n },\n \"ff-Adlm-BF\": {\n \"nu\": [\n \"adlm\"\n ]\n },\n \"ff-Adlm-CM\": {\n \"nu\": [\n \"adlm\"\n ]\n },\n \"ff-Adlm-GH\": {\n \"nu\": [\n \"adlm\"\n ]\n },\n \"ff-Adlm-GM\": {\n \"nu\": [\n \"adlm\"\n ]\n },\n \"ff-Adlm-GW\": {\n \"nu\": [\n \"adlm\"\n ]\n },\n \"ff-Adlm-LR\": {\n \"nu\": [\n \"adlm\"\n ]\n },\n \"ff-Adlm-MR\": {\n \"nu\": [\n \"adlm\"\n ]\n },\n \"ff-Adlm-NE\": {\n \"nu\": [\n \"adlm\"\n ]\n },\n \"ff-Adlm-NG\": {\n \"nu\": [\n \"adlm\"\n ]\n },\n \"ff-Adlm-SL\": {\n \"nu\": [\n \"adlm\"\n ]\n },\n \"ff-Adlm-SN\": {\n \"nu\": [\n \"adlm\"\n ]\n },\n \"ff-Latn\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"ff-Latn-BF\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"ff-Latn-CM\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"ff-Latn-GH\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"ff-Latn-GM\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"ff-Latn-GN\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"ff-Latn-GW\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"ff-Latn-LR\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"ff-Latn-MR\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"ff-Latn-NE\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"ff-Latn-NG\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"ff-Latn-SL\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"fi\": {\n \"nu\": [\n \"latn\"\n ],\n \"separator\": {\n \"latn\": \".\"\n }\n },\n \"fil\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"fo\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"fo-DK\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"fr\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"fr-BE\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"fr-BF\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"fr-BI\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"fr-BJ\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"fr-BL\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"fr-CA\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"fr-CD\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"fr-CF\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"fr-CG\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"fr-CH\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"fr-CI\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"fr-CM\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"fr-DJ\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"fr-DZ\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"fr-GA\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"fr-GF\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"fr-GN\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"fr-GP\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"fr-GQ\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"fr-HT\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"fr-KM\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"fr-LU\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"fr-MA\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"fr-MC\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"fr-MF\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"fr-MG\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"fr-ML\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"fr-MQ\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"fr-MR\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"fr-MU\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"fr-NC\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"fr-NE\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"fr-PF\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"fr-PM\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"fr-RE\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"fr-RW\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"fr-SC\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"fr-SN\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"fr-SY\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"fr-TD\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"fr-TG\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"fr-TN\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"fr-VU\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"fr-WF\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"fr-YT\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"frr\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"fur\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"fy\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"ga\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"ga-GB\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"gaa\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"gd\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"gez\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"gez-ER\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"gl\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"gn\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"gsw\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"gsw-FR\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"gsw-LI\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"gu\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"guz\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"gv\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"ha\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"ha-Arab\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"ha-Arab-SD\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"ha-GH\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"ha-NE\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"haw\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"he\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"hi\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"hi-Latn\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"hnj\": {\n \"nu\": [\n \"hmnp\",\n \"latn\"\n ]\n },\n \"hnj-Hmnp\": {\n \"nu\": [\n \"hmnp\",\n \"latn\"\n ]\n },\n \"hr\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"hr-BA\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"hsb\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"hu\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"hy\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"ia\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"id\": {\n \"nu\": [\n \"latn\"\n ],\n \"separator\": {\n \"latn\": \".\"\n }\n },\n \"ie\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"ig\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"ii\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"io\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"is\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"it\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"it-CH\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"it-SM\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"it-VA\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"iu\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"iu-Latn\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"ja\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"jbo\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"jgo\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"jmc\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"jv\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"ka\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"kaa\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"kaa-Cyrl\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"kaa-Latn\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"kab\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"kaj\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"kam\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"kcg\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"kde\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"kea\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"ken\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"kgp\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"khq\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"ki\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"kk\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"kk-Arab\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"kk-Cyrl\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"kk-KZ\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"kkj\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"kl\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"kln\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"km\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"kn\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"ko\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"ko-CN\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"ko-KP\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"kok\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"kok-Deva\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"kok-Latn\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"kpe\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"kpe-GN\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"ks\": {\n \"nu\": [\n \"arabext\"\n ]\n },\n \"ks-Arab\": {\n \"nu\": [\n \"arabext\"\n ]\n },\n \"ks-Deva\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"ksb\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"ksf\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"ksh\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"ku\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"kw\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"kxv\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"kxv-Deva\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"kxv-Latn\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"kxv-Orya\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"kxv-Telu\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"ky\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"la\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"lag\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"lb\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"lg\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"lij\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"lkt\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"lld\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"lmo\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"ln\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"ln-AO\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"ln-CF\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"ln-CG\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"lo\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"lrc\": {\n \"nu\": [\n \"arabext\"\n ]\n },\n \"lrc-IQ\": {\n \"nu\": [\n \"arabext\"\n ]\n },\n \"lt\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"ltg\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"lu\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"luo\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"luy\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"lv\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"mai\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"mas\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"mas-TZ\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"mdf\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"mer\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"mfe\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"mg\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"mgh\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"mgo\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"mhn\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"mi\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"mic\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"mk\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"ml\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"mn\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"mn-Mong\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"mn-Mong-MN\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"mni\": {\n \"nu\": [\n \"beng\"\n ]\n },\n \"mni-Beng\": {\n \"nu\": [\n \"beng\"\n ]\n },\n \"mni-Mtei\": {\n \"nu\": [\n \"mtei\"\n ]\n },\n \"moh\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"mr\": {\n \"nu\": [\n \"deva\"\n ]\n },\n \"ms\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"ms-Arab\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"ms-Arab-BN\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"ms-BN\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"ms-ID\": {\n \"nu\": [\n \"latn\"\n ],\n \"separator\": {\n \"latn\": \".\"\n }\n },\n \"ms-SG\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"mt\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"mua\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"mus\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"my\": {\n \"nu\": [\n \"mymr\"\n ]\n },\n \"myv\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"mzn\": {\n \"nu\": [\n \"arabext\"\n ]\n },\n \"naq\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"nb\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"nb-SJ\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"nd\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"nds\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"nds-NL\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"ne\": {\n \"nu\": [\n \"deva\"\n ]\n },\n \"ne-IN\": {\n \"nu\": [\n \"deva\"\n ]\n },\n \"nl\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"nl-AW\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"nl-BE\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"nl-BQ\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"nl-CW\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"nl-SR\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"nl-SX\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"nmg\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"nn\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"nnh\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"no\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"nqo\": {\n \"nu\": [\n \"nkoo\"\n ]\n },\n \"nr\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"nso\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"nus\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"nv\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"ny\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"nyn\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"oc\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"oc-ES\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"om\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"om-KE\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"or\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"os\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"os-RU\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"osa\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"pa\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"pa-Arab\": {\n \"nu\": [\n \"arabext\"\n ]\n },\n \"pa-Guru\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"pap\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"pap-AW\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"pcm\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"pis\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"pl\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"prg\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"ps\": {\n \"nu\": [\n \"arabext\"\n ]\n },\n \"ps-PK\": {\n \"nu\": [\n \"arabext\"\n ]\n },\n \"pt\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"pt-AO\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"pt-CH\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"pt-CV\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"pt-GQ\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"pt-GW\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"pt-LU\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"pt-MO\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"pt-MZ\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"pt-PT\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"pt-ST\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"pt-TL\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"qu\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"qu-BO\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"qu-EC\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"quc\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"raj\": {\n \"nu\": [\n \"deva\"\n ]\n },\n \"rhg\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"rhg-Rohg\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"rhg-Rohg-BD\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"rif\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"rm\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"rn\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"ro\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"ro-MD\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"rof\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"ru\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"ru-BY\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"ru-KG\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"ru-KZ\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"ru-MD\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"ru-UA\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"rw\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"rwk\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"sa\": {\n \"nu\": [\n \"deva\"\n ]\n },\n \"sah\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"saq\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"sat\": {\n \"nu\": [\n \"olck\"\n ]\n },\n \"sat-Deva\": {\n \"nu\": [\n \"deva\"\n ]\n },\n \"sat-Olck\": {\n \"nu\": [\n \"olck\"\n ]\n },\n \"sbp\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"sc\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"scn\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"sd\": {\n \"nu\": [\n \"arab\"\n ]\n },\n \"sd-Arab\": {\n \"nu\": [\n \"arab\"\n ]\n },\n \"sd-Deva\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"sdh\": {\n \"nu\": [\n \"arab\"\n ]\n },\n \"sdh-IQ\": {\n \"nu\": [\n \"arab\"\n ]\n },\n \"se\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"se-FI\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"se-SE\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"seh\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"ses\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"sg\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"shi\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"shi-Latn\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"shi-Tfng\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"shn\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"shn-TH\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"si\": {\n \"nu\": [\n \"latn\"\n ],\n \"separator\": {\n \"latn\": \".\"\n }\n },\n \"sid\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"sk\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"skr\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"sl\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"sma\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"sma-NO\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"smj\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"smj-NO\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"smn\": {\n \"nu\": [\n \"latn\"\n ],\n \"separator\": {\n \"latn\": \".\"\n }\n },\n \"sms\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"sn\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"so\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"so-DJ\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"so-ET\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"so-KE\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"sq\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"sq-MK\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"sq-XK\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"sr\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"sr-Cyrl\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"sr-Cyrl-BA\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"sr-Cyrl-ME\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"sr-Cyrl-XK\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"sr-Latn\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"sr-Latn-BA\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"sr-Latn-ME\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"sr-Latn-XK\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"ss\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"ss-SZ\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"ssy\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"st\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"st-LS\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"su\": {\n \"nu\": [\n \"latn\"\n ],\n \"separator\": {\n \"latn\": \".\"\n }\n },\n \"su-Latn\": {\n \"nu\": [\n \"latn\"\n ],\n \"separator\": {\n \"latn\": \".\"\n }\n },\n \"sv\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"sv-AX\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"sv-FI\": {\n \"nu\": [\n \"latn\"\n ],\n \"separator\": {\n \"latn\": \".\"\n }\n },\n \"sw\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"sw-CD\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"sw-KE\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"sw-UG\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"syr\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"syr-SY\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"szl\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"ta\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"ta-LK\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"ta-MY\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"ta-SG\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"te\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"teo\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"teo-KE\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"tg\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"th\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"ti\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"ti-ER\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"tig\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"tk\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"tn\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"tn-BW\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"to\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"tok\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"tpi\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"tr\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"tr-CY\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"trv\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"trw\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"ts\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"tt\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"twq\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"tyv\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"tzm\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"ug\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"uk\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"und\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"ur\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"ur-IN\": {\n \"nu\": [\n \"arabext\"\n ],\n \"separator\": {\n \"arabext\": \"٫\"\n }\n },\n \"uz\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"uz-Arab\": {\n \"nu\": [\n \"arabext\"\n ]\n },\n \"uz-Cyrl\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"uz-Latn\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"vai\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"vai-Latn\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"vai-Vaii\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"ve\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"vec\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"vi\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"vmw\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"vo\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"vun\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"wa\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"wae\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"wal\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"wbp\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"wo\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"xh\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"xnr\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"xog\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"yav\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"yi\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"yo\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"yo-BJ\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"yrl\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"yrl-CO\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"yrl-VE\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"yue\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"yue-Hans\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"yue-Hant\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"yue-Hant-CN\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"za\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"zgh\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"zh\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"zh-Hans\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"zh-Hans-HK\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"zh-Hans-MO\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"zh-Hans-MY\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"zh-Hans-SG\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"zh-Hant\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"zh-Hant-HK\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"zh-Hant-MO\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"zh-Hant-MY\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"zh-Latn\": {\n \"nu\": [\n \"latn\"\n ]\n },\n \"zu\": {\n \"nu\": [\n \"latn\"\n ]\n }\n }\n};\n","export var data = {\n supplemental: {\n languageMatching: {\n 'written-new': [\n {\n paradigmLocales: {\n _locales: 'en en_GB es es_419 pt_BR pt_PT',\n },\n },\n {\n $enUS: {\n _value: 'AS+CA+GU+MH+MP+PH+PR+UM+US+VI',\n },\n },\n {\n $cnsar: {\n _value: 'HK+MO',\n },\n },\n {\n $americas: {\n _value: '019',\n },\n },\n {\n $maghreb: {\n _value: 'MA+DZ+TN+LY+MR+EH',\n },\n },\n {\n no: {\n _desired: 'nb',\n _distance: '1',\n },\n },\n {\n bs: {\n _desired: 'hr',\n _distance: '4',\n },\n },\n {\n bs: {\n _desired: 'sh',\n _distance: '4',\n },\n },\n {\n hr: {\n _desired: 'sh',\n _distance: '4',\n },\n },\n {\n sr: {\n _desired: 'sh',\n _distance: '4',\n },\n },\n {\n aa: {\n _desired: 'ssy',\n _distance: '4',\n },\n },\n {\n de: {\n _desired: 'gsw',\n _distance: '4',\n _oneway: 'true',\n },\n },\n {\n de: {\n _desired: 'lb',\n _distance: '4',\n _oneway: 'true',\n },\n },\n {\n no: {\n _desired: 'da',\n _distance: '8',\n },\n },\n {\n nb: {\n _desired: 'da',\n _distance: '8',\n },\n },\n {\n ru: {\n _desired: 'ab',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'ach',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n nl: {\n _desired: 'af',\n _distance: '20',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'ak',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'am',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n es: {\n _desired: 'ay',\n _distance: '20',\n _oneway: 'true',\n },\n },\n {\n ru: {\n _desired: 'az',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n ur: {\n _desired: 'bal',\n _distance: '20',\n _oneway: 'true',\n },\n },\n {\n ru: {\n _desired: 'be',\n _distance: '20',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'bem',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n hi: {\n _desired: 'bh',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'bn',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n zh: {\n _desired: 'bo',\n _distance: '20',\n _oneway: 'true',\n },\n },\n {\n fr: {\n _desired: 'br',\n _distance: '20',\n _oneway: 'true',\n },\n },\n {\n es: {\n _desired: 'ca',\n _distance: '20',\n _oneway: 'true',\n },\n },\n {\n fil: {\n _desired: 'ceb',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'chr',\n _distance: '20',\n _oneway: 'true',\n },\n },\n {\n ar: {\n _desired: 'ckb',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n fr: {\n _desired: 'co',\n _distance: '20',\n _oneway: 'true',\n },\n },\n {\n fr: {\n _desired: 'crs',\n _distance: '20',\n _oneway: 'true',\n },\n },\n {\n sk: {\n _desired: 'cs',\n _distance: '20',\n },\n },\n {\n en: {\n _desired: 'cy',\n _distance: '20',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'ee',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'eo',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n es: {\n _desired: 'eu',\n _distance: '20',\n _oneway: 'true',\n },\n },\n {\n da: {\n _desired: 'fo',\n _distance: '20',\n _oneway: 'true',\n },\n },\n {\n nl: {\n _desired: 'fy',\n _distance: '20',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'ga',\n _distance: '20',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'gaa',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'gd',\n _distance: '20',\n _oneway: 'true',\n },\n },\n {\n es: {\n _desired: 'gl',\n _distance: '20',\n _oneway: 'true',\n },\n },\n {\n es: {\n _desired: 'gn',\n _distance: '20',\n _oneway: 'true',\n },\n },\n {\n hi: {\n _desired: 'gu',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'ha',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'haw',\n _distance: '20',\n _oneway: 'true',\n },\n },\n {\n fr: {\n _desired: 'ht',\n _distance: '20',\n _oneway: 'true',\n },\n },\n {\n ru: {\n _desired: 'hy',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'ia',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'ig',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'is',\n _distance: '20',\n _oneway: 'true',\n },\n },\n {\n id: {\n _desired: 'jv',\n _distance: '20',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'ka',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n fr: {\n _desired: 'kg',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n ru: {\n _desired: 'kk',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'km',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'kn',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'kri',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n tr: {\n _desired: 'ku',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n ru: {\n _desired: 'ky',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n it: {\n _desired: 'la',\n _distance: '20',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'lg',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n fr: {\n _desired: 'ln',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'lo',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'loz',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n fr: {\n _desired: 'lua',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n hi: {\n _desired: 'mai',\n _distance: '20',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'mfe',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n fr: {\n _desired: 'mg',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'mi',\n _distance: '20',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'ml',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n ru: {\n _desired: 'mn',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n hi: {\n _desired: 'mr',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n id: {\n _desired: 'ms',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'mt',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'my',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'ne',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n nb: {\n _desired: 'nn',\n _distance: '20',\n },\n },\n {\n no: {\n _desired: 'nn',\n _distance: '20',\n },\n },\n {\n en: {\n _desired: 'nso',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'ny',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'nyn',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n fr: {\n _desired: 'oc',\n _distance: '20',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'om',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'or',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'pa',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'pcm',\n _distance: '20',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'ps',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n es: {\n _desired: 'qu',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n de: {\n _desired: 'rm',\n _distance: '20',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'rn',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n fr: {\n _desired: 'rw',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n hi: {\n _desired: 'sa',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'sd',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'si',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'sn',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'so',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'sq',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'st',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n id: {\n _desired: 'su',\n _distance: '20',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'sw',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'ta',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'te',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n ru: {\n _desired: 'tg',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'ti',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n ru: {\n _desired: 'tk',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'tlh',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'tn',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'to',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n ru: {\n _desired: 'tt',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'tum',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n zh: {\n _desired: 'ug',\n _distance: '20',\n _oneway: 'true',\n },\n },\n {\n ru: {\n _desired: 'uk',\n _distance: '20',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'ur',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n ru: {\n _desired: 'uz',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n fr: {\n _desired: 'wo',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'xh',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'yi',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'yo',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n zh: {\n _desired: 'za',\n _distance: '20',\n _oneway: 'true',\n },\n },\n {\n en: {\n _desired: 'zu',\n _distance: '30',\n _oneway: 'true',\n },\n },\n {\n ar: {\n _desired: 'aao',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ar: {\n _desired: 'abh',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ar: {\n _desired: 'abv',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ar: {\n _desired: 'acm',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ar: {\n _desired: 'acq',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ar: {\n _desired: 'acw',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ar: {\n _desired: 'acx',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ar: {\n _desired: 'acy',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ar: {\n _desired: 'adf',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ar: {\n _desired: 'aeb',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ar: {\n _desired: 'aec',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ar: {\n _desired: 'afb',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ar: {\n _desired: 'ajp',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ar: {\n _desired: 'apc',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ar: {\n _desired: 'apd',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ar: {\n _desired: 'arq',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ar: {\n _desired: 'ars',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ar: {\n _desired: 'ary',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ar: {\n _desired: 'arz',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ar: {\n _desired: 'auz',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ar: {\n _desired: 'avl',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ar: {\n _desired: 'ayh',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ar: {\n _desired: 'ayl',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ar: {\n _desired: 'ayn',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ar: {\n _desired: 'ayp',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ar: {\n _desired: 'bbz',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ar: {\n _desired: 'pga',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ar: {\n _desired: 'shu',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ar: {\n _desired: 'ssh',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n az: {\n _desired: 'azb',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n et: {\n _desired: 'vro',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ff: {\n _desired: 'ffm',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ff: {\n _desired: 'fub',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ff: {\n _desired: 'fue',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ff: {\n _desired: 'fuf',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ff: {\n _desired: 'fuh',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ff: {\n _desired: 'fui',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ff: {\n _desired: 'fuq',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ff: {\n _desired: 'fuv',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n gn: {\n _desired: 'gnw',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n gn: {\n _desired: 'gui',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n gn: {\n _desired: 'gun',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n gn: {\n _desired: 'nhd',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n iu: {\n _desired: 'ikt',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n kln: {\n _desired: 'enb',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n kln: {\n _desired: 'eyo',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n kln: {\n _desired: 'niq',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n kln: {\n _desired: 'oki',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n kln: {\n _desired: 'pko',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n kln: {\n _desired: 'sgc',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n kln: {\n _desired: 'tec',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n kln: {\n _desired: 'tuy',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n kok: {\n _desired: 'gom',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n kpe: {\n _desired: 'gkp',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n luy: {\n _desired: 'ida',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n luy: {\n _desired: 'lkb',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n luy: {\n _desired: 'lko',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n luy: {\n _desired: 'lks',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n luy: {\n _desired: 'lri',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n luy: {\n _desired: 'lrm',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n luy: {\n _desired: 'lsm',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n luy: {\n _desired: 'lto',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n luy: {\n _desired: 'lts',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n luy: {\n _desired: 'lwg',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n luy: {\n _desired: 'nle',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n luy: {\n _desired: 'nyd',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n luy: {\n _desired: 'rag',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n lv: {\n _desired: 'ltg',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n mg: {\n _desired: 'bhr',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n mg: {\n _desired: 'bjq',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n mg: {\n _desired: 'bmm',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n mg: {\n _desired: 'bzc',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n mg: {\n _desired: 'msh',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n mg: {\n _desired: 'skg',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n mg: {\n _desired: 'tdx',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n mg: {\n _desired: 'tkg',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n mg: {\n _desired: 'txy',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n mg: {\n _desired: 'xmv',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n mg: {\n _desired: 'xmw',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n mn: {\n _desired: 'mvf',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ms: {\n _desired: 'bjn',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ms: {\n _desired: 'btj',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ms: {\n _desired: 'bve',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ms: {\n _desired: 'bvu',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ms: {\n _desired: 'coa',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ms: {\n _desired: 'dup',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ms: {\n _desired: 'hji',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ms: {\n _desired: 'id',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ms: {\n _desired: 'jak',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ms: {\n _desired: 'jax',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ms: {\n _desired: 'kvb',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ms: {\n _desired: 'kvr',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ms: {\n _desired: 'kxd',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ms: {\n _desired: 'lce',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ms: {\n _desired: 'lcf',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ms: {\n _desired: 'liw',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ms: {\n _desired: 'max',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ms: {\n _desired: 'meo',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ms: {\n _desired: 'mfa',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ms: {\n _desired: 'mfb',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ms: {\n _desired: 'min',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ms: {\n _desired: 'mqg',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ms: {\n _desired: 'msi',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ms: {\n _desired: 'mui',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ms: {\n _desired: 'orn',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ms: {\n _desired: 'ors',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ms: {\n _desired: 'pel',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ms: {\n _desired: 'pse',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ms: {\n _desired: 'tmw',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ms: {\n _desired: 'urk',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ms: {\n _desired: 'vkk',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ms: {\n _desired: 'vkt',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ms: {\n _desired: 'xmm',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ms: {\n _desired: 'zlm',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ms: {\n _desired: 'zmi',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ne: {\n _desired: 'dty',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n om: {\n _desired: 'gax',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n om: {\n _desired: 'hae',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n om: {\n _desired: 'orc',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n or: {\n _desired: 'spv',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ps: {\n _desired: 'pbt',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n ps: {\n _desired: 'pst',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n qu: {\n _desired: 'qub',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n qu: {\n _desired: 'qud',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n qu: {\n _desired: 'quf',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n qu: {\n _desired: 'qug',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n qu: {\n _desired: 'quh',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n qu: {\n _desired: 'quk',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n qu: {\n _desired: 'qul',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n qu: {\n _desired: 'qup',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n qu: {\n _desired: 'qur',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n qu: {\n _desired: 'qus',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n qu: {\n _desired: 'quw',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n qu: {\n _desired: 'qux',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n qu: {\n _desired: 'quy',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n qu: {\n _desired: 'qva',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n qu: {\n _desired: 'qvc',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n qu: {\n _desired: 'qve',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n qu: {\n _desired: 'qvh',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n qu: {\n _desired: 'qvi',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n qu: {\n _desired: 'qvj',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n qu: {\n _desired: 'qvl',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n qu: {\n _desired: 'qvm',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n qu: {\n _desired: 'qvn',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n qu: {\n _desired: 'qvo',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n qu: {\n _desired: 'qvp',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n qu: {\n _desired: 'qvs',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n qu: {\n _desired: 'qvw',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n qu: {\n _desired: 'qvz',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n qu: {\n _desired: 'qwa',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n qu: {\n _desired: 'qwc',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n qu: {\n _desired: 'qwh',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n qu: {\n _desired: 'qws',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n qu: {\n _desired: 'qxa',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n qu: {\n _desired: 'qxc',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n qu: {\n _desired: 'qxh',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n qu: {\n _desired: 'qxl',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n qu: {\n _desired: 'qxn',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n qu: {\n _desired: 'qxo',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n qu: {\n _desired: 'qxp',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n qu: {\n _desired: 'qxr',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n qu: {\n _desired: 'qxt',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n qu: {\n _desired: 'qxu',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n qu: {\n _desired: 'qxw',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n sc: {\n _desired: 'sdc',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n sc: {\n _desired: 'sdn',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n sc: {\n _desired: 'sro',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n sq: {\n _desired: 'aae',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n sq: {\n _desired: 'aat',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n sq: {\n _desired: 'aln',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n syr: {\n _desired: 'aii',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n uz: {\n _desired: 'uzs',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n yi: {\n _desired: 'yih',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n zh: {\n _desired: 'cdo',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n zh: {\n _desired: 'cjy',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n zh: {\n _desired: 'cpx',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n zh: {\n _desired: 'czh',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n zh: {\n _desired: 'czo',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n zh: {\n _desired: 'gan',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n zh: {\n _desired: 'hak',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n zh: {\n _desired: 'hsn',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n zh: {\n _desired: 'lzh',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n zh: {\n _desired: 'mnp',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n zh: {\n _desired: 'nan',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n zh: {\n _desired: 'wuu',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n zh: {\n _desired: 'yue',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n '*': {\n _desired: '*',\n _distance: '80',\n },\n },\n {\n 'en-Latn': {\n _desired: 'am-Ethi',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n 'ru-Cyrl': {\n _desired: 'az-Latn',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n 'en-Latn': {\n _desired: 'bn-Beng',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n 'zh-Hans': {\n _desired: 'bo-Tibt',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n 'ru-Cyrl': {\n _desired: 'hy-Armn',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n 'en-Latn': {\n _desired: 'ka-Geor',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n 'en-Latn': {\n _desired: 'km-Khmr',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n 'en-Latn': {\n _desired: 'kn-Knda',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n 'en-Latn': {\n _desired: 'lo-Laoo',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n 'en-Latn': {\n _desired: 'ml-Mlym',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n 'en-Latn': {\n _desired: 'my-Mymr',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n 'en-Latn': {\n _desired: 'ne-Deva',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n 'en-Latn': {\n _desired: 'or-Orya',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n 'en-Latn': {\n _desired: 'pa-Guru',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n 'en-Latn': {\n _desired: 'ps-Arab',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n 'en-Latn': {\n _desired: 'sd-Arab',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n 'en-Latn': {\n _desired: 'si-Sinh',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n 'en-Latn': {\n _desired: 'ta-Taml',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n 'en-Latn': {\n _desired: 'te-Telu',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n 'en-Latn': {\n _desired: 'ti-Ethi',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n 'ru-Cyrl': {\n _desired: 'tk-Latn',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n 'en-Latn': {\n _desired: 'ur-Arab',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n 'ru-Cyrl': {\n _desired: 'uz-Latn',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n 'en-Latn': {\n _desired: 'yi-Hebr',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n 'sr-Cyrl': {\n _desired: 'sr-Latn',\n _distance: '5',\n },\n },\n {\n 'zh-Hans': {\n _desired: 'za-Latn',\n _distance: '10',\n _oneway: 'true',\n },\n },\n {\n 'zh-Hans': {\n _desired: 'zh-Hani',\n _distance: '20',\n _oneway: 'true',\n },\n },\n {\n 'zh-Hant': {\n _desired: 'zh-Hani',\n _distance: '20',\n _oneway: 'true',\n },\n },\n {\n 'ar-Arab': {\n _desired: 'ar-Latn',\n _distance: '20',\n _oneway: 'true',\n },\n },\n {\n 'bn-Beng': {\n _desired: 'bn-Latn',\n _distance: '20',\n _oneway: 'true',\n },\n },\n {\n 'gu-Gujr': {\n _desired: 'gu-Latn',\n _distance: '20',\n _oneway: 'true',\n },\n },\n {\n 'hi-Deva': {\n _desired: 'hi-Latn',\n _distance: '20',\n _oneway: 'true',\n },\n },\n {\n 'kn-Knda': {\n _desired: 'kn-Latn',\n _distance: '20',\n _oneway: 'true',\n },\n },\n {\n 'ml-Mlym': {\n _desired: 'ml-Latn',\n _distance: '20',\n _oneway: 'true',\n },\n },\n {\n 'mr-Deva': {\n _desired: 'mr-Latn',\n _distance: '20',\n _oneway: 'true',\n },\n },\n {\n 'ta-Taml': {\n _desired: 'ta-Latn',\n _distance: '20',\n _oneway: 'true',\n },\n },\n {\n 'te-Telu': {\n _desired: 'te-Latn',\n _distance: '20',\n _oneway: 'true',\n },\n },\n {\n 'zh-Hans': {\n _desired: 'zh-Latn',\n _distance: '20',\n _oneway: 'true',\n },\n },\n {\n 'ja-Jpan': {\n _desired: 'ja-Latn',\n _distance: '5',\n _oneway: 'true',\n },\n },\n {\n 'ja-Jpan': {\n _desired: 'ja-Hani',\n _distance: '5',\n _oneway: 'true',\n },\n },\n {\n 'ja-Jpan': {\n _desired: 'ja-Hira',\n _distance: '5',\n _oneway: 'true',\n },\n },\n {\n 'ja-Jpan': {\n _desired: 'ja-Kana',\n _distance: '5',\n _oneway: 'true',\n },\n },\n {\n 'ja-Jpan': {\n _desired: 'ja-Hrkt',\n _distance: '5',\n _oneway: 'true',\n },\n },\n {\n 'ja-Hrkt': {\n _desired: 'ja-Hira',\n _distance: '5',\n _oneway: 'true',\n },\n },\n {\n 'ja-Hrkt': {\n _desired: 'ja-Kana',\n _distance: '5',\n _oneway: 'true',\n },\n },\n {\n 'ko-Kore': {\n _desired: 'ko-Hani',\n _distance: '5',\n _oneway: 'true',\n },\n },\n {\n 'ko-Kore': {\n _desired: 'ko-Hang',\n _distance: '5',\n _oneway: 'true',\n },\n },\n {\n 'ko-Kore': {\n _desired: 'ko-Jamo',\n _distance: '5',\n _oneway: 'true',\n },\n },\n {\n 'ko-Hang': {\n _desired: 'ko-Jamo',\n _distance: '5',\n _oneway: 'true',\n },\n },\n {\n '*-*': {\n _desired: '*-*',\n _distance: '50',\n },\n },\n {\n 'ar-*-$maghreb': {\n _desired: 'ar-*-$maghreb',\n _distance: '4',\n },\n },\n {\n 'ar-*-$!maghreb': {\n _desired: 'ar-*-$!maghreb',\n _distance: '4',\n },\n },\n {\n 'ar-*-*': {\n _desired: 'ar-*-*',\n _distance: '5',\n },\n },\n {\n 'en-*-$enUS': {\n _desired: 'en-*-$enUS',\n _distance: '4',\n },\n },\n {\n 'en-*-GB': {\n _desired: 'en-*-$!enUS',\n _distance: '3',\n },\n },\n {\n 'en-*-$!enUS': {\n _desired: 'en-*-$!enUS',\n _distance: '4',\n },\n },\n {\n 'en-*-*': {\n _desired: 'en-*-*',\n _distance: '5',\n },\n },\n {\n 'es-*-$americas': {\n _desired: 'es-*-$americas',\n _distance: '4',\n },\n },\n {\n 'es-*-$!americas': {\n _desired: 'es-*-$!americas',\n _distance: '4',\n },\n },\n {\n 'es-*-*': {\n _desired: 'es-*-*',\n _distance: '5',\n },\n },\n {\n 'pt-*-$americas': {\n _desired: 'pt-*-$americas',\n _distance: '4',\n },\n },\n {\n 'pt-*-$!americas': {\n _desired: 'pt-*-$!americas',\n _distance: '4',\n },\n },\n {\n 'pt-*-*': {\n _desired: 'pt-*-*',\n _distance: '5',\n },\n },\n {\n 'zh-Hant-$cnsar': {\n _desired: 'zh-Hant-$cnsar',\n _distance: '4',\n },\n },\n {\n 'zh-Hant-$!cnsar': {\n _desired: 'zh-Hant-$!cnsar',\n _distance: '4',\n },\n },\n {\n 'zh-Hant-*': {\n _desired: 'zh-Hant-*',\n _distance: '5',\n },\n },\n {\n '*-*-*': {\n _desired: '*-*-*',\n _distance: '4',\n },\n },\n ],\n },\n },\n};\n","// This file is generated from regions-gen.ts\nexport var regions = {\n \"001\": [\n \"001\",\n \"001-status-grouping\",\n \"002\",\n \"005\",\n \"009\",\n \"011\",\n \"013\",\n \"014\",\n \"015\",\n \"017\",\n \"018\",\n \"019\",\n \"021\",\n \"029\",\n \"030\",\n \"034\",\n \"035\",\n \"039\",\n \"053\",\n \"054\",\n \"057\",\n \"061\",\n \"142\",\n \"143\",\n \"145\",\n \"150\",\n \"151\",\n \"154\",\n \"155\",\n \"AC\",\n \"AD\",\n \"AE\",\n \"AF\",\n \"AG\",\n \"AI\",\n \"AL\",\n \"AM\",\n \"AO\",\n \"AQ\",\n \"AR\",\n \"AS\",\n \"AT\",\n \"AU\",\n \"AW\",\n \"AX\",\n \"AZ\",\n \"BA\",\n \"BB\",\n \"BD\",\n \"BE\",\n \"BF\",\n \"BG\",\n \"BH\",\n \"BI\",\n \"BJ\",\n \"BL\",\n \"BM\",\n \"BN\",\n \"BO\",\n \"BQ\",\n \"BR\",\n \"BS\",\n \"BT\",\n \"BV\",\n \"BW\",\n \"BY\",\n \"BZ\",\n \"CA\",\n \"CC\",\n \"CD\",\n \"CF\",\n \"CG\",\n \"CH\",\n \"CI\",\n \"CK\",\n \"CL\",\n \"CM\",\n \"CN\",\n \"CO\",\n \"CP\",\n \"CQ\",\n \"CR\",\n \"CU\",\n \"CV\",\n \"CW\",\n \"CX\",\n \"CY\",\n \"CZ\",\n \"DE\",\n \"DG\",\n \"DJ\",\n \"DK\",\n \"DM\",\n \"DO\",\n \"DZ\",\n \"EA\",\n \"EC\",\n \"EE\",\n \"EG\",\n \"EH\",\n \"ER\",\n \"ES\",\n \"ET\",\n \"EU\",\n \"EZ\",\n \"FI\",\n \"FJ\",\n \"FK\",\n \"FM\",\n \"FO\",\n \"FR\",\n \"GA\",\n \"GB\",\n \"GD\",\n \"GE\",\n \"GF\",\n \"GG\",\n \"GH\",\n \"GI\",\n \"GL\",\n \"GM\",\n \"GN\",\n \"GP\",\n \"GQ\",\n \"GR\",\n \"GS\",\n \"GT\",\n \"GU\",\n \"GW\",\n \"GY\",\n \"HK\",\n \"HM\",\n \"HN\",\n \"HR\",\n \"HT\",\n \"HU\",\n \"IC\",\n \"ID\",\n \"IE\",\n \"IL\",\n \"IM\",\n \"IN\",\n \"IO\",\n \"IQ\",\n \"IR\",\n \"IS\",\n \"IT\",\n \"JE\",\n \"JM\",\n \"JO\",\n \"JP\",\n \"KE\",\n \"KG\",\n \"KH\",\n \"KI\",\n \"KM\",\n \"KN\",\n \"KP\",\n \"KR\",\n \"KW\",\n \"KY\",\n \"KZ\",\n \"LA\",\n \"LB\",\n \"LC\",\n \"LI\",\n \"LK\",\n \"LR\",\n \"LS\",\n \"LT\",\n \"LU\",\n \"LV\",\n \"LY\",\n \"MA\",\n \"MC\",\n \"MD\",\n \"ME\",\n \"MF\",\n \"MG\",\n \"MH\",\n \"MK\",\n \"ML\",\n \"MM\",\n \"MN\",\n \"MO\",\n \"MP\",\n \"MQ\",\n \"MR\",\n \"MS\",\n \"MT\",\n \"MU\",\n \"MV\",\n \"MW\",\n \"MX\",\n \"MY\",\n \"MZ\",\n \"NA\",\n \"NC\",\n \"NE\",\n \"NF\",\n \"NG\",\n \"NI\",\n \"NL\",\n \"NO\",\n \"NP\",\n \"NR\",\n \"NU\",\n \"NZ\",\n \"OM\",\n \"PA\",\n \"PE\",\n \"PF\",\n \"PG\",\n \"PH\",\n \"PK\",\n \"PL\",\n \"PM\",\n \"PN\",\n \"PR\",\n \"PS\",\n \"PT\",\n \"PW\",\n \"PY\",\n \"QA\",\n \"QO\",\n \"RE\",\n \"RO\",\n \"RS\",\n \"RU\",\n \"RW\",\n \"SA\",\n \"SB\",\n \"SC\",\n \"SD\",\n \"SE\",\n \"SG\",\n \"SH\",\n \"SI\",\n \"SJ\",\n \"SK\",\n \"SL\",\n \"SM\",\n \"SN\",\n \"SO\",\n \"SR\",\n \"SS\",\n \"ST\",\n \"SV\",\n \"SX\",\n \"SY\",\n \"SZ\",\n \"TA\",\n \"TC\",\n \"TD\",\n \"TF\",\n \"TG\",\n \"TH\",\n \"TJ\",\n \"TK\",\n \"TL\",\n \"TM\",\n \"TN\",\n \"TO\",\n \"TR\",\n \"TT\",\n \"TV\",\n \"TW\",\n \"TZ\",\n \"UA\",\n \"UG\",\n \"UM\",\n \"UN\",\n \"US\",\n \"UY\",\n \"UZ\",\n \"VA\",\n \"VC\",\n \"VE\",\n \"VG\",\n \"VI\",\n \"VN\",\n \"VU\",\n \"WF\",\n \"WS\",\n \"XK\",\n \"YE\",\n \"YT\",\n \"ZA\",\n \"ZM\",\n \"ZW\"\n ],\n \"002\": [\n \"002\",\n \"002-status-grouping\",\n \"011\",\n \"014\",\n \"015\",\n \"017\",\n \"018\",\n \"202\",\n \"AO\",\n \"BF\",\n \"BI\",\n \"BJ\",\n \"BW\",\n \"CD\",\n \"CF\",\n \"CG\",\n \"CI\",\n \"CM\",\n \"CV\",\n \"DJ\",\n \"DZ\",\n \"EA\",\n \"EG\",\n \"EH\",\n \"ER\",\n \"ET\",\n \"GA\",\n \"GH\",\n \"GM\",\n \"GN\",\n \"GQ\",\n \"GW\",\n \"IC\",\n \"IO\",\n \"KE\",\n \"KM\",\n \"LR\",\n \"LS\",\n \"LY\",\n \"MA\",\n \"MG\",\n \"ML\",\n \"MR\",\n \"MU\",\n \"MW\",\n \"MZ\",\n \"NA\",\n \"NE\",\n \"NG\",\n \"RE\",\n \"RW\",\n \"SC\",\n \"SD\",\n \"SH\",\n \"SL\",\n \"SN\",\n \"SO\",\n \"SS\",\n \"ST\",\n \"SZ\",\n \"TD\",\n \"TF\",\n \"TG\",\n \"TN\",\n \"TZ\",\n \"UG\",\n \"YT\",\n \"ZA\",\n \"ZM\",\n \"ZW\"\n ],\n \"003\": [\n \"003\",\n \"013\",\n \"021\",\n \"029\",\n \"AG\",\n \"AI\",\n \"AW\",\n \"BB\",\n \"BL\",\n \"BM\",\n \"BQ\",\n \"BS\",\n \"BZ\",\n \"CA\",\n \"CR\",\n \"CU\",\n \"CW\",\n \"DM\",\n \"DO\",\n \"GD\",\n \"GL\",\n \"GP\",\n \"GT\",\n \"HN\",\n \"HT\",\n \"JM\",\n \"KN\",\n \"KY\",\n \"LC\",\n \"MF\",\n \"MQ\",\n \"MS\",\n \"MX\",\n \"NI\",\n \"PA\",\n \"PM\",\n \"PR\",\n \"SV\",\n \"SX\",\n \"TC\",\n \"TT\",\n \"US\",\n \"VC\",\n \"VG\",\n \"VI\"\n ],\n \"005\": [\n \"005\",\n \"AR\",\n \"BO\",\n \"BR\",\n \"BV\",\n \"CL\",\n \"CO\",\n \"EC\",\n \"FK\",\n \"GF\",\n \"GS\",\n \"GY\",\n \"PE\",\n \"PY\",\n \"SR\",\n \"UY\",\n \"VE\"\n ],\n \"009\": [\n \"009\",\n \"053\",\n \"054\",\n \"057\",\n \"061\",\n \"AC\",\n \"AQ\",\n \"AS\",\n \"AU\",\n \"CC\",\n \"CK\",\n \"CP\",\n \"CX\",\n \"DG\",\n \"FJ\",\n \"FM\",\n \"GU\",\n \"HM\",\n \"KI\",\n \"MH\",\n \"MP\",\n \"NC\",\n \"NF\",\n \"NR\",\n \"NU\",\n \"NZ\",\n \"PF\",\n \"PG\",\n \"PN\",\n \"PW\",\n \"QO\",\n \"SB\",\n \"TA\",\n \"TK\",\n \"TO\",\n \"TV\",\n \"UM\",\n \"VU\",\n \"WF\",\n \"WS\"\n ],\n \"011\": [\n \"011\",\n \"BF\",\n \"BJ\",\n \"CI\",\n \"CV\",\n \"GH\",\n \"GM\",\n \"GN\",\n \"GW\",\n \"LR\",\n \"ML\",\n \"MR\",\n \"NE\",\n \"NG\",\n \"SH\",\n \"SL\",\n \"SN\",\n \"TG\"\n ],\n \"013\": [\n \"013\",\n \"BZ\",\n \"CR\",\n \"GT\",\n \"HN\",\n \"MX\",\n \"NI\",\n \"PA\",\n \"SV\"\n ],\n \"014\": [\n \"014\",\n \"BI\",\n \"DJ\",\n \"ER\",\n \"ET\",\n \"IO\",\n \"KE\",\n \"KM\",\n \"MG\",\n \"MU\",\n \"MW\",\n \"MZ\",\n \"RE\",\n \"RW\",\n \"SC\",\n \"SO\",\n \"SS\",\n \"TF\",\n \"TZ\",\n \"UG\",\n \"YT\",\n \"ZM\",\n \"ZW\"\n ],\n \"015\": [\n \"015\",\n \"DZ\",\n \"EA\",\n \"EG\",\n \"EH\",\n \"IC\",\n \"LY\",\n \"MA\",\n \"SD\",\n \"TN\"\n ],\n \"017\": [\n \"017\",\n \"AO\",\n \"CD\",\n \"CF\",\n \"CG\",\n \"CM\",\n \"GA\",\n \"GQ\",\n \"ST\",\n \"TD\"\n ],\n \"018\": [\n \"018\",\n \"BW\",\n \"LS\",\n \"NA\",\n \"SZ\",\n \"ZA\"\n ],\n \"019\": [\n \"003\",\n \"005\",\n \"013\",\n \"019\",\n \"019-status-grouping\",\n \"021\",\n \"029\",\n \"419\",\n \"AG\",\n \"AI\",\n \"AR\",\n \"AW\",\n \"BB\",\n \"BL\",\n \"BM\",\n \"BO\",\n \"BQ\",\n \"BR\",\n \"BS\",\n \"BV\",\n \"BZ\",\n \"CA\",\n \"CL\",\n \"CO\",\n \"CR\",\n \"CU\",\n \"CW\",\n \"DM\",\n \"DO\",\n \"EC\",\n \"FK\",\n \"GD\",\n \"GF\",\n \"GL\",\n \"GP\",\n \"GS\",\n \"GT\",\n \"GY\",\n \"HN\",\n \"HT\",\n \"JM\",\n \"KN\",\n \"KY\",\n \"LC\",\n \"MF\",\n \"MQ\",\n \"MS\",\n \"MX\",\n \"NI\",\n \"PA\",\n \"PE\",\n \"PM\",\n \"PR\",\n \"PY\",\n \"SR\",\n \"SV\",\n \"SX\",\n \"TC\",\n \"TT\",\n \"US\",\n \"UY\",\n \"VC\",\n \"VE\",\n \"VG\",\n \"VI\"\n ],\n \"021\": [\n \"021\",\n \"BM\",\n \"CA\",\n \"GL\",\n \"PM\",\n \"US\"\n ],\n \"029\": [\n \"029\",\n \"AG\",\n \"AI\",\n \"AW\",\n \"BB\",\n \"BL\",\n \"BQ\",\n \"BS\",\n \"CU\",\n \"CW\",\n \"DM\",\n \"DO\",\n \"GD\",\n \"GP\",\n \"HT\",\n \"JM\",\n \"KN\",\n \"KY\",\n \"LC\",\n \"MF\",\n \"MQ\",\n \"MS\",\n \"PR\",\n \"SX\",\n \"TC\",\n \"TT\",\n \"VC\",\n \"VG\",\n \"VI\"\n ],\n \"030\": [\n \"030\",\n \"CN\",\n \"HK\",\n \"JP\",\n \"KP\",\n \"KR\",\n \"MN\",\n \"MO\",\n \"TW\"\n ],\n \"034\": [\n \"034\",\n \"AF\",\n \"BD\",\n \"BT\",\n \"IN\",\n \"IR\",\n \"LK\",\n \"MV\",\n \"NP\",\n \"PK\"\n ],\n \"035\": [\n \"035\",\n \"BN\",\n \"ID\",\n \"KH\",\n \"LA\",\n \"MM\",\n \"MY\",\n \"PH\",\n \"SG\",\n \"TH\",\n \"TL\",\n \"VN\"\n ],\n \"039\": [\n \"039\",\n \"AD\",\n \"AL\",\n \"BA\",\n \"ES\",\n \"GI\",\n \"GR\",\n \"HR\",\n \"IT\",\n \"ME\",\n \"MK\",\n \"MT\",\n \"PT\",\n \"RS\",\n \"SI\",\n \"SM\",\n \"VA\",\n \"XK\"\n ],\n \"053\": [\n \"053\",\n \"AU\",\n \"CC\",\n \"CX\",\n \"HM\",\n \"NF\",\n \"NZ\"\n ],\n \"054\": [\n \"054\",\n \"FJ\",\n \"NC\",\n \"PG\",\n \"SB\",\n \"VU\"\n ],\n \"057\": [\n \"057\",\n \"FM\",\n \"GU\",\n \"KI\",\n \"MH\",\n \"MP\",\n \"NR\",\n \"PW\",\n \"UM\"\n ],\n \"061\": [\n \"061\",\n \"AS\",\n \"CK\",\n \"NU\",\n \"PF\",\n \"PN\",\n \"TK\",\n \"TO\",\n \"TV\",\n \"WF\",\n \"WS\"\n ],\n \"142\": [\n \"030\",\n \"034\",\n \"035\",\n \"142\",\n \"143\",\n \"145\",\n \"AE\",\n \"AF\",\n \"AM\",\n \"AZ\",\n \"BD\",\n \"BH\",\n \"BN\",\n \"BT\",\n \"CN\",\n \"CY\",\n \"GE\",\n \"HK\",\n \"ID\",\n \"IL\",\n \"IN\",\n \"IQ\",\n \"IR\",\n \"JO\",\n \"JP\",\n \"KG\",\n \"KH\",\n \"KP\",\n \"KR\",\n \"KW\",\n \"KZ\",\n \"LA\",\n \"LB\",\n \"LK\",\n \"MM\",\n \"MN\",\n \"MO\",\n \"MV\",\n \"MY\",\n \"NP\",\n \"OM\",\n \"PH\",\n \"PK\",\n \"PS\",\n \"QA\",\n \"SA\",\n \"SG\",\n \"SY\",\n \"TH\",\n \"TJ\",\n \"TL\",\n \"TM\",\n \"TR\",\n \"TW\",\n \"UZ\",\n \"VN\",\n \"YE\"\n ],\n \"143\": [\n \"143\",\n \"KG\",\n \"KZ\",\n \"TJ\",\n \"TM\",\n \"UZ\"\n ],\n \"145\": [\n \"145\",\n \"AE\",\n \"AM\",\n \"AZ\",\n \"BH\",\n \"CY\",\n \"GE\",\n \"IL\",\n \"IQ\",\n \"JO\",\n \"KW\",\n \"LB\",\n \"OM\",\n \"PS\",\n \"QA\",\n \"SA\",\n \"SY\",\n \"TR\",\n \"YE\"\n ],\n \"150\": [\n \"039\",\n \"150\",\n \"151\",\n \"154\",\n \"155\",\n \"AD\",\n \"AL\",\n \"AT\",\n \"AX\",\n \"BA\",\n \"BE\",\n \"BG\",\n \"BY\",\n \"CH\",\n \"CQ\",\n \"CZ\",\n \"DE\",\n \"DK\",\n \"EE\",\n \"ES\",\n \"FI\",\n \"FO\",\n \"FR\",\n \"GB\",\n \"GG\",\n \"GI\",\n \"GR\",\n \"HR\",\n \"HU\",\n \"IE\",\n \"IM\",\n \"IS\",\n \"IT\",\n \"JE\",\n \"LI\",\n \"LT\",\n \"LU\",\n \"LV\",\n \"MC\",\n \"MD\",\n \"ME\",\n \"MK\",\n \"MT\",\n \"NL\",\n \"NO\",\n \"PL\",\n \"PT\",\n \"RO\",\n \"RS\",\n \"RU\",\n \"SE\",\n \"SI\",\n \"SJ\",\n \"SK\",\n \"SM\",\n \"UA\",\n \"VA\",\n \"XK\"\n ],\n \"151\": [\n \"151\",\n \"BG\",\n \"BY\",\n \"CZ\",\n \"HU\",\n \"MD\",\n \"PL\",\n \"RO\",\n \"RU\",\n \"SK\",\n \"UA\"\n ],\n \"154\": [\n \"154\",\n \"AX\",\n \"CQ\",\n \"DK\",\n \"EE\",\n \"FI\",\n \"FO\",\n \"GB\",\n \"GG\",\n \"IE\",\n \"IM\",\n \"IS\",\n \"JE\",\n \"LT\",\n \"LV\",\n \"NO\",\n \"SE\",\n \"SJ\"\n ],\n \"155\": [\n \"155\",\n \"AT\",\n \"BE\",\n \"CH\",\n \"DE\",\n \"FR\",\n \"LI\",\n \"LU\",\n \"MC\",\n \"NL\"\n ],\n \"202\": [\n \"011\",\n \"014\",\n \"017\",\n \"018\",\n \"202\",\n \"AO\",\n \"BF\",\n \"BI\",\n \"BJ\",\n \"BW\",\n \"CD\",\n \"CF\",\n \"CG\",\n \"CI\",\n \"CM\",\n \"CV\",\n \"DJ\",\n \"ER\",\n \"ET\",\n \"GA\",\n \"GH\",\n \"GM\",\n \"GN\",\n \"GQ\",\n \"GW\",\n \"IO\",\n \"KE\",\n \"KM\",\n \"LR\",\n \"LS\",\n \"MG\",\n \"ML\",\n \"MR\",\n \"MU\",\n \"MW\",\n \"MZ\",\n \"NA\",\n \"NE\",\n \"NG\",\n \"RE\",\n \"RW\",\n \"SC\",\n \"SH\",\n \"SL\",\n \"SN\",\n \"SO\",\n \"SS\",\n \"ST\",\n \"SZ\",\n \"TD\",\n \"TF\",\n \"TG\",\n \"TZ\",\n \"UG\",\n \"YT\",\n \"ZA\",\n \"ZM\",\n \"ZW\"\n ],\n \"419\": [\n \"005\",\n \"013\",\n \"029\",\n \"419\",\n \"AG\",\n \"AI\",\n \"AR\",\n \"AW\",\n \"BB\",\n \"BL\",\n \"BO\",\n \"BQ\",\n \"BR\",\n \"BS\",\n \"BV\",\n \"BZ\",\n \"CL\",\n \"CO\",\n \"CR\",\n \"CU\",\n \"CW\",\n \"DM\",\n \"DO\",\n \"EC\",\n \"FK\",\n \"GD\",\n \"GF\",\n \"GP\",\n \"GS\",\n \"GT\",\n \"GY\",\n \"HN\",\n \"HT\",\n \"JM\",\n \"KN\",\n \"KY\",\n \"LC\",\n \"MF\",\n \"MQ\",\n \"MS\",\n \"MX\",\n \"NI\",\n \"PA\",\n \"PE\",\n \"PR\",\n \"PY\",\n \"SR\",\n \"SV\",\n \"SX\",\n \"TC\",\n \"TT\",\n \"UY\",\n \"VC\",\n \"VE\",\n \"VG\",\n \"VI\"\n ],\n \"EU\": [\n \"AT\",\n \"BE\",\n \"BG\",\n \"CY\",\n \"CZ\",\n \"DE\",\n \"DK\",\n \"EE\",\n \"ES\",\n \"EU\",\n \"FI\",\n \"FR\",\n \"GR\",\n \"HR\",\n \"HU\",\n \"IE\",\n \"IT\",\n \"LT\",\n \"LU\",\n \"LV\",\n \"MT\",\n \"NL\",\n \"PL\",\n \"PT\",\n \"RO\",\n \"SE\",\n \"SI\",\n \"SK\"\n ],\n \"EZ\": [\n \"AT\",\n \"BE\",\n \"CY\",\n \"DE\",\n \"EE\",\n \"ES\",\n \"EZ\",\n \"FI\",\n \"FR\",\n \"GR\",\n \"IE\",\n \"IT\",\n \"LT\",\n \"LU\",\n \"LV\",\n \"MT\",\n \"NL\",\n \"PT\",\n \"SI\",\n \"SK\"\n ],\n \"QO\": [\n \"AC\",\n \"AQ\",\n \"CP\",\n \"DG\",\n \"QO\",\n \"TA\"\n ],\n \"UN\": [\n \"AD\",\n \"AE\",\n \"AF\",\n \"AG\",\n \"AL\",\n \"AM\",\n \"AO\",\n \"AR\",\n \"AT\",\n \"AU\",\n \"AZ\",\n \"BA\",\n \"BB\",\n \"BD\",\n \"BE\",\n \"BF\",\n \"BG\",\n \"BH\",\n \"BI\",\n \"BJ\",\n \"BN\",\n \"BO\",\n \"BR\",\n \"BS\",\n \"BT\",\n \"BW\",\n \"BY\",\n \"BZ\",\n \"CA\",\n \"CD\",\n \"CF\",\n \"CG\",\n \"CH\",\n \"CI\",\n \"CL\",\n \"CM\",\n \"CN\",\n \"CO\",\n \"CR\",\n \"CU\",\n \"CV\",\n \"CY\",\n \"CZ\",\n \"DE\",\n \"DJ\",\n \"DK\",\n \"DM\",\n \"DO\",\n \"DZ\",\n \"EC\",\n \"EE\",\n \"EG\",\n \"ER\",\n \"ES\",\n \"ET\",\n \"FI\",\n \"FJ\",\n \"FM\",\n \"FR\",\n \"GA\",\n \"GB\",\n \"GD\",\n \"GE\",\n \"GH\",\n \"GM\",\n \"GN\",\n \"GQ\",\n \"GR\",\n \"GT\",\n \"GW\",\n \"GY\",\n \"HN\",\n \"HR\",\n \"HT\",\n \"HU\",\n \"ID\",\n \"IE\",\n \"IL\",\n \"IN\",\n \"IQ\",\n \"IR\",\n \"IS\",\n \"IT\",\n \"JM\",\n \"JO\",\n \"JP\",\n \"KE\",\n \"KG\",\n \"KH\",\n \"KI\",\n \"KM\",\n \"KN\",\n \"KP\",\n \"KR\",\n \"KW\",\n \"KZ\",\n \"LA\",\n \"LB\",\n \"LC\",\n \"LI\",\n \"LK\",\n \"LR\",\n \"LS\",\n \"LT\",\n \"LU\",\n \"LV\",\n \"LY\",\n \"MA\",\n \"MC\",\n \"MD\",\n \"ME\",\n \"MG\",\n \"MH\",\n \"MK\",\n \"ML\",\n \"MM\",\n \"MN\",\n \"MR\",\n \"MT\",\n \"MU\",\n \"MV\",\n \"MW\",\n \"MX\",\n \"MY\",\n \"MZ\",\n \"NA\",\n \"NE\",\n \"NG\",\n \"NI\",\n \"NL\",\n \"NO\",\n \"NP\",\n \"NR\",\n \"NZ\",\n \"OM\",\n \"PA\",\n \"PE\",\n \"PG\",\n \"PH\",\n \"PK\",\n \"PL\",\n \"PT\",\n \"PW\",\n \"PY\",\n \"QA\",\n \"RO\",\n \"RS\",\n \"RU\",\n \"RW\",\n \"SA\",\n \"SB\",\n \"SC\",\n \"SD\",\n \"SE\",\n \"SG\",\n \"SI\",\n \"SK\",\n \"SL\",\n \"SM\",\n \"SN\",\n \"SO\",\n \"SR\",\n \"SS\",\n \"ST\",\n \"SV\",\n \"SY\",\n \"SZ\",\n \"TD\",\n \"TG\",\n \"TH\",\n \"TJ\",\n \"TL\",\n \"TM\",\n \"TN\",\n \"TO\",\n \"TR\",\n \"TT\",\n \"TV\",\n \"TZ\",\n \"UA\",\n \"UG\",\n \"UN\",\n \"US\",\n \"UY\",\n \"UZ\",\n \"VC\",\n \"VE\",\n \"VN\",\n \"VU\",\n \"WS\",\n \"YE\",\n \"ZA\",\n \"ZM\",\n \"ZW\"\n ]\n};\n","import { __spreadArray } from \"tslib\";\nimport { data as jsonData } from './languageMatching';\nimport { regions } from './regions.generated';\nexport var UNICODE_EXTENSION_SEQUENCE_REGEX = /-u(?:-[0-9a-z]{2,8})+/gi;\nexport function invariant(condition, message, Err) {\n if (Err === void 0) { Err = Error; }\n if (!condition) {\n throw new Err(message);\n }\n}\n// This is effectively 2 languages in 2 different regions in the same cluster\nvar DEFAULT_MATCHING_THRESHOLD = 838;\nvar PROCESSED_DATA;\nfunction processData() {\n var _a, _b;\n if (!PROCESSED_DATA) {\n var paradigmLocales = (_b = (_a = jsonData.supplemental.languageMatching['written-new'][0]) === null || _a === void 0 ? void 0 : _a.paradigmLocales) === null || _b === void 0 ? void 0 : _b._locales.split(' ');\n var matchVariables = jsonData.supplemental.languageMatching['written-new'].slice(1, 5);\n var data = jsonData.supplemental.languageMatching['written-new'].slice(5);\n var matches = data.map(function (d) {\n var key = Object.keys(d)[0];\n var value = d[key];\n return {\n supported: key,\n desired: value._desired,\n distance: +value._distance,\n oneway: value.oneway === 'true' ? true : false,\n };\n }, {});\n PROCESSED_DATA = {\n matches: matches,\n matchVariables: matchVariables.reduce(function (all, d) {\n var key = Object.keys(d)[0];\n var value = d[key];\n all[key.slice(1)] = value._value.split('+');\n return all;\n }, {}),\n paradigmLocales: __spreadArray(__spreadArray([], paradigmLocales, true), paradigmLocales.map(function (l) {\n return new Intl.Locale(l.replace(/_/g, '-')).maximize().toString();\n }), true),\n };\n }\n return PROCESSED_DATA;\n}\nfunction isMatched(locale, languageMatchInfoLocale, matchVariables) {\n var _a = languageMatchInfoLocale.split('-'), language = _a[0], script = _a[1], region = _a[2];\n var matches = true;\n if (region && region[0] === '$') {\n var shouldInclude = region[1] !== '!';\n var matchRegions = shouldInclude\n ? matchVariables[region.slice(1)]\n : matchVariables[region.slice(2)];\n var expandedMatchedRegions = matchRegions\n .map(function (r) { return regions[r] || [r]; })\n .reduce(function (all, list) { return __spreadArray(__spreadArray([], all, true), list, true); }, []);\n matches && (matches = !(expandedMatchedRegions.indexOf(locale.region || '') > -1 !=\n shouldInclude));\n }\n else {\n matches && (matches = locale.region\n ? region === '*' || region === locale.region\n : true);\n }\n matches && (matches = locale.script ? script === '*' || script === locale.script : true);\n matches && (matches = locale.language\n ? language === '*' || language === locale.language\n : true);\n return matches;\n}\nfunction serializeLSR(lsr) {\n return [lsr.language, lsr.script, lsr.region].filter(Boolean).join('-');\n}\nfunction findMatchingDistanceForLSR(desired, supported, data) {\n for (var _i = 0, _a = data.matches; _i < _a.length; _i++) {\n var d = _a[_i];\n var matches = isMatched(desired, d.desired, data.matchVariables) &&\n isMatched(supported, d.supported, data.matchVariables);\n if (!d.oneway && !matches) {\n matches =\n isMatched(desired, d.supported, data.matchVariables) &&\n isMatched(supported, d.desired, data.matchVariables);\n }\n if (matches) {\n var distance = d.distance * 10;\n if (data.paradigmLocales.indexOf(serializeLSR(desired)) > -1 !=\n data.paradigmLocales.indexOf(serializeLSR(supported)) > -1) {\n return distance - 1;\n }\n return distance;\n }\n }\n throw new Error('No matching distance found');\n}\nexport function findMatchingDistance(desired, supported) {\n var desiredLocale = new Intl.Locale(desired).maximize();\n var supportedLocale = new Intl.Locale(supported).maximize();\n var desiredLSR = {\n language: desiredLocale.language,\n script: desiredLocale.script || '',\n region: desiredLocale.region || '',\n };\n var supportedLSR = {\n language: supportedLocale.language,\n script: supportedLocale.script || '',\n region: supportedLocale.region || '',\n };\n var matchingDistance = 0;\n var data = processData();\n if (desiredLSR.language !== supportedLSR.language) {\n matchingDistance += findMatchingDistanceForLSR({\n language: desiredLocale.language,\n script: '',\n region: '',\n }, {\n language: supportedLocale.language,\n script: '',\n region: '',\n }, data);\n }\n if (desiredLSR.script !== supportedLSR.script) {\n matchingDistance += findMatchingDistanceForLSR({\n language: desiredLocale.language,\n script: desiredLSR.script,\n region: '',\n }, {\n language: supportedLocale.language,\n script: supportedLSR.script,\n region: '',\n }, data);\n }\n if (desiredLSR.region !== supportedLSR.region) {\n matchingDistance += findMatchingDistanceForLSR(desiredLSR, supportedLSR, data);\n }\n return matchingDistance;\n}\nexport function findBestMatch(requestedLocales, supportedLocales, threshold) {\n if (threshold === void 0) { threshold = DEFAULT_MATCHING_THRESHOLD; }\n var lowestDistance = Infinity;\n var result = {\n matchedDesiredLocale: '',\n distances: {},\n };\n requestedLocales.forEach(function (desired, i) {\n if (!result.distances[desired]) {\n result.distances[desired] = {};\n }\n supportedLocales.forEach(function (supported) {\n // Add some weight to the distance based on the order of the supported locales\n // Add penalty for the order of the requested locales, which currently is 0 since ECMA-402\n // doesn't really have room for weighted locales like `en; q=0.1`\n var distance = findMatchingDistance(desired, supported) + 0 + i * 40;\n result.distances[desired][supported] = distance;\n if (distance < lowestDistance) {\n lowestDistance = distance;\n result.matchedDesiredLocale = desired;\n result.matchedSupportedLocale = supported;\n }\n });\n });\n if (lowestDistance >= threshold) {\n result.matchedDesiredLocale = undefined;\n result.matchedSupportedLocale = undefined;\n }\n return result;\n}\n","import { UNICODE_EXTENSION_SEQUENCE_REGEX, findBestMatch } from './utils';\n/**\n * https://tc39.es/ecma402/#sec-bestfitmatcher\n * @param availableLocales\n * @param requestedLocales\n * @param getDefaultLocale\n */\nexport function BestFitMatcher(availableLocales, requestedLocales, getDefaultLocale) {\n var foundLocale;\n var extension;\n var noExtensionLocales = [];\n var noExtensionLocaleMap = requestedLocales.reduce(function (all, l) {\n var noExtensionLocale = l.replace(UNICODE_EXTENSION_SEQUENCE_REGEX, '');\n noExtensionLocales.push(noExtensionLocale);\n all[noExtensionLocale] = l;\n return all;\n }, {});\n var result = findBestMatch(noExtensionLocales, availableLocales);\n if (result.matchedSupportedLocale && result.matchedDesiredLocale) {\n foundLocale = result.matchedSupportedLocale;\n extension =\n noExtensionLocaleMap[result.matchedDesiredLocale].slice(result.matchedDesiredLocale.length) || undefined;\n }\n if (!foundLocale) {\n return { locale: getDefaultLocale() };\n }\n return {\n locale: foundLocale,\n extension: extension,\n };\n}\n","export function CanonicalizeUnicodeLocaleId(locale) {\n return Intl.getCanonicalLocales(locale)[0];\n}\n","/**\n * https://tc39.es/ecma402/#sec-bestavailablelocale\n * @param availableLocales\n * @param locale\n */\nexport function BestAvailableLocale(availableLocales, locale) {\n var candidate = locale;\n while (true) {\n if (availableLocales.indexOf(candidate) > -1) {\n return candidate;\n }\n var pos = candidate.lastIndexOf('-');\n if (!~pos) {\n return undefined;\n }\n if (pos >= 2 && candidate[pos - 2] === '-') {\n pos -= 2;\n }\n candidate = candidate.slice(0, pos);\n }\n}\n","import { BestFitMatcher } from './BestFitMatcher';\nimport { CanonicalizeUValue } from './CanonicalizeUValue';\nimport { InsertUnicodeExtensionAndCanonicalize } from './InsertUnicodeExtensionAndCanonicalize';\nimport { LookupMatcher } from './LookupMatcher';\nimport { UnicodeExtensionComponents } from './UnicodeExtensionComponents';\nimport { invariant } from './utils';\n/**\n * https://tc39.es/ecma402/#sec-resolvelocale\n */\nexport function ResolveLocale(availableLocales, requestedLocales, options, relevantExtensionKeys, localeData, getDefaultLocale) {\n var _a;\n var matcher = options.localeMatcher;\n var r;\n if (matcher === 'lookup') {\n r = LookupMatcher(Array.from(availableLocales), requestedLocales, getDefaultLocale);\n }\n else {\n r = BestFitMatcher(Array.from(availableLocales), requestedLocales, getDefaultLocale);\n }\n if (r == null) {\n r = {\n locale: getDefaultLocale(),\n extension: '',\n };\n }\n var foundLocale = r.locale;\n var foundLocaleData = localeData[foundLocale];\n // TODO: We can't really guarantee that the locale data is available\n // invariant(\n // foundLocaleData !== undefined,\n // `Missing locale data for ${foundLocale}`\n // )\n var result = { locale: 'en', dataLocale: foundLocale };\n var components;\n var keywords;\n if (r.extension) {\n components = UnicodeExtensionComponents(r.extension);\n keywords = components.keywords;\n }\n else {\n keywords = [];\n }\n var supportedKeywords = [];\n var _loop_1 = function (key) {\n // TODO: Shouldn't default to empty array, see TODO above\n var keyLocaleData = (_a = foundLocaleData === null || foundLocaleData === void 0 ? void 0 : foundLocaleData[key]) !== null && _a !== void 0 ? _a : [];\n invariant(Array.isArray(keyLocaleData), \"keyLocaleData for \".concat(key, \" must be an array\"));\n var value = keyLocaleData[0];\n invariant(value === undefined || typeof value === 'string', \"value must be a string or undefined\");\n var supportedKeyword = void 0;\n var entry = keywords.find(function (k) { return k.key === key; });\n if (entry) {\n var requestedValue = entry.value;\n if (requestedValue !== '') {\n if (keyLocaleData.indexOf(requestedValue) > -1) {\n value = requestedValue;\n supportedKeyword = {\n key: key,\n value: value,\n };\n }\n }\n else if (keyLocaleData.indexOf('true') > -1) {\n value = 'true';\n supportedKeyword = {\n key: key,\n value: value,\n };\n }\n }\n var optionsValue = options[key];\n invariant(optionsValue == null || typeof optionsValue === 'string', \"optionsValue must be a string or undefined\");\n if (typeof optionsValue === 'string') {\n var ukey = key.toLowerCase();\n optionsValue = CanonicalizeUValue(ukey, optionsValue);\n if (optionsValue === '') {\n optionsValue = 'true';\n }\n }\n if (optionsValue !== value && keyLocaleData.indexOf(optionsValue) > -1) {\n value = optionsValue;\n supportedKeyword = undefined;\n }\n if (supportedKeyword) {\n supportedKeywords.push(supportedKeyword);\n }\n result[key] = value;\n };\n for (var _i = 0, relevantExtensionKeys_1 = relevantExtensionKeys; _i < relevantExtensionKeys_1.length; _i++) {\n var key = relevantExtensionKeys_1[_i];\n _loop_1(key);\n }\n var supportedAttributes = [];\n if (supportedKeywords.length > 0) {\n supportedAttributes = [];\n foundLocale = InsertUnicodeExtensionAndCanonicalize(foundLocale, supportedAttributes, supportedKeywords);\n }\n result.locale = foundLocale;\n return result;\n}\n","import { BestAvailableLocale } from './BestAvailableLocale';\nimport { UNICODE_EXTENSION_SEQUENCE_REGEX } from './utils';\n/**\n * https://tc39.es/ecma402/#sec-lookupmatcher\n * @param availableLocales\n * @param requestedLocales\n * @param getDefaultLocale\n */\nexport function LookupMatcher(availableLocales, requestedLocales, getDefaultLocale) {\n var result = { locale: '' };\n for (var _i = 0, requestedLocales_1 = requestedLocales; _i < requestedLocales_1.length; _i++) {\n var locale = requestedLocales_1[_i];\n var noExtensionLocale = locale.replace(UNICODE_EXTENSION_SEQUENCE_REGEX, '');\n var availableLocale = BestAvailableLocale(availableLocales, noExtensionLocale);\n if (availableLocale) {\n result.locale = availableLocale;\n if (locale !== noExtensionLocale) {\n result.extension = locale.slice(noExtensionLocale.length, locale.length);\n }\n return result;\n }\n }\n result.locale = getDefaultLocale();\n return result;\n}\n","import { invariant } from './utils';\nexport function UnicodeExtensionComponents(extension) {\n invariant(extension === extension.toLowerCase(), 'Expected extension to be lowercase');\n invariant(extension.slice(0, 3) === '-u-', 'Expected extension to be a Unicode locale extension');\n var attributes = [];\n var keywords = [];\n var keyword;\n var size = extension.length;\n var k = 3;\n while (k < size) {\n var e = extension.indexOf('-', k);\n var len = void 0;\n if (e === -1) {\n len = size - k;\n }\n else {\n len = e - k;\n }\n var subtag = extension.slice(k, k + len);\n invariant(len >= 2, 'Expected a subtag to have at least 2 characters');\n if (keyword === undefined && len != 2) {\n if (attributes.indexOf(subtag) === -1) {\n attributes.push(subtag);\n }\n }\n else if (len === 2) {\n keyword = { key: subtag, value: '' };\n if (keywords.find(function (k) { return k.key === (keyword === null || keyword === void 0 ? void 0 : keyword.key); }) === undefined) {\n keywords.push(keyword);\n }\n }\n else if ((keyword === null || keyword === void 0 ? void 0 : keyword.value) === '') {\n keyword.value = subtag;\n }\n else {\n invariant(keyword !== undefined, 'Expected keyword to be defined');\n keyword.value += '-' + subtag;\n }\n k += len + 1;\n }\n return { attributes: attributes, keywords: keywords };\n}\n","import { invariant } from './utils';\nexport function CanonicalizeUValue(ukey, uvalue) {\n // TODO: Implement algorithm for CanonicalizeUValue per https://tc39.es/ecma402/#sec-canonicalizeuvalue\n var lowerValue = uvalue.toLowerCase();\n invariant(ukey !== undefined, \"ukey must be defined\");\n var canonicalized = lowerValue;\n return canonicalized;\n}\n","import { CanonicalizeUnicodeLocaleId } from './CanonicalizeUnicodeLocaleId';\nimport { invariant } from './utils';\nexport function InsertUnicodeExtensionAndCanonicalize(locale, attributes, keywords) {\n invariant(locale.indexOf('-u-') === -1, 'Expected locale to not have a Unicode locale extension');\n var extension = '-u';\n for (var _i = 0, attributes_1 = attributes; _i < attributes_1.length; _i++) {\n var attr = attributes_1[_i];\n extension += \"-\".concat(attr);\n }\n for (var _a = 0, keywords_1 = keywords; _a < keywords_1.length; _a++) {\n var kw = keywords_1[_a];\n var key = kw.key, value = kw.value;\n extension += \"-\".concat(key);\n if (value !== '') {\n extension += \"-\".concat(value);\n }\n }\n if (extension === '-u') {\n return CanonicalizeUnicodeLocaleId(locale);\n }\n var privateIndex = locale.indexOf('-x-');\n var newLocale;\n if (privateIndex === -1) {\n newLocale = locale + extension;\n }\n else {\n var preExtension = locale.slice(0, privateIndex);\n var postExtension = locale.slice(privateIndex);\n newLocale = preExtension + extension + postExtension;\n }\n return CanonicalizeUnicodeLocaleId(newLocale);\n}\n","import { BestAvailableLocale } from './BestAvailableLocale';\nimport { UNICODE_EXTENSION_SEQUENCE_REGEX } from './utils';\n/**\n * https://tc39.es/ecma402/#sec-lookupsupportedlocales\n * @param availableLocales\n * @param requestedLocales\n */\nexport function LookupSupportedLocales(availableLocales, requestedLocales) {\n var subset = [];\n for (var _i = 0, requestedLocales_1 = requestedLocales; _i < requestedLocales_1.length; _i++) {\n var locale = requestedLocales_1[_i];\n var noExtensionLocale = locale.replace(UNICODE_EXTENSION_SEQUENCE_REGEX, '');\n var availableLocale = BestAvailableLocale(availableLocales, noExtensionLocale);\n if (availableLocale) {\n subset.push(availableLocale);\n }\n }\n return subset;\n}\n","import { CanonicalizeLocaleList } from './abstract/CanonicalizeLocaleList';\nimport { ResolveLocale } from './abstract/ResolveLocale';\nexport function match(requestedLocales, availableLocales, defaultLocale, opts) {\n return ResolveLocale(availableLocales, CanonicalizeLocaleList(requestedLocales), {\n localeMatcher: (opts === null || opts === void 0 ? void 0 : opts.algorithm) || 'best fit',\n }, [], {}, function () { return defaultLocale; }).locale;\n}\nexport { LookupSupportedLocales } from './abstract/LookupSupportedLocales';\nexport { ResolveLocale } from './abstract/ResolveLocale';\n","/**\n * http://ecma-international.org/ecma-402/7.0/index.html#sec-canonicalizelocalelist\n * @param locales\n */\nexport function CanonicalizeLocaleList(locales) {\n return Intl.getCanonicalLocales(locales);\n}\n","!function(e,o){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=o():\"function\"==typeof define&&define.amd?define(o):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isToday=o()}(this,(function(){\"use strict\";return function(e,o,t){o.prototype.isToday=function(){var e=\"YYYY-MM-DD\",o=t();return this.format(e)===o.format(e)}}}));","!function(t,n){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=n():\"function\"==typeof define&&define.amd?define(n):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_objectSupport=n()}(this,(function(){\"use strict\";return function(t,n,e){var i=n.prototype,r=function(t){var n,r=t.date,o=t.utc,a={};if(!((n=r)instanceof Date)&&!(n instanceof Array)&&n instanceof Object){if(!Object.keys(r).length)return new Date;var u=o?e.utc():e();Object.keys(r).forEach((function(t){var n,e;a[(n=t,e=i.$utils().p(n),\"date\"===e?\"day\":e)]=r[t]}));var d=a.day||(a.year||a.month>=0?1:u.date()),c=a.year||u.year(),f=a.month>=0?a.month:a.year||a.day?0:u.month(),s=a.hour||0,h=a.minute||0,b=a.second||0,y=a.millisecond||0;return o?new Date(Date.UTC(c,f,d,s,h,b,y)):new Date(c,f,d,s,h,b,y)}return r},o=i.parse;i.parse=function(t){t.date=r.bind(this)(t),o.bind(this)(t)};var a=i.set,u=i.add,d=function(t,n,e,i){if(void 0===i&&(i=1),n instanceof Object){var r=Object.keys(n),o=this;return r.forEach((function(e){o=t.bind(o)(n[e]*i,e)})),o}return t.bind(this)(n*i,e)};i.set=function(t,n){return n=void 0===n?t:n,d.bind(this)((function(t,n){return a.bind(this)(n,t)}),n,t)},i.add=function(t,n){return d.bind(this)(u,t,n)},i.subtract=function(t,n){return d.bind(this)(u,t,n,-1)}}}));","!function(t,i){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=i():\"function\"==typeof define&&define.amd?define(i):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_utc=i()}(this,(function(){\"use strict\";var t=\"minute\",i=/[+-]\\d\\d(?::?\\d\\d)?/g,e=/([+-]|\\d\\d)/g;return function(s,f,n){var u=f.prototype;n.utc=function(t){var i={date:t,utc:!0,args:arguments};return new f(i)},u.utc=function(i){var e=n(this.toDate(),{locale:this.$L,utc:!0});return i?e.add(this.utcOffset(),t):e},u.local=function(){return n(this.toDate(),{locale:this.$L,utc:!1})};var o=u.parse;u.parse=function(t){t.utc&&(this.$u=!0),this.$utils().u(t.$offset)||(this.$offset=t.$offset),o.call(this,t)};var r=u.init;u.init=function(){if(this.$u){var t=this.$d;this.$y=t.getUTCFullYear(),this.$M=t.getUTCMonth(),this.$D=t.getUTCDate(),this.$W=t.getUTCDay(),this.$H=t.getUTCHours(),this.$m=t.getUTCMinutes(),this.$s=t.getUTCSeconds(),this.$ms=t.getUTCMilliseconds()}else r.call(this)};var a=u.utcOffset;u.utcOffset=function(s,f){var n=this.$utils().u;if(n(s))return this.$u?0:n(this.$offset)?a.call(this):this.$offset;if(\"string\"==typeof s&&(s=function(t){void 0===t&&(t=\"\");var s=t.match(i);if(!s)return null;var f=(\"\"+s[0]).match(e)||[\"-\",0,0],n=f[0],u=60*+f[1]+ +f[2];return 0===u?0:\"+\"===n?u:-u}(s),null===s))return this;var u=Math.abs(s)<=16?60*s:s,o=this;if(f)return o.$offset=u,o.$u=0===s,o;if(0!==s){var r=this.$u?this.toDate().getTimezoneOffset():-1*this.utcOffset();(o=this.local().add(u+r,t)).$offset=u,o.$x.$localOffset=r}else o=this.utc();return o};var h=u.format;u.format=function(t){var i=t||(this.$u?\"YYYY-MM-DDTHH:mm:ss[Z]\":\"\");return h.call(this,i)},u.valueOf=function(){var t=this.$utils().u(this.$offset)?0:this.$offset+(this.$x.$localOffset||this.$d.getTimezoneOffset());return this.$d.valueOf()-6e4*t},u.isUTC=function(){return!!this.$u},u.toISOString=function(){return this.toDate().toISOString()},u.toString=function(){return this.toDate().toUTCString()};var l=u.toDate;u.toDate=function(t){return\"s\"===t&&this.$offset?n(this.format(\"YYYY-MM-DD HH:mm:ss:SSS\")).toDate():l.call(this)};var c=u.diff;u.diff=function(t,i,e){if(t&&this.$u===t.$u)return c.call(this,t,i,e);var s=this.local(),f=n(t).local();return c.call(s,f,i,e)}}}));","const ANY = Symbol('SemVer ANY')\n// hoisted class for cyclic dependency\nclass Comparator {\n static get ANY () {\n return ANY\n }\n constructor (comp, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n if (comp instanceof Comparator) {\n if (comp.loose === !!options.loose) {\n return comp\n } else {\n comp = comp.value\n }\n }\n\n debug('comparator', comp, options)\n this.options = options\n this.loose = !!options.loose\n this.parse(comp)\n\n if (this.semver === ANY) {\n this.value = ''\n } else {\n this.value = this.operator + this.semver.version\n }\n\n debug('comp', this)\n }\n\n parse (comp) {\n const r = this.options.loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]\n const m = comp.match(r)\n\n if (!m) {\n throw new TypeError(`Invalid comparator: ${comp}`)\n }\n\n this.operator = m[1] !== undefined ? m[1] : ''\n if (this.operator === '=') {\n this.operator = ''\n }\n\n // if it literally is just '>' or '' then allow anything.\n if (!m[2]) {\n this.semver = ANY\n } else {\n this.semver = new SemVer(m[2], this.options.loose)\n }\n }\n\n toString () {\n return this.value\n }\n\n test (version) {\n debug('Comparator.test', version, this.options.loose)\n\n if (this.semver === ANY || version === ANY) {\n return true\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n return cmp(version, this.operator, this.semver, this.options)\n }\n\n intersects (comp, options) {\n if (!(comp instanceof Comparator)) {\n throw new TypeError('a Comparator is required')\n }\n\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n if (this.operator === '') {\n if (this.value === '') {\n return true\n }\n return new Range(comp.value, options).test(this.value)\n } else if (comp.operator === '') {\n if (comp.value === '') {\n return true\n }\n return new Range(this.value, options).test(comp.semver)\n }\n\n const sameDirectionIncreasing =\n (this.operator === '>=' || this.operator === '>') &&\n (comp.operator === '>=' || comp.operator === '>')\n const sameDirectionDecreasing =\n (this.operator === '<=' || this.operator === '<') &&\n (comp.operator === '<=' || comp.operator === '<')\n const sameSemVer = this.semver.version === comp.semver.version\n const differentDirectionsInclusive =\n (this.operator === '>=' || this.operator === '<=') &&\n (comp.operator === '>=' || comp.operator === '<=')\n const oppositeDirectionsLessThan =\n cmp(this.semver, '<', comp.semver, options) &&\n (this.operator === '>=' || this.operator === '>') &&\n (comp.operator === '<=' || comp.operator === '<')\n const oppositeDirectionsGreaterThan =\n cmp(this.semver, '>', comp.semver, options) &&\n (this.operator === '<=' || this.operator === '<') &&\n (comp.operator === '>=' || comp.operator === '>')\n\n return (\n sameDirectionIncreasing ||\n sameDirectionDecreasing ||\n (sameSemVer && differentDirectionsInclusive) ||\n oppositeDirectionsLessThan ||\n oppositeDirectionsGreaterThan\n )\n }\n}\n\nmodule.exports = Comparator\n\nconst {re, t} = require('../internal/re')\nconst cmp = require('../functions/cmp')\nconst debug = require('../internal/debug')\nconst SemVer = require('./semver')\nconst Range = require('./range')\n","// hoisted class for cyclic dependency\nclass Range {\n constructor (range, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n if (range instanceof Range) {\n if (\n range.loose === !!options.loose &&\n range.includePrerelease === !!options.includePrerelease\n ) {\n return range\n } else {\n return new Range(range.raw, options)\n }\n }\n\n if (range instanceof Comparator) {\n // just put it in the set and return\n this.raw = range.value\n this.set = [[range]]\n this.format()\n return this\n }\n\n this.options = options\n this.loose = !!options.loose\n this.includePrerelease = !!options.includePrerelease\n\n // First, split based on boolean or ||\n this.raw = range\n this.set = range\n .split(/\\s*\\|\\|\\s*/)\n // map the range to a 2d array of comparators\n .map(range => this.parseRange(range.trim()))\n // throw out any comparator lists that are empty\n // this generally means that it was not a valid range, which is allowed\n // in loose mode, but will still throw if the WHOLE range is invalid.\n .filter(c => c.length)\n\n if (!this.set.length) {\n throw new TypeError(`Invalid SemVer Range: ${range}`)\n }\n\n this.format()\n }\n\n format () {\n this.range = this.set\n .map((comps) => {\n return comps.join(' ').trim()\n })\n .join('||')\n .trim()\n return this.range\n }\n\n toString () {\n return this.range\n }\n\n parseRange (range) {\n const loose = this.options.loose\n range = range.trim()\n // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`\n const hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE]\n range = range.replace(hr, hyphenReplace(this.options.includePrerelease))\n debug('hyphen replace', range)\n // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`\n range = range.replace(re[t.COMPARATORTRIM], comparatorTrimReplace)\n debug('comparator trim', range, re[t.COMPARATORTRIM])\n\n // `~ 1.2.3` => `~1.2.3`\n range = range.replace(re[t.TILDETRIM], tildeTrimReplace)\n\n // `^ 1.2.3` => `^1.2.3`\n range = range.replace(re[t.CARETTRIM], caretTrimReplace)\n\n // normalize spaces\n range = range.split(/\\s+/).join(' ')\n\n // At this point, the range is completely trimmed and\n // ready to be split into comparators.\n\n const compRe = loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]\n return range\n .split(' ')\n .map(comp => parseComparator(comp, this.options))\n .join(' ')\n .split(/\\s+/)\n .map(comp => replaceGTE0(comp, this.options))\n // in loose mode, throw out any that are not valid comparators\n .filter(this.options.loose ? comp => !!comp.match(compRe) : () => true)\n .map(comp => new Comparator(comp, this.options))\n }\n\n intersects (range, options) {\n if (!(range instanceof Range)) {\n throw new TypeError('a Range is required')\n }\n\n return this.set.some((thisComparators) => {\n return (\n isSatisfiable(thisComparators, options) &&\n range.set.some((rangeComparators) => {\n return (\n isSatisfiable(rangeComparators, options) &&\n thisComparators.every((thisComparator) => {\n return rangeComparators.every((rangeComparator) => {\n return thisComparator.intersects(rangeComparator, options)\n })\n })\n )\n })\n )\n })\n }\n\n // if ANY of the sets match ALL of its comparators, then pass\n test (version) {\n if (!version) {\n return false\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n for (let i = 0; i < this.set.length; i++) {\n if (testSet(this.set[i], version, this.options)) {\n return true\n }\n }\n return false\n }\n}\nmodule.exports = Range\n\nconst Comparator = require('./comparator')\nconst debug = require('../internal/debug')\nconst SemVer = require('./semver')\nconst {\n re,\n t,\n comparatorTrimReplace,\n tildeTrimReplace,\n caretTrimReplace\n} = require('../internal/re')\n\n// take a set of comparators and determine whether there\n// exists a version which can satisfy it\nconst isSatisfiable = (comparators, options) => {\n let result = true\n const remainingComparators = comparators.slice()\n let testComparator = remainingComparators.pop()\n\n while (result && remainingComparators.length) {\n result = remainingComparators.every((otherComparator) => {\n return testComparator.intersects(otherComparator, options)\n })\n\n testComparator = remainingComparators.pop()\n }\n\n return result\n}\n\n// comprised of xranges, tildes, stars, and gtlt's at this point.\n// already replaced the hyphen ranges\n// turn into a set of JUST comparators.\nconst parseComparator = (comp, options) => {\n debug('comp', comp, options)\n comp = replaceCarets(comp, options)\n debug('caret', comp)\n comp = replaceTildes(comp, options)\n debug('tildes', comp)\n comp = replaceXRanges(comp, options)\n debug('xrange', comp)\n comp = replaceStars(comp, options)\n debug('stars', comp)\n return comp\n}\n\nconst isX = id => !id || id.toLowerCase() === 'x' || id === '*'\n\n// ~, ~> --> * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0-0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0-0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0-0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0-0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0-0\nconst replaceTildes = (comp, options) =>\n comp.trim().split(/\\s+/).map((comp) => {\n return replaceTilde(comp, options)\n }).join(' ')\n\nconst replaceTilde = (comp, options) => {\n const r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE]\n return comp.replace(r, (_, M, m, p, pr) => {\n debug('tilde', comp, _, M, m, p, pr)\n let ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = `>=${M}.0.0 <${+M + 1}.0.0-0`\n } else if (isX(p)) {\n // ~1.2 == >=1.2.0 <1.3.0-0\n ret = `>=${M}.${m}.0 <${M}.${+m + 1}.0-0`\n } else if (pr) {\n debug('replaceTilde pr', pr)\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${+m + 1}.0-0`\n } else {\n // ~1.2.3 == >=1.2.3 <1.3.0-0\n ret = `>=${M}.${m}.${p\n } <${M}.${+m + 1}.0-0`\n }\n\n debug('tilde return', ret)\n return ret\n })\n}\n\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0-0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0-0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0-0\n// ^1.2.3 --> >=1.2.3 <2.0.0-0\n// ^1.2.0 --> >=1.2.0 <2.0.0-0\nconst replaceCarets = (comp, options) =>\n comp.trim().split(/\\s+/).map((comp) => {\n return replaceCaret(comp, options)\n }).join(' ')\n\nconst replaceCaret = (comp, options) => {\n debug('caret', comp, options)\n const r = options.loose ? re[t.CARETLOOSE] : re[t.CARET]\n const z = options.includePrerelease ? '-0' : ''\n return comp.replace(r, (_, M, m, p, pr) => {\n debug('caret', comp, _, M, m, p, pr)\n let ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0`\n } else if (isX(p)) {\n if (M === '0') {\n ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0`\n } else {\n ret = `>=${M}.${m}.0${z} <${+M + 1}.0.0-0`\n }\n } else if (pr) {\n debug('replaceCaret pr', pr)\n if (M === '0') {\n if (m === '0') {\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${m}.${+p + 1}-0`\n } else {\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${+m + 1}.0-0`\n }\n } else {\n ret = `>=${M}.${m}.${p}-${pr\n } <${+M + 1}.0.0-0`\n }\n } else {\n debug('no pr')\n if (M === '0') {\n if (m === '0') {\n ret = `>=${M}.${m}.${p\n }${z} <${M}.${m}.${+p + 1}-0`\n } else {\n ret = `>=${M}.${m}.${p\n }${z} <${M}.${+m + 1}.0-0`\n }\n } else {\n ret = `>=${M}.${m}.${p\n } <${+M + 1}.0.0-0`\n }\n }\n\n debug('caret return', ret)\n return ret\n })\n}\n\nconst replaceXRanges = (comp, options) => {\n debug('replaceXRanges', comp, options)\n return comp.split(/\\s+/).map((comp) => {\n return replaceXRange(comp, options)\n }).join(' ')\n}\n\nconst replaceXRange = (comp, options) => {\n comp = comp.trim()\n const r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE]\n return comp.replace(r, (ret, gtlt, M, m, p, pr) => {\n debug('xRange', comp, ret, gtlt, M, m, p, pr)\n const xM = isX(M)\n const xm = xM || isX(m)\n const xp = xm || isX(p)\n const anyX = xp\n\n if (gtlt === '=' && anyX) {\n gtlt = ''\n }\n\n // if we're including prereleases in the match, then we need\n // to fix this to -0, the lowest possible prerelease value\n pr = options.includePrerelease ? '-0' : ''\n\n if (xM) {\n if (gtlt === '>' || gtlt === '<') {\n // nothing is allowed\n ret = '<0.0.0-0'\n } else {\n // nothing is forbidden\n ret = '*'\n }\n } else if (gtlt && anyX) {\n // we know patch is an x, because we have any x at all.\n // replace X with 0\n if (xm) {\n m = 0\n }\n p = 0\n\n if (gtlt === '>') {\n // >1 => >=2.0.0\n // >1.2 => >=1.3.0\n gtlt = '>='\n if (xm) {\n M = +M + 1\n m = 0\n p = 0\n } else {\n m = +m + 1\n p = 0\n }\n } else if (gtlt === '<=') {\n // <=0.7.x is actually <0.8.0, since any 0.7.x should\n // pass. Similarly, <=7.x is actually <8.0.0, etc.\n gtlt = '<'\n if (xm) {\n M = +M + 1\n } else {\n m = +m + 1\n }\n }\n\n if (gtlt === '<')\n pr = '-0'\n\n ret = `${gtlt + M}.${m}.${p}${pr}`\n } else if (xm) {\n ret = `>=${M}.0.0${pr} <${+M + 1}.0.0-0`\n } else if (xp) {\n ret = `>=${M}.${m}.0${pr\n } <${M}.${+m + 1}.0-0`\n }\n\n debug('xRange return', ret)\n\n return ret\n })\n}\n\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nconst replaceStars = (comp, options) => {\n debug('replaceStars', comp, options)\n // Looseness is ignored here. star is always as loose as it gets!\n return comp.trim().replace(re[t.STAR], '')\n}\n\nconst replaceGTE0 = (comp, options) => {\n debug('replaceGTE0', comp, options)\n return comp.trim()\n .replace(re[options.includePrerelease ? t.GTE0PRE : t.GTE0], '')\n}\n\n// This function is passed to string.replace(re[t.HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0-0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0-0\nconst hyphenReplace = incPr => ($0,\n from, fM, fm, fp, fpr, fb,\n to, tM, tm, tp, tpr, tb) => {\n if (isX(fM)) {\n from = ''\n } else if (isX(fm)) {\n from = `>=${fM}.0.0${incPr ? '-0' : ''}`\n } else if (isX(fp)) {\n from = `>=${fM}.${fm}.0${incPr ? '-0' : ''}`\n } else if (fpr) {\n from = `>=${from}`\n } else {\n from = `>=${from}${incPr ? '-0' : ''}`\n }\n\n if (isX(tM)) {\n to = ''\n } else if (isX(tm)) {\n to = `<${+tM + 1}.0.0-0`\n } else if (isX(tp)) {\n to = `<${tM}.${+tm + 1}.0-0`\n } else if (tpr) {\n to = `<=${tM}.${tm}.${tp}-${tpr}`\n } else if (incPr) {\n to = `<${tM}.${tm}.${+tp + 1}-0`\n } else {\n to = `<=${to}`\n }\n\n return (`${from} ${to}`).trim()\n}\n\nconst testSet = (set, version, options) => {\n for (let i = 0; i < set.length; i++) {\n if (!set[i].test(version)) {\n return false\n }\n }\n\n if (version.prerelease.length && !options.includePrerelease) {\n // Find the set of versions that are allowed to have prereleases\n // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n // That should allow `1.2.3-pr.2` to pass.\n // However, `1.2.4-alpha.notready` should NOT be allowed,\n // even though it's within the range set by the comparators.\n for (let i = 0; i < set.length; i++) {\n debug(set[i].semver)\n if (set[i].semver === Comparator.ANY) {\n continue\n }\n\n if (set[i].semver.prerelease.length > 0) {\n const allowed = set[i].semver\n if (allowed.major === version.major &&\n allowed.minor === version.minor &&\n allowed.patch === version.patch) {\n return true\n }\n }\n }\n\n // Version has a -pre, but it's not one of the ones we like.\n return false\n }\n\n return true\n}\n","const debug = require('../internal/debug')\nconst { MAX_LENGTH, MAX_SAFE_INTEGER } = require('../internal/constants')\nconst { re, t } = require('../internal/re')\n\nconst { compareIdentifiers } = require('../internal/identifiers')\nclass SemVer {\n constructor (version, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n if (version instanceof SemVer) {\n if (version.loose === !!options.loose &&\n version.includePrerelease === !!options.includePrerelease) {\n return version\n } else {\n version = version.version\n }\n } else if (typeof version !== 'string') {\n throw new TypeError(`Invalid Version: ${version}`)\n }\n\n if (version.length > MAX_LENGTH) {\n throw new TypeError(\n `version is longer than ${MAX_LENGTH} characters`\n )\n }\n\n debug('SemVer', version, options)\n this.options = options\n this.loose = !!options.loose\n // this isn't actually relevant for versions, but keep it so that we\n // don't run into trouble passing this.options around.\n this.includePrerelease = !!options.includePrerelease\n\n const m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL])\n\n if (!m) {\n throw new TypeError(`Invalid Version: ${version}`)\n }\n\n this.raw = version\n\n // these are actually numbers\n this.major = +m[1]\n this.minor = +m[2]\n this.patch = +m[3]\n\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n throw new TypeError('Invalid major version')\n }\n\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n throw new TypeError('Invalid minor version')\n }\n\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n throw new TypeError('Invalid patch version')\n }\n\n // numberify any prerelease numeric ids\n if (!m[4]) {\n this.prerelease = []\n } else {\n this.prerelease = m[4].split('.').map((id) => {\n if (/^[0-9]+$/.test(id)) {\n const num = +id\n if (num >= 0 && num < MAX_SAFE_INTEGER) {\n return num\n }\n }\n return id\n })\n }\n\n this.build = m[5] ? m[5].split('.') : []\n this.format()\n }\n\n format () {\n this.version = `${this.major}.${this.minor}.${this.patch}`\n if (this.prerelease.length) {\n this.version += `-${this.prerelease.join('.')}`\n }\n return this.version\n }\n\n toString () {\n return this.version\n }\n\n compare (other) {\n debug('SemVer.compare', this.version, this.options, other)\n if (!(other instanceof SemVer)) {\n if (typeof other === 'string' && other === this.version) {\n return 0\n }\n other = new SemVer(other, this.options)\n }\n\n if (other.version === this.version) {\n return 0\n }\n\n return this.compareMain(other) || this.comparePre(other)\n }\n\n compareMain (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n return (\n compareIdentifiers(this.major, other.major) ||\n compareIdentifiers(this.minor, other.minor) ||\n compareIdentifiers(this.patch, other.patch)\n )\n }\n\n comparePre (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n // NOT having a prerelease is > having one\n if (this.prerelease.length && !other.prerelease.length) {\n return -1\n } else if (!this.prerelease.length && other.prerelease.length) {\n return 1\n } else if (!this.prerelease.length && !other.prerelease.length) {\n return 0\n }\n\n let i = 0\n do {\n const a = this.prerelease[i]\n const b = other.prerelease[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n compareBuild (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n let i = 0\n do {\n const a = this.build[i]\n const b = other.build[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n // preminor will bump the version up to the next minor release, and immediately\n // down to pre-release. premajor and prepatch work the same way.\n inc (release, identifier) {\n switch (release) {\n case 'premajor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor = 0\n this.major++\n this.inc('pre', identifier)\n break\n case 'preminor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor++\n this.inc('pre', identifier)\n break\n case 'prepatch':\n // If this is already a prerelease, it will bump to the next version\n // drop any prereleases that might already exist, since they are not\n // relevant at this point.\n this.prerelease.length = 0\n this.inc('patch', identifier)\n this.inc('pre', identifier)\n break\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case 'prerelease':\n if (this.prerelease.length === 0) {\n this.inc('patch', identifier)\n }\n this.inc('pre', identifier)\n break\n\n case 'major':\n // If this is a pre-major version, bump up to the same major version.\n // Otherwise increment major.\n // 1.0.0-5 bumps to 1.0.0\n // 1.1.0 bumps to 2.0.0\n if (\n this.minor !== 0 ||\n this.patch !== 0 ||\n this.prerelease.length === 0\n ) {\n this.major++\n }\n this.minor = 0\n this.patch = 0\n this.prerelease = []\n break\n case 'minor':\n // If this is a pre-minor version, bump up to the same minor version.\n // Otherwise increment minor.\n // 1.2.0-5 bumps to 1.2.0\n // 1.2.1 bumps to 1.3.0\n if (this.patch !== 0 || this.prerelease.length === 0) {\n this.minor++\n }\n this.patch = 0\n this.prerelease = []\n break\n case 'patch':\n // If this is not a pre-release version, it will increment the patch.\n // If it is a pre-release it will bump up to the same patch version.\n // 1.2.0-5 patches to 1.2.0\n // 1.2.0 patches to 1.2.1\n if (this.prerelease.length === 0) {\n this.patch++\n }\n this.prerelease = []\n break\n // This probably shouldn't be used publicly.\n // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction.\n case 'pre':\n if (this.prerelease.length === 0) {\n this.prerelease = [0]\n } else {\n let i = this.prerelease.length\n while (--i >= 0) {\n if (typeof this.prerelease[i] === 'number') {\n this.prerelease[i]++\n i = -2\n }\n }\n if (i === -1) {\n // didn't increment anything\n this.prerelease.push(0)\n }\n }\n if (identifier) {\n // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n if (this.prerelease[0] === identifier) {\n if (isNaN(this.prerelease[1])) {\n this.prerelease = [identifier, 0]\n }\n } else {\n this.prerelease = [identifier, 0]\n }\n }\n break\n\n default:\n throw new Error(`invalid increment argument: ${release}`)\n }\n this.format()\n this.raw = this.version\n return this\n }\n}\n\nmodule.exports = SemVer\n","const parse = require('./parse')\nconst clean = (version, options) => {\n const s = parse(version.trim().replace(/^[=v]+/, ''), options)\n return s ? s.version : null\n}\nmodule.exports = clean\n","const eq = require('./eq')\nconst neq = require('./neq')\nconst gt = require('./gt')\nconst gte = require('./gte')\nconst lt = require('./lt')\nconst lte = require('./lte')\n\nconst cmp = (a, op, b, loose) => {\n switch (op) {\n case '===':\n if (typeof a === 'object')\n a = a.version\n if (typeof b === 'object')\n b = b.version\n return a === b\n\n case '!==':\n if (typeof a === 'object')\n a = a.version\n if (typeof b === 'object')\n b = b.version\n return a !== b\n\n case '':\n case '=':\n case '==':\n return eq(a, b, loose)\n\n case '!=':\n return neq(a, b, loose)\n\n case '>':\n return gt(a, b, loose)\n\n case '>=':\n return gte(a, b, loose)\n\n case '<':\n return lt(a, b, loose)\n\n case '<=':\n return lte(a, b, loose)\n\n default:\n throw new TypeError(`Invalid operator: ${op}`)\n }\n}\nmodule.exports = cmp\n","const SemVer = require('../classes/semver')\nconst parse = require('./parse')\nconst {re, t} = require('../internal/re')\n\nconst coerce = (version, options) => {\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version === 'number') {\n version = String(version)\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n options = options || {}\n\n let match = null\n if (!options.rtl) {\n match = version.match(re[t.COERCE])\n } else {\n // Find the right-most coercible string that does not share\n // a terminus with a more left-ward coercible string.\n // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4'\n //\n // Walk through the string checking with a /g regexp\n // Manually set the index so as to pick up overlapping matches.\n // Stop when we get a match that ends at the string end, since no\n // coercible string can be more right-ward without the same terminus.\n let next\n while ((next = re[t.COERCERTL].exec(version)) &&\n (!match || match.index + match[0].length !== version.length)\n ) {\n if (!match ||\n next.index + next[0].length !== match.index + match[0].length) {\n match = next\n }\n re[t.COERCERTL].lastIndex = next.index + next[1].length + next[2].length\n }\n // leave it in a clean state\n re[t.COERCERTL].lastIndex = -1\n }\n\n if (match === null)\n return null\n\n return parse(`${match[2]}.${match[3] || '0'}.${match[4] || '0'}`, options)\n}\nmodule.exports = coerce\n","const SemVer = require('../classes/semver')\nconst compareBuild = (a, b, loose) => {\n const versionA = new SemVer(a, loose)\n const versionB = new SemVer(b, loose)\n return versionA.compare(versionB) || versionA.compareBuild(versionB)\n}\nmodule.exports = compareBuild\n","const compare = require('./compare')\nconst compareLoose = (a, b) => compare(a, b, true)\nmodule.exports = compareLoose\n","const SemVer = require('../classes/semver')\nconst compare = (a, b, loose) =>\n new SemVer(a, loose).compare(new SemVer(b, loose))\n\nmodule.exports = compare\n","const parse = require('./parse')\nconst eq = require('./eq')\n\nconst diff = (version1, version2) => {\n if (eq(version1, version2)) {\n return null\n } else {\n const v1 = parse(version1)\n const v2 = parse(version2)\n const hasPre = v1.prerelease.length || v2.prerelease.length\n const prefix = hasPre ? 'pre' : ''\n const defaultResult = hasPre ? 'prerelease' : ''\n for (const key in v1) {\n if (key === 'major' || key === 'minor' || key === 'patch') {\n if (v1[key] !== v2[key]) {\n return prefix + key\n }\n }\n }\n return defaultResult // may be undefined\n }\n}\nmodule.exports = diff\n","const compare = require('./compare')\nconst eq = (a, b, loose) => compare(a, b, loose) === 0\nmodule.exports = eq\n","const compare = require('./compare')\nconst gt = (a, b, loose) => compare(a, b, loose) > 0\nmodule.exports = gt\n","const compare = require('./compare')\nconst gte = (a, b, loose) => compare(a, b, loose) >= 0\nmodule.exports = gte\n","const SemVer = require('../classes/semver')\n\nconst inc = (version, release, options, identifier) => {\n if (typeof (options) === 'string') {\n identifier = options\n options = undefined\n }\n\n try {\n return new SemVer(version, options).inc(release, identifier).version\n } catch (er) {\n return null\n }\n}\nmodule.exports = inc\n","const compare = require('./compare')\nconst lt = (a, b, loose) => compare(a, b, loose) < 0\nmodule.exports = lt\n","const compare = require('./compare')\nconst lte = (a, b, loose) => compare(a, b, loose) <= 0\nmodule.exports = lte\n","const SemVer = require('../classes/semver')\nconst major = (a, loose) => new SemVer(a, loose).major\nmodule.exports = major\n","const SemVer = require('../classes/semver')\nconst minor = (a, loose) => new SemVer(a, loose).minor\nmodule.exports = minor\n","const compare = require('./compare')\nconst neq = (a, b, loose) => compare(a, b, loose) !== 0\nmodule.exports = neq\n","const {MAX_LENGTH} = require('../internal/constants')\nconst { re, t } = require('../internal/re')\nconst SemVer = require('../classes/semver')\n\nconst parse = (version, options) => {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n if (version.length > MAX_LENGTH) {\n return null\n }\n\n const r = options.loose ? re[t.LOOSE] : re[t.FULL]\n if (!r.test(version)) {\n return null\n }\n\n try {\n return new SemVer(version, options)\n } catch (er) {\n return null\n }\n}\n\nmodule.exports = parse\n","const SemVer = require('../classes/semver')\nconst patch = (a, loose) => new SemVer(a, loose).patch\nmodule.exports = patch\n","const parse = require('./parse')\nconst prerelease = (version, options) => {\n const parsed = parse(version, options)\n return (parsed && parsed.prerelease.length) ? parsed.prerelease : null\n}\nmodule.exports = prerelease\n","const compare = require('./compare')\nconst rcompare = (a, b, loose) => compare(b, a, loose)\nmodule.exports = rcompare\n","const compareBuild = require('./compare-build')\nconst rsort = (list, loose) => list.sort((a, b) => compareBuild(b, a, loose))\nmodule.exports = rsort\n","const Range = require('../classes/range')\nconst satisfies = (version, range, options) => {\n try {\n range = new Range(range, options)\n } catch (er) {\n return false\n }\n return range.test(version)\n}\nmodule.exports = satisfies\n","const compareBuild = require('./compare-build')\nconst sort = (list, loose) => list.sort((a, b) => compareBuild(a, b, loose))\nmodule.exports = sort\n","const parse = require('./parse')\nconst valid = (version, options) => {\n const v = parse(version, options)\n return v ? v.version : null\n}\nmodule.exports = valid\n","// just pre-load all the stuff that index.js lazily exports\nconst internalRe = require('./internal/re')\nmodule.exports = {\n re: internalRe.re,\n src: internalRe.src,\n tokens: internalRe.t,\n SEMVER_SPEC_VERSION: require('./internal/constants').SEMVER_SPEC_VERSION,\n SemVer: require('./classes/semver'),\n compareIdentifiers: require('./internal/identifiers').compareIdentifiers,\n rcompareIdentifiers: require('./internal/identifiers').rcompareIdentifiers,\n parse: require('./functions/parse'),\n valid: require('./functions/valid'),\n clean: require('./functions/clean'),\n inc: require('./functions/inc'),\n diff: require('./functions/diff'),\n major: require('./functions/major'),\n minor: require('./functions/minor'),\n patch: require('./functions/patch'),\n prerelease: require('./functions/prerelease'),\n compare: require('./functions/compare'),\n rcompare: require('./functions/rcompare'),\n compareLoose: require('./functions/compare-loose'),\n compareBuild: require('./functions/compare-build'),\n sort: require('./functions/sort'),\n rsort: require('./functions/rsort'),\n gt: require('./functions/gt'),\n lt: require('./functions/lt'),\n eq: require('./functions/eq'),\n neq: require('./functions/neq'),\n gte: require('./functions/gte'),\n lte: require('./functions/lte'),\n cmp: require('./functions/cmp'),\n coerce: require('./functions/coerce'),\n Comparator: require('./classes/comparator'),\n Range: require('./classes/range'),\n satisfies: require('./functions/satisfies'),\n toComparators: require('./ranges/to-comparators'),\n maxSatisfying: require('./ranges/max-satisfying'),\n minSatisfying: require('./ranges/min-satisfying'),\n minVersion: require('./ranges/min-version'),\n validRange: require('./ranges/valid'),\n outside: require('./ranges/outside'),\n gtr: require('./ranges/gtr'),\n ltr: require('./ranges/ltr'),\n intersects: require('./ranges/intersects'),\n simplifyRange: require('./ranges/simplify'),\n subset: require('./ranges/subset'),\n}\n","// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nconst SEMVER_SPEC_VERSION = '2.0.0'\n\nconst MAX_LENGTH = 256\nconst MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||\n /* istanbul ignore next */ 9007199254740991\n\n// Max safe segment length for coercion.\nconst MAX_SAFE_COMPONENT_LENGTH = 16\n\nmodule.exports = {\n SEMVER_SPEC_VERSION,\n MAX_LENGTH,\n MAX_SAFE_INTEGER,\n MAX_SAFE_COMPONENT_LENGTH\n}\n","const debug = (\n typeof process === 'object' &&\n process.env &&\n process.env.NODE_DEBUG &&\n /\\bsemver\\b/i.test(process.env.NODE_DEBUG)\n) ? (...args) => console.error('SEMVER', ...args)\n : () => {}\n\nmodule.exports = debug\n","const numeric = /^[0-9]+$/\nconst compareIdentifiers = (a, b) => {\n const anum = numeric.test(a)\n const bnum = numeric.test(b)\n\n if (anum && bnum) {\n a = +a\n b = +b\n }\n\n return a === b ? 0\n : (anum && !bnum) ? -1\n : (bnum && !anum) ? 1\n : a < b ? -1\n : 1\n}\n\nconst rcompareIdentifiers = (a, b) => compareIdentifiers(b, a)\n\nmodule.exports = {\n compareIdentifiers,\n rcompareIdentifiers\n}\n","const { MAX_SAFE_COMPONENT_LENGTH } = require('./constants')\nconst debug = require('./debug')\nexports = module.exports = {}\n\n// The actual regexps go on exports.re\nconst re = exports.re = []\nconst src = exports.src = []\nconst t = exports.t = {}\nlet R = 0\n\nconst createToken = (name, value, isGlobal) => {\n const index = R++\n debug(index, value)\n t[name] = index\n src[index] = value\n re[index] = new RegExp(value, isGlobal ? 'g' : undefined)\n}\n\n// The following Regular Expressions can be used for tokenizing,\n// validating, and parsing SemVer version strings.\n\n// ## Numeric Identifier\n// A single `0`, or a non-zero digit followed by zero or more digits.\n\ncreateToken('NUMERICIDENTIFIER', '0|[1-9]\\\\d*')\ncreateToken('NUMERICIDENTIFIERLOOSE', '[0-9]+')\n\n// ## Non-numeric Identifier\n// Zero or more digits, followed by a letter or hyphen, and then zero or\n// more letters, digits, or hyphens.\n\ncreateToken('NONNUMERICIDENTIFIER', '\\\\d*[a-zA-Z-][a-zA-Z0-9-]*')\n\n// ## Main Version\n// Three dot-separated numeric identifiers.\n\ncreateToken('MAINVERSION', `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})`)\n\ncreateToken('MAINVERSIONLOOSE', `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIERLOOSE]})`)\n\n// ## Pre-release Version Identifier\n// A numeric identifier, or a non-numeric identifier.\n\ncreateToken('PRERELEASEIDENTIFIER', `(?:${src[t.NUMERICIDENTIFIER]\n}|${src[t.NONNUMERICIDENTIFIER]})`)\n\ncreateToken('PRERELEASEIDENTIFIERLOOSE', `(?:${src[t.NUMERICIDENTIFIERLOOSE]\n}|${src[t.NONNUMERICIDENTIFIER]})`)\n\n// ## Pre-release Version\n// Hyphen, followed by one or more dot-separated pre-release version\n// identifiers.\n\ncreateToken('PRERELEASE', `(?:-(${src[t.PRERELEASEIDENTIFIER]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIER]})*))`)\n\ncreateToken('PRERELEASELOOSE', `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`)\n\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\n\ncreateToken('BUILDIDENTIFIER', '[0-9A-Za-z-]+')\n\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\n\ncreateToken('BUILD', `(?:\\\\+(${src[t.BUILDIDENTIFIER]\n}(?:\\\\.${src[t.BUILDIDENTIFIER]})*))`)\n\n// ## Full Version String\n// A main version, followed optionally by a pre-release version and\n// build metadata.\n\n// Note that the only major, minor, patch, and pre-release sections of\n// the version string are capturing groups. The build metadata is not a\n// capturing group, because it should not ever be used in version\n// comparison.\n\ncreateToken('FULLPLAIN', `v?${src[t.MAINVERSION]\n}${src[t.PRERELEASE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('FULL', `^${src[t.FULLPLAIN]}$`)\n\n// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n// common in the npm registry.\ncreateToken('LOOSEPLAIN', `[v=\\\\s]*${src[t.MAINVERSIONLOOSE]\n}${src[t.PRERELEASELOOSE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('LOOSE', `^${src[t.LOOSEPLAIN]}$`)\n\ncreateToken('GTLT', '((?:<|>)?=?)')\n\n// Something like \"2.*\" or \"1.2.x\".\n// Note that \"x.x\" is a valid xRange identifer, meaning \"any version\"\n// Only the first item is strictly required.\ncreateToken('XRANGEIDENTIFIERLOOSE', `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\\\*`)\ncreateToken('XRANGEIDENTIFIER', `${src[t.NUMERICIDENTIFIER]}|x|X|\\\\*`)\n\ncreateToken('XRANGEPLAIN', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:${src[t.PRERELEASE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGEPLAINLOOSE', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:${src[t.PRERELEASELOOSE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAIN]}$`)\ncreateToken('XRANGELOOSE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Coercion.\n// Extract anything that could conceivably be a part of a valid semver\ncreateToken('COERCE', `${'(^|[^\\\\d])' +\n '(\\\\d{1,'}${MAX_SAFE_COMPONENT_LENGTH}})` +\n `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` +\n `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` +\n `(?:$|[^\\\\d])`)\ncreateToken('COERCERTL', src[t.COERCE], true)\n\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\ncreateToken('LONETILDE', '(?:~>?)')\n\ncreateToken('TILDETRIM', `(\\\\s*)${src[t.LONETILDE]}\\\\s+`, true)\nexports.tildeTrimReplace = '$1~'\n\ncreateToken('TILDE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('TILDELOOSE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\ncreateToken('LONECARET', '(?:\\\\^)')\n\ncreateToken('CARETTRIM', `(\\\\s*)${src[t.LONECARET]}\\\\s+`, true)\nexports.caretTrimReplace = '$1^'\n\ncreateToken('CARET', `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('CARETLOOSE', `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\ncreateToken('COMPARATORLOOSE', `^${src[t.GTLT]}\\\\s*(${src[t.LOOSEPLAIN]})$|^$`)\ncreateToken('COMPARATOR', `^${src[t.GTLT]}\\\\s*(${src[t.FULLPLAIN]})$|^$`)\n\n// An expression to strip any whitespace between the gtlt and the thing\n// it modifies, so that `> 1.2.3` ==> `>1.2.3`\ncreateToken('COMPARATORTRIM', `(\\\\s*)${src[t.GTLT]\n}\\\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true)\nexports.comparatorTrimReplace = '$1$2$3'\n\n// Something like `1.2.3 - 1.2.4`\n// Note that these all use the loose form, because they'll be\n// checked against either the strict or loose comparator form\n// later.\ncreateToken('HYPHENRANGE', `^\\\\s*(${src[t.XRANGEPLAIN]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAIN]})` +\n `\\\\s*$`)\n\ncreateToken('HYPHENRANGELOOSE', `^\\\\s*(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s*$`)\n\n// Star ranges basically just allow anything at all.\ncreateToken('STAR', '(<|>)?=?\\\\s*\\\\*')\n// >=0.0.0 is like a star\ncreateToken('GTE0', '^\\\\s*>=\\\\s*0\\.0\\.0\\\\s*$')\ncreateToken('GTE0PRE', '^\\\\s*>=\\\\s*0\\.0\\.0-0\\\\s*$')\n","// Determine if version is greater than all the versions possible in the range.\nconst outside = require('./outside')\nconst gtr = (version, range, options) => outside(version, range, '>', options)\nmodule.exports = gtr\n","const Range = require('../classes/range')\nconst intersects = (r1, r2, options) => {\n r1 = new Range(r1, options)\n r2 = new Range(r2, options)\n return r1.intersects(r2)\n}\nmodule.exports = intersects\n","const outside = require('./outside')\n// Determine if version is less than all the versions possible in the range\nconst ltr = (version, range, options) => outside(version, range, '<', options)\nmodule.exports = ltr\n","const SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\n\nconst maxSatisfying = (versions, range, options) => {\n let max = null\n let maxSV = null\n let rangeObj = null\n try {\n rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach((v) => {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!max || maxSV.compare(v) === -1) {\n // compare(max, v, true)\n max = v\n maxSV = new SemVer(max, options)\n }\n }\n })\n return max\n}\nmodule.exports = maxSatisfying\n","const SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\nconst minSatisfying = (versions, range, options) => {\n let min = null\n let minSV = null\n let rangeObj = null\n try {\n rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach((v) => {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!min || minSV.compare(v) === 1) {\n // compare(min, v, true)\n min = v\n minSV = new SemVer(min, options)\n }\n }\n })\n return min\n}\nmodule.exports = minSatisfying\n","const SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\nconst gt = require('../functions/gt')\n\nconst minVersion = (range, loose) => {\n range = new Range(range, loose)\n\n let minver = new SemVer('0.0.0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = new SemVer('0.0.0-0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = null\n for (let i = 0; i < range.set.length; ++i) {\n const comparators = range.set[i]\n\n comparators.forEach((comparator) => {\n // Clone to avoid manipulating the comparator's semver object.\n const compver = new SemVer(comparator.semver.version)\n switch (comparator.operator) {\n case '>':\n if (compver.prerelease.length === 0) {\n compver.patch++\n } else {\n compver.prerelease.push(0)\n }\n compver.raw = compver.format()\n /* fallthrough */\n case '':\n case '>=':\n if (!minver || gt(minver, compver)) {\n minver = compver\n }\n break\n case '<':\n case '<=':\n /* Ignore maximum versions */\n break\n /* istanbul ignore next */\n default:\n throw new Error(`Unexpected operation: ${comparator.operator}`)\n }\n })\n }\n\n if (minver && range.test(minver)) {\n return minver\n }\n\n return null\n}\nmodule.exports = minVersion\n","const SemVer = require('../classes/semver')\nconst Comparator = require('../classes/comparator')\nconst {ANY} = Comparator\nconst Range = require('../classes/range')\nconst satisfies = require('../functions/satisfies')\nconst gt = require('../functions/gt')\nconst lt = require('../functions/lt')\nconst lte = require('../functions/lte')\nconst gte = require('../functions/gte')\n\nconst outside = (version, range, hilo, options) => {\n version = new SemVer(version, options)\n range = new Range(range, options)\n\n let gtfn, ltefn, ltfn, comp, ecomp\n switch (hilo) {\n case '>':\n gtfn = gt\n ltefn = lte\n ltfn = lt\n comp = '>'\n ecomp = '>='\n break\n case '<':\n gtfn = lt\n ltefn = gte\n ltfn = gt\n comp = '<'\n ecomp = '<='\n break\n default:\n throw new TypeError('Must provide a hilo val of \"<\" or \">\"')\n }\n\n // If it satisifes the range it is not outside\n if (satisfies(version, range, options)) {\n return false\n }\n\n // From now on, variable terms are as if we're in \"gtr\" mode.\n // but note that everything is flipped for the \"ltr\" function.\n\n for (let i = 0; i < range.set.length; ++i) {\n const comparators = range.set[i]\n\n let high = null\n let low = null\n\n comparators.forEach((comparator) => {\n if (comparator.semver === ANY) {\n comparator = new Comparator('>=0.0.0')\n }\n high = high || comparator\n low = low || comparator\n if (gtfn(comparator.semver, high.semver, options)) {\n high = comparator\n } else if (ltfn(comparator.semver, low.semver, options)) {\n low = comparator\n }\n })\n\n // If the edge version comparator has a operator then our version\n // isn't outside it\n if (high.operator === comp || high.operator === ecomp) {\n return false\n }\n\n // If the lowest version comparator has an operator and our version\n // is less than it then it isn't higher than the range\n if ((!low.operator || low.operator === comp) &&\n ltefn(version, low.semver)) {\n return false\n } else if (low.operator === ecomp && ltfn(version, low.semver)) {\n return false\n }\n }\n return true\n}\n\nmodule.exports = outside\n","// given a set of versions and a range, create a \"simplified\" range\n// that includes the same versions that the original range does\n// If the original range is shorter than the simplified one, return that.\nconst satisfies = require('../functions/satisfies.js')\nconst compare = require('../functions/compare.js')\nmodule.exports = (versions, range, options) => {\n const set = []\n let min = null\n let prev = null\n const v = versions.sort((a, b) => compare(a, b, options))\n for (const version of v) {\n const included = satisfies(version, range, options)\n if (included) {\n prev = version\n if (!min)\n min = version\n } else {\n if (prev) {\n set.push([min, prev])\n }\n prev = null\n min = null\n }\n }\n if (min)\n set.push([min, null])\n\n const ranges = []\n for (const [min, max] of set) {\n if (min === max)\n ranges.push(min)\n else if (!max && min === v[0])\n ranges.push('*')\n else if (!max)\n ranges.push(`>=${min}`)\n else if (min === v[0])\n ranges.push(`<=${max}`)\n else\n ranges.push(`${min} - ${max}`)\n }\n const simplified = ranges.join(' || ')\n const original = typeof range.raw === 'string' ? range.raw : String(range)\n return simplified.length < original.length ? simplified : range\n}\n","const Range = require('../classes/range.js')\nconst { ANY } = require('../classes/comparator.js')\nconst satisfies = require('../functions/satisfies.js')\nconst compare = require('../functions/compare.js')\n\n// Complex range `r1 || r2 || ...` is a subset of `R1 || R2 || ...` iff:\n// - Every simple range `r1, r2, ...` is a subset of some `R1, R2, ...`\n//\n// Simple range `c1 c2 ...` is a subset of simple range `C1 C2 ...` iff:\n// - If c is only the ANY comparator\n// - If C is only the ANY comparator, return true\n// - Else return false\n// - Let EQ be the set of = comparators in c\n// - If EQ is more than one, return true (null set)\n// - Let GT be the highest > or >= comparator in c\n// - Let LT be the lowest < or <= comparator in c\n// - If GT and LT, and GT.semver > LT.semver, return true (null set)\n// - If EQ\n// - If GT, and EQ does not satisfy GT, return true (null set)\n// - If LT, and EQ does not satisfy LT, return true (null set)\n// - If EQ satisfies every C, return true\n// - Else return false\n// - If GT\n// - If GT is lower than any > or >= comp in C, return false\n// - If GT is >=, and GT.semver does not satisfy every C, return false\n// - If LT\n// - If LT.semver is greater than that of any > comp in C, return false\n// - If LT is <=, and LT.semver does not satisfy every C, return false\n// - If any C is a = range, and GT or LT are set, return false\n// - Else return true\n\nconst subset = (sub, dom, options) => {\n sub = new Range(sub, options)\n dom = new Range(dom, options)\n let sawNonNull = false\n\n OUTER: for (const simpleSub of sub.set) {\n for (const simpleDom of dom.set) {\n const isSub = simpleSubset(simpleSub, simpleDom, options)\n sawNonNull = sawNonNull || isSub !== null\n if (isSub)\n continue OUTER\n }\n // the null set is a subset of everything, but null simple ranges in\n // a complex range should be ignored. so if we saw a non-null range,\n // then we know this isn't a subset, but if EVERY simple range was null,\n // then it is a subset.\n if (sawNonNull)\n return false\n }\n return true\n}\n\nconst simpleSubset = (sub, dom, options) => {\n if (sub.length === 1 && sub[0].semver === ANY)\n return dom.length === 1 && dom[0].semver === ANY\n\n const eqSet = new Set()\n let gt, lt\n for (const c of sub) {\n if (c.operator === '>' || c.operator === '>=')\n gt = higherGT(gt, c, options)\n else if (c.operator === '<' || c.operator === '<=')\n lt = lowerLT(lt, c, options)\n else\n eqSet.add(c.semver)\n }\n\n if (eqSet.size > 1)\n return null\n\n let gtltComp\n if (gt && lt) {\n gtltComp = compare(gt.semver, lt.semver, options)\n if (gtltComp > 0)\n return null\n else if (gtltComp === 0 && (gt.operator !== '>=' || lt.operator !== '<='))\n return null\n }\n\n // will iterate one or zero times\n for (const eq of eqSet) {\n if (gt && !satisfies(eq, String(gt), options))\n return null\n\n if (lt && !satisfies(eq, String(lt), options))\n return null\n\n for (const c of dom) {\n if (!satisfies(eq, String(c), options))\n return false\n }\n return true\n }\n\n let higher, lower\n let hasDomLT, hasDomGT\n for (const c of dom) {\n hasDomGT = hasDomGT || c.operator === '>' || c.operator === '>='\n hasDomLT = hasDomLT || c.operator === '<' || c.operator === '<='\n if (gt) {\n if (c.operator === '>' || c.operator === '>=') {\n higher = higherGT(gt, c, options)\n if (higher === c)\n return false\n } else if (gt.operator === '>=' && !satisfies(gt.semver, String(c), options))\n return false\n }\n if (lt) {\n if (c.operator === '<' || c.operator === '<=') {\n lower = lowerLT(lt, c, options)\n if (lower === c)\n return false\n } else if (lt.operator === '<=' && !satisfies(lt.semver, String(c), options))\n return false\n }\n if (!c.operator && (lt || gt) && gtltComp !== 0)\n return false\n }\n\n // if there was a < or >, and nothing in the dom, then must be false\n // UNLESS it was limited by another range in the other direction.\n // Eg, >1.0.0 <1.0.1 is still a subset of <2.0.0\n if (gt && hasDomLT && !lt && gtltComp !== 0)\n return false\n\n if (lt && hasDomGT && !gt && gtltComp !== 0)\n return false\n\n return true\n}\n\n// >=1.2.3 is lower than >1.2.3\nconst higherGT = (a, b, options) => {\n if (!a)\n return b\n const comp = compare(a.semver, b.semver, options)\n return comp > 0 ? a\n : comp < 0 ? b\n : b.operator === '>' && a.operator === '>=' ? b\n : a\n}\n\n// <=1.2.3 is higher than <1.2.3\nconst lowerLT = (a, b, options) => {\n if (!a)\n return b\n const comp = compare(a.semver, b.semver, options)\n return comp < 0 ? a\n : comp > 0 ? b\n : b.operator === '<' && a.operator === '<=' ? b\n : a\n}\n\nmodule.exports = subset\n","const Range = require('../classes/range')\n\n// Mostly just for testing and legacy API reasons\nconst toComparators = (range, options) =>\n new Range(range, options).set\n .map(comp => comp.map(c => c.value).join(' ').trim().split(' '))\n\nmodule.exports = toComparators\n","const Range = require('../classes/range')\nconst validRange = (range, options) => {\n try {\n // Return '*' instead of '' so that truthiness works.\n // This will throw if it's invalid anyway\n return new Range(range, options).range || '*'\n } catch (er) {\n return null\n }\n}\nmodule.exports = validRange\n","module.exports = __WEBPACK_EXTERNAL_MODULE__9688__;","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nvar ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\n });\n }\n return path;\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __esDecorate,\n __runInitializers,\n __propKey,\n __setFunctionName,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n __rewriteRelativeImportExtension,\n};\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","// src/normalizeLocale/normalizeLocale.ts\nfunction normalizeLocale(name) {\n name = name.replace(/_/g, \"-\");\n name = name.replace(/[.:][\\w-]*$/, \"\");\n try {\n return new Intl.Locale(name).baseName;\n } catch (e) {\n return \"en-US\";\n }\n}\n\n// src/data/defaultLocale.ts\nvar detectedLocale;\nif (typeof navigator !== \"undefined\") {\n const nav = navigator;\n detectedLocale = Array.isArray(nav.languages) ? nav.languages[0] : nav.language;\n} else if (typeof process !== \"undefined\") {\n const env = process.env;\n detectedLocale = env.LC_ALL || env.LC_MESSAGES || env.LANG || env.LANGUAGE;\n}\nvar defaultLocale = normalizeLocale(detectedLocale || \"en-US\");\nvar defaultLocale_default = defaultLocale;\n\n// src/MaybeValidDate/MaybeValidDate.ts\nvar MaybeValidDate = class extends Date {\n invalid = null;\n isValid() {\n return !Number.isNaN(this.valueOf());\n }\n};\n\n// src/data/twoDigitYears.ts\nvar twoDigitYears = {};\nfor (let i = 1; i < 100; i++) {\n const key = (i <= 9 ? \"0\" : \"\") + i;\n twoDigitYears[key] = i + (i > 51 ? 1900 : 2e3);\n}\nvar twoDigitYears_default = twoDigitYears;\n\n// src/data/numberingSystems.ts\nvar startCodes = {\n arab: 1632,\n arabext: 1776,\n bali: 6992,\n beng: 2534,\n deva: 2406,\n fullwide: 65296,\n gujr: 2790,\n khmr: 6112,\n knda: 3302,\n laoo: 3792,\n limb: 6470,\n mlym: 3430,\n mong: 6160,\n mymr: 4160,\n orya: 2918,\n tamldec: 3046,\n telu: 3174,\n thai: 3664,\n tibt: 3872\n};\nvar chineseGroup = \"[\\uFF11\\uFF12\\uFF13\\uFF14\\uFF15\\uFF16\\uFF17\\uFF18\\uFF19\\uFF10\\u4E00\\u4E8C\\u4E09\\u56DB\\u4E94\\u516D\\u4E03\\u516B\\u4E5D\\u3007\\\\d]\";\nvar defaultLookup = {\n 0: 0,\n 1: 1,\n 2: 2,\n 3: 3,\n 4: 4,\n 5: 5,\n 6: 6,\n 7: 7,\n 8: 8,\n 9: 9,\n \"\\uFF10\": 0,\n \"\\uFF11\": 1,\n \"\\uFF12\": 2,\n \"\\uFF13\": 3,\n \"\\uFF14\": 4,\n \"\\uFF15\": 5,\n \"\\uFF16\": 6,\n \"\\uFF17\": 7,\n \"\\uFF18\": 8,\n \"\\uFF19\": 9,\n \"\\u3007\": 0,\n \\u4E00: 1,\n \\u4E8C: 2,\n \\u4E09: 3,\n \\u56DB: 4,\n \\u4E94: 5,\n \\u516D: 6,\n \\u4E03: 7,\n \\u516B: 8,\n \\u4E5D: 9\n};\n\n// src/buildDigits/buildDigits.ts\nvar cache = {};\nfunction buildDigits(nsName) {\n if (cache[nsName]) {\n return cache[nsName];\n }\n if (nsName === \"fullwide\" || nsName === \"hanidec\") {\n return { group: chineseGroup, lookup: { ...defaultLookup } };\n }\n const startCode = startCodes[nsName];\n if (!startCode) {\n return { group: \"\\\\d\", lookup: { ...defaultLookup } };\n }\n const start = String.fromCharCode(startCode);\n const end = String.fromCharCode(startCode + 9);\n const lookup = {};\n for (let i = 0; i < 10; i++) {\n lookup[String.fromCharCode(startCode + i)] = i;\n }\n cache[nsName] = {\n group: `[${start}-${end}]`,\n lookup\n };\n return cache[nsName];\n}\n\n// src/data/timezoneNames.ts\nvar timezoneNames = {\n \"Eastern Daylight Time\": -240,\n \"Eastern Standard Time\": -300,\n \"Central Daylight Time\": -300,\n \"Central Standard Time\": -360,\n \"Mountain Daylight Time\": -360,\n \"Mountain Standard Time\": -420,\n \"Pacific Daylight Time\": -420,\n \"Pacific Standard Time\": -480,\n \"Coordinated Universal Time\": 0,\n ACDT: 630,\n // Australian Central Daylight Savings Time\n ACST: 570,\n // Australian Central Standard Time\n ACT: 480,\n // ASEAN Common Time\n ADT: -180,\n // Atlantic Daylight Time\n AEDT: 660,\n // Australian Eastern Daylight Savings Time\n AEST: 600,\n // Australian Eastern Standard Time\n AFT: 270,\n // Afghanistan Time\n AKDT: -480,\n // Alaska Daylight Time\n AKST: -540,\n // Alaska Standard Time\n AMST: -180,\n // Amazon Summer Time (Brazil)\n AMT: -240,\n // Amazon Time (Brazil)\n ART: -180,\n // Argentina Time\n AST: 180,\n // Arabia Standard Time\n AWDT: 540,\n // Australian Western Daylight Time\n AWST: 480,\n // Australian Western Standard Time\n AZOST: -60,\n // Azores Standard Time\n AZT: 240,\n // Azerbaijan Time\n BDT: 360,\n // Bangladesh Daylight Time (Bangladesh Daylight saving time keeps UTC+06 offset)\n BIOT: 360,\n // British Indian Ocean Time\n BIT: -720,\n // Baker Island Time\n BOT: -240,\n // Bolivia Time\n BRST: -120,\n // Brasilia Summer Time\n BRT: -180,\n // Brasilia Time\n BTT: 360,\n // Bhutan Time\n CAT: 120,\n // Central Africa Time\n CCT: 390,\n // Cocos Islands Time\n CDT: -300,\n // Central Daylight Time (North America)\n CEDT: 120,\n // Central European Daylight Time\n CEST: 120,\n // Central European Summer Time (Cf. HAEC)\n CET: 60,\n // Central European Time\n CHADT: 825,\n // Chatham Daylight Time\n CHAST: 765,\n // Chatham Standard Time\n CHOT: 480,\n // Choibalsan\n ChST: 600,\n // Chamorro Standard Time\n CHUT: 600,\n // Chuuk Time\n CIST: -480,\n // Clipperton Island Standard Time\n CIT: 480,\n // Central Indonesia Time\n CKT: -600,\n // Cook Island Time\n CLST: -180,\n // Chile Summer Time\n CLT: -240,\n // Chile Standard Time\n COST: -240,\n // Colombia Summer Time\n COT: -300,\n // Colombia Time\n CST: -360,\n // Central Standard Time (North America)\n CT: 480,\n // China time\n CVT: -60,\n // Cape Verde Time\n CXT: 420,\n // Christmas Island Time\n DAVT: 420,\n // Davis Time\n DDUT: 600,\n // Dumont d'Urville Time\n DFT: 60,\n // AIX specific equivalent of Central European Time\n EASST: -300,\n // Easter Island Standard Summer Time\n EAST: -360,\n // Easter Island Standard Time\n EAT: 180,\n // East Africa Time\n ECT: -300,\n // Ecuador Time\n EDT: -240,\n // Eastern Daylight Time (North America)\n EEDT: 180,\n // Eastern European Daylight Time\n EEST: 180,\n // Eastern European Summer Time\n EET: 120,\n // Eastern European Time\n EGST: 0,\n // Eastern Greenland Summer Time\n EGT: -60,\n // Eastern Greenland Time\n EIT: 540,\n // Eastern Indonesian Time\n EST: -300,\n // Eastern Standard Time (North America)\n FET: 180,\n // Further-eastern European Time\n FJT: 720,\n // Fiji Time\n FKST: -180,\n // Falkland Islands Standard Time\n FKT: -240,\n // Falkland Islands Time\n FNT: -120,\n // Fernando de Noronha Time\n GALT: -360,\n // Galapagos Time\n GAMT: -540,\n // Gambier Islands\n GET: 240,\n // Georgia Standard Time\n GFT: -180,\n // French Guiana Time\n GILT: 720,\n // Gilbert Island Time\n GIT: -540,\n // Gambier Island Time\n GMT: 0,\n // Greenwich Mean Time\n GST: -120,\n // South Georgia and the South Sandwich Islands\n GYT: -240,\n // Guyana Time\n HADT: -540,\n // Hawaii-Aleutian Daylight Time\n HAEC: 120,\n // Heure Avancée d'Europe Centrale francised name for CEST\n HAST: -600,\n // Hawaii-Aleutian Standard Time\n HKT: 480,\n // Hong Kong Time\n HMT: 300,\n // Heard and McDonald Islands Time\n HOVT: 420,\n // Khovd Time\n HST: -600,\n // Hawaii Standard Time\n IBST: 0,\n // International Business Standard Time\n ICT: 420,\n // Indochina Time\n IDT: 180,\n // Israel Daylight Time\n IOT: 180,\n // Indian Ocean Time\n IRDT: 270,\n // Iran Daylight Time\n IRKT: 480,\n // Irkutsk Time\n IRST: 210,\n // Iran Standard Time\n IST: 120,\n // Israel Standard Time\n JST: 540,\n // Japan Standard Time\n KGT: 360,\n // Kyrgyzstan time\n KOST: 660,\n // Kosrae Time\n KRAT: 420,\n // Krasnoyarsk Time\n KST: 540,\n // Korea Standard Time\n LHST: 630,\n // Lord Howe Standard Time\n LINT: 840,\n // Line Islands Time\n MAGT: 720,\n // Magadan Time\n MART: -510,\n // Marquesas Islands Time\n MAWT: 300,\n // Mawson Station Time\n MDT: -360,\n // Mountain Daylight Time (North America)\n MET: 60,\n // Middle European Time Same zone as CET\n MEST: 120,\n // Middle European Summer Time Same zone as CEST\n MHT: 720,\n // Marshall Islands\n MIST: 660,\n // Macquarie Island Station Time\n MIT: -510,\n // Marquesas Islands Time\n MMT: 390,\n // Myanmar Time\n MSK: 180,\n // Moscow Time\n MST: -420,\n // Mountain Standard Time (North America)\n MUT: 240,\n // Mauritius Time\n MVT: 300,\n // Maldives Time\n MYT: 480,\n // Malaysia Time\n NCT: 660,\n // New Caledonia Time\n NDT: -90,\n // Newfoundland Daylight Time\n NFT: 660,\n // Norfolk Time\n NPT: 345,\n // Nepal Time\n NST: -150,\n // Newfoundland Standard Time\n NT: -150,\n // Newfoundland Time\n NUT: -660,\n // Niue Time\n NZDT: 780,\n // New Zealand Daylight Time\n NZST: 720,\n // New Zealand Standard Time\n OMST: 360,\n // Omsk Time\n ORAT: 300,\n // Oral Time\n PDT: -420,\n // Pacific Daylight Time (North America)\n PET: -300,\n // Peru Time\n PETT: 720,\n // Kamchatka Time\n PGT: 600,\n // Papua New Guinea Time\n PHOT: 780,\n // Phoenix Island Time\n PKT: 300,\n // Pakistan Standard Time\n PMDT: -120,\n // Saint Pierre and Miquelon Daylight time\n PMST: -180,\n // Saint Pierre and Miquelon Standard Time\n PONT: 660,\n // Pohnpei Standard Time\n PST: -480,\n // Pacific Standard Time (North America)\n PYST: -180,\n // Paraguay Summer Time (South America)\n PYT: -240,\n // Paraguay Time (South America)\n RET: 240,\n // Réunion Time\n ROTT: -180,\n // Rothera Research Station Time\n SAKT: 660,\n // Sakhalin Island time\n SAMT: 240,\n // Samara Time\n SAST: 120,\n // South African Standard Time\n SBT: 660,\n // Solomon Islands Time\n SCT: 240,\n // Seychelles Time\n SGT: 480,\n // Singapore Time\n SLST: 330,\n // Sri Lanka Standard Time\n SRET: 660,\n // Srednekolymsk Time\n SRT: -180,\n // Suriname Time\n SST: 480,\n // Singapore Standard Time\n SYOT: 180,\n // Showa Station Time\n TAHT: -600,\n // Tahiti Time\n THA: 420,\n // Thailand Standard Time\n TFT: 300,\n // Indian/Kerguelen\n TJT: 300,\n // Tajikistan Time\n TKT: 780,\n // Tokelau Time\n TLT: 540,\n // Timor Leste Time\n TMT: 300,\n // Turkmenistan Time\n TOT: 780,\n // Tonga Time\n TVT: 720,\n // Tuvalu Time\n UCT: 0,\n // Coordinated Universal Time\n ULAT: 480,\n // Ulaanbaatar Time\n USZ1: 120,\n // Kaliningrad Time\n UTC: 0,\n // Coordinated Universal Time\n UYST: -120,\n // Uruguay Summer Time\n UYT: -180,\n // Uruguay Standard Time\n UZT: 300,\n // Uzbekistan Time\n VET: -240,\n // Venezuelan Standard Time\n VLAT: 600,\n // Vladivostok Time\n VOLT: 240,\n // Volgograd Time\n VOST: 360,\n // Vostok Station Time\n VUT: 660,\n // Vanuatu Time\n WAKT: 720,\n // Wake Island Time\n WAST: 120,\n // West Africa Summer Time\n WAT: 60,\n // West Africa Time\n WEDT: 60,\n // Western European Daylight Time\n WEST: 60,\n // Western European Summer Time\n WET: 0,\n // Western European Time\n WIT: 420,\n // Western Indonesian Time\n WST: 480,\n // Western Standard Time\n YAKT: 540,\n // Yakutsk Time\n YEKT: 300\n // Yekaterinburg Time\n};\nvar timezoneNames_default = timezoneNames;\n\n// src/data/baseLookups.ts\nvar baseLookups = {\n zone: timezoneNames_default,\n year: twoDigitYears_default,\n meridiem: { am: 0, pm: 12, \"a.m.\": 0, \"p.m.\": 12 },\n month: {\n january: 1,\n jan: 1,\n february: 2,\n feb: 2,\n march: 3,\n mar: 3,\n april: 4,\n apr: 4,\n may: 5,\n june: 6,\n jun: 6,\n july: 7,\n jul: 7,\n august: 8,\n aug: 8,\n september: 9,\n sep: 9,\n october: 10,\n oct: 10,\n november: 11,\n nov: 11,\n december: 12,\n dec: 12\n },\n dayname: {\n sunday: 0,\n sun: 0,\n monday: 1,\n mon: 1,\n tuesday: 2,\n tue: 2,\n wednesday: 3,\n wed: 3,\n thursday: 4,\n thu: 4,\n friday: 5,\n fri: 5,\n saturday: 6,\n sat: 6\n },\n digit: {}\n};\nvar baseLookups_default = baseLookups;\n\n// src/data/templates.ts\nvar latn = {\n MONTHNAME: \"january|february|march|april|may|june|july|august|september|october|november|december|jan\\\\.?|feb\\\\.?|mar\\\\.?|apr\\\\.?|may\\\\.?|jun\\\\.?|jul\\\\.?|aug\\\\.?|sep\\\\.?|oct\\\\.?|nov\\\\.?|dec\\\\.?\",\n DAYNAME: \"sunday|monday|tuesday|wednesday|thursday|friday|saturday|sun\\\\.?|mon\\\\.?|tue\\\\.?|wed\\\\.?|thu\\\\.?|fri\\\\.?|sat\\\\.?\",\n ZONE: \"\\\\(?(?:\" + Object.keys(timezoneNames_default).join(\"|\") + \")\\\\)?\",\n MERIDIEM: \"am|pm|a.m.|p.m.\",\n ORDINAL: \"st|nd|rd|th|\\\\.\",\n YEAR: \"\\\\d{4}|\\\\d{2}\",\n YEAR2: \"\\\\d{2}\",\n YEAR4: \"\\\\d{4}\",\n YEAR6: \"-\\\\d{6}|\\\\+?\\\\d{5,6}\",\n MONTH: \"1[0-2]|0?[1-9]\",\n MONTH2: \"1[0-2]|0[1-9]\",\n DAY: \"3[01]|[12]\\\\d|0?[1-9]\",\n DAY2: \"3[01]|[12]\\\\d|0[1-9]\",\n OFFSET: \"(?:GMT)?[\\xB1\\u2212+-](?:[01]\\\\d[0-5]\\\\d|[01]\\\\d:[0-5]\\\\d|[01]?\\\\d)\",\n H24: \"[01]\\\\d|2[0-3]\",\n H12: \"0?[1-9]|1[012]\",\n MIN: \"[0-5]\\\\d\",\n // Although JavaScript dates can't account for leap seconds,\n // we can parse \"60\" and JavaScript will roll over to the next day\n SEC: \"[0-5]\\\\d|60\",\n MS: \"\\\\d{9}|\\\\d{6}|\\\\d{1,3}\",\n GAP: \"[\\\\s/.,-]{1,}\"\n};\nvar other = {\n ...latn,\n YEAR: \"*{4}|*{2}\",\n YEAR4: \"*{4}\",\n YEAR6: \"-*{6}|\\\\+?*{5,6}\",\n MONTH: \"*{1,2}\",\n MONTH2: \"*{2}\",\n DAY: \"*{1,2}\",\n DAY2: \"*{2}\",\n OFFSET: \"(?:GMT)?[\\xB1\\u2212+-](?:*{4}|*{2}:*{2}|*{1,2})\",\n H24: \"*{2}\",\n H12: \"*{1,2}\",\n MIN: \"*{2}\",\n SEC: \"*{2}\",\n MS: \"*{9}|*{6}|*{3}\"\n};\n\n// src/LocaleHelper/LocaleHelper.ts\nvar cache2 = {};\nvar LocaleHelper = class _LocaleHelper {\n /**\n * The locale string\n */\n locale;\n /**\n * Lookups for zone, year, meridiem, month, dayname, digit\n */\n lookups;\n /**\n * Template variables including MONTHNAME, MONTH, ZONE, etc.\n */\n vars;\n /**\n * The numbering system to use (latn=standard arabic digits)\n */\n numberingSystem;\n /**\n * The base name of the locale (e.g. en-US)\n */\n baseName;\n /**\n * Date options for the locale\n * @property locale: string;\n * @property calendar: string;\n * @property numberingSystem: string;\n * @property timeZone: string;\n * @property hour12?: boolean;\n * @property weekday?: string;\n * @property era?: string;\n * @property year?: string;\n * @property month?: string;\n * @property day?: string;\n * @property hour?: string;\n * @property minute?: string;\n * @property second?: string;\n * @property timeZoneName?: string;\n */\n dateOptions;\n /**\n * Get a singleton instance with the given locale\n * @param locale such as en, en-US, es, fr-FR, etc.\n * @returns\n */\n static factory(locale = defaultLocale_default) {\n if (!cache2[locale.toLowerCase()]) {\n cache2[locale.toLowerCase()] = new _LocaleHelper(locale);\n }\n return cache2[locale.toLowerCase()];\n }\n /**\n * Create a new instance with the given locale\n * @param locale such as en, en-US, es, fr-FR, etc.\n */\n constructor(locale = defaultLocale_default) {\n this.locale = locale;\n this.lookups = { ...baseLookups_default };\n this.vars = { ...latn };\n const fmt = new Intl.NumberFormat(this.locale);\n this.numberingSystem = fmt.resolvedOptions().numberingSystem;\n this.dateOptions = new Intl.DateTimeFormat(this.locale).resolvedOptions();\n this.baseName = new Intl.Locale(this.locale).baseName;\n this.build();\n }\n /**\n * Cast a string to an integer, minding numbering system\n * @param digitString Such as \"2020\" or \"二〇二〇\"\n * @returns\n */\n toInt(digitString) {\n if (typeof digitString === \"number\") {\n return digitString;\n }\n if (typeof digitString !== \"string\") {\n return void 0;\n }\n if (this.numberingSystem === \"latn\" && !this.baseName.startsWith(\"zh\")) {\n const num = parseInt(digitString, 10);\n if (!isNaN(num)) {\n return num;\n }\n }\n let latnDigitString = \"\";\n for (let i = 0; i < digitString.length; i++) {\n latnDigitString += String(this.lookups.digit[digitString[i]]);\n }\n return parseInt(latnDigitString, 10);\n }\n millisecondToInt(msString) {\n if (typeof msString === \"number\") {\n return msString;\n }\n if (typeof msString !== \"string\") {\n return void 0;\n }\n const digits = msString.slice(0, 3);\n if (digits.length === 1) {\n return this.toInt(digits) * 100;\n } else if (digits.length === 2) {\n return this.toInt(digits) * 10;\n }\n return this.toInt(digits);\n }\n monthNameToInt(monthName) {\n if (typeof monthName !== \"string\") {\n return void 0;\n }\n const lower = monthName.toLocaleLowerCase(this.locale).replace(/\\.$/, \"\");\n return this.lookups.month[lower] || 12;\n }\n h12ToInt(digitString, ampm) {\n if (typeof digitString !== \"string\") {\n return void 0;\n }\n const meridiemOffset = this.lookups.meridiem[ampm?.toLowerCase()] || 0;\n let hourInt = this.toInt(digitString);\n if (hourInt < 12 && meridiemOffset === 12) {\n hourInt += 12;\n }\n if (hourInt === 12 && meridiemOffset === 0) {\n hourInt = 0;\n }\n return hourInt;\n }\n zoneToOffset(zoneName) {\n if (typeof zoneName !== \"string\") {\n return void 0;\n }\n zoneName = zoneName.replace(/[^a-z\\s]/gi, \"\");\n return this.lookups.zone[zoneName];\n }\n /**\n * Convert an offset string to Numeric minutes (e.g. \"-0500\", \"+5\", \"+03:30\")\n * @param offsetString\n */\n offsetToMinutes(offsetString) {\n if (typeof offsetString !== \"string\") {\n return void 0;\n }\n const captured = offsetString.match(/^(?:GMT)?([±−+-])(..?):?(..)?$/);\n if (captured) {\n const [, sign, hours, minutes] = captured;\n return (sign === \"-\" || sign === \"\\u2212\" ? -1 : 1) * (this.toInt(hours) * 60 + this.toInt(minutes || 0));\n }\n return 0;\n }\n /**\n * Build lookups for digits, month names, day names, and meridiems based on the locale\n */\n build() {\n if (this.dateOptions.numberingSystem === \"latn\") {\n this.lookups.digit = defaultLookup;\n } else {\n this.buildNumbers();\n }\n if (!/^en/i.test(this.locale)) {\n this.buildMonthNames();\n this.buildDaynames();\n if (!/zh/i.test(this.locale)) {\n this.buildMeridiems();\n }\n }\n }\n /**\n * Build lookups for non-arabic digits\n */\n buildNumbers() {\n const { group, lookup } = buildDigits(this.numberingSystem);\n this.lookups.digit = lookup;\n for (const name in other) {\n if (!other.hasOwnProperty(name)) {\n continue;\n }\n this.vars[name] = other[name].replace(/\\*/g, group);\n }\n }\n /**\n * Build lookup for month names\n */\n buildMonthNames() {\n const vars = {};\n const lookup = {};\n if (/^fi/i.test(this.locale)) {\n const months = \"tammi|helmi|maalis|huhti|touko|kes\\xE4|hein\\xE4|elo|syys|loka|marras|joulu\";\n months.split(\"|\").forEach((month, idx) => {\n [\"\", \"k\", \"kuu\", \"kuuta\"].forEach((suffix, i) => {\n const maybePeriod = i < 2 ? \"\\\\.?\" : \"\";\n vars[month + suffix + maybePeriod] = true;\n lookup[month + suffix] = idx + 1;\n });\n });\n } else {\n const dates = [];\n const findMonth = (item) => item.type === \"month\";\n for (let monthIdx = 0; monthIdx < 12; monthIdx++) {\n dates.push(new Date(2017, monthIdx, 1));\n }\n const dateStyles = [\"full\", \"long\", \"medium\"];\n for (const dateStyle of dateStyles) {\n const format2 = Intl.DateTimeFormat(this.locale, { dateStyle });\n for (let monthIdx = 0; monthIdx < 12; monthIdx++) {\n const parts = format2.formatToParts(dates[monthIdx]);\n let text = parts.find(findMonth).value.toLocaleLowerCase(this.locale);\n if (/^\\d+$/.test(text)) {\n continue;\n }\n if (/^ko/i.test(this.locale)) {\n text += \"\\uC6D4\";\n }\n if (dateStyle === \"medium\") {\n text = text.replace(/\\.$/, \"\");\n vars[`${text}\\\\.?`] = true;\n } else {\n vars[text] = true;\n }\n lookup[text] = monthIdx + 1;\n }\n }\n const format = Intl.DateTimeFormat(this.locale, { month: \"short\" });\n for (let monthIdx = 0; monthIdx < 12; monthIdx++) {\n const parts = format.formatToParts(dates[monthIdx]);\n let text = parts.find(findMonth).value.toLocaleLowerCase(this.locale);\n text = text.replace(/\\.$/, \"\");\n vars[`${text}\\\\.?`] = true;\n lookup[text] = monthIdx + 1;\n }\n }\n this.vars.MONTHNAME = Object.keys(vars).join(\"|\");\n this.lookups.month = lookup;\n }\n /**\n * Build lookup for day name\n */\n buildDaynames() {\n const dates = [];\n const findDay = (item) => item.type === \"weekday\";\n for (let dayIndex = 0; dayIndex < 7; dayIndex++) {\n dates.push(new Date(2017, 0, dayIndex + 1));\n }\n const weekdays = [\"long\", \"short\"];\n const list = [];\n const lookup = {};\n for (const weekday of weekdays) {\n const format = Intl.DateTimeFormat(this.locale, { weekday });\n for (let dayIndex = 0; dayIndex < 7; dayIndex++) {\n const parts = format.formatToParts(dates[dayIndex]);\n let text = parts.find(findDay).value.toLocaleLowerCase(this.locale);\n if (weekday === \"short\") {\n text = text.replace(/\\.$/, \"\");\n list.push(`${text}\\\\.?`);\n } else {\n list.push(text);\n }\n lookup[text] = dayIndex;\n }\n }\n this.vars.DAYNAME = list.join(\"|\");\n this.lookups.dayname = lookup;\n }\n /**\n * Build lookup for am/pm\n */\n buildMeridiems() {\n const dates = [new Date(2017, 0, 1), new Date(2017, 0, 1, 23, 0, 0)];\n const findDayPeriod = (item) => item.type === \"dayPeriod\";\n const list = [];\n const lookup = {};\n const format = Intl.DateTimeFormat(this.locale, { timeStyle: \"long\" });\n for (let i = 0; i < 2; i++) {\n const parts = format.formatToParts(dates[i]);\n const dayPeriod = parts.find(findDayPeriod);\n if (!dayPeriod) {\n return;\n }\n const text = dayPeriod.value.toLocaleLowerCase(this.locale);\n list.push(text);\n lookup[text] = i * 12;\n }\n this.vars.MERIDIEM = list.join(\"|\");\n this.lookups.meridiem = lookup;\n }\n /**\n * Compile template into a RegExp and return it\n * @param template The template string such as (_YEAR_)-(_MONTH_)-(_DAY_)\n */\n compile(template) {\n const regexString = template.replace(/_([A-Z0-9]+)_/g, ($0, $1) => {\n if (!this.vars[$1]) {\n throw new Error(`Template string contains invalid variable _${$1}_`);\n }\n return this.vars[$1];\n });\n return new RegExp(regexString, \"i\");\n }\n};\n\n// src/data/mdyLocales.ts\nvar mdyLocales = [\n \"ee-TG\",\n // Togo (Ewe)\n \"en-AS\",\n // American Samoa\n \"en-CA\",\n // Canada\n \"en-FM\",\n // Federated States of Micronesia\n \"en-GH\",\n // Ghana\n \"en-GU\",\n // Guam\n \"en-KE\",\n // Kenya\n \"en-KY\",\n // Cayman Islands\n \"en-MH\",\n // Marshall Islands\n \"en-MP\",\n // Northern Mariana Islands\n \"en-US\",\n // United States\n \"en-VI\",\n // US Virgin Islands\n \"en-WS\",\n // Western Samoa\n \"jp-JP\",\n // Japan\n \"sm-AS\",\n // American Samoa (Samoan)\n \"sm-SM\"\n // Samoa\n];\n\n// src/data/unitShortcuts.ts\nvar unitShortcuts = {\n y: \"year\",\n M: \"month\",\n d: \"day\",\n w: \"week\",\n h: \"hour\",\n m: \"minute\",\n s: \"second\",\n ms: \"millisecond\"\n};\nvar unitShortcuts_default = unitShortcuts;\n\n// src/patterns/patterns.ts\nvar nowGetter = {\n now: () => /* @__PURE__ */ new Date()\n};\nfunction handlerWith(units) {\n return function handler(matches) {\n const result = {};\n for (let i = 0, len = units.length; i < len; i++) {\n const unit = units[i];\n if (unit) {\n result[unit] = matches[i];\n }\n }\n return result;\n };\n}\nfunction compile(helper) {\n const patterns = [\n {\n name: \"timestampWithOffset\",\n regex: helper.compile(\n \"^(_YEAR4_)-(_MONTH_)-(_DAY_)[T ](_H24_):(_MIN_):(_SEC_)(?:.(_MS_))? ?(_OFFSET_|Z)?$\"\n ),\n handler: handlerWith([\n \"\",\n \"year\",\n \"month\",\n \"day\",\n \"hour\",\n \"minute\",\n \"second\",\n \"millisecond\",\n \"offset\"\n ])\n },\n {\n name: \"timestampWithZone\",\n regex: helper.compile(\n \"^(_YEAR4_)-(_MONTH_)-(_DAY_)[T ](_H24_):(_MIN_):(_SEC_)(?:.(_MS_))?\\\\s*(_ZONE_)$\"\n ),\n handler: handlerWith([\n \"\",\n \"year\",\n \"month\",\n \"day\",\n \"hour\",\n \"minute\",\n \"second\",\n \"millisecond\",\n \"zone\"\n ])\n },\n {\n name: \"timestampWithOffsetAndZone\",\n regex: helper.compile(\n \"^(_YEAR4_)-(_MONTH_)-(_DAY_)[T ](_H24_):(_MIN_):(_SEC_)(?:.(_MS_))? (_OFFSET_|Z)\\\\s*(_ZONE_)$\"\n ),\n handler: handlerWith([\n \"\",\n \"year\",\n \"month\",\n \"day\",\n \"hour\",\n \"minute\",\n \"second\",\n \"millisecond\",\n \"offset\"\n ])\n },\n {\n name: \"chinese\",\n regex: helper.compile(\n `^(${chineseGroup}{2,4})\\\\s*\\u5E74\\\\s*(${chineseGroup}{1,2})\\\\s*\\u6708\\\\s*(${chineseGroup}{1,2})\\\\s*\\u65E5$`\n ),\n handler: handlerWith([\"\", \"year\", \"month\", \"day\"])\n },\n {\n name: \"korean\",\n regex: helper.compile(\"^(_YEAR_)\\uB144\\\\s*(_MONTH_)\\uC6D4\\\\s*(_DAY_)\\uC77C$\"),\n handler: handlerWith([\"\", \"year\", \"month\", \"day\"])\n },\n {\n name: \"twitter\",\n regex: /^(?:sun|mon|tue|wed|thu|fri|sat) (jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec) (\\d{2}) (\\d{2}):(\\d{2}):(\\d{2}) ([+-]\\d{4}) (\\d{4})$/i,\n handler: handlerWith([\n \"\",\n \"monthname\",\n \"day\",\n \"hour\",\n \"minute\",\n \"second\",\n \"offset\",\n \"year\"\n ])\n },\n {\n name: \"today\",\n regex: /^(now|today|tomorrow|yesterday)$/i,\n handler: function(match) {\n const now = nowGetter.now();\n const aDay = 24 * 60 * 60 * 1e3;\n const keyword = match[0].toLowerCase();\n const toAdd = {\n now: 0,\n today: 0,\n tomorrow: aDay,\n yesterday: -1 * aDay\n }[keyword];\n if (toAdd !== 0) {\n now.setTime(now.getTime() + toAdd);\n }\n const result = {\n year: now.getFullYear(),\n month: now.getMonth() + 1,\n day: now.getDate()\n };\n if (keyword === \"now\") {\n return {\n ...result,\n hour: now.getHours(),\n minute: now.getMinutes(),\n second: now.getSeconds(),\n millisecond: now.getMilliseconds()\n };\n }\n return result;\n }\n },\n {\n name: \"ago\",\n regex: /^(\\+|-|in|) ?([\\d.]+) ?(years?|months?|weeks?|days?|hours?|minutes?|seconds?|milliseconds?|ms|s|m|h|w|d|M|y)( ago)?$/i,\n handler: function([, sign, amount, unit, isAgo]) {\n amount = parseFloat(amount);\n if (unit.length <= 2) {\n unit = unitShortcuts_default[unit];\n } else {\n unit = unit.replace(/s$/, \"\");\n unit = unit.toLowerCase();\n }\n if (unit === \"week\") {\n unit = \"day\";\n amount *= 7;\n }\n if (sign === \"-\" || isAgo) {\n amount *= -1;\n }\n const now = nowGetter.now();\n if (unit === \"millisecond\") {\n now.setUTCMilliseconds(now.getUTCMilliseconds() + amount);\n } else if (unit === \"second\") {\n now.setUTCSeconds(now.getUTCSeconds() + amount);\n } else if (unit === \"minute\") {\n now.setUTCMinutes(now.getUTCMinutes() + amount);\n } else if (unit === \"hour\") {\n now.setUTCHours(now.getUTCHours() + amount);\n } else if (unit === \"day\") {\n now.setUTCDate(now.getUTCDate() + amount);\n } else if (unit === \"month\") {\n now.setUTCMonth(now.getUTCMonth() + amount);\n } else if (unit === \"year\") {\n now.setUTCFullYear(now.getUTCFullYear() + amount);\n }\n return {\n year: now.getUTCFullYear(),\n month: now.getUTCMonth() + 1,\n day: now.getUTCDate(),\n hour: now.getUTCHours(),\n minute: now.getUTCMinutes(),\n second: now.getUTCSeconds(),\n millisecond: now.getUTCMilliseconds()\n };\n }\n },\n {\n name: \"atSeconds\",\n regex: /^@(\\d+)$/,\n handler: function(matches) {\n const seconds = parseInt(matches[1], 10);\n const date = new Date(seconds * 1e3);\n return {\n year: date.getUTCFullYear(),\n month: date.getUTCMonth() + 1,\n day: date.getUTCDate(),\n hour: date.getUTCHours(),\n minute: date.getUTCMinutes(),\n second: date.getUTCSeconds()\n };\n }\n },\n {\n name: \"microsoftJson\",\n regex: /^\\/Date\\((\\d+)([+-]\\d{4})?\\)\\/$/,\n handler: function(matches) {\n const milliseconds = parseInt(matches[1], 10);\n const date = new Date(milliseconds);\n return {\n year: date.getUTCFullYear(),\n month: date.getUTCMonth() + 1,\n day: date.getUTCDate(),\n hour: date.getUTCHours(),\n minute: date.getUTCMinutes(),\n second: date.getUTCSeconds(),\n millisecond: date.getUTCMilliseconds(),\n offset: matches[2]\n };\n }\n },\n //\n // partial-matching formats\n //\n {\n name: \"full24\",\n regex: helper.compile(\n \"(?:^|[\\\\sT])(_H24_):(_MIN_):(_SEC_)(?:\\\\.(_MS_))?(Z)?$\"\n ),\n handler: handlerWith([\n \"\",\n \"hour\",\n \"minute\",\n \"second\",\n \"millisecond\",\n \"zone\"\n ])\n },\n {\n name: \"zone24\",\n regex: helper.compile(\n \"(_H24_):(_MIN_):(_SEC_)(?:\\\\.(_MS_))?[\\\\s\\\\[(]*(_ZONE_)?[\\\\s\\\\])]*$\"\n ),\n handler: handlerWith([\n \"\",\n \"hour\",\n \"minute\",\n \"second\",\n \"millisecond\",\n \"zone\"\n ])\n },\n {\n name: \"hms12WithOffset\",\n regex: helper.compile(\n \"(_H12_):(_MIN_):(_SEC_)\\\\s*(_MERIDIEM_)\\\\s*(_OFFSET_)\"\n ),\n handler: handlerWith([\n \"\",\n \"hour\",\n \"minute\",\n \"second\",\n \"meridiem\",\n \"offset\"\n ])\n },\n {\n name: \"hms12\",\n regex: helper.compile(\"(_H12_):(_MIN_):(_SEC_)\\\\s*(_MERIDIEM_)\"),\n handler: handlerWith([\"\", \"hour\", \"minute\", \"second\", \"meridiem\"])\n },\n {\n name: \"hms24\",\n regex: helper.compile(\"(_H24_):(_MIN_):(_SEC_)(?:\\\\.(_MS_))?\"),\n handler: handlerWith([\"\", \"hour\", \"minute\", \"second\", \"millisecond\"])\n },\n {\n name: \"hm12\",\n regex: helper.compile(\"(_H12_):(_MIN_)\\\\s*(_MERIDIEM_)\"),\n handler: handlerWith([\"\", \"hour\", \"minute\", \"meridiem\"])\n },\n {\n name: \"hm24\",\n regex: helper.compile(\"(_H24_):(_MIN_)\"),\n handler: handlerWith([\"\", \"hour\", \"minute\"])\n },\n {\n name: \"h12\",\n regex: helper.compile(\"(_H12_)\\\\s*(_MERIDIEM_)\"),\n handler: handlerWith([\"\", \"hour\", \"meridiem\"])\n },\n {\n name: \"8digit\",\n regex: /^((?:19|20)\\d{2})(\\d{2})(\\d{2})$/,\n handler: handlerWith([\"\", \"year\", \"month\", \"day\"])\n },\n {\n name: \"yearMonthnameDay\",\n regex: helper.compile(\n \"(_YEAR4_)[\\\\s.-]+(_MONTHNAME_)[\\\\s,.-]+(_DAY_)(_ORDINAL_)?\"\n ),\n handler: handlerWith([\"\", \"year\", \"monthname\", \"day\"])\n },\n {\n name: \"dayMonthnameYear\",\n regex: helper.compile(\n \"(_DAY_)(_ORDINAL_)?[\\\\s.-]*(_MONTHNAME_)[\\\\s,.-]+(_YEAR_)\"\n ),\n handler: handlerWith([\"\", \"day\", \"\", \"monthname\", \"year\"])\n },\n {\n name: \"monthnameDayYear\",\n regex: helper.compile(\n \"(_MONTHNAME_)[\\\\s.-]*(_DAY_)(_ORDINAL_)?[\\\\s,.-]+(_YEAR_)\"\n ),\n handler: handlerWith([\"\", \"monthname\", \"day\", \"\", \"year\"])\n },\n {\n name: \"dayMonthname\",\n regex: helper.compile(\"\\\\b(_DAY_)(_ORDINAL_)?[\\\\s.-]*(_MONTHNAME_)\\\\b\"),\n handler: handlerWith([\"\", \"day\", \"\", \"monthname\"])\n },\n {\n name: \"monthnameDay\",\n regex: helper.compile(\"\\\\b(_MONTHNAME_)[\\\\s.-]*(_DAY_)(_ORDINAL_)?\\\\b\"),\n handler: handlerWith([\"\", \"monthname\", \"day\"])\n },\n {\n name: \"hmsNoMeridiem\",\n regex: helper.compile(\"\\\\b(_H12_|_H24_):(_MIN_):(_SEC_)\\\\b\"),\n handler: handlerWith([\"\", \"hour\", \"minute\", \"second\"])\n },\n {\n name: \"hmNoMeridiem\",\n regex: helper.compile(\"\\\\b(_H12_|_H24_):(_MIN_)\\\\b\"),\n handler: handlerWith([\"\", \"hour\", \"minute\"])\n },\n {\n name: \"ymd\",\n regex: helper.compile(\"(_YEAR4_)([.-])(_MONTH_)\\\\2+(_DAY_)\"),\n handler: handlerWith([\"\", \"year\", \"\", \"month\", \"day\"])\n },\n {\n name: \"mdy\",\n regex: helper.compile(\"(_MONTH_)([/-])(_DAY_)\\\\2(_YEAR_)\"),\n handler: handlerWith([\"\", \"month\", \"\", \"day\", \"year\"])\n },\n {\n name: \"dmy\",\n regex: helper.compile(\n \"(_DAY_)(?:_ORDINAL_)?[./\\\\s-]+(_MONTH_)[./\\\\s-]+(_YEAR_)\"\n ),\n handler: handlerWith([\"\", \"day\", \"month\", \"year\"])\n },\n {\n name: \"yearLoose\",\n regex: helper.compile(\"_YEAR4_\"),\n handler: handlerWith([\"year\"])\n },\n {\n name: \"dayMonthnameLoose\",\n regex: helper.compile(\"(_DAY_)[\\\\s.]*(_MONTHNAME_)\"),\n handler: handlerWith([\"\", \"day\", \"monthname\"])\n },\n {\n name: \"monthnameDayLoose\",\n regex: helper.compile(\"(_MONTHNAME_)[\\\\s.]*(_DAY_)\"),\n handler: handlerWith([\"\", \"monthname\", \"day\"])\n },\n {\n name: \"monthname\",\n regex: helper.compile(\"_MONTHNAME_\"),\n handler: handlerWith([\"monthname\"])\n },\n {\n name: \"year4\",\n regex: helper.compile(\"_YEAR4_\"),\n handler: handlerWith([\"year\"])\n },\n {\n name: \"md\",\n regex: helper.compile(\"(_MONTH_)[/-](_DAY_)\"),\n handler: handlerWith([\"\", \"month\", \"day\"])\n },\n {\n name: \"dm\",\n regex: helper.compile(\"(_DAY_)(?:_ORDINAL_)?[./\\\\s-]+(_MONTH_)\"),\n handler: handlerWith([\"\", \"day\", \"month\"])\n },\n {\n name: \"day\",\n regex: helper.compile(\"_DAY_\"),\n handler: handlerWith([\"day\"])\n },\n {\n name: \"year2\",\n regex: helper.compile(\"_YEAR2_\"),\n handler: handlerWith([\"year\"])\n },\n {\n name: \"onlyZone\",\n regex: helper.compile(\"_ZONE_\"),\n handler: handlerWith([\"zone\"])\n },\n {\n name: \"onlyOffset\",\n regex: helper.compile(\"_OFFSET_\"),\n handler: handlerWith([\"offset\"])\n }\n ];\n const twoLetterLocale = helper.baseName.slice(0, 5);\n if (mdyLocales.includes(twoLetterLocale)) {\n return patterns;\n }\n return patterns.filter((p) => ![\"mdy\", \"md\"].includes(p.name));\n}\n\n// src/PatternMatcher/PatternMatcher.ts\nvar PatternMatcher = class {\n doneChecker;\n fallback;\n patterns;\n formatter;\n constructor({\n doneChecker: doneChecker2,\n fallback,\n patterns,\n formatter\n }) {\n this.doneChecker = doneChecker2;\n this.fallback = fallback;\n this.patterns = patterns;\n this.formatter = formatter;\n }\n attempt(input) {\n if (typeof input !== \"string\") {\n return this.fallback(input);\n }\n let workingString = input.trim();\n const rawResult = {};\n let hadMatch = false;\n for (const pattern of this.patterns) {\n const matches = workingString.match(pattern.regex);\n if (!matches) {\n continue;\n }\n hadMatch = true;\n const result = pattern.handler(matches);\n if (result) {\n for (const [key, value] of Object.entries(result)) {\n if (!(key in rawResult) && value !== void 0) {\n rawResult[key] = value;\n }\n }\n workingString = workingString.slice(0, matches.index) + workingString.slice(matches.index + matches[0].length + 1);\n workingString = workingString.trim();\n if (this.doneChecker(rawResult, workingString)) {\n break;\n }\n }\n }\n return hadMatch ? this.formatter(rawResult) : this.fallback(input);\n }\n};\n\n// src/PatternMatcher/getMatcher.ts\nvar finalFields = [\n \"year\",\n \"month\",\n \"day\",\n \"hour\",\n \"minute\",\n \"second\",\n \"millisecond\",\n \"offset\"\n];\nvar matcherByLocale = {};\nfunction getMatcher(locale) {\n if (!matcherByLocale[locale]) {\n const helper = LocaleHelper.factory(locale);\n matcherByLocale[locale] = new PatternMatcher({\n doneChecker,\n fallback: getFallback(locale),\n patterns: compile(helper),\n formatter: getFormatter(helper)\n });\n }\n return matcherByLocale[locale];\n}\nfunction doneChecker(res, input) {\n return input === \"\" || /^\\s+$/.test(input) || \"year\" in res && (\"month\" in res || \"monthname\" in res) && \"day\" in res && \"hour\" in res && \"minute\" in res && \"second\" in res && \"millisecond\" in res && (\"zone\" in res || \"offset\" in res);\n}\nfunction getFallback(locale) {\n return function handleInvalid(input) {\n let string = String(input).slice(0, 50);\n if (string === \"\") {\n string = \"(empty string)\";\n }\n return { invalid: `Unable to parse \"${string}\" with locale \"${locale}\"` };\n };\n}\nfunction getFormatter(helper) {\n return function format(extracted) {\n const result = {};\n for (const [name, value] of Object.entries(extracted)) {\n if (name === \"monthname\") {\n if (value) {\n const month = helper.monthNameToInt(value);\n if (month !== void 0) {\n result.month = month;\n }\n }\n } else if (name === \"hour\" && extracted.meridiem) {\n const hour = helper.h12ToInt(value, extracted.meridiem);\n if (hour !== void 0) {\n result.hour = hour;\n }\n } else if (name === \"zone\") {\n if (value) {\n const offset = helper.zoneToOffset(value);\n if (offset !== void 0) {\n result.offset = offset;\n }\n }\n } else if (name === \"offset\") {\n const offset = helper.offsetToMinutes(value);\n if (offset !== void 0) {\n result.offset = offset;\n }\n } else if (name === \"millisecond\") {\n const casted = helper.millisecondToInt(value);\n if (typeof casted === \"number\") {\n result.millisecond = casted;\n }\n } else if (finalFields.includes(name)) {\n const casted = helper.toInt(value);\n if (typeof casted === \"number\") {\n result[name] = casted;\n }\n }\n }\n if (result.year < 100) {\n result.year = twoDigitYears_default[result.year];\n }\n if (result.year && helper.dateOptions.calendar === \"buddhist\") {\n result.year -= 543;\n }\n return result;\n };\n}\n\n// src/data/preprocessors.ts\nvar periodsInsteadOfColons = [\n [/([^\\d.]+)(\\d{1,2})\\.(\\d{2})\\.(\\d{2})(\\D|$)/, \"$1$2:$3:$4$5\"],\n [/([^\\d.]+)(\\d{1,2})\\.(\\d{2})(\\D|$)/, \"$1$2:$3$4\"]\n];\nvar preprocessors = {\n ar: [[/ /g, \" \"]],\n // Some built-in formats contain non-breaking space\n bn: [[/,/g, \"\"]],\n zh: [\n // in Chinese, am/pm comes before the digits\n [/早上\\s*([\\d:]+)/, \"$1am\"],\n [/凌晨\\s*([\\d:]+)/, \"$1am\"],\n [/上午\\s*([\\d:]+)/, \"$1am\"],\n [/下午\\s*([\\d:]+)/, \"$1pm\"],\n [/晚上\\s*([\\d:]+)/, \"$1pm\"]\n // Chinese \"time\"\n // [/\\[.+?時間]/, ''],\n ],\n he: [[/ב/gi, \"\"]],\n // \"of\" in various languages\n de: [[/ um /g, \" \"]],\n pt: [[/\\sde /gi, \" \"]],\n es: [[/\\sde /gi, \" \"]],\n da: [[/\\sden /gi, \" \"], ...periodsInsteadOfColons],\n // Russian symbol after years\n ru: [[/ г\\./g, \"\"]],\n th: [\n // Thai \"at/on\"\n // [/ที่/gi, ''],\n [/\\s*นาฬิกา\\s*/i, \":\"],\n // \"hour\"\n [/\\s*นาที\\s*/i, \":\"],\n // \"minute\"\n [/\\s*วินาที\\s*/i, \" \"]\n // \"second\"\n ],\n ko: [\n [/\\s*시\\s*/, \":\"],\n // \"hour\"\n [/\\s*분\\s*/, \":\"],\n // \"minute\"\n [/\\s*초\\s*/, \"\"],\n // \"second\"\n [/(오전|오후)\\s*([\\d:]+)/, \"$2$1\"],\n // move AM/PM to the end\n [/(\\d{4})\\. (\\d{1,2})\\. (\\d{1,2})\\./, \"$1-$2-$3\"]\n ],\n fi: periodsInsteadOfColons,\n id: periodsInsteadOfColons,\n fr: [\n [/(\\d{2}) h /, \"$1:\"],\n [/(\\d{2}) min /, \"$1:\"],\n [/(\\d{2}) s /, \"$1\"]\n ]\n};\nvar preprocessors_default = preprocessors;\n\n// src/runPreprocessors/runPreprocessors.ts\nfunction runPreprocessors(dateString, locale) {\n const twoLetterLocale = locale.slice(0, 2).toLowerCase();\n const replacers = preprocessors_default[twoLetterLocale];\n if (!replacers) {\n return dateString;\n }\n for (const [find, replace] of replacers) {\n dateString = dateString.replace(find, replace);\n }\n return dateString;\n}\n\n// src/main.ts\nfunction attempt(dateStr, locale = defaultLocale_default) {\n const matcher = getMatcher(locale);\n const processed = runPreprocessors(dateStr, locale);\n return matcher.attempt(processed);\n}\nfunction fromObject(parsed) {\n if (parsed.month && parsed.day && parsed.year === void 0) {\n parsed.year = (/* @__PURE__ */ new Date()).getFullYear();\n }\n if (parsed.second === 60) {\n parsed.second = 59;\n }\n const date = new MaybeValidDate(\n parsed.year,\n parsed.month - 1,\n parsed.day,\n parsed.hour || 0,\n parsed.minute || 0,\n parsed.second || 0,\n parsed.millisecond || 0\n );\n if (typeof parsed.offset === \"number\") {\n return new MaybeValidDate(date.valueOf() - parsed.offset * 60 * 1e3);\n }\n return date;\n}\nfunction fromString(dateStr, locale = defaultLocale_default) {\n const result = attempt(dateStr, locale);\n const date = result.invalid ? new MaybeValidDate(NaN) : fromObject(result);\n if (!date.isValid()) {\n date.invalid = `Unable to parse date \"${dateStr}\"`;\n }\n return date;\n}\nfunction fromAny(any, locale = defaultLocale_default) {\n if (any instanceof Date) {\n return new MaybeValidDate(any.valueOf());\n }\n if (typeof any === \"number\") {\n return new MaybeValidDate(any);\n }\n return fromString(any, locale);\n}\nDate.fromString = MaybeValidDate.fromString = fromString;\nDate.fromAny = MaybeValidDate.fromAny = fromAny;\nvar parser = {\n fromString,\n fromAny,\n fromObject,\n attempt\n};\nif (typeof window !== \"undefined\") {\n window.anyDateParser = parser;\n}\nvar main_default = parser;\nexport {\n attempt,\n main_default as default,\n fromAny,\n fromObject,\n fromString\n};\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nexport default arrayMap;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nexport default eq;\n","import eq from './eq.js';\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nexport default assocIndexOf;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nexport default listCacheDelete;\n","import listCacheClear from './_listCacheClear.js';\nimport listCacheDelete from './_listCacheDelete.js';\nimport listCacheGet from './_listCacheGet.js';\nimport listCacheHas from './_listCacheHas.js';\nimport listCacheSet from './_listCacheSet.js';\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nexport default ListCache;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nexport default listCacheClear;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nexport default listCacheGet;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nexport default listCacheHas;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nexport default listCacheSet;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nexport default freeGlobal;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nexport default root;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nexport default Symbol;\n","import Symbol from './_Symbol.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nexport default getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nexport default objectToString;\n","import Symbol from './_Symbol.js';\nimport getRawTag from './_getRawTag.js';\nimport objectToString from './_objectToString.js';\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nexport default baseGetTag;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nexport default isObject;\n","import baseGetTag from './_baseGetTag.js';\nimport isObject from './isObject.js';\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nexport default isFunction;\n","import root from './_root.js';\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nexport default coreJsData;\n","import coreJsData from './_coreJsData.js';\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nexport default isMasked;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nexport default toSource;\n","import isFunction from './isFunction.js';\nimport isMasked from './_isMasked.js';\nimport isObject from './isObject.js';\nimport toSource from './_toSource.js';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nexport default baseIsNative;\n","import baseIsNative from './_baseIsNative.js';\nimport getValue from './_getValue.js';\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nexport default getNative;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nexport default getValue;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nexport default Map;\n","import getNative from './_getNative.js';\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nexport default nativeCreate;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nexport default hashGet;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nexport default hashHas;\n","import hashClear from './_hashClear.js';\nimport hashDelete from './_hashDelete.js';\nimport hashGet from './_hashGet.js';\nimport hashHas from './_hashHas.js';\nimport hashSet from './_hashSet.js';\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nexport default Hash;\n","import nativeCreate from './_nativeCreate.js';\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nexport default hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nexport default hashDelete;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nexport default hashSet;\n","import isKeyable from './_isKeyable.js';\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nexport default getMapData;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nexport default isKeyable;\n","import mapCacheClear from './_mapCacheClear.js';\nimport mapCacheDelete from './_mapCacheDelete.js';\nimport mapCacheGet from './_mapCacheGet.js';\nimport mapCacheHas from './_mapCacheHas.js';\nimport mapCacheSet from './_mapCacheSet.js';\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nexport default MapCache;\n","import Hash from './_Hash.js';\nimport ListCache from './_ListCache.js';\nimport Map from './_Map.js';\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nexport default mapCacheClear;\n","import getMapData from './_getMapData.js';\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nexport default mapCacheDelete;\n","import getMapData from './_getMapData.js';\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nexport default mapCacheGet;\n","import getMapData from './_getMapData.js';\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nexport default mapCacheHas;\n","import getMapData from './_getMapData.js';\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nexport default mapCacheSet;\n","import ListCache from './_ListCache.js';\nimport stackClear from './_stackClear.js';\nimport stackDelete from './_stackDelete.js';\nimport stackGet from './_stackGet.js';\nimport stackHas from './_stackHas.js';\nimport stackSet from './_stackSet.js';\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nexport default Stack;\n","import ListCache from './_ListCache.js';\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nexport default stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nexport default stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nexport default stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nexport default stackHas;\n","import ListCache from './_ListCache.js';\nimport Map from './_Map.js';\nimport MapCache from './_MapCache.js';\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nexport default stackSet;\n","import getNative from './_getNative.js';\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nexport default defineProperty;\n","import defineProperty from './_defineProperty.js';\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nexport default baseAssignValue;\n","import baseAssignValue from './_baseAssignValue.js';\nimport eq from './eq.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nexport default assignValue;\n","import assignValue from './_assignValue.js';\nimport baseAssignValue from './_baseAssignValue.js';\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nexport default copyObject;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nexport default isObjectLike;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nexport default baseIsArguments;\n","import baseIsArguments from './_baseIsArguments.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nexport default isArguments;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nexport default isArray;\n","import root from './_root.js';\nimport stubFalse from './stubFalse.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nexport default isBuffer;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nexport default stubFalse;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nexport default isIndex;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nexport default isLength;\n","import baseGetTag from './_baseGetTag.js';\nimport isLength from './isLength.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nexport default baseIsTypedArray;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nexport default baseUnary;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nexport default nodeUtil;\n","import baseIsTypedArray from './_baseIsTypedArray.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nexport default isTypedArray;\n","import baseTimes from './_baseTimes.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isIndex from './_isIndex.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default arrayLikeKeys;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nexport default baseTimes;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nexport default isPrototype;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nexport default overArg;\n","import overArg from './_overArg.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nexport default nativeKeys;\n","import isPrototype from './_isPrototype.js';\nimport nativeKeys from './_nativeKeys.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default baseKeys;\n","import isFunction from './isFunction.js';\nimport isLength from './isLength.js';\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nexport default isArrayLike;\n","import arrayLikeKeys from './_arrayLikeKeys.js';\nimport baseKeys from './_baseKeys.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nexport default keys;\n","import isObject from './isObject.js';\nimport isPrototype from './_isPrototype.js';\nimport nativeKeysIn from './_nativeKeysIn.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default baseKeysIn;\n","/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default nativeKeysIn;\n","import arrayLikeKeys from './_arrayLikeKeys.js';\nimport baseKeysIn from './_baseKeysIn.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nexport default keysIn;\n","import root from './_root.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\nexport default cloneBuffer;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nexport default stubArray;\n","import arrayFilter from './_arrayFilter.js';\nimport stubArray from './stubArray.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nexport default getSymbols;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nexport default arrayFilter;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nexport default arrayPush;\n","import overArg from './_overArg.js';\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nexport default getPrototype;\n","import arrayPush from './_arrayPush.js';\nimport getPrototype from './_getPrototype.js';\nimport getSymbols from './_getSymbols.js';\nimport stubArray from './stubArray.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\n};\n\nexport default getSymbolsIn;\n","import arrayPush from './_arrayPush.js';\nimport isArray from './isArray.js';\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nexport default baseGetAllKeys;\n","import baseGetAllKeys from './_baseGetAllKeys.js';\nimport getSymbols from './_getSymbols.js';\nimport keys from './keys.js';\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nexport default getAllKeys;\n","import baseGetAllKeys from './_baseGetAllKeys.js';\nimport getSymbolsIn from './_getSymbolsIn.js';\nimport keysIn from './keysIn.js';\n\n/**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n}\n\nexport default getAllKeysIn;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nexport default DataView;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nexport default Promise;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nexport default Set;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nexport default WeakMap;\n","import DataView from './_DataView.js';\nimport Map from './_Map.js';\nimport Promise from './_Promise.js';\nimport Set from './_Set.js';\nimport WeakMap from './_WeakMap.js';\nimport baseGetTag from './_baseGetTag.js';\nimport toSource from './_toSource.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nexport default getTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = new array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\nexport default initCloneArray;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nexport default Uint8Array;\n","import Uint8Array from './_Uint8Array.js';\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\nexport default cloneArrayBuffer;\n","/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\nexport default cloneRegExp;\n","import Symbol from './_Symbol.js';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\nexport default cloneSymbol;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\nimport cloneDataView from './_cloneDataView.js';\nimport cloneRegExp from './_cloneRegExp.js';\nimport cloneSymbol from './_cloneSymbol.js';\nimport cloneTypedArray from './_cloneTypedArray.js';\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return new Ctor;\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return new Ctor;\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\nexport default initCloneByTag;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\nexport default cloneDataView;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\nexport default cloneTypedArray;\n","import isObject from './isObject.js';\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\nexport default baseCreate;\n","import baseIsMap from './_baseIsMap.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsMap = nodeUtil && nodeUtil.isMap;\n\n/**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\nvar isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\nexport default isMap;\n","import getTag from './_getTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]';\n\n/**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\nfunction baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n}\n\nexport default baseIsMap;\n","import baseIsSet from './_baseIsSet.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsSet = nodeUtil && nodeUtil.isSet;\n\n/**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\nvar isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\nexport default isSet;\n","import getTag from './_getTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar setTag = '[object Set]';\n\n/**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\nfunction baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n}\n\nexport default baseIsSet;\n","import Stack from './_Stack.js';\nimport arrayEach from './_arrayEach.js';\nimport assignValue from './_assignValue.js';\nimport baseAssign from './_baseAssign.js';\nimport baseAssignIn from './_baseAssignIn.js';\nimport cloneBuffer from './_cloneBuffer.js';\nimport copyArray from './_copyArray.js';\nimport copySymbols from './_copySymbols.js';\nimport copySymbolsIn from './_copySymbolsIn.js';\nimport getAllKeys from './_getAllKeys.js';\nimport getAllKeysIn from './_getAllKeysIn.js';\nimport getTag from './_getTag.js';\nimport initCloneArray from './_initCloneArray.js';\nimport initCloneByTag from './_initCloneByTag.js';\nimport initCloneObject from './_initCloneObject.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isMap from './isMap.js';\nimport isObject from './isObject.js';\nimport isSet from './isSet.js';\nimport keys from './keys.js';\nimport keysIn from './keysIn.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n}\n\nexport default baseClone;\n","/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nexport default copyArray;\n","import baseCreate from './_baseCreate.js';\nimport getPrototype from './_getPrototype.js';\nimport isPrototype from './_isPrototype.js';\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\nexport default initCloneObject;\n","import copyObject from './_copyObject.js';\nimport getSymbolsIn from './_getSymbolsIn.js';\n\n/**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n}\n\nexport default copySymbolsIn;\n","import copyObject from './_copyObject.js';\nimport keysIn from './keysIn.js';\n\n/**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n}\n\nexport default baseAssignIn;\n","import copyObject from './_copyObject.js';\nimport getSymbols from './_getSymbols.js';\n\n/**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\nexport default copySymbols;\n","import copyObject from './_copyObject.js';\nimport keys from './keys.js';\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\nexport default baseAssign;\n","/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\nexport default arrayEach;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nexport default isSymbol;\n","import isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nexport default isKey;\n","import MapCache from './_MapCache.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nexport default memoize;\n","import memoizeCapped from './_memoizeCapped.js';\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nexport default stringToPath;\n","import memoize from './memoize.js';\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nexport default memoizeCapped;\n","import Symbol from './_Symbol.js';\nimport arrayMap from './_arrayMap.js';\nimport isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default baseToString;\n","import baseToString from './_baseToString.js';\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nexport default toString;\n","import isArray from './isArray.js';\nimport isKey from './_isKey.js';\nimport stringToPath from './_stringToPath.js';\nimport toString from './toString.js';\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nexport default castPath;\n","import isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default toKey;\n","import baseGet from './_baseGet.js';\nimport baseSlice from './_baseSlice.js';\n\n/**\n * Gets the parent value at `path` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} path The path to get the parent value of.\n * @returns {*} Returns the parent value.\n */\nfunction parent(object, path) {\n return path.length < 2 ? object : baseGet(object, baseSlice(path, 0, -1));\n}\n\nexport default parent;\n","import castPath from './_castPath.js';\nimport toKey from './_toKey.js';\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nexport default baseGet;\n","/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n}\n\nexport default baseSlice;\n","import castPath from './_castPath.js';\nimport last from './last.js';\nimport parent from './_parent.js';\nimport toKey from './_toKey.js';\n\n/**\n * The base implementation of `_.unset`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The property path to unset.\n * @returns {boolean} Returns `true` if the property is deleted, else `false`.\n */\nfunction baseUnset(object, path) {\n path = castPath(path, object);\n object = parent(object, path);\n return object == null || delete object[toKey(last(path))];\n}\n\nexport default baseUnset;\n","/**\n * Gets the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the last element of `array`.\n * @example\n *\n * _.last([1, 2, 3]);\n * // => 3\n */\nfunction last(array) {\n var length = array == null ? 0 : array.length;\n return length ? array[length - 1] : undefined;\n}\n\nexport default last;\n","import baseGetTag from './_baseGetTag.js';\nimport getPrototype from './_getPrototype.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nexport default isPlainObject;\n","import isPlainObject from './isPlainObject.js';\n\n/**\n * Used by `_.omit` to customize its `_.cloneDeep` use to only clone plain\n * objects.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {string} key The key of the property to inspect.\n * @returns {*} Returns the uncloned value or `undefined` to defer cloning to `_.cloneDeep`.\n */\nfunction customOmitClone(value) {\n return isPlainObject(value) ? undefined : value;\n}\n\nexport default customOmitClone;\n","import Symbol from './_Symbol.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\n\n/** Built-in value references. */\nvar spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;\n\n/**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\nfunction isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n}\n\nexport default isFlattenable;\n","import arrayPush from './_arrayPush.js';\nimport isFlattenable from './_isFlattenable.js';\n\n/**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\nfunction baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n}\n\nexport default baseFlatten;\n","import baseFlatten from './_baseFlatten.js';\n\n/**\n * Flattens `array` a single level deep.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flatten([1, [2, [3, [4]], 5]]);\n * // => [1, 2, [3, [4]], 5]\n */\nfunction flatten(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, 1) : [];\n}\n\nexport default flatten;\n","import apply from './_apply.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nexport default overRest;\n","import constant from './constant.js';\nimport defineProperty from './_defineProperty.js';\nimport identity from './identity.js';\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nexport default baseSetToString;\n","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nexport default constant;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nexport default identity;\n","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nexport default shortOut;\n","import baseSetToString from './_baseSetToString.js';\nimport shortOut from './_shortOut.js';\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nexport default setToString;\n","import arrayMap from './_arrayMap.js';\nimport baseClone from './_baseClone.js';\nimport baseUnset from './_baseUnset.js';\nimport castPath from './_castPath.js';\nimport copyObject from './_copyObject.js';\nimport customOmitClone from './_customOmitClone.js';\nimport flatRest from './_flatRest.js';\nimport getAllKeysIn from './_getAllKeysIn.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * The opposite of `_.pick`; this method creates an object composed of the\n * own and inherited enumerable property paths of `object` that are not omitted.\n *\n * **Note:** This method is considerably slower than `_.pick`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to omit.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.omit(object, ['a', 'c']);\n * // => { 'b': '2' }\n */\nvar omit = flatRest(function(object, paths) {\n var result = {};\n if (object == null) {\n return result;\n }\n var isDeep = false;\n paths = arrayMap(paths, function(path) {\n path = castPath(path, object);\n isDeep || (isDeep = path.length > 1);\n return path;\n });\n copyObject(object, getAllKeysIn(object), result);\n if (isDeep) {\n result = baseClone(result, CLONE_DEEP_FLAG | CLONE_FLAT_FLAG | CLONE_SYMBOLS_FLAG, customOmitClone);\n }\n var length = paths.length;\n while (length--) {\n baseUnset(result, paths[length]);\n }\n return result;\n});\n\nexport default omit;\n","import flatten from './flatten.js';\nimport overRest from './_overRest.js';\nimport setToString from './_setToString.js';\n\n/**\n * A specialized version of `baseRest` which flattens the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\nfunction flatRest(func) {\n return setToString(overRest(func, undefined, flatten), func + '');\n}\n\nexport default flatRest;\n","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nexport default apply;\n","/**\n * Returns the current locale of the application.\n * @returns string\n */\nexport function getLocale() {\n let language = window.i18next.language;\n language = language.replace('_', '-'); // just in case\n // Hack for `ht` until all browsers update their unicode support with ht to fr mapping.\n // See https://unicode-org.atlassian.net/browse/CLDR-14956\n if (language === 'ht') {\n language = 'fr-HT';\n }\n return language;\n}\n","/** @module @category Utility */\nimport { DurationFormat } from '@formatjs/intl-durationformat';\nimport { type DurationFormatOptions, type DurationInput } from '@formatjs/intl-durationformat/src/types';\nimport { attempt } from 'any-date-parser';\nimport dayjs from 'dayjs';\nimport objectSupport from 'dayjs/plugin/objectSupport';\nimport { omit } from 'lodash-es';\nimport { getLocale } from './get-locale';\n\ndayjs.extend(objectSupport);\n\n/**\n * Gets a human readable and locale supported representation of a person's age, given their birthDate,\n * The representation logic follows the guideline here:\n * https://webarchive.nationalarchives.gov.uk/ukgwa/20160921162509mp_/http://systems.digital.nhs.uk/data/cui/uig/patben.pdf\n * (See Tables 7 and 8)\n *\n * @param birthDate The birthDate. If birthDate is null, returns null.\n * @param currentDate Optional. If provided, calculates the age of the person at the provided currentDate (instead of now).\n * @returns A human-readable string version of the age.\n */\nexport function age(birthDate: dayjs.ConfigType, currentDate: dayjs.ConfigType = dayjs()): string | null {\n if (birthDate == null) {\n return null;\n }\n\n const locale = getLocale();\n\n const to = dayjs(currentDate);\n let from: dayjs.Dayjs;\n\n if (typeof birthDate === 'string') {\n let parsedDate = attempt(birthDate, locale);\n if (parsedDate.invalid) {\n console.warn(`Could not interpret '${birthDate}' as a date`);\n return null;\n }\n\n // hack here but any date interprets 2000-01, etc. as yyyy-dd rather than yyyy-mm\n if (parsedDate.day && !parsedDate.month) {\n parsedDate = Object.assign({}, omit(parsedDate, 'day'), { month: parsedDate.day });\n }\n\n // dayjs' object support uses 0-based months, whereas any-date-parser uses 1-based months\n if (parsedDate.month) {\n parsedDate.month -= 1;\n }\n\n // in dayjs day is day of week; in any-date-parser, its day of month, so we need to convert them\n if (parsedDate.day) {\n parsedDate = Object.assign({}, omit(parsedDate, 'day'), { date: parsedDate.day });\n }\n\n from = dayjs(to).set(parsedDate);\n } else {\n from = dayjs(birthDate);\n }\n\n const hourDiff = to.diff(from, 'hours');\n const dayDiff = to.diff(from, 'days');\n const weekDiff = to.diff(from, 'weeks');\n const monthDiff = to.diff(from, 'months');\n const yearDiff = to.diff(from, 'years');\n\n const duration: DurationInput = {};\n const options: DurationFormatOptions = { style: 'short', localeMatcher: 'lookup' };\n\n if (hourDiff < 2) {\n const minuteDiff = to.diff(from, 'minutes');\n duration['minutes'] = minuteDiff;\n if (minuteDiff === 0) {\n options.minutesDisplay = 'always';\n }\n } else if (dayDiff < 2) {\n duration['hours'] = hourDiff;\n } else if (weekDiff < 4) {\n duration['days'] = dayDiff;\n } else if (yearDiff < 1) {\n const remainderDayDiff = to.subtract(weekDiff, 'weeks').diff(from, 'days');\n duration['weeks'] = weekDiff;\n duration['days'] = remainderDayDiff;\n } else if (yearDiff < 2) {\n const remainderDayDiff = to.subtract(monthDiff, 'months').diff(from, 'days');\n duration['months'] = monthDiff;\n duration['days'] = remainderDayDiff;\n } else if (yearDiff < 18) {\n const remainderMonthDiff = to.subtract(yearDiff, 'year').diff(from, 'months');\n duration['years'] = yearDiff;\n duration['months'] = remainderMonthDiff;\n } else {\n duration['years'] = yearDiff;\n }\n\n return new DurationFormat(locale, options).format(duration);\n}\n","import {epochFromDate as $11d87f3f76e88657$export$bd4fb2bc8bb06fb, fromAbsolute as $11d87f3f76e88657$export$1b96692a1ba042ac, toAbsolute as $11d87f3f76e88657$export$5107c82f94518f5c, toCalendar as $11d87f3f76e88657$export$b4a036af3fc0b032, toCalendarDateTime as $11d87f3f76e88657$export$b21e0b124e224484} from \"./conversion.mjs\";\nimport {GregorianCalendar as $3b62074eb05584b2$export$80ee6245ec4f29ec} from \"./GregorianCalendar.mjs\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\nconst $735220c2d4774dd3$var$ONE_HOUR = 3600000;\nfunction $735220c2d4774dd3$export$e16d8520af44a096(date, duration) {\n let mutableDate = date.copy();\n let days = 'hour' in mutableDate ? $735220c2d4774dd3$var$addTimeFields(mutableDate, duration) : 0;\n $735220c2d4774dd3$var$addYears(mutableDate, duration.years || 0);\n if (mutableDate.calendar.balanceYearMonth) mutableDate.calendar.balanceYearMonth(mutableDate, date);\n mutableDate.month += duration.months || 0;\n $735220c2d4774dd3$var$balanceYearMonth(mutableDate);\n $735220c2d4774dd3$var$constrainMonthDay(mutableDate);\n mutableDate.day += (duration.weeks || 0) * 7;\n mutableDate.day += duration.days || 0;\n mutableDate.day += days;\n $735220c2d4774dd3$var$balanceDay(mutableDate);\n if (mutableDate.calendar.balanceDate) mutableDate.calendar.balanceDate(mutableDate);\n // Constrain in case adding ended up with a date outside the valid range for the calendar system.\n // The behavior here is slightly different than when constraining in the `set` function in that\n // we adjust smaller fields to their minimum/maximum values rather than constraining each field\n // individually. This matches the general behavior of `add` vs `set` regarding how fields are balanced.\n if (mutableDate.year < 1) {\n mutableDate.year = 1;\n mutableDate.month = 1;\n mutableDate.day = 1;\n }\n let maxYear = mutableDate.calendar.getYearsInEra(mutableDate);\n if (mutableDate.year > maxYear) {\n var _mutableDate_calendar_isInverseEra, _mutableDate_calendar;\n let isInverseEra = (_mutableDate_calendar_isInverseEra = (_mutableDate_calendar = mutableDate.calendar).isInverseEra) === null || _mutableDate_calendar_isInverseEra === void 0 ? void 0 : _mutableDate_calendar_isInverseEra.call(_mutableDate_calendar, mutableDate);\n mutableDate.year = maxYear;\n mutableDate.month = isInverseEra ? 1 : mutableDate.calendar.getMonthsInYear(mutableDate);\n mutableDate.day = isInverseEra ? 1 : mutableDate.calendar.getDaysInMonth(mutableDate);\n }\n if (mutableDate.month < 1) {\n mutableDate.month = 1;\n mutableDate.day = 1;\n }\n let maxMonth = mutableDate.calendar.getMonthsInYear(mutableDate);\n if (mutableDate.month > maxMonth) {\n mutableDate.month = maxMonth;\n mutableDate.day = mutableDate.calendar.getDaysInMonth(mutableDate);\n }\n mutableDate.day = Math.max(1, Math.min(mutableDate.calendar.getDaysInMonth(mutableDate), mutableDate.day));\n return mutableDate;\n}\nfunction $735220c2d4774dd3$var$addYears(date, years) {\n var _date_calendar_isInverseEra, _date_calendar;\n if ((_date_calendar_isInverseEra = (_date_calendar = date.calendar).isInverseEra) === null || _date_calendar_isInverseEra === void 0 ? void 0 : _date_calendar_isInverseEra.call(_date_calendar, date)) years = -years;\n date.year += years;\n}\nfunction $735220c2d4774dd3$var$balanceYearMonth(date) {\n while(date.month < 1){\n $735220c2d4774dd3$var$addYears(date, -1);\n date.month += date.calendar.getMonthsInYear(date);\n }\n let monthsInYear = 0;\n while(date.month > (monthsInYear = date.calendar.getMonthsInYear(date))){\n date.month -= monthsInYear;\n $735220c2d4774dd3$var$addYears(date, 1);\n }\n}\nfunction $735220c2d4774dd3$var$balanceDay(date) {\n while(date.day < 1){\n date.month--;\n $735220c2d4774dd3$var$balanceYearMonth(date);\n date.day += date.calendar.getDaysInMonth(date);\n }\n while(date.day > date.calendar.getDaysInMonth(date)){\n date.day -= date.calendar.getDaysInMonth(date);\n date.month++;\n $735220c2d4774dd3$var$balanceYearMonth(date);\n }\n}\nfunction $735220c2d4774dd3$var$constrainMonthDay(date) {\n date.month = Math.max(1, Math.min(date.calendar.getMonthsInYear(date), date.month));\n date.day = Math.max(1, Math.min(date.calendar.getDaysInMonth(date), date.day));\n}\nfunction $735220c2d4774dd3$export$c4e2ecac49351ef2(date) {\n if (date.calendar.constrainDate) date.calendar.constrainDate(date);\n date.year = Math.max(1, Math.min(date.calendar.getYearsInEra(date), date.year));\n $735220c2d4774dd3$var$constrainMonthDay(date);\n}\nfunction $735220c2d4774dd3$export$3e2544e88a25bff8(duration) {\n let inverseDuration = {};\n for(let key in duration)if (typeof duration[key] === 'number') inverseDuration[key] = -duration[key];\n return inverseDuration;\n}\nfunction $735220c2d4774dd3$export$4e2d2ead65e5f7e3(date, duration) {\n return $735220c2d4774dd3$export$e16d8520af44a096(date, $735220c2d4774dd3$export$3e2544e88a25bff8(duration));\n}\nfunction $735220c2d4774dd3$export$adaa4cf7ef1b65be(date, fields) {\n let mutableDate = date.copy();\n if (fields.era != null) mutableDate.era = fields.era;\n if (fields.year != null) mutableDate.year = fields.year;\n if (fields.month != null) mutableDate.month = fields.month;\n if (fields.day != null) mutableDate.day = fields.day;\n $735220c2d4774dd3$export$c4e2ecac49351ef2(mutableDate);\n return mutableDate;\n}\nfunction $735220c2d4774dd3$export$e5d5e1c1822b6e56(value, fields) {\n let mutableValue = value.copy();\n if (fields.hour != null) mutableValue.hour = fields.hour;\n if (fields.minute != null) mutableValue.minute = fields.minute;\n if (fields.second != null) mutableValue.second = fields.second;\n if (fields.millisecond != null) mutableValue.millisecond = fields.millisecond;\n $735220c2d4774dd3$export$7555de1e070510cb(mutableValue);\n return mutableValue;\n}\nfunction $735220c2d4774dd3$var$balanceTime(time) {\n time.second += Math.floor(time.millisecond / 1000);\n time.millisecond = $735220c2d4774dd3$var$nonNegativeMod(time.millisecond, 1000);\n time.minute += Math.floor(time.second / 60);\n time.second = $735220c2d4774dd3$var$nonNegativeMod(time.second, 60);\n time.hour += Math.floor(time.minute / 60);\n time.minute = $735220c2d4774dd3$var$nonNegativeMod(time.minute, 60);\n let days = Math.floor(time.hour / 24);\n time.hour = $735220c2d4774dd3$var$nonNegativeMod(time.hour, 24);\n return days;\n}\nfunction $735220c2d4774dd3$export$7555de1e070510cb(time) {\n time.millisecond = Math.max(0, Math.min(time.millisecond, 1000));\n time.second = Math.max(0, Math.min(time.second, 59));\n time.minute = Math.max(0, Math.min(time.minute, 59));\n time.hour = Math.max(0, Math.min(time.hour, 23));\n}\nfunction $735220c2d4774dd3$var$nonNegativeMod(a, b) {\n let result = a % b;\n if (result < 0) result += b;\n return result;\n}\nfunction $735220c2d4774dd3$var$addTimeFields(time, duration) {\n time.hour += duration.hours || 0;\n time.minute += duration.minutes || 0;\n time.second += duration.seconds || 0;\n time.millisecond += duration.milliseconds || 0;\n return $735220c2d4774dd3$var$balanceTime(time);\n}\nfunction $735220c2d4774dd3$export$7ed87b6bc2506470(time, duration) {\n let res = time.copy();\n $735220c2d4774dd3$var$addTimeFields(res, duration);\n return res;\n}\nfunction $735220c2d4774dd3$export$fe34d3a381cd7501(time, duration) {\n return $735220c2d4774dd3$export$7ed87b6bc2506470(time, $735220c2d4774dd3$export$3e2544e88a25bff8(duration));\n}\nfunction $735220c2d4774dd3$export$d52ced6badfb9a4c(value, field, amount, options) {\n let mutable = value.copy();\n switch(field){\n case 'era':\n {\n let eras = value.calendar.getEras();\n let eraIndex = eras.indexOf(value.era);\n if (eraIndex < 0) throw new Error('Invalid era: ' + value.era);\n eraIndex = $735220c2d4774dd3$var$cycleValue(eraIndex, amount, 0, eras.length - 1, options === null || options === void 0 ? void 0 : options.round);\n mutable.era = eras[eraIndex];\n // Constrain the year and other fields within the era, so the era doesn't change when we balance below.\n $735220c2d4774dd3$export$c4e2ecac49351ef2(mutable);\n break;\n }\n case 'year':\n var _mutable_calendar_isInverseEra, _mutable_calendar;\n if ((_mutable_calendar_isInverseEra = (_mutable_calendar = mutable.calendar).isInverseEra) === null || _mutable_calendar_isInverseEra === void 0 ? void 0 : _mutable_calendar_isInverseEra.call(_mutable_calendar, mutable)) amount = -amount;\n // The year field should not cycle within the era as that can cause weird behavior affecting other fields.\n // We need to also allow values < 1 so that decrementing goes to the previous era. If we get -Infinity back\n // we know we wrapped around after reaching 9999 (the maximum), so set the year back to 1.\n mutable.year = $735220c2d4774dd3$var$cycleValue(value.year, amount, -Infinity, 9999, options === null || options === void 0 ? void 0 : options.round);\n if (mutable.year === -Infinity) mutable.year = 1;\n if (mutable.calendar.balanceYearMonth) mutable.calendar.balanceYearMonth(mutable, value);\n break;\n case 'month':\n mutable.month = $735220c2d4774dd3$var$cycleValue(value.month, amount, 1, value.calendar.getMonthsInYear(value), options === null || options === void 0 ? void 0 : options.round);\n break;\n case 'day':\n mutable.day = $735220c2d4774dd3$var$cycleValue(value.day, amount, 1, value.calendar.getDaysInMonth(value), options === null || options === void 0 ? void 0 : options.round);\n break;\n default:\n throw new Error('Unsupported field ' + field);\n }\n if (value.calendar.balanceDate) value.calendar.balanceDate(mutable);\n $735220c2d4774dd3$export$c4e2ecac49351ef2(mutable);\n return mutable;\n}\nfunction $735220c2d4774dd3$export$dd02b3e0007dfe28(value, field, amount, options) {\n let mutable = value.copy();\n switch(field){\n case 'hour':\n {\n let hours = value.hour;\n let min = 0;\n let max = 23;\n if ((options === null || options === void 0 ? void 0 : options.hourCycle) === 12) {\n let isPM = hours >= 12;\n min = isPM ? 12 : 0;\n max = isPM ? 23 : 11;\n }\n mutable.hour = $735220c2d4774dd3$var$cycleValue(hours, amount, min, max, options === null || options === void 0 ? void 0 : options.round);\n break;\n }\n case 'minute':\n mutable.minute = $735220c2d4774dd3$var$cycleValue(value.minute, amount, 0, 59, options === null || options === void 0 ? void 0 : options.round);\n break;\n case 'second':\n mutable.second = $735220c2d4774dd3$var$cycleValue(value.second, amount, 0, 59, options === null || options === void 0 ? void 0 : options.round);\n break;\n case 'millisecond':\n mutable.millisecond = $735220c2d4774dd3$var$cycleValue(value.millisecond, amount, 0, 999, options === null || options === void 0 ? void 0 : options.round);\n break;\n default:\n throw new Error('Unsupported field ' + field);\n }\n return mutable;\n}\nfunction $735220c2d4774dd3$var$cycleValue(value, amount, min, max, round = false) {\n if (round) {\n value += Math.sign(amount);\n if (value < min) value = max;\n let div = Math.abs(amount);\n if (amount > 0) value = Math.ceil(value / div) * div;\n else value = Math.floor(value / div) * div;\n if (value > max) value = min;\n } else {\n value += amount;\n if (value < min) value = max - (min - value - 1);\n else if (value > max) value = min + (value - max - 1);\n }\n return value;\n}\nfunction $735220c2d4774dd3$export$96b1d28349274637(dateTime, duration) {\n let ms;\n if (duration.years != null && duration.years !== 0 || duration.months != null && duration.months !== 0 || duration.weeks != null && duration.weeks !== 0 || duration.days != null && duration.days !== 0) {\n let res = $735220c2d4774dd3$export$e16d8520af44a096((0, $11d87f3f76e88657$export$b21e0b124e224484)(dateTime), {\n years: duration.years,\n months: duration.months,\n weeks: duration.weeks,\n days: duration.days\n });\n // Changing the date may change the timezone offset, so we need to recompute\n // using the 'compatible' disambiguation.\n ms = (0, $11d87f3f76e88657$export$5107c82f94518f5c)(res, dateTime.timeZone);\n } else // Otherwise, preserve the offset of the original date.\n ms = (0, $11d87f3f76e88657$export$bd4fb2bc8bb06fb)(dateTime) - dateTime.offset;\n // Perform time manipulation in milliseconds rather than on the original time fields to account for DST.\n // For example, adding one hour during a DST transition may result in the hour field staying the same or\n // skipping an hour. This results in the offset field changing value instead of the specified field.\n ms += duration.milliseconds || 0;\n ms += (duration.seconds || 0) * 1000;\n ms += (duration.minutes || 0) * 60000;\n ms += (duration.hours || 0) * 3600000;\n let res = (0, $11d87f3f76e88657$export$1b96692a1ba042ac)(ms, dateTime.timeZone);\n return (0, $11d87f3f76e88657$export$b4a036af3fc0b032)(res, dateTime.calendar);\n}\nfunction $735220c2d4774dd3$export$6814caac34ca03c7(dateTime, duration) {\n return $735220c2d4774dd3$export$96b1d28349274637(dateTime, $735220c2d4774dd3$export$3e2544e88a25bff8(duration));\n}\nfunction $735220c2d4774dd3$export$9a297d111fc86b79(dateTime, field, amount, options) {\n // For date fields, we want the time to remain consistent and the UTC offset to potentially change to account for DST changes.\n // For time fields, we want the time to change by the amount given. This may result in the hour field staying the same, but the UTC\n // offset changing in the case of a backward DST transition, or skipping an hour in the case of a forward DST transition.\n switch(field){\n case 'hour':\n {\n let min = 0;\n let max = 23;\n if ((options === null || options === void 0 ? void 0 : options.hourCycle) === 12) {\n let isPM = dateTime.hour >= 12;\n min = isPM ? 12 : 0;\n max = isPM ? 23 : 11;\n }\n // The minimum and maximum hour may be affected by daylight saving time.\n // For example, it might jump forward at midnight, and skip 1am.\n // Or it might end at midnight and repeat the 11pm hour. To handle this, we get\n // the possible absolute times for the min and max, and find the maximum range\n // that is within the current day.\n let plainDateTime = (0, $11d87f3f76e88657$export$b21e0b124e224484)(dateTime);\n let minDate = (0, $11d87f3f76e88657$export$b4a036af3fc0b032)($735220c2d4774dd3$export$e5d5e1c1822b6e56(plainDateTime, {\n hour: min\n }), new (0, $3b62074eb05584b2$export$80ee6245ec4f29ec)());\n let minAbsolute = [\n (0, $11d87f3f76e88657$export$5107c82f94518f5c)(minDate, dateTime.timeZone, 'earlier'),\n (0, $11d87f3f76e88657$export$5107c82f94518f5c)(minDate, dateTime.timeZone, 'later')\n ].filter((ms)=>(0, $11d87f3f76e88657$export$1b96692a1ba042ac)(ms, dateTime.timeZone).day === minDate.day)[0];\n let maxDate = (0, $11d87f3f76e88657$export$b4a036af3fc0b032)($735220c2d4774dd3$export$e5d5e1c1822b6e56(plainDateTime, {\n hour: max\n }), new (0, $3b62074eb05584b2$export$80ee6245ec4f29ec)());\n let maxAbsolute = [\n (0, $11d87f3f76e88657$export$5107c82f94518f5c)(maxDate, dateTime.timeZone, 'earlier'),\n (0, $11d87f3f76e88657$export$5107c82f94518f5c)(maxDate, dateTime.timeZone, 'later')\n ].filter((ms)=>(0, $11d87f3f76e88657$export$1b96692a1ba042ac)(ms, dateTime.timeZone).day === maxDate.day).pop();\n // Since hours may repeat, we need to operate on the absolute time in milliseconds.\n // This is done in hours from the Unix epoch so that cycleValue works correctly,\n // and then converted back to milliseconds.\n let ms = (0, $11d87f3f76e88657$export$bd4fb2bc8bb06fb)(dateTime) - dateTime.offset;\n let hours = Math.floor(ms / $735220c2d4774dd3$var$ONE_HOUR);\n let remainder = ms % $735220c2d4774dd3$var$ONE_HOUR;\n ms = $735220c2d4774dd3$var$cycleValue(hours, amount, Math.floor(minAbsolute / $735220c2d4774dd3$var$ONE_HOUR), Math.floor(maxAbsolute / $735220c2d4774dd3$var$ONE_HOUR), options === null || options === void 0 ? void 0 : options.round) * $735220c2d4774dd3$var$ONE_HOUR + remainder;\n // Now compute the new timezone offset, and convert the absolute time back to local time.\n return (0, $11d87f3f76e88657$export$b4a036af3fc0b032)((0, $11d87f3f76e88657$export$1b96692a1ba042ac)(ms, dateTime.timeZone), dateTime.calendar);\n }\n case 'minute':\n case 'second':\n case 'millisecond':\n // @ts-ignore\n return $735220c2d4774dd3$export$dd02b3e0007dfe28(dateTime, field, amount, options);\n case 'era':\n case 'year':\n case 'month':\n case 'day':\n {\n let res = $735220c2d4774dd3$export$d52ced6badfb9a4c((0, $11d87f3f76e88657$export$b21e0b124e224484)(dateTime), field, amount, options);\n let ms = (0, $11d87f3f76e88657$export$5107c82f94518f5c)(res, dateTime.timeZone);\n return (0, $11d87f3f76e88657$export$b4a036af3fc0b032)((0, $11d87f3f76e88657$export$1b96692a1ba042ac)(ms, dateTime.timeZone), dateTime.calendar);\n }\n default:\n throw new Error('Unsupported field ' + field);\n }\n}\nfunction $735220c2d4774dd3$export$31b5430eb18be4f8(dateTime, fields, disambiguation) {\n // Set the date/time fields, and recompute the UTC offset to account for DST changes.\n // We also need to validate by converting back to a local time in case hours are skipped during forward DST transitions.\n let plainDateTime = (0, $11d87f3f76e88657$export$b21e0b124e224484)(dateTime);\n let res = $735220c2d4774dd3$export$e5d5e1c1822b6e56($735220c2d4774dd3$export$adaa4cf7ef1b65be(plainDateTime, fields), fields);\n // If the resulting plain date time values are equal, return the original time.\n // We don't want to change the offset when setting the time to the same value.\n if (res.compare(plainDateTime) === 0) return dateTime;\n let ms = (0, $11d87f3f76e88657$export$5107c82f94518f5c)(res, dateTime.timeZone, disambiguation);\n return (0, $11d87f3f76e88657$export$b4a036af3fc0b032)((0, $11d87f3f76e88657$export$1b96692a1ba042ac)(ms, dateTime.timeZone), dateTime.calendar);\n}\n\n\nexport {$735220c2d4774dd3$export$e16d8520af44a096 as add, $735220c2d4774dd3$export$c4e2ecac49351ef2 as constrain, $735220c2d4774dd3$export$3e2544e88a25bff8 as invertDuration, $735220c2d4774dd3$export$4e2d2ead65e5f7e3 as subtract, $735220c2d4774dd3$export$adaa4cf7ef1b65be as set, $735220c2d4774dd3$export$e5d5e1c1822b6e56 as setTime, $735220c2d4774dd3$export$7555de1e070510cb as constrainTime, $735220c2d4774dd3$export$7ed87b6bc2506470 as addTime, $735220c2d4774dd3$export$fe34d3a381cd7501 as subtractTime, $735220c2d4774dd3$export$d52ced6badfb9a4c as cycleDate, $735220c2d4774dd3$export$dd02b3e0007dfe28 as cycleTime, $735220c2d4774dd3$export$96b1d28349274637 as addZoned, $735220c2d4774dd3$export$6814caac34ca03c7 as subtractZoned, $735220c2d4774dd3$export$9a297d111fc86b79 as cycleZoned, $735220c2d4774dd3$export$31b5430eb18be4f8 as setZoned};\n//# sourceMappingURL=manipulation.module.js.map\n","import {fromAbsolute as $11d87f3f76e88657$export$1b96692a1ba042ac, toAbsolute as $11d87f3f76e88657$export$5107c82f94518f5c, toCalendar as $11d87f3f76e88657$export$b4a036af3fc0b032, toCalendarDate as $11d87f3f76e88657$export$93522d1a439f3617} from \"./conversion.mjs\";\nimport {weekStartData as $2fe286d2fb449abb$export$7a5acbd77d414bd9} from \"./weekStartData.mjs\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\nfunction $14e0f24ef4ac5c92$export$ea39ec197993aef0(a, b) {\n b = (0, $11d87f3f76e88657$export$b4a036af3fc0b032)(b, a.calendar);\n return a.era === b.era && a.year === b.year && a.month === b.month && a.day === b.day;\n}\nfunction $14e0f24ef4ac5c92$export$a18c89cbd24170ff(a, b) {\n b = (0, $11d87f3f76e88657$export$b4a036af3fc0b032)(b, a.calendar);\n // In the Japanese calendar, months can span multiple eras/years, so only compare the first of the month.\n a = $14e0f24ef4ac5c92$export$a5a3b454ada2268e(a);\n b = $14e0f24ef4ac5c92$export$a5a3b454ada2268e(b);\n return a.era === b.era && a.year === b.year && a.month === b.month;\n}\nfunction $14e0f24ef4ac5c92$export$5841f9eb9773f25f(a, b) {\n b = (0, $11d87f3f76e88657$export$b4a036af3fc0b032)(b, a.calendar);\n a = $14e0f24ef4ac5c92$export$f91e89d3d0406102(a);\n b = $14e0f24ef4ac5c92$export$f91e89d3d0406102(b);\n return a.era === b.era && a.year === b.year;\n}\nfunction $14e0f24ef4ac5c92$export$91b62ebf2ba703ee(a, b) {\n return $14e0f24ef4ac5c92$export$dbc69fd56b53d5e(a.calendar, b.calendar) && $14e0f24ef4ac5c92$export$ea39ec197993aef0(a, b);\n}\nfunction $14e0f24ef4ac5c92$export$5a8da0c44a3afdf2(a, b) {\n return $14e0f24ef4ac5c92$export$dbc69fd56b53d5e(a.calendar, b.calendar) && $14e0f24ef4ac5c92$export$a18c89cbd24170ff(a, b);\n}\nfunction $14e0f24ef4ac5c92$export$ea840f5a6dda8147(a, b) {\n return $14e0f24ef4ac5c92$export$dbc69fd56b53d5e(a.calendar, b.calendar) && $14e0f24ef4ac5c92$export$5841f9eb9773f25f(a, b);\n}\nfunction $14e0f24ef4ac5c92$export$dbc69fd56b53d5e(a, b) {\n var _a_isEqual, _b_isEqual;\n var _a_isEqual1, _ref;\n return (_ref = (_a_isEqual1 = (_a_isEqual = a.isEqual) === null || _a_isEqual === void 0 ? void 0 : _a_isEqual.call(a, b)) !== null && _a_isEqual1 !== void 0 ? _a_isEqual1 : (_b_isEqual = b.isEqual) === null || _b_isEqual === void 0 ? void 0 : _b_isEqual.call(b, a)) !== null && _ref !== void 0 ? _ref : a.identifier === b.identifier;\n}\nfunction $14e0f24ef4ac5c92$export$629b0a497aa65267(date, timeZone) {\n return $14e0f24ef4ac5c92$export$ea39ec197993aef0(date, $14e0f24ef4ac5c92$export$d0bdf45af03a6ea3(timeZone));\n}\nconst $14e0f24ef4ac5c92$var$DAY_MAP = {\n sun: 0,\n mon: 1,\n tue: 2,\n wed: 3,\n thu: 4,\n fri: 5,\n sat: 6\n};\nfunction $14e0f24ef4ac5c92$export$2061056d06d7cdf7(date, locale, firstDayOfWeek) {\n let julian = date.calendar.toJulianDay(date);\n // If julian is negative, then julian % 7 will be negative, so we adjust\n // accordingly. Julian day 0 is Monday.\n let weekStart = firstDayOfWeek ? $14e0f24ef4ac5c92$var$DAY_MAP[firstDayOfWeek] : $14e0f24ef4ac5c92$var$getWeekStart(locale);\n let dayOfWeek = Math.ceil(julian + 1 - weekStart) % 7;\n if (dayOfWeek < 0) dayOfWeek += 7;\n return dayOfWeek;\n}\nfunction $14e0f24ef4ac5c92$export$461939dd4422153(timeZone) {\n return (0, $11d87f3f76e88657$export$1b96692a1ba042ac)(Date.now(), timeZone);\n}\nfunction $14e0f24ef4ac5c92$export$d0bdf45af03a6ea3(timeZone) {\n return (0, $11d87f3f76e88657$export$93522d1a439f3617)($14e0f24ef4ac5c92$export$461939dd4422153(timeZone));\n}\nfunction $14e0f24ef4ac5c92$export$68781ddf31c0090f(a, b) {\n return a.calendar.toJulianDay(a) - b.calendar.toJulianDay(b);\n}\nfunction $14e0f24ef4ac5c92$export$c19a80a9721b80f6(a, b) {\n return $14e0f24ef4ac5c92$var$timeToMs(a) - $14e0f24ef4ac5c92$var$timeToMs(b);\n}\nfunction $14e0f24ef4ac5c92$var$timeToMs(a) {\n return a.hour * 3600000 + a.minute * 60000 + a.second * 1000 + a.millisecond;\n}\nfunction $14e0f24ef4ac5c92$export$126c91c941de7e(a, timeZone) {\n let ms = (0, $11d87f3f76e88657$export$5107c82f94518f5c)(a, timeZone);\n let tomorrow = a.add({\n days: 1\n });\n let tomorrowMs = (0, $11d87f3f76e88657$export$5107c82f94518f5c)(tomorrow, timeZone);\n return (tomorrowMs - ms) / 3600000;\n}\nlet $14e0f24ef4ac5c92$var$localTimeZone = null;\nfunction $14e0f24ef4ac5c92$export$aa8b41735afcabd2() {\n // TODO: invalidate this somehow?\n if ($14e0f24ef4ac5c92$var$localTimeZone == null) $14e0f24ef4ac5c92$var$localTimeZone = new Intl.DateTimeFormat().resolvedOptions().timeZone;\n return $14e0f24ef4ac5c92$var$localTimeZone;\n}\nfunction $14e0f24ef4ac5c92$export$a5a3b454ada2268e(date) {\n // Use `subtract` instead of `set` so we don't get constrained in an era.\n return date.subtract({\n days: date.day - 1\n });\n}\nfunction $14e0f24ef4ac5c92$export$a2258d9c4118825c(date) {\n return date.add({\n days: date.calendar.getDaysInMonth(date) - date.day\n });\n}\nfunction $14e0f24ef4ac5c92$export$f91e89d3d0406102(date) {\n return $14e0f24ef4ac5c92$export$a5a3b454ada2268e(date.subtract({\n months: date.month - 1\n }));\n}\nfunction $14e0f24ef4ac5c92$export$8b7aa55c66d5569e(date) {\n return $14e0f24ef4ac5c92$export$a2258d9c4118825c(date.add({\n months: date.calendar.getMonthsInYear(date) - date.month\n }));\n}\nfunction $14e0f24ef4ac5c92$export$5412ac11713b72ad(date) {\n if (date.calendar.getMinimumMonthInYear) return date.calendar.getMinimumMonthInYear(date);\n return 1;\n}\nfunction $14e0f24ef4ac5c92$export$b2f4953d301981d5(date) {\n if (date.calendar.getMinimumDayInMonth) return date.calendar.getMinimumDayInMonth(date);\n return 1;\n}\nfunction $14e0f24ef4ac5c92$export$42c81a444fbfb5d4(date, locale, firstDayOfWeek) {\n let dayOfWeek = $14e0f24ef4ac5c92$export$2061056d06d7cdf7(date, locale, firstDayOfWeek);\n return date.subtract({\n days: dayOfWeek\n });\n}\nfunction $14e0f24ef4ac5c92$export$ef8b6d9133084f4e(date, locale, firstDayOfWeek) {\n return $14e0f24ef4ac5c92$export$42c81a444fbfb5d4(date, locale, firstDayOfWeek).add({\n days: 6\n });\n}\nconst $14e0f24ef4ac5c92$var$cachedRegions = new Map();\nfunction $14e0f24ef4ac5c92$var$getRegion(locale) {\n // If the Intl.Locale API is available, use it to get the region for the locale.\n // @ts-ignore\n if (Intl.Locale) {\n // Constructing an Intl.Locale is expensive, so cache the result.\n let region = $14e0f24ef4ac5c92$var$cachedRegions.get(locale);\n if (!region) {\n // @ts-ignore\n region = new Intl.Locale(locale).maximize().region;\n if (region) $14e0f24ef4ac5c92$var$cachedRegions.set(locale, region);\n }\n return region;\n }\n // If not, just try splitting the string.\n // If the second part of the locale string is 'u',\n // then this is a unicode extension, so ignore it.\n // Otherwise, it should be the region.\n let part = locale.split('-')[1];\n return part === 'u' ? undefined : part;\n}\nfunction $14e0f24ef4ac5c92$var$getWeekStart(locale) {\n // TODO: use Intl.Locale for this once browsers support the weekInfo property\n // https://github.com/tc39/proposal-intl-locale-info\n let region = $14e0f24ef4ac5c92$var$getRegion(locale);\n return region ? (0, $2fe286d2fb449abb$export$7a5acbd77d414bd9)[region] || 0 : 0;\n}\nfunction $14e0f24ef4ac5c92$export$ccc1b2479e7dd654(date, locale, firstDayOfWeek) {\n let days = date.calendar.getDaysInMonth(date);\n return Math.ceil(($14e0f24ef4ac5c92$export$2061056d06d7cdf7($14e0f24ef4ac5c92$export$a5a3b454ada2268e(date), locale, firstDayOfWeek) + days) / 7);\n}\nfunction $14e0f24ef4ac5c92$export$5c333a116e949cdd(a, b) {\n if (a && b) return a.compare(b) <= 0 ? a : b;\n return a || b;\n}\nfunction $14e0f24ef4ac5c92$export$a75f2bff57811055(a, b) {\n if (a && b) return a.compare(b) >= 0 ? a : b;\n return a || b;\n}\nconst $14e0f24ef4ac5c92$var$WEEKEND_DATA = {\n AF: [\n 4,\n 5\n ],\n AE: [\n 5,\n 6\n ],\n BH: [\n 5,\n 6\n ],\n DZ: [\n 5,\n 6\n ],\n EG: [\n 5,\n 6\n ],\n IL: [\n 5,\n 6\n ],\n IQ: [\n 5,\n 6\n ],\n IR: [\n 5,\n 5\n ],\n JO: [\n 5,\n 6\n ],\n KW: [\n 5,\n 6\n ],\n LY: [\n 5,\n 6\n ],\n OM: [\n 5,\n 6\n ],\n QA: [\n 5,\n 6\n ],\n SA: [\n 5,\n 6\n ],\n SD: [\n 5,\n 6\n ],\n SY: [\n 5,\n 6\n ],\n YE: [\n 5,\n 6\n ]\n};\nfunction $14e0f24ef4ac5c92$export$618d60ea299da42(date, locale) {\n let julian = date.calendar.toJulianDay(date);\n // If julian is negative, then julian % 7 will be negative, so we adjust\n // accordingly. Julian day 0 is Monday.\n let dayOfWeek = Math.ceil(julian + 1) % 7;\n if (dayOfWeek < 0) dayOfWeek += 7;\n let region = $14e0f24ef4ac5c92$var$getRegion(locale);\n // Use Intl.Locale for this once weekInfo is supported.\n // https://github.com/tc39/proposal-intl-locale-info\n let [start, end] = $14e0f24ef4ac5c92$var$WEEKEND_DATA[region] || [\n 6,\n 0\n ];\n return dayOfWeek === start || dayOfWeek === end;\n}\nfunction $14e0f24ef4ac5c92$export$ee9d87258e1d19ed(date, locale) {\n return !$14e0f24ef4ac5c92$export$618d60ea299da42(date, locale);\n}\n\n\nexport {$14e0f24ef4ac5c92$export$ea39ec197993aef0 as isSameDay, $14e0f24ef4ac5c92$export$a18c89cbd24170ff as isSameMonth, $14e0f24ef4ac5c92$export$a5a3b454ada2268e as startOfMonth, $14e0f24ef4ac5c92$export$5841f9eb9773f25f as isSameYear, $14e0f24ef4ac5c92$export$f91e89d3d0406102 as startOfYear, $14e0f24ef4ac5c92$export$91b62ebf2ba703ee as isEqualDay, $14e0f24ef4ac5c92$export$dbc69fd56b53d5e as isEqualCalendar, $14e0f24ef4ac5c92$export$5a8da0c44a3afdf2 as isEqualMonth, $14e0f24ef4ac5c92$export$ea840f5a6dda8147 as isEqualYear, $14e0f24ef4ac5c92$export$629b0a497aa65267 as isToday, $14e0f24ef4ac5c92$export$d0bdf45af03a6ea3 as today, $14e0f24ef4ac5c92$export$2061056d06d7cdf7 as getDayOfWeek, $14e0f24ef4ac5c92$export$461939dd4422153 as now, $14e0f24ef4ac5c92$export$68781ddf31c0090f as compareDate, $14e0f24ef4ac5c92$export$c19a80a9721b80f6 as compareTime, $14e0f24ef4ac5c92$export$126c91c941de7e as getHoursInDay, $14e0f24ef4ac5c92$export$aa8b41735afcabd2 as getLocalTimeZone, $14e0f24ef4ac5c92$export$a2258d9c4118825c as endOfMonth, $14e0f24ef4ac5c92$export$8b7aa55c66d5569e as endOfYear, $14e0f24ef4ac5c92$export$5412ac11713b72ad as getMinimumMonthInYear, $14e0f24ef4ac5c92$export$b2f4953d301981d5 as getMinimumDayInMonth, $14e0f24ef4ac5c92$export$42c81a444fbfb5d4 as startOfWeek, $14e0f24ef4ac5c92$export$ef8b6d9133084f4e as endOfWeek, $14e0f24ef4ac5c92$export$ccc1b2479e7dd654 as getWeeksInMonth, $14e0f24ef4ac5c92$export$5c333a116e949cdd as minDate, $14e0f24ef4ac5c92$export$a75f2bff57811055 as maxDate, $14e0f24ef4ac5c92$export$618d60ea299da42 as isWeekend, $14e0f24ef4ac5c92$export$ee9d87258e1d19ed as isWeekday};\n//# sourceMappingURL=queries.module.js.map\n","import {CalendarDate as $35ea8db9cb2ccb90$export$99faa760c7908e4f, CalendarDateTime as $35ea8db9cb2ccb90$export$ca871e8dbb80966f} from \"./CalendarDate.mjs\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \nfunction $2b4dce13dd5a17fa$export$842a2cf37af977e1(amount, numerator) {\n return amount - numerator * Math.floor(amount / numerator);\n}\nfunction $2b4dce13dd5a17fa$export$784d13d8ee351f07(date) {\n if (date.era) return new (0, $35ea8db9cb2ccb90$export$99faa760c7908e4f)(date.calendar, date.era, date.year, date.month, date.day);\n else return new (0, $35ea8db9cb2ccb90$export$99faa760c7908e4f)(date.calendar, date.year, date.month, date.day);\n}\nfunction $2b4dce13dd5a17fa$export$27fa0172ae2644b3(date) {\n if (date.era) return new (0, $35ea8db9cb2ccb90$export$ca871e8dbb80966f)(date.calendar, date.era, date.year, date.month, date.day, date.hour, date.minute, date.second, date.millisecond);\n else return new (0, $35ea8db9cb2ccb90$export$ca871e8dbb80966f)(date.calendar, date.year, date.month, date.day, date.hour, date.minute, date.second);\n}\n\n\nexport {$2b4dce13dd5a17fa$export$842a2cf37af977e1 as mod, $2b4dce13dd5a17fa$export$784d13d8ee351f07 as copy, $2b4dce13dd5a17fa$export$27fa0172ae2644b3 as copyDateTime};\n//# sourceMappingURL=utils.module.js.map\n","import {CalendarDate as $35ea8db9cb2ccb90$export$99faa760c7908e4f} from \"./CalendarDate.mjs\";\nimport {mod as $2b4dce13dd5a17fa$export$842a2cf37af977e1} from \"./utils.mjs\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ // Portions of the code in this file are based on code from ICU.\n// Original licensing can be found in the NOTICE file in the root directory of this source tree.\n\n\nconst $3b62074eb05584b2$var$EPOCH = 1721426; // 001/01/03 Julian C.E.\nfunction $3b62074eb05584b2$export$f297eb839006d339(era, year, month, day) {\n year = $3b62074eb05584b2$export$c36e0ecb2d4fa69d(era, year);\n let y1 = year - 1;\n let monthOffset = -2;\n if (month <= 2) monthOffset = 0;\n else if ($3b62074eb05584b2$export$553d7fa8e3805fc0(year)) monthOffset = -1;\n return $3b62074eb05584b2$var$EPOCH - 1 + 365 * y1 + Math.floor(y1 / 4) - Math.floor(y1 / 100) + Math.floor(y1 / 400) + Math.floor((367 * month - 362) / 12 + monthOffset + day);\n}\nfunction $3b62074eb05584b2$export$553d7fa8e3805fc0(year) {\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n}\nfunction $3b62074eb05584b2$export$c36e0ecb2d4fa69d(era, year) {\n return era === 'BC' ? 1 - year : year;\n}\nfunction $3b62074eb05584b2$export$4475b7e617eb123c(year) {\n let era = 'AD';\n if (year <= 0) {\n era = 'BC';\n year = 1 - year;\n }\n return [\n era,\n year\n ];\n}\nconst $3b62074eb05584b2$var$daysInMonth = {\n standard: [\n 31,\n 28,\n 31,\n 30,\n 31,\n 30,\n 31,\n 31,\n 30,\n 31,\n 30,\n 31\n ],\n leapyear: [\n 31,\n 29,\n 31,\n 30,\n 31,\n 30,\n 31,\n 31,\n 30,\n 31,\n 30,\n 31\n ]\n};\nclass $3b62074eb05584b2$export$80ee6245ec4f29ec {\n fromJulianDay(jd) {\n let jd0 = jd;\n let depoch = jd0 - $3b62074eb05584b2$var$EPOCH;\n let quadricent = Math.floor(depoch / 146097);\n let dqc = (0, $2b4dce13dd5a17fa$export$842a2cf37af977e1)(depoch, 146097);\n let cent = Math.floor(dqc / 36524);\n let dcent = (0, $2b4dce13dd5a17fa$export$842a2cf37af977e1)(dqc, 36524);\n let quad = Math.floor(dcent / 1461);\n let dquad = (0, $2b4dce13dd5a17fa$export$842a2cf37af977e1)(dcent, 1461);\n let yindex = Math.floor(dquad / 365);\n let extendedYear = quadricent * 400 + cent * 100 + quad * 4 + yindex + (cent !== 4 && yindex !== 4 ? 1 : 0);\n let [era, year] = $3b62074eb05584b2$export$4475b7e617eb123c(extendedYear);\n let yearDay = jd0 - $3b62074eb05584b2$export$f297eb839006d339(era, year, 1, 1);\n let leapAdj = 2;\n if (jd0 < $3b62074eb05584b2$export$f297eb839006d339(era, year, 3, 1)) leapAdj = 0;\n else if ($3b62074eb05584b2$export$553d7fa8e3805fc0(year)) leapAdj = 1;\n let month = Math.floor(((yearDay + leapAdj) * 12 + 373) / 367);\n let day = jd0 - $3b62074eb05584b2$export$f297eb839006d339(era, year, month, 1) + 1;\n return new (0, $35ea8db9cb2ccb90$export$99faa760c7908e4f)(era, year, month, day);\n }\n toJulianDay(date) {\n return $3b62074eb05584b2$export$f297eb839006d339(date.era, date.year, date.month, date.day);\n }\n getDaysInMonth(date) {\n return $3b62074eb05584b2$var$daysInMonth[$3b62074eb05584b2$export$553d7fa8e3805fc0(date.year) ? 'leapyear' : 'standard'][date.month - 1];\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n getMonthsInYear(date) {\n return 12;\n }\n getDaysInYear(date) {\n return $3b62074eb05584b2$export$553d7fa8e3805fc0(date.year) ? 366 : 365;\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n getYearsInEra(date) {\n return 9999;\n }\n getEras() {\n return [\n 'BC',\n 'AD'\n ];\n }\n isInverseEra(date) {\n return date.era === 'BC';\n }\n balanceDate(date) {\n if (date.year <= 0) {\n date.era = date.era === 'BC' ? 'AD' : 'BC';\n date.year = 1 - date.year;\n }\n }\n constructor(){\n this.identifier = 'gregory';\n }\n}\n\n\nexport {$3b62074eb05584b2$export$f297eb839006d339 as gregorianToJulianDay, $3b62074eb05584b2$export$c36e0ecb2d4fa69d as getExtendedYear, $3b62074eb05584b2$export$553d7fa8e3805fc0 as isLeapYear, $3b62074eb05584b2$export$4475b7e617eb123c as fromExtendedYear, $3b62074eb05584b2$export$80ee6245ec4f29ec as GregorianCalendar};\n//# sourceMappingURL=GregorianCalendar.module.js.map\n","import {CalendarDate as $35ea8db9cb2ccb90$export$99faa760c7908e4f, CalendarDateTime as $35ea8db9cb2ccb90$export$ca871e8dbb80966f, Time as $35ea8db9cb2ccb90$export$680ea196effce5f, ZonedDateTime as $35ea8db9cb2ccb90$export$d3b7288e7994edea} from \"./CalendarDate.mjs\";\nimport {epochFromDate as $11d87f3f76e88657$export$bd4fb2bc8bb06fb, fromAbsolute as $11d87f3f76e88657$export$1b96692a1ba042ac, possibleAbsolutes as $11d87f3f76e88657$export$136f38efe7caf549, toAbsolute as $11d87f3f76e88657$export$5107c82f94518f5c, toCalendar as $11d87f3f76e88657$export$b4a036af3fc0b032, toCalendarDateTime as $11d87f3f76e88657$export$b21e0b124e224484, toTimeZone as $11d87f3f76e88657$export$538b00033cc11c75} from \"./conversion.mjs\";\nimport {getLocalTimeZone as $14e0f24ef4ac5c92$export$aa8b41735afcabd2} from \"./queries.mjs\";\nimport {GregorianCalendar as $3b62074eb05584b2$export$80ee6245ec4f29ec} from \"./GregorianCalendar.mjs\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\n\n\nconst $fae977aafc393c5c$var$TIME_RE = /^(\\d{2})(?::(\\d{2}))?(?::(\\d{2}))?(\\.\\d+)?$/;\nconst $fae977aafc393c5c$var$DATE_RE = /^([+-]\\d{6}|\\d{4})-(\\d{2})-(\\d{2})$/;\nconst $fae977aafc393c5c$var$DATE_TIME_RE = /^([+-]\\d{6}|\\d{4})-(\\d{2})-(\\d{2})(?:T(\\d{2}))?(?::(\\d{2}))?(?::(\\d{2}))?(\\.\\d+)?$/;\nconst $fae977aafc393c5c$var$ZONED_DATE_TIME_RE = /^([+-]\\d{6}|\\d{4})-(\\d{2})-(\\d{2})(?:T(\\d{2}))?(?::(\\d{2}))?(?::(\\d{2}))?(\\.\\d+)?(?:([+-]\\d{2})(?::?(\\d{2}))?)?\\[(.*?)\\]$/;\nconst $fae977aafc393c5c$var$ABSOLUTE_RE = /^([+-]\\d{6}|\\d{4})-(\\d{2})-(\\d{2})(?:T(\\d{2}))?(?::(\\d{2}))?(?::(\\d{2}))?(\\.\\d+)?(?:(?:([+-]\\d{2})(?::?(\\d{2}))?)|Z)$/;\nconst $fae977aafc393c5c$var$DATE_TIME_DURATION_RE = /^((?<negative>-)|\\+)?P((?<years>\\d*)Y)?((?<months>\\d*)M)?((?<weeks>\\d*)W)?((?<days>\\d*)D)?((?<time>T)((?<hours>\\d*[.,]?\\d{1,9})H)?((?<minutes>\\d*[.,]?\\d{1,9})M)?((?<seconds>\\d*[.,]?\\d{1,9})S)?)?$/;\nconst $fae977aafc393c5c$var$requiredDurationTimeGroups = [\n 'hours',\n 'minutes',\n 'seconds'\n];\nconst $fae977aafc393c5c$var$requiredDurationGroups = [\n 'years',\n 'months',\n 'weeks',\n 'days',\n ...$fae977aafc393c5c$var$requiredDurationTimeGroups\n];\nfunction $fae977aafc393c5c$export$c9698ec7f05a07e1(value) {\n let m = value.match($fae977aafc393c5c$var$TIME_RE);\n if (!m) throw new Error('Invalid ISO 8601 time string: ' + value);\n return new (0, $35ea8db9cb2ccb90$export$680ea196effce5f)($fae977aafc393c5c$var$parseNumber(m[1], 0, 23), m[2] ? $fae977aafc393c5c$var$parseNumber(m[2], 0, 59) : 0, m[3] ? $fae977aafc393c5c$var$parseNumber(m[3], 0, 59) : 0, m[4] ? $fae977aafc393c5c$var$parseNumber(m[4], 0, Infinity) * 1000 : 0);\n}\nfunction $fae977aafc393c5c$export$6b862160d295c8e(value) {\n let m = value.match($fae977aafc393c5c$var$DATE_RE);\n if (!m) throw new Error('Invalid ISO 8601 date string: ' + value);\n let date = new (0, $35ea8db9cb2ccb90$export$99faa760c7908e4f)($fae977aafc393c5c$var$parseNumber(m[1], 0, 9999), $fae977aafc393c5c$var$parseNumber(m[2], 1, 12), 1);\n date.day = $fae977aafc393c5c$var$parseNumber(m[3], 0, date.calendar.getDaysInMonth(date));\n return date;\n}\nfunction $fae977aafc393c5c$export$588937bcd60ade55(value) {\n let m = value.match($fae977aafc393c5c$var$DATE_TIME_RE);\n if (!m) throw new Error('Invalid ISO 8601 date time string: ' + value);\n let year = $fae977aafc393c5c$var$parseNumber(m[1], -9999, 9999);\n let era = year < 1 ? 'BC' : 'AD';\n let date = new (0, $35ea8db9cb2ccb90$export$ca871e8dbb80966f)(era, year < 1 ? -year + 1 : year, $fae977aafc393c5c$var$parseNumber(m[2], 1, 12), 1, m[4] ? $fae977aafc393c5c$var$parseNumber(m[4], 0, 23) : 0, m[5] ? $fae977aafc393c5c$var$parseNumber(m[5], 0, 59) : 0, m[6] ? $fae977aafc393c5c$var$parseNumber(m[6], 0, 59) : 0, m[7] ? $fae977aafc393c5c$var$parseNumber(m[7], 0, Infinity) * 1000 : 0);\n date.day = $fae977aafc393c5c$var$parseNumber(m[3], 0, date.calendar.getDaysInMonth(date));\n return date;\n}\nfunction $fae977aafc393c5c$export$fd7893f06e92a6a4(value, disambiguation) {\n let m = value.match($fae977aafc393c5c$var$ZONED_DATE_TIME_RE);\n if (!m) throw new Error('Invalid ISO 8601 date time string: ' + value);\n let year = $fae977aafc393c5c$var$parseNumber(m[1], -9999, 9999);\n let era = year < 1 ? 'BC' : 'AD';\n let date = new (0, $35ea8db9cb2ccb90$export$d3b7288e7994edea)(era, year < 1 ? -year + 1 : year, $fae977aafc393c5c$var$parseNumber(m[2], 1, 12), 1, m[10], 0, m[4] ? $fae977aafc393c5c$var$parseNumber(m[4], 0, 23) : 0, m[5] ? $fae977aafc393c5c$var$parseNumber(m[5], 0, 59) : 0, m[6] ? $fae977aafc393c5c$var$parseNumber(m[6], 0, 59) : 0, m[7] ? $fae977aafc393c5c$var$parseNumber(m[7], 0, Infinity) * 1000 : 0);\n date.day = $fae977aafc393c5c$var$parseNumber(m[3], 0, date.calendar.getDaysInMonth(date));\n let plainDateTime = (0, $11d87f3f76e88657$export$b21e0b124e224484)(date);\n let ms;\n if (m[8]) {\n var _m_;\n date.offset = $fae977aafc393c5c$var$parseNumber(m[8], -23, 23) * 3600000 + $fae977aafc393c5c$var$parseNumber((_m_ = m[9]) !== null && _m_ !== void 0 ? _m_ : '0', 0, 59) * 60000;\n ms = (0, $11d87f3f76e88657$export$bd4fb2bc8bb06fb)(date) - date.offset;\n // Validate offset against parsed date.\n let absolutes = (0, $11d87f3f76e88657$export$136f38efe7caf549)(plainDateTime, date.timeZone);\n if (!absolutes.includes(ms)) throw new Error(`Offset ${$fae977aafc393c5c$var$offsetToString(date.offset)} is invalid for ${$fae977aafc393c5c$export$4223de14708adc63(date)} in ${date.timeZone}`);\n } else // Convert to absolute and back to fix invalid times due to DST.\n ms = (0, $11d87f3f76e88657$export$5107c82f94518f5c)((0, $11d87f3f76e88657$export$b21e0b124e224484)(plainDateTime), date.timeZone, disambiguation);\n return (0, $11d87f3f76e88657$export$1b96692a1ba042ac)(ms, date.timeZone);\n}\nfunction $fae977aafc393c5c$export$5adfdab05168c219(value, timeZone) {\n let m = value.match($fae977aafc393c5c$var$ABSOLUTE_RE);\n if (!m) throw new Error('Invalid ISO 8601 date time string: ' + value);\n let year = $fae977aafc393c5c$var$parseNumber(m[1], -9999, 9999);\n let era = year < 1 ? 'BC' : 'AD';\n let date = new (0, $35ea8db9cb2ccb90$export$d3b7288e7994edea)(era, year < 1 ? -year + 1 : year, $fae977aafc393c5c$var$parseNumber(m[2], 1, 12), 1, timeZone, 0, m[4] ? $fae977aafc393c5c$var$parseNumber(m[4], 0, 23) : 0, m[5] ? $fae977aafc393c5c$var$parseNumber(m[5], 0, 59) : 0, m[6] ? $fae977aafc393c5c$var$parseNumber(m[6], 0, 59) : 0, m[7] ? $fae977aafc393c5c$var$parseNumber(m[7], 0, Infinity) * 1000 : 0);\n date.day = $fae977aafc393c5c$var$parseNumber(m[3], 0, date.calendar.getDaysInMonth(date));\n var _m_;\n if (m[8]) date.offset = $fae977aafc393c5c$var$parseNumber(m[8], -23, 23) * 3600000 + $fae977aafc393c5c$var$parseNumber((_m_ = m[9]) !== null && _m_ !== void 0 ? _m_ : '0', 0, 59) * 60000;\n return (0, $11d87f3f76e88657$export$538b00033cc11c75)(date, timeZone);\n}\nfunction $fae977aafc393c5c$export$8e384432362ed0f0(value) {\n return $fae977aafc393c5c$export$5adfdab05168c219(value, (0, $14e0f24ef4ac5c92$export$aa8b41735afcabd2)());\n}\nfunction $fae977aafc393c5c$var$parseNumber(value, min, max) {\n let val = Number(value);\n if (val < min || val > max) throw new RangeError(`Value out of range: ${min} <= ${val} <= ${max}`);\n return val;\n}\nfunction $fae977aafc393c5c$export$f59dee82248f5ad4(time) {\n return `${String(time.hour).padStart(2, '0')}:${String(time.minute).padStart(2, '0')}:${String(time.second).padStart(2, '0')}${time.millisecond ? String(time.millisecond / 1000).slice(1) : ''}`;\n}\nfunction $fae977aafc393c5c$export$60dfd74aa96791bd(date) {\n let gregorianDate = (0, $11d87f3f76e88657$export$b4a036af3fc0b032)(date, new (0, $3b62074eb05584b2$export$80ee6245ec4f29ec)());\n let year;\n if (gregorianDate.era === 'BC') year = gregorianDate.year === 1 ? '0000' : '-' + String(Math.abs(1 - gregorianDate.year)).padStart(6, '00');\n else year = String(gregorianDate.year).padStart(4, '0');\n return `${year}-${String(gregorianDate.month).padStart(2, '0')}-${String(gregorianDate.day).padStart(2, '0')}`;\n}\nfunction $fae977aafc393c5c$export$4223de14708adc63(date) {\n // @ts-ignore\n return `${$fae977aafc393c5c$export$60dfd74aa96791bd(date)}T${$fae977aafc393c5c$export$f59dee82248f5ad4(date)}`;\n}\nfunction $fae977aafc393c5c$var$offsetToString(offset) {\n let sign = Math.sign(offset) < 0 ? '-' : '+';\n offset = Math.abs(offset);\n let offsetHours = Math.floor(offset / 3600000);\n let offsetMinutes = offset % 3600000 / 60000;\n return `${sign}${String(offsetHours).padStart(2, '0')}:${String(offsetMinutes).padStart(2, '0')}`;\n}\nfunction $fae977aafc393c5c$export$bf79f1ebf4b18792(date) {\n return `${$fae977aafc393c5c$export$4223de14708adc63(date)}${$fae977aafc393c5c$var$offsetToString(date.offset)}[${date.timeZone}]`;\n}\nfunction $fae977aafc393c5c$export$ecae829bb3747ea6(value) {\n var _match_groups, _match_groups1, _match_groups2, _match_groups3, _match_groups4, _match_groups5, _match_groups6, _match_groups7, _match_groups8;\n const match = value.match($fae977aafc393c5c$var$DATE_TIME_DURATION_RE);\n if (!match) throw new Error(`Invalid ISO 8601 Duration string: ${value}`);\n const parseDurationGroup = (group, isNegative)=>{\n if (!group) return 0;\n try {\n const sign = isNegative ? -1 : 1;\n return sign * Number(group.replace(',', '.'));\n } catch {\n throw new Error(`Invalid ISO 8601 Duration string: ${value}`);\n }\n };\n const isNegative = !!((_match_groups = match.groups) === null || _match_groups === void 0 ? void 0 : _match_groups.negative);\n const hasRequiredGroups = $fae977aafc393c5c$var$requiredDurationGroups.some((group)=>{\n var _match_groups;\n return (_match_groups = match.groups) === null || _match_groups === void 0 ? void 0 : _match_groups[group];\n });\n if (!hasRequiredGroups) throw new Error(`Invalid ISO 8601 Duration string: ${value}`);\n const durationStringIncludesTime = (_match_groups1 = match.groups) === null || _match_groups1 === void 0 ? void 0 : _match_groups1.time;\n if (durationStringIncludesTime) {\n const hasRequiredDurationTimeGroups = $fae977aafc393c5c$var$requiredDurationTimeGroups.some((group)=>{\n var _match_groups;\n return (_match_groups = match.groups) === null || _match_groups === void 0 ? void 0 : _match_groups[group];\n });\n if (!hasRequiredDurationTimeGroups) throw new Error(`Invalid ISO 8601 Duration string: ${value}`);\n }\n const duration = {\n years: parseDurationGroup((_match_groups2 = match.groups) === null || _match_groups2 === void 0 ? void 0 : _match_groups2.years, isNegative),\n months: parseDurationGroup((_match_groups3 = match.groups) === null || _match_groups3 === void 0 ? void 0 : _match_groups3.months, isNegative),\n weeks: parseDurationGroup((_match_groups4 = match.groups) === null || _match_groups4 === void 0 ? void 0 : _match_groups4.weeks, isNegative),\n days: parseDurationGroup((_match_groups5 = match.groups) === null || _match_groups5 === void 0 ? void 0 : _match_groups5.days, isNegative),\n hours: parseDurationGroup((_match_groups6 = match.groups) === null || _match_groups6 === void 0 ? void 0 : _match_groups6.hours, isNegative),\n minutes: parseDurationGroup((_match_groups7 = match.groups) === null || _match_groups7 === void 0 ? void 0 : _match_groups7.minutes, isNegative),\n seconds: parseDurationGroup((_match_groups8 = match.groups) === null || _match_groups8 === void 0 ? void 0 : _match_groups8.seconds, isNegative)\n };\n if (duration.hours !== undefined && duration.hours % 1 !== 0 && (duration.minutes || duration.seconds)) throw new Error(`Invalid ISO 8601 Duration string: ${value} - only the smallest unit can be fractional`);\n if (duration.minutes !== undefined && duration.minutes % 1 !== 0 && duration.seconds) throw new Error(`Invalid ISO 8601 Duration string: ${value} - only the smallest unit can be fractional`);\n return duration;\n}\n\n\nexport {$fae977aafc393c5c$export$c9698ec7f05a07e1 as parseTime, $fae977aafc393c5c$export$6b862160d295c8e as parseDate, $fae977aafc393c5c$export$588937bcd60ade55 as parseDateTime, $fae977aafc393c5c$export$fd7893f06e92a6a4 as parseZonedDateTime, $fae977aafc393c5c$export$4223de14708adc63 as dateTimeToString, $fae977aafc393c5c$export$5adfdab05168c219 as parseAbsolute, $fae977aafc393c5c$export$8e384432362ed0f0 as parseAbsoluteToLocal, $fae977aafc393c5c$export$f59dee82248f5ad4 as timeToString, $fae977aafc393c5c$export$60dfd74aa96791bd as dateToString, $fae977aafc393c5c$export$bf79f1ebf4b18792 as zonedDateTimeToString, $fae977aafc393c5c$export$ecae829bb3747ea6 as parseDuration};\n//# sourceMappingURL=string.module.js.map\n","import { _check_private_redeclaration } from \"./_check_private_redeclaration.js\";\n\nexport function _class_private_field_init(obj, privateMap, value) {\n _check_private_redeclaration(obj, privateMap);\n privateMap.set(obj, value);\n}\nexport { _class_private_field_init as _ };\n","export function _check_private_redeclaration(obj, privateCollection) {\n if (privateCollection.has(obj)) {\n throw new TypeError(\"Cannot initialize the same private elements twice on an object\");\n }\n}\nexport { _check_private_redeclaration as _ };\n","import {add as $735220c2d4774dd3$export$e16d8520af44a096, addTime as $735220c2d4774dd3$export$7ed87b6bc2506470, addZoned as $735220c2d4774dd3$export$96b1d28349274637, constrain as $735220c2d4774dd3$export$c4e2ecac49351ef2, constrainTime as $735220c2d4774dd3$export$7555de1e070510cb, cycleDate as $735220c2d4774dd3$export$d52ced6badfb9a4c, cycleTime as $735220c2d4774dd3$export$dd02b3e0007dfe28, cycleZoned as $735220c2d4774dd3$export$9a297d111fc86b79, set as $735220c2d4774dd3$export$adaa4cf7ef1b65be, setTime as $735220c2d4774dd3$export$e5d5e1c1822b6e56, setZoned as $735220c2d4774dd3$export$31b5430eb18be4f8, subtract as $735220c2d4774dd3$export$4e2d2ead65e5f7e3, subtractTime as $735220c2d4774dd3$export$fe34d3a381cd7501, subtractZoned as $735220c2d4774dd3$export$6814caac34ca03c7} from \"./manipulation.mjs\";\nimport {compareDate as $14e0f24ef4ac5c92$export$68781ddf31c0090f, compareTime as $14e0f24ef4ac5c92$export$c19a80a9721b80f6} from \"./queries.mjs\";\nimport {dateTimeToString as $fae977aafc393c5c$export$4223de14708adc63, dateToString as $fae977aafc393c5c$export$60dfd74aa96791bd, timeToString as $fae977aafc393c5c$export$f59dee82248f5ad4, zonedDateTimeToString as $fae977aafc393c5c$export$bf79f1ebf4b18792} from \"./string.mjs\";\nimport {GregorianCalendar as $3b62074eb05584b2$export$80ee6245ec4f29ec} from \"./GregorianCalendar.mjs\";\nimport {toCalendarDateTime as $11d87f3f76e88657$export$b21e0b124e224484, toDate as $11d87f3f76e88657$export$e67a095c620b86fe, toZoned as $11d87f3f76e88657$export$84c95a83c799e074, zonedToDate as $11d87f3f76e88657$export$83aac07b4c37b25} from \"./conversion.mjs\";\nimport {_ as $aksy1$_} from \"@swc/helpers/_/_class_private_field_init\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\n\n\n\n\nfunction $35ea8db9cb2ccb90$var$shiftArgs(args) {\n let calendar = typeof args[0] === 'object' ? args.shift() : new (0, $3b62074eb05584b2$export$80ee6245ec4f29ec)();\n let era;\n if (typeof args[0] === 'string') era = args.shift();\n else {\n let eras = calendar.getEras();\n era = eras[eras.length - 1];\n }\n let year = args.shift();\n let month = args.shift();\n let day = args.shift();\n return [\n calendar,\n era,\n year,\n month,\n day\n ];\n}\nvar // This prevents TypeScript from allowing other types with the same fields to match.\n// i.e. a ZonedDateTime should not be be passable to a parameter that expects CalendarDate.\n// If that behavior is desired, use the AnyCalendarDate interface instead.\n// @ts-ignore\n$35ea8db9cb2ccb90$var$_type = /*#__PURE__*/ new WeakMap();\nclass $35ea8db9cb2ccb90$export$99faa760c7908e4f {\n /** Returns a copy of this date. */ copy() {\n if (this.era) return new $35ea8db9cb2ccb90$export$99faa760c7908e4f(this.calendar, this.era, this.year, this.month, this.day);\n else return new $35ea8db9cb2ccb90$export$99faa760c7908e4f(this.calendar, this.year, this.month, this.day);\n }\n /** Returns a new `CalendarDate` with the given duration added to it. */ add(duration) {\n return (0, $735220c2d4774dd3$export$e16d8520af44a096)(this, duration);\n }\n /** Returns a new `CalendarDate` with the given duration subtracted from it. */ subtract(duration) {\n return (0, $735220c2d4774dd3$export$4e2d2ead65e5f7e3)(this, duration);\n }\n /** Returns a new `CalendarDate` with the given fields set to the provided values. Other fields will be constrained accordingly. */ set(fields) {\n return (0, $735220c2d4774dd3$export$adaa4cf7ef1b65be)(this, fields);\n }\n /**\n * Returns a new `CalendarDate` with the given field adjusted by a specified amount.\n * When the resulting value reaches the limits of the field, it wraps around.\n */ cycle(field, amount, options) {\n return (0, $735220c2d4774dd3$export$d52ced6badfb9a4c)(this, field, amount, options);\n }\n /** Converts the date to a native JavaScript Date object, with the time set to midnight in the given time zone. */ toDate(timeZone) {\n return (0, $11d87f3f76e88657$export$e67a095c620b86fe)(this, timeZone);\n }\n /** Converts the date to an ISO 8601 formatted string. */ toString() {\n return (0, $fae977aafc393c5c$export$60dfd74aa96791bd)(this);\n }\n /** Compares this date with another. A negative result indicates that this date is before the given one, and a positive date indicates that it is after. */ compare(b) {\n return (0, $14e0f24ef4ac5c92$export$68781ddf31c0090f)(this, b);\n }\n constructor(...args){\n (0, $aksy1$_)(this, $35ea8db9cb2ccb90$var$_type, {\n writable: true,\n value: void 0\n });\n let [calendar, era, year, month, day] = $35ea8db9cb2ccb90$var$shiftArgs(args);\n this.calendar = calendar;\n this.era = era;\n this.year = year;\n this.month = month;\n this.day = day;\n (0, $735220c2d4774dd3$export$c4e2ecac49351ef2)(this);\n }\n}\nvar // This prevents TypeScript from allowing other types with the same fields to match.\n// @ts-ignore\n$35ea8db9cb2ccb90$var$_type1 = /*#__PURE__*/ new WeakMap();\nclass $35ea8db9cb2ccb90$export$680ea196effce5f {\n /** Returns a copy of this time. */ copy() {\n return new $35ea8db9cb2ccb90$export$680ea196effce5f(this.hour, this.minute, this.second, this.millisecond);\n }\n /** Returns a new `Time` with the given duration added to it. */ add(duration) {\n return (0, $735220c2d4774dd3$export$7ed87b6bc2506470)(this, duration);\n }\n /** Returns a new `Time` with the given duration subtracted from it. */ subtract(duration) {\n return (0, $735220c2d4774dd3$export$fe34d3a381cd7501)(this, duration);\n }\n /** Returns a new `Time` with the given fields set to the provided values. Other fields will be constrained accordingly. */ set(fields) {\n return (0, $735220c2d4774dd3$export$e5d5e1c1822b6e56)(this, fields);\n }\n /**\n * Returns a new `Time` with the given field adjusted by a specified amount.\n * When the resulting value reaches the limits of the field, it wraps around.\n */ cycle(field, amount, options) {\n return (0, $735220c2d4774dd3$export$dd02b3e0007dfe28)(this, field, amount, options);\n }\n /** Converts the time to an ISO 8601 formatted string. */ toString() {\n return (0, $fae977aafc393c5c$export$f59dee82248f5ad4)(this);\n }\n /** Compares this time with another. A negative result indicates that this time is before the given one, and a positive time indicates that it is after. */ compare(b) {\n return (0, $14e0f24ef4ac5c92$export$c19a80a9721b80f6)(this, b);\n }\n constructor(hour = 0, minute = 0, second = 0, millisecond = 0){\n (0, $aksy1$_)(this, $35ea8db9cb2ccb90$var$_type1, {\n writable: true,\n value: void 0\n });\n this.hour = hour;\n this.minute = minute;\n this.second = second;\n this.millisecond = millisecond;\n (0, $735220c2d4774dd3$export$7555de1e070510cb)(this);\n }\n}\nvar // This prevents TypeScript from allowing other types with the same fields to match.\n// @ts-ignore\n$35ea8db9cb2ccb90$var$_type2 = /*#__PURE__*/ new WeakMap();\nclass $35ea8db9cb2ccb90$export$ca871e8dbb80966f {\n /** Returns a copy of this date. */ copy() {\n if (this.era) return new $35ea8db9cb2ccb90$export$ca871e8dbb80966f(this.calendar, this.era, this.year, this.month, this.day, this.hour, this.minute, this.second, this.millisecond);\n else return new $35ea8db9cb2ccb90$export$ca871e8dbb80966f(this.calendar, this.year, this.month, this.day, this.hour, this.minute, this.second, this.millisecond);\n }\n /** Returns a new `CalendarDateTime` with the given duration added to it. */ add(duration) {\n return (0, $735220c2d4774dd3$export$e16d8520af44a096)(this, duration);\n }\n /** Returns a new `CalendarDateTime` with the given duration subtracted from it. */ subtract(duration) {\n return (0, $735220c2d4774dd3$export$4e2d2ead65e5f7e3)(this, duration);\n }\n /** Returns a new `CalendarDateTime` with the given fields set to the provided values. Other fields will be constrained accordingly. */ set(fields) {\n return (0, $735220c2d4774dd3$export$adaa4cf7ef1b65be)((0, $735220c2d4774dd3$export$e5d5e1c1822b6e56)(this, fields), fields);\n }\n /**\n * Returns a new `CalendarDateTime` with the given field adjusted by a specified amount.\n * When the resulting value reaches the limits of the field, it wraps around.\n */ cycle(field, amount, options) {\n switch(field){\n case 'era':\n case 'year':\n case 'month':\n case 'day':\n return (0, $735220c2d4774dd3$export$d52ced6badfb9a4c)(this, field, amount, options);\n default:\n return (0, $735220c2d4774dd3$export$dd02b3e0007dfe28)(this, field, amount, options);\n }\n }\n /** Converts the date to a native JavaScript Date object in the given time zone. */ toDate(timeZone, disambiguation) {\n return (0, $11d87f3f76e88657$export$e67a095c620b86fe)(this, timeZone, disambiguation);\n }\n /** Converts the date to an ISO 8601 formatted string. */ toString() {\n return (0, $fae977aafc393c5c$export$4223de14708adc63)(this);\n }\n /** Compares this date with another. A negative result indicates that this date is before the given one, and a positive date indicates that it is after. */ compare(b) {\n let res = (0, $14e0f24ef4ac5c92$export$68781ddf31c0090f)(this, b);\n if (res === 0) return (0, $14e0f24ef4ac5c92$export$c19a80a9721b80f6)(this, (0, $11d87f3f76e88657$export$b21e0b124e224484)(b));\n return res;\n }\n constructor(...args){\n (0, $aksy1$_)(this, $35ea8db9cb2ccb90$var$_type2, {\n writable: true,\n value: void 0\n });\n let [calendar, era, year, month, day] = $35ea8db9cb2ccb90$var$shiftArgs(args);\n this.calendar = calendar;\n this.era = era;\n this.year = year;\n this.month = month;\n this.day = day;\n this.hour = args.shift() || 0;\n this.minute = args.shift() || 0;\n this.second = args.shift() || 0;\n this.millisecond = args.shift() || 0;\n (0, $735220c2d4774dd3$export$c4e2ecac49351ef2)(this);\n }\n}\nvar // This prevents TypeScript from allowing other types with the same fields to match.\n// @ts-ignore\n$35ea8db9cb2ccb90$var$_type3 = /*#__PURE__*/ new WeakMap();\nclass $35ea8db9cb2ccb90$export$d3b7288e7994edea {\n /** Returns a copy of this date. */ copy() {\n if (this.era) return new $35ea8db9cb2ccb90$export$d3b7288e7994edea(this.calendar, this.era, this.year, this.month, this.day, this.timeZone, this.offset, this.hour, this.minute, this.second, this.millisecond);\n else return new $35ea8db9cb2ccb90$export$d3b7288e7994edea(this.calendar, this.year, this.month, this.day, this.timeZone, this.offset, this.hour, this.minute, this.second, this.millisecond);\n }\n /** Returns a new `ZonedDateTime` with the given duration added to it. */ add(duration) {\n return (0, $735220c2d4774dd3$export$96b1d28349274637)(this, duration);\n }\n /** Returns a new `ZonedDateTime` with the given duration subtracted from it. */ subtract(duration) {\n return (0, $735220c2d4774dd3$export$6814caac34ca03c7)(this, duration);\n }\n /** Returns a new `ZonedDateTime` with the given fields set to the provided values. Other fields will be constrained accordingly. */ set(fields, disambiguation) {\n return (0, $735220c2d4774dd3$export$31b5430eb18be4f8)(this, fields, disambiguation);\n }\n /**\n * Returns a new `ZonedDateTime` with the given field adjusted by a specified amount.\n * When the resulting value reaches the limits of the field, it wraps around.\n */ cycle(field, amount, options) {\n return (0, $735220c2d4774dd3$export$9a297d111fc86b79)(this, field, amount, options);\n }\n /** Converts the date to a native JavaScript Date object. */ toDate() {\n return (0, $11d87f3f76e88657$export$83aac07b4c37b25)(this);\n }\n /** Converts the date to an ISO 8601 formatted string, including the UTC offset and time zone identifier. */ toString() {\n return (0, $fae977aafc393c5c$export$bf79f1ebf4b18792)(this);\n }\n /** Converts the date to an ISO 8601 formatted string in UTC. */ toAbsoluteString() {\n return this.toDate().toISOString();\n }\n /** Compares this date with another. A negative result indicates that this date is before the given one, and a positive date indicates that it is after. */ compare(b) {\n // TODO: Is this a bad idea??\n return this.toDate().getTime() - (0, $11d87f3f76e88657$export$84c95a83c799e074)(b, this.timeZone).toDate().getTime();\n }\n constructor(...args){\n (0, $aksy1$_)(this, $35ea8db9cb2ccb90$var$_type3, {\n writable: true,\n value: void 0\n });\n let [calendar, era, year, month, day] = $35ea8db9cb2ccb90$var$shiftArgs(args);\n let timeZone = args.shift();\n let offset = args.shift();\n this.calendar = calendar;\n this.era = era;\n this.year = year;\n this.month = month;\n this.day = day;\n this.timeZone = timeZone;\n this.offset = offset;\n this.hour = args.shift() || 0;\n this.minute = args.shift() || 0;\n this.second = args.shift() || 0;\n this.millisecond = args.shift() || 0;\n (0, $735220c2d4774dd3$export$c4e2ecac49351ef2)(this);\n }\n}\n\n\nexport {$35ea8db9cb2ccb90$export$99faa760c7908e4f as CalendarDate, $35ea8db9cb2ccb90$export$680ea196effce5f as Time, $35ea8db9cb2ccb90$export$ca871e8dbb80966f as CalendarDateTime, $35ea8db9cb2ccb90$export$d3b7288e7994edea as ZonedDateTime};\n//# sourceMappingURL=CalendarDate.module.js.map\n","import {CalendarDate as $35ea8db9cb2ccb90$export$99faa760c7908e4f, CalendarDateTime as $35ea8db9cb2ccb90$export$ca871e8dbb80966f, Time as $35ea8db9cb2ccb90$export$680ea196effce5f, ZonedDateTime as $35ea8db9cb2ccb90$export$d3b7288e7994edea} from \"./CalendarDate.mjs\";\nimport {constrain as $735220c2d4774dd3$export$c4e2ecac49351ef2} from \"./manipulation.mjs\";\nimport {getExtendedYear as $3b62074eb05584b2$export$c36e0ecb2d4fa69d, GregorianCalendar as $3b62074eb05584b2$export$80ee6245ec4f29ec} from \"./GregorianCalendar.mjs\";\nimport {getLocalTimeZone as $14e0f24ef4ac5c92$export$aa8b41735afcabd2, isEqualCalendar as $14e0f24ef4ac5c92$export$dbc69fd56b53d5e} from \"./queries.mjs\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ // Portions of the code in this file are based on code from the TC39 Temporal proposal.\n// Original licensing can be found in the NOTICE file in the root directory of this source tree.\n\n\n\n\nfunction $11d87f3f76e88657$export$bd4fb2bc8bb06fb(date) {\n date = $11d87f3f76e88657$export$b4a036af3fc0b032(date, new (0, $3b62074eb05584b2$export$80ee6245ec4f29ec)());\n let year = (0, $3b62074eb05584b2$export$c36e0ecb2d4fa69d)(date.era, date.year);\n return $11d87f3f76e88657$var$epochFromParts(year, date.month, date.day, date.hour, date.minute, date.second, date.millisecond);\n}\nfunction $11d87f3f76e88657$var$epochFromParts(year, month, day, hour, minute, second, millisecond) {\n // Note: Date.UTC() interprets one and two-digit years as being in the\n // 20th century, so don't use it\n let date = new Date();\n date.setUTCHours(hour, minute, second, millisecond);\n date.setUTCFullYear(year, month - 1, day);\n return date.getTime();\n}\nfunction $11d87f3f76e88657$export$59c99f3515d3493f(ms, timeZone) {\n // Fast path for UTC.\n if (timeZone === 'UTC') return 0;\n // Fast path: for local timezone after 1970, use native Date.\n if (ms > 0 && timeZone === (0, $14e0f24ef4ac5c92$export$aa8b41735afcabd2)()) return new Date(ms).getTimezoneOffset() * -60000;\n let { year: year, month: month, day: day, hour: hour, minute: minute, second: second } = $11d87f3f76e88657$var$getTimeZoneParts(ms, timeZone);\n let utc = $11d87f3f76e88657$var$epochFromParts(year, month, day, hour, minute, second, 0);\n return utc - Math.floor(ms / 1000) * 1000;\n}\nconst $11d87f3f76e88657$var$formattersByTimeZone = new Map();\nfunction $11d87f3f76e88657$var$getTimeZoneParts(ms, timeZone) {\n let formatter = $11d87f3f76e88657$var$formattersByTimeZone.get(timeZone);\n if (!formatter) {\n formatter = new Intl.DateTimeFormat('en-US', {\n timeZone: timeZone,\n hour12: false,\n era: 'short',\n year: 'numeric',\n month: 'numeric',\n day: 'numeric',\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric'\n });\n $11d87f3f76e88657$var$formattersByTimeZone.set(timeZone, formatter);\n }\n let parts = formatter.formatToParts(new Date(ms));\n let namedParts = {};\n for (let part of parts)if (part.type !== 'literal') namedParts[part.type] = part.value;\n return {\n // Firefox returns B instead of BC... https://bugzilla.mozilla.org/show_bug.cgi?id=1752253\n year: namedParts.era === 'BC' || namedParts.era === 'B' ? -namedParts.year + 1 : +namedParts.year,\n month: +namedParts.month,\n day: +namedParts.day,\n hour: namedParts.hour === '24' ? 0 : +namedParts.hour,\n minute: +namedParts.minute,\n second: +namedParts.second\n };\n}\nconst $11d87f3f76e88657$var$DAYMILLIS = 86400000;\nfunction $11d87f3f76e88657$export$136f38efe7caf549(date, timeZone) {\n let ms = $11d87f3f76e88657$export$bd4fb2bc8bb06fb(date);\n let earlier = ms - $11d87f3f76e88657$export$59c99f3515d3493f(ms - $11d87f3f76e88657$var$DAYMILLIS, timeZone);\n let later = ms - $11d87f3f76e88657$export$59c99f3515d3493f(ms + $11d87f3f76e88657$var$DAYMILLIS, timeZone);\n return $11d87f3f76e88657$var$getValidWallTimes(date, timeZone, earlier, later);\n}\nfunction $11d87f3f76e88657$var$getValidWallTimes(date, timeZone, earlier, later) {\n let found = earlier === later ? [\n earlier\n ] : [\n earlier,\n later\n ];\n return found.filter((absolute)=>$11d87f3f76e88657$var$isValidWallTime(date, timeZone, absolute));\n}\nfunction $11d87f3f76e88657$var$isValidWallTime(date, timeZone, absolute) {\n let parts = $11d87f3f76e88657$var$getTimeZoneParts(absolute, timeZone);\n return date.year === parts.year && date.month === parts.month && date.day === parts.day && date.hour === parts.hour && date.minute === parts.minute && date.second === parts.second;\n}\nfunction $11d87f3f76e88657$export$5107c82f94518f5c(date, timeZone, disambiguation = 'compatible') {\n let dateTime = $11d87f3f76e88657$export$b21e0b124e224484(date);\n // Fast path: if the time zone is UTC, use native Date.\n if (timeZone === 'UTC') return $11d87f3f76e88657$export$bd4fb2bc8bb06fb(dateTime);\n // Fast path: if the time zone is the local timezone and disambiguation is compatible, use native Date.\n if (timeZone === (0, $14e0f24ef4ac5c92$export$aa8b41735afcabd2)() && disambiguation === 'compatible') {\n dateTime = $11d87f3f76e88657$export$b4a036af3fc0b032(dateTime, new (0, $3b62074eb05584b2$export$80ee6245ec4f29ec)());\n // Don't use Date constructor here because two-digit years are interpreted in the 20th century.\n let date = new Date();\n let year = (0, $3b62074eb05584b2$export$c36e0ecb2d4fa69d)(dateTime.era, dateTime.year);\n date.setFullYear(year, dateTime.month - 1, dateTime.day);\n date.setHours(dateTime.hour, dateTime.minute, dateTime.second, dateTime.millisecond);\n return date.getTime();\n }\n let ms = $11d87f3f76e88657$export$bd4fb2bc8bb06fb(dateTime);\n let offsetBefore = $11d87f3f76e88657$export$59c99f3515d3493f(ms - $11d87f3f76e88657$var$DAYMILLIS, timeZone);\n let offsetAfter = $11d87f3f76e88657$export$59c99f3515d3493f(ms + $11d87f3f76e88657$var$DAYMILLIS, timeZone);\n let valid = $11d87f3f76e88657$var$getValidWallTimes(dateTime, timeZone, ms - offsetBefore, ms - offsetAfter);\n if (valid.length === 1) return valid[0];\n if (valid.length > 1) switch(disambiguation){\n // 'compatible' means 'earlier' for \"fall back\" transitions\n case 'compatible':\n case 'earlier':\n return valid[0];\n case 'later':\n return valid[valid.length - 1];\n case 'reject':\n throw new RangeError('Multiple possible absolute times found');\n }\n switch(disambiguation){\n case 'earlier':\n return Math.min(ms - offsetBefore, ms - offsetAfter);\n // 'compatible' means 'later' for \"spring forward\" transitions\n case 'compatible':\n case 'later':\n return Math.max(ms - offsetBefore, ms - offsetAfter);\n case 'reject':\n throw new RangeError('No such absolute time found');\n }\n}\nfunction $11d87f3f76e88657$export$e67a095c620b86fe(dateTime, timeZone, disambiguation = 'compatible') {\n return new Date($11d87f3f76e88657$export$5107c82f94518f5c(dateTime, timeZone, disambiguation));\n}\nfunction $11d87f3f76e88657$export$1b96692a1ba042ac(ms, timeZone) {\n let offset = $11d87f3f76e88657$export$59c99f3515d3493f(ms, timeZone);\n let date = new Date(ms + offset);\n let year = date.getUTCFullYear();\n let month = date.getUTCMonth() + 1;\n let day = date.getUTCDate();\n let hour = date.getUTCHours();\n let minute = date.getUTCMinutes();\n let second = date.getUTCSeconds();\n let millisecond = date.getUTCMilliseconds();\n return new (0, $35ea8db9cb2ccb90$export$d3b7288e7994edea)(year < 1 ? 'BC' : 'AD', year < 1 ? -year + 1 : year, month, day, timeZone, offset, hour, minute, second, millisecond);\n}\nfunction $11d87f3f76e88657$export$e57ff100d91bd4b9(date, timeZone) {\n return $11d87f3f76e88657$export$1b96692a1ba042ac(date.getTime(), timeZone);\n}\nfunction $11d87f3f76e88657$export$d7f92bcd3596b086(date) {\n return $11d87f3f76e88657$export$e57ff100d91bd4b9(date, (0, $14e0f24ef4ac5c92$export$aa8b41735afcabd2)());\n}\nfunction $11d87f3f76e88657$export$93522d1a439f3617(dateTime) {\n return new (0, $35ea8db9cb2ccb90$export$99faa760c7908e4f)(dateTime.calendar, dateTime.era, dateTime.year, dateTime.month, dateTime.day);\n}\nfunction $11d87f3f76e88657$export$6f4d78149f3f53ac(date) {\n return {\n era: date.era,\n year: date.year,\n month: date.month,\n day: date.day\n };\n}\nfunction $11d87f3f76e88657$export$4d0393e732857be5(date) {\n return {\n hour: date.hour,\n minute: date.minute,\n second: date.second,\n millisecond: date.millisecond\n };\n}\nfunction $11d87f3f76e88657$export$b21e0b124e224484(date, time) {\n let hour = 0, minute = 0, second = 0, millisecond = 0;\n if ('timeZone' in date) ({ hour: hour, minute: minute, second: second, millisecond: millisecond } = date);\n else if ('hour' in date && !time) return date;\n if (time) ({ hour: hour, minute: minute, second: second, millisecond: millisecond } = time);\n return new (0, $35ea8db9cb2ccb90$export$ca871e8dbb80966f)(date.calendar, date.era, date.year, date.month, date.day, hour, minute, second, millisecond);\n}\nfunction $11d87f3f76e88657$export$d33f79e3ffc3dc83(dateTime) {\n return new (0, $35ea8db9cb2ccb90$export$680ea196effce5f)(dateTime.hour, dateTime.minute, dateTime.second, dateTime.millisecond);\n}\nfunction $11d87f3f76e88657$export$b4a036af3fc0b032(date, calendar) {\n if ((0, $14e0f24ef4ac5c92$export$dbc69fd56b53d5e)(date.calendar, calendar)) return date;\n let calendarDate = calendar.fromJulianDay(date.calendar.toJulianDay(date));\n let copy = date.copy();\n copy.calendar = calendar;\n copy.era = calendarDate.era;\n copy.year = calendarDate.year;\n copy.month = calendarDate.month;\n copy.day = calendarDate.day;\n (0, $735220c2d4774dd3$export$c4e2ecac49351ef2)(copy);\n return copy;\n}\nfunction $11d87f3f76e88657$export$84c95a83c799e074(date, timeZone, disambiguation) {\n if (date instanceof (0, $35ea8db9cb2ccb90$export$d3b7288e7994edea)) {\n if (date.timeZone === timeZone) return date;\n return $11d87f3f76e88657$export$538b00033cc11c75(date, timeZone);\n }\n let ms = $11d87f3f76e88657$export$5107c82f94518f5c(date, timeZone, disambiguation);\n return $11d87f3f76e88657$export$1b96692a1ba042ac(ms, timeZone);\n}\nfunction $11d87f3f76e88657$export$83aac07b4c37b25(date) {\n let ms = $11d87f3f76e88657$export$bd4fb2bc8bb06fb(date) - date.offset;\n return new Date(ms);\n}\nfunction $11d87f3f76e88657$export$538b00033cc11c75(date, timeZone) {\n let ms = $11d87f3f76e88657$export$bd4fb2bc8bb06fb(date) - date.offset;\n return $11d87f3f76e88657$export$b4a036af3fc0b032($11d87f3f76e88657$export$1b96692a1ba042ac(ms, timeZone), date.calendar);\n}\nfunction $11d87f3f76e88657$export$d9b67bc93c097491(date) {\n return $11d87f3f76e88657$export$538b00033cc11c75(date, (0, $14e0f24ef4ac5c92$export$aa8b41735afcabd2)());\n}\n\n\nexport {$11d87f3f76e88657$export$bd4fb2bc8bb06fb as epochFromDate, $11d87f3f76e88657$export$b4a036af3fc0b032 as toCalendar, $11d87f3f76e88657$export$59c99f3515d3493f as getTimeZoneOffset, $11d87f3f76e88657$export$136f38efe7caf549 as possibleAbsolutes, $11d87f3f76e88657$export$5107c82f94518f5c as toAbsolute, $11d87f3f76e88657$export$b21e0b124e224484 as toCalendarDateTime, $11d87f3f76e88657$export$e67a095c620b86fe as toDate, $11d87f3f76e88657$export$1b96692a1ba042ac as fromAbsolute, $11d87f3f76e88657$export$e57ff100d91bd4b9 as fromDate, $11d87f3f76e88657$export$d7f92bcd3596b086 as fromDateToLocal, $11d87f3f76e88657$export$93522d1a439f3617 as toCalendarDate, $11d87f3f76e88657$export$6f4d78149f3f53ac as toDateFields, $11d87f3f76e88657$export$4d0393e732857be5 as toTimeFields, $11d87f3f76e88657$export$d33f79e3ffc3dc83 as toTime, $11d87f3f76e88657$export$84c95a83c799e074 as toZoned, $11d87f3f76e88657$export$538b00033cc11c75 as toTimeZone, $11d87f3f76e88657$export$83aac07b4c37b25 as zonedToDate, $11d87f3f76e88657$export$d9b67bc93c097491 as toLocalTimeZone};\n//# sourceMappingURL=conversion.module.js.map\n","import {CalendarDate as $35ea8db9cb2ccb90$export$99faa760c7908e4f} from \"./CalendarDate.mjs\";\nimport {fromExtendedYear as $3b62074eb05584b2$export$4475b7e617eb123c, getExtendedYear as $3b62074eb05584b2$export$c36e0ecb2d4fa69d, GregorianCalendar as $3b62074eb05584b2$export$80ee6245ec4f29ec} from \"./GregorianCalendar.mjs\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ // Portions of the code in this file are based on code from ICU.\n// Original licensing can be found in the NOTICE file in the root directory of this source tree.\n\n\nconst $8d73d47422ca7302$var$BUDDHIST_ERA_START = -543;\nclass $8d73d47422ca7302$export$42d20a78301dee44 extends (0, $3b62074eb05584b2$export$80ee6245ec4f29ec) {\n fromJulianDay(jd) {\n let gregorianDate = super.fromJulianDay(jd);\n let year = (0, $3b62074eb05584b2$export$c36e0ecb2d4fa69d)(gregorianDate.era, gregorianDate.year);\n return new (0, $35ea8db9cb2ccb90$export$99faa760c7908e4f)(this, year - $8d73d47422ca7302$var$BUDDHIST_ERA_START, gregorianDate.month, gregorianDate.day);\n }\n toJulianDay(date) {\n return super.toJulianDay($8d73d47422ca7302$var$toGregorian(date));\n }\n getEras() {\n return [\n 'BE'\n ];\n }\n getDaysInMonth(date) {\n return super.getDaysInMonth($8d73d47422ca7302$var$toGregorian(date));\n }\n balanceDate() {}\n constructor(...args){\n super(...args), this.identifier = 'buddhist';\n }\n}\nfunction $8d73d47422ca7302$var$toGregorian(date) {\n let [era, year] = (0, $3b62074eb05584b2$export$4475b7e617eb123c)(date.year + $8d73d47422ca7302$var$BUDDHIST_ERA_START);\n return new (0, $35ea8db9cb2ccb90$export$99faa760c7908e4f)(era, year, date.month, date.day);\n}\n\n\nexport {$8d73d47422ca7302$export$42d20a78301dee44 as BuddhistCalendar};\n//# sourceMappingURL=BuddhistCalendar.module.js.map\n","import {CalendarDate as $35ea8db9cb2ccb90$export$99faa760c7908e4f} from \"./CalendarDate.mjs\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ // Portions of the code in this file are based on code from ICU.\n// Original licensing can be found in the NOTICE file in the root directory of this source tree.\n\nconst $b956b2d7a6cf451f$var$ETHIOPIC_EPOCH = 1723856;\nconst $b956b2d7a6cf451f$var$COPTIC_EPOCH = 1824665;\n// The delta between Amete Alem 1 and Amete Mihret 1\n// AA 5501 = AM 1\nconst $b956b2d7a6cf451f$var$AMETE_MIHRET_DELTA = 5500;\nfunction $b956b2d7a6cf451f$var$ceToJulianDay(epoch, year, month, day) {\n return epoch // difference from Julian epoch to 1,1,1\n + 365 * year // number of days from years\n + Math.floor(year / 4) // extra day of leap year\n + 30 * (month - 1 // number of days from months (1 based)\n ) + day - 1 // number of days for present month (1 based)\n ;\n}\nfunction $b956b2d7a6cf451f$var$julianDayToCE(epoch, jd) {\n let year = Math.floor(4 * (jd - epoch) / 1461);\n let month = 1 + Math.floor((jd - $b956b2d7a6cf451f$var$ceToJulianDay(epoch, year, 1, 1)) / 30);\n let day = jd + 1 - $b956b2d7a6cf451f$var$ceToJulianDay(epoch, year, month, 1);\n return [\n year,\n month,\n day\n ];\n}\nfunction $b956b2d7a6cf451f$var$getLeapDay(year) {\n return Math.floor(year % 4 / 3);\n}\nfunction $b956b2d7a6cf451f$var$getDaysInMonth(year, month) {\n // The Ethiopian and Coptic calendars have 13 months, 12 of 30 days each and\n // an intercalary month at the end of the year of 5 or 6 days, depending whether\n // the year is a leap year or not. The Leap Year follows the same rules as the\n // Julian Calendar so that the extra month always has six days in the year before\n // a Julian Leap Year.\n if (month % 13 !== 0) // not intercalary month\n return 30;\n else // intercalary month 5 days + possible leap day\n return $b956b2d7a6cf451f$var$getLeapDay(year) + 5;\n}\nclass $b956b2d7a6cf451f$export$26ba6eab5e20cd7d {\n fromJulianDay(jd) {\n let [year, month, day] = $b956b2d7a6cf451f$var$julianDayToCE($b956b2d7a6cf451f$var$ETHIOPIC_EPOCH, jd);\n let era = 'AM';\n if (year <= 0) {\n era = 'AA';\n year += $b956b2d7a6cf451f$var$AMETE_MIHRET_DELTA;\n }\n return new (0, $35ea8db9cb2ccb90$export$99faa760c7908e4f)(this, era, year, month, day);\n }\n toJulianDay(date) {\n let year = date.year;\n if (date.era === 'AA') year -= $b956b2d7a6cf451f$var$AMETE_MIHRET_DELTA;\n return $b956b2d7a6cf451f$var$ceToJulianDay($b956b2d7a6cf451f$var$ETHIOPIC_EPOCH, year, date.month, date.day);\n }\n getDaysInMonth(date) {\n return $b956b2d7a6cf451f$var$getDaysInMonth(date.year, date.month);\n }\n getMonthsInYear() {\n return 13;\n }\n getDaysInYear(date) {\n return 365 + $b956b2d7a6cf451f$var$getLeapDay(date.year);\n }\n getYearsInEra(date) {\n // 9999-12-31 gregorian is 9992-20-02 ethiopic.\n // Round down to 9991 for the last full year.\n // AA 9999-01-01 ethiopic is 4506-09-30 gregorian.\n return date.era === 'AA' ? 9999 : 9991;\n }\n getEras() {\n return [\n 'AA',\n 'AM'\n ];\n }\n constructor(){\n this.identifier = 'ethiopic';\n }\n}\nclass $b956b2d7a6cf451f$export$d72e0c37005a4914 extends $b956b2d7a6cf451f$export$26ba6eab5e20cd7d {\n fromJulianDay(jd) {\n let [year, month, day] = $b956b2d7a6cf451f$var$julianDayToCE($b956b2d7a6cf451f$var$ETHIOPIC_EPOCH, jd);\n year += $b956b2d7a6cf451f$var$AMETE_MIHRET_DELTA;\n return new (0, $35ea8db9cb2ccb90$export$99faa760c7908e4f)(this, 'AA', year, month, day);\n }\n getEras() {\n return [\n 'AA'\n ];\n }\n getYearsInEra() {\n // 9999-13-04 ethioaa is the maximum date, which is equivalent to 4506-09-29 gregorian.\n return 9999;\n }\n constructor(...args){\n super(...args), this.identifier = 'ethioaa' // also known as 'ethiopic-amete-alem' in ICU\n ;\n }\n}\nclass $b956b2d7a6cf451f$export$fe6243cbe1a4b7c1 extends $b956b2d7a6cf451f$export$26ba6eab5e20cd7d {\n fromJulianDay(jd) {\n let [year, month, day] = $b956b2d7a6cf451f$var$julianDayToCE($b956b2d7a6cf451f$var$COPTIC_EPOCH, jd);\n let era = 'CE';\n if (year <= 0) {\n era = 'BCE';\n year = 1 - year;\n }\n return new (0, $35ea8db9cb2ccb90$export$99faa760c7908e4f)(this, era, year, month, day);\n }\n toJulianDay(date) {\n let year = date.year;\n if (date.era === 'BCE') year = 1 - year;\n return $b956b2d7a6cf451f$var$ceToJulianDay($b956b2d7a6cf451f$var$COPTIC_EPOCH, year, date.month, date.day);\n }\n getDaysInMonth(date) {\n let year = date.year;\n if (date.era === 'BCE') year = 1 - year;\n return $b956b2d7a6cf451f$var$getDaysInMonth(year, date.month);\n }\n isInverseEra(date) {\n return date.era === 'BCE';\n }\n balanceDate(date) {\n if (date.year <= 0) {\n date.era = date.era === 'BCE' ? 'CE' : 'BCE';\n date.year = 1 - date.year;\n }\n }\n getEras() {\n return [\n 'BCE',\n 'CE'\n ];\n }\n getYearsInEra(date) {\n // 9999-12-30 gregorian is 9716-02-20 coptic.\n // Round down to 9715 for the last full year.\n // BCE 9999-01-01 coptic is BC 9716-06-15 gregorian.\n return date.era === 'BCE' ? 9999 : 9715;\n }\n constructor(...args){\n super(...args), this.identifier = 'coptic';\n }\n}\n\n\nexport {$b956b2d7a6cf451f$export$26ba6eab5e20cd7d as EthiopicCalendar, $b956b2d7a6cf451f$export$d72e0c37005a4914 as EthiopicAmeteAlemCalendar, $b956b2d7a6cf451f$export$fe6243cbe1a4b7c1 as CopticCalendar};\n//# sourceMappingURL=EthiopicCalendar.module.js.map\n","import {CalendarDate as $35ea8db9cb2ccb90$export$99faa760c7908e4f} from \"./CalendarDate.mjs\";\nimport {mod as $2b4dce13dd5a17fa$export$842a2cf37af977e1} from \"./utils.mjs\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ // Portions of the code in this file are based on code from ICU.\n// Original licensing can be found in the NOTICE file in the root directory of this source tree.\n\n\nconst $7c5f6fbf42389787$var$HEBREW_EPOCH = 347997;\n// Hebrew date calculations are performed in terms of days, hours, and\n// \"parts\" (or halakim), which are 1/1080 of an hour, or 3 1/3 seconds.\nconst $7c5f6fbf42389787$var$HOUR_PARTS = 1080;\nconst $7c5f6fbf42389787$var$DAY_PARTS = 24 * $7c5f6fbf42389787$var$HOUR_PARTS;\n// An approximate value for the length of a lunar month.\n// It is used to calculate the approximate year and month of a given\n// absolute date.\nconst $7c5f6fbf42389787$var$MONTH_DAYS = 29;\nconst $7c5f6fbf42389787$var$MONTH_FRACT = 12 * $7c5f6fbf42389787$var$HOUR_PARTS + 793;\nconst $7c5f6fbf42389787$var$MONTH_PARTS = $7c5f6fbf42389787$var$MONTH_DAYS * $7c5f6fbf42389787$var$DAY_PARTS + $7c5f6fbf42389787$var$MONTH_FRACT;\nfunction $7c5f6fbf42389787$var$isLeapYear(year) {\n return (0, $2b4dce13dd5a17fa$export$842a2cf37af977e1)(year * 7 + 1, 19) < 7;\n}\n// Test for delay of start of new year and to avoid\n// Sunday, Wednesday, and Friday as start of the new year.\nfunction $7c5f6fbf42389787$var$hebrewDelay1(year) {\n let months = Math.floor((235 * year - 234) / 19);\n let parts = 12084 + 13753 * months;\n let day = months * 29 + Math.floor(parts / 25920);\n if ((0, $2b4dce13dd5a17fa$export$842a2cf37af977e1)(3 * (day + 1), 7) < 3) day += 1;\n return day;\n}\n// Check for delay in start of new year due to length of adjacent years\nfunction $7c5f6fbf42389787$var$hebrewDelay2(year) {\n let last = $7c5f6fbf42389787$var$hebrewDelay1(year - 1);\n let present = $7c5f6fbf42389787$var$hebrewDelay1(year);\n let next = $7c5f6fbf42389787$var$hebrewDelay1(year + 1);\n if (next - present === 356) return 2;\n if (present - last === 382) return 1;\n return 0;\n}\nfunction $7c5f6fbf42389787$var$startOfYear(year) {\n return $7c5f6fbf42389787$var$hebrewDelay1(year) + $7c5f6fbf42389787$var$hebrewDelay2(year);\n}\nfunction $7c5f6fbf42389787$var$getDaysInYear(year) {\n return $7c5f6fbf42389787$var$startOfYear(year + 1) - $7c5f6fbf42389787$var$startOfYear(year);\n}\nfunction $7c5f6fbf42389787$var$getYearType(year) {\n let yearLength = $7c5f6fbf42389787$var$getDaysInYear(year);\n if (yearLength > 380) yearLength -= 30; // Subtract length of leap month.\n switch(yearLength){\n case 353:\n return 0; // deficient\n case 354:\n return 1; // normal\n case 355:\n return 2; // complete\n }\n}\nfunction $7c5f6fbf42389787$var$getDaysInMonth(year, month) {\n // Normalize month numbers from 1 - 13, even on non-leap years\n if (month >= 6 && !$7c5f6fbf42389787$var$isLeapYear(year)) month++;\n // First of all, dispose of fixed-length 29 day months\n if (month === 4 || month === 7 || month === 9 || month === 11 || month === 13) return 29;\n let yearType = $7c5f6fbf42389787$var$getYearType(year);\n // If it's Heshvan, days depend on length of year\n if (month === 2) return yearType === 2 ? 30 : 29;\n // Similarly, Kislev varies with the length of year\n if (month === 3) return yearType === 0 ? 29 : 30;\n // Adar I only exists in leap years\n if (month === 6) return $7c5f6fbf42389787$var$isLeapYear(year) ? 30 : 0;\n return 30;\n}\nclass $7c5f6fbf42389787$export$ca405048b8fb5af {\n fromJulianDay(jd) {\n let d = jd - $7c5f6fbf42389787$var$HEBREW_EPOCH;\n let m = d * $7c5f6fbf42389787$var$DAY_PARTS / $7c5f6fbf42389787$var$MONTH_PARTS; // Months (approx)\n let year = Math.floor((19 * m + 234) / 235) + 1; // Years (approx)\n let ys = $7c5f6fbf42389787$var$startOfYear(year); // 1st day of year\n let dayOfYear = Math.floor(d - ys);\n // Because of the postponement rules, it's possible to guess wrong. Fix it.\n while(dayOfYear < 1){\n year--;\n ys = $7c5f6fbf42389787$var$startOfYear(year);\n dayOfYear = Math.floor(d - ys);\n }\n // Now figure out which month we're in, and the date within that month\n let month = 1;\n let monthStart = 0;\n while(monthStart < dayOfYear){\n monthStart += $7c5f6fbf42389787$var$getDaysInMonth(year, month);\n month++;\n }\n month--;\n monthStart -= $7c5f6fbf42389787$var$getDaysInMonth(year, month);\n let day = dayOfYear - monthStart;\n return new (0, $35ea8db9cb2ccb90$export$99faa760c7908e4f)(this, year, month, day);\n }\n toJulianDay(date) {\n let jd = $7c5f6fbf42389787$var$startOfYear(date.year);\n for(let month = 1; month < date.month; month++)jd += $7c5f6fbf42389787$var$getDaysInMonth(date.year, month);\n return jd + date.day + $7c5f6fbf42389787$var$HEBREW_EPOCH;\n }\n getDaysInMonth(date) {\n return $7c5f6fbf42389787$var$getDaysInMonth(date.year, date.month);\n }\n getMonthsInYear(date) {\n return $7c5f6fbf42389787$var$isLeapYear(date.year) ? 13 : 12;\n }\n getDaysInYear(date) {\n return $7c5f6fbf42389787$var$getDaysInYear(date.year);\n }\n getYearsInEra() {\n // 6239 gregorian\n return 9999;\n }\n getEras() {\n return [\n 'AM'\n ];\n }\n balanceYearMonth(date, previousDate) {\n // Keep date in the same month when switching between leap years and non leap years\n if (previousDate.year !== date.year) {\n if ($7c5f6fbf42389787$var$isLeapYear(previousDate.year) && !$7c5f6fbf42389787$var$isLeapYear(date.year) && previousDate.month > 6) date.month--;\n else if (!$7c5f6fbf42389787$var$isLeapYear(previousDate.year) && $7c5f6fbf42389787$var$isLeapYear(date.year) && previousDate.month > 6) date.month++;\n }\n }\n constructor(){\n this.identifier = 'hebrew';\n }\n}\n\n\nexport {$7c5f6fbf42389787$export$ca405048b8fb5af as HebrewCalendar};\n//# sourceMappingURL=HebrewCalendar.module.js.map\n","import {CalendarDate as $35ea8db9cb2ccb90$export$99faa760c7908e4f} from \"./CalendarDate.mjs\";\nimport {fromExtendedYear as $3b62074eb05584b2$export$4475b7e617eb123c, GregorianCalendar as $3b62074eb05584b2$export$80ee6245ec4f29ec, gregorianToJulianDay as $3b62074eb05584b2$export$f297eb839006d339, isLeapYear as $3b62074eb05584b2$export$553d7fa8e3805fc0} from \"./GregorianCalendar.mjs\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ // Portions of the code in this file are based on code from ICU.\n// Original licensing can be found in the NOTICE file in the root directory of this source tree.\n\n\n// Starts in 78 AD,\nconst $82c358003bdda0a8$var$INDIAN_ERA_START = 78;\n// The Indian year starts 80 days later than the Gregorian year.\nconst $82c358003bdda0a8$var$INDIAN_YEAR_START = 80;\nclass $82c358003bdda0a8$export$39f31c639fa15726 extends (0, $3b62074eb05584b2$export$80ee6245ec4f29ec) {\n fromJulianDay(jd) {\n // Gregorian date for Julian day\n let date = super.fromJulianDay(jd);\n // Year in Saka era\n let indianYear = date.year - $82c358003bdda0a8$var$INDIAN_ERA_START;\n // Day number in Gregorian year (starting from 0)\n let yDay = jd - (0, $3b62074eb05584b2$export$f297eb839006d339)(date.era, date.year, 1, 1);\n let leapMonth;\n if (yDay < $82c358003bdda0a8$var$INDIAN_YEAR_START) {\n // Day is at the end of the preceding Saka year\n indianYear--;\n // Days in leapMonth this year, previous Gregorian year\n leapMonth = (0, $3b62074eb05584b2$export$553d7fa8e3805fc0)(date.year - 1) ? 31 : 30;\n yDay += leapMonth + 155 + 90 + 10;\n } else {\n // Days in leapMonth this year\n leapMonth = (0, $3b62074eb05584b2$export$553d7fa8e3805fc0)(date.year) ? 31 : 30;\n yDay -= $82c358003bdda0a8$var$INDIAN_YEAR_START;\n }\n let indianMonth;\n let indianDay;\n if (yDay < leapMonth) {\n indianMonth = 1;\n indianDay = yDay + 1;\n } else {\n let mDay = yDay - leapMonth;\n if (mDay < 155) {\n indianMonth = Math.floor(mDay / 31) + 2;\n indianDay = mDay % 31 + 1;\n } else {\n mDay -= 155;\n indianMonth = Math.floor(mDay / 30) + 7;\n indianDay = mDay % 30 + 1;\n }\n }\n return new (0, $35ea8db9cb2ccb90$export$99faa760c7908e4f)(this, indianYear, indianMonth, indianDay);\n }\n toJulianDay(date) {\n let extendedYear = date.year + $82c358003bdda0a8$var$INDIAN_ERA_START;\n let [era, year] = (0, $3b62074eb05584b2$export$4475b7e617eb123c)(extendedYear);\n let leapMonth;\n let jd;\n if ((0, $3b62074eb05584b2$export$553d7fa8e3805fc0)(year)) {\n leapMonth = 31;\n jd = (0, $3b62074eb05584b2$export$f297eb839006d339)(era, year, 3, 21);\n } else {\n leapMonth = 30;\n jd = (0, $3b62074eb05584b2$export$f297eb839006d339)(era, year, 3, 22);\n }\n if (date.month === 1) return jd + date.day - 1;\n jd += leapMonth + Math.min(date.month - 2, 5) * 31;\n if (date.month >= 8) jd += (date.month - 7) * 30;\n jd += date.day - 1;\n return jd;\n }\n getDaysInMonth(date) {\n if (date.month === 1 && (0, $3b62074eb05584b2$export$553d7fa8e3805fc0)(date.year + $82c358003bdda0a8$var$INDIAN_ERA_START)) return 31;\n if (date.month >= 2 && date.month <= 6) return 31;\n return 30;\n }\n getYearsInEra() {\n // 9999-12-31 gregorian is 9920-10-10 indian.\n // Round down to 9919 for the last full year.\n return 9919;\n }\n getEras() {\n return [\n 'saka'\n ];\n }\n balanceDate() {}\n constructor(...args){\n super(...args), this.identifier = 'indian';\n }\n}\n\n\nexport {$82c358003bdda0a8$export$39f31c639fa15726 as IndianCalendar};\n//# sourceMappingURL=IndianCalendar.module.js.map\n","import {CalendarDate as $35ea8db9cb2ccb90$export$99faa760c7908e4f} from \"./CalendarDate.mjs\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ // Portions of the code in this file are based on code from ICU.\n// Original licensing can be found in the NOTICE file in the root directory of this source tree.\n\nconst $f2f3e0e3a817edbd$var$CIVIL_EPOC = 1948440; // CE 622 July 16 Friday (Julian calendar) / CE 622 July 19 (Gregorian calendar)\nconst $f2f3e0e3a817edbd$var$ASTRONOMICAL_EPOC = 1948439; // CE 622 July 15 Thursday (Julian calendar)\nconst $f2f3e0e3a817edbd$var$UMALQURA_YEAR_START = 1300;\nconst $f2f3e0e3a817edbd$var$UMALQURA_YEAR_END = 1600;\nconst $f2f3e0e3a817edbd$var$UMALQURA_START_DAYS = 460322;\nfunction $f2f3e0e3a817edbd$var$islamicToJulianDay(epoch, year, month, day) {\n return day + Math.ceil(29.5 * (month - 1)) + (year - 1) * 354 + Math.floor((3 + 11 * year) / 30) + epoch - 1;\n}\nfunction $f2f3e0e3a817edbd$var$julianDayToIslamic(calendar, epoch, jd) {\n let year = Math.floor((30 * (jd - epoch) + 10646) / 10631);\n let month = Math.min(12, Math.ceil((jd - (29 + $f2f3e0e3a817edbd$var$islamicToJulianDay(epoch, year, 1, 1))) / 29.5) + 1);\n let day = jd - $f2f3e0e3a817edbd$var$islamicToJulianDay(epoch, year, month, 1) + 1;\n return new (0, $35ea8db9cb2ccb90$export$99faa760c7908e4f)(calendar, year, month, day);\n}\nfunction $f2f3e0e3a817edbd$var$isLeapYear(year) {\n return (14 + 11 * year) % 30 < 11;\n}\nclass $f2f3e0e3a817edbd$export$2066795aadd37bfc {\n fromJulianDay(jd) {\n return $f2f3e0e3a817edbd$var$julianDayToIslamic(this, $f2f3e0e3a817edbd$var$CIVIL_EPOC, jd);\n }\n toJulianDay(date) {\n return $f2f3e0e3a817edbd$var$islamicToJulianDay($f2f3e0e3a817edbd$var$CIVIL_EPOC, date.year, date.month, date.day);\n }\n getDaysInMonth(date) {\n let length = 29 + date.month % 2;\n if (date.month === 12 && $f2f3e0e3a817edbd$var$isLeapYear(date.year)) length++;\n return length;\n }\n getMonthsInYear() {\n return 12;\n }\n getDaysInYear(date) {\n return $f2f3e0e3a817edbd$var$isLeapYear(date.year) ? 355 : 354;\n }\n getYearsInEra() {\n // 9999 gregorian\n return 9665;\n }\n getEras() {\n return [\n 'AH'\n ];\n }\n constructor(){\n this.identifier = 'islamic-civil';\n }\n}\nclass $f2f3e0e3a817edbd$export$37f0887f2f9d22f7 extends $f2f3e0e3a817edbd$export$2066795aadd37bfc {\n fromJulianDay(jd) {\n return $f2f3e0e3a817edbd$var$julianDayToIslamic(this, $f2f3e0e3a817edbd$var$ASTRONOMICAL_EPOC, jd);\n }\n toJulianDay(date) {\n return $f2f3e0e3a817edbd$var$islamicToJulianDay($f2f3e0e3a817edbd$var$ASTRONOMICAL_EPOC, date.year, date.month, date.day);\n }\n constructor(...args){\n super(...args), this.identifier = 'islamic-tbla';\n }\n}\n// Generated by scripts/generate-umalqura.js\nconst $f2f3e0e3a817edbd$var$UMALQURA_DATA = 'qgpUDckO1AbqBmwDrQpVBakGkgepC9QF2gpcBS0NlQZKB1QLagutBa4ETwoXBYsGpQbVCtYCWwmdBE0KJg2VDawFtgm6AlsKKwWVCsoG6Qr0AnYJtgJWCcoKpAvSC9kF3AJtCU0FpQpSC6ULtAW2CVcFlwJLBaMGUgdlC2oFqworBZUMSg2lDcoF1gpXCasESwmlClILagt1BXYCtwhbBFUFqQW0BdoJ3QRuAjYJqgpUDbIN1QXaAlsJqwRVCkkLZAtxC7QFtQpVCiUNkg7JDtQG6QprCasEkwpJDaQNsg25CroEWworBZUKKgtVC1wFvQQ9Ah0JlQpKC1oLbQW2AjsJmwRVBqkGVAdqC2wFrQpVBSkLkgupC9QF2gpaBasKlQVJB2QHqgu1BbYCVgpNDiULUgtqC60FrgIvCZcESwalBqwG1gpdBZ0ETQoWDZUNqgW1BdoCWwmtBJUFygbkBuoK9QS2AlYJqgpUC9IL2QXqAm0JrQSVCkoLpQuyBbUJ1gSXCkcFkwZJB1ULagVrCisFiwpGDaMNygXWCtsEawJLCaUKUgtpC3UFdgG3CFsCKwVlBbQF2gntBG0BtgimClINqQ3UBdoKWwmrBFMGKQdiB6kLsgW1ClUFJQuSDckO0gbpCmsFqwRVCikNVA2qDbUJugQ7CpsETQqqCtUK2gJdCV4ELgqaDFUNsga5BroEXQotBZUKUguoC7QLuQXaAloJSgukDdEO6AZqC20FNQWVBkoNqA3UDdoGWwWdAisGFQtKC5ULqgWuCi4JjwwnBZUGqgbWCl0FnQI=';\nlet $f2f3e0e3a817edbd$var$UMALQURA_MONTHLENGTH;\nlet $f2f3e0e3a817edbd$var$UMALQURA_YEAR_START_TABLE;\nfunction $f2f3e0e3a817edbd$var$umalquraYearStart(year) {\n return $f2f3e0e3a817edbd$var$UMALQURA_START_DAYS + $f2f3e0e3a817edbd$var$UMALQURA_YEAR_START_TABLE[year - $f2f3e0e3a817edbd$var$UMALQURA_YEAR_START];\n}\nfunction $f2f3e0e3a817edbd$var$umalquraMonthLength(year, month) {\n let idx = year - $f2f3e0e3a817edbd$var$UMALQURA_YEAR_START;\n let mask = 0x01 << 11 - (month - 1);\n if (($f2f3e0e3a817edbd$var$UMALQURA_MONTHLENGTH[idx] & mask) === 0) return 29;\n else return 30;\n}\nfunction $f2f3e0e3a817edbd$var$umalquraMonthStart(year, month) {\n let day = $f2f3e0e3a817edbd$var$umalquraYearStart(year);\n for(let i = 1; i < month; i++)day += $f2f3e0e3a817edbd$var$umalquraMonthLength(year, i);\n return day;\n}\nfunction $f2f3e0e3a817edbd$var$umalquraYearLength(year) {\n return $f2f3e0e3a817edbd$var$UMALQURA_YEAR_START_TABLE[year + 1 - $f2f3e0e3a817edbd$var$UMALQURA_YEAR_START] - $f2f3e0e3a817edbd$var$UMALQURA_YEAR_START_TABLE[year - $f2f3e0e3a817edbd$var$UMALQURA_YEAR_START];\n}\nclass $f2f3e0e3a817edbd$export$5baab4758c231076 extends $f2f3e0e3a817edbd$export$2066795aadd37bfc {\n fromJulianDay(jd) {\n let days = jd - $f2f3e0e3a817edbd$var$CIVIL_EPOC;\n let startDays = $f2f3e0e3a817edbd$var$umalquraYearStart($f2f3e0e3a817edbd$var$UMALQURA_YEAR_START);\n let endDays = $f2f3e0e3a817edbd$var$umalquraYearStart($f2f3e0e3a817edbd$var$UMALQURA_YEAR_END);\n if (days < startDays || days > endDays) return super.fromJulianDay(jd);\n else {\n let y = $f2f3e0e3a817edbd$var$UMALQURA_YEAR_START - 1;\n let m = 1;\n let d = 1;\n while(d > 0){\n y++;\n d = days - $f2f3e0e3a817edbd$var$umalquraYearStart(y) + 1;\n let yearLength = $f2f3e0e3a817edbd$var$umalquraYearLength(y);\n if (d === yearLength) {\n m = 12;\n break;\n } else if (d < yearLength) {\n let monthLength = $f2f3e0e3a817edbd$var$umalquraMonthLength(y, m);\n m = 1;\n while(d > monthLength){\n d -= monthLength;\n m++;\n monthLength = $f2f3e0e3a817edbd$var$umalquraMonthLength(y, m);\n }\n break;\n }\n }\n return new (0, $35ea8db9cb2ccb90$export$99faa760c7908e4f)(this, y, m, days - $f2f3e0e3a817edbd$var$umalquraMonthStart(y, m) + 1);\n }\n }\n toJulianDay(date) {\n if (date.year < $f2f3e0e3a817edbd$var$UMALQURA_YEAR_START || date.year > $f2f3e0e3a817edbd$var$UMALQURA_YEAR_END) return super.toJulianDay(date);\n return $f2f3e0e3a817edbd$var$CIVIL_EPOC + $f2f3e0e3a817edbd$var$umalquraMonthStart(date.year, date.month) + (date.day - 1);\n }\n getDaysInMonth(date) {\n if (date.year < $f2f3e0e3a817edbd$var$UMALQURA_YEAR_START || date.year > $f2f3e0e3a817edbd$var$UMALQURA_YEAR_END) return super.getDaysInMonth(date);\n return $f2f3e0e3a817edbd$var$umalquraMonthLength(date.year, date.month);\n }\n getDaysInYear(date) {\n if (date.year < $f2f3e0e3a817edbd$var$UMALQURA_YEAR_START || date.year > $f2f3e0e3a817edbd$var$UMALQURA_YEAR_END) return super.getDaysInYear(date);\n return $f2f3e0e3a817edbd$var$umalquraYearLength(date.year);\n }\n constructor(){\n super(), this.identifier = 'islamic-umalqura';\n if (!$f2f3e0e3a817edbd$var$UMALQURA_MONTHLENGTH) $f2f3e0e3a817edbd$var$UMALQURA_MONTHLENGTH = new Uint16Array(Uint8Array.from(atob($f2f3e0e3a817edbd$var$UMALQURA_DATA), (c)=>c.charCodeAt(0)).buffer);\n if (!$f2f3e0e3a817edbd$var$UMALQURA_YEAR_START_TABLE) {\n $f2f3e0e3a817edbd$var$UMALQURA_YEAR_START_TABLE = new Uint32Array($f2f3e0e3a817edbd$var$UMALQURA_YEAR_END - $f2f3e0e3a817edbd$var$UMALQURA_YEAR_START + 1);\n let yearStart = 0;\n for(let year = $f2f3e0e3a817edbd$var$UMALQURA_YEAR_START; year <= $f2f3e0e3a817edbd$var$UMALQURA_YEAR_END; year++){\n $f2f3e0e3a817edbd$var$UMALQURA_YEAR_START_TABLE[year - $f2f3e0e3a817edbd$var$UMALQURA_YEAR_START] = yearStart;\n for(let i = 1; i <= 12; i++)yearStart += $f2f3e0e3a817edbd$var$umalquraMonthLength(year, i);\n }\n }\n }\n}\n\n\nexport {$f2f3e0e3a817edbd$export$2066795aadd37bfc as IslamicCivilCalendar, $f2f3e0e3a817edbd$export$37f0887f2f9d22f7 as IslamicTabularCalendar, $f2f3e0e3a817edbd$export$5baab4758c231076 as IslamicUmalquraCalendar};\n//# sourceMappingURL=IslamicCalendar.module.js.map\n","import {CalendarDate as $35ea8db9cb2ccb90$export$99faa760c7908e4f} from \"./CalendarDate.mjs\";\nimport {GregorianCalendar as $3b62074eb05584b2$export$80ee6245ec4f29ec} from \"./GregorianCalendar.mjs\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ // Portions of the code in this file are based on code from the TC39 Temporal proposal.\n// Original licensing can be found in the NOTICE file in the root directory of this source tree.\n\n\nconst $62225008020f0a13$var$ERA_START_DATES = [\n [\n 1868,\n 9,\n 8\n ],\n [\n 1912,\n 7,\n 30\n ],\n [\n 1926,\n 12,\n 25\n ],\n [\n 1989,\n 1,\n 8\n ],\n [\n 2019,\n 5,\n 1\n ]\n];\nconst $62225008020f0a13$var$ERA_END_DATES = [\n [\n 1912,\n 7,\n 29\n ],\n [\n 1926,\n 12,\n 24\n ],\n [\n 1989,\n 1,\n 7\n ],\n [\n 2019,\n 4,\n 30\n ]\n];\nconst $62225008020f0a13$var$ERA_ADDENDS = [\n 1867,\n 1911,\n 1925,\n 1988,\n 2018\n];\nconst $62225008020f0a13$var$ERA_NAMES = [\n 'meiji',\n 'taisho',\n 'showa',\n 'heisei',\n 'reiwa'\n];\nfunction $62225008020f0a13$var$findEraFromGregorianDate(date) {\n const idx = $62225008020f0a13$var$ERA_START_DATES.findIndex(([year, month, day])=>{\n if (date.year < year) return true;\n if (date.year === year && date.month < month) return true;\n if (date.year === year && date.month === month && date.day < day) return true;\n return false;\n });\n if (idx === -1) return $62225008020f0a13$var$ERA_START_DATES.length - 1;\n if (idx === 0) return 0;\n return idx - 1;\n}\nfunction $62225008020f0a13$var$toGregorian(date) {\n let eraAddend = $62225008020f0a13$var$ERA_ADDENDS[$62225008020f0a13$var$ERA_NAMES.indexOf(date.era)];\n if (!eraAddend) throw new Error('Unknown era: ' + date.era);\n return new (0, $35ea8db9cb2ccb90$export$99faa760c7908e4f)(date.year + eraAddend, date.month, date.day);\n}\nclass $62225008020f0a13$export$b746ab2b60cdffbf extends (0, $3b62074eb05584b2$export$80ee6245ec4f29ec) {\n fromJulianDay(jd) {\n let date = super.fromJulianDay(jd);\n let era = $62225008020f0a13$var$findEraFromGregorianDate(date);\n return new (0, $35ea8db9cb2ccb90$export$99faa760c7908e4f)(this, $62225008020f0a13$var$ERA_NAMES[era], date.year - $62225008020f0a13$var$ERA_ADDENDS[era], date.month, date.day);\n }\n toJulianDay(date) {\n return super.toJulianDay($62225008020f0a13$var$toGregorian(date));\n }\n balanceDate(date) {\n let gregorianDate = $62225008020f0a13$var$toGregorian(date);\n let era = $62225008020f0a13$var$findEraFromGregorianDate(gregorianDate);\n if ($62225008020f0a13$var$ERA_NAMES[era] !== date.era) {\n date.era = $62225008020f0a13$var$ERA_NAMES[era];\n date.year = gregorianDate.year - $62225008020f0a13$var$ERA_ADDENDS[era];\n }\n // Constrain in case we went before the first supported era.\n this.constrainDate(date);\n }\n constrainDate(date) {\n let idx = $62225008020f0a13$var$ERA_NAMES.indexOf(date.era);\n let end = $62225008020f0a13$var$ERA_END_DATES[idx];\n if (end != null) {\n let [endYear, endMonth, endDay] = end;\n // Constrain the year to the maximum possible value in the era.\n // Then constrain the month and day fields within that.\n let maxYear = endYear - $62225008020f0a13$var$ERA_ADDENDS[idx];\n date.year = Math.max(1, Math.min(maxYear, date.year));\n if (date.year === maxYear) {\n date.month = Math.min(endMonth, date.month);\n if (date.month === endMonth) date.day = Math.min(endDay, date.day);\n }\n }\n if (date.year === 1 && idx >= 0) {\n let [, startMonth, startDay] = $62225008020f0a13$var$ERA_START_DATES[idx];\n date.month = Math.max(startMonth, date.month);\n if (date.month === startMonth) date.day = Math.max(startDay, date.day);\n }\n }\n getEras() {\n return $62225008020f0a13$var$ERA_NAMES;\n }\n getYearsInEra(date) {\n // Get the number of years in the era, taking into account the date's month and day fields.\n let era = $62225008020f0a13$var$ERA_NAMES.indexOf(date.era);\n let cur = $62225008020f0a13$var$ERA_START_DATES[era];\n let next = $62225008020f0a13$var$ERA_START_DATES[era + 1];\n if (next == null) // 9999 gregorian is the maximum year allowed.\n return 9999 - cur[0] + 1;\n let years = next[0] - cur[0];\n if (date.month < next[1] || date.month === next[1] && date.day < next[2]) years++;\n return years;\n }\n getDaysInMonth(date) {\n return super.getDaysInMonth($62225008020f0a13$var$toGregorian(date));\n }\n getMinimumMonthInYear(date) {\n let start = $62225008020f0a13$var$getMinimums(date);\n return start ? start[1] : 1;\n }\n getMinimumDayInMonth(date) {\n let start = $62225008020f0a13$var$getMinimums(date);\n return start && date.month === start[1] ? start[2] : 1;\n }\n constructor(...args){\n super(...args), this.identifier = 'japanese';\n }\n}\nfunction $62225008020f0a13$var$getMinimums(date) {\n if (date.year === 1) {\n let idx = $62225008020f0a13$var$ERA_NAMES.indexOf(date.era);\n return $62225008020f0a13$var$ERA_START_DATES[idx];\n }\n}\n\n\nexport {$62225008020f0a13$export$b746ab2b60cdffbf as JapaneseCalendar};\n//# sourceMappingURL=JapaneseCalendar.module.js.map\n","import {CalendarDate as $35ea8db9cb2ccb90$export$99faa760c7908e4f} from \"./CalendarDate.mjs\";\nimport {mod as $2b4dce13dd5a17fa$export$842a2cf37af977e1} from \"./utils.mjs\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ // Portions of the code in this file are based on code from ICU.\n// Original licensing can be found in the NOTICE file in the root directory of this source tree.\n\n\nconst $f3ed2e4472ae7e25$var$PERSIAN_EPOCH = 1948320;\n// Number of days from the start of the year to the start of each month.\nconst $f3ed2e4472ae7e25$var$MONTH_START = [\n 0,\n 31,\n 62,\n 93,\n 124,\n 155,\n 186,\n 216,\n 246,\n 276,\n 306,\n 336 // Esfand\n];\nclass $f3ed2e4472ae7e25$export$37fccdbfd14c5939 {\n fromJulianDay(jd) {\n let daysSinceEpoch = jd - $f3ed2e4472ae7e25$var$PERSIAN_EPOCH;\n let year = 1 + Math.floor((33 * daysSinceEpoch + 3) / 12053);\n let farvardin1 = 365 * (year - 1) + Math.floor((8 * year + 21) / 33);\n let dayOfYear = daysSinceEpoch - farvardin1;\n let month = dayOfYear < 216 ? Math.floor(dayOfYear / 31) : Math.floor((dayOfYear - 6) / 30);\n let day = dayOfYear - $f3ed2e4472ae7e25$var$MONTH_START[month] + 1;\n return new (0, $35ea8db9cb2ccb90$export$99faa760c7908e4f)(this, year, month + 1, day);\n }\n toJulianDay(date) {\n let jd = $f3ed2e4472ae7e25$var$PERSIAN_EPOCH - 1 + 365 * (date.year - 1) + Math.floor((8 * date.year + 21) / 33);\n jd += $f3ed2e4472ae7e25$var$MONTH_START[date.month - 1];\n jd += date.day;\n return jd;\n }\n getMonthsInYear() {\n return 12;\n }\n getDaysInMonth(date) {\n if (date.month <= 6) return 31;\n if (date.month <= 11) return 30;\n let isLeapYear = (0, $2b4dce13dd5a17fa$export$842a2cf37af977e1)(25 * date.year + 11, 33) < 8;\n return isLeapYear ? 30 : 29;\n }\n getEras() {\n return [\n 'AP'\n ];\n }\n getYearsInEra() {\n // 9378-10-10 persian is 9999-12-31 gregorian.\n // Round down to 9377 to set the maximum full year.\n return 9377;\n }\n constructor(){\n this.identifier = 'persian';\n }\n}\n\n\nexport {$f3ed2e4472ae7e25$export$37fccdbfd14c5939 as PersianCalendar};\n//# sourceMappingURL=PersianCalendar.module.js.map\n","import {CalendarDate as $35ea8db9cb2ccb90$export$99faa760c7908e4f} from \"./CalendarDate.mjs\";\nimport {fromExtendedYear as $3b62074eb05584b2$export$4475b7e617eb123c, getExtendedYear as $3b62074eb05584b2$export$c36e0ecb2d4fa69d, GregorianCalendar as $3b62074eb05584b2$export$80ee6245ec4f29ec} from \"./GregorianCalendar.mjs\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ // Portions of the code in this file are based on code from ICU.\n// Original licensing can be found in the NOTICE file in the root directory of this source tree.\n\n\nconst $5f31bd6f0c8940b2$var$TAIWAN_ERA_START = 1911;\nfunction $5f31bd6f0c8940b2$var$gregorianYear(date) {\n return date.era === 'minguo' ? date.year + $5f31bd6f0c8940b2$var$TAIWAN_ERA_START : 1 - date.year + $5f31bd6f0c8940b2$var$TAIWAN_ERA_START;\n}\nfunction $5f31bd6f0c8940b2$var$gregorianToTaiwan(year) {\n let y = year - $5f31bd6f0c8940b2$var$TAIWAN_ERA_START;\n if (y > 0) return [\n 'minguo',\n y\n ];\n else return [\n 'before_minguo',\n 1 - y\n ];\n}\nclass $5f31bd6f0c8940b2$export$65e01080afcb0799 extends (0, $3b62074eb05584b2$export$80ee6245ec4f29ec) {\n fromJulianDay(jd) {\n let date = super.fromJulianDay(jd);\n let extendedYear = (0, $3b62074eb05584b2$export$c36e0ecb2d4fa69d)(date.era, date.year);\n let [era, year] = $5f31bd6f0c8940b2$var$gregorianToTaiwan(extendedYear);\n return new (0, $35ea8db9cb2ccb90$export$99faa760c7908e4f)(this, era, year, date.month, date.day);\n }\n toJulianDay(date) {\n return super.toJulianDay($5f31bd6f0c8940b2$var$toGregorian(date));\n }\n getEras() {\n return [\n 'before_minguo',\n 'minguo'\n ];\n }\n balanceDate(date) {\n let [era, year] = $5f31bd6f0c8940b2$var$gregorianToTaiwan($5f31bd6f0c8940b2$var$gregorianYear(date));\n date.era = era;\n date.year = year;\n }\n isInverseEra(date) {\n return date.era === 'before_minguo';\n }\n getDaysInMonth(date) {\n return super.getDaysInMonth($5f31bd6f0c8940b2$var$toGregorian(date));\n }\n getYearsInEra(date) {\n return date.era === 'before_minguo' ? 9999 : 9999 - $5f31bd6f0c8940b2$var$TAIWAN_ERA_START;\n }\n constructor(...args){\n super(...args), this.identifier = 'roc' // Republic of China\n ;\n }\n}\nfunction $5f31bd6f0c8940b2$var$toGregorian(date) {\n let [era, year] = (0, $3b62074eb05584b2$export$4475b7e617eb123c)($5f31bd6f0c8940b2$var$gregorianYear(date));\n return new (0, $35ea8db9cb2ccb90$export$99faa760c7908e4f)(era, year, date.month, date.day);\n}\n\n\nexport {$5f31bd6f0c8940b2$export$65e01080afcb0799 as TaiwanCalendar};\n//# sourceMappingURL=TaiwanCalendar.module.js.map\n","/**\n * Checks if `value` is `null` or `undefined`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is nullish, else `false`.\n * @example\n *\n * _.isNil(null);\n * // => true\n *\n * _.isNil(void 0);\n * // => true\n *\n * _.isNil(NaN);\n * // => false\n */\nfunction isNil(value) {\n return value == null;\n}\n\nexport default isNil;\n","/**\n * @module\n * @category Date and Time\n */\nimport {\n type CalendarDate,\n type CalendarDateTime,\n type CalendarIdentifier,\n type ZonedDateTime,\n createCalendar,\n toCalendar,\n} from '@internationalized/date';\nimport { getLocale } from '@openmrs/esm-utils';\nimport { attempt } from 'any-date-parser';\nimport dayjs from 'dayjs';\nimport isToday from 'dayjs/plugin/isToday';\nimport objectSupport from 'dayjs/plugin/objectSupport';\nimport utc from 'dayjs/plugin/utc';\nimport { isNil, omit } from 'lodash-es';\n\ndayjs.extend(isToday);\ndayjs.extend(utc);\ndayjs.extend(objectSupport);\n\nexport type DateInput = string | number | Date;\n\nconst isoFormat = 'YYYY-MM-DDTHH:mm:ss.SSSZZ';\n\n/**\n * This function checks whether a date string is the OpenMRS ISO format.\n * The format should be YYYY-MM-DDTHH:mm:ss.SSSZZ\n */\nexport function isOmrsDateStrict(omrsPayloadString: string): boolean {\n // omrs format 2018-03-19T00:00:00.000+0300\n if (omrsPayloadString === null || omrsPayloadString === undefined || omrsPayloadString.trim().length !== 28) {\n return false;\n }\n omrsPayloadString = omrsPayloadString.trim();\n\n // 11th character will always be T\n if (omrsPayloadString[10] !== 'T') {\n return false;\n }\n\n // checking time format\n if (omrsPayloadString[13] !== ':' || omrsPayloadString[16] !== ':' || omrsPayloadString[19] !== '.') {\n return false;\n }\n\n // checking UTC offset format\n if (!(omrsPayloadString[23] === '+' || omrsPayloadString[23] === '-')) {\n return false;\n }\n\n return dayjs(omrsPayloadString, isoFormat).isValid();\n}\n\n/**\n *\n * @param date Checks if the provided date is today.\n */\nexport function isOmrsDateToday(date: DateInput) {\n return dayjs(date).isToday();\n}\n\n/**\n * Converts the object to a date object if it is an OpenMRS ISO date time string.\n * Otherwise returns null.\n */\nexport function toDateObjectStrict(omrsDateString: string): Date | null {\n if (!isOmrsDateStrict(omrsDateString)) {\n return null;\n }\n\n return dayjs(omrsDateString, isoFormat).toDate();\n}\n\n/**\n * Formats the input to OpenMRS ISO format: \"YYYY-MM-DDTHH:mm:ss.SSSZZ\".\n */\nexport function toOmrsIsoString(date: DateInput, toUTC = false): string {\n let d = dayjs(date);\n\n if (toUTC) {\n d = d.utc();\n }\n\n return d.format(isoFormat);\n}\n\n/**\n * Utility function to parse an arbitrary string into a date.\n * Uses `dayjs(dateString)`.\n */\nexport function parseDate(dateString: string) {\n return dayjs(dateString).toDate();\n}\n\n/**\n * Internal cache for per-locale calendars\n */\nclass LocaleCalendars {\n #registry = new Map<string, CalendarIdentifier>();\n\n constructor() {}\n\n register(locale: string, calendar: CalendarIdentifier) {\n this.#registry.set(locale, calendar);\n }\n\n getCalendar(locale: Intl.Locale): CalendarIdentifier | undefined {\n if (!Boolean(locale)) {\n return undefined;\n }\n\n if (locale.calendar) {\n return locale.calendar as CalendarIdentifier;\n }\n\n if (locale.region) {\n const key = `${locale.language}-${locale.region}`;\n if (this.#registry.has(key)) {\n return this.#registry.get(key);\n }\n }\n\n if (locale.language && this.#registry.has(locale.language)) {\n return this.#registry.get(locale.language);\n }\n\n const defaultCalendar = new Intl.DateTimeFormat(locale.toString()).resolvedOptions().calendar as CalendarIdentifier;\n\n // cache this result\n this.#registry.set(`${locale.language}${locale.region ? `-${locale.region}` : ''}`, defaultCalendar);\n\n return defaultCalendar;\n }\n}\n\nconst registeredLocaleCalendars = new LocaleCalendars();\n\n/**\n * Provides the name of the calendar to associate, as a default, with the given base locale.\n *\n * @example\n * ```\n * registerDefaultCalendar('en', 'buddhist') // sets the default calendar for the 'en' locale to Buddhist.\n * ```\n *\n * @param locale the locale to register this calendar for\n * @param calendar the calendar to use for this registration\n */\nexport function registerDefaultCalendar(locale: string, calendar: CalendarIdentifier) {\n registeredLocaleCalendars.register(locale, calendar);\n}\n\n/**\n * Retrieves the default calendar for the specified locale if any.\n *\n * @param locale the locale to look-up\n */\nexport function getDefaultCalendar(locale: Intl.Locale | string | undefined) {\n const locale_ = locale ?? getLocale();\n\n return registeredLocaleCalendars.getCalendar(locale_ instanceof Intl.Locale ? locale_ : new Intl.Locale(locale_));\n}\n\nexport type FormatDateMode = 'standard' | 'wide';\n\nexport type FormatDateOptions = {\n /**\n * The calendar to use when formatting this date.\n */\n calendar?: string;\n /**\n * The locale to use when formatting this date\n */\n locale?: string;\n /**\n * - `standard`: \"03 Feb 2022\"\n * - `wide`: \"03 — Feb — 2022\"\n */\n mode: FormatDateMode;\n /**\n * Whether the time should be included in the output always (`true`),\n * never (`false`), or only when the input date is today (`for today`).\n */\n time: true | false | 'for today';\n /** Whether to include the day number */\n day: boolean;\n /** Whether to include the month number */\n month: boolean;\n /** Whether to include the year */\n year: boolean;\n /** The unicode numbering system to use */\n numberingSystem?: string;\n /**\n * Disables the special handling of dates that are today. If false\n * (the default), then dates that are today will be formatted as \"Today\"\n * in the locale language. If true, then dates that are today will be\n * formatted the same as all other dates.\n */\n noToday: boolean;\n};\n\nconst defaultOptions: FormatDateOptions = {\n mode: 'standard',\n time: 'for today',\n day: true,\n month: true,\n year: true,\n noToday: false,\n};\n\n/**\n * Formats the string representing a date, including partial representations of dates, according to the current\n * locale and the given options.\n *\n * Default options:\n * - mode: \"standard\",\n * - time: \"for today\",\n * - day: true,\n * - month: true,\n * - year: true\n * - noToday: false\n *\n * If the date is today then \"Today\" is produced (in the locale language).\n * This behavior can be disabled with `noToday: true`.\n *\n * When time is included, it is appended with a comma and a space. This\n * agrees with the output of `Date.prototype.toLocaleString` for *most*\n * locales.\n */\n// TODO: Shouldn't throw on null input\nexport function formatPartialDate(dateString: string, options: Partial<FormatDateOptions> = {}) {\n const locale = getLocale();\n let parsed: ReturnType<typeof attempt> & { date?: number } = attempt(dateString, locale);\n\n if (parsed.invalid) {\n console.warn(`Could not parse invalid date '${dateString}'`);\n return null;\n }\n\n // hack here but any date interprets 2000-01, etc. as yyyy-dd rather than yyyy-mm\n if (!isNil(parsed.day) && isNil(parsed.month)) {\n parsed = Object.assign({}, omit(parsed, 'day'), { month: parsed.day });\n }\n\n // dayjs' object support uses 0-based months, whereas any-date-parser uses 1-based months\n if (parsed.month) {\n parsed.month -= 1;\n }\n\n // in dayjs day is day of week; in any-date-parser, its day of month, so we need to convert them\n if (parsed.day) {\n parsed = Object.assign({}, omit(parsed, 'day'), { date: parsed.day });\n }\n\n const date = dayjs().set(parsed).toDate();\n\n if (isNil(parsed.year)) {\n options.year = false;\n }\n\n if (isNil(parsed.month)) {\n options.month = false;\n }\n\n if (isNil(parsed.date)) {\n options.day = false;\n }\n\n return formatDate(date, options);\n}\n\n/**\n * Formats the input date according to the current locale and the\n * given options.\n *\n * Default options:\n * - mode: \"standard\",\n * - time: \"for today\",\n * - day: true,\n * - month: true,\n * - year: true\n * - noToday: false\n *\n * If the date is today then \"Today\" is produced (in the locale language).\n * This behavior can be disabled with `noToday: true`.\n *\n * When time is included, it is appended with a comma and a space. This\n * agrees with the output of `Date.prototype.toLocaleString` for *most*\n * locales.\n */\n// TODO: Shouldn't throw on null input\nexport function formatDate(date: Date, options?: Partial<FormatDateOptions>) {\n let locale = options?.locale ?? getLocale();\n const _locale = new Intl.Locale(locale);\n\n const { calendar, mode, time, day, month, year, noToday, numberingSystem }: FormatDateOptions = {\n ...defaultOptions,\n ...{ noToday: _locale.language === 'am' ? true : false },\n ...options,\n };\n\n const formatCalendar = calendar ?? getDefaultCalendar(_locale);\n\n const formatterOptions: Intl.DateTimeFormatOptions = {\n calendar: formatCalendar,\n year: year ? 'numeric' : undefined,\n month: month ? 'short' : undefined,\n day: day ? '2-digit' : undefined,\n numberingSystem,\n };\n\n let localeString: string;\n const isToday = dayjs(date).isToday();\n if (isToday && !noToday) {\n // This produces the word \"Today\" in the language of `locale`\n const rtf = new Intl.RelativeTimeFormat(locale, { numeric: 'auto' });\n localeString = rtf.format(0, 'day');\n localeString = localeString[0].toLocaleUpperCase(locale) + localeString.slice(1);\n } else {\n if (_locale.language === 'en') {\n // This locale override is here rather than in `getLocale`\n // because Americans should see AM/PM for times.\n locale = 'en-GB';\n }\n\n const formatter = new Intl.DateTimeFormat(locale, formatterOptions);\n let parts = formatter.formatToParts(date);\n\n if ((_locale.language === 'en' || _locale.language === 'am') && mode == 'standard' && year && day) {\n // Custom formatting for English and Amharic. Use hyphens instead of spaces.\n parts = parts.map(formatParts('-'));\n }\n\n if (mode == 'wide') {\n parts = parts.map(formatParts(' — ')); // space-emdash-space\n }\n\n // omit the era when using the Ethiopic calendar\n if (formatterOptions.calendar === 'ethiopic') {\n parts = parts.filter((part, idx, values) => {\n if (\n part.type === 'era' ||\n (part.type === 'literal' && idx < values.length - 1 && values[idx + 1].type === 'era')\n ) {\n return false;\n }\n\n return true;\n });\n }\n\n localeString = parts.map((p) => p.value).join('');\n }\n if (time === true || (isToday && time === 'for today')) {\n localeString += `, ${formatTime(date)}`;\n }\n return localeString;\n}\n\n// Internal curried call-back for map()\nconst formatParts = (separator: string) => {\n return (part: Intl.DateTimeFormatPart, idx: number, values: Array<Intl.DateTimeFormatPart>) => {\n if (part.type !== 'literal' || part.value !== ' ') {\n return part;\n }\n\n if (idx < values.length - 1 && values[idx + 1].type === 'era') {\n return part;\n }\n\n return { type: 'literal', value: separator } as Intl.DateTimeFormatPart;\n };\n};\n\n/**\n * Formats the input as a time, according to the current locale.\n * 12-hour or 24-hour clock depends on locale.\n */\nexport function formatTime(date: Date) {\n return date.toLocaleTimeString(getLocale(), {\n hour: '2-digit',\n minute: '2-digit',\n });\n}\n\n/**\n * Formats the input into a string showing the date and time, according\n * to the current locale. The `mode` parameter is as described for\n * `formatDate`.\n *\n * This is created by concatenating the results of `formatDate`\n * and `formatTime` with a comma and space. This agrees with the\n * output of `Date.prototype.toLocaleString` for *most* locales.\n */\nexport function formatDatetime(date: Date, options?: Partial<Omit<FormatDateOptions, 'time'>>) {\n return formatDate(date, { ...options, time: true });\n}\n\n/**\n * Converts a calendar date to the equivalent locale calendar date.\n * @returns CalendarDate\n */\nexport function convertToLocaleCalendar(\n date: CalendarDate | CalendarDateTime | ZonedDateTime,\n locale: string | Intl.Locale,\n) {\n let locale_ = typeof locale === 'string' ? new Intl.Locale(locale) : locale;\n const localCalendarName = getDefaultCalendar(locale_);\n\n return localCalendarName ? toCalendar(date, createCalendar(localCalendarName)) : date;\n}\n","import {BuddhistCalendar as $8d73d47422ca7302$export$42d20a78301dee44} from \"./BuddhistCalendar.mjs\";\nimport {CopticCalendar as $b956b2d7a6cf451f$export$fe6243cbe1a4b7c1, EthiopicAmeteAlemCalendar as $b956b2d7a6cf451f$export$d72e0c37005a4914, EthiopicCalendar as $b956b2d7a6cf451f$export$26ba6eab5e20cd7d} from \"./EthiopicCalendar.mjs\";\nimport {GregorianCalendar as $3b62074eb05584b2$export$80ee6245ec4f29ec} from \"./GregorianCalendar.mjs\";\nimport {HebrewCalendar as $7c5f6fbf42389787$export$ca405048b8fb5af} from \"./HebrewCalendar.mjs\";\nimport {IndianCalendar as $82c358003bdda0a8$export$39f31c639fa15726} from \"./IndianCalendar.mjs\";\nimport {IslamicCivilCalendar as $f2f3e0e3a817edbd$export$2066795aadd37bfc, IslamicTabularCalendar as $f2f3e0e3a817edbd$export$37f0887f2f9d22f7, IslamicUmalquraCalendar as $f2f3e0e3a817edbd$export$5baab4758c231076} from \"./IslamicCalendar.mjs\";\nimport {JapaneseCalendar as $62225008020f0a13$export$b746ab2b60cdffbf} from \"./JapaneseCalendar.mjs\";\nimport {PersianCalendar as $f3ed2e4472ae7e25$export$37fccdbfd14c5939} from \"./PersianCalendar.mjs\";\nimport {TaiwanCalendar as $5f31bd6f0c8940b2$export$65e01080afcb0799} from \"./TaiwanCalendar.mjs\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\n\n\n\n\n\n\n\nfunction $64244302c3013299$export$dd0bbc9b26defe37(name) {\n switch(name){\n case 'buddhist':\n return new (0, $8d73d47422ca7302$export$42d20a78301dee44)();\n case 'ethiopic':\n return new (0, $b956b2d7a6cf451f$export$26ba6eab5e20cd7d)();\n case 'ethioaa':\n return new (0, $b956b2d7a6cf451f$export$d72e0c37005a4914)();\n case 'coptic':\n return new (0, $b956b2d7a6cf451f$export$fe6243cbe1a4b7c1)();\n case 'hebrew':\n return new (0, $7c5f6fbf42389787$export$ca405048b8fb5af)();\n case 'indian':\n return new (0, $82c358003bdda0a8$export$39f31c639fa15726)();\n case 'islamic-civil':\n return new (0, $f2f3e0e3a817edbd$export$2066795aadd37bfc)();\n case 'islamic-tbla':\n return new (0, $f2f3e0e3a817edbd$export$37f0887f2f9d22f7)();\n case 'islamic-umalqura':\n return new (0, $f2f3e0e3a817edbd$export$5baab4758c231076)();\n case 'japanese':\n return new (0, $62225008020f0a13$export$b746ab2b60cdffbf)();\n case 'persian':\n return new (0, $f3ed2e4472ae7e25$export$37fccdbfd14c5939)();\n case 'roc':\n return new (0, $5f31bd6f0c8940b2$export$65e01080afcb0799)();\n case 'gregory':\n default:\n return new (0, $3b62074eb05584b2$export$80ee6245ec4f29ec)();\n }\n}\n\n\nexport {$64244302c3013299$export$dd0bbc9b26defe37 as createCalendar};\n//# sourceMappingURL=createCalendar.module.js.map\n","import type {} from '@openmrs/esm-globals';\n\nexport function isOnline(online?: boolean) {\n return window.offlineEnabled ? online ?? navigator.onLine : true;\n}\n","/** @module @category Utility */\n\nimport { type NameUse } from '@openmrs/esm-globals';\n\n/**\n * Gets the formatted display name for a patient.\n *\n * The display name will be taken from the patient's 'usual' name,\n * or may fall back to the patient's 'official' name.\n *\n * @param patient The patient details in FHIR format.\n * @returns The patient's display name or an empty string if name is not present.\n */\nexport function getPatientName(patient: fhir.Patient): string {\n const name = selectPreferredName(patient, 'usual', 'official');\n return formatPatientName(name);\n}\n\n/** @deprecated Use `getPatientName` */\nexport function displayName(patient: fhir.Patient): string {\n return getPatientName(patient);\n}\n\n/**\n * Get a formatted display string for an FHIR name.\n * @param name The name to be formatted.\n * @returns The formatted display name or an empty string if name is undefined.\n */\nexport function formatPatientName(name: fhir.HumanName | undefined): string {\n if (name) return name.text ?? defaultFormat(name);\n return '';\n}\n\n/** @deprecated Use `formatPatientName` */\nexport function formattedName(name: fhir.HumanName | undefined): string {\n return formatPatientName(name);\n}\n\n/**\n * Select the preferred name from the collection of names associated with a patient.\n *\n * Names may be specified with a usage such as 'usual', 'official', 'nickname', 'maiden', etc.\n * A name with no usage specified is treated as the 'usual' name.\n *\n * The chosen name will be selected according to the priority order of `preferredNames`,\n * @example\n * // normal use case; prefer usual name, fallback to official name\n * displayNameByUsage(patient, 'usual', 'official')\n * @example\n * // prefer usual name over nickname, fallback to official name\n * displayNameByUsage(patient, 'usual', 'nickname', 'official')\n *\n * @param patient The patient from whom a name will be selected.\n * @param preferredNames Optional ordered sequence of preferred name usages; defaults to 'usual' if not specified.\n * @return the preferred name for the patient, or undefined if no acceptable name could be found.\n */\nexport function selectPreferredName(patient: fhir.Patient, ...preferredNames: NameUse[]): fhir.HumanName | undefined {\n if (preferredNames.length == 0) {\n preferredNames = ['usual'];\n }\n for (const usage of preferredNames) {\n const name = patient.name?.find((name) => nameUsageMatches(name, usage));\n if (name) {\n return name;\n }\n }\n return undefined;\n}\n\n/**\n * Generate a display name by concatenating forenames and surname.\n * @param name the person's name.\n * @returns the person's name as a string.\n */\nfunction defaultFormat(name: fhir.HumanName): string {\n const forenames: string[] = name.given ?? [];\n const names: string[] = name.family ? forenames.concat(name.family) : forenames;\n return names.join(' ');\n}\n\n/**\n * Determine whether the usage of a given name matches the given NameUse.\n *\n * A name with no usage is treated as the 'usual' name.\n *\n * @param name the name to test.\n * @param usage the NameUse to test for.\n */\nfunction nameUsageMatches(name: fhir.HumanName, usage: NameUse): boolean {\n if (!name.use)\n // a name with no usage is treated as 'usual'\n return usage === 'usual';\n\n return name.use === usage;\n}\n","/** @module @category Utility */\n\n/**\n * Checks whether two objects are equal, using a shallow comparison, similar to React.\n *\n * In essence, shallowEquals ensures two objects have the same own properties and that the values\n * of these are equal (===) to each other.\n *\n * @param a The first value to compare\n * @param b The second value to compare\n * @returns true if the objects are shallowly equal to each other\n */\nexport function shallowEqual(a: unknown, b: unknown) {\n if (a === b || Object.is(a, b)) {\n return true;\n }\n\n if (Array.isArray(a)) {\n if (!Array.isArray(b)) {\n return false;\n }\n\n if (a.length !== b.length) {\n return false;\n }\n\n for (let i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) {\n return false;\n }\n }\n\n return true;\n } else if (Array.isArray(b)) {\n return false;\n }\n\n if (typeof a !== 'object' || a === null || typeof b !== 'object' || b === null) {\n return false;\n }\n\n const objAKeys = Object.getOwnPropertyNames(a);\n const objBKeys = Object.getOwnPropertyNames(b);\n\n return objAKeys.length === objBKeys.length && objAKeys.every((key) => a[key] === b[key]);\n}\n","/** @module @category Utility */\n\n/**\n * Simple utility function to determine if an object implementing the WebStorage API\n * is actually available. Useful for testing the availability of `localStorage` or\n * `sessionStorage`.\n *\n * @param storage The WebStorage API object to check. Defaults to `localStorage`.\n * @returns True if the WebStorage API object is able to be accessed, false otherwise\n */\nexport function canAccessStorage(storage: Storage = window.localStorage) {\n try {\n storage.getItem('test');\n return true;\n } catch {\n return false;\n }\n}\n","/** @module @category Utility */\n\n/**\n * Given a config schema, this returns an object like is returned by `useConfig`\n * with all default values.\n *\n * This should be used in tests and not in production code.\n *\n * If all you need is the default values in your tests, these are returned by\n * default from the `useConfig`/`getConfig` mock. This function is useful if you\n * need to override some of the default values.\n */\nexport function getDefaultsFromConfigSchema<T = Record<string, any>>(schema): T {\n let tmp = {};\n for (let k of Object.keys(schema)) {\n if (schema[k].hasOwnProperty('_default')) {\n tmp[k] = schema[k]._default;\n } else if (k.startsWith('_')) {\n continue;\n } else if (isOrdinaryObject(schema[k])) {\n tmp[k] = getDefaultsFromConfigSchema(schema[k]);\n } else {\n tmp[k] = schema[k];\n }\n }\n return tmp as T;\n}\n\nfunction isOrdinaryObject(x) {\n return !!x && x.constructor === Object;\n}\n","/** @module @category Utility */\nimport * as semver from 'semver';\n\nfunction normalizeOnlyVersion(version: string) {\n const [major, minor, patch] = version.split('.');\n return `${major}.${minor}.${patch}`;\n}\n\nfunction normalizeFullVersion(version: string) {\n const idx = version.indexOf('-');\n const prerelease = idx >= 0;\n\n if (prerelease) {\n const ver = normalizeOnlyVersion(version.slice(0, idx));\n const pre = version.slice(idx + 1);\n return `${ver}-${pre}`;\n }\n\n return normalizeOnlyVersion(version);\n}\n\nexport function isVersionSatisfied(requiredVersion: string, installedVersion: string) {\n const version = normalizeFullVersion(installedVersion);\n\n return semver.satisfies(version, requiredVersion, {\n includePrerelease: true,\n } as semver.Options);\n}\n","/** @module @category Utility */\n\n/**\n * Options for configuring the behavior of the {@link retry} function.\n */\nexport interface RetryOptions {\n /**\n * Determines whether the retry function should retry executing the function after it failed\n * with an error on the current attempt.\n * @param attempt The current (zero-based) retry attempt. `0` indicates the initial attempt.\n */\n shouldRetry?(attempt: number);\n /**\n * Calculates the next delay (in milliseconds) before a retry attempt.\n * Returning a value for the inital attempt (`0`) delays the initial function invocation.\n * @param attempt The current (zero-based) retry attempt. `0` indicates the initial attempt.\n */\n getDelay?(attempt: number): number;\n /**\n * Called when invoking the function resulted in an error.\n * Allows running side-effects on errors, e.g. logging.\n * @param e The error thrown by the function.\n * @param attempt The current (zero-based) retry attempt. `0` indicates the initial attempt.\n */\n onError?(e: any, attempt: number): void;\n}\n\n/**\n * Executes the specified function and retries executing on failure with a custom backoff strategy\n * defined by the options.\n *\n * If not configured otherwise, this function uses the following default options:\n * * Retries 5 times beyond the initial attempt.\n * * Uses an exponential backoff starting with an initial delay of 1000ms.\n * @param fn The function to be executed and retried on failure.\n * @param options Additional options which configure the retry behavior.\n * @returns The result of successfully executing `fn`.\n * @throws Rethrows the final error of running `fn` when the function stops retrying.\n */\nexport async function retry<T>(fn: () => Promise<T>, options: RetryOptions = {}) {\n let { shouldRetry, getDelay, onError } = options;\n shouldRetry = shouldRetry ?? ((attempt) => limitAttempts(attempt, 5));\n getDelay = getDelay ?? ((attempt) => getExponentialDelay(attempt, 1000));\n\n let attempt = 0;\n let lastError: any = undefined;\n\n do {\n try {\n await delay(getDelay(attempt));\n return await fn();\n } catch (e) {\n onError?.(e, attempt);\n lastError = e;\n }\n } while (shouldRetry(attempt++));\n\n // If we reach this fn errored and shouldn't retry anymore. Simply rethrow the final error as\n // a means of ending the retry process without a result.\n throw lastError;\n}\n\nfunction limitAttempts(attempt: number, maxAttempts: number) {\n return attempt <= maxAttempts;\n}\n\nfunction getExponentialDelay(attempt: number, startingDelay: number, initialDelay = false) {\n const exponent = initialDelay ? attempt + 1 : attempt;\n return startingDelay * Math.pow(2, exponent);\n}\n\nasync function delay(ms: number) {\n if (ms <= 0) {\n return;\n }\n\n return new Promise<void>((res) => setTimeout(res, ms));\n}\n"],"names":["Object","defineProperty","exports","value","__exportStar","CanonicalizeLocaleList","locales","Intl","getCanonicalLocales","CanonicalizeTimeZoneName","tz","_a","zoneNames","uppercaseLinks","uppercasedTz","toUpperCase","uppercasedZones","reduce","all","z","ianaTimeZone","inexact","quadrant","EXP_LIMIT","MAX_DIGITS","NUMERALS","LN10","PI","DEFAULTS","precision","rounding","modulo","toExpNeg","toExpPos","minE","maxE","crypto","external","decimalError","invalidArgument","precisionLimitExceeded","cryptoUnavailable","tag","mathfloor","Math","floor","mathpow","pow","isBinary","isHex","isOctal","isDecimal","BASE","LOG_BASE","LN10_PRECISION","length","PI_PRECISION","P","toStringTag","digitsToString","d","i","k","ws","indexOfLastWord","str","w","getZeroString","checkInt32","min","max","Error","checkRoundingDigits","rm","repeating","di","r","rd","ceil","convertBase","baseIn","baseOut","j","arrL","arr","strL","indexOf","charAt","reverse","absoluteValue","abs","x","this","constructor","s","finalise","e","clampedTo","clamp","Ctor","NaN","gt","cmp","comparedTo","y","xdL","ydL","xd","yd","xs","ys","cosine","cos","pr","sd","len","isZero","tinyPow","toString","taylorSeries","times","cos2x","minus","plus","toLessThanHalfPi","neg","cubeRoot","cbrt","m","n","rep","t","t3","t3plusx","isFinite","toExponential","slice","divide","eq","decimalPlaces","dp","dividedBy","div","dividedToIntegerBy","divToInt","equals","greaterThan","greaterThanOrEqualTo","gte","hyperbolicCosine","cosh","one","cosh2_x","d8","hyperbolicSine","sinh","sqrt","sinh2_x","d5","d16","d20","hyperbolicTangent","tanh","inverseCosine","acos","isNeg","getPi","atan","inverseHyperbolicCosine","acosh","lte","ln","inverseHyperbolicSine","asinh","inverseHyperbolicTangent","atanh","wpr","xsd","inverseSine","asin","halfPi","inverseTangent","px","x2","isInteger","isInt","isNaN","isNegative","isPositive","isPos","lessThan","lt","lessThanOrEqualTo","logarithm","log","base","isBase10","denominator","inf","num","arg","naturalLogarithm","getLn10","sub","xe","xLTy","push","pop","shift","getBase10Exponent","mod","q","naturalExponential","exp","negated","add","carry","unshift","getPrecision","round","sine","sin","sin2_x","squareRoot","tangent","tan","mul","rL","toBinary","toStringBinary","toDecimalPlaces","toDP","finiteToString","toFixed","toFraction","maxD","d0","d1","d2","n0","n1","toHexadecimal","toHex","toNearest","toNumber","toOctal","toPower","yn","intPow","toPrecision","toSignificantDigits","toSD","truncated","trunc","valueOf","toJSON","multiplyInteger","temp","compare","a","b","aL","bL","subtract","logBase","more","prod","prodL","qd","rem","remL","rem0","xi","xL","yd0","yL","yz","sign","isTruncated","digits","roundUp","xdi","out","isExp","nonFiniteToString","zs","truncate","isOdd","maxOrMin","args","guard","sum","c","c0","numerator","x1","String","parseDecimal","replace","search","substring","charCodeAt","parseOther","divisor","isFloat","p","test","toLowerCase","Decimal","isHyperbolic","u","pi","atan2","config","obj","v","useDefaults","defaults","ps","getRandomValues","randomBytes","hypot","arguments","isDecimalInstance","log2","log10","random","Uint32Array","copy","Symbol","for","clone","prototype","ROUND_UP","ROUND_DOWN","ROUND_CEIL","ROUND_FLOOR","ROUND_HALF_UP","ROUND_HALF_DOWN","ROUND_HALF_EVEN","ROUND_HALF_CEIL","ROUND_HALF_FLOOR","EUCLID","set","hasOwnProperty","ZERO","NEGATIVE_ZERO","memoize","fn","options","cache","cacheDefault","serializer","serializerDefault","strategy","strategyDefault","monadic","cacheKey","computedValue","get","call","variadic","Array","apply","assemble","context","serialize","bind","create","JSON","stringify","ObjectWithoutPrototypeCache","key","strategies","repeat","join","setInternalSlot","map","pl","field","setMultiInternalSlots","props","_i","keys","getInternalSlot","getMultiInternalSlots","fields","slots","TypeError","concat","f","isLiteralPart","patternPart","type","target","name","configurable","enumerable","writable","createDataProperty","invariant","condition","message","Err","createMemoizedNumberFormat","NumberFormat","__spreadArray","createMemoizedDateTimeFormat","DateTimeFormat","createMemoizedPluralRules","PluralRules","createMemoizedLocale","Locale","createMemoizedListFormat","ListFormat","ToString","o","ToNumber","undefined","primValue","ToPrimitive","TimeClip","time","number","integer","ToInteger","ToObject","SameValue","is","ArrayCreate","HasOwnProperty","prop","Type","MS_PER_DAY","Day","WeekDay","DayFromYear","Date","UTC","TimeFromYear","YearFromTime","getUTCFullYear","DaysInYear","DayWithinYear","InLeapYear","MonthFromTime","dwy","leap","DateFromTime","mft","HOURS_PER_DAY","MINUTES_PER_HOUR","SECONDS_PER_MINUTE","MS_PER_SECOND","MS_PER_MINUTE","MS_PER_HOUR","HourFromTime","MinFromTime","SecFromTime","IsCallable","OrdinaryHasInstance","C","O","internalSlots","boundTargetFunction","isPrototypeOf","msFromTime","input","preferredType","exoticToPrim","toPrimitive","hint","result","methodNames_1","method","OrdinaryToPrimitive","CoerceOptionsToObject","DefaultNumberOption","inputVal","fallback","val","Number","RangeError","GetNumberOption","property","minimum","maximum","GetOption","opts","values","Boolean","filter","GetOptionsObject","GetStringOrBooleanOption","trueValue","falsyValue","SANCTIONED_UNITS","removeUnitNamespace","unit","SIMPLE_UNITS","IsSanctionedSimpleUnitIdentifier","unitIdentifier","IsValidTimeZoneName","zoneNamesFromData","Set","linkNames","forEach","linkName","has","NOT_A_Z_REGEX","IsWellFormedCurrencyCode","currency","_","IsWellFormedUnitIdentifier","units","split","ApplyUnsignedRoundingMode","r1","r2","unsignedRoundingMode","PART_TYPES_TO_COLLAPSE","CollapseNumberRange","numberFormat","getInternalSlots","symbols","dataLocaleData","numbers","numberingSystem","rangeSignRegex","RegExp","rangeSign","rangeSignIndex","findIndex","prefixSignParts","from","newResult","splice","suffixSignParts","ComputeExponentForMagnitude","magnitude","notation","compactDisplay","style","currencyDisplay","thresholdMap","nu","short","decimal","long","thresholds","magnitudeKey","other","match","negativeMapping","expand","halfCeil","halfFloor","halfExpand","halfTrunc","halfEven","positiveMapping","GetUnsignedRoundingMode","roundingMode","ToRawFixedFn","ToRawFixed","minFraction","maxFraction","roundingIncrement","xFinal","int","findN1R1","_b","n2","findN2R2","cut","formattedString","roundedNumber","integerDigitsCount","roundingMagnitude","ToRawPrecision","minPrecision","maxPrecision","maxN1","minN1","currentE1","currentN1","currentR1","e1","findN1E1R1","maxN2","minN2","currentE2","currentN2","currentR2","e2","findN2E2R2","includes","FormatNumericToString","intlObject","_x","roundingType","minimumSignificantDigits","maximumSignificantDigits","minimumFractionDigits","maximumFractionDigits","sResult","fResult","string","trailingZeroDisplay","minInteger","minimumIntegerDigits","ComputeExponent","exponent","formatNumberResult","CurrencyDigits","currencyDigitsData","S_UNICODE_REGEX","digitMapping","CARET_S_UNICODE_REGEX","source","S_DOLLAR_UNICODE_REGEX","CLDR_NUMBER_PATTERN","formatToParts","numberResult","data","nonNameCurrencyPart","numberPattern","defaultNumberingSystem","compactNumberPattern","pattern","compactPluralRules","byNumberingSystem","selectPlural","compactPlaralRule","getPatternForSign","getCompactDisplayPattern","byCurrencyDisplay","currencies","symbol","narrow","standard","currencyData","currencySign","percent","decimalNumberPattern","exec","afterCurrency","currencySpacing","afterInsertBetween","beforeCurrency","beforeInsertBetween","numberPatternParts","numberParts","numberPatternParts_1","part","partitionNumberIntoParts","useGrouping","minusSign","plusSign","percentSign","unitName","unitPattern","currencyNameData","displayName","unitPatternParts_1","unitDisplay","unitData","simple","_c","numeratorUnit","denominatorUnit","numeratorUnitPattern","perUnitPattern","perUnit","perPattern","compound","per","denominatorPattern","_d","_e","interpolateMatch","digitReplacementTable","digit","fraction","decimalSepIndex","shouldUseGrouping","groupSepSymbol","currencyGroup","group","groups","patternGroups","primaryGroupingSize","secondaryGroupingSize","integerGroup","decimalSepSymbol","currencyDecimal","exponential","exponentResult","zeroPattern","negativePattern","rules","select","FormatApproximately","approximatelySign","PartitionNumberPattern","nan","infinity","signDisplay","FormatNumeric","PartitionNumberRangePattern","xResult","yResult","appxResult","el","rangeSeparator","FormatNumericRange","FormatNumericRangeToParts","index","FormatNumericToParts","nf","implDetails","parts","parts_1","RangePatternType","_super","VALID_ROUNDING_INCREMENTS","SetNumberFormatDigitOptions","mnfdDefault","mxfdDefault","mnid","mnfd","mxfd","mnsd","mxsd","roundingPriority","hasSd","hasFd","needSd","needFd","SetNumberFormatUnitOptions","InitializeNumberFormat","localeData","availableLocales","numberingSystemNames","getDefaultLocale","requestedLocales","opt","matcher","localeMatcher","ResolveLocale","dataLocale","locale","cDigits","defaultUseGrouping","PartitionPattern","beginIndex","endIndex","nextIndex","SupportedLocales","LookupSupportedLocales","isMissingLocaleDataError","ToIntlMathematicalValue","__extends","_this","DurationRecordSign","record","TABLE_1_1","constants_1","TABLE_1","GetDurationUnitOptions","baseStyle","stylesList","digitalBase","prevStyle","ecma402_abstract_1","displayDefault","displayField","display","IsValidDurationRecord","DurationRecordSign_1","PartitionDurationFormatPattern","df","duration","done","separated","get_internal_slots_1","core_1","DurationFormat","separator","digitalFormat","_loop_1","row","TABLE_2","valueField","styleSlot","displaySlot","numberFormatUnit","nfOpts","milliseconds","microseconds","nanoseconds","fractionalDigits","list_1","lfOpts","listStyle","lf","strings","result_1","formatted","resultIndex","resultLength","flattened","formatted_1","parts_2","ToDurationRecord","years","months","weeks","days","hours","minutes","seconds","ToIntegerIfIntegral_1","ToIntegerIfIntegral","IsValidDurationRecord_1","intl_localematcher_1","GetDurationUnitOptions_1","PartitionDurationFormatPattern_1","ToDurationRecord_1","numbering_systems_generated_1","time_separators_generated_1","RESOLVED_OPTIONS_KEYS","TABLE_3","digitalDefault","initializedDurationFormat","valueList","unitOptions","resolvedOptions","ro","RESOLVED_OPTIONS_KEYS_1","format","supportedLocalesOf","__defaultLocale","TIME_SEPARATORS","separators","default","polyfilled","internalSlotMap","WeakMap","supplemental","languageMatching","paradigmLocales","_locales","$enUS","_value","$cnsar","$americas","$maghreb","no","_desired","_distance","bs","hr","sr","aa","de","_oneway","nb","ru","en","nl","es","ur","hi","zh","fr","fil","ar","sk","da","id","tr","it","az","et","ff","gn","iu","kln","kok","kpe","luy","lv","mg","mn","ms","ne","om","or","qu","sc","sq","syr","uz","yi","regions","UNICODE_EXTENSION_SEQUENCE_REGEX","PROCESSED_DATA","DEFAULT_MATCHING_THRESHOLD","isMatched","languageMatchInfoLocale","matchVariables","language","script","region","matches","shouldInclude","expandedMatchedRegions","list","serializeLSR","lsr","findMatchingDistanceForLSR","desired","supported","oneway","distance","BestFitMatcher","foundLocale","extension","noExtensionLocales","noExtensionLocaleMap","l","noExtensionLocale","supportedLocales","threshold","lowestDistance","Infinity","matchedDesiredLocale","distances","desiredLocale","maximize","supportedLocale","desiredLSR","supportedLSR","matchingDistance","processData","findMatchingDistance","matchedSupportedLocale","findBestMatch","CanonicalizeUnicodeLocaleId","BestAvailableLocale","candidate","pos","lastIndexOf","relevantExtensionKeys","requestedLocales_1","availableLocale","LookupMatcher","components","keywords","foundLocaleData","keyword","attributes","size","subtag","find","UnicodeExtensionComponents","supportedKeywords","keyLocaleData","isArray","supportedKeyword","entry","requestedValue","ukey","lowerValue","optionsValue","relevantExtensionKeys_1","attributes_1","keywords_1","kw","privateIndex","InsertUnicodeExtensionAndCanonicalize","subset","defaultLocale","algorithm","module","isToday","date","utc","$utils","day","year","month","hour","h","minute","second","millisecond","parse","toDate","$L","utcOffset","local","$u","$offset","init","$d","$y","$M","getUTCMonth","$D","getUTCDate","$W","getUTCDay","$H","getUTCHours","$m","getUTCMinutes","$s","getUTCSeconds","$ms","getUTCMilliseconds","getTimezoneOffset","$x","$localOffset","isUTC","toISOString","toUTCString","diff","ANY","Comparator","comp","loose","includePrerelease","debug","semver","operator","version","re","COMPARATORLOOSE","COMPARATOR","SemVer","er","intersects","Range","sameDirectionIncreasing","sameDirectionDecreasing","sameSemVer","differentDirectionsInclusive","oppositeDirectionsLessThan","oppositeDirectionsGreaterThan","range","raw","parseRange","trim","comps","HYPHENRANGELOOSE","HYPHENRANGE","hyphenReplace","COMPARATORTRIM","comparatorTrimReplace","TILDETRIM","tildeTrimReplace","CARETTRIM","caretTrimReplace","compRe","parseComparator","replaceGTE0","some","thisComparators","isSatisfiable","rangeComparators","every","thisComparator","rangeComparator","testSet","comparators","remainingComparators","testComparator","otherComparator","replaceCarets","replaceTildes","replaceXRanges","replaceStars","isX","replaceTilde","TILDELOOSE","TILDE","M","ret","replaceCaret","CARETLOOSE","CARET","replaceXRange","XRANGELOOSE","XRANGE","gtlt","xM","xm","xp","anyX","STAR","GTE0PRE","GTE0","incPr","$0","fM","fm","fp","fpr","fb","to","tM","tm","tp","tpr","tb","prerelease","allowed","major","minor","patch","MAX_LENGTH","MAX_SAFE_INTEGER","compareIdentifiers","LOOSE","FULL","build","compareMain","comparePre","compareBuild","inc","release","identifier","neq","op","rtl","next","COERCERTL","lastIndex","COERCE","versionA","versionB","version1","version2","v1","v2","hasPre","prefix","defaultResult","parsed","sort","internalRe","src","tokens","SEMVER_SPEC_VERSION","rcompareIdentifiers","valid","clean","rcompare","compareLoose","rsort","coerce","satisfies","toComparators","maxSatisfying","minSatisfying","minVersion","validRange","outside","gtr","ltr","simplifyRange","MAX_SAFE_COMPONENT_LENGTH","process","env","NODE_DEBUG","console","error","numeric","anum","bnum","R","createToken","isGlobal","NUMERICIDENTIFIER","NUMERICIDENTIFIERLOOSE","NONNUMERICIDENTIFIER","PRERELEASEIDENTIFIER","PRERELEASEIDENTIFIERLOOSE","BUILDIDENTIFIER","MAINVERSION","PRERELEASE","BUILD","FULLPLAIN","MAINVERSIONLOOSE","PRERELEASELOOSE","LOOSEPLAIN","XRANGEIDENTIFIER","XRANGEIDENTIFIERLOOSE","GTLT","XRANGEPLAIN","XRANGEPLAINLOOSE","LONETILDE","LONECARET","versions","maxSV","rangeObj","minSV","minver","comparator","compver","hilo","gtfn","ltefn","ltfn","ecomp","high","low","prev","ranges","simplified","original","simpleSubset","dom","eqSet","gtltComp","higher","lower","hasDomLT","hasDomGT","higherGT","lowerLT","sawNonNull","OUTER","simpleSub","simpleDom","isSub","__WEBPACK_EXTERNAL_MODULE__9688__","extendStatics","setPrototypeOf","__proto__","__","__assign","assign","__rest","getOwnPropertySymbols","propertyIsEnumerable","__decorate","decorators","desc","getOwnPropertyDescriptor","Reflect","decorate","__param","paramIndex","decorator","__esDecorate","ctor","descriptorIn","contextIn","initializers","extraInitializers","accept","kind","descriptor","access","addInitializer","__runInitializers","thisArg","useValue","__propKey","__setFunctionName","description","__metadata","metadataKey","metadataValue","metadata","__awaiter","_arguments","generator","Promise","resolve","reject","fulfilled","step","rejected","then","__generator","body","label","sent","trys","ops","g","Iterator","verb","iterator","__createBinding","k2","__esModule","__values","__read","__spread","__spreadArrays","il","jl","pack","__await","__asyncGenerator","asyncIterator","AsyncIterator","resume","fulfill","settle","__asyncDelegator","__asyncValues","__makeTemplateObject","cooked","__setModuleDefault","ownKeys","getOwnPropertyNames","__importStar","__importDefault","__classPrivateFieldGet","receiver","state","__classPrivateFieldSet","__classPrivateFieldIn","__addDisposableResource","async","dispose","inner","asyncDispose","stack","_SuppressedError","SuppressedError","suppressed","__disposeResources","fail","hasError","__rewriteRelativeImportExtension","path","preserveJsx","tsx","ext","cm","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","getter","definition","detectedLocale","navigator","nav","languages","LC_ALL","LC_MESSAGES","LANG","LANGUAGE","defaultLocale_default","baseName","normalizeLocale","MaybeValidDate","invalid","isValid","twoDigitYears","twoDigitYears_default","startCodes","arab","arabext","bali","beng","deva","fullwide","gujr","khmr","knda","laoo","limb","mlym","mong","mymr","orya","tamldec","telu","thai","tibt","chineseGroup","defaultLookup","timezoneNames_default","ACDT","ACST","ACT","ADT","AEDT","AEST","AFT","AKDT","AKST","AMST","AMT","ART","AST","AWDT","AWST","AZOST","AZT","BDT","BIOT","BIT","BOT","BRST","BRT","BTT","CAT","CCT","CDT","CEDT","CEST","CET","CHADT","CHAST","CHOT","ChST","CHUT","CIST","CIT","CKT","CLST","CLT","COST","COT","CST","CT","CVT","CXT","DAVT","DDUT","DFT","EASST","EAST","EAT","ECT","EDT","EEDT","EEST","EET","EGST","EGT","EIT","EST","FET","FJT","FKST","FKT","FNT","GALT","GAMT","GET","GFT","GILT","GIT","GMT","GST","GYT","HADT","HAEC","HAST","HKT","HMT","HOVT","HST","IBST","ICT","IDT","IOT","IRDT","IRKT","IRST","IST","JST","KGT","KOST","KRAT","KST","LHST","LINT","MAGT","MART","MAWT","MDT","MET","MEST","MHT","MIST","MIT","MMT","MSK","MST","MUT","MVT","MYT","NCT","NDT","NFT","NPT","NST","NT","NUT","NZDT","NZST","OMST","ORAT","PDT","PET","PETT","PGT","PHOT","PKT","PMDT","PMST","PONT","PST","PYST","PYT","RET","ROTT","SAKT","SAMT","SAST","SBT","SCT","SGT","SLST","SRET","SRT","SST","SYOT","TAHT","THA","TFT","TJT","TKT","TLT","TMT","TOT","TVT","UCT","ULAT","USZ1","UYST","UYT","UZT","VET","VLAT","VOLT","VOST","VUT","WAKT","WAST","WAT","WEDT","WEST","WET","WIT","WST","YAKT","YEKT","baseLookups_default","zone","meridiem","am","pm","january","jan","february","feb","march","mar","april","apr","may","june","jun","july","jul","august","aug","september","sep","october","oct","november","nov","december","dec","dayname","sunday","sun","monday","mon","tuesday","tue","wednesday","wed","thursday","thu","friday","fri","saturday","sat","latn","MONTHNAME","DAYNAME","ZONE","MERIDIEM","ORDINAL","YEAR","YEAR2","YEAR4","YEAR6","MONTH","MONTH2","DAY","DAY2","OFFSET","H24","H12","MIN","SEC","MS","GAP","cache2","LocaleHelper","_LocaleHelper","lookups","vars","dateOptions","static","fmt","toInt","digitString","startsWith","parseInt","latnDigitString","millisecondToInt","msString","monthNameToInt","monthName","toLocaleLowerCase","h12ToInt","ampm","meridiemOffset","hourInt","zoneToOffset","zoneName","offsetToMinutes","offsetString","captured","buildNumbers","buildMonthNames","buildDaynames","buildMeridiems","lookup","nsName","startCode","start","fromCharCode","end","buildDigits","idx","suffix","dates","findMonth","item","monthIdx","dateStyles","dateStyle","format2","text","findDay","dayIndex","weekdays","weekday","findDayPeriod","timeStyle","dayPeriod","compile","template","regexString","$1","mdyLocales","unitShortcuts_default","nowGetter","now","handlerWith","helper","patterns","regex","handler","aDay","toAdd","today","tomorrow","yesterday","setTime","getTime","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","amount","isAgo","parseFloat","setUTCMilliseconds","setUTCSeconds","setUTCMinutes","setUTCHours","setUTCDate","setUTCMonth","setUTCFullYear","offset","twoLetterLocale","PatternMatcher","doneChecker","formatter","doneChecker2","attempt","workingString","rawResult","hadMatch","entries","finalFields","matcherByLocale","res","getFallback","getFormatter","extracted","casted","calendar","periodsInsteadOfColons","preprocessors_default","bn","he","pt","th","ko","fi","dateStr","factory","getMatcher","processed","dateString","replacers","runPreprocessors","fromObject","fromString","fromAny","any","parser","window","anyDateParser","array","iteratee","ListCache","clear","__data__","global","freeSelf","self","Function","objectProto","nativeObjectToString","symToStringTag","isOwn","unmasked","uid","maskSrcKey","IE_PROTO","funcToString","func","reIsHostCtor","reIsNative","object","Hash","MapCache","Stack","pairs","LARGE_ARRAY_SIZE","objValue","customizer","isNew","newValue","isArguments","freeExports","nodeType","freeModule","Buffer","isBuffer","reIsUint","typedArrayTags","freeProcess","require","types","binding","nodeIsTypedArray","isTypedArray","inherited","isArr","isArg","isBuff","isType","skipIndexes","transform","isProto","allocUnsafe","nativeGetSymbols","predicate","resIndex","getPrototypeOf","keysFunc","symbolsFunc","promiseTag","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","getTag","ArrayBuffer","ctorString","Uint8Array","arrayBuffer","byteLength","reFlags","symbolProto","symbolValueOf","isDeep","regexp","dataView","buffer","byteOffset","typedArray","objectCreate","proto","nodeIsMap","isMap","nodeIsSet","isSet","cloneableTags","baseClone","bitmask","isFlat","isFull","isFunc","stacked","subValue","reIsDeepProp","reIsPlainProp","resolver","memoized","Cache","rePropName","reEscapeChar","quote","subString","symbolToString","baseToString","objectCtorString","spreadableSymbol","isConcatSpreadable","baseFlatten","depth","isStrict","nativeMax","nativeNow","count","lastCalled","stamp","remaining","otherArgs","paths","getLocale","i18next","age","birthDate","currentDate","dayjs","parsedDate","warn","omit","hourDiff","dayDiff","weekDiff","monthDiff","yearDiff","minuteDiff","minutesDisplay","remainderDayDiff","remainderMonthDiff","$735220c2d4774dd3$export$e16d8520af44a096","mutableDate","$735220c2d4774dd3$var$nonNegativeMod","$735220c2d4774dd3$var$balanceTime","$735220c2d4774dd3$var$addTimeFields","$735220c2d4774dd3$var$addYears","balanceYearMonth","$735220c2d4774dd3$var$balanceYearMonth","$735220c2d4774dd3$var$constrainMonthDay","getDaysInMonth","$735220c2d4774dd3$var$balanceDay","balanceDate","maxYear","getYearsInEra","_mutableDate_calendar_isInverseEra","_mutableDate_calendar","isInverseEra","getMonthsInYear","maxMonth","_date_calendar_isInverseEra","_date_calendar","monthsInYear","constrainDate","$735220c2d4774dd3$export$4e2d2ead65e5f7e3","inverseDuration","$735220c2d4774dd3$export$3e2544e88a25bff8","$735220c2d4774dd3$export$adaa4cf7ef1b65be","era","$735220c2d4774dd3$export$d52ced6badfb9a4c","mutable","eras","getEras","eraIndex","$735220c2d4774dd3$var$cycleValue","_mutable_calendar_isInverseEra","_mutable_calendar","$14e0f24ef4ac5c92$export$68781ddf31c0090f","toJulianDay","$14e0f24ef4ac5c92$var$timeToMs","objectSupport","$14e0f24ef4ac5c92$var$localTimeZone","timeZone","$2b4dce13dd5a17fa$export$842a2cf37af977e1","Map","$3b62074eb05584b2$export$f297eb839006d339","y1","$3b62074eb05584b2$export$c36e0ecb2d4fa69d","monthOffset","$3b62074eb05584b2$export$553d7fa8e3805fc0","$3b62074eb05584b2$var$EPOCH","$3b62074eb05584b2$export$4475b7e617eb123c","$3b62074eb05584b2$var$daysInMonth","leapyear","fromJulianDay","jd","jd0","depoch","quadricent","dqc","cent","dcent","quad","dquad","yindex","extendedYear","yearDay","leapAdj","getDaysInYear","$fae977aafc393c5c$export$60dfd74aa96791bd","gregorianDate","padStart","_class_private_field_init","privateMap","privateCollection","_check_private_redeclaration","$35ea8db9cb2ccb90$var$shiftArgs","$35ea8db9cb2ccb90$var$_type","cycle","$11d87f3f76e88657$export$e67a095c620b86fe","$35ea8db9cb2ccb90$var$_type2","mutableValue","hourCycle","isPM","disambiguation","$11d87f3f76e88657$var$epochFromParts","$11d87f3f76e88657$export$59c99f3515d3493f","$11d87f3f76e88657$var$getTimeZoneParts","$11d87f3f76e88657$var$formattersByTimeZone","hour12","namedParts","$11d87f3f76e88657$var$DAYMILLIS","dateTime","setFullYear","setHours","offsetBefore","offsetAfter","earlier","later","absolute","$11d87f3f76e88657$var$isValidWallTime","$11d87f3f76e88657$var$getValidWallTimes","_ref","_a_isEqual1","_a_isEqual","isEqual","_b_isEqual","calendarDate","$8d73d47422ca7302$export$42d20a78301dee44","super","$8d73d47422ca7302$var$toGregorian","$b956b2d7a6cf451f$var$ETHIOPIC_EPOCH","$b956b2d7a6cf451f$var$COPTIC_EPOCH","$b956b2d7a6cf451f$var$AMETE_MIHRET_DELTA","$b956b2d7a6cf451f$var$ceToJulianDay","epoch","$b956b2d7a6cf451f$var$julianDayToCE","$b956b2d7a6cf451f$var$getLeapDay","$b956b2d7a6cf451f$var$getDaysInMonth","$b956b2d7a6cf451f$export$26ba6eab5e20cd7d","$b956b2d7a6cf451f$export$d72e0c37005a4914","$b956b2d7a6cf451f$export$fe6243cbe1a4b7c1","$7c5f6fbf42389787$var$HEBREW_EPOCH","$7c5f6fbf42389787$var$isLeapYear","$7c5f6fbf42389787$var$hebrewDelay1","$7c5f6fbf42389787$var$startOfYear","last","present","$7c5f6fbf42389787$var$hebrewDelay2","$7c5f6fbf42389787$var$getDaysInYear","$7c5f6fbf42389787$var$getDaysInMonth","yearType","yearLength","$7c5f6fbf42389787$var$getYearType","$7c5f6fbf42389787$export$ca405048b8fb5af","$7c5f6fbf42389787$var$MONTH_DAYS","dayOfYear","monthStart","previousDate","$82c358003bdda0a8$export$39f31c639fa15726","leapMonth","indianMonth","indianDay","indianYear","yDay","mDay","$f2f3e0e3a817edbd$var$CIVIL_EPOC","$f2f3e0e3a817edbd$var$ASTRONOMICAL_EPOC","$f2f3e0e3a817edbd$var$UMALQURA_YEAR_START","$f2f3e0e3a817edbd$var$UMALQURA_YEAR_END","$f2f3e0e3a817edbd$var$UMALQURA_START_DAYS","$f2f3e0e3a817edbd$var$islamicToJulianDay","$f2f3e0e3a817edbd$var$julianDayToIslamic","$f2f3e0e3a817edbd$var$isLeapYear","$f2f3e0e3a817edbd$export$2066795aadd37bfc","$f2f3e0e3a817edbd$export$37f0887f2f9d22f7","$f2f3e0e3a817edbd$var$UMALQURA_MONTHLENGTH","$f2f3e0e3a817edbd$var$UMALQURA_YEAR_START_TABLE","$f2f3e0e3a817edbd$var$umalquraYearStart","$f2f3e0e3a817edbd$var$umalquraMonthLength","mask","$f2f3e0e3a817edbd$var$umalquraMonthStart","$f2f3e0e3a817edbd$var$umalquraYearLength","$f2f3e0e3a817edbd$export$5baab4758c231076","startDays","endDays","monthLength","Uint16Array","atob","yearStart","$62225008020f0a13$var$ERA_START_DATES","$62225008020f0a13$var$ERA_END_DATES","$62225008020f0a13$var$ERA_ADDENDS","$62225008020f0a13$var$ERA_NAMES","$62225008020f0a13$var$findEraFromGregorianDate","$62225008020f0a13$var$toGregorian","eraAddend","$62225008020f0a13$export$b746ab2b60cdffbf","endYear","endMonth","endDay","startMonth","startDay","cur","getMinimumMonthInYear","$62225008020f0a13$var$getMinimums","getMinimumDayInMonth","$f3ed2e4472ae7e25$var$MONTH_START","$f3ed2e4472ae7e25$export$37fccdbfd14c5939","daysSinceEpoch","$f3ed2e4472ae7e25$var$PERSIAN_EPOCH","$5f31bd6f0c8940b2$var$TAIWAN_ERA_START","$5f31bd6f0c8940b2$var$gregorianYear","$5f31bd6f0c8940b2$var$gregorianToTaiwan","$5f31bd6f0c8940b2$export$65e01080afcb0799","$5f31bd6f0c8940b2$var$toGregorian","isoFormat","isOmrsDateStrict","omrsPayloadString","isOmrsDateToday","toDateObjectStrict","omrsDateString","toOmrsIsoString","toUTC","parseDate","registeredLocaleCalendars","LocaleCalendars","register","registry","getCalendar","defaultCalendar","registerDefaultCalendar","getDefaultCalendar","locale_","defaultOptions","mode","noToday","formatPartialDate","isNil","formatDate","localeString","_locale","formatterOptions","RelativeTimeFormat","toLocaleUpperCase","formatParts","formatTime","toLocaleTimeString","formatDatetime","convertToLocaleCalendar","localCalendarName","toCalendar","createCalendar","isOnline","online","offlineEnabled","onLine","getPatientName","patient","formatPatientName","selectPreferredName","forenames","given","family","defaultFormat","formattedName","preferredNames","usage","use","nameUsageMatches","shallowEqual","objAKeys","objBKeys","canAccessStorage","storage","localStorage","getItem","getDefaultsFromConfigSchema","schema","tmp","_default","normalizeOnlyVersion","isVersionSatisfied","requiredVersion","installedVersion","ver","pre","normalizeFullVersion","retry","shouldRetry","getDelay","onError","lastError","maxAttempts","limitAttempts","startingDelay","initialDelay","getExponentialDelay","delay","setTimeout"],"sourceRoot":""}