@swissquote/crafty-preset-lightningcss 1.22.0-alpha.1

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 (29) hide show
  1. package/README.md +70 -0
  2. package/dist/webpack-packages/api.js +85 -0
  3. package/dist/webpack-packages/bundled.js +9126 -0
  4. package/dist/webpack-packages/getUrl.js +26 -0
  5. package/dist/webpack-packages/noSourceMaps.js +5 -0
  6. package/dist/webpack-packages/runtime/injectStylesIntoLinkTag.js +29 -0
  7. package/dist/webpack-packages/runtime/injectStylesIntoStyleTag.js +104 -0
  8. package/dist/webpack-packages/runtime/insertBySelector.js +39 -0
  9. package/dist/webpack-packages/runtime/insertStyleElement.js +11 -0
  10. package/dist/webpack-packages/runtime/isEqualLocals.js +35 -0
  11. package/dist/webpack-packages/runtime/isOldIE.js +19 -0
  12. package/dist/webpack-packages/runtime/setAttributesWithAttributes.js +16 -0
  13. package/dist/webpack-packages/runtime/setAttributesWithAttributesAndNonce.js +10 -0
  14. package/dist/webpack-packages/runtime/setAttributesWithoutAttributes.js +12 -0
  15. package/dist/webpack-packages/runtime/singletonStyleDomAPI.js +94 -0
  16. package/dist/webpack-packages/runtime/styleDomAPI.js +70 -0
  17. package/dist/webpack-packages/runtime/styleTagTransform.js +16 -0
  18. package/dist/webpack-packages/sourceMaps.js +16 -0
  19. package/dist/webpack-packages/sourcemap-register.js +1 -0
  20. package/dist/webpack-packages/webpack-packages.js.map +1 -0
  21. package/package.json +30 -0
  22. package/packages/css-loader.js +2 -0
  23. package/packages/lightningcss-loader.js +2 -0
  24. package/packages/style-loader.js +2 -0
  25. package/src/ModuleFilenameHelpers.js +39 -0
  26. package/src/index.js +59 -0
  27. package/src/minify.js +1 -0
  28. package/src/webpack-sources.js +1 -0
  29. package/src/webpack-utils.js +166 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webpack-packages.js","mappings":";;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5BA;AACA;AACA;AACA;AACA;;;;;;;;ACJA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsIA;;;;;AAKA;;;;;AAKA;;;;;;;;;;;;;;;;;;;;;;AChJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1RA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4SA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5SA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACr+BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC3FA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1hBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7TA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACriBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1XA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1lBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC5DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChWA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACVA;AACA;AACA;AACA;AACA;;;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpCA;AACA;AACA;AACA;AACA;;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACnRA;AACA;AACA;;;;;;;;ACFA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AC7BA;AACA;;;;AEDA;AACA;AACA;AACA","sources":["../webpack://@swissquote/crafty-preset-lightningcss/../../node_modules/css-loader/dist/CssSyntaxError.js","../webpack://@swissquote/crafty-preset-lightningcss/../../node_modules/css-loader/dist/Warning.js","../webpack://@swissquote/crafty-preset-lightningcss/../../node_modules/css-loader/dist/cjs.js","../webpack://@swissquote/crafty-preset-lightningcss/../../node_modules/css-loader/dist/index.js","../webpack://@swissquote/crafty-preset-lightningcss/../../node_modules/css-loader/dist/plugins/index.js","../webpack://@swissquote/crafty-preset-lightningcss/../../node_modules/css-loader/dist/plugins/postcss-icss-parser.js","../webpack://@swissquote/crafty-preset-lightningcss/../../node_modules/css-loader/dist/plugins/postcss-import-parser.js","../webpack://@swissquote/crafty-preset-lightningcss/../../node_modules/css-loader/dist/plugins/postcss-url-parser.js","../webpack://@swissquote/crafty-preset-lightningcss/../../node_modules/css-loader/dist/utils.js","../webpack://@swissquote/crafty-preset-lightningcss/../../node_modules/icss-utils/src/createICSSRules.js","../webpack://@swissquote/crafty-preset-lightningcss/../../node_modules/icss-utils/src/extractICSS.js","../webpack://@swissquote/crafty-preset-lightningcss/../../node_modules/icss-utils/src/index.js","../webpack://@swissquote/crafty-preset-lightningcss/../../node_modules/icss-utils/src/replaceSymbols.js","../webpack://@swissquote/crafty-preset-lightningcss/../../node_modules/icss-utils/src/replaceValueSymbols.js","../webpack://@swissquote/crafty-preset-lightningcss/../../node_modules/lightningcss-loader/dist/index.js","../webpack://@swissquote/crafty-preset-lightningcss/../../node_modules/lightningcss-loader/dist/interface.js","../webpack://@swissquote/crafty-preset-lightningcss/../../node_modules/lightningcss-loader/dist/loader.js","../webpack://@swissquote/crafty-preset-lightningcss/../../node_modules/lightningcss-loader/dist/minify.js","../webpack://@swissquote/crafty-preset-lightningcss/../../node_modules/lightningcss-loader/dist/utils.js","../webpack://@swissquote/crafty-preset-lightningcss/../../node_modules/postcss-modules-extract-imports/src/index.js","../webpack://@swissquote/crafty-preset-lightningcss/../../node_modules/postcss-modules-extract-imports/src/topologicalSort.js","../webpack://@swissquote/crafty-preset-lightningcss/../../node_modules/postcss-modules-local-by-default/src/index.js","../webpack://@swissquote/crafty-preset-lightningcss/../../node_modules/postcss-modules-scope/src/index.js","../webpack://@swissquote/crafty-preset-lightningcss/../../node_modules/postcss-modules-values/src/index.js","../webpack://@swissquote/crafty-preset-lightningcss/../../node_modules/postcss/lib/at-rule.js","../webpack://@swissquote/crafty-preset-lightningcss/../../node_modules/postcss/lib/comment.js","../webpack://@swissquote/crafty-preset-lightningcss/../../node_modules/postcss/lib/container.js","../webpack://@swissquote/crafty-preset-lightningcss/../../node_modules/postcss/lib/css-syntax-error.js","../webpack://@swissquote/crafty-preset-lightningcss/../../node_modules/postcss/lib/declaration.js","../webpack://@swissquote/crafty-preset-lightningcss/../../node_modules/postcss/lib/document.js","../webpack://@swissquote/crafty-preset-lightningcss/../../node_modules/postcss/lib/fromJSON.js","../webpack://@swissquote/crafty-preset-lightningcss/../../node_modules/postcss/lib/input.js","../webpack://@swissquote/crafty-preset-lightningcss/../../node_modules/postcss/lib/lazy-result.js","../webpack://@swissquote/crafty-preset-lightningcss/../../node_modules/postcss/lib/list.js","../webpack://@swissquote/crafty-preset-lightningcss/../../node_modules/postcss/lib/map-generator.js","../webpack://@swissquote/crafty-preset-lightningcss/../../node_modules/postcss/lib/no-work-result.js","../webpack://@swissquote/crafty-preset-lightningcss/../../node_modules/postcss/lib/node.js","../webpack://@swissquote/crafty-preset-lightningcss/../../node_modules/postcss/lib/parse.js","../webpack://@swissquote/crafty-preset-lightningcss/../../node_modules/postcss/lib/parser.js","../webpack://@swissquote/crafty-preset-lightningcss/../../node_modules/postcss/lib/postcss.js","../webpack://@swissquote/crafty-preset-lightningcss/../../node_modules/postcss/lib/previous-map.js","../webpack://@swissquote/crafty-preset-lightningcss/../../node_modules/postcss/lib/processor.js","../webpack://@swissquote/crafty-preset-lightningcss/../../node_modules/postcss/lib/result.js","../webpack://@swissquote/crafty-preset-lightningcss/../../node_modules/postcss/lib/root.js","../webpack://@swissquote/crafty-preset-lightningcss/../../node_modules/postcss/lib/rule.js","../webpack://@swissquote/crafty-preset-lightningcss/../../node_modules/postcss/lib/stringifier.js","../webpack://@swissquote/crafty-preset-lightningcss/../../node_modules/postcss/lib/stringify.js","../webpack://@swissquote/crafty-preset-lightningcss/../../node_modules/postcss/lib/symbols.js","../webpack://@swissquote/crafty-preset-lightningcss/../../node_modules/postcss/lib/terminal-highlight.js","../webpack://@swissquote/crafty-preset-lightningcss/../../node_modules/postcss/lib/tokenize.js","../webpack://@swissquote/crafty-preset-lightningcss/../../node_modules/postcss/lib/warn-once.js","../webpack://@swissquote/crafty-preset-lightningcss/../../node_modules/postcss/lib/warning.js","../webpack://@swissquote/crafty-preset-lightningcss/../../node_modules/style-loader/dist/cjs.js","../webpack://@swissquote/crafty-preset-lightningcss/../../node_modules/style-loader/dist/index.js","../webpack://@swissquote/crafty-preset-lightningcss/../../node_modules/style-loader/dist/runtime/isEqualLocals.js","../webpack://@swissquote/crafty-preset-lightningcss/../../node_modules/style-loader/dist/utils.js","../webpack://@swissquote/crafty-preset-lightningcss/./_temp_vcc.js","../webpack://@swissquote/crafty-preset-lightningcss/external node-commonjs \"../../src/ModuleFilenameHelpers.js\"","../webpack://@swissquote/crafty-preset-lightningcss/external node-commonjs \"../../src/webpack-sources\"","../webpack://@swissquote/crafty-preset-lightningcss/external node-commonjs \"@swissquote/crafty-commons/packages/browserslist.js\"","../webpack://@swissquote/crafty-preset-lightningcss/external node-commonjs \"@swissquote/crafty-commons/packages/picocolors.js\"","../webpack://@swissquote/crafty-preset-lightningcss/external node-commonjs \"@swissquote/crafty-commons/packages/semver.js\"","../webpack://@swissquote/crafty-preset-lightningcss/external node-commonjs \"@swissquote/crafty-commons/packages/source-map-js.js\"","../webpack://@swissquote/crafty-preset-lightningcss/external node-commonjs \"@swissquote/stylelint-config-swissquote/packages/postcss-selector-parser.js\"","../webpack://@swissquote/crafty-preset-lightningcss/external node-commonjs \"@swissquote/stylelint-config-swissquote/packages/postcss-value-parser.js\"","../webpack://@swissquote/crafty-preset-lightningcss/external node-commonjs \"buffer\"","../webpack://@swissquote/crafty-preset-lightningcss/external node-commonjs \"fs\"","../webpack://@swissquote/crafty-preset-lightningcss/external node-commonjs \"lightningcss\"","../webpack://@swissquote/crafty-preset-lightningcss/external node-commonjs \"path\"","../webpack://@swissquote/crafty-preset-lightningcss/external node-commonjs \"url\"","../webpack://@swissquote/crafty-preset-lightningcss/../../node_modules/nanoid/non-secure/index.cjs","../webpack://@swissquote/crafty-preset-lightningcss/webpack/bootstrap","../webpack://@swissquote/crafty-preset-lightningcss/webpack/runtime/compat","../webpack://@swissquote/crafty-preset-lightningcss/webpack/before-startup","../webpack://@swissquote/crafty-preset-lightningcss/webpack/startup","../webpack://@swissquote/crafty-preset-lightningcss/webpack/after-startup"],"sourcesContent":["\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nclass CssSyntaxError extends Error {\n constructor(error) {\n super(error);\n const {\n reason,\n line,\n column,\n file\n } = error;\n this.name = \"CssSyntaxError\";\n\n // Based on https://github.com/postcss/postcss/blob/master/lib/css-syntax-error.es6#L132\n // We don't need `plugin` and `file` properties.\n this.message = `${this.name}\\n\\n`;\n if (typeof line !== \"undefined\") {\n this.message += `(${line}:${column}) `;\n }\n this.message += file ? `${file} ` : \"<css input> \";\n this.message += `${reason}`;\n const code = error.showSourceCode();\n if (code) {\n this.message += `\\n\\n${code}\\n`;\n }\n\n // We don't need stack https://github.com/postcss/postcss/blob/master/docs/guidelines/runner.md#31-dont-show-js-stack-for-csssyntaxerror\n this.stack = false;\n }\n}\nexports.default = CssSyntaxError;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nclass Warning extends Error {\n constructor(warning) {\n super(warning);\n const {\n text,\n line,\n column\n } = warning;\n this.name = \"Warning\";\n\n // Based on https://github.com/postcss/postcss/blob/master/lib/warning.es6#L74\n // We don't need `plugin` properties.\n this.message = `${this.name}\\n\\n`;\n if (typeof line !== \"undefined\") {\n this.message += `(${line}:${column}) `;\n }\n this.message += `${text}`;\n\n // We don't need stack https://github.com/postcss/postcss/blob/master/docs/guidelines/runner.md#31-dont-show-js-stack-for-csssyntaxerror\n this.stack = false;\n }\n}\nexports.default = Warning;","\"use strict\";\n\nconst loader = require(\"./index\");\nmodule.exports = loader.default;\nmodule.exports.defaultGetLocalIdent = require(\"./utils\").defaultGetLocalIdent;",null,"\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"icssParser\", {\n enumerable: true,\n get: function () {\n return _postcssIcssParser.default;\n }\n});\nObject.defineProperty(exports, \"importParser\", {\n enumerable: true,\n get: function () {\n return _postcssImportParser.default;\n }\n});\nObject.defineProperty(exports, \"urlParser\", {\n enumerable: true,\n get: function () {\n return _postcssUrlParser.default;\n }\n});\nvar _postcssImportParser = _interopRequireDefault(require(\"./postcss-import-parser\"));\nvar _postcssIcssParser = _interopRequireDefault(require(\"./postcss-icss-parser\"));\nvar _postcssUrlParser = _interopRequireDefault(require(\"./postcss-url-parser\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _icssUtils = require(\"icss-utils\");\nvar _utils = require(\"../utils\");\nconst plugin = (options = {}) => {\n return {\n postcssPlugin: \"postcss-icss-parser\",\n async OnceExit(root) {\n const importReplacements = Object.create(null);\n const {\n icssImports,\n icssExports\n } = (0, _icssUtils.extractICSS)(root);\n const imports = new Map();\n const tasks = [];\n const {\n loaderContext\n } = options;\n const resolver = loaderContext.getResolve({\n dependencyType: \"icss\",\n conditionNames: [\"style\"],\n extensions: [\"...\"],\n mainFields: [\"css\", \"style\", \"main\", \"...\"],\n mainFiles: [\"index\", \"...\"],\n preferRelative: true\n });\n\n // eslint-disable-next-line guard-for-in\n for (const url in icssImports) {\n const tokens = icssImports[url];\n if (Object.keys(tokens).length === 0) {\n // eslint-disable-next-line no-continue\n continue;\n }\n let normalizedUrl = url;\n let prefix = \"\";\n const queryParts = normalizedUrl.split(\"!\");\n if (queryParts.length > 1) {\n normalizedUrl = queryParts.pop();\n prefix = queryParts.join(\"!\");\n }\n const request = (0, _utils.requestify)((0, _utils.normalizeUrl)(normalizedUrl, true), loaderContext.rootContext);\n const doResolve = async () => {\n const resolvedUrl = await (0, _utils.resolveRequests)(resolver, loaderContext.context, [...new Set([normalizedUrl, request])]);\n if (!resolvedUrl) {\n return;\n }\n\n // eslint-disable-next-line consistent-return\n return {\n url: resolvedUrl,\n prefix,\n tokens\n };\n };\n tasks.push(doResolve());\n }\n const results = await Promise.all(tasks);\n for (let index = 0; index <= results.length - 1; index++) {\n const item = results[index];\n if (!item) {\n // eslint-disable-next-line no-continue\n continue;\n }\n const newUrl = item.prefix ? `${item.prefix}!${item.url}` : item.url;\n const importKey = newUrl;\n let importName = imports.get(importKey);\n if (!importName) {\n importName = `___CSS_LOADER_ICSS_IMPORT_${imports.size}___`;\n imports.set(importKey, importName);\n options.imports.push({\n type: \"icss_import\",\n importName,\n url: options.urlHandler(newUrl),\n icss: true,\n index\n });\n options.api.push({\n importName,\n dedupe: true,\n index\n });\n }\n for (const [replacementIndex, token] of Object.keys(item.tokens).entries()) {\n const replacementName = `___CSS_LOADER_ICSS_IMPORT_${index}_REPLACEMENT_${replacementIndex}___`;\n const localName = item.tokens[token];\n importReplacements[token] = replacementName;\n options.replacements.push({\n replacementName,\n importName,\n localName\n });\n }\n }\n if (Object.keys(importReplacements).length > 0) {\n (0, _icssUtils.replaceSymbols)(root, importReplacements);\n }\n for (const name of Object.keys(icssExports)) {\n const value = (0, _icssUtils.replaceValueSymbols)(icssExports[name], importReplacements);\n options.exports.push({\n name,\n value\n });\n }\n }\n };\n};\nplugin.postcss = true;\nvar _default = plugin;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _postcssValueParser = _interopRequireDefault(require(\"postcss-value-parser\"));\nvar _utils = require(\"../utils\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction parseNode(atRule, key, options) {\n // Convert only top-level @import\n if (atRule.parent.type !== \"root\") {\n return;\n }\n if (atRule.raws && atRule.raws.afterName && atRule.raws.afterName.trim().length > 0) {\n const lastCommentIndex = atRule.raws.afterName.lastIndexOf(\"/*\");\n const matched = atRule.raws.afterName.slice(lastCommentIndex).match(_utils.WEBPACK_IGNORE_COMMENT_REGEXP);\n if (matched && matched[2] === \"true\") {\n return;\n }\n }\n const prevNode = atRule.prev();\n if (prevNode && prevNode.type === \"comment\") {\n const matched = prevNode.text.match(_utils.WEBPACK_IGNORE_COMMENT_REGEXP);\n if (matched && matched[2] === \"true\") {\n return;\n }\n }\n\n // Nodes do not exists - `@import url('http://') :root {}`\n if (atRule.nodes) {\n const error = new Error(\"It looks like you didn't end your @import statement correctly. Child nodes are attached to it.\");\n error.node = atRule;\n throw error;\n }\n const rawParams = atRule.raws && atRule.raws[key] && typeof atRule.raws[key].raw !== \"undefined\" ? atRule.raws[key].raw : atRule[key];\n const {\n nodes: paramsNodes\n } = (0, _postcssValueParser.default)(rawParams);\n\n // No nodes - `@import ;`\n // Invalid type - `@import foo-bar;`\n if (paramsNodes.length === 0 || paramsNodes[0].type !== \"string\" && paramsNodes[0].type !== \"function\") {\n const error = new Error(`Unable to find uri in \"${atRule.toString()}\"`);\n error.node = atRule;\n throw error;\n }\n let isStringValue;\n let url;\n if (paramsNodes[0].type === \"string\") {\n isStringValue = true;\n url = paramsNodes[0].value;\n } else {\n // Invalid function - `@import nourl(test.css);`\n if (paramsNodes[0].value.toLowerCase() !== \"url\") {\n const error = new Error(`Unable to find uri in \"${atRule.toString()}\"`);\n error.node = atRule;\n throw error;\n }\n isStringValue = paramsNodes[0].nodes.length !== 0 && paramsNodes[0].nodes[0].type === \"string\";\n url = isStringValue ? paramsNodes[0].nodes[0].value : _postcssValueParser.default.stringify(paramsNodes[0].nodes);\n }\n url = (0, _utils.normalizeUrl)(url, isStringValue);\n const {\n requestable,\n needResolve\n } = (0, _utils.isURLRequestable)(url, options);\n let prefix;\n if (requestable && needResolve) {\n const queryParts = url.split(\"!\");\n if (queryParts.length > 1) {\n url = queryParts.pop();\n prefix = queryParts.join(\"!\");\n }\n }\n\n // Empty url - `@import \"\";` or `@import url();`\n if (url.trim().length === 0) {\n const error = new Error(`Unable to find uri in \"${atRule.toString()}\"`);\n error.node = atRule;\n throw error;\n }\n const additionalNodes = paramsNodes.slice(1);\n let supports;\n let layer;\n let media;\n if (additionalNodes.length > 0) {\n let nodes = [];\n for (const node of additionalNodes) {\n nodes.push(node);\n const isLayerFunction = node.type === \"function\" && node.value.toLowerCase() === \"layer\";\n const isLayerWord = node.type === \"word\" && node.value.toLowerCase() === \"layer\";\n if (isLayerFunction || isLayerWord) {\n if (isLayerFunction) {\n nodes.splice(nodes.length - 1, 1, ...node.nodes);\n } else {\n nodes.splice(nodes.length - 1, 1, {\n type: \"string\",\n value: \"\",\n unclosed: false\n });\n }\n layer = _postcssValueParser.default.stringify(nodes).trim().toLowerCase();\n nodes = [];\n } else if (node.type === \"function\" && node.value.toLowerCase() === \"supports\") {\n nodes.splice(nodes.length - 1, 1, ...node.nodes);\n supports = _postcssValueParser.default.stringify(nodes).trim().toLowerCase();\n nodes = [];\n }\n }\n if (nodes.length > 0) {\n media = _postcssValueParser.default.stringify(nodes).trim().toLowerCase();\n }\n }\n\n // eslint-disable-next-line consistent-return\n return {\n atRule,\n prefix,\n url,\n layer,\n supports,\n media,\n requestable,\n needResolve\n };\n}\nconst plugin = (options = {}) => {\n return {\n postcssPlugin: \"postcss-import-parser\",\n prepare(result) {\n const parsedAtRules = [];\n return {\n AtRule: {\n import(atRule) {\n if (options.isCSSStyleSheet) {\n options.loaderContext.emitError(new Error(atRule.error(\"'@import' rules are not allowed here and will not be processed\").message));\n return;\n }\n const {\n isSupportDataURL,\n isSupportAbsoluteURL\n } = options;\n let parsedAtRule;\n try {\n parsedAtRule = parseNode(atRule, \"params\", {\n isSupportAbsoluteURL,\n isSupportDataURL\n });\n } catch (error) {\n result.warn(error.message, {\n node: error.node\n });\n }\n if (!parsedAtRule) {\n return;\n }\n parsedAtRules.push(parsedAtRule);\n }\n },\n async OnceExit() {\n if (parsedAtRules.length === 0) {\n return;\n }\n const {\n loaderContext\n } = options;\n const resolver = loaderContext.getResolve({\n dependencyType: \"css\",\n conditionNames: [\"style\"],\n mainFields: [\"css\", \"style\", \"main\", \"...\"],\n mainFiles: [\"index\", \"...\"],\n extensions: [\".css\", \"...\"],\n preferRelative: true\n });\n const resolvedAtRules = await Promise.all(parsedAtRules.map(async parsedAtRule => {\n const {\n atRule,\n requestable,\n needResolve,\n prefix,\n url,\n layer,\n supports,\n media\n } = parsedAtRule;\n if (options.filter) {\n const needKeep = await options.filter(url, media, loaderContext.resourcePath, supports, layer);\n if (!needKeep) {\n return;\n }\n }\n if (needResolve) {\n const request = (0, _utils.requestify)(url, loaderContext.rootContext);\n const resolvedUrl = await (0, _utils.resolveRequests)(resolver, loaderContext.context, [...new Set([request, url])]);\n if (!resolvedUrl) {\n return;\n }\n if (resolvedUrl === loaderContext.resourcePath) {\n atRule.remove();\n return;\n }\n atRule.remove();\n\n // eslint-disable-next-line consistent-return\n return {\n url: resolvedUrl,\n layer,\n supports,\n media,\n prefix,\n requestable\n };\n }\n atRule.remove();\n\n // eslint-disable-next-line consistent-return\n return {\n url,\n layer,\n supports,\n media,\n prefix,\n requestable\n };\n }));\n const urlToNameMap = new Map();\n for (let index = 0; index <= resolvedAtRules.length - 1; index++) {\n const resolvedAtRule = resolvedAtRules[index];\n if (!resolvedAtRule) {\n // eslint-disable-next-line no-continue\n continue;\n }\n const {\n url,\n requestable,\n layer,\n supports,\n media\n } = resolvedAtRule;\n if (!requestable) {\n options.api.push({\n url,\n layer,\n supports,\n media,\n index\n });\n\n // eslint-disable-next-line no-continue\n continue;\n }\n const {\n prefix\n } = resolvedAtRule;\n const newUrl = prefix ? `${prefix}!${url}` : url;\n let importName = urlToNameMap.get(newUrl);\n if (!importName) {\n importName = `___CSS_LOADER_AT_RULE_IMPORT_${urlToNameMap.size}___`;\n urlToNameMap.set(newUrl, importName);\n options.imports.push({\n type: \"rule_import\",\n importName,\n url: options.urlHandler(newUrl),\n index\n });\n }\n options.api.push({\n importName,\n layer,\n supports,\n media,\n index\n });\n }\n }\n };\n }\n };\n};\nplugin.postcss = true;\nvar _default = plugin;\nexports.default = _default;",null,"\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.WEBPACK_IGNORE_COMMENT_REGEXP = void 0;\nexports.camelCase = camelCase;\nexports.combineRequests = combineRequests;\nexports.defaultGetLocalIdent = defaultGetLocalIdent;\nexports.getExportCode = getExportCode;\nexports.getFilter = getFilter;\nexports.getImportCode = getImportCode;\nexports.getModuleCode = getModuleCode;\nexports.getModulesOptions = getModulesOptions;\nexports.getModulesPlugins = getModulesPlugins;\nexports.getPreRequester = getPreRequester;\nexports.isDataUrl = isDataUrl;\nexports.isURLRequestable = isURLRequestable;\nexports.normalizeOptions = normalizeOptions;\nexports.normalizeSourceMap = normalizeSourceMap;\nexports.normalizeUrl = normalizeUrl;\nexports.requestify = requestify;\nexports.resolveRequests = resolveRequests;\nexports.shouldUseIcssPlugin = shouldUseIcssPlugin;\nexports.shouldUseImportPlugin = shouldUseImportPlugin;\nexports.shouldUseModulesPlugins = shouldUseModulesPlugins;\nexports.shouldUseURLPlugin = shouldUseURLPlugin;\nexports.sort = sort;\nexports.stringifyRequest = stringifyRequest;\nvar _url = require(\"url\");\nvar _path = _interopRequireDefault(require(\"path\"));\nvar _postcssModulesValues = _interopRequireDefault(require(\"postcss-modules-values\"));\nvar _postcssModulesLocalByDefault = _interopRequireDefault(require(\"postcss-modules-local-by-default\"));\nvar _postcssModulesExtractImports = _interopRequireDefault(require(\"postcss-modules-extract-imports\"));\nvar _postcssModulesScope = _interopRequireDefault(require(\"postcss-modules-scope\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\n\nconst WEBPACK_IGNORE_COMMENT_REGEXP = /webpackIgnore:(\\s+)?(true|false)/;\nexports.WEBPACK_IGNORE_COMMENT_REGEXP = WEBPACK_IGNORE_COMMENT_REGEXP;\nconst matchRelativePath = /^\\.\\.?[/\\\\]/;\nfunction isAbsolutePath(str) {\n return _path.default.posix.isAbsolute(str) || _path.default.win32.isAbsolute(str);\n}\nfunction isRelativePath(str) {\n return matchRelativePath.test(str);\n}\n\n// TODO simplify for the next major release\nfunction stringifyRequest(loaderContext, request) {\n if (typeof loaderContext.utils !== \"undefined\" && typeof loaderContext.utils.contextify === \"function\") {\n return JSON.stringify(loaderContext.utils.contextify(loaderContext.context || loaderContext.rootContext, request));\n }\n const splitted = request.split(\"!\");\n const {\n context\n } = loaderContext;\n return JSON.stringify(splitted.map(part => {\n // First, separate singlePath from query, because the query might contain paths again\n const splittedPart = part.match(/^(.*?)(\\?.*)/);\n const query = splittedPart ? splittedPart[2] : \"\";\n let singlePath = splittedPart ? splittedPart[1] : part;\n if (isAbsolutePath(singlePath) && context) {\n singlePath = _path.default.relative(context, singlePath);\n if (isAbsolutePath(singlePath)) {\n // If singlePath still matches an absolute path, singlePath was on a different drive than context.\n // In this case, we leave the path platform-specific without replacing any separators.\n // @see https://github.com/webpack/loader-utils/pull/14\n return singlePath + query;\n }\n if (isRelativePath(singlePath) === false) {\n // Ensure that the relative path starts at least with ./ otherwise it would be a request into the modules directory (like node_modules).\n singlePath = `./${singlePath}`;\n }\n }\n return singlePath.replace(/\\\\/g, \"/\") + query;\n }).join(\"!\"));\n}\n\n// We can't use path.win32.isAbsolute because it also matches paths starting with a forward slash\nconst IS_NATIVE_WIN32_PATH = /^[a-z]:[/\\\\]|^\\\\\\\\/i;\nconst IS_MODULE_REQUEST = /^[^?]*~/;\nfunction urlToRequest(url, root) {\n let request;\n if (IS_NATIVE_WIN32_PATH.test(url)) {\n // absolute windows path, keep it\n request = url;\n } else if (typeof root !== \"undefined\" && /^\\//.test(url)) {\n request = root + url;\n } else if (/^\\.\\.?\\//.test(url)) {\n // A relative url stays\n request = url;\n } else {\n // every other url is threaded like a relative url\n request = `./${url}`;\n }\n\n // A `~` makes the url an module\n if (IS_MODULE_REQUEST.test(request)) {\n request = request.replace(IS_MODULE_REQUEST, \"\");\n }\n return request;\n}\n\n// eslint-disable-next-line no-useless-escape\nconst regexSingleEscape = /[ -,.\\/:-@[\\]\\^`{-~]/;\nconst regexExcessiveSpaces = /(^|\\\\+)?(\\\\[A-F0-9]{1,6})\\x20(?![a-fA-F0-9\\x20])/g;\nconst preserveCamelCase = string => {\n let result = string;\n let isLastCharLower = false;\n let isLastCharUpper = false;\n let isLastLastCharUpper = false;\n for (let i = 0; i < result.length; i++) {\n const character = result[i];\n if (isLastCharLower && /[\\p{Lu}]/u.test(character)) {\n result = `${result.slice(0, i)}-${result.slice(i)}`;\n isLastCharLower = false;\n isLastLastCharUpper = isLastCharUpper;\n isLastCharUpper = true;\n i += 1;\n } else if (isLastCharUpper && isLastLastCharUpper && /[\\p{Ll}]/u.test(character)) {\n result = `${result.slice(0, i - 1)}-${result.slice(i - 1)}`;\n isLastLastCharUpper = isLastCharUpper;\n isLastCharUpper = false;\n isLastCharLower = true;\n } else {\n isLastCharLower = character.toLowerCase() === character && character.toUpperCase() !== character;\n isLastLastCharUpper = isLastCharUpper;\n isLastCharUpper = character.toUpperCase() === character && character.toLowerCase() !== character;\n }\n }\n return result;\n};\nfunction camelCase(input) {\n let result = input.trim();\n if (result.length === 0) {\n return \"\";\n }\n if (result.length === 1) {\n return result.toLowerCase();\n }\n const hasUpperCase = result !== result.toLowerCase();\n if (hasUpperCase) {\n result = preserveCamelCase(result);\n }\n return result.replace(/^[_.\\- ]+/, \"\").toLowerCase().replace(/[_.\\- ]+([\\p{Alpha}\\p{N}_]|$)/gu, (_, p1) => p1.toUpperCase()).replace(/\\d+([\\p{Alpha}\\p{N}_]|$)/gu, m => m.toUpperCase());\n}\nfunction escape(string) {\n let output = \"\";\n let counter = 0;\n while (counter < string.length) {\n // eslint-disable-next-line no-plusplus\n const character = string.charAt(counter++);\n let value;\n\n // eslint-disable-next-line no-control-regex\n if (/[\\t\\n\\f\\r\\x0B]/.test(character)) {\n const codePoint = character.charCodeAt();\n value = `\\\\${codePoint.toString(16).toUpperCase()} `;\n } else if (character === \"\\\\\" || regexSingleEscape.test(character)) {\n value = `\\\\${character}`;\n } else {\n value = character;\n }\n output += value;\n }\n const firstChar = string.charAt(0);\n if (/^-[-\\d]/.test(output)) {\n output = `\\\\-${output.slice(1)}`;\n } else if (/\\d/.test(firstChar)) {\n output = `\\\\3${firstChar} ${output.slice(1)}`;\n }\n\n // Remove spaces after `\\HEX` escapes that are not followed by a hex digit,\n // since they’re redundant. Note that this is only possible if the escape\n // sequence isn’t preceded by an odd number of backslashes.\n output = output.replace(regexExcessiveSpaces, ($0, $1, $2) => {\n if ($1 && $1.length % 2) {\n // It’s not safe to remove the space, so don’t.\n return $0;\n }\n\n // Strip the space.\n return ($1 || \"\") + $2;\n });\n return output;\n}\nfunction gobbleHex(str) {\n const lower = str.toLowerCase();\n let hex = \"\";\n let spaceTerminated = false;\n\n // eslint-disable-next-line no-undefined\n for (let i = 0; i < 6 && lower[i] !== undefined; i++) {\n const code = lower.charCodeAt(i);\n // check to see if we are dealing with a valid hex char [a-f|0-9]\n const valid = code >= 97 && code <= 102 || code >= 48 && code <= 57;\n // https://drafts.csswg.org/css-syntax/#consume-escaped-code-point\n spaceTerminated = code === 32;\n if (!valid) {\n break;\n }\n hex += lower[i];\n }\n if (hex.length === 0) {\n // eslint-disable-next-line no-undefined\n return undefined;\n }\n const codePoint = parseInt(hex, 16);\n const isSurrogate = codePoint >= 0xd800 && codePoint <= 0xdfff;\n // Add special case for\n // \"If this number is zero, or is for a surrogate, or is greater than the maximum allowed code point\"\n // https://drafts.csswg.org/css-syntax/#maximum-allowed-code-point\n if (isSurrogate || codePoint === 0x0000 || codePoint > 0x10ffff) {\n return [\"\\uFFFD\", hex.length + (spaceTerminated ? 1 : 0)];\n }\n return [String.fromCodePoint(codePoint), hex.length + (spaceTerminated ? 1 : 0)];\n}\nconst CONTAINS_ESCAPE = /\\\\/;\nfunction unescape(str) {\n const needToProcess = CONTAINS_ESCAPE.test(str);\n if (!needToProcess) {\n return str;\n }\n let ret = \"\";\n for (let i = 0; i < str.length; i++) {\n if (str[i] === \"\\\\\") {\n const gobbled = gobbleHex(str.slice(i + 1, i + 7));\n\n // eslint-disable-next-line no-undefined\n if (gobbled !== undefined) {\n ret += gobbled[0];\n i += gobbled[1];\n\n // eslint-disable-next-line no-continue\n continue;\n }\n\n // Retain a pair of \\\\ if double escaped `\\\\\\\\`\n // https://github.com/postcss/postcss-selector-parser/commit/268c9a7656fb53f543dc620aa5b73a30ec3ff20e\n if (str[i + 1] === \"\\\\\") {\n ret += \"\\\\\";\n i += 1;\n\n // eslint-disable-next-line no-continue\n continue;\n }\n\n // if \\\\ is at the end of the string retain it\n // https://github.com/postcss/postcss-selector-parser/commit/01a6b346e3612ce1ab20219acc26abdc259ccefb\n if (str.length === i + 1) {\n ret += str[i];\n }\n\n // eslint-disable-next-line no-continue\n continue;\n }\n ret += str[i];\n }\n return ret;\n}\nfunction normalizePath(file) {\n return _path.default.sep === \"\\\\\" ? file.replace(/\\\\/g, \"/\") : file;\n}\n\n// eslint-disable-next-line no-control-regex\nconst filenameReservedRegex = /[<>:\"/\\\\|?*]/g;\n// eslint-disable-next-line no-control-regex\nconst reControlChars = /[\\u0000-\\u001f\\u0080-\\u009f]/g;\nfunction escapeLocalIdent(localident) {\n // TODO simplify in the next major release\n return escape(localident\n // For `[hash]` placeholder\n .replace(/^((-?[0-9])|--)/, \"_$1\").replace(filenameReservedRegex, \"-\").replace(reControlChars, \"-\").replace(/\\./g, \"-\"));\n}\nfunction defaultGetLocalIdent(loaderContext, localIdentName, localName, options) {\n const {\n context,\n hashSalt,\n hashStrategy\n } = options;\n const {\n resourcePath\n } = loaderContext;\n let relativeResourcePath = normalizePath(_path.default.relative(context, resourcePath));\n\n // eslint-disable-next-line no-underscore-dangle\n if (loaderContext._module && loaderContext._module.matchResource) {\n relativeResourcePath = `${normalizePath(\n // eslint-disable-next-line no-underscore-dangle\n _path.default.relative(context, loaderContext._module.matchResource))}`;\n }\n\n // eslint-disable-next-line no-param-reassign\n options.content = hashStrategy === \"minimal-subset\" && /\\[local\\]/.test(localIdentName) ? relativeResourcePath : `${relativeResourcePath}\\x00${localName}`;\n let {\n hashFunction,\n hashDigest,\n hashDigestLength\n } = options;\n const matches = localIdentName.match(/\\[(?:([^:\\]]+):)?(?:(hash|contenthash|fullhash))(?::([a-z]+\\d*))?(?::(\\d+))?\\]/i);\n if (matches) {\n const hashName = matches[2] || hashFunction;\n hashFunction = matches[1] || hashFunction;\n hashDigest = matches[3] || hashDigest;\n hashDigestLength = matches[4] || hashDigestLength;\n\n // `hash` and `contenthash` are same in `loader-utils` context\n // let's keep `hash` for backward compatibility\n\n // eslint-disable-next-line no-param-reassign\n localIdentName = localIdentName.replace(/\\[(?:([^:\\]]+):)?(?:hash|contenthash|fullhash)(?::([a-z]+\\d*))?(?::(\\d+))?\\]/gi, () => hashName === \"fullhash\" ? \"[fullhash]\" : \"[contenthash]\");\n }\n let localIdentHash = \"\";\n for (let tier = 0; localIdentHash.length < hashDigestLength; tier++) {\n // TODO remove this in the next major release\n const hash = loaderContext.utils && typeof loaderContext.utils.createHash === \"function\" ? loaderContext.utils.createHash(hashFunction) :\n // eslint-disable-next-line no-underscore-dangle\n loaderContext._compiler.webpack.util.createHash(hashFunction);\n if (hashSalt) {\n hash.update(hashSalt);\n }\n const tierSalt = Buffer.allocUnsafe(4);\n tierSalt.writeUInt32LE(tier);\n hash.update(tierSalt);\n // TODO: bug in webpack with unicode characters with strings\n hash.update(Buffer.from(options.content, \"utf8\"));\n localIdentHash = (localIdentHash + hash.digest(hashDigest)\n // Remove all leading digits\n ).replace(/^\\d+/, \"\")\n // Replace all slashes with underscores (same as in base64url)\n .replace(/\\//g, \"_\")\n // Remove everything that is not an alphanumeric or underscore\n .replace(/[^A-Za-z0-9_]+/g, \"\").slice(0, hashDigestLength);\n }\n\n // TODO need improve on webpack side, we should allow to pass hash/contentHash without chunk property, also `data` for `getPath` should be looks good without chunk property\n const ext = _path.default.extname(resourcePath);\n const base = _path.default.basename(resourcePath);\n const name = base.slice(0, base.length - ext.length);\n const data = {\n filename: _path.default.relative(context, resourcePath),\n contentHash: localIdentHash,\n chunk: {\n name,\n hash: localIdentHash,\n contentHash: localIdentHash\n }\n };\n\n // eslint-disable-next-line no-underscore-dangle\n let result = loaderContext._compilation.getPath(localIdentName, data);\n if (/\\[folder\\]/gi.test(result)) {\n const dirname = _path.default.dirname(resourcePath);\n let directory = normalizePath(_path.default.relative(context, `${dirname + _path.default.sep}_`));\n directory = directory.substring(0, directory.length - 1);\n let folder = \"\";\n if (directory.length > 1) {\n folder = _path.default.basename(directory);\n }\n result = result.replace(/\\[folder\\]/gi, () => folder);\n }\n if (options.regExp) {\n const match = resourcePath.match(options.regExp);\n if (match) {\n match.forEach((matched, i) => {\n result = result.replace(new RegExp(`\\\\[${i}\\\\]`, \"ig\"), matched);\n });\n }\n }\n return result;\n}\nfunction fixedEncodeURIComponent(str) {\n return str.replace(/[!'()*]/g, c => `%${c.charCodeAt(0).toString(16)}`);\n}\nfunction isDataUrl(url) {\n if (/^data:/i.test(url)) {\n return true;\n }\n return false;\n}\nconst NATIVE_WIN32_PATH = /^[A-Z]:[/\\\\]|^\\\\\\\\/i;\nfunction normalizeUrl(url, isStringValue) {\n let normalizedUrl = url.replace(/^( |\\t\\n|\\r\\n|\\r|\\f)*/g, \"\").replace(/( |\\t\\n|\\r\\n|\\r|\\f)*$/g, \"\");\n if (isStringValue && /\\\\(\\n|\\r\\n|\\r|\\f)/.test(normalizedUrl)) {\n normalizedUrl = normalizedUrl.replace(/\\\\(\\n|\\r\\n|\\r|\\f)/g, \"\");\n }\n if (NATIVE_WIN32_PATH.test(url)) {\n try {\n normalizedUrl = decodeURI(normalizedUrl);\n } catch (error) {\n // Ignore\n }\n return normalizedUrl;\n }\n normalizedUrl = unescape(normalizedUrl);\n if (isDataUrl(url)) {\n // Todo fixedEncodeURIComponent is workaround. Webpack resolver shouldn't handle \"!\" in dataURL\n return fixedEncodeURIComponent(normalizedUrl);\n }\n try {\n normalizedUrl = decodeURI(normalizedUrl);\n } catch (error) {\n // Ignore\n }\n return normalizedUrl;\n}\nfunction requestify(url, rootContext, needToResolveURL = true) {\n if (needToResolveURL) {\n if (/^file:/i.test(url)) {\n return (0, _url.fileURLToPath)(url);\n }\n return url.charAt(0) === \"/\" ? urlToRequest(url, rootContext) : urlToRequest(url);\n }\n if (url.charAt(0) === \"/\" || /^file:/i.test(url)) {\n return url;\n }\n\n // A `~` makes the url an module\n if (IS_MODULE_REQUEST.test(url)) {\n return url.replace(IS_MODULE_REQUEST, \"\");\n }\n return url;\n}\nfunction getFilter(filter, resourcePath) {\n return (...args) => {\n if (typeof filter === \"function\") {\n return filter(...args, resourcePath);\n }\n return true;\n };\n}\nfunction getValidLocalName(localName, exportLocalsConvention) {\n const result = exportLocalsConvention(localName);\n return Array.isArray(result) ? result[0] : result;\n}\nconst IS_MODULES = /\\.module(s)?\\.\\w+$/i;\nconst IS_ICSS = /\\.icss\\.\\w+$/i;\nfunction getModulesOptions(rawOptions, exportType, loaderContext) {\n if (typeof rawOptions.modules === \"boolean\" && rawOptions.modules === false) {\n return false;\n }\n const resourcePath =\n // eslint-disable-next-line no-underscore-dangle\n loaderContext._module && loaderContext._module.matchResource || loaderContext.resourcePath;\n let auto;\n let rawModulesOptions;\n if (typeof rawOptions.modules === \"undefined\") {\n rawModulesOptions = {};\n auto = true;\n } else if (typeof rawOptions.modules === \"boolean\") {\n rawModulesOptions = {};\n } else if (typeof rawOptions.modules === \"string\") {\n rawModulesOptions = {\n mode: rawOptions.modules\n };\n } else {\n rawModulesOptions = rawOptions.modules;\n ({\n auto\n } = rawModulesOptions);\n }\n\n // eslint-disable-next-line no-underscore-dangle\n const {\n outputOptions\n } = loaderContext._compilation;\n const needNamedExport = exportType === \"css-style-sheet\" || exportType === \"string\";\n const modulesOptions = {\n auto,\n mode: \"local\",\n exportGlobals: false,\n localIdentName: \"[hash:base64]\",\n localIdentContext: loaderContext.rootContext,\n localIdentHashSalt: outputOptions.hashSalt,\n localIdentHashFunction: outputOptions.hashFunction,\n localIdentHashDigest: outputOptions.hashDigest,\n localIdentHashDigestLength: outputOptions.hashDigestLength,\n // eslint-disable-next-line no-undefined\n localIdentRegExp: undefined,\n // eslint-disable-next-line no-undefined\n getLocalIdent: undefined,\n namedExport: needNamedExport || false,\n exportLocalsConvention: (rawModulesOptions.namedExport === true || needNamedExport) && typeof rawModulesOptions.exportLocalsConvention === \"undefined\" ? \"camelCaseOnly\" : \"asIs\",\n exportOnlyLocals: false,\n ...rawModulesOptions\n };\n let exportLocalsConventionType;\n if (typeof modulesOptions.exportLocalsConvention === \"string\") {\n exportLocalsConventionType = modulesOptions.exportLocalsConvention;\n modulesOptions.exportLocalsConvention = name => {\n switch (exportLocalsConventionType) {\n case \"camelCase\":\n {\n return [name, camelCase(name)];\n }\n case \"camelCaseOnly\":\n {\n return camelCase(name);\n }\n case \"dashes\":\n {\n return [name, dashesCamelCase(name)];\n }\n case \"dashesOnly\":\n {\n return dashesCamelCase(name);\n }\n case \"asIs\":\n default:\n return name;\n }\n };\n }\n if (typeof modulesOptions.auto === \"boolean\") {\n const isModules = modulesOptions.auto && IS_MODULES.test(resourcePath);\n let isIcss;\n if (!isModules) {\n isIcss = IS_ICSS.test(resourcePath);\n if (isIcss) {\n modulesOptions.mode = \"icss\";\n }\n }\n if (!isModules && !isIcss) {\n return false;\n }\n } else if (modulesOptions.auto instanceof RegExp) {\n const isModules = modulesOptions.auto.test(resourcePath);\n if (!isModules) {\n return false;\n }\n } else if (typeof modulesOptions.auto === \"function\") {\n const isModule = modulesOptions.auto(resourcePath);\n if (!isModule) {\n return false;\n }\n }\n if (typeof modulesOptions.mode === \"function\") {\n modulesOptions.mode = modulesOptions.mode(loaderContext.resourcePath);\n }\n if (needNamedExport) {\n if (rawOptions.esModule === false) {\n throw new Error(\"The 'exportType' option with the 'css-style-sheet' or 'string' value requires the 'esModules' option to be enabled\");\n }\n if (modulesOptions.namedExport === false) {\n throw new Error(\"The 'exportType' option with the 'css-style-sheet' or 'string' value requires the 'modules.namedExport' option to be enabled\");\n }\n }\n if (modulesOptions.namedExport === true) {\n if (rawOptions.esModule === false) {\n throw new Error(\"The 'modules.namedExport' option requires the 'esModules' option to be enabled\");\n }\n if (typeof exportLocalsConventionType === \"string\" && exportLocalsConventionType !== \"camelCaseOnly\" && exportLocalsConventionType !== \"dashesOnly\") {\n throw new Error('The \"modules.namedExport\" option requires the \"modules.exportLocalsConvention\" option to be \"camelCaseOnly\" or \"dashesOnly\"');\n }\n }\n return modulesOptions;\n}\nfunction normalizeOptions(rawOptions, loaderContext) {\n const exportType = typeof rawOptions.exportType === \"undefined\" ? \"array\" : rawOptions.exportType;\n const modulesOptions = getModulesOptions(rawOptions, exportType, loaderContext);\n return {\n url: typeof rawOptions.url === \"undefined\" ? true : rawOptions.url,\n import: typeof rawOptions.import === \"undefined\" ? true : rawOptions.import,\n modules: modulesOptions,\n sourceMap: typeof rawOptions.sourceMap === \"boolean\" ? rawOptions.sourceMap : loaderContext.sourceMap,\n importLoaders: typeof rawOptions.importLoaders === \"string\" ? parseInt(rawOptions.importLoaders, 10) : rawOptions.importLoaders,\n esModule: typeof rawOptions.esModule === \"undefined\" ? true : rawOptions.esModule,\n exportType\n };\n}\nfunction shouldUseImportPlugin(options) {\n if (options.modules.exportOnlyLocals) {\n return false;\n }\n if (typeof options.import === \"boolean\") {\n return options.import;\n }\n return true;\n}\nfunction shouldUseURLPlugin(options) {\n if (options.modules.exportOnlyLocals) {\n return false;\n }\n if (typeof options.url === \"boolean\") {\n return options.url;\n }\n return true;\n}\nfunction shouldUseModulesPlugins(options) {\n if (typeof options.modules === \"boolean\" && options.modules === false) {\n return false;\n }\n return options.modules.mode !== \"icss\";\n}\nfunction shouldUseIcssPlugin(options) {\n return Boolean(options.modules);\n}\nfunction getModulesPlugins(options, loaderContext) {\n const {\n mode,\n getLocalIdent,\n localIdentName,\n localIdentContext,\n localIdentHashSalt,\n localIdentHashFunction,\n localIdentHashDigest,\n localIdentHashDigestLength,\n localIdentRegExp,\n hashStrategy\n } = options.modules;\n let plugins = [];\n try {\n plugins = [_postcssModulesValues.default, (0, _postcssModulesLocalByDefault.default)({\n mode\n }), (0, _postcssModulesExtractImports.default)(), (0, _postcssModulesScope.default)({\n generateScopedName(exportName) {\n let localIdent;\n if (typeof getLocalIdent !== \"undefined\") {\n localIdent = getLocalIdent(loaderContext, localIdentName, unescape(exportName), {\n context: localIdentContext,\n hashSalt: localIdentHashSalt,\n hashFunction: localIdentHashFunction,\n hashDigest: localIdentHashDigest,\n hashDigestLength: localIdentHashDigestLength,\n hashStrategy,\n regExp: localIdentRegExp\n });\n }\n\n // A null/undefined value signals that we should invoke the default\n // getLocalIdent method.\n if (typeof localIdent === \"undefined\" || localIdent === null) {\n localIdent = defaultGetLocalIdent(loaderContext, localIdentName, unescape(exportName), {\n context: localIdentContext,\n hashSalt: localIdentHashSalt,\n hashFunction: localIdentHashFunction,\n hashDigest: localIdentHashDigest,\n hashDigestLength: localIdentHashDigestLength,\n hashStrategy,\n regExp: localIdentRegExp\n });\n return escapeLocalIdent(localIdent).replace(/\\\\\\[local\\\\]/gi, exportName);\n }\n return escapeLocalIdent(localIdent);\n },\n exportGlobals: options.modules.exportGlobals\n })];\n } catch (error) {\n loaderContext.emitError(error);\n }\n return plugins;\n}\nconst ABSOLUTE_SCHEME = /^[a-z0-9+\\-.]+:/i;\nfunction getURLType(source) {\n if (source[0] === \"/\") {\n if (source[1] === \"/\") {\n return \"scheme-relative\";\n }\n return \"path-absolute\";\n }\n if (IS_NATIVE_WIN32_PATH.test(source)) {\n return \"path-absolute\";\n }\n return ABSOLUTE_SCHEME.test(source) ? \"absolute\" : \"path-relative\";\n}\nfunction normalizeSourceMap(map, resourcePath) {\n let newMap = map;\n\n // Some loader emit source map as string\n // Strip any JSON XSSI avoidance prefix from the string (as documented in the source maps specification), and then parse the string as JSON.\n if (typeof newMap === \"string\") {\n newMap = JSON.parse(newMap);\n }\n delete newMap.file;\n const {\n sourceRoot\n } = newMap;\n delete newMap.sourceRoot;\n if (newMap.sources) {\n // Source maps should use forward slash because it is URLs (https://github.com/mozilla/source-map/issues/91)\n // We should normalize path because previous loaders like `sass-loader` using backslash when generate source map\n newMap.sources = newMap.sources.map(source => {\n // Non-standard syntax from `postcss`\n if (source.indexOf(\"<\") === 0) {\n return source;\n }\n const sourceType = getURLType(source);\n\n // Do no touch `scheme-relative` and `absolute` URLs\n if (sourceType === \"path-relative\" || sourceType === \"path-absolute\") {\n const absoluteSource = sourceType === \"path-relative\" && sourceRoot ? _path.default.resolve(sourceRoot, normalizePath(source)) : normalizePath(source);\n return _path.default.relative(_path.default.dirname(resourcePath), absoluteSource);\n }\n return source;\n });\n }\n return newMap;\n}\nfunction getPreRequester({\n loaders,\n loaderIndex\n}) {\n const cache = Object.create(null);\n return number => {\n if (cache[number]) {\n return cache[number];\n }\n if (number === false) {\n cache[number] = \"\";\n } else {\n const loadersRequest = loaders.slice(loaderIndex, loaderIndex + 1 + (typeof number !== \"number\" ? 0 : number)).map(x => x.request).join(\"!\");\n cache[number] = `-!${loadersRequest}!`;\n }\n return cache[number];\n };\n}\nfunction getImportCode(imports, options) {\n let code = \"\";\n for (const item of imports) {\n const {\n importName,\n url,\n icss,\n type\n } = item;\n if (options.esModule) {\n if (icss && options.modules.namedExport) {\n code += `import ${options.modules.exportOnlyLocals ? \"\" : `${importName}, `}* as ${importName}_NAMED___ from ${url};\\n`;\n } else {\n code += type === \"url\" ? `var ${importName} = new URL(${url}, import.meta.url);\\n` : `import ${importName} from ${url};\\n`;\n }\n } else {\n code += `var ${importName} = require(${url});\\n`;\n }\n }\n return code ? `// Imports\\n${code}` : \"\";\n}\nfunction normalizeSourceMapForRuntime(map, loaderContext) {\n const resultMap = map ? map.toJSON() : null;\n if (resultMap) {\n delete resultMap.file;\n\n /* eslint-disable no-underscore-dangle */\n if (loaderContext._compilation && loaderContext._compilation.options && loaderContext._compilation.options.devtool && loaderContext._compilation.options.devtool.includes(\"nosources\")) {\n /* eslint-enable no-underscore-dangle */\n\n delete resultMap.sourcesContent;\n }\n resultMap.sourceRoot = \"\";\n resultMap.sources = resultMap.sources.map(source => {\n // Non-standard syntax from `postcss`\n if (source.indexOf(\"<\") === 0) {\n return source;\n }\n const sourceType = getURLType(source);\n if (sourceType !== \"path-relative\") {\n return source;\n }\n const resourceDirname = _path.default.dirname(loaderContext.resourcePath);\n const absoluteSource = _path.default.resolve(resourceDirname, source);\n const contextifyPath = normalizePath(_path.default.relative(loaderContext.rootContext, absoluteSource));\n return `webpack://./${contextifyPath}`;\n });\n }\n return JSON.stringify(resultMap);\n}\nfunction printParams(media, dedupe, supports, layer) {\n let result = \"\";\n if (typeof layer !== \"undefined\") {\n result = `, ${JSON.stringify(layer)}`;\n }\n if (typeof supports !== \"undefined\") {\n result = `, ${JSON.stringify(supports)}${result}`;\n } else if (result.length > 0) {\n result = `, undefined${result}`;\n }\n if (dedupe) {\n result = `, true${result}`;\n } else if (result.length > 0) {\n result = `, false${result}`;\n }\n if (media) {\n result = `${JSON.stringify(media)}${result}`;\n } else if (result.length > 0) {\n result = `\"\"${result}`;\n }\n return result;\n}\nfunction getModuleCode(result, api, replacements, options, loaderContext) {\n if (options.modules.exportOnlyLocals === true) {\n return \"\";\n }\n let sourceMapValue = \"\";\n if (options.sourceMap) {\n const sourceMap = result.map;\n sourceMapValue = `,${normalizeSourceMapForRuntime(sourceMap, loaderContext)}`;\n }\n let code = JSON.stringify(result.css);\n let beforeCode = `var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(${options.sourceMap ? \"___CSS_LOADER_API_SOURCEMAP_IMPORT___\" : \"___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___\"});\\n`;\n for (const item of api) {\n const {\n url,\n layer,\n supports,\n media,\n dedupe\n } = item;\n if (url) {\n // eslint-disable-next-line no-undefined\n const printedParam = printParams(media, undefined, supports, layer);\n beforeCode += `___CSS_LOADER_EXPORT___.push([module.id, ${JSON.stringify(`@import url(${url});`)}${printedParam.length > 0 ? `, ${printedParam}` : \"\"}]);\\n`;\n } else {\n const printedParam = printParams(media, dedupe, supports, layer);\n beforeCode += `___CSS_LOADER_EXPORT___.i(${item.importName}${printedParam.length > 0 ? `, ${printedParam}` : \"\"});\\n`;\n }\n }\n for (const item of replacements) {\n const {\n replacementName,\n importName,\n localName\n } = item;\n if (localName) {\n code = code.replace(new RegExp(replacementName, \"g\"), () => options.modules.namedExport ? `\" + ${importName}_NAMED___[${JSON.stringify(getValidLocalName(localName, options.modules.exportLocalsConvention))}] + \"` : `\" + ${importName}.locals[${JSON.stringify(localName)}] + \"`);\n } else {\n const {\n hash,\n needQuotes\n } = item;\n const getUrlOptions = [].concat(hash ? [`hash: ${JSON.stringify(hash)}`] : []).concat(needQuotes ? \"needQuotes: true\" : []);\n const preparedOptions = getUrlOptions.length > 0 ? `, { ${getUrlOptions.join(\", \")} }` : \"\";\n beforeCode += `var ${replacementName} = ___CSS_LOADER_GET_URL_IMPORT___(${importName}${preparedOptions});\\n`;\n code = code.replace(new RegExp(replacementName, \"g\"), () => `\" + ${replacementName} + \"`);\n }\n }\n\n // Indexes description:\n // 0 - module id\n // 1 - CSS code\n // 2 - media\n // 3 - source map\n // 4 - supports\n // 5 - layer\n return `${beforeCode}// Module\\n___CSS_LOADER_EXPORT___.push([module.id, ${code}, \"\"${sourceMapValue}]);\\n`;\n}\nfunction dashesCamelCase(str) {\n return str.replace(/-+(\\w)/g, (match, firstLetter) => firstLetter.toUpperCase());\n}\nfunction getExportCode(exports, replacements, icssPluginUsed, options) {\n let code = \"// Exports\\n\";\n if (icssPluginUsed) {\n let localsCode = \"\";\n const addExportToLocalsCode = (names, value) => {\n const normalizedNames = Array.isArray(names) ? new Set(names) : new Set([names]);\n for (const name of normalizedNames) {\n if (options.modules.namedExport) {\n localsCode += `export var ${name} = ${JSON.stringify(value)};\\n`;\n } else {\n if (localsCode) {\n localsCode += `,\\n`;\n }\n localsCode += `\\t${JSON.stringify(name)}: ${JSON.stringify(value)}`;\n }\n }\n };\n for (const {\n name,\n value\n } of exports) {\n addExportToLocalsCode(options.modules.exportLocalsConvention(name), value);\n }\n for (const item of replacements) {\n const {\n replacementName,\n localName\n } = item;\n if (localName) {\n const {\n importName\n } = item;\n localsCode = localsCode.replace(new RegExp(replacementName, \"g\"), () => {\n if (options.modules.namedExport) {\n return `\" + ${importName}_NAMED___[${JSON.stringify(getValidLocalName(localName, options.modules.exportLocalsConvention))}] + \"`;\n } else if (options.modules.exportOnlyLocals) {\n return `\" + ${importName}[${JSON.stringify(localName)}] + \"`;\n }\n return `\" + ${importName}.locals[${JSON.stringify(localName)}] + \"`;\n });\n } else {\n localsCode = localsCode.replace(new RegExp(replacementName, \"g\"), () => `\" + ${replacementName} + \"`);\n }\n }\n if (options.modules.exportOnlyLocals) {\n code += options.modules.namedExport ? localsCode : `${options.esModule ? \"export default\" : \"module.exports =\"} {\\n${localsCode}\\n};\\n`;\n return code;\n }\n code += options.modules.namedExport ? localsCode : `___CSS_LOADER_EXPORT___.locals = {${localsCode ? `\\n${localsCode}\\n` : \"\"}};\\n`;\n }\n const isCSSStyleSheetExport = options.exportType === \"css-style-sheet\";\n if (isCSSStyleSheetExport) {\n code += \"var ___CSS_LOADER_STYLE_SHEET___ = new CSSStyleSheet();\\n\";\n code += \"___CSS_LOADER_STYLE_SHEET___.replaceSync(___CSS_LOADER_EXPORT___.toString());\\n\";\n }\n let finalExport;\n switch (options.exportType) {\n case \"string\":\n finalExport = \"___CSS_LOADER_EXPORT___.toString()\";\n break;\n case \"css-style-sheet\":\n finalExport = \"___CSS_LOADER_STYLE_SHEET___\";\n break;\n default:\n case \"array\":\n finalExport = \"___CSS_LOADER_EXPORT___\";\n break;\n }\n code += `${options.esModule ? \"export default\" : \"module.exports =\"} ${finalExport};\\n`;\n return code;\n}\nasync function resolveRequests(resolve, context, possibleRequests) {\n return resolve(context, possibleRequests[0]).then(result => result).catch(error => {\n const [, ...tailPossibleRequests] = possibleRequests;\n if (tailPossibleRequests.length === 0) {\n throw error;\n }\n return resolveRequests(resolve, context, tailPossibleRequests);\n });\n}\nfunction isURLRequestable(url, options = {}) {\n // Protocol-relative URLs\n if (/^\\/\\//.test(url)) {\n return {\n requestable: false,\n needResolve: false\n };\n }\n\n // `#` URLs\n if (/^#/.test(url)) {\n return {\n requestable: false,\n needResolve: false\n };\n }\n\n // Data URI\n if (isDataUrl(url) && options.isSupportDataURL) {\n try {\n decodeURIComponent(url);\n } catch (ignoreError) {\n return {\n requestable: false,\n needResolve: false\n };\n }\n return {\n requestable: true,\n needResolve: false\n };\n }\n\n // `file:` protocol\n if (/^file:/i.test(url)) {\n return {\n requestable: true,\n needResolve: true\n };\n }\n\n // Absolute URLs\n if (/^[a-z][a-z0-9+.-]*:/i.test(url) && !NATIVE_WIN32_PATH.test(url)) {\n if (options.isSupportAbsoluteURL && /^https?:/i.test(url)) {\n return {\n requestable: true,\n needResolve: false\n };\n }\n return {\n requestable: false,\n needResolve: false\n };\n }\n return {\n requestable: true,\n needResolve: true\n };\n}\nfunction sort(a, b) {\n return a.index - b.index;\n}\nfunction combineRequests(preRequest, url) {\n const idx = url.indexOf(\"!=!\");\n return idx !== -1 ? url.slice(0, idx + 3) + preRequest + url.slice(idx + 3) : preRequest + url;\n}","const createImports = (imports, postcss, mode = \"rule\") => {\n return Object.keys(imports).map((path) => {\n const aliases = imports[path];\n const declarations = Object.keys(aliases).map((key) =>\n postcss.decl({\n prop: key,\n value: aliases[key],\n raws: { before: \"\\n \" },\n })\n );\n\n const hasDeclarations = declarations.length > 0;\n\n const rule =\n mode === \"rule\"\n ? postcss.rule({\n selector: `:import('${path}')`,\n raws: { after: hasDeclarations ? \"\\n\" : \"\" },\n })\n : postcss.atRule({\n name: \"icss-import\",\n params: `'${path}'`,\n raws: { after: hasDeclarations ? \"\\n\" : \"\" },\n });\n\n if (hasDeclarations) {\n rule.append(declarations);\n }\n\n return rule;\n });\n};\n\nconst createExports = (exports, postcss, mode = \"rule\") => {\n const declarations = Object.keys(exports).map((key) =>\n postcss.decl({\n prop: key,\n value: exports[key],\n raws: { before: \"\\n \" },\n })\n );\n\n if (declarations.length === 0) {\n return [];\n }\n const rule =\n mode === \"rule\"\n ? postcss.rule({\n selector: `:export`,\n raws: { after: \"\\n\" },\n })\n : postcss.atRule({\n name: \"icss-export\",\n raws: { after: \"\\n\" },\n });\n\n rule.append(declarations);\n\n return [rule];\n};\n\nconst createICSSRules = (imports, exports, postcss, mode) => [\n ...createImports(imports, postcss, mode),\n ...createExports(exports, postcss, mode),\n];\n\nmodule.exports = createICSSRules;\n","const importPattern = /^:import\\((\"[^\"]*\"|'[^']*'|[^\"']+)\\)$/;\nconst balancedQuotes = /^(\"[^\"]*\"|'[^']*'|[^\"']+)$/;\n\nconst getDeclsObject = (rule) => {\n const object = {};\n\n rule.walkDecls((decl) => {\n const before = decl.raws.before ? decl.raws.before.trim() : \"\";\n\n object[before + decl.prop] = decl.value;\n });\n\n return object;\n};\n/**\n *\n * @param {string} css\n * @param {boolean} removeRules\n * @param {'auto' | 'rule' | 'at-rule'} mode\n */\nconst extractICSS = (css, removeRules = true, mode = \"auto\") => {\n const icssImports = {};\n const icssExports = {};\n\n function addImports(node, path) {\n const unquoted = path.replace(/'|\"/g, \"\");\n icssImports[unquoted] = Object.assign(\n icssImports[unquoted] || {},\n getDeclsObject(node)\n );\n\n if (removeRules) {\n node.remove();\n }\n }\n\n function addExports(node) {\n Object.assign(icssExports, getDeclsObject(node));\n if (removeRules) {\n node.remove();\n }\n }\n\n css.each((node) => {\n if (node.type === \"rule\" && mode !== \"at-rule\") {\n if (node.selector.slice(0, 7) === \":import\") {\n const matches = importPattern.exec(node.selector);\n\n if (matches) {\n addImports(node, matches[1]);\n }\n }\n\n if (node.selector === \":export\") {\n addExports(node);\n }\n }\n\n if (node.type === \"atrule\" && mode !== \"rule\") {\n if (node.name === \"icss-import\") {\n const matches = balancedQuotes.exec(node.params);\n\n if (matches) {\n addImports(node, matches[1]);\n }\n }\n if (node.name === \"icss-export\") {\n addExports(node);\n }\n }\n });\n\n return { icssImports, icssExports };\n};\n\nmodule.exports = extractICSS;\n","const replaceValueSymbols = require(\"./replaceValueSymbols.js\");\nconst replaceSymbols = require(\"./replaceSymbols.js\");\nconst extractICSS = require(\"./extractICSS.js\");\nconst createICSSRules = require(\"./createICSSRules.js\");\n\nmodule.exports = {\n replaceValueSymbols,\n replaceSymbols,\n extractICSS,\n createICSSRules,\n};\n","const replaceValueSymbols = require(\"./replaceValueSymbols.js\");\n\nconst replaceSymbols = (css, replacements) => {\n css.walk((node) => {\n if (node.type === \"decl\" && node.value) {\n node.value = replaceValueSymbols(node.value.toString(), replacements);\n } else if (node.type === \"rule\" && node.selector) {\n node.selector = replaceValueSymbols(\n node.selector.toString(),\n replacements\n );\n } else if (node.type === \"atrule\" && node.params) {\n node.params = replaceValueSymbols(node.params.toString(), replacements);\n }\n });\n};\n\nmodule.exports = replaceSymbols;\n","const matchValueName = /[$]?[\\w-]+/g;\n\nconst replaceValueSymbols = (value, replacements) => {\n let matches;\n\n while ((matches = matchValueName.exec(value))) {\n const replacement = replacements[matches[0]];\n\n if (replacement) {\n value =\n value.slice(0, matches.index) +\n replacement +\n value.slice(matchValueName.lastIndex);\n\n matchValueName.lastIndex -= matches[0].length - replacement.length;\n }\n }\n\n return value;\n};\n\nmodule.exports = replaceValueSymbols;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LightningCssMinifyPlugin = void 0;\nvar loader_1 = require(\"./loader\");\nvar minify_1 = require(\"./minify\");\nObject.defineProperty(exports, \"LightningCssMinifyPlugin\", { enumerable: true, get: function () { return minify_1.LightningCssMinifyPlugin; } });\nexports.default = loader_1.LightningCssLoader;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ECacheKey = void 0;\nvar ECacheKey;\n(function (ECacheKey) {\n ECacheKey[\"loader\"] = \"loader\";\n ECacheKey[\"minify\"] = \"minify\";\n})(ECacheKey = exports.ECacheKey || (exports.ECacheKey = {}));\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(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))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (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};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"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 (_) 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};\nvar __rest = (this && this.__rest) || function (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};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LightningCssLoader = void 0;\nvar interface_1 = require(\"./interface\");\nvar lightningcss_1 = require(\"lightningcss\");\nvar buffer_1 = require(\"buffer\");\nvar utils_1 = require(\"./utils\");\nvar LOADER_NAME = \"lightningcss-loader\";\nfunction LightningCssLoader(source, prevMap) {\n var _a;\n return __awaiter(this, void 0, void 0, function () {\n var done, options, implementation, userTargets, opts, transform, _b, code, map, codeAsString;\n return __generator(this, function (_c) {\n done = this.async();\n options = this.getOptions();\n implementation = options.implementation, userTargets = options.targets, opts = __rest(options, [\"implementation\", \"targets\"]);\n if (implementation && typeof implementation.transform !== 'function') {\n done(new TypeError(\"[\".concat(LOADER_NAME, \"]: options.implementation.transform must be an 'lightningcss' transform function. Received \").concat(typeof implementation.transform)));\n return [2 /*return*/];\n }\n transform = (_a = implementation === null || implementation === void 0 ? void 0 : implementation.transform) !== null && _a !== void 0 ? _a : lightningcss_1.transform;\n try {\n _b = transform(__assign({ filename: this.resourcePath, code: buffer_1.Buffer.from(source), sourceMap: this.sourceMap, targets: (0, utils_1.getTargets)({ default: userTargets, key: interface_1.ECacheKey.loader }), inputSourceMap: this.sourceMap && prevMap ? JSON.stringify(prevMap) : undefined }, opts)), code = _b.code, map = _b.map;\n codeAsString = code.toString();\n done(null, codeAsString, map && JSON.parse(map.toString()));\n }\n catch (error) {\n done(error);\n }\n return [2 /*return*/];\n });\n });\n}\nexports.LightningCssLoader = LightningCssLoader;\n",null,"\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getTargets = exports.isWebpack5 = void 0;\nvar browserslist_1 = __importDefault(require(\"browserslist\"));\nvar lightningcss_1 = require(\"lightningcss\");\nvar isWebpack5 = function (compilation) { return 'processAssets' in compilation.hooks; };\nexports.isWebpack5 = isWebpack5;\nvar targetsCache = {};\nvar getTargets = function (opts) {\n var cache = targetsCache[opts.key];\n if (cache) {\n return cache;\n }\n var cwd = process.cwd();\n var result = (0, browserslist_1.default)(opts.default, {\n path: cwd,\n env: process.env.NODE_ENV || 'production',\n });\n targetsCache[opts.key] = (0, lightningcss_1.browserslistToTargets)(result);\n return (targetsCache[opts.key] = (0, lightningcss_1.browserslistToTargets)(result));\n};\nexports.getTargets = getTargets;\n","const topologicalSort = require(\"./topologicalSort\");\n\nconst matchImports = /^(.+?)\\s+from\\s+(?:\"([^\"]+)\"|'([^']+)'|(global))$/;\nconst icssImport = /^:import\\((?:\"([^\"]+)\"|'([^']+)')\\)/;\n\nconst VISITED_MARKER = 1;\n\n/**\n * :import('G') {}\n *\n * Rule\n * composes: ... from 'A'\n * composes: ... from 'B'\n\n * Rule\n * composes: ... from 'A'\n * composes: ... from 'A'\n * composes: ... from 'C'\n *\n * Results in:\n *\n * graph: {\n * G: [],\n * A: [],\n * B: ['A'],\n * C: ['A'],\n * }\n */\nfunction addImportToGraph(importId, parentId, graph, visited) {\n const siblingsId = parentId + \"_\" + \"siblings\";\n const visitedId = parentId + \"_\" + importId;\n\n if (visited[visitedId] !== VISITED_MARKER) {\n if (!Array.isArray(visited[siblingsId])) {\n visited[siblingsId] = [];\n }\n\n const siblings = visited[siblingsId];\n\n if (Array.isArray(graph[importId])) {\n graph[importId] = graph[importId].concat(siblings);\n } else {\n graph[importId] = siblings.slice();\n }\n\n visited[visitedId] = VISITED_MARKER;\n\n siblings.push(importId);\n }\n}\n\nmodule.exports = (options = {}) => {\n let importIndex = 0;\n const createImportedName =\n typeof options.createImportedName !== \"function\"\n ? (importName /*, path*/) =>\n `i__imported_${importName.replace(/\\W/g, \"_\")}_${importIndex++}`\n : options.createImportedName;\n const failOnWrongOrder = options.failOnWrongOrder;\n\n return {\n postcssPlugin: \"postcss-modules-extract-imports\",\n prepare() {\n const graph = {};\n const visited = {};\n const existingImports = {};\n const importDecls = {};\n const imports = {};\n\n return {\n Once(root, postcss) {\n // Check the existing imports order and save refs\n root.walkRules((rule) => {\n const matches = icssImport.exec(rule.selector);\n\n if (matches) {\n const [, /*match*/ doubleQuotePath, singleQuotePath] = matches;\n const importPath = doubleQuotePath || singleQuotePath;\n\n addImportToGraph(importPath, \"root\", graph, visited);\n\n existingImports[importPath] = rule;\n }\n });\n\n root.walkDecls(/^composes$/, (declaration) => {\n const matches = declaration.value.match(matchImports);\n\n if (!matches) {\n return;\n }\n\n let tmpSymbols;\n let [\n ,\n /*match*/ symbols,\n doubleQuotePath,\n singleQuotePath,\n global,\n ] = matches;\n\n if (global) {\n // Composing globals simply means changing these classes to wrap them in global(name)\n tmpSymbols = symbols.split(/\\s+/).map((s) => `global(${s})`);\n } else {\n const importPath = doubleQuotePath || singleQuotePath;\n\n let parent = declaration.parent;\n let parentIndexes = \"\";\n\n while (parent.type !== \"root\") {\n parentIndexes =\n parent.parent.index(parent) + \"_\" + parentIndexes;\n parent = parent.parent;\n }\n\n const { selector } = declaration.parent;\n const parentRule = `_${parentIndexes}${selector}`;\n\n addImportToGraph(importPath, parentRule, graph, visited);\n\n importDecls[importPath] = declaration;\n imports[importPath] = imports[importPath] || {};\n\n tmpSymbols = symbols.split(/\\s+/).map((s) => {\n if (!imports[importPath][s]) {\n imports[importPath][s] = createImportedName(s, importPath);\n }\n\n return imports[importPath][s];\n });\n }\n\n declaration.value = tmpSymbols.join(\" \");\n });\n\n const importsOrder = topologicalSort(graph, failOnWrongOrder);\n\n if (importsOrder instanceof Error) {\n const importPath = importsOrder.nodes.find((importPath) =>\n // eslint-disable-next-line no-prototype-builtins\n importDecls.hasOwnProperty(importPath)\n );\n const decl = importDecls[importPath];\n\n throw decl.error(\n \"Failed to resolve order of composed modules \" +\n importsOrder.nodes\n .map((importPath) => \"`\" + importPath + \"`\")\n .join(\", \") +\n \".\",\n {\n plugin: \"postcss-modules-extract-imports\",\n word: \"composes\",\n }\n );\n }\n\n let lastImportRule;\n\n importsOrder.forEach((path) => {\n const importedSymbols = imports[path];\n let rule = existingImports[path];\n\n if (!rule && importedSymbols) {\n rule = postcss.rule({\n selector: `:import(\"${path}\")`,\n raws: { after: \"\\n\" },\n });\n\n if (lastImportRule) {\n root.insertAfter(lastImportRule, rule);\n } else {\n root.prepend(rule);\n }\n }\n\n lastImportRule = rule;\n\n if (!importedSymbols) {\n return;\n }\n\n Object.keys(importedSymbols).forEach((importedSymbol) => {\n rule.append(\n postcss.decl({\n value: importedSymbol,\n prop: importedSymbols[importedSymbol],\n raws: { before: \"\\n \" },\n })\n );\n });\n });\n },\n };\n },\n };\n};\n\nmodule.exports.postcss = true;\n","const PERMANENT_MARKER = 2;\nconst TEMPORARY_MARKER = 1;\n\nfunction createError(node, graph) {\n const er = new Error(\"Nondeterministic import's order\");\n\n const related = graph[node];\n const relatedNode = related.find(\n (relatedNode) => graph[relatedNode].indexOf(node) > -1\n );\n\n er.nodes = [node, relatedNode];\n\n return er;\n}\n\nfunction walkGraph(node, graph, state, result, strict) {\n if (state[node] === PERMANENT_MARKER) {\n return;\n }\n\n if (state[node] === TEMPORARY_MARKER) {\n if (strict) {\n return createError(node, graph);\n }\n\n return;\n }\n\n state[node] = TEMPORARY_MARKER;\n\n const children = graph[node];\n const length = children.length;\n\n for (let i = 0; i < length; ++i) {\n const error = walkGraph(children[i], graph, state, result, strict);\n\n if (error instanceof Error) {\n return error;\n }\n }\n\n state[node] = PERMANENT_MARKER;\n\n result.push(node);\n}\n\nfunction topologicalSort(graph, strict) {\n const result = [];\n const state = {};\n\n const nodes = Object.keys(graph);\n const length = nodes.length;\n\n for (let i = 0; i < length; ++i) {\n const er = walkGraph(nodes[i], graph, state, result, strict);\n\n if (er instanceof Error) {\n return er;\n }\n }\n\n return result;\n}\n\nmodule.exports = topologicalSort;\n","\"use strict\";\n\nconst selectorParser = require(\"postcss-selector-parser\");\nconst valueParser = require(\"postcss-value-parser\");\nconst { extractICSS } = require(\"icss-utils\");\n\nconst isSpacing = (node) => node.type === \"combinator\" && node.value === \" \";\n\nfunction normalizeNodeArray(nodes) {\n const array = [];\n\n nodes.forEach((x) => {\n if (Array.isArray(x)) {\n normalizeNodeArray(x).forEach((item) => {\n array.push(item);\n });\n } else if (x) {\n array.push(x);\n }\n });\n\n if (array.length > 0 && isSpacing(array[array.length - 1])) {\n array.pop();\n }\n return array;\n}\n\nfunction localizeNode(rule, mode, localAliasMap) {\n const transform = (node, context) => {\n if (context.ignoreNextSpacing && !isSpacing(node)) {\n throw new Error(\"Missing whitespace after \" + context.ignoreNextSpacing);\n }\n\n if (context.enforceNoSpacing && isSpacing(node)) {\n throw new Error(\"Missing whitespace before \" + context.enforceNoSpacing);\n }\n\n let newNodes;\n\n switch (node.type) {\n case \"root\": {\n let resultingGlobal;\n\n context.hasPureGlobals = false;\n\n newNodes = node.nodes.map((n) => {\n const nContext = {\n global: context.global,\n lastWasSpacing: true,\n hasLocals: false,\n explicit: false,\n };\n\n n = transform(n, nContext);\n\n if (typeof resultingGlobal === \"undefined\") {\n resultingGlobal = nContext.global;\n } else if (resultingGlobal !== nContext.global) {\n throw new Error(\n 'Inconsistent rule global/local result in rule \"' +\n node +\n '\" (multiple selectors must result in the same mode for the rule)'\n );\n }\n\n if (!nContext.hasLocals) {\n context.hasPureGlobals = true;\n }\n\n return n;\n });\n\n context.global = resultingGlobal;\n\n node.nodes = normalizeNodeArray(newNodes);\n break;\n }\n case \"selector\": {\n newNodes = node.map((childNode) => transform(childNode, context));\n\n node = node.clone();\n node.nodes = normalizeNodeArray(newNodes);\n break;\n }\n case \"combinator\": {\n if (isSpacing(node)) {\n if (context.ignoreNextSpacing) {\n context.ignoreNextSpacing = false;\n context.lastWasSpacing = false;\n context.enforceNoSpacing = false;\n return null;\n }\n context.lastWasSpacing = true;\n return node;\n }\n break;\n }\n case \"pseudo\": {\n let childContext;\n const isNested = !!node.length;\n const isScoped = node.value === \":local\" || node.value === \":global\";\n const isImportExport =\n node.value === \":import\" || node.value === \":export\";\n\n if (isImportExport) {\n context.hasLocals = true;\n // :local(.foo)\n } else if (isNested) {\n if (isScoped) {\n if (node.nodes.length === 0) {\n throw new Error(`${node.value}() can't be empty`);\n }\n\n if (context.inside) {\n throw new Error(\n `A ${node.value} is not allowed inside of a ${context.inside}(...)`\n );\n }\n\n childContext = {\n global: node.value === \":global\",\n inside: node.value,\n hasLocals: false,\n explicit: true,\n };\n\n newNodes = node\n .map((childNode) => transform(childNode, childContext))\n .reduce((acc, next) => acc.concat(next.nodes), []);\n\n if (newNodes.length) {\n const { before, after } = node.spaces;\n\n const first = newNodes[0];\n const last = newNodes[newNodes.length - 1];\n\n first.spaces = { before, after: first.spaces.after };\n last.spaces = { before: last.spaces.before, after };\n }\n\n node = newNodes;\n\n break;\n } else {\n childContext = {\n global: context.global,\n inside: context.inside,\n lastWasSpacing: true,\n hasLocals: false,\n explicit: context.explicit,\n };\n newNodes = node.map((childNode) =>\n transform(childNode, childContext)\n );\n\n node = node.clone();\n node.nodes = normalizeNodeArray(newNodes);\n\n if (childContext.hasLocals) {\n context.hasLocals = true;\n }\n }\n break;\n\n //:local .foo .bar\n } else if (isScoped) {\n if (context.inside) {\n throw new Error(\n `A ${node.value} is not allowed inside of a ${context.inside}(...)`\n );\n }\n\n const addBackSpacing = !!node.spaces.before;\n\n context.ignoreNextSpacing = context.lastWasSpacing\n ? node.value\n : false;\n\n context.enforceNoSpacing = context.lastWasSpacing\n ? false\n : node.value;\n\n context.global = node.value === \":global\";\n context.explicit = true;\n\n // because this node has spacing that is lost when we remove it\n // we make up for it by adding an extra combinator in since adding\n // spacing on the parent selector doesn't work\n return addBackSpacing\n ? selectorParser.combinator({ value: \" \" })\n : null;\n }\n break;\n }\n case \"id\":\n case \"class\": {\n if (!node.value) {\n throw new Error(\"Invalid class or id selector syntax\");\n }\n\n if (context.global) {\n break;\n }\n\n const isImportedValue = localAliasMap.has(node.value);\n const isImportedWithExplicitScope = isImportedValue && context.explicit;\n\n if (!isImportedValue || isImportedWithExplicitScope) {\n const innerNode = node.clone();\n innerNode.spaces = { before: \"\", after: \"\" };\n\n node = selectorParser.pseudo({\n value: \":local\",\n nodes: [innerNode],\n spaces: node.spaces,\n });\n\n context.hasLocals = true;\n }\n\n break;\n }\n }\n\n context.lastWasSpacing = false;\n context.ignoreNextSpacing = false;\n context.enforceNoSpacing = false;\n\n return node;\n };\n\n const rootContext = {\n global: mode === \"global\",\n hasPureGlobals: false,\n };\n\n rootContext.selector = selectorParser((root) => {\n transform(root, rootContext);\n }).processSync(rule, { updateSelector: false, lossless: true });\n\n return rootContext;\n}\n\nfunction localizeDeclNode(node, context) {\n switch (node.type) {\n case \"word\":\n if (context.localizeNextItem) {\n if (!context.localAliasMap.has(node.value)) {\n node.value = \":local(\" + node.value + \")\";\n context.localizeNextItem = false;\n }\n }\n break;\n\n case \"function\":\n if (\n context.options &&\n context.options.rewriteUrl &&\n node.value.toLowerCase() === \"url\"\n ) {\n node.nodes.map((nestedNode) => {\n if (nestedNode.type !== \"string\" && nestedNode.type !== \"word\") {\n return;\n }\n\n let newUrl = context.options.rewriteUrl(\n context.global,\n nestedNode.value\n );\n\n switch (nestedNode.type) {\n case \"string\":\n if (nestedNode.quote === \"'\") {\n newUrl = newUrl.replace(/(\\\\)/g, \"\\\\$1\").replace(/'/g, \"\\\\'\");\n }\n\n if (nestedNode.quote === '\"') {\n newUrl = newUrl.replace(/(\\\\)/g, \"\\\\$1\").replace(/\"/g, '\\\\\"');\n }\n\n break;\n case \"word\":\n newUrl = newUrl.replace(/(\"|'|\\)|\\\\)/g, \"\\\\$1\");\n break;\n }\n\n nestedNode.value = newUrl;\n });\n }\n break;\n }\n return node;\n}\n\nfunction isWordAFunctionArgument(wordNode, functionNode) {\n return functionNode\n ? functionNode.nodes.some(\n (functionNodeChild) =>\n functionNodeChild.sourceIndex === wordNode.sourceIndex\n )\n : false;\n}\n\nfunction localizeDeclarationValues(localize, declaration, context) {\n const valueNodes = valueParser(declaration.value);\n\n valueNodes.walk((node, index, nodes) => {\n const subContext = {\n options: context.options,\n global: context.global,\n localizeNextItem: localize && !context.global,\n localAliasMap: context.localAliasMap,\n };\n nodes[index] = localizeDeclNode(node, subContext);\n });\n\n declaration.value = valueNodes.toString();\n}\n\nfunction localizeDeclaration(declaration, context) {\n const isAnimation = /animation$/i.test(declaration.prop);\n\n if (isAnimation) {\n const validIdent = /^-?[_a-z][_a-z0-9-]*$/i;\n\n /*\n The spec defines some keywords that you can use to describe properties such as the timing\n function. These are still valid animation names, so as long as there is a property that accepts\n a keyword, it is given priority. Only when all the properties that can take a keyword are\n exhausted can the animation name be set to the keyword. I.e.\n \n animation: infinite infinite;\n \n The animation will repeat an infinite number of times from the first argument, and will have an\n animation name of infinite from the second.\n */\n const animationKeywords = {\n $alternate: 1,\n \"$alternate-reverse\": 1,\n $backwards: 1,\n $both: 1,\n $ease: 1,\n \"$ease-in\": 1,\n \"$ease-in-out\": 1,\n \"$ease-out\": 1,\n $forwards: 1,\n $infinite: 1,\n $linear: 1,\n $none: Infinity, // No matter how many times you write none, it will never be an animation name\n $normal: 1,\n $paused: 1,\n $reverse: 1,\n $running: 1,\n \"$step-end\": 1,\n \"$step-start\": 1,\n $initial: Infinity,\n $inherit: Infinity,\n $unset: Infinity,\n };\n\n const didParseAnimationName = false;\n let parsedAnimationKeywords = {};\n let stepsFunctionNode = null;\n const valueNodes = valueParser(declaration.value).walk((node) => {\n /* If div-token appeared (represents as comma ','), a possibility of an animation-keywords should be reflesh. */\n if (node.type === \"div\") {\n parsedAnimationKeywords = {};\n }\n if (node.type === \"function\" && node.value.toLowerCase() === \"steps\") {\n stepsFunctionNode = node;\n }\n const value =\n node.type === \"word\" &&\n !isWordAFunctionArgument(node, stepsFunctionNode)\n ? node.value.toLowerCase()\n : null;\n\n let shouldParseAnimationName = false;\n\n if (!didParseAnimationName && value && validIdent.test(value)) {\n if (\"$\" + value in animationKeywords) {\n parsedAnimationKeywords[\"$\" + value] =\n \"$\" + value in parsedAnimationKeywords\n ? parsedAnimationKeywords[\"$\" + value] + 1\n : 0;\n\n shouldParseAnimationName =\n parsedAnimationKeywords[\"$\" + value] >=\n animationKeywords[\"$\" + value];\n } else {\n shouldParseAnimationName = true;\n }\n }\n\n const subContext = {\n options: context.options,\n global: context.global,\n localizeNextItem: shouldParseAnimationName && !context.global,\n localAliasMap: context.localAliasMap,\n };\n return localizeDeclNode(node, subContext);\n });\n\n declaration.value = valueNodes.toString();\n\n return;\n }\n\n const isAnimationName = /animation(-name)?$/i.test(declaration.prop);\n\n if (isAnimationName) {\n return localizeDeclarationValues(true, declaration, context);\n }\n\n const hasUrl = /url\\(/i.test(declaration.value);\n\n if (hasUrl) {\n return localizeDeclarationValues(false, declaration, context);\n }\n}\n\nmodule.exports = (options = {}) => {\n if (\n options &&\n options.mode &&\n options.mode !== \"global\" &&\n options.mode !== \"local\" &&\n options.mode !== \"pure\"\n ) {\n throw new Error(\n 'options.mode must be either \"global\", \"local\" or \"pure\" (default \"local\")'\n );\n }\n\n const pureMode = options && options.mode === \"pure\";\n const globalMode = options && options.mode === \"global\";\n\n return {\n postcssPlugin: \"postcss-modules-local-by-default\",\n prepare() {\n const localAliasMap = new Map();\n\n return {\n Once(root) {\n const { icssImports } = extractICSS(root, false);\n\n Object.keys(icssImports).forEach((key) => {\n Object.keys(icssImports[key]).forEach((prop) => {\n localAliasMap.set(prop, icssImports[key][prop]);\n });\n });\n\n root.walkAtRules((atRule) => {\n if (/keyframes$/i.test(atRule.name)) {\n const globalMatch = /^\\s*:global\\s*\\((.+)\\)\\s*$/.exec(\n atRule.params\n );\n const localMatch = /^\\s*:local\\s*\\((.+)\\)\\s*$/.exec(\n atRule.params\n );\n\n let globalKeyframes = globalMode;\n\n if (globalMatch) {\n if (pureMode) {\n throw atRule.error(\n \"@keyframes :global(...) is not allowed in pure mode\"\n );\n }\n atRule.params = globalMatch[1];\n globalKeyframes = true;\n } else if (localMatch) {\n atRule.params = localMatch[0];\n globalKeyframes = false;\n } else if (!globalMode) {\n if (atRule.params && !localAliasMap.has(atRule.params)) {\n atRule.params = \":local(\" + atRule.params + \")\";\n }\n }\n\n atRule.walkDecls((declaration) => {\n localizeDeclaration(declaration, {\n localAliasMap,\n options: options,\n global: globalKeyframes,\n });\n });\n } else if (atRule.nodes) {\n atRule.nodes.forEach((declaration) => {\n if (declaration.type === \"decl\") {\n localizeDeclaration(declaration, {\n localAliasMap,\n options: options,\n global: globalMode,\n });\n }\n });\n }\n });\n\n root.walkRules((rule) => {\n if (\n rule.parent &&\n rule.parent.type === \"atrule\" &&\n /keyframes$/i.test(rule.parent.name)\n ) {\n // ignore keyframe rules\n return;\n }\n\n const context = localizeNode(rule, options.mode, localAliasMap);\n\n context.options = options;\n context.localAliasMap = localAliasMap;\n\n if (pureMode && context.hasPureGlobals) {\n throw rule.error(\n 'Selector \"' +\n rule.selector +\n '\" is not pure ' +\n \"(pure selectors must contain at least one local class or id)\"\n );\n }\n\n rule.selector = context.selector;\n\n // Less-syntax mixins parse as rules with no nodes\n if (rule.nodes) {\n rule.nodes.forEach((declaration) =>\n localizeDeclaration(declaration, context)\n );\n }\n });\n },\n };\n },\n };\n};\nmodule.exports.postcss = true;\n","\"use strict\";\n\nconst selectorParser = require(\"postcss-selector-parser\");\n\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction getSingleLocalNamesForComposes(root) {\n return root.nodes.map((node) => {\n if (node.type !== \"selector\" || node.nodes.length !== 1) {\n throw new Error(\n `composition is only allowed when selector is single :local class name not in \"${root}\"`\n );\n }\n\n node = node.nodes[0];\n\n if (\n node.type !== \"pseudo\" ||\n node.value !== \":local\" ||\n node.nodes.length !== 1\n ) {\n throw new Error(\n 'composition is only allowed when selector is single :local class name not in \"' +\n root +\n '\", \"' +\n node +\n '\" is weird'\n );\n }\n\n node = node.first;\n\n if (node.type !== \"selector\" || node.length !== 1) {\n throw new Error(\n 'composition is only allowed when selector is single :local class name not in \"' +\n root +\n '\", \"' +\n node +\n '\" is weird'\n );\n }\n\n node = node.first;\n\n if (node.type !== \"class\") {\n // 'id' is not possible, because you can't compose ids\n throw new Error(\n 'composition is only allowed when selector is single :local class name not in \"' +\n root +\n '\", \"' +\n node +\n '\" is weird'\n );\n }\n\n return node.value;\n });\n}\n\nconst whitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\";\nconst unescapeRegExp = new RegExp(\n \"\\\\\\\\([\\\\da-f]{1,6}\" + whitespace + \"?|(\" + whitespace + \")|.)\",\n \"ig\"\n);\n\nfunction unescape(str) {\n return str.replace(unescapeRegExp, (_, escaped, escapedWhitespace) => {\n const high = \"0x\" + escaped - 0x10000;\n\n // NaN means non-codepoint\n // Workaround erroneous numeric interpretation of +\"0x\"\n return high !== high || escapedWhitespace\n ? escaped\n : high < 0\n ? // BMP codepoint\n String.fromCharCode(high + 0x10000)\n : // Supplemental Plane codepoint (surrogate pair)\n String.fromCharCode((high >> 10) | 0xd800, (high & 0x3ff) | 0xdc00);\n });\n}\n\nconst plugin = (options = {}) => {\n const generateScopedName =\n (options && options.generateScopedName) || plugin.generateScopedName;\n const generateExportEntry =\n (options && options.generateExportEntry) || plugin.generateExportEntry;\n const exportGlobals = options && options.exportGlobals;\n\n return {\n postcssPlugin: \"postcss-modules-scope\",\n Once(root, { rule }) {\n const exports = Object.create(null);\n\n function exportScopedName(name, rawName) {\n const scopedName = generateScopedName(\n rawName ? rawName : name,\n root.source.input.from,\n root.source.input.css\n );\n const exportEntry = generateExportEntry(\n rawName ? rawName : name,\n scopedName,\n root.source.input.from,\n root.source.input.css\n );\n const { key, value } = exportEntry;\n\n exports[key] = exports[key] || [];\n\n if (exports[key].indexOf(value) < 0) {\n exports[key].push(value);\n }\n\n return scopedName;\n }\n\n function localizeNode(node) {\n switch (node.type) {\n case \"selector\":\n node.nodes = node.map(localizeNode);\n return node;\n case \"class\":\n return selectorParser.className({\n value: exportScopedName(\n node.value,\n node.raws && node.raws.value ? node.raws.value : null\n ),\n });\n case \"id\": {\n return selectorParser.id({\n value: exportScopedName(\n node.value,\n node.raws && node.raws.value ? node.raws.value : null\n ),\n });\n }\n }\n\n throw new Error(\n `${node.type} (\"${node}\") is not allowed in a :local block`\n );\n }\n\n function traverseNode(node) {\n switch (node.type) {\n case \"pseudo\":\n if (node.value === \":local\") {\n if (node.nodes.length !== 1) {\n throw new Error('Unexpected comma (\",\") in :local block');\n }\n\n const selector = localizeNode(node.first, node.spaces);\n // move the spaces that were around the psuedo selector to the first\n // non-container node\n selector.first.spaces = node.spaces;\n\n const nextNode = node.next();\n\n if (\n nextNode &&\n nextNode.type === \"combinator\" &&\n nextNode.value === \" \" &&\n /\\\\[A-F0-9]{1,6}$/.test(selector.last.value)\n ) {\n selector.last.spaces.after = \" \";\n }\n\n node.replaceWith(selector);\n\n return;\n }\n /* falls through */\n case \"root\":\n case \"selector\": {\n node.each(traverseNode);\n break;\n }\n case \"id\":\n case \"class\":\n if (exportGlobals) {\n exports[node.value] = [node.value];\n }\n break;\n }\n return node;\n }\n\n // Find any :import and remember imported names\n const importedNames = {};\n\n root.walkRules(/^:import\\(.+\\)$/, (rule) => {\n rule.walkDecls((decl) => {\n importedNames[decl.prop] = true;\n });\n });\n\n // Find any :local selectors\n root.walkRules((rule) => {\n let parsedSelector = selectorParser().astSync(rule);\n\n rule.selector = traverseNode(parsedSelector.clone()).toString();\n\n rule.walkDecls(/composes|compose-with/i, (decl) => {\n const localNames = getSingleLocalNamesForComposes(parsedSelector);\n const classes = decl.value.split(/\\s+/);\n\n classes.forEach((className) => {\n const global = /^global\\(([^)]+)\\)$/.exec(className);\n\n if (global) {\n localNames.forEach((exportedName) => {\n exports[exportedName].push(global[1]);\n });\n } else if (hasOwnProperty.call(importedNames, className)) {\n localNames.forEach((exportedName) => {\n exports[exportedName].push(className);\n });\n } else if (hasOwnProperty.call(exports, className)) {\n localNames.forEach((exportedName) => {\n exports[className].forEach((item) => {\n exports[exportedName].push(item);\n });\n });\n } else {\n throw decl.error(\n `referenced class name \"${className}\" in ${decl.prop} not found`\n );\n }\n });\n\n decl.remove();\n });\n\n // Find any :local values\n rule.walkDecls((decl) => {\n if (!/:local\\s*\\((.+?)\\)/.test(decl.value)) {\n return;\n }\n\n let tokens = decl.value.split(/(,|'[^']*'|\"[^\"]*\")/);\n\n tokens = tokens.map((token, idx) => {\n if (idx === 0 || tokens[idx - 1] === \",\") {\n let result = token;\n\n const localMatch = /:local\\s*\\((.+?)\\)/.exec(token);\n\n if (localMatch) {\n const input = localMatch.input;\n const matchPattern = localMatch[0];\n const matchVal = localMatch[1];\n const newVal = exportScopedName(matchVal);\n\n result = input.replace(matchPattern, newVal);\n } else {\n return token;\n }\n\n return result;\n } else {\n return token;\n }\n });\n\n decl.value = tokens.join(\"\");\n });\n });\n\n // Find any :local keyframes\n root.walkAtRules(/keyframes$/i, (atRule) => {\n const localMatch = /^\\s*:local\\s*\\((.+?)\\)\\s*$/.exec(atRule.params);\n\n if (!localMatch) {\n return;\n }\n\n atRule.params = exportScopedName(localMatch[1]);\n });\n\n // If we found any :locals, insert an :export rule\n const exportedNames = Object.keys(exports);\n\n if (exportedNames.length > 0) {\n const exportRule = rule({ selector: \":export\" });\n\n exportedNames.forEach((exportedName) =>\n exportRule.append({\n prop: exportedName,\n value: exports[exportedName].join(\" \"),\n raws: { before: \"\\n \" },\n })\n );\n\n root.append(exportRule);\n }\n },\n };\n};\n\nplugin.postcss = true;\n\nplugin.generateScopedName = function (name, path) {\n const sanitisedPath = path\n .replace(/\\.[^./\\\\]+$/, \"\")\n .replace(/[\\W_]+/g, \"_\")\n .replace(/^_|_$/g, \"\");\n\n return `_${sanitisedPath}__${name}`.trim();\n};\n\nplugin.generateExportEntry = function (name, scopedName) {\n return {\n key: unescape(name),\n value: unescape(scopedName),\n };\n};\n\nmodule.exports = plugin;\n","\"use strict\";\n\nconst ICSSUtils = require(\"icss-utils\");\n\nconst matchImports = /^(.+?|\\([\\s\\S]+?\\))\\s+from\\s+(\"[^\"]*\"|'[^']*'|[\\w-]+)$/;\nconst matchValueDefinition = /(?:\\s+|^)([\\w-]+):?(.*?)$/;\nconst matchImport = /^([\\w-]+)(?:\\s+as\\s+([\\w-]+))?/;\n\nmodule.exports = (options) => {\n let importIndex = 0;\n const createImportedName =\n (options && options.createImportedName) ||\n ((importName /*, path*/) =>\n `i__const_${importName.replace(/\\W/g, \"_\")}_${importIndex++}`);\n\n return {\n postcssPlugin: \"postcss-modules-values\",\n prepare(result) {\n const importAliases = [];\n const definitions = {};\n\n return {\n Once(root, postcss) {\n root.walkAtRules(/value/i, (atRule) => {\n const matches = atRule.params.match(matchImports);\n\n if (matches) {\n let [, /*match*/ aliases, path] = matches;\n\n // We can use constants for path names\n if (definitions[path]) {\n path = definitions[path];\n }\n\n const imports = aliases\n .replace(/^\\(\\s*([\\s\\S]+)\\s*\\)$/, \"$1\")\n .split(/\\s*,\\s*/)\n .map((alias) => {\n const tokens = matchImport.exec(alias);\n\n if (tokens) {\n const [, /*match*/ theirName, myName = theirName] = tokens;\n const importedName = createImportedName(myName);\n definitions[myName] = importedName;\n return { theirName, importedName };\n } else {\n throw new Error(`@import statement \"${alias}\" is invalid!`);\n }\n });\n\n importAliases.push({ path, imports });\n\n atRule.remove();\n\n return;\n }\n\n if (atRule.params.indexOf(\"@value\") !== -1) {\n result.warn(\"Invalid value definition: \" + atRule.params);\n }\n\n let [, key, value] = `${atRule.params}${atRule.raws.between}`.match(\n matchValueDefinition\n );\n\n const normalizedValue = value.replace(/\\/\\*((?!\\*\\/).*?)\\*\\//g, \"\");\n\n if (normalizedValue.length === 0) {\n result.warn(\"Invalid value definition: \" + atRule.params);\n atRule.remove();\n\n return;\n }\n\n let isOnlySpace = /^\\s+$/.test(normalizedValue);\n\n if (!isOnlySpace) {\n value = value.trim();\n }\n\n // Add to the definitions, knowing that values can refer to each other\n definitions[key] = ICSSUtils.replaceValueSymbols(\n value,\n definitions\n );\n\n atRule.remove();\n });\n\n /* If we have no definitions, don't continue */\n if (!Object.keys(definitions).length) {\n return;\n }\n\n /* Perform replacements */\n ICSSUtils.replaceSymbols(root, definitions);\n\n /* We want to export anything defined by now, but don't add it to the CSS yet or it well get picked up by the replacement stuff */\n const exportDeclarations = Object.keys(definitions).map((key) =>\n postcss.decl({\n value: definitions[key],\n prop: key,\n raws: { before: \"\\n \" },\n })\n );\n\n /* Add export rules if any */\n if (exportDeclarations.length > 0) {\n const exportRule = postcss.rule({\n selector: \":export\",\n raws: { after: \"\\n\" },\n });\n\n exportRule.append(exportDeclarations);\n\n root.prepend(exportRule);\n }\n\n /* Add import rules */\n importAliases.reverse().forEach(({ path, imports }) => {\n const importRule = postcss.rule({\n selector: `:import(${path})`,\n raws: { after: \"\\n\" },\n });\n\n imports.forEach(({ theirName, importedName }) => {\n importRule.append({\n value: theirName,\n prop: importedName,\n raws: { before: \"\\n \" },\n });\n });\n\n root.prepend(importRule);\n });\n },\n };\n },\n };\n};\n\nmodule.exports.postcss = true;\n","'use strict'\n\nlet Container = require('./container')\n\nclass AtRule extends Container {\n constructor(defaults) {\n super(defaults)\n this.type = 'atrule'\n }\n\n append(...children) {\n if (!this.proxyOf.nodes) this.nodes = []\n return super.append(...children)\n }\n\n prepend(...children) {\n if (!this.proxyOf.nodes) this.nodes = []\n return super.prepend(...children)\n }\n}\n\nmodule.exports = AtRule\nAtRule.default = AtRule\n\nContainer.registerAtRule(AtRule)\n","'use strict'\n\nlet Node = require('./node')\n\nclass Comment extends Node {\n constructor(defaults) {\n super(defaults)\n this.type = 'comment'\n }\n}\n\nmodule.exports = Comment\nComment.default = Comment\n","'use strict'\n\nlet { isClean, my } = require('./symbols')\nlet Declaration = require('./declaration')\nlet Comment = require('./comment')\nlet Node = require('./node')\n\nlet parse, Rule, AtRule, Root\n\nfunction cleanSource(nodes) {\n return nodes.map(i => {\n if (i.nodes) i.nodes = cleanSource(i.nodes)\n delete i.source\n return i\n })\n}\n\nfunction markDirtyUp(node) {\n node[isClean] = false\n if (node.proxyOf.nodes) {\n for (let i of node.proxyOf.nodes) {\n markDirtyUp(i)\n }\n }\n}\n\nclass Container extends Node {\n push(child) {\n child.parent = this\n this.proxyOf.nodes.push(child)\n return this\n }\n\n each(callback) {\n if (!this.proxyOf.nodes) return undefined\n let iterator = this.getIterator()\n\n let index, result\n while (this.indexes[iterator] < this.proxyOf.nodes.length) {\n index = this.indexes[iterator]\n result = callback(this.proxyOf.nodes[index], index)\n if (result === false) break\n\n this.indexes[iterator] += 1\n }\n\n delete this.indexes[iterator]\n return result\n }\n\n walk(callback) {\n return this.each((child, i) => {\n let result\n try {\n result = callback(child, i)\n } catch (e) {\n throw child.addToError(e)\n }\n if (result !== false && child.walk) {\n result = child.walk(callback)\n }\n\n return result\n })\n }\n\n walkDecls(prop, callback) {\n if (!callback) {\n callback = prop\n return this.walk((child, i) => {\n if (child.type === 'decl') {\n return callback(child, i)\n }\n })\n }\n if (prop instanceof RegExp) {\n return this.walk((child, i) => {\n if (child.type === 'decl' && prop.test(child.prop)) {\n return callback(child, i)\n }\n })\n }\n return this.walk((child, i) => {\n if (child.type === 'decl' && child.prop === prop) {\n return callback(child, i)\n }\n })\n }\n\n walkRules(selector, callback) {\n if (!callback) {\n callback = selector\n\n return this.walk((child, i) => {\n if (child.type === 'rule') {\n return callback(child, i)\n }\n })\n }\n if (selector instanceof RegExp) {\n return this.walk((child, i) => {\n if (child.type === 'rule' && selector.test(child.selector)) {\n return callback(child, i)\n }\n })\n }\n return this.walk((child, i) => {\n if (child.type === 'rule' && child.selector === selector) {\n return callback(child, i)\n }\n })\n }\n\n walkAtRules(name, callback) {\n if (!callback) {\n callback = name\n return this.walk((child, i) => {\n if (child.type === 'atrule') {\n return callback(child, i)\n }\n })\n }\n if (name instanceof RegExp) {\n return this.walk((child, i) => {\n if (child.type === 'atrule' && name.test(child.name)) {\n return callback(child, i)\n }\n })\n }\n return this.walk((child, i) => {\n if (child.type === 'atrule' && child.name === name) {\n return callback(child, i)\n }\n })\n }\n\n walkComments(callback) {\n return this.walk((child, i) => {\n if (child.type === 'comment') {\n return callback(child, i)\n }\n })\n }\n\n append(...children) {\n for (let child of children) {\n let nodes = this.normalize(child, this.last)\n for (let node of nodes) this.proxyOf.nodes.push(node)\n }\n\n this.markDirty()\n\n return this\n }\n\n prepend(...children) {\n children = children.reverse()\n for (let child of children) {\n let nodes = this.normalize(child, this.first, 'prepend').reverse()\n for (let node of nodes) this.proxyOf.nodes.unshift(node)\n for (let id in this.indexes) {\n this.indexes[id] = this.indexes[id] + nodes.length\n }\n }\n\n this.markDirty()\n\n return this\n }\n\n cleanRaws(keepBetween) {\n super.cleanRaws(keepBetween)\n if (this.nodes) {\n for (let node of this.nodes) node.cleanRaws(keepBetween)\n }\n }\n\n insertBefore(exist, add) {\n let existIndex = this.index(exist)\n let type = existIndex === 0 ? 'prepend' : false\n let nodes = this.normalize(add, this.proxyOf.nodes[existIndex], type).reverse()\n existIndex = this.index(exist)\n for (let node of nodes) this.proxyOf.nodes.splice(existIndex, 0, node)\n\n let index\n for (let id in this.indexes) {\n index = this.indexes[id]\n if (existIndex <= index) {\n this.indexes[id] = index + nodes.length\n }\n }\n\n this.markDirty()\n\n return this\n }\n\n insertAfter(exist, add) {\n let existIndex = this.index(exist)\n let nodes = this.normalize(add, this.proxyOf.nodes[existIndex]).reverse()\n existIndex = this.index(exist)\n for (let node of nodes) this.proxyOf.nodes.splice(existIndex + 1, 0, node)\n\n let index\n for (let id in this.indexes) {\n index = this.indexes[id]\n if (existIndex < index) {\n this.indexes[id] = index + nodes.length\n }\n }\n\n this.markDirty()\n\n return this\n }\n\n removeChild(child) {\n child = this.index(child)\n this.proxyOf.nodes[child].parent = undefined\n this.proxyOf.nodes.splice(child, 1)\n\n let index\n for (let id in this.indexes) {\n index = this.indexes[id]\n if (index >= child) {\n this.indexes[id] = index - 1\n }\n }\n\n this.markDirty()\n\n return this\n }\n\n removeAll() {\n for (let node of this.proxyOf.nodes) node.parent = undefined\n this.proxyOf.nodes = []\n\n this.markDirty()\n\n return this\n }\n\n replaceValues(pattern, opts, callback) {\n if (!callback) {\n callback = opts\n opts = {}\n }\n\n this.walkDecls(decl => {\n if (opts.props && !opts.props.includes(decl.prop)) return\n if (opts.fast && !decl.value.includes(opts.fast)) return\n\n decl.value = decl.value.replace(pattern, callback)\n })\n\n this.markDirty()\n\n return this\n }\n\n every(condition) {\n return this.nodes.every(condition)\n }\n\n some(condition) {\n return this.nodes.some(condition)\n }\n\n index(child) {\n if (typeof child === 'number') return child\n if (child.proxyOf) child = child.proxyOf\n return this.proxyOf.nodes.indexOf(child)\n }\n\n get first() {\n if (!this.proxyOf.nodes) return undefined\n return this.proxyOf.nodes[0]\n }\n\n get last() {\n if (!this.proxyOf.nodes) return undefined\n return this.proxyOf.nodes[this.proxyOf.nodes.length - 1]\n }\n\n normalize(nodes, sample) {\n if (typeof nodes === 'string') {\n nodes = cleanSource(parse(nodes).nodes)\n } else if (Array.isArray(nodes)) {\n nodes = nodes.slice(0)\n for (let i of nodes) {\n if (i.parent) i.parent.removeChild(i, 'ignore')\n }\n } else if (nodes.type === 'root' && this.type !== 'document') {\n nodes = nodes.nodes.slice(0)\n for (let i of nodes) {\n if (i.parent) i.parent.removeChild(i, 'ignore')\n }\n } else if (nodes.type) {\n nodes = [nodes]\n } else if (nodes.prop) {\n if (typeof nodes.value === 'undefined') {\n throw new Error('Value field is missed in node creation')\n } else if (typeof nodes.value !== 'string') {\n nodes.value = String(nodes.value)\n }\n nodes = [new Declaration(nodes)]\n } else if (nodes.selector) {\n nodes = [new Rule(nodes)]\n } else if (nodes.name) {\n nodes = [new AtRule(nodes)]\n } else if (nodes.text) {\n nodes = [new Comment(nodes)]\n } else {\n throw new Error('Unknown node type in node creation')\n }\n\n let processed = nodes.map(i => {\n /* c8 ignore next */\n if (!i[my]) Container.rebuild(i)\n i = i.proxyOf\n if (i.parent) i.parent.removeChild(i)\n if (i[isClean]) markDirtyUp(i)\n if (typeof i.raws.before === 'undefined') {\n if (sample && typeof sample.raws.before !== 'undefined') {\n i.raws.before = sample.raws.before.replace(/\\S/g, '')\n }\n }\n i.parent = this.proxyOf\n return i\n })\n\n return processed\n }\n\n getProxyProcessor() {\n return {\n set(node, prop, value) {\n if (node[prop] === value) return true\n node[prop] = value\n if (prop === 'name' || prop === 'params' || prop === 'selector') {\n node.markDirty()\n }\n return true\n },\n\n get(node, prop) {\n if (prop === 'proxyOf') {\n return node\n } else if (!node[prop]) {\n return node[prop]\n } else if (\n prop === 'each' ||\n (typeof prop === 'string' && prop.startsWith('walk'))\n ) {\n return (...args) => {\n return node[prop](\n ...args.map(i => {\n if (typeof i === 'function') {\n return (child, index) => i(child.toProxy(), index)\n } else {\n return i\n }\n })\n )\n }\n } else if (prop === 'every' || prop === 'some') {\n return cb => {\n return node[prop]((child, ...other) =>\n cb(child.toProxy(), ...other)\n )\n }\n } else if (prop === 'root') {\n return () => node.root().toProxy()\n } else if (prop === 'nodes') {\n return node.nodes.map(i => i.toProxy())\n } else if (prop === 'first' || prop === 'last') {\n return node[prop].toProxy()\n } else {\n return node[prop]\n }\n }\n }\n }\n\n getIterator() {\n if (!this.lastEach) this.lastEach = 0\n if (!this.indexes) this.indexes = {}\n\n this.lastEach += 1\n let iterator = this.lastEach\n this.indexes[iterator] = 0\n\n return iterator\n }\n}\n\nContainer.registerParse = dependant => {\n parse = dependant\n}\n\nContainer.registerRule = dependant => {\n Rule = dependant\n}\n\nContainer.registerAtRule = dependant => {\n AtRule = dependant\n}\n\nContainer.registerRoot = dependant => {\n Root = dependant\n}\n\nmodule.exports = Container\nContainer.default = Container\n\n/* c8 ignore start */\nContainer.rebuild = node => {\n if (node.type === 'atrule') {\n Object.setPrototypeOf(node, AtRule.prototype)\n } else if (node.type === 'rule') {\n Object.setPrototypeOf(node, Rule.prototype)\n } else if (node.type === 'decl') {\n Object.setPrototypeOf(node, Declaration.prototype)\n } else if (node.type === 'comment') {\n Object.setPrototypeOf(node, Comment.prototype)\n } else if (node.type === 'root') {\n Object.setPrototypeOf(node, Root.prototype)\n }\n\n node[my] = true\n\n if (node.nodes) {\n node.nodes.forEach(child => {\n Container.rebuild(child)\n })\n }\n}\n/* c8 ignore stop */\n","'use strict'\n\nlet pico = require('picocolors')\n\nlet terminalHighlight = require('./terminal-highlight')\n\nclass CssSyntaxError extends Error {\n constructor(message, line, column, source, file, plugin) {\n super(message)\n this.name = 'CssSyntaxError'\n this.reason = message\n\n if (file) {\n this.file = file\n }\n if (source) {\n this.source = source\n }\n if (plugin) {\n this.plugin = plugin\n }\n if (typeof line !== 'undefined' && typeof column !== 'undefined') {\n if (typeof line === 'number') {\n this.line = line\n this.column = column\n } else {\n this.line = line.line\n this.column = line.column\n this.endLine = column.line\n this.endColumn = column.column\n }\n }\n\n this.setMessage()\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, CssSyntaxError)\n }\n }\n\n setMessage() {\n this.message = this.plugin ? this.plugin + ': ' : ''\n this.message += this.file ? this.file : '<css input>'\n if (typeof this.line !== 'undefined') {\n this.message += ':' + this.line + ':' + this.column\n }\n this.message += ': ' + this.reason\n }\n\n showSourceCode(color) {\n if (!this.source) return ''\n\n let css = this.source\n if (color == null) color = pico.isColorSupported\n if (terminalHighlight) {\n if (color) css = terminalHighlight(css)\n }\n\n let lines = css.split(/\\r?\\n/)\n let start = Math.max(this.line - 3, 0)\n let end = Math.min(this.line + 2, lines.length)\n\n let maxWidth = String(end).length\n\n let mark, aside\n if (color) {\n let { bold, red, gray } = pico.createColors(true)\n mark = text => bold(red(text))\n aside = text => gray(text)\n } else {\n mark = aside = str => str\n }\n\n return lines\n .slice(start, end)\n .map((line, index) => {\n let number = start + 1 + index\n let gutter = ' ' + (' ' + number).slice(-maxWidth) + ' | '\n if (number === this.line) {\n let spacing =\n aside(gutter.replace(/\\d/g, ' ')) +\n line.slice(0, this.column - 1).replace(/[^\\t]/g, ' ')\n return mark('>') + aside(gutter) + line + '\\n ' + spacing + mark('^')\n }\n return ' ' + aside(gutter) + line\n })\n .join('\\n')\n }\n\n toString() {\n let code = this.showSourceCode()\n if (code) {\n code = '\\n\\n' + code + '\\n'\n }\n return this.name + ': ' + this.message + code\n }\n}\n\nmodule.exports = CssSyntaxError\nCssSyntaxError.default = CssSyntaxError\n","'use strict'\n\nlet Node = require('./node')\n\nclass Declaration extends Node {\n constructor(defaults) {\n if (\n defaults &&\n typeof defaults.value !== 'undefined' &&\n typeof defaults.value !== 'string'\n ) {\n defaults = { ...defaults, value: String(defaults.value) }\n }\n super(defaults)\n this.type = 'decl'\n }\n\n get variable() {\n return this.prop.startsWith('--') || this.prop[0] === '$'\n }\n}\n\nmodule.exports = Declaration\nDeclaration.default = Declaration\n","'use strict'\n\nlet Container = require('./container')\n\nlet LazyResult, Processor\n\nclass Document extends Container {\n constructor(defaults) {\n // type needs to be passed to super, otherwise child roots won't be normalized correctly\n super({ type: 'document', ...defaults })\n\n if (!this.nodes) {\n this.nodes = []\n }\n }\n\n toResult(opts = {}) {\n let lazy = new LazyResult(new Processor(), this, opts)\n\n return lazy.stringify()\n }\n}\n\nDocument.registerLazyResult = dependant => {\n LazyResult = dependant\n}\n\nDocument.registerProcessor = dependant => {\n Processor = dependant\n}\n\nmodule.exports = Document\nDocument.default = Document\n","'use strict'\n\nlet Declaration = require('./declaration')\nlet PreviousMap = require('./previous-map')\nlet Comment = require('./comment')\nlet AtRule = require('./at-rule')\nlet Input = require('./input')\nlet Root = require('./root')\nlet Rule = require('./rule')\n\nfunction fromJSON(json, inputs) {\n if (Array.isArray(json)) return json.map(n => fromJSON(n))\n\n let { inputs: ownInputs, ...defaults } = json\n if (ownInputs) {\n inputs = []\n for (let input of ownInputs) {\n let inputHydrated = { ...input, __proto__: Input.prototype }\n if (inputHydrated.map) {\n inputHydrated.map = {\n ...inputHydrated.map,\n __proto__: PreviousMap.prototype\n }\n }\n inputs.push(inputHydrated)\n }\n }\n if (defaults.nodes) {\n defaults.nodes = json.nodes.map(n => fromJSON(n, inputs))\n }\n if (defaults.source) {\n let { inputId, ...source } = defaults.source\n defaults.source = source\n if (inputId != null) {\n defaults.source.input = inputs[inputId]\n }\n }\n if (defaults.type === 'root') {\n return new Root(defaults)\n } else if (defaults.type === 'decl') {\n return new Declaration(defaults)\n } else if (defaults.type === 'rule') {\n return new Rule(defaults)\n } else if (defaults.type === 'comment') {\n return new Comment(defaults)\n } else if (defaults.type === 'atrule') {\n return new AtRule(defaults)\n } else {\n throw new Error('Unknown node type: ' + json.type)\n }\n}\n\nmodule.exports = fromJSON\nfromJSON.default = fromJSON\n","'use strict'\n\nlet { SourceMapConsumer, SourceMapGenerator } = require('source-map-js')\nlet { fileURLToPath, pathToFileURL } = require('url')\nlet { resolve, isAbsolute } = require('path')\nlet { nanoid } = require('nanoid/non-secure')\n\nlet terminalHighlight = require('./terminal-highlight')\nlet CssSyntaxError = require('./css-syntax-error')\nlet PreviousMap = require('./previous-map')\n\nlet fromOffsetCache = Symbol('fromOffsetCache')\n\nlet sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator)\nlet pathAvailable = Boolean(resolve && isAbsolute)\n\nclass Input {\n constructor(css, opts = {}) {\n if (\n css === null ||\n typeof css === 'undefined' ||\n (typeof css === 'object' && !css.toString)\n ) {\n throw new Error(`PostCSS received ${css} instead of CSS string`)\n }\n\n this.css = css.toString()\n\n if (this.css[0] === '\\uFEFF' || this.css[0] === '\\uFFFE') {\n this.hasBOM = true\n this.css = this.css.slice(1)\n } else {\n this.hasBOM = false\n }\n\n if (opts.from) {\n if (\n !pathAvailable ||\n /^\\w+:\\/\\//.test(opts.from) ||\n isAbsolute(opts.from)\n ) {\n this.file = opts.from\n } else {\n this.file = resolve(opts.from)\n }\n }\n\n if (pathAvailable && sourceMapAvailable) {\n let map = new PreviousMap(this.css, opts)\n if (map.text) {\n this.map = map\n let file = map.consumer().file\n if (!this.file && file) this.file = this.mapResolve(file)\n }\n }\n\n if (!this.file) {\n this.id = '<input css ' + nanoid(6) + '>'\n }\n if (this.map) this.map.file = this.from\n }\n\n fromOffset(offset) {\n let lastLine, lineToIndex\n if (!this[fromOffsetCache]) {\n let lines = this.css.split('\\n')\n lineToIndex = new Array(lines.length)\n let prevIndex = 0\n\n for (let i = 0, l = lines.length; i < l; i++) {\n lineToIndex[i] = prevIndex\n prevIndex += lines[i].length + 1\n }\n\n this[fromOffsetCache] = lineToIndex\n } else {\n lineToIndex = this[fromOffsetCache]\n }\n lastLine = lineToIndex[lineToIndex.length - 1]\n\n let min = 0\n if (offset >= lastLine) {\n min = lineToIndex.length - 1\n } else {\n let max = lineToIndex.length - 2\n let mid\n while (min < max) {\n mid = min + ((max - min) >> 1)\n if (offset < lineToIndex[mid]) {\n max = mid - 1\n } else if (offset >= lineToIndex[mid + 1]) {\n min = mid + 1\n } else {\n min = mid\n break\n }\n }\n }\n return {\n line: min + 1,\n col: offset - lineToIndex[min] + 1\n }\n }\n\n error(message, line, column, opts = {}) {\n let result, endLine, endColumn\n\n if (line && typeof line === 'object') {\n let start = line\n let end = column\n if (typeof start.offset === 'number') {\n let pos = this.fromOffset(start.offset)\n line = pos.line\n column = pos.col\n } else {\n line = start.line\n column = start.column\n }\n if (typeof end.offset === 'number') {\n let pos = this.fromOffset(end.offset)\n endLine = pos.line\n endColumn = pos.col\n } else {\n endLine = end.line\n endColumn = end.column\n }\n } else if (!column) {\n let pos = this.fromOffset(line)\n line = pos.line\n column = pos.col\n }\n\n let origin = this.origin(line, column, endLine, endColumn)\n if (origin) {\n result = new CssSyntaxError(\n message,\n origin.endLine === undefined\n ? origin.line\n : { line: origin.line, column: origin.column },\n origin.endLine === undefined\n ? origin.column\n : { line: origin.endLine, column: origin.endColumn },\n origin.source,\n origin.file,\n opts.plugin\n )\n } else {\n result = new CssSyntaxError(\n message,\n endLine === undefined ? line : { line, column },\n endLine === undefined ? column : { line: endLine, column: endColumn },\n this.css,\n this.file,\n opts.plugin\n )\n }\n\n result.input = { line, column, endLine, endColumn, source: this.css }\n if (this.file) {\n if (pathToFileURL) {\n result.input.url = pathToFileURL(this.file).toString()\n }\n result.input.file = this.file\n }\n\n return result\n }\n\n origin(line, column, endLine, endColumn) {\n if (!this.map) return false\n let consumer = this.map.consumer()\n\n let from = consumer.originalPositionFor({ line, column })\n if (!from.source) return false\n\n let to\n if (typeof endLine === 'number') {\n to = consumer.originalPositionFor({ line: endLine, column: endColumn })\n }\n\n let fromUrl\n\n if (isAbsolute(from.source)) {\n fromUrl = pathToFileURL(from.source)\n } else {\n fromUrl = new URL(\n from.source,\n this.map.consumer().sourceRoot || pathToFileURL(this.map.mapFile)\n )\n }\n\n let result = {\n url: fromUrl.toString(),\n line: from.line,\n column: from.column,\n endLine: to && to.line,\n endColumn: to && to.column\n }\n\n if (fromUrl.protocol === 'file:') {\n if (fileURLToPath) {\n result.file = fileURLToPath(fromUrl)\n } else {\n /* c8 ignore next 2 */\n throw new Error(`file: protocol is not available in this PostCSS build`)\n }\n }\n\n let source = consumer.sourceContentFor(from.source)\n if (source) result.source = source\n\n return result\n }\n\n mapResolve(file) {\n if (/^\\w+:\\/\\//.test(file)) {\n return file\n }\n return resolve(this.map.consumer().sourceRoot || this.map.root || '.', file)\n }\n\n get from() {\n return this.file || this.id\n }\n\n toJSON() {\n let json = {}\n for (let name of ['hasBOM', 'css', 'file', 'id']) {\n if (this[name] != null) {\n json[name] = this[name]\n }\n }\n if (this.map) {\n json.map = { ...this.map }\n if (json.map.consumerCache) {\n json.map.consumerCache = undefined\n }\n }\n return json\n }\n}\n\nmodule.exports = Input\nInput.default = Input\n\nif (terminalHighlight && terminalHighlight.registerInput) {\n terminalHighlight.registerInput(Input)\n}\n","'use strict'\n\nlet { isClean, my } = require('./symbols')\nlet MapGenerator = require('./map-generator')\nlet stringify = require('./stringify')\nlet Container = require('./container')\nlet Document = require('./document')\nlet warnOnce = require('./warn-once')\nlet Result = require('./result')\nlet parse = require('./parse')\nlet Root = require('./root')\n\nconst TYPE_TO_CLASS_NAME = {\n document: 'Document',\n root: 'Root',\n atrule: 'AtRule',\n rule: 'Rule',\n decl: 'Declaration',\n comment: 'Comment'\n}\n\nconst PLUGIN_PROPS = {\n postcssPlugin: true,\n prepare: true,\n Once: true,\n Document: true,\n Root: true,\n Declaration: true,\n Rule: true,\n AtRule: true,\n Comment: true,\n DeclarationExit: true,\n RuleExit: true,\n AtRuleExit: true,\n CommentExit: true,\n RootExit: true,\n DocumentExit: true,\n OnceExit: true\n}\n\nconst NOT_VISITORS = {\n postcssPlugin: true,\n prepare: true,\n Once: true\n}\n\nconst CHILDREN = 0\n\nfunction isPromise(obj) {\n return typeof obj === 'object' && typeof obj.then === 'function'\n}\n\nfunction getEvents(node) {\n let key = false\n let type = TYPE_TO_CLASS_NAME[node.type]\n if (node.type === 'decl') {\n key = node.prop.toLowerCase()\n } else if (node.type === 'atrule') {\n key = node.name.toLowerCase()\n }\n\n if (key && node.append) {\n return [\n type,\n type + '-' + key,\n CHILDREN,\n type + 'Exit',\n type + 'Exit-' + key\n ]\n } else if (key) {\n return [type, type + '-' + key, type + 'Exit', type + 'Exit-' + key]\n } else if (node.append) {\n return [type, CHILDREN, type + 'Exit']\n } else {\n return [type, type + 'Exit']\n }\n}\n\nfunction toStack(node) {\n let events\n if (node.type === 'document') {\n events = ['Document', CHILDREN, 'DocumentExit']\n } else if (node.type === 'root') {\n events = ['Root', CHILDREN, 'RootExit']\n } else {\n events = getEvents(node)\n }\n\n return {\n node,\n events,\n eventIndex: 0,\n visitors: [],\n visitorIndex: 0,\n iterator: 0\n }\n}\n\nfunction cleanMarks(node) {\n node[isClean] = false\n if (node.nodes) node.nodes.forEach(i => cleanMarks(i))\n return node\n}\n\nlet postcss = {}\n\nclass LazyResult {\n constructor(processor, css, opts) {\n this.stringified = false\n this.processed = false\n\n let root\n if (\n typeof css === 'object' &&\n css !== null &&\n (css.type === 'root' || css.type === 'document')\n ) {\n root = cleanMarks(css)\n } else if (css instanceof LazyResult || css instanceof Result) {\n root = cleanMarks(css.root)\n if (css.map) {\n if (typeof opts.map === 'undefined') opts.map = {}\n if (!opts.map.inline) opts.map.inline = false\n opts.map.prev = css.map\n }\n } else {\n let parser = parse\n if (opts.syntax) parser = opts.syntax.parse\n if (opts.parser) parser = opts.parser\n if (parser.parse) parser = parser.parse\n\n try {\n root = parser(css, opts)\n } catch (error) {\n this.processed = true\n this.error = error\n }\n\n if (root && !root[my]) {\n /* c8 ignore next 2 */\n Container.rebuild(root)\n }\n }\n\n this.result = new Result(processor, root, opts)\n this.helpers = { ...postcss, result: this.result, postcss }\n this.plugins = this.processor.plugins.map(plugin => {\n if (typeof plugin === 'object' && plugin.prepare) {\n return { ...plugin, ...plugin.prepare(this.result) }\n } else {\n return plugin\n }\n })\n }\n\n get [Symbol.toStringTag]() {\n return 'LazyResult'\n }\n\n get processor() {\n return this.result.processor\n }\n\n get opts() {\n return this.result.opts\n }\n\n get css() {\n return this.stringify().css\n }\n\n get content() {\n return this.stringify().content\n }\n\n get map() {\n return this.stringify().map\n }\n\n get root() {\n return this.sync().root\n }\n\n get messages() {\n return this.sync().messages\n }\n\n warnings() {\n return this.sync().warnings()\n }\n\n toString() {\n return this.css\n }\n\n then(onFulfilled, onRejected) {\n if (process.env.NODE_ENV !== 'production') {\n if (!('from' in this.opts)) {\n warnOnce(\n 'Without `from` option PostCSS could generate wrong source map ' +\n 'and will not find Browserslist config. Set it to CSS file path ' +\n 'or to `undefined` to prevent this warning.'\n )\n }\n }\n return this.async().then(onFulfilled, onRejected)\n }\n\n catch(onRejected) {\n return this.async().catch(onRejected)\n }\n\n finally(onFinally) {\n return this.async().then(onFinally, onFinally)\n }\n\n async() {\n if (this.error) return Promise.reject(this.error)\n if (this.processed) return Promise.resolve(this.result)\n if (!this.processing) {\n this.processing = this.runAsync()\n }\n return this.processing\n }\n\n sync() {\n if (this.error) throw this.error\n if (this.processed) return this.result\n this.processed = true\n\n if (this.processing) {\n throw this.getAsyncError()\n }\n\n for (let plugin of this.plugins) {\n let promise = this.runOnRoot(plugin)\n if (isPromise(promise)) {\n throw this.getAsyncError()\n }\n }\n\n this.prepareVisitors()\n if (this.hasListener) {\n let root = this.result.root\n while (!root[isClean]) {\n root[isClean] = true\n this.walkSync(root)\n }\n if (this.listeners.OnceExit) {\n if (root.type === 'document') {\n for (let subRoot of root.nodes) {\n this.visitSync(this.listeners.OnceExit, subRoot)\n }\n } else {\n this.visitSync(this.listeners.OnceExit, root)\n }\n }\n }\n\n return this.result\n }\n\n stringify() {\n if (this.error) throw this.error\n if (this.stringified) return this.result\n this.stringified = true\n\n this.sync()\n\n let opts = this.result.opts\n let str = stringify\n if (opts.syntax) str = opts.syntax.stringify\n if (opts.stringifier) str = opts.stringifier\n if (str.stringify) str = str.stringify\n\n let map = new MapGenerator(str, this.result.root, this.result.opts)\n let data = map.generate()\n this.result.css = data[0]\n this.result.map = data[1]\n\n return this.result\n }\n\n walkSync(node) {\n node[isClean] = true\n let events = getEvents(node)\n for (let event of events) {\n if (event === CHILDREN) {\n if (node.nodes) {\n node.each(child => {\n if (!child[isClean]) this.walkSync(child)\n })\n }\n } else {\n let visitors = this.listeners[event]\n if (visitors) {\n if (this.visitSync(visitors, node.toProxy())) return\n }\n }\n }\n }\n\n visitSync(visitors, node) {\n for (let [plugin, visitor] of visitors) {\n this.result.lastPlugin = plugin\n let promise\n try {\n promise = visitor(node, this.helpers)\n } catch (e) {\n throw this.handleError(e, node.proxyOf)\n }\n if (node.type !== 'root' && node.type !== 'document' && !node.parent) {\n return true\n }\n if (isPromise(promise)) {\n throw this.getAsyncError()\n }\n }\n }\n\n runOnRoot(plugin) {\n this.result.lastPlugin = plugin\n try {\n if (typeof plugin === 'object' && plugin.Once) {\n if (this.result.root.type === 'document') {\n let roots = this.result.root.nodes.map(root =>\n plugin.Once(root, this.helpers)\n )\n\n if (isPromise(roots[0])) {\n return Promise.all(roots)\n }\n\n return roots\n }\n\n return plugin.Once(this.result.root, this.helpers)\n } else if (typeof plugin === 'function') {\n return plugin(this.result.root, this.result)\n }\n } catch (error) {\n throw this.handleError(error)\n }\n }\n\n getAsyncError() {\n throw new Error('Use process(css).then(cb) to work with async plugins')\n }\n\n handleError(error, node) {\n let plugin = this.result.lastPlugin\n try {\n if (node) node.addToError(error)\n this.error = error\n if (error.name === 'CssSyntaxError' && !error.plugin) {\n error.plugin = plugin.postcssPlugin\n error.setMessage()\n } else if (plugin.postcssVersion) {\n if (process.env.NODE_ENV !== 'production') {\n let pluginName = plugin.postcssPlugin\n let pluginVer = plugin.postcssVersion\n let runtimeVer = this.result.processor.version\n let a = pluginVer.split('.')\n let b = runtimeVer.split('.')\n\n if (a[0] !== b[0] || parseInt(a[1]) > parseInt(b[1])) {\n // eslint-disable-next-line no-console\n console.error(\n 'Unknown error from PostCSS plugin. Your current PostCSS ' +\n 'version is ' +\n runtimeVer +\n ', but ' +\n pluginName +\n ' uses ' +\n pluginVer +\n '. Perhaps this is the source of the error below.'\n )\n }\n }\n }\n } catch (err) {\n /* c8 ignore next 3 */\n // eslint-disable-next-line no-console\n if (console && console.error) console.error(err)\n }\n return error\n }\n\n async runAsync() {\n this.plugin = 0\n for (let i = 0; i < this.plugins.length; i++) {\n let plugin = this.plugins[i]\n let promise = this.runOnRoot(plugin)\n if (isPromise(promise)) {\n try {\n await promise\n } catch (error) {\n throw this.handleError(error)\n }\n }\n }\n\n this.prepareVisitors()\n if (this.hasListener) {\n let root = this.result.root\n while (!root[isClean]) {\n root[isClean] = true\n let stack = [toStack(root)]\n while (stack.length > 0) {\n let promise = this.visitTick(stack)\n if (isPromise(promise)) {\n try {\n await promise\n } catch (e) {\n let node = stack[stack.length - 1].node\n throw this.handleError(e, node)\n }\n }\n }\n }\n\n if (this.listeners.OnceExit) {\n for (let [plugin, visitor] of this.listeners.OnceExit) {\n this.result.lastPlugin = plugin\n try {\n if (root.type === 'document') {\n let roots = root.nodes.map(subRoot =>\n visitor(subRoot, this.helpers)\n )\n\n await Promise.all(roots)\n } else {\n await visitor(root, this.helpers)\n }\n } catch (e) {\n throw this.handleError(e)\n }\n }\n }\n }\n\n this.processed = true\n return this.stringify()\n }\n\n prepareVisitors() {\n this.listeners = {}\n let add = (plugin, type, cb) => {\n if (!this.listeners[type]) this.listeners[type] = []\n this.listeners[type].push([plugin, cb])\n }\n for (let plugin of this.plugins) {\n if (typeof plugin === 'object') {\n for (let event in plugin) {\n if (!PLUGIN_PROPS[event] && /^[A-Z]/.test(event)) {\n throw new Error(\n `Unknown event ${event} in ${plugin.postcssPlugin}. ` +\n `Try to update PostCSS (${this.processor.version} now).`\n )\n }\n if (!NOT_VISITORS[event]) {\n if (typeof plugin[event] === 'object') {\n for (let filter in plugin[event]) {\n if (filter === '*') {\n add(plugin, event, plugin[event][filter])\n } else {\n add(\n plugin,\n event + '-' + filter.toLowerCase(),\n plugin[event][filter]\n )\n }\n }\n } else if (typeof plugin[event] === 'function') {\n add(plugin, event, plugin[event])\n }\n }\n }\n }\n }\n this.hasListener = Object.keys(this.listeners).length > 0\n }\n\n visitTick(stack) {\n let visit = stack[stack.length - 1]\n let { node, visitors } = visit\n\n if (node.type !== 'root' && node.type !== 'document' && !node.parent) {\n stack.pop()\n return\n }\n\n if (visitors.length > 0 && visit.visitorIndex < visitors.length) {\n let [plugin, visitor] = visitors[visit.visitorIndex]\n visit.visitorIndex += 1\n if (visit.visitorIndex === visitors.length) {\n visit.visitors = []\n visit.visitorIndex = 0\n }\n this.result.lastPlugin = plugin\n try {\n return visitor(node.toProxy(), this.helpers)\n } catch (e) {\n throw this.handleError(e, node)\n }\n }\n\n if (visit.iterator !== 0) {\n let iterator = visit.iterator\n let child\n while ((child = node.nodes[node.indexes[iterator]])) {\n node.indexes[iterator] += 1\n if (!child[isClean]) {\n child[isClean] = true\n stack.push(toStack(child))\n return\n }\n }\n visit.iterator = 0\n delete node.indexes[iterator]\n }\n\n let events = visit.events\n while (visit.eventIndex < events.length) {\n let event = events[visit.eventIndex]\n visit.eventIndex += 1\n if (event === CHILDREN) {\n if (node.nodes && node.nodes.length) {\n node[isClean] = true\n visit.iterator = node.getIterator()\n }\n return\n } else if (this.listeners[event]) {\n visit.visitors = this.listeners[event]\n return\n }\n }\n stack.pop()\n }\n}\n\nLazyResult.registerPostcss = dependant => {\n postcss = dependant\n}\n\nmodule.exports = LazyResult\nLazyResult.default = LazyResult\n\nRoot.registerLazyResult(LazyResult)\nDocument.registerLazyResult(LazyResult)\n","'use strict'\n\nlet list = {\n split(string, separators, last) {\n let array = []\n let current = ''\n let split = false\n\n let func = 0\n let inQuote = false\n let prevQuote = ''\n let escape = false\n\n for (let letter of string) {\n if (escape) {\n escape = false\n } else if (letter === '\\\\') {\n escape = true\n } else if (inQuote) {\n if (letter === prevQuote) {\n inQuote = false\n }\n } else if (letter === '\"' || letter === \"'\") {\n inQuote = true\n prevQuote = letter\n } else if (letter === '(') {\n func += 1\n } else if (letter === ')') {\n if (func > 0) func -= 1\n } else if (func === 0) {\n if (separators.includes(letter)) split = true\n }\n\n if (split) {\n if (current !== '') array.push(current.trim())\n current = ''\n split = false\n } else {\n current += letter\n }\n }\n\n if (last || current !== '') array.push(current.trim())\n return array\n },\n\n space(string) {\n let spaces = [' ', '\\n', '\\t']\n return list.split(string, spaces)\n },\n\n comma(string) {\n return list.split(string, [','], true)\n }\n}\n\nmodule.exports = list\nlist.default = list\n","'use strict'\n\nlet { SourceMapConsumer, SourceMapGenerator } = require('source-map-js')\nlet { dirname, resolve, relative, sep } = require('path')\nlet { pathToFileURL } = require('url')\n\nlet Input = require('./input')\n\nlet sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator)\nlet pathAvailable = Boolean(dirname && resolve && relative && sep)\n\nclass MapGenerator {\n constructor(stringify, root, opts, cssString) {\n this.stringify = stringify\n this.mapOpts = opts.map || {}\n this.root = root\n this.opts = opts\n this.css = cssString\n this.usesFileUrls = !this.mapOpts.from && this.mapOpts.absolute\n }\n\n isMap() {\n if (typeof this.opts.map !== 'undefined') {\n return !!this.opts.map\n }\n return this.previous().length > 0\n }\n\n previous() {\n if (!this.previousMaps) {\n this.previousMaps = []\n if (this.root) {\n this.root.walk(node => {\n if (node.source && node.source.input.map) {\n let map = node.source.input.map\n if (!this.previousMaps.includes(map)) {\n this.previousMaps.push(map)\n }\n }\n })\n } else {\n let input = new Input(this.css, this.opts)\n if (input.map) this.previousMaps.push(input.map)\n }\n }\n\n return this.previousMaps\n }\n\n isInline() {\n if (typeof this.mapOpts.inline !== 'undefined') {\n return this.mapOpts.inline\n }\n\n let annotation = this.mapOpts.annotation\n if (typeof annotation !== 'undefined' && annotation !== true) {\n return false\n }\n\n if (this.previous().length) {\n return this.previous().some(i => i.inline)\n }\n return true\n }\n\n isSourcesContent() {\n if (typeof this.mapOpts.sourcesContent !== 'undefined') {\n return this.mapOpts.sourcesContent\n }\n if (this.previous().length) {\n return this.previous().some(i => i.withContent())\n }\n return true\n }\n\n clearAnnotation() {\n if (this.mapOpts.annotation === false) return\n\n if (this.root) {\n let node\n for (let i = this.root.nodes.length - 1; i >= 0; i--) {\n node = this.root.nodes[i]\n if (node.type !== 'comment') continue\n if (node.text.indexOf('# sourceMappingURL=') === 0) {\n this.root.removeChild(i)\n }\n }\n } else if (this.css) {\n this.css = this.css.replace(/(\\n)?\\/\\*#[\\S\\s]*?\\*\\/$/gm, '')\n }\n }\n\n setSourcesContent() {\n let already = {}\n if (this.root) {\n this.root.walk(node => {\n if (node.source) {\n let from = node.source.input.from\n if (from && !already[from]) {\n already[from] = true\n let fromUrl = this.usesFileUrls\n ? this.toFileUrl(from)\n : this.toUrl(this.path(from))\n this.map.setSourceContent(fromUrl, node.source.input.css)\n }\n }\n })\n } else if (this.css) {\n let from = this.opts.from\n ? this.toUrl(this.path(this.opts.from))\n : '<no source>'\n this.map.setSourceContent(from, this.css)\n }\n }\n\n applyPrevMaps() {\n for (let prev of this.previous()) {\n let from = this.toUrl(this.path(prev.file))\n let root = prev.root || dirname(prev.file)\n let map\n\n if (this.mapOpts.sourcesContent === false) {\n map = new SourceMapConsumer(prev.text)\n if (map.sourcesContent) {\n map.sourcesContent = map.sourcesContent.map(() => null)\n }\n } else {\n map = prev.consumer()\n }\n\n this.map.applySourceMap(map, from, this.toUrl(this.path(root)))\n }\n }\n\n isAnnotation() {\n if (this.isInline()) {\n return true\n }\n if (typeof this.mapOpts.annotation !== 'undefined') {\n return this.mapOpts.annotation\n }\n if (this.previous().length) {\n return this.previous().some(i => i.annotation)\n }\n return true\n }\n\n toBase64(str) {\n if (Buffer) {\n return Buffer.from(str).toString('base64')\n } else {\n return window.btoa(unescape(encodeURIComponent(str)))\n }\n }\n\n addAnnotation() {\n let content\n\n if (this.isInline()) {\n content =\n 'data:application/json;base64,' + this.toBase64(this.map.toString())\n } else if (typeof this.mapOpts.annotation === 'string') {\n content = this.mapOpts.annotation\n } else if (typeof this.mapOpts.annotation === 'function') {\n content = this.mapOpts.annotation(this.opts.to, this.root)\n } else {\n content = this.outputFile() + '.map'\n }\n let eol = '\\n'\n if (this.css.includes('\\r\\n')) eol = '\\r\\n'\n\n this.css += eol + '/*# sourceMappingURL=' + content + ' */'\n }\n\n outputFile() {\n if (this.opts.to) {\n return this.path(this.opts.to)\n } else if (this.opts.from) {\n return this.path(this.opts.from)\n } else {\n return 'to.css'\n }\n }\n\n generateMap() {\n if (this.root) {\n this.generateString()\n } else if (this.previous().length === 1) {\n let prev = this.previous()[0].consumer()\n prev.file = this.outputFile()\n this.map = SourceMapGenerator.fromSourceMap(prev)\n } else {\n this.map = new SourceMapGenerator({ file: this.outputFile() })\n this.map.addMapping({\n source: this.opts.from\n ? this.toUrl(this.path(this.opts.from))\n : '<no source>',\n generated: { line: 1, column: 0 },\n original: { line: 1, column: 0 }\n })\n }\n\n if (this.isSourcesContent()) this.setSourcesContent()\n if (this.root && this.previous().length > 0) this.applyPrevMaps()\n if (this.isAnnotation()) this.addAnnotation()\n\n if (this.isInline()) {\n return [this.css]\n } else {\n return [this.css, this.map]\n }\n }\n\n path(file) {\n if (file.indexOf('<') === 0) return file\n if (/^\\w+:\\/\\//.test(file)) return file\n if (this.mapOpts.absolute) return file\n\n let from = this.opts.to ? dirname(this.opts.to) : '.'\n\n if (typeof this.mapOpts.annotation === 'string') {\n from = dirname(resolve(from, this.mapOpts.annotation))\n }\n\n file = relative(from, file)\n return file\n }\n\n toUrl(path) {\n if (sep === '\\\\') {\n path = path.replace(/\\\\/g, '/')\n }\n return encodeURI(path).replace(/[#?]/g, encodeURIComponent)\n }\n\n toFileUrl(path) {\n if (pathToFileURL) {\n return pathToFileURL(path).toString()\n } else {\n throw new Error(\n '`map.absolute` option is not available in this PostCSS build'\n )\n }\n }\n\n sourcePath(node) {\n if (this.mapOpts.from) {\n return this.toUrl(this.mapOpts.from)\n } else if (this.usesFileUrls) {\n return this.toFileUrl(node.source.input.from)\n } else {\n return this.toUrl(this.path(node.source.input.from))\n }\n }\n\n generateString() {\n this.css = ''\n this.map = new SourceMapGenerator({ file: this.outputFile() })\n\n let line = 1\n let column = 1\n\n let noSource = '<no source>'\n let mapping = {\n source: '',\n generated: { line: 0, column: 0 },\n original: { line: 0, column: 0 }\n }\n\n let lines, last\n this.stringify(this.root, (str, node, type) => {\n this.css += str\n\n if (node && type !== 'end') {\n mapping.generated.line = line\n mapping.generated.column = column - 1\n if (node.source && node.source.start) {\n mapping.source = this.sourcePath(node)\n mapping.original.line = node.source.start.line\n mapping.original.column = node.source.start.column - 1\n this.map.addMapping(mapping)\n } else {\n mapping.source = noSource\n mapping.original.line = 1\n mapping.original.column = 0\n this.map.addMapping(mapping)\n }\n }\n\n lines = str.match(/\\n/g)\n if (lines) {\n line += lines.length\n last = str.lastIndexOf('\\n')\n column = str.length - last\n } else {\n column += str.length\n }\n\n if (node && type !== 'start') {\n let p = node.parent || { raws: {} }\n let childless =\n node.type === 'decl' || (node.type === 'atrule' && !node.nodes)\n if (!childless || node !== p.last || p.raws.semicolon) {\n if (node.source && node.source.end) {\n mapping.source = this.sourcePath(node)\n mapping.original.line = node.source.end.line\n mapping.original.column = node.source.end.column - 1\n mapping.generated.line = line\n mapping.generated.column = column - 2\n this.map.addMapping(mapping)\n } else {\n mapping.source = noSource\n mapping.original.line = 1\n mapping.original.column = 0\n mapping.generated.line = line\n mapping.generated.column = column - 1\n this.map.addMapping(mapping)\n }\n }\n }\n })\n }\n\n generate() {\n this.clearAnnotation()\n if (pathAvailable && sourceMapAvailable && this.isMap()) {\n return this.generateMap()\n } else {\n let result = ''\n this.stringify(this.root, i => {\n result += i\n })\n return [result]\n }\n }\n}\n\nmodule.exports = MapGenerator\n","'use strict'\n\nlet MapGenerator = require('./map-generator')\nlet stringify = require('./stringify')\nlet warnOnce = require('./warn-once')\nlet parse = require('./parse')\nconst Result = require('./result')\n\nclass NoWorkResult {\n constructor(processor, css, opts) {\n css = css.toString()\n this.stringified = false\n\n this._processor = processor\n this._css = css\n this._opts = opts\n this._map = undefined\n let root\n\n let str = stringify\n this.result = new Result(this._processor, root, this._opts)\n this.result.css = css\n\n let self = this\n Object.defineProperty(this.result, 'root', {\n get() {\n return self.root\n }\n })\n\n let map = new MapGenerator(str, root, this._opts, css)\n if (map.isMap()) {\n let [generatedCSS, generatedMap] = map.generate()\n if (generatedCSS) {\n this.result.css = generatedCSS\n }\n if (generatedMap) {\n this.result.map = generatedMap\n }\n }\n }\n\n get [Symbol.toStringTag]() {\n return 'NoWorkResult'\n }\n\n get processor() {\n return this.result.processor\n }\n\n get opts() {\n return this.result.opts\n }\n\n get css() {\n return this.result.css\n }\n\n get content() {\n return this.result.css\n }\n\n get map() {\n return this.result.map\n }\n\n get root() {\n if (this._root) {\n return this._root\n }\n\n let root\n let parser = parse\n\n try {\n root = parser(this._css, this._opts)\n } catch (error) {\n this.error = error\n }\n\n if (this.error) {\n throw this.error\n } else {\n this._root = root\n return root\n }\n }\n\n get messages() {\n return []\n }\n\n warnings() {\n return []\n }\n\n toString() {\n return this._css\n }\n\n then(onFulfilled, onRejected) {\n if (process.env.NODE_ENV !== 'production') {\n if (!('from' in this._opts)) {\n warnOnce(\n 'Without `from` option PostCSS could generate wrong source map ' +\n 'and will not find Browserslist config. Set it to CSS file path ' +\n 'or to `undefined` to prevent this warning.'\n )\n }\n }\n\n return this.async().then(onFulfilled, onRejected)\n }\n\n catch(onRejected) {\n return this.async().catch(onRejected)\n }\n\n finally(onFinally) {\n return this.async().then(onFinally, onFinally)\n }\n\n async() {\n if (this.error) return Promise.reject(this.error)\n return Promise.resolve(this.result)\n }\n\n sync() {\n if (this.error) throw this.error\n return this.result\n }\n}\n\nmodule.exports = NoWorkResult\nNoWorkResult.default = NoWorkResult\n","'use strict'\n\nlet { isClean, my } = require('./symbols')\nlet CssSyntaxError = require('./css-syntax-error')\nlet Stringifier = require('./stringifier')\nlet stringify = require('./stringify')\n\nfunction cloneNode(obj, parent) {\n let cloned = new obj.constructor()\n\n for (let i in obj) {\n if (!Object.prototype.hasOwnProperty.call(obj, i)) {\n /* c8 ignore next 2 */\n continue\n }\n if (i === 'proxyCache') continue\n let value = obj[i]\n let type = typeof value\n\n if (i === 'parent' && type === 'object') {\n if (parent) cloned[i] = parent\n } else if (i === 'source') {\n cloned[i] = value\n } else if (Array.isArray(value)) {\n cloned[i] = value.map(j => cloneNode(j, cloned))\n } else {\n if (type === 'object' && value !== null) value = cloneNode(value)\n cloned[i] = value\n }\n }\n\n return cloned\n}\n\nclass Node {\n constructor(defaults = {}) {\n this.raws = {}\n this[isClean] = false\n this[my] = true\n\n for (let name in defaults) {\n if (name === 'nodes') {\n this.nodes = []\n for (let node of defaults[name]) {\n if (typeof node.clone === 'function') {\n this.append(node.clone())\n } else {\n this.append(node)\n }\n }\n } else {\n this[name] = defaults[name]\n }\n }\n }\n\n error(message, opts = {}) {\n if (this.source) {\n let { start, end } = this.rangeBy(opts)\n return this.source.input.error(\n message,\n { line: start.line, column: start.column },\n { line: end.line, column: end.column },\n opts\n )\n }\n return new CssSyntaxError(message)\n }\n\n warn(result, text, opts) {\n let data = { node: this }\n for (let i in opts) data[i] = opts[i]\n return result.warn(text, data)\n }\n\n remove() {\n if (this.parent) {\n this.parent.removeChild(this)\n }\n this.parent = undefined\n return this\n }\n\n toString(stringifier = stringify) {\n if (stringifier.stringify) stringifier = stringifier.stringify\n let result = ''\n stringifier(this, i => {\n result += i\n })\n return result\n }\n\n assign(overrides = {}) {\n for (let name in overrides) {\n this[name] = overrides[name]\n }\n return this\n }\n\n clone(overrides = {}) {\n let cloned = cloneNode(this)\n for (let name in overrides) {\n cloned[name] = overrides[name]\n }\n return cloned\n }\n\n cloneBefore(overrides = {}) {\n let cloned = this.clone(overrides)\n this.parent.insertBefore(this, cloned)\n return cloned\n }\n\n cloneAfter(overrides = {}) {\n let cloned = this.clone(overrides)\n this.parent.insertAfter(this, cloned)\n return cloned\n }\n\n replaceWith(...nodes) {\n if (this.parent) {\n let bookmark = this\n let foundSelf = false\n for (let node of nodes) {\n if (node === this) {\n foundSelf = true\n } else if (foundSelf) {\n this.parent.insertAfter(bookmark, node)\n bookmark = node\n } else {\n this.parent.insertBefore(bookmark, node)\n }\n }\n\n if (!foundSelf) {\n this.remove()\n }\n }\n\n return this\n }\n\n next() {\n if (!this.parent) return undefined\n let index = this.parent.index(this)\n return this.parent.nodes[index + 1]\n }\n\n prev() {\n if (!this.parent) return undefined\n let index = this.parent.index(this)\n return this.parent.nodes[index - 1]\n }\n\n before(add) {\n this.parent.insertBefore(this, add)\n return this\n }\n\n after(add) {\n this.parent.insertAfter(this, add)\n return this\n }\n\n root() {\n let result = this\n while (result.parent && result.parent.type !== 'document') {\n result = result.parent\n }\n return result\n }\n\n raw(prop, defaultType) {\n let str = new Stringifier()\n return str.raw(this, prop, defaultType)\n }\n\n cleanRaws(keepBetween) {\n delete this.raws.before\n delete this.raws.after\n if (!keepBetween) delete this.raws.between\n }\n\n toJSON(_, inputs) {\n let fixed = {}\n let emitInputs = inputs == null\n inputs = inputs || new Map()\n let inputsNextIndex = 0\n\n for (let name in this) {\n if (!Object.prototype.hasOwnProperty.call(this, name)) {\n /* c8 ignore next 2 */\n continue\n }\n if (name === 'parent' || name === 'proxyCache') continue\n let value = this[name]\n\n if (Array.isArray(value)) {\n fixed[name] = value.map(i => {\n if (typeof i === 'object' && i.toJSON) {\n return i.toJSON(null, inputs)\n } else {\n return i\n }\n })\n } else if (typeof value === 'object' && value.toJSON) {\n fixed[name] = value.toJSON(null, inputs)\n } else if (name === 'source') {\n let inputId = inputs.get(value.input)\n if (inputId == null) {\n inputId = inputsNextIndex\n inputs.set(value.input, inputsNextIndex)\n inputsNextIndex++\n }\n fixed[name] = {\n inputId,\n start: value.start,\n end: value.end\n }\n } else {\n fixed[name] = value\n }\n }\n\n if (emitInputs) {\n fixed.inputs = [...inputs.keys()].map(input => input.toJSON())\n }\n\n return fixed\n }\n\n positionInside(index) {\n let string = this.toString()\n let column = this.source.start.column\n let line = this.source.start.line\n\n for (let i = 0; i < index; i++) {\n if (string[i] === '\\n') {\n column = 1\n line += 1\n } else {\n column += 1\n }\n }\n\n return { line, column }\n }\n\n positionBy(opts) {\n let pos = this.source.start\n if (opts.index) {\n pos = this.positionInside(opts.index)\n } else if (opts.word) {\n let index = this.toString().indexOf(opts.word)\n if (index !== -1) pos = this.positionInside(index)\n }\n return pos\n }\n\n rangeBy(opts) {\n let start = {\n line: this.source.start.line,\n column: this.source.start.column\n }\n let end = this.source.end\n ? {\n line: this.source.end.line,\n column: this.source.end.column + 1\n }\n : {\n line: start.line,\n column: start.column + 1\n }\n\n if (opts.word) {\n let index = this.toString().indexOf(opts.word)\n if (index !== -1) {\n start = this.positionInside(index)\n end = this.positionInside(index + opts.word.length)\n }\n } else {\n if (opts.start) {\n start = {\n line: opts.start.line,\n column: opts.start.column\n }\n } else if (opts.index) {\n start = this.positionInside(opts.index)\n }\n\n if (opts.end) {\n end = {\n line: opts.end.line,\n column: opts.end.column\n }\n } else if (opts.endIndex) {\n end = this.positionInside(opts.endIndex)\n } else if (opts.index) {\n end = this.positionInside(opts.index + 1)\n }\n }\n\n if (\n end.line < start.line ||\n (end.line === start.line && end.column <= start.column)\n ) {\n end = { line: start.line, column: start.column + 1 }\n }\n\n return { start, end }\n }\n\n getProxyProcessor() {\n return {\n set(node, prop, value) {\n if (node[prop] === value) return true\n node[prop] = value\n if (\n prop === 'prop' ||\n prop === 'value' ||\n prop === 'name' ||\n prop === 'params' ||\n prop === 'important' ||\n /* c8 ignore next */\n prop === 'text'\n ) {\n node.markDirty()\n }\n return true\n },\n\n get(node, prop) {\n if (prop === 'proxyOf') {\n return node\n } else if (prop === 'root') {\n return () => node.root().toProxy()\n } else {\n return node[prop]\n }\n }\n }\n }\n\n toProxy() {\n if (!this.proxyCache) {\n this.proxyCache = new Proxy(this, this.getProxyProcessor())\n }\n return this.proxyCache\n }\n\n addToError(error) {\n error.postcssNode = this\n if (error.stack && this.source && /\\n\\s{4}at /.test(error.stack)) {\n let s = this.source\n error.stack = error.stack.replace(\n /\\n\\s{4}at /,\n `$&${s.input.from}:${s.start.line}:${s.start.column}$&`\n )\n }\n return error\n }\n\n markDirty() {\n if (this[isClean]) {\n this[isClean] = false\n let next = this\n while ((next = next.parent)) {\n next[isClean] = false\n }\n }\n }\n\n get proxyOf() {\n return this\n }\n}\n\nmodule.exports = Node\nNode.default = Node\n","'use strict'\n\nlet Container = require('./container')\nlet Parser = require('./parser')\nlet Input = require('./input')\n\nfunction parse(css, opts) {\n let input = new Input(css, opts)\n let parser = new Parser(input)\n try {\n parser.parse()\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n if (e.name === 'CssSyntaxError' && opts && opts.from) {\n if (/\\.scss$/i.test(opts.from)) {\n e.message +=\n '\\nYou tried to parse SCSS with ' +\n 'the standard CSS parser; ' +\n 'try again with the postcss-scss parser'\n } else if (/\\.sass/i.test(opts.from)) {\n e.message +=\n '\\nYou tried to parse Sass with ' +\n 'the standard CSS parser; ' +\n 'try again with the postcss-sass parser'\n } else if (/\\.less$/i.test(opts.from)) {\n e.message +=\n '\\nYou tried to parse Less with ' +\n 'the standard CSS parser; ' +\n 'try again with the postcss-less parser'\n }\n }\n }\n throw e\n }\n\n return parser.root\n}\n\nmodule.exports = parse\nparse.default = parse\n\nContainer.registerParse(parse)\n","'use strict'\n\nlet Declaration = require('./declaration')\nlet tokenizer = require('./tokenize')\nlet Comment = require('./comment')\nlet AtRule = require('./at-rule')\nlet Root = require('./root')\nlet Rule = require('./rule')\n\nconst SAFE_COMMENT_NEIGHBOR = {\n empty: true,\n space: true\n}\n\nfunction findLastWithPosition(tokens) {\n for (let i = tokens.length - 1; i >= 0; i--) {\n let token = tokens[i]\n let pos = token[3] || token[2]\n if (pos) return pos\n }\n}\n\nclass Parser {\n constructor(input) {\n this.input = input\n\n this.root = new Root()\n this.current = this.root\n this.spaces = ''\n this.semicolon = false\n this.customProperty = false\n\n this.createTokenizer()\n this.root.source = { input, start: { offset: 0, line: 1, column: 1 } }\n }\n\n createTokenizer() {\n this.tokenizer = tokenizer(this.input)\n }\n\n parse() {\n let token\n while (!this.tokenizer.endOfFile()) {\n token = this.tokenizer.nextToken()\n\n switch (token[0]) {\n case 'space':\n this.spaces += token[1]\n break\n\n case ';':\n this.freeSemicolon(token)\n break\n\n case '}':\n this.end(token)\n break\n\n case 'comment':\n this.comment(token)\n break\n\n case 'at-word':\n this.atrule(token)\n break\n\n case '{':\n this.emptyRule(token)\n break\n\n default:\n this.other(token)\n break\n }\n }\n this.endFile()\n }\n\n comment(token) {\n let node = new Comment()\n this.init(node, token[2])\n node.source.end = this.getPosition(token[3] || token[2])\n\n let text = token[1].slice(2, -2)\n if (/^\\s*$/.test(text)) {\n node.text = ''\n node.raws.left = text\n node.raws.right = ''\n } else {\n let match = text.match(/^(\\s*)([^]*\\S)(\\s*)$/)\n node.text = match[2]\n node.raws.left = match[1]\n node.raws.right = match[3]\n }\n }\n\n emptyRule(token) {\n let node = new Rule()\n this.init(node, token[2])\n node.selector = ''\n node.raws.between = ''\n this.current = node\n }\n\n other(start) {\n let end = false\n let type = null\n let colon = false\n let bracket = null\n let brackets = []\n let customProperty = start[1].startsWith('--')\n\n let tokens = []\n let token = start\n while (token) {\n type = token[0]\n tokens.push(token)\n\n if (type === '(' || type === '[') {\n if (!bracket) bracket = token\n brackets.push(type === '(' ? ')' : ']')\n } else if (customProperty && colon && type === '{') {\n if (!bracket) bracket = token\n brackets.push('}')\n } else if (brackets.length === 0) {\n if (type === ';') {\n if (colon) {\n this.decl(tokens, customProperty)\n return\n } else {\n break\n }\n } else if (type === '{') {\n this.rule(tokens)\n return\n } else if (type === '}') {\n this.tokenizer.back(tokens.pop())\n end = true\n break\n } else if (type === ':') {\n colon = true\n }\n } else if (type === brackets[brackets.length - 1]) {\n brackets.pop()\n if (brackets.length === 0) bracket = null\n }\n\n token = this.tokenizer.nextToken()\n }\n\n if (this.tokenizer.endOfFile()) end = true\n if (brackets.length > 0) this.unclosedBracket(bracket)\n\n if (end && colon) {\n if (!customProperty) {\n while (tokens.length) {\n token = tokens[tokens.length - 1][0]\n if (token !== 'space' && token !== 'comment') break\n this.tokenizer.back(tokens.pop())\n }\n }\n this.decl(tokens, customProperty)\n } else {\n this.unknownWord(tokens)\n }\n }\n\n rule(tokens) {\n tokens.pop()\n\n let node = new Rule()\n this.init(node, tokens[0][2])\n\n node.raws.between = this.spacesAndCommentsFromEnd(tokens)\n this.raw(node, 'selector', tokens)\n this.current = node\n }\n\n decl(tokens, customProperty) {\n let node = new Declaration()\n this.init(node, tokens[0][2])\n\n let last = tokens[tokens.length - 1]\n if (last[0] === ';') {\n this.semicolon = true\n tokens.pop()\n }\n\n node.source.end = this.getPosition(\n last[3] || last[2] || findLastWithPosition(tokens)\n )\n\n while (tokens[0][0] !== 'word') {\n if (tokens.length === 1) this.unknownWord(tokens)\n node.raws.before += tokens.shift()[1]\n }\n node.source.start = this.getPosition(tokens[0][2])\n\n node.prop = ''\n while (tokens.length) {\n let type = tokens[0][0]\n if (type === ':' || type === 'space' || type === 'comment') {\n break\n }\n node.prop += tokens.shift()[1]\n }\n\n node.raws.between = ''\n\n let token\n while (tokens.length) {\n token = tokens.shift()\n\n if (token[0] === ':') {\n node.raws.between += token[1]\n break\n } else {\n if (token[0] === 'word' && /\\w/.test(token[1])) {\n this.unknownWord([token])\n }\n node.raws.between += token[1]\n }\n }\n\n if (node.prop[0] === '_' || node.prop[0] === '*') {\n node.raws.before += node.prop[0]\n node.prop = node.prop.slice(1)\n }\n\n let firstSpaces = []\n let next\n while (tokens.length) {\n next = tokens[0][0]\n if (next !== 'space' && next !== 'comment') break\n firstSpaces.push(tokens.shift())\n }\n\n this.precheckMissedSemicolon(tokens)\n\n for (let i = tokens.length - 1; i >= 0; i--) {\n token = tokens[i]\n if (token[1].toLowerCase() === '!important') {\n node.important = true\n let string = this.stringFrom(tokens, i)\n string = this.spacesFromEnd(tokens) + string\n if (string !== ' !important') node.raws.important = string\n break\n } else if (token[1].toLowerCase() === 'important') {\n let cache = tokens.slice(0)\n let str = ''\n for (let j = i; j > 0; j--) {\n let type = cache[j][0]\n if (str.trim().indexOf('!') === 0 && type !== 'space') {\n break\n }\n str = cache.pop()[1] + str\n }\n if (str.trim().indexOf('!') === 0) {\n node.important = true\n node.raws.important = str\n tokens = cache\n }\n }\n\n if (token[0] !== 'space' && token[0] !== 'comment') {\n break\n }\n }\n\n let hasWord = tokens.some(i => i[0] !== 'space' && i[0] !== 'comment')\n\n if (hasWord) {\n node.raws.between += firstSpaces.map(i => i[1]).join('')\n firstSpaces = []\n }\n this.raw(node, 'value', firstSpaces.concat(tokens), customProperty)\n\n if (node.value.includes(':') && !customProperty) {\n this.checkMissedSemicolon(tokens)\n }\n }\n\n atrule(token) {\n let node = new AtRule()\n node.name = token[1].slice(1)\n if (node.name === '') {\n this.unnamedAtrule(node, token)\n }\n this.init(node, token[2])\n\n let type\n let prev\n let shift\n let last = false\n let open = false\n let params = []\n let brackets = []\n\n while (!this.tokenizer.endOfFile()) {\n token = this.tokenizer.nextToken()\n type = token[0]\n\n if (type === '(' || type === '[') {\n brackets.push(type === '(' ? ')' : ']')\n } else if (type === '{' && brackets.length > 0) {\n brackets.push('}')\n } else if (type === brackets[brackets.length - 1]) {\n brackets.pop()\n }\n\n if (brackets.length === 0) {\n if (type === ';') {\n node.source.end = this.getPosition(token[2])\n this.semicolon = true\n break\n } else if (type === '{') {\n open = true\n break\n } else if (type === '}') {\n if (params.length > 0) {\n shift = params.length - 1\n prev = params[shift]\n while (prev && prev[0] === 'space') {\n prev = params[--shift]\n }\n if (prev) {\n node.source.end = this.getPosition(prev[3] || prev[2])\n }\n }\n this.end(token)\n break\n } else {\n params.push(token)\n }\n } else {\n params.push(token)\n }\n\n if (this.tokenizer.endOfFile()) {\n last = true\n break\n }\n }\n\n node.raws.between = this.spacesAndCommentsFromEnd(params)\n if (params.length) {\n node.raws.afterName = this.spacesAndCommentsFromStart(params)\n this.raw(node, 'params', params)\n if (last) {\n token = params[params.length - 1]\n node.source.end = this.getPosition(token[3] || token[2])\n this.spaces = node.raws.between\n node.raws.between = ''\n }\n } else {\n node.raws.afterName = ''\n node.params = ''\n }\n\n if (open) {\n node.nodes = []\n this.current = node\n }\n }\n\n end(token) {\n if (this.current.nodes && this.current.nodes.length) {\n this.current.raws.semicolon = this.semicolon\n }\n this.semicolon = false\n\n this.current.raws.after = (this.current.raws.after || '') + this.spaces\n this.spaces = ''\n\n if (this.current.parent) {\n this.current.source.end = this.getPosition(token[2])\n this.current = this.current.parent\n } else {\n this.unexpectedClose(token)\n }\n }\n\n endFile() {\n if (this.current.parent) this.unclosedBlock()\n if (this.current.nodes && this.current.nodes.length) {\n this.current.raws.semicolon = this.semicolon\n }\n this.current.raws.after = (this.current.raws.after || '') + this.spaces\n }\n\n freeSemicolon(token) {\n this.spaces += token[1]\n if (this.current.nodes) {\n let prev = this.current.nodes[this.current.nodes.length - 1]\n if (prev && prev.type === 'rule' && !prev.raws.ownSemicolon) {\n prev.raws.ownSemicolon = this.spaces\n this.spaces = ''\n }\n }\n }\n\n // Helpers\n\n getPosition(offset) {\n let pos = this.input.fromOffset(offset)\n return {\n offset,\n line: pos.line,\n column: pos.col\n }\n }\n\n init(node, offset) {\n this.current.push(node)\n node.source = {\n start: this.getPosition(offset),\n input: this.input\n }\n node.raws.before = this.spaces\n this.spaces = ''\n if (node.type !== 'comment') this.semicolon = false\n }\n\n raw(node, prop, tokens, customProperty) {\n let token, type\n let length = tokens.length\n let value = ''\n let clean = true\n let next, prev\n\n for (let i = 0; i < length; i += 1) {\n token = tokens[i]\n type = token[0]\n if (type === 'space' && i === length - 1 && !customProperty) {\n clean = false\n } else if (type === 'comment') {\n prev = tokens[i - 1] ? tokens[i - 1][0] : 'empty'\n next = tokens[i + 1] ? tokens[i + 1][0] : 'empty'\n if (!SAFE_COMMENT_NEIGHBOR[prev] && !SAFE_COMMENT_NEIGHBOR[next]) {\n if (value.slice(-1) === ',') {\n clean = false\n } else {\n value += token[1]\n }\n } else {\n clean = false\n }\n } else {\n value += token[1]\n }\n }\n if (!clean) {\n let raw = tokens.reduce((all, i) => all + i[1], '')\n node.raws[prop] = { value, raw }\n }\n node[prop] = value\n }\n\n spacesAndCommentsFromEnd(tokens) {\n let lastTokenType\n let spaces = ''\n while (tokens.length) {\n lastTokenType = tokens[tokens.length - 1][0]\n if (lastTokenType !== 'space' && lastTokenType !== 'comment') break\n spaces = tokens.pop()[1] + spaces\n }\n return spaces\n }\n\n spacesAndCommentsFromStart(tokens) {\n let next\n let spaces = ''\n while (tokens.length) {\n next = tokens[0][0]\n if (next !== 'space' && next !== 'comment') break\n spaces += tokens.shift()[1]\n }\n return spaces\n }\n\n spacesFromEnd(tokens) {\n let lastTokenType\n let spaces = ''\n while (tokens.length) {\n lastTokenType = tokens[tokens.length - 1][0]\n if (lastTokenType !== 'space') break\n spaces = tokens.pop()[1] + spaces\n }\n return spaces\n }\n\n stringFrom(tokens, from) {\n let result = ''\n for (let i = from; i < tokens.length; i++) {\n result += tokens[i][1]\n }\n tokens.splice(from, tokens.length - from)\n return result\n }\n\n colon(tokens) {\n let brackets = 0\n let token, type, prev\n for (let [i, element] of tokens.entries()) {\n token = element\n type = token[0]\n\n if (type === '(') {\n brackets += 1\n }\n if (type === ')') {\n brackets -= 1\n }\n if (brackets === 0 && type === ':') {\n if (!prev) {\n this.doubleColon(token)\n } else if (prev[0] === 'word' && prev[1] === 'progid') {\n continue\n } else {\n return i\n }\n }\n\n prev = token\n }\n return false\n }\n\n // Errors\n\n unclosedBracket(bracket) {\n throw this.input.error(\n 'Unclosed bracket',\n { offset: bracket[2] },\n { offset: bracket[2] + 1 }\n )\n }\n\n unknownWord(tokens) {\n throw this.input.error(\n 'Unknown word',\n { offset: tokens[0][2] },\n { offset: tokens[0][2] + tokens[0][1].length }\n )\n }\n\n unexpectedClose(token) {\n throw this.input.error(\n 'Unexpected }',\n { offset: token[2] },\n { offset: token[2] + 1 }\n )\n }\n\n unclosedBlock() {\n let pos = this.current.source.start\n throw this.input.error('Unclosed block', pos.line, pos.column)\n }\n\n doubleColon(token) {\n throw this.input.error(\n 'Double colon',\n { offset: token[2] },\n { offset: token[2] + token[1].length }\n )\n }\n\n unnamedAtrule(node, token) {\n throw this.input.error(\n 'At-rule without name',\n { offset: token[2] },\n { offset: token[2] + token[1].length }\n )\n }\n\n precheckMissedSemicolon(/* tokens */) {\n // Hook for Safe Parser\n }\n\n checkMissedSemicolon(tokens) {\n let colon = this.colon(tokens)\n if (colon === false) return\n\n let founded = 0\n let token\n for (let j = colon - 1; j >= 0; j--) {\n token = tokens[j]\n if (token[0] !== 'space') {\n founded += 1\n if (founded === 2) break\n }\n }\n // If the token is a word, e.g. `!important`, `red` or any other valid property's value.\n // Then we need to return the colon after that word token. [3] is the \"end\" colon of that word.\n // And because we need it after that one we do +1 to get the next one.\n throw this.input.error(\n 'Missed semicolon',\n token[0] === 'word' ? token[3] + 1 : token[2]\n )\n }\n}\n\nmodule.exports = Parser\n","'use strict'\n\nlet CssSyntaxError = require('./css-syntax-error')\nlet Declaration = require('./declaration')\nlet LazyResult = require('./lazy-result')\nlet Container = require('./container')\nlet Processor = require('./processor')\nlet stringify = require('./stringify')\nlet fromJSON = require('./fromJSON')\nlet Document = require('./document')\nlet Warning = require('./warning')\nlet Comment = require('./comment')\nlet AtRule = require('./at-rule')\nlet Result = require('./result.js')\nlet Input = require('./input')\nlet parse = require('./parse')\nlet list = require('./list')\nlet Rule = require('./rule')\nlet Root = require('./root')\nlet Node = require('./node')\n\nfunction postcss(...plugins) {\n if (plugins.length === 1 && Array.isArray(plugins[0])) {\n plugins = plugins[0]\n }\n return new Processor(plugins)\n}\n\npostcss.plugin = function plugin(name, initializer) {\n let warningPrinted = false\n function creator(...args) {\n // eslint-disable-next-line no-console\n if (console && console.warn && !warningPrinted) {\n warningPrinted = true\n // eslint-disable-next-line no-console\n console.warn(\n name +\n ': postcss.plugin was deprecated. Migration guide:\\n' +\n 'https://evilmartians.com/chronicles/postcss-8-plugin-migration'\n )\n if (process.env.LANG && process.env.LANG.startsWith('cn')) {\n /* c8 ignore next 7 */\n // eslint-disable-next-line no-console\n console.warn(\n name +\n ': 里面 postcss.plugin 被弃用. 迁移指南:\\n' +\n 'https://www.w3ctech.com/topic/2226'\n )\n }\n }\n let transformer = initializer(...args)\n transformer.postcssPlugin = name\n transformer.postcssVersion = new Processor().version\n return transformer\n }\n\n let cache\n Object.defineProperty(creator, 'postcss', {\n get() {\n if (!cache) cache = creator()\n return cache\n }\n })\n\n creator.process = function (css, processOpts, pluginOpts) {\n return postcss([creator(pluginOpts)]).process(css, processOpts)\n }\n\n return creator\n}\n\npostcss.stringify = stringify\npostcss.parse = parse\npostcss.fromJSON = fromJSON\npostcss.list = list\n\npostcss.comment = defaults => new Comment(defaults)\npostcss.atRule = defaults => new AtRule(defaults)\npostcss.decl = defaults => new Declaration(defaults)\npostcss.rule = defaults => new Rule(defaults)\npostcss.root = defaults => new Root(defaults)\npostcss.document = defaults => new Document(defaults)\n\npostcss.CssSyntaxError = CssSyntaxError\npostcss.Declaration = Declaration\npostcss.Container = Container\npostcss.Processor = Processor\npostcss.Document = Document\npostcss.Comment = Comment\npostcss.Warning = Warning\npostcss.AtRule = AtRule\npostcss.Result = Result\npostcss.Input = Input\npostcss.Rule = Rule\npostcss.Root = Root\npostcss.Node = Node\n\nLazyResult.registerPostcss(postcss)\n\nmodule.exports = postcss\npostcss.default = postcss\n","'use strict'\n\nlet { SourceMapConsumer, SourceMapGenerator } = require('source-map-js')\nlet { existsSync, readFileSync } = require('fs')\nlet { dirname, join } = require('path')\n\nfunction fromBase64(str) {\n if (Buffer) {\n return Buffer.from(str, 'base64').toString()\n } else {\n /* c8 ignore next 2 */\n return window.atob(str)\n }\n}\n\nclass PreviousMap {\n constructor(css, opts) {\n if (opts.map === false) return\n this.loadAnnotation(css)\n this.inline = this.startWith(this.annotation, 'data:')\n\n let prev = opts.map ? opts.map.prev : undefined\n let text = this.loadMap(opts.from, prev)\n if (!this.mapFile && opts.from) {\n this.mapFile = opts.from\n }\n if (this.mapFile) this.root = dirname(this.mapFile)\n if (text) this.text = text\n }\n\n consumer() {\n if (!this.consumerCache) {\n this.consumerCache = new SourceMapConsumer(this.text)\n }\n return this.consumerCache\n }\n\n withContent() {\n return !!(\n this.consumer().sourcesContent &&\n this.consumer().sourcesContent.length > 0\n )\n }\n\n startWith(string, start) {\n if (!string) return false\n return string.substr(0, start.length) === start\n }\n\n getAnnotationURL(sourceMapString) {\n return sourceMapString.replace(/^\\/\\*\\s*# sourceMappingURL=/, '').trim()\n }\n\n loadAnnotation(css) {\n let comments = css.match(/\\/\\*\\s*# sourceMappingURL=/gm)\n if (!comments) return\n\n // sourceMappingURLs from comments, strings, etc.\n let start = css.lastIndexOf(comments.pop())\n let end = css.indexOf('*/', start)\n\n if (start > -1 && end > -1) {\n // Locate the last sourceMappingURL to avoid pickin\n this.annotation = this.getAnnotationURL(css.substring(start, end))\n }\n }\n\n decodeInline(text) {\n let baseCharsetUri = /^data:application\\/json;charset=utf-?8;base64,/\n let baseUri = /^data:application\\/json;base64,/\n let charsetUri = /^data:application\\/json;charset=utf-?8,/\n let uri = /^data:application\\/json,/\n\n if (charsetUri.test(text) || uri.test(text)) {\n return decodeURIComponent(text.substr(RegExp.lastMatch.length))\n }\n\n if (baseCharsetUri.test(text) || baseUri.test(text)) {\n return fromBase64(text.substr(RegExp.lastMatch.length))\n }\n\n let encoding = text.match(/data:application\\/json;([^,]+),/)[1]\n throw new Error('Unsupported source map encoding ' + encoding)\n }\n\n loadFile(path) {\n this.root = dirname(path)\n if (existsSync(path)) {\n this.mapFile = path\n return readFileSync(path, 'utf-8').toString().trim()\n }\n }\n\n loadMap(file, prev) {\n if (prev === false) return false\n\n if (prev) {\n if (typeof prev === 'string') {\n return prev\n } else if (typeof prev === 'function') {\n let prevPath = prev(file)\n if (prevPath) {\n let map = this.loadFile(prevPath)\n if (!map) {\n throw new Error(\n 'Unable to load previous source map: ' + prevPath.toString()\n )\n }\n return map\n }\n } else if (prev instanceof SourceMapConsumer) {\n return SourceMapGenerator.fromSourceMap(prev).toString()\n } else if (prev instanceof SourceMapGenerator) {\n return prev.toString()\n } else if (this.isMap(prev)) {\n return JSON.stringify(prev)\n } else {\n throw new Error(\n 'Unsupported previous source map format: ' + prev.toString()\n )\n }\n } else if (this.inline) {\n return this.decodeInline(this.annotation)\n } else if (this.annotation) {\n let map = this.annotation\n if (file) map = join(dirname(file), map)\n return this.loadFile(map)\n }\n }\n\n isMap(map) {\n if (typeof map !== 'object') return false\n return (\n typeof map.mappings === 'string' ||\n typeof map._mappings === 'string' ||\n Array.isArray(map.sections)\n )\n }\n}\n\nmodule.exports = PreviousMap\nPreviousMap.default = PreviousMap\n","'use strict'\n\nlet NoWorkResult = require('./no-work-result')\nlet LazyResult = require('./lazy-result')\nlet Document = require('./document')\nlet Root = require('./root')\n\nclass Processor {\n constructor(plugins = []) {\n this.version = '8.4.21'\n this.plugins = this.normalize(plugins)\n }\n\n use(plugin) {\n this.plugins = this.plugins.concat(this.normalize([plugin]))\n return this\n }\n\n process(css, opts = {}) {\n if (\n this.plugins.length === 0 &&\n typeof opts.parser === 'undefined' &&\n typeof opts.stringifier === 'undefined' &&\n typeof opts.syntax === 'undefined'\n ) {\n return new NoWorkResult(this, css, opts)\n } else {\n return new LazyResult(this, css, opts)\n }\n }\n\n normalize(plugins) {\n let normalized = []\n for (let i of plugins) {\n if (i.postcss === true) {\n i = i()\n } else if (i.postcss) {\n i = i.postcss\n }\n\n if (typeof i === 'object' && Array.isArray(i.plugins)) {\n normalized = normalized.concat(i.plugins)\n } else if (typeof i === 'object' && i.postcssPlugin) {\n normalized.push(i)\n } else if (typeof i === 'function') {\n normalized.push(i)\n } else if (typeof i === 'object' && (i.parse || i.stringify)) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(\n 'PostCSS syntaxes cannot be used as plugins. Instead, please use ' +\n 'one of the syntax/parser/stringifier options as outlined ' +\n 'in your PostCSS runner documentation.'\n )\n }\n } else {\n throw new Error(i + ' is not a PostCSS plugin')\n }\n }\n return normalized\n }\n}\n\nmodule.exports = Processor\nProcessor.default = Processor\n\nRoot.registerProcessor(Processor)\nDocument.registerProcessor(Processor)\n","'use strict'\n\nlet Warning = require('./warning')\n\nclass Result {\n constructor(processor, root, opts) {\n this.processor = processor\n this.messages = []\n this.root = root\n this.opts = opts\n this.css = undefined\n this.map = undefined\n }\n\n toString() {\n return this.css\n }\n\n warn(text, opts = {}) {\n if (!opts.plugin) {\n if (this.lastPlugin && this.lastPlugin.postcssPlugin) {\n opts.plugin = this.lastPlugin.postcssPlugin\n }\n }\n\n let warning = new Warning(text, opts)\n this.messages.push(warning)\n\n return warning\n }\n\n warnings() {\n return this.messages.filter(i => i.type === 'warning')\n }\n\n get content() {\n return this.css\n }\n}\n\nmodule.exports = Result\nResult.default = Result\n","'use strict'\n\nlet Container = require('./container')\n\nlet LazyResult, Processor\n\nclass Root extends Container {\n constructor(defaults) {\n super(defaults)\n this.type = 'root'\n if (!this.nodes) this.nodes = []\n }\n\n removeChild(child, ignore) {\n let index = this.index(child)\n\n if (!ignore && index === 0 && this.nodes.length > 1) {\n this.nodes[1].raws.before = this.nodes[index].raws.before\n }\n\n return super.removeChild(child)\n }\n\n normalize(child, sample, type) {\n let nodes = super.normalize(child)\n\n if (sample) {\n if (type === 'prepend') {\n if (this.nodes.length > 1) {\n sample.raws.before = this.nodes[1].raws.before\n } else {\n delete sample.raws.before\n }\n } else if (this.first !== sample) {\n for (let node of nodes) {\n node.raws.before = sample.raws.before\n }\n }\n }\n\n return nodes\n }\n\n toResult(opts = {}) {\n let lazy = new LazyResult(new Processor(), this, opts)\n return lazy.stringify()\n }\n}\n\nRoot.registerLazyResult = dependant => {\n LazyResult = dependant\n}\n\nRoot.registerProcessor = dependant => {\n Processor = dependant\n}\n\nmodule.exports = Root\nRoot.default = Root\n\nContainer.registerRoot(Root)\n","'use strict'\n\nlet Container = require('./container')\nlet list = require('./list')\n\nclass Rule extends Container {\n constructor(defaults) {\n super(defaults)\n this.type = 'rule'\n if (!this.nodes) this.nodes = []\n }\n\n get selectors() {\n return list.comma(this.selector)\n }\n\n set selectors(values) {\n let match = this.selector ? this.selector.match(/,\\s*/) : null\n let sep = match ? match[0] : ',' + this.raw('between', 'beforeOpen')\n this.selector = values.join(sep)\n }\n}\n\nmodule.exports = Rule\nRule.default = Rule\n\nContainer.registerRule(Rule)\n","'use strict'\n\nconst DEFAULT_RAW = {\n colon: ': ',\n indent: ' ',\n beforeDecl: '\\n',\n beforeRule: '\\n',\n beforeOpen: ' ',\n beforeClose: '\\n',\n beforeComment: '\\n',\n after: '\\n',\n emptyBody: '',\n commentLeft: ' ',\n commentRight: ' ',\n semicolon: false\n}\n\nfunction capitalize(str) {\n return str[0].toUpperCase() + str.slice(1)\n}\n\nclass Stringifier {\n constructor(builder) {\n this.builder = builder\n }\n\n stringify(node, semicolon) {\n /* c8 ignore start */\n if (!this[node.type]) {\n throw new Error(\n 'Unknown AST node type ' +\n node.type +\n '. ' +\n 'Maybe you need to change PostCSS stringifier.'\n )\n }\n /* c8 ignore stop */\n this[node.type](node, semicolon)\n }\n\n document(node) {\n this.body(node)\n }\n\n root(node) {\n this.body(node)\n if (node.raws.after) this.builder(node.raws.after)\n }\n\n comment(node) {\n let left = this.raw(node, 'left', 'commentLeft')\n let right = this.raw(node, 'right', 'commentRight')\n this.builder('/*' + left + node.text + right + '*/', node)\n }\n\n decl(node, semicolon) {\n let between = this.raw(node, 'between', 'colon')\n let string = node.prop + between + this.rawValue(node, 'value')\n\n if (node.important) {\n string += node.raws.important || ' !important'\n }\n\n if (semicolon) string += ';'\n this.builder(string, node)\n }\n\n rule(node) {\n this.block(node, this.rawValue(node, 'selector'))\n if (node.raws.ownSemicolon) {\n this.builder(node.raws.ownSemicolon, node, 'end')\n }\n }\n\n atrule(node, semicolon) {\n let name = '@' + node.name\n let params = node.params ? this.rawValue(node, 'params') : ''\n\n if (typeof node.raws.afterName !== 'undefined') {\n name += node.raws.afterName\n } else if (params) {\n name += ' '\n }\n\n if (node.nodes) {\n this.block(node, name + params)\n } else {\n let end = (node.raws.between || '') + (semicolon ? ';' : '')\n this.builder(name + params + end, node)\n }\n }\n\n body(node) {\n let last = node.nodes.length - 1\n while (last > 0) {\n if (node.nodes[last].type !== 'comment') break\n last -= 1\n }\n\n let semicolon = this.raw(node, 'semicolon')\n for (let i = 0; i < node.nodes.length; i++) {\n let child = node.nodes[i]\n let before = this.raw(child, 'before')\n if (before) this.builder(before)\n this.stringify(child, last !== i || semicolon)\n }\n }\n\n block(node, start) {\n let between = this.raw(node, 'between', 'beforeOpen')\n this.builder(start + between + '{', node, 'start')\n\n let after\n if (node.nodes && node.nodes.length) {\n this.body(node)\n after = this.raw(node, 'after')\n } else {\n after = this.raw(node, 'after', 'emptyBody')\n }\n\n if (after) this.builder(after)\n this.builder('}', node, 'end')\n }\n\n raw(node, own, detect) {\n let value\n if (!detect) detect = own\n\n // Already had\n if (own) {\n value = node.raws[own]\n if (typeof value !== 'undefined') return value\n }\n\n let parent = node.parent\n\n if (detect === 'before') {\n // Hack for first rule in CSS\n if (!parent || (parent.type === 'root' && parent.first === node)) {\n return ''\n }\n\n // `root` nodes in `document` should use only their own raws\n if (parent && parent.type === 'document') {\n return ''\n }\n }\n\n // Floating child without parent\n if (!parent) return DEFAULT_RAW[detect]\n\n // Detect style by other nodes\n let root = node.root()\n if (!root.rawCache) root.rawCache = {}\n if (typeof root.rawCache[detect] !== 'undefined') {\n return root.rawCache[detect]\n }\n\n if (detect === 'before' || detect === 'after') {\n return this.beforeAfter(node, detect)\n } else {\n let method = 'raw' + capitalize(detect)\n if (this[method]) {\n value = this[method](root, node)\n } else {\n root.walk(i => {\n value = i.raws[own]\n if (typeof value !== 'undefined') return false\n })\n }\n }\n\n if (typeof value === 'undefined') value = DEFAULT_RAW[detect]\n\n root.rawCache[detect] = value\n return value\n }\n\n rawSemicolon(root) {\n let value\n root.walk(i => {\n if (i.nodes && i.nodes.length && i.last.type === 'decl') {\n value = i.raws.semicolon\n if (typeof value !== 'undefined') return false\n }\n })\n return value\n }\n\n rawEmptyBody(root) {\n let value\n root.walk(i => {\n if (i.nodes && i.nodes.length === 0) {\n value = i.raws.after\n if (typeof value !== 'undefined') return false\n }\n })\n return value\n }\n\n rawIndent(root) {\n if (root.raws.indent) return root.raws.indent\n let value\n root.walk(i => {\n let p = i.parent\n if (p && p !== root && p.parent && p.parent === root) {\n if (typeof i.raws.before !== 'undefined') {\n let parts = i.raws.before.split('\\n')\n value = parts[parts.length - 1]\n value = value.replace(/\\S/g, '')\n return false\n }\n }\n })\n return value\n }\n\n rawBeforeComment(root, node) {\n let value\n root.walkComments(i => {\n if (typeof i.raws.before !== 'undefined') {\n value = i.raws.before\n if (value.includes('\\n')) {\n value = value.replace(/[^\\n]+$/, '')\n }\n return false\n }\n })\n if (typeof value === 'undefined') {\n value = this.raw(node, null, 'beforeDecl')\n } else if (value) {\n value = value.replace(/\\S/g, '')\n }\n return value\n }\n\n rawBeforeDecl(root, node) {\n let value\n root.walkDecls(i => {\n if (typeof i.raws.before !== 'undefined') {\n value = i.raws.before\n if (value.includes('\\n')) {\n value = value.replace(/[^\\n]+$/, '')\n }\n return false\n }\n })\n if (typeof value === 'undefined') {\n value = this.raw(node, null, 'beforeRule')\n } else if (value) {\n value = value.replace(/\\S/g, '')\n }\n return value\n }\n\n rawBeforeRule(root) {\n let value\n root.walk(i => {\n if (i.nodes && (i.parent !== root || root.first !== i)) {\n if (typeof i.raws.before !== 'undefined') {\n value = i.raws.before\n if (value.includes('\\n')) {\n value = value.replace(/[^\\n]+$/, '')\n }\n return false\n }\n }\n })\n if (value) value = value.replace(/\\S/g, '')\n return value\n }\n\n rawBeforeClose(root) {\n let value\n root.walk(i => {\n if (i.nodes && i.nodes.length > 0) {\n if (typeof i.raws.after !== 'undefined') {\n value = i.raws.after\n if (value.includes('\\n')) {\n value = value.replace(/[^\\n]+$/, '')\n }\n return false\n }\n }\n })\n if (value) value = value.replace(/\\S/g, '')\n return value\n }\n\n rawBeforeOpen(root) {\n let value\n root.walk(i => {\n if (i.type !== 'decl') {\n value = i.raws.between\n if (typeof value !== 'undefined') return false\n }\n })\n return value\n }\n\n rawColon(root) {\n let value\n root.walkDecls(i => {\n if (typeof i.raws.between !== 'undefined') {\n value = i.raws.between.replace(/[^\\s:]/g, '')\n return false\n }\n })\n return value\n }\n\n beforeAfter(node, detect) {\n let value\n if (node.type === 'decl') {\n value = this.raw(node, null, 'beforeDecl')\n } else if (node.type === 'comment') {\n value = this.raw(node, null, 'beforeComment')\n } else if (detect === 'before') {\n value = this.raw(node, null, 'beforeRule')\n } else {\n value = this.raw(node, null, 'beforeClose')\n }\n\n let buf = node.parent\n let depth = 0\n while (buf && buf.type !== 'root') {\n depth += 1\n buf = buf.parent\n }\n\n if (value.includes('\\n')) {\n let indent = this.raw(node, null, 'indent')\n if (indent.length) {\n for (let step = 0; step < depth; step++) value += indent\n }\n }\n\n return value\n }\n\n rawValue(node, prop) {\n let value = node[prop]\n let raw = node.raws[prop]\n if (raw && raw.value === value) {\n return raw.raw\n }\n\n return value\n }\n}\n\nmodule.exports = Stringifier\nStringifier.default = Stringifier\n","'use strict'\n\nlet Stringifier = require('./stringifier')\n\nfunction stringify(node, builder) {\n let str = new Stringifier(builder)\n str.stringify(node)\n}\n\nmodule.exports = stringify\nstringify.default = stringify\n","'use strict'\n\nmodule.exports.isClean = Symbol('isClean')\n\nmodule.exports.my = Symbol('my')\n","'use strict'\n\nlet pico = require('picocolors')\n\nlet tokenizer = require('./tokenize')\n\nlet Input\n\nfunction registerInput(dependant) {\n Input = dependant\n}\n\nconst HIGHLIGHT_THEME = {\n 'brackets': pico.cyan,\n 'at-word': pico.cyan,\n 'comment': pico.gray,\n 'string': pico.green,\n 'class': pico.yellow,\n 'hash': pico.magenta,\n 'call': pico.cyan,\n '(': pico.cyan,\n ')': pico.cyan,\n '{': pico.yellow,\n '}': pico.yellow,\n '[': pico.yellow,\n ']': pico.yellow,\n ':': pico.yellow,\n ';': pico.yellow\n}\n\nfunction getTokenType([type, value], processor) {\n if (type === 'word') {\n if (value[0] === '.') {\n return 'class'\n }\n if (value[0] === '#') {\n return 'hash'\n }\n }\n\n if (!processor.endOfFile()) {\n let next = processor.nextToken()\n processor.back(next)\n if (next[0] === 'brackets' || next[0] === '(') return 'call'\n }\n\n return type\n}\n\nfunction terminalHighlight(css) {\n let processor = tokenizer(new Input(css), { ignoreErrors: true })\n let result = ''\n while (!processor.endOfFile()) {\n let token = processor.nextToken()\n let color = HIGHLIGHT_THEME[getTokenType(token, processor)]\n if (color) {\n result += token[1]\n .split(/\\r?\\n/)\n .map(i => color(i))\n .join('\\n')\n } else {\n result += token[1]\n }\n }\n return result\n}\n\nterminalHighlight.registerInput = registerInput\n\nmodule.exports = terminalHighlight\n","'use strict'\n\nconst SINGLE_QUOTE = \"'\".charCodeAt(0)\nconst DOUBLE_QUOTE = '\"'.charCodeAt(0)\nconst BACKSLASH = '\\\\'.charCodeAt(0)\nconst SLASH = '/'.charCodeAt(0)\nconst NEWLINE = '\\n'.charCodeAt(0)\nconst SPACE = ' '.charCodeAt(0)\nconst FEED = '\\f'.charCodeAt(0)\nconst TAB = '\\t'.charCodeAt(0)\nconst CR = '\\r'.charCodeAt(0)\nconst OPEN_SQUARE = '['.charCodeAt(0)\nconst CLOSE_SQUARE = ']'.charCodeAt(0)\nconst OPEN_PARENTHESES = '('.charCodeAt(0)\nconst CLOSE_PARENTHESES = ')'.charCodeAt(0)\nconst OPEN_CURLY = '{'.charCodeAt(0)\nconst CLOSE_CURLY = '}'.charCodeAt(0)\nconst SEMICOLON = ';'.charCodeAt(0)\nconst ASTERISK = '*'.charCodeAt(0)\nconst COLON = ':'.charCodeAt(0)\nconst AT = '@'.charCodeAt(0)\n\nconst RE_AT_END = /[\\t\\n\\f\\r \"#'()/;[\\\\\\]{}]/g\nconst RE_WORD_END = /[\\t\\n\\f\\r !\"#'():;@[\\\\\\]{}]|\\/(?=\\*)/g\nconst RE_BAD_BRACKET = /.[\\n\"'(/\\\\]/\nconst RE_HEX_ESCAPE = /[\\da-f]/i\n\nmodule.exports = function tokenizer(input, options = {}) {\n let css = input.css.valueOf()\n let ignore = options.ignoreErrors\n\n let code, next, quote, content, escape\n let escaped, escapePos, prev, n, currentToken\n\n let length = css.length\n let pos = 0\n let buffer = []\n let returned = []\n\n function position() {\n return pos\n }\n\n function unclosed(what) {\n throw input.error('Unclosed ' + what, pos)\n }\n\n function endOfFile() {\n return returned.length === 0 && pos >= length\n }\n\n function nextToken(opts) {\n if (returned.length) return returned.pop()\n if (pos >= length) return\n\n let ignoreUnclosed = opts ? opts.ignoreUnclosed : false\n\n code = css.charCodeAt(pos)\n\n switch (code) {\n case NEWLINE:\n case SPACE:\n case TAB:\n case CR:\n case FEED: {\n next = pos\n do {\n next += 1\n code = css.charCodeAt(next)\n } while (\n code === SPACE ||\n code === NEWLINE ||\n code === TAB ||\n code === CR ||\n code === FEED\n )\n\n currentToken = ['space', css.slice(pos, next)]\n pos = next - 1\n break\n }\n\n case OPEN_SQUARE:\n case CLOSE_SQUARE:\n case OPEN_CURLY:\n case CLOSE_CURLY:\n case COLON:\n case SEMICOLON:\n case CLOSE_PARENTHESES: {\n let controlChar = String.fromCharCode(code)\n currentToken = [controlChar, controlChar, pos]\n break\n }\n\n case OPEN_PARENTHESES: {\n prev = buffer.length ? buffer.pop()[1] : ''\n n = css.charCodeAt(pos + 1)\n if (\n prev === 'url' &&\n n !== SINGLE_QUOTE &&\n n !== DOUBLE_QUOTE &&\n n !== SPACE &&\n n !== NEWLINE &&\n n !== TAB &&\n n !== FEED &&\n n !== CR\n ) {\n next = pos\n do {\n escaped = false\n next = css.indexOf(')', next + 1)\n if (next === -1) {\n if (ignore || ignoreUnclosed) {\n next = pos\n break\n } else {\n unclosed('bracket')\n }\n }\n escapePos = next\n while (css.charCodeAt(escapePos - 1) === BACKSLASH) {\n escapePos -= 1\n escaped = !escaped\n }\n } while (escaped)\n\n currentToken = ['brackets', css.slice(pos, next + 1), pos, next]\n\n pos = next\n } else {\n next = css.indexOf(')', pos + 1)\n content = css.slice(pos, next + 1)\n\n if (next === -1 || RE_BAD_BRACKET.test(content)) {\n currentToken = ['(', '(', pos]\n } else {\n currentToken = ['brackets', content, pos, next]\n pos = next\n }\n }\n\n break\n }\n\n case SINGLE_QUOTE:\n case DOUBLE_QUOTE: {\n quote = code === SINGLE_QUOTE ? \"'\" : '\"'\n next = pos\n do {\n escaped = false\n next = css.indexOf(quote, next + 1)\n if (next === -1) {\n if (ignore || ignoreUnclosed) {\n next = pos + 1\n break\n } else {\n unclosed('string')\n }\n }\n escapePos = next\n while (css.charCodeAt(escapePos - 1) === BACKSLASH) {\n escapePos -= 1\n escaped = !escaped\n }\n } while (escaped)\n\n currentToken = ['string', css.slice(pos, next + 1), pos, next]\n pos = next\n break\n }\n\n case AT: {\n RE_AT_END.lastIndex = pos + 1\n RE_AT_END.test(css)\n if (RE_AT_END.lastIndex === 0) {\n next = css.length - 1\n } else {\n next = RE_AT_END.lastIndex - 2\n }\n\n currentToken = ['at-word', css.slice(pos, next + 1), pos, next]\n\n pos = next\n break\n }\n\n case BACKSLASH: {\n next = pos\n escape = true\n while (css.charCodeAt(next + 1) === BACKSLASH) {\n next += 1\n escape = !escape\n }\n code = css.charCodeAt(next + 1)\n if (\n escape &&\n code !== SLASH &&\n code !== SPACE &&\n code !== NEWLINE &&\n code !== TAB &&\n code !== CR &&\n code !== FEED\n ) {\n next += 1\n if (RE_HEX_ESCAPE.test(css.charAt(next))) {\n while (RE_HEX_ESCAPE.test(css.charAt(next + 1))) {\n next += 1\n }\n if (css.charCodeAt(next + 1) === SPACE) {\n next += 1\n }\n }\n }\n\n currentToken = ['word', css.slice(pos, next + 1), pos, next]\n\n pos = next\n break\n }\n\n default: {\n if (code === SLASH && css.charCodeAt(pos + 1) === ASTERISK) {\n next = css.indexOf('*/', pos + 2) + 1\n if (next === 0) {\n if (ignore || ignoreUnclosed) {\n next = css.length\n } else {\n unclosed('comment')\n }\n }\n\n currentToken = ['comment', css.slice(pos, next + 1), pos, next]\n pos = next\n } else {\n RE_WORD_END.lastIndex = pos + 1\n RE_WORD_END.test(css)\n if (RE_WORD_END.lastIndex === 0) {\n next = css.length - 1\n } else {\n next = RE_WORD_END.lastIndex - 2\n }\n\n currentToken = ['word', css.slice(pos, next + 1), pos, next]\n buffer.push(currentToken)\n pos = next\n }\n\n break\n }\n }\n\n pos++\n return currentToken\n }\n\n function back(token) {\n returned.push(token)\n }\n\n return {\n back,\n nextToken,\n endOfFile,\n position\n }\n}\n","/* eslint-disable no-console */\n'use strict'\n\nlet printed = {}\n\nmodule.exports = function warnOnce(message) {\n if (printed[message]) return\n printed[message] = true\n\n if (typeof console !== 'undefined' && console.warn) {\n console.warn(message)\n }\n}\n","'use strict'\n\nclass Warning {\n constructor(text, opts = {}) {\n this.type = 'warning'\n this.text = text\n\n if (opts.node && opts.node.source) {\n let range = opts.node.rangeBy(opts)\n this.line = range.start.line\n this.column = range.start.column\n this.endLine = range.end.line\n this.endColumn = range.end.column\n }\n\n for (let opt in opts) this[opt] = opts[opt]\n }\n\n toString() {\n if (this.node) {\n return this.node.error(this.text, {\n plugin: this.plugin,\n index: this.index,\n word: this.word\n }).message\n }\n\n if (this.plugin) {\n return this.plugin + ': ' + this.text\n }\n\n return this.text\n }\n}\n\nmodule.exports = Warning\nWarning.default = Warning\n","\"use strict\";\n\nconst loader = require(\"./index\");\n\nmodule.exports = loader.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _path = _interopRequireDefault(require(\"path\"));\n\nvar _utils = require(\"./utils\");\n\nvar _options = _interopRequireDefault(require(\"./options.json\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst loaderAPI = () => {};\n\nloaderAPI.pitch = function loader(request) {\n const options = this.getOptions(_options.default);\n const injectType = options.injectType || \"styleTag\";\n const esModule = typeof options.esModule !== \"undefined\" ? options.esModule : true;\n const runtimeOptions = {};\n\n if (options.attributes) {\n runtimeOptions.attributes = options.attributes;\n }\n\n if (options.base) {\n runtimeOptions.base = options.base;\n }\n\n const insertType = typeof options.insert === \"function\" ? \"function\" : options.insert && _path.default.isAbsolute(options.insert) ? \"module-path\" : \"selector\";\n const styleTagTransformType = typeof options.styleTagTransform === \"function\" ? \"function\" : options.styleTagTransform && _path.default.isAbsolute(options.styleTagTransform) ? \"module-path\" : \"default\";\n\n switch (injectType) {\n case \"linkTag\":\n {\n const hmrCode = this.hot ? (0, _utils.getLinkHmrCode)(esModule, this, request) : \"\";\n return `\n ${(0, _utils.getImportLinkAPICode)(esModule, this)}\n ${(0, _utils.getImportInsertBySelectorCode)(esModule, this, insertType, options)}\n ${(0, _utils.getImportLinkContentCode)(esModule, this, request)}\n ${esModule ? \"\" : `content = content.__esModule ? content.default : content;`}\n\nvar options = ${JSON.stringify(runtimeOptions)};\n\n${(0, _utils.getInsertOptionCode)(insertType, options)}\n\nvar update = API(content, options);\n\n${hmrCode}\n\n${esModule ? \"export default {}\" : \"\"}`;\n }\n\n case \"lazyStyleTag\":\n case \"lazyAutoStyleTag\":\n case \"lazySingletonStyleTag\":\n {\n const isSingleton = injectType === \"lazySingletonStyleTag\";\n const isAuto = injectType === \"lazyAutoStyleTag\";\n const hmrCode = this.hot ? (0, _utils.getStyleHmrCode)(esModule, this, request, true) : \"\";\n return `\n var exported = {};\n\n ${(0, _utils.getImportStyleAPICode)(esModule, this)}\n ${(0, _utils.getImportStyleDomAPICode)(esModule, this, isSingleton, isAuto)}\n ${(0, _utils.getImportInsertBySelectorCode)(esModule, this, insertType, options)}\n ${(0, _utils.getSetAttributesCode)(esModule, this, options)}\n ${(0, _utils.getImportInsertStyleElementCode)(esModule, this)}\n ${(0, _utils.getStyleTagTransformFnCode)(esModule, this, options, isSingleton, styleTagTransformType)}\n ${(0, _utils.getImportStyleContentCode)(esModule, this, request)}\n ${isAuto ? (0, _utils.getImportIsOldIECode)(esModule, this) : \"\"}\n ${esModule ? `if (content && content.locals) {\n exported.locals = content.locals;\n }\n ` : `content = content.__esModule ? content.default : content;\n\n exported.locals = content.locals || {};`}\n\nvar refs = 0;\nvar update;\nvar options = ${JSON.stringify(runtimeOptions)};\n\n${(0, _utils.getStyleTagTransformFn)(options, isSingleton)};\noptions.setAttributes = setAttributes;\n${(0, _utils.getInsertOptionCode)(insertType, options)}\noptions.domAPI = ${(0, _utils.getdomAPI)(isAuto)};\noptions.insertStyleElement = insertStyleElement;\n\nexported.use = function(insertOptions) {\n options.options = insertOptions || {};\n\n if (!(refs++)) {\n update = API(content, options);\n }\n\n return exported;\n};\nexported.unuse = function() {\n if (refs > 0 && !--refs) {\n update();\n update = null;\n }\n};\n\n${hmrCode}\n\n${(0, _utils.getExportLazyStyleCode)(esModule, this, request)}\n`;\n }\n\n case \"styleTag\":\n case \"autoStyleTag\":\n case \"singletonStyleTag\":\n default:\n {\n const isSingleton = injectType === \"singletonStyleTag\";\n const isAuto = injectType === \"autoStyleTag\";\n const hmrCode = this.hot ? (0, _utils.getStyleHmrCode)(esModule, this, request, false) : \"\";\n return `\n ${(0, _utils.getImportStyleAPICode)(esModule, this)}\n ${(0, _utils.getImportStyleDomAPICode)(esModule, this, isSingleton, isAuto)}\n ${(0, _utils.getImportInsertBySelectorCode)(esModule, this, insertType, options)}\n ${(0, _utils.getSetAttributesCode)(esModule, this, options)}\n ${(0, _utils.getImportInsertStyleElementCode)(esModule, this)}\n ${(0, _utils.getStyleTagTransformFnCode)(esModule, this, options, isSingleton, styleTagTransformType)}\n ${(0, _utils.getImportStyleContentCode)(esModule, this, request)}\n ${isAuto ? (0, _utils.getImportIsOldIECode)(esModule, this) : \"\"}\n ${esModule ? \"\" : `content = content.__esModule ? content.default : content;`}\n\nvar options = ${JSON.stringify(runtimeOptions)};\n\n${(0, _utils.getStyleTagTransformFn)(options, isSingleton)};\noptions.setAttributes = setAttributes;\n${(0, _utils.getInsertOptionCode)(insertType, options)}\noptions.domAPI = ${(0, _utils.getdomAPI)(isAuto)};\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n${hmrCode}\n\n${(0, _utils.getExportStyleCode)(esModule, this, request)}\n`;\n }\n }\n};\n\nvar _default = loaderAPI;\nexports.default = _default;","\"use strict\";\n\nfunction isEqualLocals(a, b, isNamedExport) {\n if (!a && b || a && !b) {\n return false;\n }\n\n var p;\n\n for (p in a) {\n if (isNamedExport && p === \"default\") {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n if (a[p] !== b[p]) {\n return false;\n }\n }\n\n for (p in b) {\n if (isNamedExport && p === \"default\") {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n if (!a[p]) {\n return false;\n }\n }\n\n return true;\n}\n\nmodule.exports = isEqualLocals;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getExportLazyStyleCode = getExportLazyStyleCode;\nexports.getExportStyleCode = getExportStyleCode;\nexports.getImportInsertBySelectorCode = getImportInsertBySelectorCode;\nexports.getImportInsertStyleElementCode = getImportInsertStyleElementCode;\nexports.getImportIsOldIECode = getImportIsOldIECode;\nexports.getImportLinkAPICode = getImportLinkAPICode;\nexports.getImportLinkContentCode = getImportLinkContentCode;\nexports.getImportStyleAPICode = getImportStyleAPICode;\nexports.getImportStyleContentCode = getImportStyleContentCode;\nexports.getImportStyleDomAPICode = getImportStyleDomAPICode;\nexports.getInsertOptionCode = getInsertOptionCode;\nexports.getLinkHmrCode = getLinkHmrCode;\nexports.getSetAttributesCode = getSetAttributesCode;\nexports.getStyleHmrCode = getStyleHmrCode;\nexports.getStyleTagTransformFn = getStyleTagTransformFn;\nexports.getStyleTagTransformFnCode = getStyleTagTransformFnCode;\nexports.getdomAPI = getdomAPI;\nexports.stringifyRequest = stringifyRequest;\n\nvar _path = _interopRequireDefault(require(\"path\"));\n\nvar _isEqualLocals = _interopRequireDefault(require(\"./runtime/isEqualLocals\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst matchRelativePath = /^\\.\\.?[/\\\\]/;\n\nfunction isAbsolutePath(str) {\n return _path.default.posix.isAbsolute(str) || _path.default.win32.isAbsolute(str);\n}\n\nfunction isRelativePath(str) {\n return matchRelativePath.test(str);\n} // TODO simplify for the next major release\n\n\nfunction stringifyRequest(loaderContext, request) {\n if (typeof loaderContext.utils !== \"undefined\" && typeof loaderContext.utils.contextify === \"function\") {\n return JSON.stringify(loaderContext.utils.contextify(loaderContext.context, request));\n }\n\n const splitted = request.split(\"!\");\n const {\n context\n } = loaderContext;\n return JSON.stringify(splitted.map(part => {\n // First, separate singlePath from query, because the query might contain paths again\n const splittedPart = part.match(/^(.*?)(\\?.*)/);\n const query = splittedPart ? splittedPart[2] : \"\";\n let singlePath = splittedPart ? splittedPart[1] : part;\n\n if (isAbsolutePath(singlePath) && context) {\n singlePath = _path.default.relative(context, singlePath);\n\n if (isAbsolutePath(singlePath)) {\n // If singlePath still matches an absolute path, singlePath was on a different drive than context.\n // In this case, we leave the path platform-specific without replacing any separators.\n // @see https://github.com/webpack/loader-utils/pull/14\n return singlePath + query;\n }\n\n if (isRelativePath(singlePath) === false) {\n // Ensure that the relative path starts at least with ./ otherwise it would be a request into the modules directory (like node_modules).\n singlePath = `./${singlePath}`;\n }\n }\n\n return singlePath.replace(/\\\\/g, \"/\") + query;\n }).join(\"!\"));\n}\n\nfunction getImportLinkAPICode(esModule, loaderContext) {\n const modulePath = stringifyRequest(loaderContext, `!${_path.default.join(__dirname, \"runtime/injectStylesIntoLinkTag.js\")}`);\n return esModule ? `import API from ${modulePath};` : `var API = require(${modulePath});`;\n}\n\nfunction getImportLinkContentCode(esModule, loaderContext, request) {\n const modulePath = stringifyRequest(loaderContext, `!!${request}`);\n return esModule ? `import content from ${modulePath};` : `var content = require(${modulePath});`;\n}\n\nfunction getImportStyleAPICode(esModule, loaderContext) {\n const modulePath = stringifyRequest(loaderContext, `!${_path.default.join(__dirname, \"runtime/injectStylesIntoStyleTag.js\")}`);\n return esModule ? `import API from ${modulePath};` : `var API = require(${modulePath});`;\n}\n\nfunction getImportStyleDomAPICode(esModule, loaderContext, isSingleton, isAuto) {\n const styleAPI = stringifyRequest(loaderContext, `!${_path.default.join(__dirname, \"runtime/styleDomAPI.js\")}`);\n const singletonAPI = stringifyRequest(loaderContext, `!${_path.default.join(__dirname, \"runtime/singletonStyleDomAPI.js\")}`);\n\n if (isAuto) {\n return esModule ? `import domAPI from ${styleAPI};\n import domAPISingleton from ${singletonAPI};` : `var domAPI = require(${styleAPI});\n var domAPISingleton = require(${singletonAPI});`;\n }\n\n return esModule ? `import domAPI from ${isSingleton ? singletonAPI : styleAPI};` : `var domAPI = require(${isSingleton ? singletonAPI : styleAPI});`;\n}\n\nfunction getImportStyleContentCode(esModule, loaderContext, request) {\n const modulePath = stringifyRequest(loaderContext, `!!${request}`);\n return esModule ? `import content, * as namedExport from ${modulePath};` : `var content = require(${modulePath});`;\n}\n\nfunction getImportInsertBySelectorCode(esModule, loaderContext, insertType, options) {\n if (insertType === \"selector\") {\n const modulePath = stringifyRequest(loaderContext, `!${_path.default.join(__dirname, \"runtime/insertBySelector.js\")}`);\n return esModule ? `import insertFn from ${modulePath};` : `var insertFn = require(${modulePath});`;\n }\n\n if (insertType === \"module-path\") {\n const modulePath = stringifyRequest(loaderContext, `${options.insert}`);\n loaderContext.addBuildDependency(options.insert);\n return esModule ? `import insertFn from ${modulePath};` : `var insertFn = require(${modulePath});`;\n }\n\n return \"\";\n}\n\nfunction getInsertOptionCode(insertType, options) {\n if (insertType === \"selector\") {\n const insert = options.insert ? JSON.stringify(options.insert) : '\"head\"';\n return `\n options.insert = insertFn.bind(null, ${insert});\n `;\n }\n\n if (insertType === \"module-path\") {\n return `options.insert = insertFn;`;\n } // Todo remove \"function\" type for insert option in next major release, because code duplication occurs. Leave require.resolve()\n\n\n return `options.insert = ${options.insert.toString()};`;\n}\n\nfunction getImportInsertStyleElementCode(esModule, loaderContext) {\n const modulePath = stringifyRequest(loaderContext, `!${_path.default.join(__dirname, \"runtime/insertStyleElement.js\")}`);\n return esModule ? `import insertStyleElement from ${modulePath};` : `var insertStyleElement = require(${modulePath});`;\n}\n\nfunction getStyleHmrCode(esModule, loaderContext, request, lazy) {\n const modulePath = stringifyRequest(loaderContext, `!!${request}`);\n return `\nif (module.hot) {\n if (!content.locals || module.hot.invalidate) {\n var isEqualLocals = ${_isEqualLocals.default.toString()};\n var isNamedExport = ${esModule ? \"!content.locals\" : false};\n var oldLocals = isNamedExport ? namedExport : content.locals;\n\n module.hot.accept(\n ${modulePath},\n function () {\n ${esModule ? `if (!isEqualLocals(oldLocals, isNamedExport ? namedExport : content.locals, isNamedExport)) {\n module.hot.invalidate();\n\n return;\n }\n\n oldLocals = isNamedExport ? namedExport : content.locals;\n\n ${lazy ? `if (update && refs > 0) {\n update(content);\n }` : `update(content);`}` : `content = require(${modulePath});\n\n content = content.__esModule ? content.default : content;\n\n ${lazy ? \"\" : `if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }`}\n\n if (!isEqualLocals(oldLocals, content.locals)) {\n module.hot.invalidate();\n\n return;\n }\n\n oldLocals = content.locals;\n\n ${lazy ? `if (update && refs > 0) {\n update(content);\n }` : `update(content);`}`}\n }\n )\n }\n\n module.hot.dispose(function() {\n ${lazy ? `if (update) {\n update();\n }` : `update();`}\n });\n}\n`;\n}\n\nfunction getLinkHmrCode(esModule, loaderContext, request) {\n const modulePath = stringifyRequest(loaderContext, `!!${request}`);\n return `\nif (module.hot) {\n module.hot.accept(\n ${modulePath},\n function() {\n ${esModule ? \"update(content);\" : `content = require(${modulePath});\n\n content = content.__esModule ? content.default : content;\n\n update(content);`}\n }\n );\n\n module.hot.dispose(function() {\n update();\n });\n}`;\n}\n\nfunction getdomAPI(isAuto) {\n return isAuto ? \"isOldIE() ? domAPISingleton : domAPI\" : \"domAPI\";\n}\n\nfunction getImportIsOldIECode(esModule, loaderContext) {\n const modulePath = stringifyRequest(loaderContext, `!${_path.default.join(__dirname, \"runtime/isOldIE.js\")}`);\n return esModule ? `import isOldIE from ${modulePath};` : `var isOldIE = require(${modulePath});`;\n}\n\nfunction getStyleTagTransformFnCode(esModule, loaderContext, options, isSingleton, styleTagTransformType) {\n if (isSingleton) {\n return \"\";\n }\n\n if (styleTagTransformType === \"default\") {\n const modulePath = stringifyRequest(loaderContext, `!${_path.default.join(__dirname, \"runtime/styleTagTransform.js\")}`);\n return esModule ? `import styleTagTransformFn from ${modulePath};` : `var styleTagTransformFn = require(${modulePath});`;\n }\n\n if (styleTagTransformType === \"module-path\") {\n const modulePath = stringifyRequest(loaderContext, `${options.styleTagTransform}`);\n loaderContext.addBuildDependency(options.styleTagTransform);\n return esModule ? `import styleTagTransformFn from ${modulePath};` : `var styleTagTransformFn = require(${modulePath});`;\n }\n\n return \"\";\n}\n\nfunction getStyleTagTransformFn(options, isSingleton) {\n // Todo remove \"function\" type for styleTagTransform option in next major release, because code duplication occurs. Leave require.resolve()\n return isSingleton ? \"\" : typeof options.styleTagTransform === \"function\" ? `options.styleTagTransform = ${options.styleTagTransform.toString()}` : `options.styleTagTransform = styleTagTransformFn`;\n}\n\nfunction getExportStyleCode(esModule, loaderContext, request) {\n const modulePath = stringifyRequest(loaderContext, `!!${request}`);\n return esModule ? `export * from ${modulePath};\n export default content && content.locals ? content.locals : undefined;` : \"module.exports = content && content.locals || {};\";\n}\n\nfunction getExportLazyStyleCode(esModule, loaderContext, request) {\n const modulePath = stringifyRequest(loaderContext, `!!${request}`);\n return esModule ? `export * from ${modulePath};\n export default exported;` : \"module.exports = exported;\";\n}\n\nfunction getSetAttributesCode(esModule, loaderContext, options) {\n let modulePath;\n\n if (typeof options.attributes !== \"undefined\") {\n modulePath = options.attributes.nonce !== \"undefined\" ? stringifyRequest(loaderContext, `!${_path.default.join(__dirname, \"runtime/setAttributesWithAttributesAndNonce.js\")}`) : stringifyRequest(loaderContext, `!${_path.default.join(__dirname, \"runtime/setAttributesWithAttributes.js\")}`);\n } else {\n modulePath = stringifyRequest(loaderContext, `!${_path.default.join(__dirname, \"runtime/setAttributesWithoutAttributes.js\")}`);\n }\n\n return esModule ? `import setAttributes from ${modulePath};` : `var setAttributes = require(${modulePath});`;\n} // eslint-disable-next-line import/prefer-default-export","module.exports[\"cssLoader\"] = function() { return require(\"css-loader\"); };\nmodule.exports[\"styleLoader\"] = function() { return require(\"style-loader\"); };\nmodule.exports[\"lightningcssLoader\"] = function() { return require(\"lightningcss-loader\"); };","module.exports = require(\"../../src/ModuleFilenameHelpers.js\");","module.exports = require(\"../../src/webpack-sources\");","module.exports = require(\"@swissquote/crafty-commons/packages/browserslist.js\");","module.exports = require(\"@swissquote/crafty-commons/packages/picocolors.js\");","module.exports = require(\"@swissquote/crafty-commons/packages/semver.js\");","module.exports = require(\"@swissquote/crafty-commons/packages/source-map-js.js\");","module.exports = require(\"@swissquote/stylelint-config-swissquote/packages/postcss-selector-parser.js\");","module.exports = require(\"@swissquote/stylelint-config-swissquote/packages/postcss-value-parser.js\");","module.exports = require(\"buffer\");","module.exports = require(\"fs\");","module.exports = require(\"lightningcss\");","module.exports = require(\"path\");","module.exports = require(\"url\");","let urlAlphabet =\n 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict'\nlet customAlphabet = (alphabet, defaultSize = 21) => {\n return (size = defaultSize) => {\n let id = ''\n let i = size\n while (i--) {\n id += alphabet[(Math.random() * alphabet.length) | 0]\n }\n return id\n }\n}\nlet nanoid = (size = 21) => {\n let id = ''\n let i = size\n while (i--) {\n id += urlAlphabet[(Math.random() * 64) | 0]\n }\n return id\n}\nmodule.exports = { nanoid, customAlphabet }\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\tvar threw = true;\n\ttry {\n\t\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\t\tthrew = false;\n\t} finally {\n\t\tif(threw) delete __webpack_module_cache__[moduleId];\n\t}\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","\nif (typeof __webpack_require__ !== 'undefined') __webpack_require__.ab = __dirname + \"/\";","","// startup\n// Load entry module and return exports\n// This entry module used 'module' so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(5606);\n",""],"names":[],"sourceRoot":""}