diff --git a/.github/workflows/npm-publish.yml b/.github/workflows/npm-publish.yml index b0ab118..253e2f5 100644 --- a/.github/workflows/npm-publish.yml +++ b/.github/workflows/npm-publish.yml @@ -4,30 +4,21 @@ name: Node.js Package on: + workflow_dispatch: release: types: [created] jobs: - build: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-node@v4 - with: - node-version: 20 - - run: npm ci - - run: npm test - publish-npm: - needs: build runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: - node-version: 20 + node-version: '>=18' registry-url: https://registry.npmjs.org/ - - run: npm ci + - run: npm install + - run: npm run ci - run: npm publish env: NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}} diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 814df99..221850e 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -1,21 +1,17 @@ name: ci -on: [push, pull_request] +on: + push: + branches: ['*'] + pull_request: jobs: test: - strategy: - fail-fast: true - matrix: - os: [ubuntu-latest] - node: ['14'] - - runs-on: ${{ matrix.os }} + runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 - - uses: actions/setup-node@v1 + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 with: - node-version: ${{ matrix.node }} + node-version: '>=18' - run: npm install - - run: npm run build-test - - run: npm test + - run: npm run ci diff --git a/.gitignore b/.gitignore index f6c7f05..7a12751 100644 --- a/.gitignore +++ b/.gitignore @@ -20,4 +20,4 @@ Desktop.ini # Mac crap .DS_Store -test/cases +test/cases/ diff --git a/build-test-cases.mjs b/build-test-cases.mjs index 8e53d4d..986963e 100644 --- a/build-test-cases.mjs +++ b/build-test-cases.mjs @@ -1,8 +1,13 @@ -import fetch from "make-fetch-happen"; -import decompress from "decompress"; +import fs from 'fs'; +import decompress from 'decompress'; -const r = await fetch("https://github.com/stylus/stylus/archive/dev.zip"); -const b = await r.buffer(); +const DIR = "test/cases"; +const URL = "https://github.com/stylus/stylus/archive/dev.zip"; + +fs.rmSync(DIR, {recursive: true, force: true}); +console.log(`Fetching tests from ${URL}...`); + +const b = Buffer.from(await (await fetch(URL)).arrayBuffer()); const files = await decompress(b, "test/cases", { filter: file => /test[\\/]cases[\\/][^\\/]+$/.test(file.path), map: file => { @@ -10,3 +15,4 @@ const files = await decompress(b, "test/cases", { return file; } }); +console.log("Tests created."); diff --git a/dist/stylus-renderer.min.js b/dist/stylus-renderer.min.js index 2461c27..2de1a32 100644 --- a/dist/stylus-renderer.min.js +++ b/dist/stylus-renderer.min.js @@ -1,4 +1,4 @@ -var StylusRenderer=function(){"use strict";function assertPath(e){if("string"!=typeof e)throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}function normalizeStringPosix(e,t){for(var n,i="",r=0,a=-1,o=0,h=0;h<=e.length;++h){if(h2){var l=i.lastIndexOf("/");if(l!==i.length-1){-1===l?(i="",r=0):r=(i=i.slice(0,l)).length-1-i.lastIndexOf("/"),a=h,o=0;continue}}else if(2===i.length||1===i.length){i="",r=0,a=h,o=0;continue}t&&(i.length>0?i+="/..":i="..",r=2)}else i.length>0?i+="/"+e.slice(a+1,h):i=e.slice(a+1,h),r=h-a-1;a=h,o=0}else 46===n&&-1!==o?++o:o=-1}return i}var e={resolve:function resolve(){for(var e,t="",n=!1,i=arguments.length-1;i>=-1&&!n;i--){var r;i>=0?r=arguments[i]:(void 0===e&&(e=process.cwd()),r=e),assertPath(r),0!==r.length&&(t=r+"/"+t,n=47===r.charCodeAt(0))}return t=normalizeStringPosix(t,!n),n?t.length>0?"/"+t:"/":t.length>0?t:"."},normalize:function normalize(e){if(assertPath(e),0===e.length)return".";var t=47===e.charCodeAt(0),n=47===e.charCodeAt(e.length-1);return 0!==(e=normalizeStringPosix(e,!t)).length||t||(e="."),e.length>0&&n&&(e+="/"),t?"/"+e:e},isAbsolute:function isAbsolute(e){return assertPath(e),e.length>0&&47===e.charCodeAt(0)},join:function join(){if(0===arguments.length)return".";for(var t,n=0;n0&&(void 0===t?t=i:t+="/"+i)}return void 0===t?".":e.normalize(t)},relative:function relative(t,n){if(assertPath(t),assertPath(n),t===n)return"";if((t=e.resolve(t))===(n=e.resolve(n)))return"";for(var i=1;il){if(47===n.charCodeAt(o+u))return n.slice(o+u+1);if(0===u)return n.slice(o+u)}else a>l&&(47===t.charCodeAt(i+u)?c=u:0===u&&(c=0));break}var f=t.charCodeAt(i+u);if(f!==n.charCodeAt(o+u))break;47===f&&(c=u)}var d="";for(u=i+c+1;u<=r;++u)u!==r&&47!==t.charCodeAt(u)||(0===d.length?d+="..":d+="/..");return d.length>0?d+n.slice(o+c):(o+=c,47===n.charCodeAt(o)&&++o,n.slice(o))},_makeLong:function _makeLong(e){return e},dirname:function dirname(e){if(assertPath(e),0===e.length)return".";for(var t=e.charCodeAt(0),n=47===t,i=-1,r=!0,a=e.length-1;a>=1;--a)if(47===(t=e.charCodeAt(a))){if(!r){i=a;break}}else r=!1;return-1===i?n?"/":".":n&&1===i?"//":e.slice(0,i)},basename:function basename(e,t){if(void 0!==t&&"string"!=typeof t)throw new TypeError('"ext" argument must be a string');assertPath(e);var n,i=0,r=-1,a=!0;if(void 0!==t&&t.length>0&&t.length<=e.length){if(t.length===e.length&&t===e)return"";var o=t.length-1,h=-1;for(n=e.length-1;n>=0;--n){var l=e.charCodeAt(n);if(47===l){if(!a){i=n+1;break}}else-1===h&&(a=!1,h=n+1),o>=0&&(l===t.charCodeAt(o)?-1==--o&&(r=n):(o=-1,r=h))}return i===r?r=h:-1===r&&(r=e.length),e.slice(i,r)}for(n=e.length-1;n>=0;--n)if(47===e.charCodeAt(n)){if(!a){i=n+1;break}}else-1===r&&(a=!1,r=n+1);return-1===r?"":e.slice(i,r)},extname:function extname(e){assertPath(e);for(var t=-1,n=0,i=-1,r=!0,a=0,o=e.length-1;o>=0;--o){var h=e.charCodeAt(o);if(47!==h)-1===i&&(r=!1,i=o+1),46===h?-1===t?t=o:1!==a&&(a=1):-1!==t&&(a=-1);else if(!r){n=o+1;break}}return-1===t||-1===i||0===a||1===a&&t===i-1&&t===n+1?"":e.slice(t,i)},format:function format(e){if(null===e||"object"!=typeof e)throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof e);return function _format(e,t){var n=t.dir||t.root,i=t.base||(t.name||"")+(t.ext||"");return n?n===t.root?n+i:n+e+i:i}("/",e)},parse:function parse(e){assertPath(e);var t={root:"",dir:"",base:"",ext:"",name:""};if(0===e.length)return t;var n,i=e.charCodeAt(0),r=47===i;r?(t.root="/",n=1):n=0;for(var a=-1,o=0,h=-1,l=!0,c=e.length-1,u=0;c>=n;--c)if(47!==(i=e.charCodeAt(c)))-1===h&&(l=!1,h=c+1),46===i?-1===a?a=c:1!==u&&(u=1):-1!==a&&(u=-1);else if(!l){o=c+1;break}return-1===a||-1===h||0===u||1===u&&a===h-1&&a===o+1?-1!==h&&(t.base=t.name=0===o&&r?e.slice(1,h):e.slice(o,h)):(0===o&&r?(t.name=e.slice(1,a),t.base=e.slice(1,h)):(t.name=e.slice(o,a),t.base=e.slice(o,h)),t.ext=e.slice(a,h)),o>0?t.dir=e.slice(0,o-1):r&&(t.dir="/"),t},sep:"/",delimiter:":",win32:null,posix:null};let t; +var StylusRenderer=function(){"use strict";function assertPath(e){if("string"!=typeof e)throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}function normalizeStringPosix(e,t){for(var n,i="",r=0,a=-1,o=0,h=0;h<=e.length;++h){if(h2){var l=i.lastIndexOf("/");if(l!==i.length-1){-1===l?(i="",r=0):r=(i=i.slice(0,l)).length-1-i.lastIndexOf("/"),a=h,o=0;continue}}else if(2===i.length||1===i.length){i="",r=0,a=h,o=0;continue}t&&(i.length>0?i+="/..":i="..",r=2)}else i.length>0?i+="/"+e.slice(a+1,h):i=e.slice(a+1,h),r=h-a-1;a=h,o=0}else 46===n&&-1!==o?++o:o=-1}return i}function _format(e,t){var n=t.dir||t.root,i=t.base||(t.name||"")+(t.ext||"");return n?n===t.root?n+i:n+e+i:i}var e={resolve:function resolve(){for(var e,t="",n=!1,i=arguments.length-1;i>=-1&&!n;i--){var r;i>=0?r=arguments[i]:(void 0===e&&(e=process.cwd()),r=e),assertPath(r),0!==r.length&&(t=r+"/"+t,n=47===r.charCodeAt(0))}return t=normalizeStringPosix(t,!n),n?t.length>0?"/"+t:"/":t.length>0?t:"."},normalize:function normalize(e){if(assertPath(e),0===e.length)return".";var t=47===e.charCodeAt(0),n=47===e.charCodeAt(e.length-1);return 0!==(e=normalizeStringPosix(e,!t)).length||t||(e="."),e.length>0&&n&&(e+="/"),t?"/"+e:e},isAbsolute:function isAbsolute(e){return assertPath(e),e.length>0&&47===e.charCodeAt(0)},join:function join(){if(0===arguments.length)return".";for(var t,n=0;n0&&(void 0===t?t=i:t+="/"+i)}return void 0===t?".":e.normalize(t)},relative:function relative(t,n){if(assertPath(t),assertPath(n),t===n)return"";if((t=e.resolve(t))===(n=e.resolve(n)))return"";for(var i=1;il){if(47===n.charCodeAt(o+u))return n.slice(o+u+1);if(0===u)return n.slice(o+u)}else a>l&&(47===t.charCodeAt(i+u)?c=u:0===u&&(c=0));break}var f=t.charCodeAt(i+u);if(f!==n.charCodeAt(o+u))break;47===f&&(c=u)}var m="";for(u=i+c+1;u<=r;++u)u!==r&&47!==t.charCodeAt(u)||(0===m.length?m+="..":m+="/..");return m.length>0?m+n.slice(o+c):(o+=c,47===n.charCodeAt(o)&&++o,n.slice(o))},_makeLong:function _makeLong(e){return e},dirname:function dirname(e){if(assertPath(e),0===e.length)return".";for(var t=e.charCodeAt(0),n=47===t,i=-1,r=!0,a=e.length-1;a>=1;--a)if(47===(t=e.charCodeAt(a))){if(!r){i=a;break}}else r=!1;return-1===i?n?"/":".":n&&1===i?"//":e.slice(0,i)},basename:function basename(e,t){if(void 0!==t&&"string"!=typeof t)throw new TypeError('"ext" argument must be a string');assertPath(e);var n,i=0,r=-1,a=!0;if(void 0!==t&&t.length>0&&t.length<=e.length){if(t.length===e.length&&t===e)return"";var o=t.length-1,h=-1;for(n=e.length-1;n>=0;--n){var l=e.charCodeAt(n);if(47===l){if(!a){i=n+1;break}}else-1===h&&(a=!1,h=n+1),o>=0&&(l===t.charCodeAt(o)?-1==--o&&(r=n):(o=-1,r=h))}return i===r?r=h:-1===r&&(r=e.length),e.slice(i,r)}for(n=e.length-1;n>=0;--n)if(47===e.charCodeAt(n)){if(!a){i=n+1;break}}else-1===r&&(a=!1,r=n+1);return-1===r?"":e.slice(i,r)},extname:function extname(e){assertPath(e);for(var t=-1,n=0,i=-1,r=!0,a=0,o=e.length-1;o>=0;--o){var h=e.charCodeAt(o);if(47!==h)-1===i&&(r=!1,i=o+1),46===h?-1===t?t=o:1!==a&&(a=1):-1!==t&&(a=-1);else if(!r){n=o+1;break}}return-1===t||-1===i||0===a||1===a&&t===i-1&&t===n+1?"":e.slice(t,i)},format:function format(e){if(null===e||"object"!=typeof e)throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof e);return _format("/",e)},parse:function parse(e){assertPath(e);var t={root:"",dir:"",base:"",ext:"",name:""};if(0===e.length)return t;var n,i=e.charCodeAt(0),r=47===i;r?(t.root="/",n=1):n=0;for(var a=-1,o=0,h=-1,l=!0,c=e.length-1,u=0;c>=n;--c)if(47!==(i=e.charCodeAt(c)))-1===h&&(l=!1,h=c+1),46===i?-1===a?a=c:1!==u&&(u=1):-1!==a&&(u=-1);else if(!l){o=c+1;break}return-1===a||-1===h||0===u||1===u&&a===h-1&&a===o+1?-1!==h&&(t.base=t.name=0===o&&r?e.slice(1,h):e.slice(o,h)):(0===o&&r?(t.name=e.slice(1,a),t.base=e.slice(1,h)):(t.name=e.slice(o,a),t.base=e.slice(o,h)),t.ext=e.slice(a,h)),o>0?t.dir=e.slice(0,o-1):r&&(t.dir="/"),t},sep:"/",delimiter:":",win32:null,posix:null};let t; /*! * Stylus - Token * Copyright (c) Automattic @@ -19,25 +19,25 @@ var StylusRenderer=function(){"use strict";function assertPath(e){if("string"!=t * Copyright (c) Automattic * MIT Licensed */ -var h=[">","+","~"],l=class SelectorParser{constructor(e,t,n){this.str=e,this.stack=t||[],this.parts=n||[],this.pos=0,this.level=2,this.nested=!0,this.ignore=!1}skip(e){this.str=this.str.substr(e),this.pos+=e}skipSpaces(){for(;" "==this.str[0];)this.skip(1)}advance(){return this.root()||this.relative()||this.initial()||this.escaped()||this.parent()||this.partial()||this.char()}root(){this.pos||"/"!=this.str[0]||"deep"==this.str.slice(1,5)||(this.nested=!1,this.skip(1))}relative(e){if((!this.pos||e)&&"../"==this.str.slice(0,3)){for(this.nested=!1,this.skip(3);this.relative(!0);)this.level++;if(!this.raw){var t=this.stack[this.stack.length-this.level];if(t)return t;this.ignore=!0}}}initial(){if(!this.pos&&"~"==this.str[0]&&"/"==this.str[1])return this.nested=!1,this.skip(2),this.stack[0]}escaped(){if("\\"==this.str[0]){var e=this.str[1];if("&"==e||"^"==e)return this.skip(2),e}}parent(){if("&"==this.str[0]){if(this.nested=!1,!this.pos&&(!this.stack.length||this.raw)){for(var e=0;" "==this.str[++e];);if(~h.indexOf(this.str[e]))return void this.skip(e+1)}if(this.skip(1),!this.raw)return this.stack[this.stack.length-1]}}partial(){if("^"==this.str[0]&&"["==this.str[1]){this.skip(2),this.skipSpaces();var e=this.range();if(this.skipSpaces(),"]"!=this.str[0])return"^[";if(this.nested=!1,this.skip(1),e)return e;this.ignore=!0}}number(){var e=0,t="";for("-"==this.str[e]&&(t+=this.str[e++]);this.str.charCodeAt(e)>=48&&this.str.charCodeAt(e)<=57;)t+=this.str[e++];if(t)return this.skip(e),Number(t)}range(){var e,t=this.number();if(".."==this.str.slice(0,2)){this.skip(2);var n=this.number(),i=this.parts.length;if(t<0&&(t=i+t-1),n<0&&(n=i+n-1),t>n){var r=t;t=n,n=r}n0?(100-i[t])*r/100:i[t]*(r/100)),i[t]+=r,i.rgba}function rgba(e,t,n,i){switch(arguments.length){case 1:return _export_assertColor_(e),e.rgba;case 2:_export_assertColor_(e);var r=e.rgba;return _export_assertType_(t,"unit","alpha"),"%"==(i=t.clone()).type&&(i.val/=100),new de.RGBA(r.r,r.g,r.b,i.val);default:_export_assertType_(e,"unit","red"),_export_assertType_(t,"unit","green"),_export_assertType_(n,"unit","blue"),_export_assertType_(i,"unit","alpha");var a="%"==e.type?Math.round(2.55*e.val):e.val,o="%"==t.type?Math.round(2.55*t.val):t.val,h="%"==n.type?Math.round(2.55*n.val):n.val;return(i=i.clone())&&"%"==i.type&&(i.val/=100),new de.RGBA(a,o,h,i.val)}}function alpha(e,t){return e=e.rgba,t?rgba(new de.Unit(e.r),new de.Unit(e.g),new de.Unit(e.b),t):new de.Unit(e.a,"")}function basename(t,n){return _export_assertString_(t,"path"),e.basename(t.val,n&&n.val)}function blend(e,t){return _export_assertColor_(e),e=e.rgba,t=t||new de.RGBA(255,255,255,1),_export_assertColor_(t),t=t.rgba,new de.RGBA(e.r*e.a+t.r*(1-e.a),e.g*e.a+t.g*(1-e.a),e.b*e.a+t.b*(1-e.a),e.a+t.a-e.a*t.a)}function blue(e,t){return e=e.rgba,t?rgba(new de.Unit(e.r),new de.Unit(e.g),t,new de.Unit(e.a)):new de.Unit(e.b,"")}(A=function addProperty(e,t){_export_assertType_(e,"expression","name"),e=v(e).first,_export_assertString_(e,"name"),_export_assertType_(t,"expression","expr");var n=new de.Property([e],t),i=this.closestBlock,r=i.nodes.length,a=i.nodes.slice(0,i.index),o=i.nodes.slice(i.index++,r);return a.push(n),i.nodes=a.concat(o),n}).raw=!0,adjust$1.params=["color","prop","amount"],rgba.params=["red","green","blue","alpha"],alpha.params=["color","value"],(_=function(e,t,n){m(e,"number"),m(t,"base"),e=v(e).nodes[0].val,t=v(t).nodes[0].val,n=n&&v(n).nodes[0].val||2;for(var i=Number(e).toString(t);i.length(e/=255)?e/12.92:Math.pow((e+.055)/1.055,2.4)}return _export_assertColor_(e),e=e.rgba,new de.Unit(.2126*processChannel(e.r)+.7152*processChannel(e.g)+.0722*processChannel(e.b))}function contrast(e,t){if("rgba"!=e.nodeName&&"hsla"!=e.nodeName)return new de.Literal("contrast("+(e.isNull?"":e.toString())+")");var n=new de.Object;function contrast(e,t){1>e.a&&(e=blend(e,t));var n=luminosity(t).val+.05,i=luminosity(e).val+.05,r=n/i;return i>n&&(r=1/r),Math.round(10*r)/10}if(e=e.rgba,t=t||new de.RGBA(255,255,255,1),_export_assertColor_(t),1<=(t=t.rgba).a){var i=new de.Unit(contrast(e,t));n.set("ratio",i),n.set("error",new de.Unit(0)),n.set("min",i),n.set("max",i)}else{var r=contrast(e,blend(t,new de.RGBA(0,0,0,1))),a=contrast(e,blend(t,new de.RGBA(255,255,255,1))),o=Math.max(r,a);function processChannel(e,n){return Math.min(Math.max(0,(e-n*t.a)/(1-t.a)),255)}var h=new de.RGBA(processChannel(e.r,t.r),processChannel(e.g,t.g),processChannel(e.b,t.b),1),l=contrast(e,blend(t,h));n.set("ratio",new de.Unit(Math.round(50*(l+o))/100)),n.set("error",new de.Unit(Math.round(50*(o-l))/100)),n.set("min",new de.Unit(l)),n.set("max",new de.Unit(o))}return n}function convert$1(e){return _export_assertString_(e,"str"),_export_parseString_(e.string)}function define(e,t,n){_export_assertType_(e,"string","name"),t=v(t);var i=this.currentScope;n&&n.toBoolean().isTrue&&(i=this.global.scope);var r=new de.Ident(e.val,t);return i.add(r),de.null}function dirname$2(t){return _export_assertString_(t,"path"),e.dirname(t.val).replace(/\\/g,"/")}function error(e){_export_assertType_(e,"string","msg");var t=new Error(e.val);throw t.fromStylus=!0,t}function extname$1(t){return _export_assertString_(t,"path"),e.extname(t.val)}function green(e,t){return e=e.rgba,t?rgba(new de.Unit(e.r),t,new de.Unit(e.b),new de.Unit(e.a)):new de.Unit(e.g,"")}function hsla(e,t,n,i){switch(arguments.length){case 1:return _export_assertColor_(e),e.hsla;case 2:_export_assertColor_(e);var r=e.hsla;return _export_assertType_(t,"unit","alpha"),"%"==(i=t.clone()).type&&(i.val/=100),new de.HSLA(r.h,r.s,r.l,i.val);default:return _export_assertType_(e,"unit","hue"),_export_assertType_(t,"unit","saturation"),_export_assertType_(n,"unit","lightness"),_export_assertType_(i,"unit","alpha"),(i=i.clone())&&"%"==i.type&&(i.val/=100),new de.HSLA(e.val,t.val,n.val,i.val)}}function hsl(e,t,n){return 1==arguments.length?(_export_assertColor_(e,"color"),e.hsla):hsla(e,t,n,new de.Unit(1))}function hue(e,t){if(t){var n=e.hsla;return hsla(t,new de.Unit(n.s),new de.Unit(n.l),new de.Unit(n.a))}return component(e,new de.String("hue"))}component.params=["color","name"],luminosity.params=["color"],contrast.params=["top","bottom"],convert$1.params=["str"],define.params=["name","expr","global"],dirname$2.params=["p"],error.params=["msg"],extname$1.params=["p"],green.params=["color","value"],hsla.params=["hue","saturation","lightness","alpha"],hsl.params=["hue","saturation","lightness"],hue.params=["color","value"];const noop$1=()=>noop$1;function json(e,t,n){_export_assertString_(e,"path"),e=e.string;var i=u(e,this.options.paths,this.options.filename),r=t&&"object"==t.nodeName&&t;if(!i){if(r&&r.get("optional").toBoolean().isTrue)return de.null;throw new Error("failed to locate .json file "+e)}var a=JSON.parse(_export_readFileSync_(i));if(r)return function convert(e,t){var n=new de.Object,i=t.get("leave-strings").toBoolean();for(var r in e){var a=e[r];"object"==typeof a?n.set(r,convert(a,t)):("string"==(a=g(a)).nodeName&&i.isFalse&&(a=_export_parseString_(a.string)),n.set(r,a))}return n}(a,r);oldJson.call(this,a,t,n)}function oldJson(e,t,n){n?(_export_assertString_(n,"namePrefix"),n=n.val):n="";var i=(t=t?t.toBoolean():new de.Boolean(t)).isTrue?this.currentScope:this.global.scope;!function convert(e,t){for(var r in t=t?t+"-":"",e){var a=e[r],o=t+r;"object"==typeof a?convert(a,o):("string"==(a=g(a)).nodeName&&(a=_export_parseString_(a.string)),i.add({name:n+o,val:a}))}}(e)}let j,P,I,U,R,M,F,q;function lightness(e,t){if(t){var n=e.hsla;return hsla(new de.Unit(n.h),new de.Unit(n.s),t,new de.Unit(n.a))}return component(e,new de.String("lightness"))}function lookup(e){_export_assertType_(e,"string","name");var t=this.lookup(e.val);return t?this.visit(t):de.null}function match(e,t,n){_export_assertType_(e,"string","pattern"),_export_assertString_(t,"val");var i=new RegExp(e.val,function validateFlags(e){return!!(e=e&&e.string)&&e.split("").every((function(e){return~"igm".indexOf(e)}))}(n)?n.string:"");return t.string.match(i)}function math$1(e,t){return _export_assertType_(e,"unit","n"),_export_assertString_(t,"fn"),new de.Unit(Math[t.string](e.val),e.type)}function operate(e,t,n){return _export_assertType_(e,"string","op"),m(t,"left"),m(n,"right"),t.operate(e.val,n)}function range(e,t,n){if(_export_assertType_(e,"unit","start"),_export_assertType_(t,"unit","stop"),n){if(_export_assertType_(n,"unit","step"),0==n.val)throw new Error('ArgumentError: "step" argument must not be zero')}else n=new de.Unit(1);for(var i=new de.Expression,r=e.val;r<=t.val;r+=n.val)i.push(new de.Unit(r,e.type));return i}function red(e,t){return e=e.rgba,t?rgba(t,new de.Unit(e.g),new de.Unit(e.b),new de.Unit(e.a)):new de.Unit(e.r,"")}function remove(e,t){return _export_assertType_(e,"object","object"),_export_assertString_(t,"key"),delete e.vals[t.string],e}function replace(e,t,n){_export_assertString_(e,"pattern"),_export_assertString_(t,"replacement"),_export_assertString_(n,"val"),e=new RegExp(e.string,"g");var i=n.string.replace(e,t.string);return n instanceof de.Ident?new de.Ident(i):new de.String(i)}function rgb(e,t,n){if(1===arguments.length){_export_assertColor_(e);var i=e.rgba;return new de.RGBA(i.r,i.g,i.b,1)}return rgba(e,t,n,new de.Unit(1))}json.params=["path","local","namePrefix"],(j=function length(e){if(e){if(e.nodes){var t=v(e).nodes;return 1==t.length&&"object"==t[0].nodeName?t[0].length:1==t.length&&"string"==t[0].nodeName?t[0].val.length:t.length}return 1}return 0}).raw=!0,lightness.params=["color","value"],(P=function listSeparator(e){return e=v(e),new de.String(e.isList?",":" ")}).raw=!0,lookup.params=["name"],match.params=["pattern","val","flags"],math$1.params=["n","fn"],(I=function merge(e){m(e,"dest"),e=v(e).first,_export_assertType_(e,"object","dest");for(var t=!0===v(arguments[arguments.length-1]).first.val,n=1,i=arguments.length-t;n=0;--a)if("property"===e.nodes[a].nodeName){i=a;break}n&&(this.buf+=this.out(this.compress?"{":" {\n"),++this.indents),a=0;for(var o=e.nodes.length;a-1)return n.toString().replace("0.",".")+t}return(i?parseFloat(n.toFixed(15)):n).toString()+t}visitGroup(e){var t=this.keyframe?[]:this.stack,n=this.compress?",":",\n";if(t.push(e.nodes),e.block.hasProperties){var i=_export_compileSelectors_.call(this,t),r=i.length;if(r){this.keyframe&&(n=this.compress?",":", ");for(var a=0;a0&&!~r.indexOf("&")&&(r="/"+r),(a=new de.Selector([new de.Literal(r)])).val=r,a.block=e.block,e.nodes[i++]=a}})),n.push(e.nodes);var r=_export_compileSelectors_(n,!0);return r.forEach((function(t){i[t]=i[t]||[],i[t].push(e)})),this.extend(e,r),n.pop(),e}visitFunction(){return de.null}visitMedia(e){var t,n=[],i=this.closestGroup(e.block);return function mergeQueries(t){t.nodes.forEach((function(i,r){switch(i.nodeName){case"media":i.val=e.val.merge(i.val),n.push(i),t.nodes[r]=de.null;break;case"block":mergeQueries(i);break;default:i.block&&i.block.nodes&&mergeQueries(i.block)}}))}(e.block),this.bubble(e),n.length&&n.forEach((function(e){i?i.block.push(e):this.root.nodes.splice(++this.rootIndex,0,e),e=this.visit(e),t=e.block.parent,!e.bubbled||i&&"group"!=t.node.nodeName||(e.group.block=e.block.nodes[0].block,e.block.nodes[0]=e.group)}),this),e}visitSupports(e){return this.bubble(e),e}visitAtrule(e){return e.block&&(e.block=this.visit(e.block)),e}visitKeyframes(e){var t=e.block.nodes.filter((function(e){return e.block&&e.block.hasProperties}));return e.frames=t.length,e}visitImport(e){return this.imports.push(e),this.hoist?de.null:e}visitCharset(e){return this.charset=e,this.hoist?de.null:e}extend(e,t){var n=this.map,i=this,r=this.closestGroup(e.block);e.extends.forEach((function(e){var a=n[e.selector];if(!a){if(e.optional)return;if(!(a=i._checkForPrefixedGroups(e.selector))){var o=new Error('Failed to @extend "'+e.selector+'"');throw o.lineno=e.lineno,o.column=e.column,o}}t.forEach((function(e){var n=new de.Selector;n.val=e,n.inherits=!1,a.forEach((function(e){r&&r==e||i.extend(e,t),e.push(n)}))}))})),e.block=this.visit(e.block)}_checkForPrefixedGroups(e){for(var t=[],n=this.map,i=null,r=0;r1&&(n.isList?pushToStack(n.nodes,e):e.push(parse$1(n.nodes.map((function(e){return _export_assertString_(e,"selector"),e.string})).join(" "))))}else t.length>1&&pushToStack(t,e);return e.length?_export_compileSelectors_(e).join(","):"&"}).raw=!0,(Q=function(e){return(e=v(e)).nodes.shift()}).raw=!0,split.params=["delim","val"],substr.params=["val","start","length"],(W=function slice(e,t,n){if(t=t&&t.nodes[0].val,n=n&&n.nodes[0].val,(e=v(e).nodes).length>1)return g(e.slice(t,n),!0);var i=e[0].string.slice(t,n);return e[0]instanceof de.Ident?new de.Ident(i):new de.String(i)}).raw=!0,tan.params=["angle"],transparentify.params=["top","bottom","alpha"],type.params=["node"],unit.params=["unit","type"],unquote.params=["string"],(K=function(e){e=v(e);for(var t=1,n=arguments.length;t1)t.push(new de.String(r.map((function(e){return((i=new l(e.val).parse().nested)&&n?"& ":"")+e.val})).join(",")));else{var a=r[0].val;i=new l(a).parse().nested,t.push(new de.String((i&&n?"& ":"")+a))}}else t.push(new de.String("&"));return t},D.shift=Q,D.split=split,D.substr=substr,D.slice=W,D.tan=tan,D.trace=function trace(){return console.log(this.stack),de.null},D.transparentify=transparentify,D.type=D.typeof=D["type-of"]=type,D.unit=unit,D.unquote=unquote,D.unshift=D.prepend=K,D.use=use,D.warn=warn,D["-math-prop"]=math,D["-prefix-classes"]=prefixClasses; +var h=[">","+","~"],l=class SelectorParser{constructor(e,t,n){this.str=e,this.stack=t||[],this.parts=n||[],this.pos=0,this.level=2,this.nested=!0,this.ignore=!1}skip(e){this.str=this.str.substr(e),this.pos+=e}skipSpaces(){for(;" "==this.str[0];)this.skip(1)}advance(){return this.root()||this.relative()||this.initial()||this.escaped()||this.parent()||this.partial()||this.char()}root(){this.pos||"/"!=this.str[0]||"deep"==this.str.slice(1,5)||(this.nested=!1,this.skip(1))}relative(e){if((!this.pos||e)&&"../"==this.str.slice(0,3)){for(this.nested=!1,this.skip(3);this.relative(!0);)this.level++;if(!this.raw){var t=this.stack[this.stack.length-this.level];if(t)return t;this.ignore=!0}}}initial(){if(!this.pos&&"~"==this.str[0]&&"/"==this.str[1])return this.nested=!1,this.skip(2),this.stack[0]}escaped(){if("\\"==this.str[0]){var e=this.str[1];if("&"==e||"^"==e)return this.skip(2),e}}parent(){if("&"==this.str[0]){if(this.nested=!1,!this.pos&&(!this.stack.length||this.raw)){for(var e=0;" "==this.str[++e];);if(~h.indexOf(this.str[e]))return void this.skip(e+1)}if(this.skip(1),!this.raw)return this.stack[this.stack.length-1]}}partial(){if("^"==this.str[0]&&"["==this.str[1]){this.skip(2),this.skipSpaces();var e=this.range();if(this.skipSpaces(),"]"!=this.str[0])return"^[";if(this.nested=!1,this.skip(1),e)return e;this.ignore=!0}}number(){var e=0,t="";for("-"==this.str[e]&&(t+=this.str[e++]);this.str.charCodeAt(e)>=48&&this.str.charCodeAt(e)<=57;)t+=this.str[e++];if(t)return this.skip(e),Number(t)}range(){var e,t=this.number();if(".."==this.str.slice(0,2)){this.skip(2);var n=this.number(),i=this.parts.length;if(t<0&&(t=i+t-1),n<0&&(n=i+n-1),t>n){var r=t;t=n,n=r}n0?(100-i[t])*r/100:i[t]*(r/100)),i[t]+=r,i.rgba}function rgba(e,t,n,i){switch(arguments.length){case 1:return _export_assertColor_(e),e.rgba;case 2:_export_assertColor_(e);var r=e.rgba;return _export_assertType_(t,"unit","alpha"),"%"==(i=t.clone()).type&&(i.val/=100),new ue.RGBA(r.r,r.g,r.b,i.val);default:_export_assertType_(e,"unit","red"),_export_assertType_(t,"unit","green"),_export_assertType_(n,"unit","blue"),_export_assertType_(i,"unit","alpha");var a="%"==e.type?Math.round(2.55*e.val):e.val,o="%"==t.type?Math.round(2.55*t.val):t.val,h="%"==n.type?Math.round(2.55*n.val):n.val;return(i=i.clone())&&"%"==i.type&&(i.val/=100),new ue.RGBA(a,o,h,i.val)}}function alpha(e,t){return e=e.rgba,t?rgba(new ue.Unit(e.r),new ue.Unit(e.g),new ue.Unit(e.b),t):new ue.Unit(e.a,"")}function basename(t,n){return _export_assertString_(t,"path"),e.basename(t.val,n&&n.val)}function blend(e,t){return _export_assertColor_(e),e=e.rgba,t=t||new ue.RGBA(255,255,255,1),_export_assertColor_(t),t=t.rgba,new ue.RGBA(e.r*e.a+t.r*(1-e.a),e.g*e.a+t.g*(1-e.a),e.b*e.a+t.b*(1-e.a),e.a+t.a-e.a*t.a)}function blue(e,t){return e=e.rgba,t?rgba(new ue.Unit(e.r),new ue.Unit(e.g),t,new ue.Unit(e.a)):new ue.Unit(e.b,"")}(y=function addProperty(e,t){_export_assertType_(e,"expression","name"),e=f(e).first,_export_assertString_(e,"name"),_export_assertType_(t,"expression","expr");var n=new ue.Property([e],t),i=this.closestBlock,r=i.nodes.length,a=i.nodes.slice(0,i.index),o=i.nodes.slice(i.index++,r);return a.push(n),i.nodes=a.concat(o),n}).raw=!0,adjust$1.params=["color","prop","amount"],rgba.params=["red","green","blue","alpha"],alpha.params=["color","value"],(x=function(e,t,n){u(e,"number"),u(t,"base"),e=f(e).nodes[0].val,t=f(t).nodes[0].val,n=n&&f(n).nodes[0].val||2;for(var i=Number(e).toString(t);i.length(e/=255)?e/12.92:Math.pow((e+.055)/1.055,2.4)}return _export_assertColor_(e),e=e.rgba,new ue.Unit(.2126*processChannel(e.r)+.7152*processChannel(e.g)+.0722*processChannel(e.b))}function contrast(e,t){if("rgba"!=e.nodeName&&"hsla"!=e.nodeName)return new ue.Literal("contrast("+(e.isNull?"":e.toString())+")");var n=new ue.Object;function contrast(e,t){1>e.a&&(e=blend(e,t));var n=luminosity(t).val+.05,i=luminosity(e).val+.05,r=n/i;return i>n&&(r=1/r),Math.round(10*r)/10}if(e=e.rgba,t=t||new ue.RGBA(255,255,255,1),_export_assertColor_(t),1<=(t=t.rgba).a){var i=new ue.Unit(contrast(e,t));n.set("ratio",i),n.set("error",new ue.Unit(0)),n.set("min",i),n.set("max",i)}else{var r=contrast(e,blend(t,new ue.RGBA(0,0,0,1))),a=contrast(e,blend(t,new ue.RGBA(255,255,255,1))),o=Math.max(r,a);function processChannel(e,n){return Math.min(Math.max(0,(e-n*t.a)/(1-t.a)),255)}var h=new ue.RGBA(processChannel(e.r,t.r),processChannel(e.g,t.g),processChannel(e.b,t.b),1),l=contrast(e,blend(t,h));n.set("ratio",new ue.Unit(Math.round(50*(l+o))/100)),n.set("error",new ue.Unit(Math.round(50*(o-l))/100)),n.set("min",new ue.Unit(l)),n.set("max",new ue.Unit(o))}return n}function convert$1(e){return _export_assertString_(e,"str"),_export_parseString_(e.string)}component.params=["color","name"],luminosity.params=["color"],contrast.params=["top","bottom"],convert$1.params=["str"];function define(e,t,n){_export_assertType_(e,"string","name"),t=f(t);var i=this.currentScope;n&&n.toBoolean().isTrue&&(i=this.global.scope);var r=new ue.Ident(e.val,t);return i.add(r),ue.null}function dirname$2(t){return _export_assertString_(t,"path"),e.dirname(t.val).replace(/\\/g,"/")}function error(e){_export_assertType_(e,"string","msg");var t=new Error(e.val);throw t.fromStylus=!0,t}function extname$1(t){return _export_assertString_(t,"path"),e.extname(t.val)}function green(e,t){return e=e.rgba,t?rgba(new ue.Unit(e.r),t,new ue.Unit(e.b),new ue.Unit(e.a)):new ue.Unit(e.g,"")}function hsla(e,t,n,i){switch(arguments.length){case 1:return _export_assertColor_(e),e.hsla;case 2:_export_assertColor_(e);var r=e.hsla;return _export_assertType_(t,"unit","alpha"),"%"==(i=t.clone()).type&&(i.val/=100),new ue.HSLA(r.h,r.s,r.l,i.val);default:return _export_assertType_(e,"unit","hue"),_export_assertType_(t,"unit","saturation"),_export_assertType_(n,"unit","lightness"),_export_assertType_(i,"unit","alpha"),(i=i.clone())&&"%"==i.type&&(i.val/=100),new ue.HSLA(e.val,t.val,n.val,i.val)}}function hsl(e,t,n){return 1==arguments.length?(_export_assertColor_(e,"color"),e.hsla):hsla(e,t,n,new ue.Unit(1))}function hue(e,t){if(t){var n=e.hsla;return hsla(t,new ue.Unit(n.s),new ue.Unit(n.l),new ue.Unit(n.a))}return component(e,new ue.String("hue"))}define.params=["name","expr","global"],dirname$2.params=["p"],error.params=["msg"],extname$1.params=["p"],green.params=["color","value"],hsla.params=["hue","saturation","lightness","alpha"],hsl.params=["hue","saturation","lightness"],hue.params=["color","value"];const noop$1=()=>noop$1;function json(e,t,n){_export_assertString_(e,"path"),e=e.string;var i=_export_lookup_(e,this.options.paths,this.options.filename),r=t&&"object"==t.nodeName&&t;if(!i){if(r&&r.get("optional").toBoolean().isTrue)return ue.null;throw new Error("failed to locate .json file "+e)}var a=JSON.parse(_export_readFileSync_(i));if(r)return function convert(e,t){var n=new ue.Object,i=t.get("leave-strings").toBoolean();for(var r in e){var a=e[r];"object"==typeof a?n.set(r,convert(a,t)):("string"==(a=m(a)).nodeName&&i.isFalse&&(a=_export_parseString_(a.string)),n.set(r,a))}return n}(a,r);oldJson.call(this,a,t,n)}function oldJson(e,t,n){n?(_export_assertString_(n,"namePrefix"),n=n.val):n="";var i=(t=t?t.toBoolean():new ue.Boolean(t)).isTrue?this.currentScope:this.global.scope;return void function convert(e,t){for(var r in t=t?t+"-":"",e){var a=e[r],o=t+r;"object"==typeof a?convert(a,o):("string"==(a=m(a)).nodeName&&(a=_export_parseString_(a.string)),i.add({name:n+o,val:a}))}}(e)}let _,L;function lightness(e,t){if(t){var n=e.hsla;return hsla(new ue.Unit(n.h),new ue.Unit(n.s),t,new ue.Unit(n.a))}return component(e,new ue.String("lightness"))}function lookup(e){_export_assertType_(e,"string","name");var t=this.lookup(e.val);return t?this.visit(t):ue.null}json.params=["path","local","namePrefix"],(_=function length(e){if(e){if(e.nodes){var t=f(e).nodes;return 1==t.length&&"object"==t[0].nodeName?t[0].length:1==t.length&&"string"==t[0].nodeName?t[0].val.length:t.length}return 1}return 0}).raw=!0,lightness.params=["color","value"],(L=function listSeparator(e){return e=f(e),new ue.String(e.isList?",":" ")}).raw=!0,lookup.params=["name"];function match(e,t,n){_export_assertType_(e,"string","pattern"),_export_assertString_(t,"val");var i=new RegExp(e.val,validateFlags(n)?n.string:"");return t.string.match(i)}function validateFlags(e){return!!(e=e&&e.string)&&e.split("").every((function(e){return~"igm".indexOf(e)}))}function math$1(e,t){return _export_assertType_(e,"unit","n"),_export_assertString_(t,"fn"),new ue.Unit(Math[t.string](e.val),e.type)}let B,O,C,j,P,I;function operate(e,t,n){return _export_assertType_(e,"string","op"),u(t,"left"),u(n,"right"),t.operate(e.val,n)}function range(e,t,n){if(_export_assertType_(e,"unit","start"),_export_assertType_(t,"unit","stop"),n){if(_export_assertType_(n,"unit","step"),0==n.val)throw new Error('ArgumentError: "step" argument must not be zero')}else n=new ue.Unit(1);for(var i=new ue.Expression,r=e.val;r<=t.val;r+=n.val)i.push(new ue.Unit(r,e.type));return i}function red(e,t){return e=e.rgba,t?rgba(t,new ue.Unit(e.g),new ue.Unit(e.b),new ue.Unit(e.a)):new ue.Unit(e.r,"")}function remove(e,t){return _export_assertType_(e,"object","object"),_export_assertString_(t,"key"),delete e.vals[t.string],e}function replace(e,t,n){_export_assertString_(e,"pattern"),_export_assertString_(t,"replacement"),_export_assertString_(n,"val"),e=new RegExp(e.string,"g");var i=n.string.replace(e,t.string);return n instanceof ue.Ident?new ue.Ident(i):new ue.String(i)}function rgb(e,t,n){if(1===arguments.length){_export_assertColor_(e);var i=e.rgba;return new ue.RGBA(i.r,i.g,i.b,1)}return rgba(e,t,n,new ue.Unit(1))}match.params=["pattern","val","flags"],math$1.params=["n","fn"],(B=function merge(e){u(e,"dest"),e=f(e).first,_export_assertType_(e,"object","dest");for(var t=f(arguments[arguments.length-1]).first,n=!0===t.val,i=1,r=arguments.length-n;i=0;--a)if("property"===e.nodes[a].nodeName){i=a;break}n&&(this.buf+=this.out(this.compress?"{":" {\n"),++this.indents);a=0;for(var o=e.nodes.length;a-1)return n.toString().replace("0.",".")+t}return(i?parseFloat(n.toFixed(15)):n).toString()+t}visitGroup(e){var t=this.keyframe?[]:this.stack,n=this.compress?",":",\n";if(t.push(e.nodes),e.block.hasProperties){var i=_export_compileSelectors_.call(this,t),r=i.length;if(r){this.keyframe&&(n=this.compress?",":", ");for(var a=0;a0&&!~r.indexOf("&")&&(r="/"+r),(a=new ue.Selector([new ue.Literal(r)])).val=r,a.block=e.block,e.nodes[i++]=a}})),n.push(e.nodes);var r=_export_compileSelectors_(n,!0);return r.forEach((function(t){i[t]=i[t]||[],i[t].push(e)})),this.extend(e,r),n.pop(),e}visitFunction(){return ue.null}visitMedia(e){var t,n=[],i=this.closestGroup(e.block);return function mergeQueries(t){t.nodes.forEach((function(i,r){switch(i.nodeName){case"media":i.val=e.val.merge(i.val),n.push(i),t.nodes[r]=ue.null;break;case"block":mergeQueries(i);break;default:i.block&&i.block.nodes&&mergeQueries(i.block)}}))}(e.block),this.bubble(e),n.length&&n.forEach((function(e){i?i.block.push(e):this.root.nodes.splice(++this.rootIndex,0,e),e=this.visit(e),t=e.block.parent,!e.bubbled||i&&"group"!=t.node.nodeName||(e.group.block=e.block.nodes[0].block,e.block.nodes[0]=e.group)}),this),e}visitSupports(e){return this.bubble(e),e}visitAtrule(e){return e.block&&(e.block=this.visit(e.block)),e}visitKeyframes(e){var t=e.block.nodes.filter((function(e){return e.block&&e.block.hasProperties}));return e.frames=t.length,e}visitImport(e){return this.imports.push(e),this.hoist?ue.null:e}visitCharset(e){return this.charset=e,this.hoist?ue.null:e}extend(e,t){var n=this.map,i=this,r=this.closestGroup(e.block);e.extends.forEach((function(e){var a=n[e.selector];if(!a){if(e.optional)return;if(!(a=i._checkForPrefixedGroups(e.selector))){var o=new Error('Failed to @extend "'+e.selector+'"');throw o.lineno=e.lineno,o.column=e.column,o}}t.forEach((function(e){var n=new ue.Selector;n.val=e,n.inherits=!1,a.forEach((function(e){r&&r==e||i.extend(e,t),e.push(n)}))}))})),e.block=this.visit(e.block)}_checkForPrefixedGroups(e){for(var t=[],n=this.map,i=null,r=0;r1&&(n.isList?pushToStack(n.nodes,e):e.push(parse$1(n.nodes.map((function(e){return _export_assertString_(e,"selector"),e.string})).join(" "))))}else t.length>1&&pushToStack(t,e);return e.length?_export_compileSelectors_(e).join(","):"&"}).raw=!0;let T,$;function split(e,t){_export_assertString_(e,"delimiter"),_export_assertString_(t,"val");for(var n=t.string.split(e.string),i=new ue.Expression,r=t instanceof ue.Ident?ue.Ident:ue.String,a=0,o=n.length;a1)return m(e.slice(t,n),!0);var i=e[0].string.slice(t,n);return e[0]instanceof ue.Ident?new ue.Ident(i):new ue.String(i)}).raw=!0,tan.params=["angle"];function transparentify(e,t,n){_export_assertColor_(e),e=e.rgba,t=t||new ue.RGBA(255,255,255,1),n||!t||t.rgba||(n=t,t=new ue.RGBA(255,255,255,1)),_export_assertColor_(t),t=t.rgba;var i=["r","g","b"].map((function(n){return(e[n]-t[n])/((01)t.push(new ue.String(r.map((function(e){return((i=new l(e.val).parse().nested)&&n?"& ":"")+e.val})).join(",")));else{var a=r[0].val;i=new l(a).parse().nested,t.push(new ue.String((i&&n?"& ":"")+a))}}else t.push(new ue.String("&"));return t},z.shift=T,z.split=split,z.substr=substr,z.slice=$,z.tan=tan,z.trace=function trace(){return console.log(this.stack),ue.null},z.transparentify=transparentify,z.type=z.typeof=z["type-of"]=type,z.unit=unit,z.unquote=unquote,z.unshift=z.prepend=J,z.use=use,z.warn=warn,z["-math-prop"]=math,z["-prefix-classes"]=prefixClasses; /*! * Stylus - colors * Copyright (c) Automattic * MIT Licensed */ -var V={aliceblue:[240,248,255,1],antiquewhite:[250,235,215,1],aqua:[0,255,255,1],aquamarine:[127,255,212,1],azure:[240,255,255,1],beige:[245,245,220,1],bisque:[255,228,196,1],black:[0,0,0,1],blanchedalmond:[255,235,205,1],blue:[0,0,255,1],blueviolet:[138,43,226,1],brown:[165,42,42,1],burlywood:[222,184,135,1],cadetblue:[95,158,160,1],chartreuse:[127,255,0,1],chocolate:[210,105,30,1],coral:[255,127,80,1],cornflowerblue:[100,149,237,1],cornsilk:[255,248,220,1],crimson:[220,20,60,1],cyan:[0,255,255,1],darkblue:[0,0,139,1],darkcyan:[0,139,139,1],darkgoldenrod:[184,134,11,1],darkgray:[169,169,169,1],darkgreen:[0,100,0,1],darkgrey:[169,169,169,1],darkkhaki:[189,183,107,1],darkmagenta:[139,0,139,1],darkolivegreen:[85,107,47,1],darkorange:[255,140,0,1],darkorchid:[153,50,204,1],darkred:[139,0,0,1],darksalmon:[233,150,122,1],darkseagreen:[143,188,143,1],darkslateblue:[72,61,139,1],darkslategray:[47,79,79,1],darkslategrey:[47,79,79,1],darkturquoise:[0,206,209,1],darkviolet:[148,0,211,1],deeppink:[255,20,147,1],deepskyblue:[0,191,255,1],dimgray:[105,105,105,1],dimgrey:[105,105,105,1],dodgerblue:[30,144,255,1],firebrick:[178,34,34,1],floralwhite:[255,250,240,1],forestgreen:[34,139,34,1],fuchsia:[255,0,255,1],gainsboro:[220,220,220,1],ghostwhite:[248,248,255,1],gold:[255,215,0,1],goldenrod:[218,165,32,1],gray:[128,128,128,1],green:[0,128,0,1],greenyellow:[173,255,47,1],grey:[128,128,128,1],honeydew:[240,255,240,1],hotpink:[255,105,180,1],indianred:[205,92,92,1],indigo:[75,0,130,1],ivory:[255,255,240,1],khaki:[240,230,140,1],lavender:[230,230,250,1],lavenderblush:[255,240,245,1],lawngreen:[124,252,0,1],lemonchiffon:[255,250,205,1],lightblue:[173,216,230,1],lightcoral:[240,128,128,1],lightcyan:[224,255,255,1],lightgoldenrodyellow:[250,250,210,1],lightgray:[211,211,211,1],lightgreen:[144,238,144,1],lightgrey:[211,211,211,1],lightpink:[255,182,193,1],lightsalmon:[255,160,122,1],lightseagreen:[32,178,170,1],lightskyblue:[135,206,250,1],lightslategray:[119,136,153,1],lightslategrey:[119,136,153,1],lightsteelblue:[176,196,222,1],lightyellow:[255,255,224,1],lime:[0,255,0,1],limegreen:[50,205,50,1],linen:[250,240,230,1],magenta:[255,0,255,1],maroon:[128,0,0,1],mediumaquamarine:[102,205,170,1],mediumblue:[0,0,205,1],mediumorchid:[186,85,211,1],mediumpurple:[147,112,219,1],mediumseagreen:[60,179,113,1],mediumslateblue:[123,104,238,1],mediumspringgreen:[0,250,154,1],mediumturquoise:[72,209,204,1],mediumvioletred:[199,21,133,1],midnightblue:[25,25,112,1],mintcream:[245,255,250,1],mistyrose:[255,228,225,1],moccasin:[255,228,181,1],navajowhite:[255,222,173,1],navy:[0,0,128,1],oldlace:[253,245,230,1],olive:[128,128,0,1],olivedrab:[107,142,35,1],orange:[255,165,0,1],orangered:[255,69,0,1],orchid:[218,112,214,1],palegoldenrod:[238,232,170,1],palegreen:[152,251,152,1],paleturquoise:[175,238,238,1],palevioletred:[219,112,147,1],papayawhip:[255,239,213,1],peachpuff:[255,218,185,1],peru:[205,133,63,1],pink:[255,192,203,1],plum:[221,160,221,1],powderblue:[176,224,230,1],purple:[128,0,128,1],red:[255,0,0,1],rosybrown:[188,143,143,1],royalblue:[65,105,225,1],saddlebrown:[139,69,19,1],salmon:[250,128,114,1],sandybrown:[244,164,96,1],seagreen:[46,139,87,1],seashell:[255,245,238,1],sienna:[160,82,45,1],silver:[192,192,192,1],skyblue:[135,206,235,1],slateblue:[106,90,205,1],slategray:[112,128,144,1],slategrey:[112,128,144,1],snow:[255,250,250,1],springgreen:[0,255,127,1],steelblue:[70,130,180,1],tan:[210,180,140,1],teal:[0,128,128,1],thistle:[216,191,216,1],tomato:[255,99,71,1],transparent:[0,0,0,0],turquoise:[64,224,208,1],violet:[238,130,238,1],wheat:[245,222,179,1],white:[255,255,255,1],whitesmoke:[245,245,245,1],yellow:[255,255,0,1],yellowgreen:[154,205,50,1],rebeccapurple:[102,51,153,1]};let Z={};var Y=e.extname,X={".gif":"image/gif",".png":"image/png",".jpg":"image/jpeg",".jpeg":"image/jpeg",".svg":"image/svg+xml",".webp":"image/webp",".ttf":"application/x-font-ttf",".eot":"application/vnd.ms-fontobject",".woff":"application/font-woff",".woff2":"application/font-woff2"};Z=function(e){var t=(e=e||{}).paths||[],n=null!=e.limit?e.limit:3e4,i=e.mimes||X;function fn(e,r){var a=new $(e),o="base64";a.isURL=!0,e=function parse(e){return new URL(e)}(e=e.nodes.map((function(e){return a.visit(e)})).join(""));var h,l,c=Y(e.pathname||""),f=i[c],d=e.hash||"",m=new de.Literal('url("'+e.href+'")'),v=t.concat(this.paths);if(!f)return m;if(e.protocol)return m;var g=u(e.pathname,v);return g?(h=_export_readFileSync_(g),!1!==n&&h.length>n?m:(r&&"utf8"==r.first.val.toLowerCase()?(o="charset=utf-8",l=h.toString().replace(/\s+/g," ").replace(/[{}\|\\\^~\[\]`"<>#%]/g,(function(e){return"%"+e[0].charCodeAt(0).toString(16).toUpperCase()})).trim()):l=h.toString(o)+d,new de.Literal('url("data:'+f+";"+o+","+l+'")'))):(Be.emit("file not found","File "+m+" could not be found, literal url retained!"),m)}return fn.raw=!0,fn},Z.mimes=X;var ee=e.dirname,te=noop$2();function importFile(e,t,n){var i,r=this.importStack,a=Ne;if(e.once){if(this.requireHistory[t])return de.null;if(this.requireHistory[t]=!0,n&&!this.includeCSS)return e}if(~r.indexOf(t))throw new Error("import loop has been found");var o=_export_readFileSync_(t);if(!o.trim())return de.null;if(e.path=t,e.dirname=ee(t),i=_export_statSync_(t),e.mtime=i.mtime,this.paths.push(e.dirname),this.options._imports&&this.options._imports.push(e.clone()),r.push(t),de.filename=t,n&&((n=new de.Literal(o.replace(/\r\n?/g,"\n"))).lineno=n.column=1,!this.resolveURL))return n;var h=new de.Block,l=new a(o,b({root:h},this.options));try{h=l.parse()}catch(e){var c=l.lexer.lineno,u=l.lexer.column;if(n&&this.includeCSS&&this.resolveURL)return this.warn("ParseError: "+t+":"+c+":"+u+". This file included as-is"),n;throw e.filename=t,e.lineno=c,e.column=u,e.input=o,e}(h=h.clone(this.currentBlock)).parent=this.currentBlock,h.scope=!1;var f=this.visit(h);return r.pop(),this.resolveURL&&!this.resolveURL.nocheck||this.paths.pop(),f}var se=class Evaluator extends n{constructor(e,t){super(e),t=t||{};var n=this.functions=t.functions||{};this.stack=new r,this.imports=t.imports||[],this.globals=t.globals||{},this.paths=t.paths||[],this.prefix=t.prefix||"",this.filename=t.filename,this.includeCSS=t["include css"],this.resolveURL=n.url&&"resolver"==n.url.name&&n.url.options,this.paths.push(ee(t.filename||".")),this.stack.push(this.global=new o(e)),this.warnings=t.warn,this.options=t,this.calling=[],this.importStack=[],this.requireHistory={},this.return=0}visit(e){try{return super.visit(e)}catch(t){if(t.filename)throw t;t.lineno=e.lineno,t.column=e.column,t.filename=e.filename,t.stylusStack=this.stack.toString();try{t.input=_export_readFileSync_(t.filename)}catch(e){}throw t}}setup(){var e=this.root,t=[];this.populateGlobalScope(),this.imports.forEach((function(e){var n=new de.Expression;n.push(new de.String(e)),t.push(new de.Import(n))}),this),e.nodes=t.concat(e.nodes)}populateGlobalScope(){var e=this.global.scope;Object.keys(V).forEach((function(t){var n=V[t],i=new de.RGBA(n[0],n[1],n[2],n[3]),r=new de.Ident(t,i);i.name=t,e.add(r)})),e.add(new de.Ident("embedurl",new de.Function("embedurl",Z({limit:!1}))));var t=this.globals;Object.keys(t).forEach((function(n){var i=t[n];i.nodeName||(i=new de.Literal(i)),e.add(new de.Ident(n,i))}))}evaluate(){return te("eval %s",this.filename),this.setup(),this.visit(this.root)}visitGroup(e){return e.nodes=e.nodes.map((function(e){return e.val=this.interpolate(e),te("ruleset %s",e.val),e}),this),e.block=this.visit(e.block),e}visitReturn(e){throw e.expr=this.visit(e.expr),e}visitMedia(e){return e.block=this.visit(e.block),e.val=this.visit(e.val),e}visitQueryList(e){var t,n;if(e.nodes.forEach(this.visit,this),1==e.nodes.length&&(n=e.nodes[0],t=this.lookup(n.type))){if(!(t=t.first.string))return e;var i=new Ne(t,this.options);e=this.visit(i.queries())}return e}visitQuery(e){return e.predicate=this.visit(e.predicate),e.type=this.visit(e.type),e.nodes.forEach(this.visit,this),e}visitFeature(e){return e.name=this.interpolate(e),e.expr&&(this.return++,e.expr=this.visit(e.expr),this.return--),e}visitObject(e){for(var t in e.vals)e.vals[t]=this.visit(e.vals[t]);return e}visitMember(e){var t=e.left,n=e.right,i=this.visit(t).first;if("object"!=i.nodeName)throw new Error(t.toString()+" has no property ."+n);return e.val&&(this.return++,i.set(n.name,this.visit(e.val)),this.return--),i.get(n.name)}visitKeyframes(e){var t;return e.fabricated?e:(e.val=this.interpolate(e).trim(),(t=this.lookup(e.val))&&(e.val=t.first.string||t.first.name),e.block=this.visit(e.block),"official"!=e.prefix?e:(this.vendors.forEach((function(t){if("ms"!=t){var n=e.clone();n.val=e.val,n.prefix=t,n.block=e.block,n.fabricated=!0,this.currentBlock.push(n)}}),this),de.null))}visitFunction(e){var t=this.stack.currentFrame.scope.lookup(e.name);return t&&this.warn("local "+t.nodeName+' "'+e.name+'" previously defined in this scope'),this.functions[e.name]&&this.warn('user-defined function "'+e.name+'" is already defined'),D[e.name]&&this.warn('built-in function "'+e.name+'" is already defined'),e}visitEach(e){this.return++;var t,n,i=v(this.visit(e.expr)),r=i.nodes.length,a=new de.Ident(e.val),o=new de.Ident(e.key||"__index__"),h=this.currentScope,l=this.currentBlock,c=[],u=this;function visitBody(n,i){h.add(i),h.add(n),t=u.visit(e.block.clone()),c=c.concat(t.nodes)}if(this.return--,e.block.scope=!1,1==r&&"object"==i.nodes[0].nodeName)for(var f in(n=i.nodes[0]).vals)a.val=new de.String(f),o.val=n.get(f),visitBody(o,a);else for(var d=0;d200)throw new RangeError("Maximum stylus call stack size exceeded");"expression"==i.nodeName&&(i=i.first),this.return++;var r=this.visit(e.args);for(var a in r.map)r.map[a]=this.visit(r.map[a].clone());return this.return--,i.fn?n=this.invokeBuiltin(i.fn,r):"function"==i.nodeName&&(e.block&&(e.block=this.visit(e.block)),n=this.invokeFunction(i,r,e.block)),this.calling.pop(),this.ignoreColors=!1,n}visitIdent(e){var t;if(e.property)return(t=this.lookupProperty(e.name))?this.visit(t.expr.clone()):de.null;if(e.val.isNull){var n=this.lookup(e.name);return n&&e.mixin&&this.mixinNode(n),n?this.visit(n):e}return this.return++,e.val=this.visit(e.val),this.return--,this.currentScope.add(e),e.val}visitBinOp(e){if("is defined"==e.op)return this.isDefined(e.left);this.return++;var t=e.op,n=this.visit(e.left),i="||"==t||"&&"==t?e.right:this.visit(e.right),r=e.val?this.visit(e.val):null;this.return--;try{return this.visit(n.operate(t,i,r))}catch(e){if("CoercionError"==e.name)switch(t){case"==":return de.false;case"!=":return de.true}throw e}}visitUnaryOp(e){var t=e.op,n=this.visit(e.expr);switch("!"!=t&&(n=n.first.clone(),_export_assertType_(n,"unit")),t){case"-":n.val=-n.val;break;case"+":n.val=+n.val;break;case"~":n.val=~n.val;break;case"!":return n.toBoolean().negate()}return n}visitTernary(e){return this.visit(e.cond).toBoolean().isTrue?this.visit(e.trueExpr):this.visit(e.falseExpr)}visitExpression(e){for(var t=0,n=e.nodes.length;t1)for(var a=0;a=":return new de.Boolean(this.hash>=t.hash);case"<=":return new de.Boolean(this.hash<=t.hash);case">":return new de.Boolean(this.hash>t.hash);case"<":return new de.Boolean(this.hash=0?e:360+e}function clampPercentage(e){return Math.max(0,Math.min(e,100))}oe=class HSLA extends ie{constructor(e,t,n,i){super(),this.h=clampDegrees(e),this.s=clampPercentage(t),this.l=clampPercentage(n),this.a=function clampAlpha$1(e){return Math.max(0,Math.min(e,1))}(i),this.hsla=this}toString(){return"hsla("+this.h+","+this.s.toFixed(0)+"%,"+this.l.toFixed(0)+"%,"+this.a+")"}clone(e){var t=new HSLA(this.h,this.s,this.l,this.a);return t.lineno=this.lineno,t.column=this.column,t.filename=this.filename,t}toJSON(){return{__type:"HSLA",h:this.h,s:this.s,l:this.l,a:this.a,lineno:this.lineno,column:this.column,filename:this.filename}}get rgba(){return de.RGBA.fromHSLA(this)}get hash(){return this.rgba.toString()}add(e,t,n){return new HSLA(this.h+e,this.s+t,this.l+n,this.a)}sub(e,t,n){return this.add(-e,-t,-n)}operate(e,t){switch(e){case"==":case"!=":case"<=":case">=":case"<":case">":case"is a":case"||":case"&&":return this.rgba.operate(e,t);default:return this.rgba.operate(e,t).hsla}}adjustLightness(e){return this.l=clampPercentage(this.l+this.l*(e/100)),this}adjustHue(e){return this.h=clampDegrees(this.h+e),this}static fromRGBA(e){var t,n,i=e.r/255,r=e.g/255,a=e.b/255,o=e.a,h=Math.min(i,r,a),l=Math.max(i,r,a),c=(l+h)/2,u=l-h;switch(l){case h:t=0;break;case i:t=60*(r-a)/u;break;case r:t=60*(a-i)/u+120;break;case a:t=60*(i-r)/u+240}return n=l==h?0:c<.5?u/(2*c):u/(2-2*c),new HSLA(t%=360,n*=100,c*=100,o)}};var le=D.adjust;function clamp(e){return Math.max(0,Math.min(e.toFixed(0),255))}he=class RGBA extends ie{constructor(e,t,n,i){super(),this.r=clamp(e),this.g=clamp(t),this.b=clamp(n),this.a=function clampAlpha(e){return Math.max(0,Math.min(e,1))}(i),this.name="",this.rgba=this}static withoutClamping(e,t,n,i){var r=new RGBA(0,0,0,0);return r.r=e,r.g=t,r.b=n,r.a=i,r}clone(){var e=new RGBA(this.r,this.g,this.b,this.a);return e.raw=this.raw,e.name=this.name,e.lineno=this.lineno,e.column=this.column,e.filename=this.filename,e}toJSON(){return{__type:"RGBA",r:this.r,g:this.g,b:this.b,a:this.a,raw:this.raw,name:this.name,lineno:this.lineno,column:this.column,filename:this.filename}}toBoolean(){return de.true}get hsla(){return oe.fromRGBA(this)}get hash(){return this.toString()}add(e,t,n,i){return new RGBA(this.r+e,this.g+t,this.b+n,this.a+i)}sub(e,t,n,i){return new RGBA(this.r-e,this.g-t,this.b-n,1==i?this.a:this.a-i)}multiply(e){return new RGBA(this.r*e,this.g*e,this.b*e,this.a)}divide(e){return new RGBA(this.r/e,this.g/e,this.b/e,this.a)}operate(e,t){switch("in"!=e&&(t=t.first),e){case"is a":if("string"==t.nodeName&&"color"==t.string)return de.true;break;case"+":switch(t.nodeName){case"unit":var n=t.val;switch(t.type){case"%":return le(this,new de.String("lightness"),t);case"deg":return this.hsla.adjustHue(n).rgba;default:return this.add(n,n,n,0)}case"rgba":return this.add(t.r,t.g,t.b,t.a);case"hsla":return this.hsla.add(t.h,t.s,t.l)}break;case"-":switch(t.nodeName){case"unit":switch(n=t.val,t.type){case"%":return le(this,new de.String("lightness"),new de.Unit(-n,"%"));case"deg":return this.hsla.adjustHue(-n).rgba;default:return this.sub(n,n,n,0)}case"rgba":return this.sub(t.r,t.g,t.b,t.a);case"hsla":return this.hsla.sub(t.h,t.s,t.l)}break;case"*":if("unit"===t.nodeName)return this.multiply(t.val);break;case"/":if("unit"===t.nodeName)return this.divide(t.val)}return super.operate(e,t)}toString(){function pad(e){return e<16?"0"+e.toString(16):e.toString(16)}if("transparent"==this.name)return this.name;if(1==this.a){var e=pad(this.r),t=pad(this.g),n=pad(this.b);return e[0]==e[1]&&t[0]==t[1]&&n[0]==n[1]?"#"+e[0]+t[0]+n[0]:"#"+e+t+n}return"rgba("+this.r+","+this.g+","+this.b+","+ +this.a.toFixed(3)+")"}static fromHSLA(e){var t=e.h/360,n=e.s/100,i=e.l/100,r=e.a,a=i<=.5?i*(n+1):i+n-i*n,o=2*i-a,h=255*hue(t+1/3),l=255*hue(t),c=255*hue(t-1/3);function hue(e){return e<0&&++e,e>1&&--e,6*e<1?o+(a-o)*e*6:2*e<1?a:3*e<2?o+(a-o)*(2/3-e)*6:o}return new RGBA(h,l,c,r)}};var ce=class Atrule extends ie{constructor(e){super(),this.type=e}get hasOnlyProperties(){if(!this.block)return!1;for(var e=this.block.nodes,t=0,n=e.length;tu;)i.nodes[t]=de.null;i.nodes[r]=n}else e.string&&(a=i.nodes[0])&&"object"==a.nodeName&&a.set(e.string,n.clone())})),n;case"[]":var a,o=new de.Expression,h=v(this).nodes;return(r=v(t).nodes).forEach((function(e){"unit"==e.nodeName?a=h[e.val<0?h.length+e.val:e.val]:"object"==h[0].nodeName&&(a=h[0].get(e.string)),a&&o.push(a)})),o.isEmpty?de.null:v(o);case"||":return this.toBoolean().isTrue?this:t;case"in":return super.operate(e,t);case"!=":return this.operate("==",t,n).negate();case"==":var l,c,u=this.nodes.length;if(t=t.toExpression(),u!=t.nodes.length)return de.false;for(var f=0;f1?de.true:this.first.toBoolean()}toString(){return"("+this.nodes.map((function(e){return e.toString()})).join(this.isList?", ":" ")+")"}toJSON(){return{__type:"Expression",isList:this.isList,preserve:this.preserve,lineno:this.lineno,column:this.column,filename:this.filename,nodes:this.nodes}}},fe=pe;const de={ +var H={aliceblue:[240,248,255,1],antiquewhite:[250,235,215,1],aqua:[0,255,255,1],aquamarine:[127,255,212,1],azure:[240,255,255,1],beige:[245,245,220,1],bisque:[255,228,196,1],black:[0,0,0,1],blanchedalmond:[255,235,205,1],blue:[0,0,255,1],blueviolet:[138,43,226,1],brown:[165,42,42,1],burlywood:[222,184,135,1],cadetblue:[95,158,160,1],chartreuse:[127,255,0,1],chocolate:[210,105,30,1],coral:[255,127,80,1],cornflowerblue:[100,149,237,1],cornsilk:[255,248,220,1],crimson:[220,20,60,1],cyan:[0,255,255,1],darkblue:[0,0,139,1],darkcyan:[0,139,139,1],darkgoldenrod:[184,134,11,1],darkgray:[169,169,169,1],darkgreen:[0,100,0,1],darkgrey:[169,169,169,1],darkkhaki:[189,183,107,1],darkmagenta:[139,0,139,1],darkolivegreen:[85,107,47,1],darkorange:[255,140,0,1],darkorchid:[153,50,204,1],darkred:[139,0,0,1],darksalmon:[233,150,122,1],darkseagreen:[143,188,143,1],darkslateblue:[72,61,139,1],darkslategray:[47,79,79,1],darkslategrey:[47,79,79,1],darkturquoise:[0,206,209,1],darkviolet:[148,0,211,1],deeppink:[255,20,147,1],deepskyblue:[0,191,255,1],dimgray:[105,105,105,1],dimgrey:[105,105,105,1],dodgerblue:[30,144,255,1],firebrick:[178,34,34,1],floralwhite:[255,250,240,1],forestgreen:[34,139,34,1],fuchsia:[255,0,255,1],gainsboro:[220,220,220,1],ghostwhite:[248,248,255,1],gold:[255,215,0,1],goldenrod:[218,165,32,1],gray:[128,128,128,1],green:[0,128,0,1],greenyellow:[173,255,47,1],grey:[128,128,128,1],honeydew:[240,255,240,1],hotpink:[255,105,180,1],indianred:[205,92,92,1],indigo:[75,0,130,1],ivory:[255,255,240,1],khaki:[240,230,140,1],lavender:[230,230,250,1],lavenderblush:[255,240,245,1],lawngreen:[124,252,0,1],lemonchiffon:[255,250,205,1],lightblue:[173,216,230,1],lightcoral:[240,128,128,1],lightcyan:[224,255,255,1],lightgoldenrodyellow:[250,250,210,1],lightgray:[211,211,211,1],lightgreen:[144,238,144,1],lightgrey:[211,211,211,1],lightpink:[255,182,193,1],lightsalmon:[255,160,122,1],lightseagreen:[32,178,170,1],lightskyblue:[135,206,250,1],lightslategray:[119,136,153,1],lightslategrey:[119,136,153,1],lightsteelblue:[176,196,222,1],lightyellow:[255,255,224,1],lime:[0,255,0,1],limegreen:[50,205,50,1],linen:[250,240,230,1],magenta:[255,0,255,1],maroon:[128,0,0,1],mediumaquamarine:[102,205,170,1],mediumblue:[0,0,205,1],mediumorchid:[186,85,211,1],mediumpurple:[147,112,219,1],mediumseagreen:[60,179,113,1],mediumslateblue:[123,104,238,1],mediumspringgreen:[0,250,154,1],mediumturquoise:[72,209,204,1],mediumvioletred:[199,21,133,1],midnightblue:[25,25,112,1],mintcream:[245,255,250,1],mistyrose:[255,228,225,1],moccasin:[255,228,181,1],navajowhite:[255,222,173,1],navy:[0,0,128,1],oldlace:[253,245,230,1],olive:[128,128,0,1],olivedrab:[107,142,35,1],orange:[255,165,0,1],orangered:[255,69,0,1],orchid:[218,112,214,1],palegoldenrod:[238,232,170,1],palegreen:[152,251,152,1],paleturquoise:[175,238,238,1],palevioletred:[219,112,147,1],papayawhip:[255,239,213,1],peachpuff:[255,218,185,1],peru:[205,133,63,1],pink:[255,192,203,1],plum:[221,160,221,1],powderblue:[176,224,230,1],purple:[128,0,128,1],red:[255,0,0,1],rosybrown:[188,143,143,1],royalblue:[65,105,225,1],saddlebrown:[139,69,19,1],salmon:[250,128,114,1],sandybrown:[244,164,96,1],seagreen:[46,139,87,1],seashell:[255,245,238,1],sienna:[160,82,45,1],silver:[192,192,192,1],skyblue:[135,206,235,1],slateblue:[106,90,205,1],slategray:[112,128,144,1],slategrey:[112,128,144,1],snow:[255,250,250,1],springgreen:[0,255,127,1],steelblue:[70,130,180,1],tan:[210,180,140,1],teal:[0,128,128,1],thistle:[216,191,216,1],tomato:[255,99,71,1],transparent:[0,0,0,0],turquoise:[64,224,208,1],violet:[238,130,238,1],wheat:[245,222,179,1],white:[255,255,255,1],whitesmoke:[245,245,245,1],yellow:[255,255,0,1],yellowgreen:[154,205,50,1],rebeccapurple:[102,51,153,1]};function parse(e){return new URL(e)}let Q={};var W=e.extname,K={".gif":"image/gif",".png":"image/png",".jpg":"image/jpeg",".jpeg":"image/jpeg",".svg":"image/svg+xml",".webp":"image/webp",".ttf":"application/x-font-ttf",".eot":"application/vnd.ms-fontobject",".woff":"application/font-woff",".woff2":"application/font-woff2"},D="base64",V="charset=utf-8";Q=function(e){var t=(e=e||{}).paths||[],n=null!=e.limit?e.limit:3e4,i=e.mimes||K;function fn(e,r){var a=new M(e),o=D;a.isURL=!0,e=parse(e=e.nodes.map((function(e){return a.visit(e)})).join(""));var h,l,c=W(e.pathname||""),u=i[c],f=e.hash||"",m=new ue.Literal('url("'+e.href+'")'),d=t.concat(this.paths);if(!u)return m;if(e.protocol)return m;var v=_export_lookup_(e.pathname,d);return v?(h=_export_readFileSync_(v),!1!==n&&h.length>n?m:(r&&"utf8"==r.first.val.toLowerCase()?(o=V,l=h.toString().replace(/\s+/g," ").replace(/[{}\|\\\^~\[\]`"<>#%]/g,(function(e){return"%"+e[0].charCodeAt(0).toString(16).toUpperCase()})).trim()):l=h.toString(o)+f,new ue.Literal('url("data:'+u+";"+o+","+l+'")'))):(_e.emit("file not found","File "+m+" could not be found, literal url retained!"),m)}return fn.raw=!0,fn},Q.mimes=K;var Z=e.dirname,Y=noop$2();function importFile(e,t,n){var i,r=this.importStack,a=ye;if(e.once){if(this.requireHistory[t])return ue.null;if(this.requireHistory[t]=!0,n&&!this.includeCSS)return e}if(~r.indexOf(t))throw new Error("import loop has been found");var o=_export_readFileSync_(t);if(!o.trim())return ue.null;if(e.path=t,e.dirname=Z(t),i=_export_statSync_(t),e.mtime=i.mtime,this.paths.push(e.dirname),this.options._imports&&this.options._imports.push(e.clone()),r.push(t),ue.filename=t,n&&((n=new ue.Literal(o.replace(/\r\n?/g,"\n"))).lineno=n.column=1,!this.resolveURL))return n;var h=new ue.Block,l=new a(o,g({root:h},this.options));try{h=l.parse()}catch(e){var c=l.lexer.lineno,u=l.lexer.column;if(n&&this.includeCSS&&this.resolveURL)return this.warn("ParseError: "+t+":"+c+":"+u+". This file included as-is"),n;throw e.filename=t,e.lineno=c,e.column=u,e.input=o,e}(h=h.clone(this.currentBlock)).parent=this.currentBlock,h.scope=!1;var f=this.visit(h);return r.pop(),this.resolveURL&&!this.resolveURL.nocheck||this.paths.pop(),f}var X=class Evaluator extends n{constructor(e,t){super(e),t=t||{};var n=this.functions=t.functions||{};this.stack=new r,this.imports=t.imports||[],this.globals=t.globals||{},this.paths=t.paths||[],this.prefix=t.prefix||"",this.filename=t.filename,this.includeCSS=t["include css"],this.resolveURL=n.url&&"resolver"==n.url.name&&n.url.options,this.paths.push(Z(t.filename||".")),this.stack.push(this.global=new o(e)),this.warnings=t.warn,this.options=t,this.calling=[],this.importStack=[],this.requireHistory={},this.return=0}visit(e){try{return super.visit(e)}catch(t){if(t.filename)throw t;t.lineno=e.lineno,t.column=e.column,t.filename=e.filename,t.stylusStack=this.stack.toString();try{t.input=_export_readFileSync_(t.filename)}catch(e){}throw t}}setup(){var e=this.root,t=[];this.populateGlobalScope(),this.imports.forEach((function(e){var n=new ue.Expression;n.push(new ue.String(e)),t.push(new ue.Import(n))}),this),e.nodes=t.concat(e.nodes)}populateGlobalScope(){var e=this.global.scope;Object.keys(H).forEach((function(t){var n=H[t],i=new ue.RGBA(n[0],n[1],n[2],n[3]),r=new ue.Ident(t,i);i.name=t,e.add(r)})),e.add(new ue.Ident("embedurl",new ue.Function("embedurl",Q({limit:!1}))));var t=this.globals;Object.keys(t).forEach((function(n){var i=t[n];i.nodeName||(i=new ue.Literal(i)),e.add(new ue.Ident(n,i))}))}evaluate(){return Y("eval %s",this.filename),this.setup(),this.visit(this.root)}visitGroup(e){return e.nodes=e.nodes.map((function(e){return e.val=this.interpolate(e),Y("ruleset %s",e.val),e}),this),e.block=this.visit(e.block),e}visitReturn(e){throw e.expr=this.visit(e.expr),e}visitMedia(e){return e.block=this.visit(e.block),e.val=this.visit(e.val),e}visitQueryList(e){var t,n;if(e.nodes.forEach(this.visit,this),1==e.nodes.length&&(n=e.nodes[0],t=this.lookup(n.type))){if(!(t=t.first.string))return e;var i=new ye(t,this.options);e=this.visit(i.queries())}return e}visitQuery(e){return e.predicate=this.visit(e.predicate),e.type=this.visit(e.type),e.nodes.forEach(this.visit,this),e}visitFeature(e){return e.name=this.interpolate(e),e.expr&&(this.return++,e.expr=this.visit(e.expr),this.return--),e}visitObject(e){for(var t in e.vals)e.vals[t]=this.visit(e.vals[t]);return e}visitMember(e){var t=e.left,n=e.right,i=this.visit(t).first;if("object"!=i.nodeName)throw new Error(t.toString()+" has no property ."+n);return e.val&&(this.return++,i.set(n.name,this.visit(e.val)),this.return--),i.get(n.name)}visitKeyframes(e){var t;return e.fabricated?e:(e.val=this.interpolate(e).trim(),(t=this.lookup(e.val))&&(e.val=t.first.string||t.first.name),e.block=this.visit(e.block),"official"!=e.prefix?e:(this.vendors.forEach((function(t){if("ms"!=t){var n=e.clone();n.val=e.val,n.prefix=t,n.block=e.block,n.fabricated=!0,this.currentBlock.push(n)}}),this),ue.null))}visitFunction(e){var t=this.stack.currentFrame.scope.lookup(e.name);return t&&this.warn("local "+t.nodeName+' "'+e.name+'" previously defined in this scope'),this.functions[e.name]&&this.warn('user-defined function "'+e.name+'" is already defined'),z[e.name]&&this.warn('built-in function "'+e.name+'" is already defined'),e}visitEach(e){this.return++;var t,n,i=f(this.visit(e.expr)),r=i.nodes.length,a=new ue.Ident(e.val),o=new ue.Ident(e.key||"__index__"),h=this.currentScope,l=this.currentBlock,c=[],u=this;function visitBody(n,i){h.add(i),h.add(n),t=u.visit(e.block.clone()),c=c.concat(t.nodes)}if(this.return--,e.block.scope=!1,1==r&&"object"==i.nodes[0].nodeName)for(var m in(n=i.nodes[0]).vals)a.val=new ue.String(m),o.val=n.get(m),visitBody(o,a);else for(var d=0;d200)throw new RangeError("Maximum stylus call stack size exceeded");"expression"==i.nodeName&&(i=i.first),this.return++;var r=this.visit(e.args);for(var a in r.map)r.map[a]=this.visit(r.map[a].clone());return this.return--,i.fn?n=this.invokeBuiltin(i.fn,r):"function"==i.nodeName&&(e.block&&(e.block=this.visit(e.block)),n=this.invokeFunction(i,r,e.block)),this.calling.pop(),this.ignoreColors=!1,n}visitIdent(e){var t;if(e.property)return(t=this.lookupProperty(e.name))?this.visit(t.expr.clone()):ue.null;if(e.val.isNull){var n=this.lookup(e.name);return n&&e.mixin&&this.mixinNode(n),n?this.visit(n):e}return this.return++,e.val=this.visit(e.val),this.return--,this.currentScope.add(e),e.val}visitBinOp(e){if("is defined"==e.op)return this.isDefined(e.left);this.return++;var t=e.op,n=this.visit(e.left),i="||"==t||"&&"==t?e.right:this.visit(e.right),r=e.val?this.visit(e.val):null;this.return--;try{return this.visit(n.operate(t,i,r))}catch(e){if("CoercionError"==e.name)switch(t){case"==":return ue.false;case"!=":return ue.true}throw e}}visitUnaryOp(e){var t=e.op,n=this.visit(e.expr);switch("!"!=t&&(n=n.first.clone(),_export_assertType_(n,"unit")),t){case"-":n.val=-n.val;break;case"+":n.val=+n.val;break;case"~":n.val=~n.val;break;case"!":return n.toBoolean().negate()}return n}visitTernary(e){return this.visit(e.cond).toBoolean().isTrue?this.visit(e.trueExpr):this.visit(e.falseExpr)}visitExpression(e){for(var t=0,n=e.nodes.length;t1)for(var a=0;a=":return new ue.Boolean(this.hash>=t.hash);case"<=":return new ue.Boolean(this.hash<=t.hash);case">":return new ue.Boolean(this.hash>t.hash);case"<":return new ue.Boolean(this.hash=0?e:360+e}function clampPercentage(e){return Math.max(0,Math.min(e,100))}ie=class HSLA extends ee{constructor(e,t,n,i){var r;super(),this.h=clampDegrees(e),this.s=clampPercentage(t),this.l=clampPercentage(n),this.a=(r=i,Math.max(0,Math.min(r,1))),this.hsla=this}toString(){return"hsla("+this.h+","+this.s.toFixed(0)+"%,"+this.l.toFixed(0)+"%,"+this.a+")"}clone(e){var t=new HSLA(this.h,this.s,this.l,this.a);return t.lineno=this.lineno,t.column=this.column,t.filename=this.filename,t}toJSON(){return{__type:"HSLA",h:this.h,s:this.s,l:this.l,a:this.a,lineno:this.lineno,column:this.column,filename:this.filename}}get rgba(){return ue.RGBA.fromHSLA(this)}get hash(){return this.rgba.toString()}add(e,t,n){return new HSLA(this.h+e,this.s+t,this.l+n,this.a)}sub(e,t,n){return this.add(-e,-t,-n)}operate(e,t){switch(e){case"==":case"!=":case"<=":case">=":case"<":case">":case"is a":case"||":case"&&":return this.rgba.operate(e,t);default:return this.rgba.operate(e,t).hsla}}adjustLightness(e){return this.l=clampPercentage(this.l+this.l*(e/100)),this}adjustHue(e){return this.h=clampDegrees(this.h+e),this}static fromRGBA(e){var t,n,i=e.r/255,r=e.g/255,a=e.b/255,o=e.a,h=Math.min(i,r,a),l=Math.max(i,r,a),c=(l+h)/2,u=l-h;switch(l){case h:t=0;break;case i:t=60*(r-a)/u;break;case r:t=60*(a-i)/u+120;break;case a:t=60*(i-r)/u+240}return n=l==h?0:c<.5?u/(2*c):u/(2-2*c),new HSLA(t%=360,n*=100,c*=100,o)}};var ae=z.adjust;function clamp(e){return Math.max(0,Math.min(e.toFixed(0),255))}re=class RGBA extends ee{constructor(e,t,n,i){var r;super(),this.r=clamp(e),this.g=clamp(t),this.b=clamp(n),this.a=(r=i,Math.max(0,Math.min(r,1))),this.name="",this.rgba=this}static withoutClamping(e,t,n,i){var r=new RGBA(0,0,0,0);return r.r=e,r.g=t,r.b=n,r.a=i,r}clone(){var e=new RGBA(this.r,this.g,this.b,this.a);return e.raw=this.raw,e.name=this.name,e.lineno=this.lineno,e.column=this.column,e.filename=this.filename,e}toJSON(){return{__type:"RGBA",r:this.r,g:this.g,b:this.b,a:this.a,raw:this.raw,name:this.name,lineno:this.lineno,column:this.column,filename:this.filename}}toBoolean(){return ue.true}get hsla(){return ie.fromRGBA(this)}get hash(){return this.toString()}add(e,t,n,i){return new RGBA(this.r+e,this.g+t,this.b+n,this.a+i)}sub(e,t,n,i){return new RGBA(this.r-e,this.g-t,this.b-n,1==i?this.a:this.a-i)}multiply(e){return new RGBA(this.r*e,this.g*e,this.b*e,this.a)}divide(e){return new RGBA(this.r/e,this.g/e,this.b/e,this.a)}operate(e,t){switch("in"!=e&&(t=t.first),e){case"is a":if("string"==t.nodeName&&"color"==t.string)return ue.true;break;case"+":switch(t.nodeName){case"unit":var n=t.val;switch(t.type){case"%":return ae(this,new ue.String("lightness"),t);case"deg":return this.hsla.adjustHue(n).rgba;default:return this.add(n,n,n,0)}case"rgba":return this.add(t.r,t.g,t.b,t.a);case"hsla":return this.hsla.add(t.h,t.s,t.l)}break;case"-":switch(t.nodeName){case"unit":n=t.val;switch(t.type){case"%":return ae(this,new ue.String("lightness"),new ue.Unit(-n,"%"));case"deg":return this.hsla.adjustHue(-n).rgba;default:return this.sub(n,n,n,0)}case"rgba":return this.sub(t.r,t.g,t.b,t.a);case"hsla":return this.hsla.sub(t.h,t.s,t.l)}break;case"*":if("unit"===t.nodeName)return this.multiply(t.val);break;case"/":if("unit"===t.nodeName)return this.divide(t.val)}return super.operate(e,t)}toString(){function pad(e){return e<16?"0"+e.toString(16):e.toString(16)}if("transparent"==this.name)return this.name;if(1==this.a){var e=pad(this.r),t=pad(this.g),n=pad(this.b);return e[0]==e[1]&&t[0]==t[1]&&n[0]==n[1]?"#"+e[0]+t[0]+n[0]:"#"+e+t+n}return"rgba("+this.r+","+this.g+","+this.b+","+ +this.a.toFixed(3)+")"}static fromHSLA(e){var t=e.h/360,n=e.s/100,i=e.l/100,r=e.a,a=i<=.5?i*(n+1):i+n-i*n,o=2*i-a,h=255*hue(t+1/3),l=255*hue(t),c=255*hue(t-1/3);function hue(e){return e<0&&++e,e>1&&--e,6*e<1?o+(a-o)*e*6:2*e<1?a:3*e<2?o+(a-o)*(2/3-e)*6:o}return new RGBA(h,l,c,r)}};var oe=class Atrule extends ee{constructor(e){super(),this.type=e}get hasOnlyProperties(){if(!this.block)return!1;for(var e=this.block.nodes,t=0,n=e.length;tu;)i.nodes[t]=ue.null;i.nodes[r]=n}else e.string&&(a=i.nodes[0])&&"object"==a.nodeName&&a.set(e.string,n.clone())})),n;case"[]":var a,o=new ue.Expression,h=f(this).nodes;return(r=f(t).nodes).forEach((function(e){"unit"==e.nodeName?a=h[e.val<0?h.length+e.val:e.val]:"object"==h[0].nodeName&&(a=h[0].get(e.string)),a&&o.push(a)})),o.isEmpty?ue.null:f(o);case"||":return this.toBoolean().isTrue?this:t;case"in":return super.operate(e,t);case"!=":return this.operate("==",t,n).negate();case"==":var l,c,u=this.nodes.length;t=t.toExpression();if(u!=t.nodes.length)return ue.false;for(var m=0;m1?ue.true:this.first.toBoolean()}toString(){return"("+this.nodes.map((function(e){return e.toString()})).join(this.isList?", ":" ")+")"}toJSON(){return{__type:"Expression",isList:this.isList,preserve:this.preserve,lineno:this.lineno,column:this.column,filename:this.filename,nodes:this.nodes}}},ce=le;const ue={ /*! * Stylus - nodes * Copyright (c) Automattic * MIT Licensed */ -lineno:null,column:null,filename:null};de.Node=ie,de.Root=class Root extends ie{constructor(){super(),this.nodes=[]}push(e){this.nodes.push(e)}unshift(e){this.nodes.unshift(e)}clone(){var e=new Root;return e.lineno=this.lineno,e.column=this.column,e.filename=this.filename,this.nodes.forEach((function(t){e.push(t.clone(e,e))})),e}toString(){return"[Root]"}toJSON(){return{__type:"Root",nodes:this.nodes,lineno:this.lineno,column:this.column,filename:this.filename}}},de.Null=class Null extends ie{toString(){return"null"}inspect(){return"null"}toBoolean(){return de.false}get isNull(){return!0}get hash(){return null}toJSON(){return{__type:"Null",lineno:this.lineno,column:this.column,filename:this.filename}}},de.Each=class Each extends ie{constructor(e,t,n,i){super(),this.val=e,this.key=t,this.expr=n,this.block=i}clone(e){var t=new Each(this.val,this.key);return t.expr=this.expr.clone(e,t),t.block=this.block.clone(e,t),t.lineno=this.lineno,t.column=this.column,t.filename=this.filename,t}toJSON(){return{__type:"Each",val:this.val,key:this.key,expr:this.expr,block:this.block,lineno:this.lineno,column:this.column,filename:this.filename}}},de.If=class If extends ie{constructor(e,t){super(),this.cond=e,this.elses=[],t&&t.nodeName?this.block=t:this.negate=t}clone(e){var t=new If;return t.cond=this.cond.clone(e,t),t.block=this.block.clone(e,t),t.elses=this.elses.map((function(n){return n.clone(e,t)})),t.negate=this.negate,t.postfix=this.postfix,t.lineno=this.lineno,t.column=this.column,t.filename=this.filename,t}toJSON(){return{__type:"If",cond:this.cond,block:this.block,elses:this.elses,negate:this.negate,postfix:this.postfix,lineno:this.lineno,column:this.column,filename:this.filename}}},de.Call=class Call extends ie{constructor(e,t){super(),this.name=e,this.args=t}clone(e){var t=new Call(this.name);return t.args=this.args.clone(e,t),this.block&&(t.block=this.block.clone(e,t)),t.lineno=this.lineno,t.column=this.column,t.filename=this.filename,t}toString(){var e=this.args.nodes.map((function(e){var t=e.toString();return t.slice(1,t.length-1)})).join(", ");return this.name+"("+e+")"}toJSON(){var e={__type:"Call",name:this.name,args:this.args,lineno:this.lineno,column:this.column,filename:this.filename};return this.block&&(e.block=this.block),e}},de.UnaryOp=class UnaryOp extends ie{constructor(e,t){super(),this.op=e,this.expr=t}clone(e){var t=new UnaryOp(this.op);return t.expr=this.expr.clone(e,t),t.lineno=this.lineno,t.column=this.column,t.filename=this.filename,t}toJSON(){return{__type:"UnaryOp",op:this.op,expr:this.expr,lineno:this.lineno,column:this.column,filename:this.filename}}},de.BinOp=class BinOp extends ie{constructor(e,t,n){super(),this.op=e,this.left=t,this.right=n}clone(e){var t=new BinOp(this.op);return t.left=this.left.clone(e,t),t.right=this.right&&this.right.clone(e,t),t.lineno=this.lineno,t.column=this.column,t.filename=this.filename,this.val&&(t.val=this.val.clone(e,t)),t}toString(){return this.left.toString()+" "+this.op+" "+this.right.toString()}toJSON(){var e={__type:"BinOp",left:this.left,right:this.right,op:this.op,lineno:this.lineno,column:this.column,filename:this.filename};return this.val&&(e.val=this.val),e}},de.Ternary=class Ternary extends ie{constructor(e,t,n){super(),this.cond=e,this.trueExpr=t,this.falseExpr=n}clone(e){var t=new Ternary;return t.cond=this.cond.clone(e,t),t.trueExpr=this.trueExpr.clone(e,t),t.falseExpr=this.falseExpr.clone(e,t),t.lineno=this.lineno,t.column=this.column,t.filename=this.filename,t}toJSON(){return{__type:"Ternary",cond:this.cond,trueExpr:this.trueExpr,falseExpr:this.falseExpr,lineno:this.lineno,column:this.column,filename:this.filename}}},de.Block=class Block extends ie{constructor(e,t){super(),this.nodes=[],this.parent=e,this.node=t,this.scope=!0}get hasProperties(){for(var e=0,t=this.nodes.length;e=r:--i>r);return a}return super.operate(e,t)}coerce(e){if("unit"==e.nodeName){var t=this,n=e,i=re[t.type],r=re[n.type];if(i&&r&&i.label==r.label){var a=n.val*(r.val/i.val);return new de.Unit(a,t.type)}return new de.Unit(n.val,t.type)}if("string"==e.nodeName){if("%"==e.val)return new de.Unit(0,"%");var o=parseFloat(e.val);return isNaN(o)&&super.coerce(e),new de.Unit(o)}return super.coerce(e)}},de.String=class String extends ie{constructor(e,t){super(),this.val=e,this.string=e,this.prefixed=!1,this.quote="string"!=typeof t?"'":t}toString(){return this.quote+this.val+this.quote}clone(){var e=new String(this.val,this.quote);return e.lineno=this.lineno,e.column=this.column,e.filename=this.filename,e}toJSON(){return{__type:"String",val:this.val,quote:this.quote,lineno:this.lineno,column:this.column,filename:this.filename}}toBoolean(){return new de.Boolean(this.val.length)}coerce(e){switch(e.nodeName){case"string":return e;case"expression":return new String(e.nodes.map((function(e){return this.coerce(e).val}),this).join(" "));default:return new String(e.toString())}}operate(e,t){switch(e){case"%":(i=new de.Expression).push(this);var n="expression"==t.nodeName?v(t).nodes:[t];return ae.apply(null,[i].concat(n));case"+":var i;return(i=new de.Expression).push(new String(this.val+this.coerce(t).val)),i;default:return super.operate(e,t)}}},de.HSLA=oe,de.RGBA=he,de.Ident=class Ident extends ie{constructor(e,t,n){super(),this.name=e,this.string=e,this.val=t||de.null,this.mixin=!!n}get isEmpty(){return null==this.val}get hash(){return this.name}clone(e){var t=new Ident(this.name);return t.val=this.val.clone(e,t),t.mixin=this.mixin,t.lineno=this.lineno,t.column=this.column,t.filename=this.filename,t.property=this.property,t.rest=this.rest,t}toJSON(){return{__type:"Ident",name:this.name,val:this.val,mixin:this.mixin,property:this.property,rest:this.rest,lineno:this.lineno,column:this.column,filename:this.filename}}toString(){return this.name}coerce(e){switch(e.nodeName){case"ident":case"string":case"literal":return new Ident(e.string);case"unit":return new Ident(e.toString());default:return super.coerce(e)}}operate(e,t){var n=t.first;switch(e){case"-":if("unit"==n.nodeName){var i=new de.Expression;return(n=n.clone()).val=-n.val,i.push(this),i.push(n),i}case"+":return new de.Ident(this.string+this.coerce(n).string)}return super.operate(e,t)}},de.Group=class Group extends ie{constructor(){super(),this.nodes=[],this.extends=[]}push(e){this.nodes.push(e)}get block(){return this.nodes[0].block}set block(e){for(var t=0,n=this.nodes.length;t=r:--i>r);return a}return super.operate(e,t)}coerce(e){if("unit"==e.nodeName){var t=this,n=e,i=te[t.type],r=te[n.type];if(i&&r&&i.label==r.label){var a=n.val*(r.val/i.val);return new ue.Unit(a,t.type)}return new ue.Unit(n.val,t.type)}if("string"==e.nodeName){if("%"==e.val)return new ue.Unit(0,"%");var o=parseFloat(e.val);return isNaN(o)&&super.coerce(e),new ue.Unit(o)}return super.coerce(e)}},ue.String=class String extends ee{constructor(e,t){super(),this.val=e,this.string=e,this.prefixed=!1,this.quote="string"!=typeof t?"'":t}toString(){return this.quote+this.val+this.quote}clone(){var e=new String(this.val,this.quote);return e.lineno=this.lineno,e.column=this.column,e.filename=this.filename,e}toJSON(){return{__type:"String",val:this.val,quote:this.quote,lineno:this.lineno,column:this.column,filename:this.filename}}toBoolean(){return new ue.Boolean(this.val.length)}coerce(e){switch(e.nodeName){case"string":return e;case"expression":return new String(e.nodes.map((function(e){return this.coerce(e).val}),this).join(" "));default:return new String(e.toString())}}operate(e,t){switch(e){case"%":(i=new ue.Expression).push(this);var n="expression"==t.nodeName?f(t).nodes:[t];return se.apply(null,[i].concat(n));case"+":var i;return(i=new ue.Expression).push(new String(this.val+this.coerce(t).val)),i;default:return super.operate(e,t)}}},ue.HSLA=ie,ue.RGBA=re,ue.Ident=class Ident extends ee{constructor(e,t,n){super(),this.name=e,this.string=e,this.val=t||ue.null,this.mixin=!!n}get isEmpty(){return null==this.val}get hash(){return this.name}clone(e){var t=new Ident(this.name);return t.val=this.val.clone(e,t),t.mixin=this.mixin,t.lineno=this.lineno,t.column=this.column,t.filename=this.filename,t.property=this.property,t.rest=this.rest,t}toJSON(){return{__type:"Ident",name:this.name,val:this.val,mixin:this.mixin,property:this.property,rest:this.rest,lineno:this.lineno,column:this.column,filename:this.filename}}toString(){return this.name}coerce(e){switch(e.nodeName){case"ident":case"string":case"literal":return new Ident(e.string);case"unit":return new Ident(e.toString());default:return super.coerce(e)}}operate(e,t){var n=t.first;switch(e){case"-":if("unit"==n.nodeName){var i=new ue.Expression;return(n=n.clone()).val=-n.val,i.push(this),i.push(n),i}case"+":return new ue.Ident(this.string+this.coerce(n).string)}return super.operate(e,t)}},ue.Group=class Group extends ee{constructor(){super(),this.nodes=[],this.extends=[]}push(e){this.nodes.push(e)}get block(){return this.nodes[0].block}set block(e){for(var t=0,n=this.nodes.length;t * MIT Licensed */ -class ParseError extends Error{constructor(e){super(),this.name="ParseError",this.message=e,Error.captureStackTrace&&Error.captureStackTrace(this,ParseError)}}class SyntaxError extends Error{constructor(e){super(),this.name="SyntaxError",this.message=e,Error.captureStackTrace&&Error.captureStackTrace(this,ParseError)}}let me;var ve={and:"&&",or:"||",is:"==",isnt:"!=","is not":"!=",":=":"?="};me=class Lexer{constructor(e,t){function comment(e,t,n,i){var r=i.lastIndexOf("/*",n)>i.lastIndexOf("*/",n),a=i.lastIndexOf("//",n),o=i.lastIndexOf("\n",n),h=0,l=0;if(~a&&a>o)for(;o!=n;){if("'"==i[o]&&(l?l--:l++),'"'==i[o]&&(h?h--:h++),"/"==i[o]&&"/"==i[o+1]){r=!l&&!h;break}++o}return r?e:","===t&&/^[,\t\n]+$/.test(e)?e.replace(/\n/,"\r"):t+"\r"}this.stash=[],this.indentStack=[],this.indentRe=null,this.lineno=1,this.column=1,"\ufeff"==e.charAt(0)&&(e=e.slice(1)),this.str=e.replace(/\s+$/,"\n").replace(/\r\n?/g,"\n").replace(/\\ *\n/g,"\r").replace(/([,(:](?!\/\/[^ ])) *(?:\/\/[^\n]*|\/\*.*?\*\/)?\n\s*/g,comment).replace(/\s*\n[ \t]*([,)])/g,comment)}inspect(){for(var e,t=this.str,n=[];"eos"!=(e=this.next()).type;)n.push(e.inspect());return this.str=t,n.concat(e.inspect()).join("\n")}lookahead(e){for(var t=e-this.stash.length;t-- >0;)this.stash.push(this.advance());return this.stash[--e]}skip(e){var t=e[0];e=t?t.length:e,this.str=this.str.substr(e),t?this.move(t):this.column+=e}move(e){var t=e.match(/\n/g),n=e.lastIndexOf("\n");t&&(this.lineno+=t.length),this.column=~n?e.length-n:this.column+e.length}next(){var e=this.stashed()||this.advance();return this.prev=e,e}isPartOfSelector(){var e=this.stash[this.stash.length-1]||this.prev;switch(e&&e.type){case"color":return 2==e.val.raw.length;case".":case"[":return!0}return!1}advance(){var e=this.column,t=this.lineno,n=this.eos()||this.null()||this.sep()||this.keyword()||this.urlchars()||this.comment()||this.newline()||this.escaped()||this.important()||this.literal()||this.anonFunc()||this.atrule()||this.function()||this.brace()||this.paren()||this.color()||this.string()||this.unit()||this.namedop()||this.boolean()||this.unicode()||this.ident()||this.op()||function(){var n=this.eol();return n&&(e=n.column,t=n.lineno),n}.call(this)||this.space()||this.selector();return n.lineno=t,n.column=e,n}peek(){return this.lookahead(1)}stashed(){return this.stash.shift()}eos(){if(!this.str.length)return this.indentStack.length?(this.indentStack.shift(),new t("outdent")):new t("eos")}urlchars(){var e;if(this.isURL)return(e=/^[\/:@.;?&=*!,<>#%0-9]+/.exec(this.str))?(this.skip(e),new t("literal",new de.Literal(e[0]))):void 0}sep(){var e;if(e=/^;[ \t]*/.exec(this.str))return this.skip(e),new t(";")}eol(){if("\r"==this.str[0]){for(++this.lineno,this.skip(1),this.column=1;this.space(););return this.advance()}}space(){var e;if(e=/^([ \t]+)/.exec(this.str))return this.skip(e),new t("space")}escaped(){var e;if(e=/^\\(.)[ \t]*/.exec(this.str)){var n=e[1];return this.skip(e),new t("ident",new de.Literal(n))}}literal(){var e;if(e=/^@css[ \t]*\{/.exec(this.str)){this.skip(e);for(var n,i,r=1,a="";n=this.str[0];){switch(this.str=this.str.substr(1),n){case"{":++r;break;case"}":--r;break;case"\n":case"\r":++this.lineno}if(a+=n,!r)break}return a=a.replace(/\s*}$/,""),(i=new de.Literal(a)).css=!0,new t("literal",i)}}important(){var e;if(e=/^!important[ \t]*/.exec(this.str))return this.skip(e),new t("ident",new de.Literal("!important"))}brace(){var e;if(e=/^([{}])/.exec(this.str)){this.skip(1);var n=e[1];return new t(n,n)}}paren(){var e;if(e=/^([()])([ \t]*)/.exec(this.str)){var n=e[1];this.skip(e),")"==n&&(this.isURL=!1);var i=new t(n,n);return i.space=e[2],i}}null(){var e;if(e=/^(null)\b[ \t]*/.exec(this.str))return this.skip(e),this.isPartOfSelector()?new t("ident",new de.Ident(e[0])):new t("null",de.null)}keyword(){var e;if(e=/^(return|if|else|unless|for|in)\b(?!-)[ \t]*/.exec(this.str)){var n=e[1];return this.skip(e),this.isPartOfSelector()?new t("ident",new de.Ident(e[0])):new t(n,n)}}namedop(){var e,n;if(e=/^(not|and|or|is a|is defined|isnt|is not|is)(?!-)\b([ \t]*)/.exec(this.str)){var i=e[1];return this.skip(e),(n=this.isPartOfSelector()?new t("ident",new de.Ident(e[0])):new t(i=ve[i]||i,i)).space=e[2],n}}op(){var e;if(e=/^([.]{1,3}|&&|\|\||[!<>=?:]=|\*\*|[-+*\/%]=?|[,=?:!~<>&\[\]])([ \t]*)/.exec(this.str)){var n=e[1];this.skip(e);var i=new t(n=ve[n]||n,n);return i.space=e[2],this.isURL=!1,i}}anonFunc(){var e;if("@"==this.str[0]&&"("==this.str[1])return this.skip(2),(e=new t("function",new de.Ident("anonymous"))).anonymous=!0,e}atrule(){var e;if(e=/^@(?!apply)(?:-(\w+)-)?([a-zA-Z0-9-_]+)[ \t]*/.exec(this.str)){this.skip(e);var n=e[1],i=e[2];switch(i){case"require":case"import":case"charset":case"namespace":case"media":case"scope":case"supports":return new t(i);case"document":return new t("-moz-document");case"block":return new t("atblock");case"extend":case"extends":return new t("extend");case"keyframes":return new t(i,n);default:return new t("atrule",n?"-"+n+"-"+i:i)}}}comment(){if("/"==this.str[0]&&"/"==this.str[1])return-1==(e=this.str.indexOf("\n"))&&(e=this.str.length),this.skip(e),this.advance();if("/"==this.str[0]&&"*"==this.str[1]){var e;-1==(e=this.str.indexOf("*/"))&&(e=this.str.length);var n=this.str.substr(0,e+2),i=n.split(/\n|\r/).length-1,r=!0,a=!1;return this.lineno+=i,this.skip(e+2),"!"==n[2]&&(n=n.replace("*!","*"),r=!1),this.prev&&";"==this.prev.type&&(a=!0),new t("comment",new de.Comment(n,r,a))}}boolean(){var e;if(e=/^(true|false)\b([ \t]*)/.exec(this.str)){var n=new de.Boolean("true"==e[1]);this.skip(e);var i=new t("boolean",n);return i.space=e[2],i}}unicode(){var e;if(e=/^u\+[0-9a-f?]{1,6}(?:-[0-9a-f]{1,6})?/i.exec(this.str))return this.skip(e),new t("literal",new de.Literal(e[0]))}function(){var e;if(e=/^(-*[_a-zA-Z$][-\w\d$]*)\(([ \t]*)/.exec(this.str)){var n=e[1];this.skip(e),this.isURL="url"==n;var i=new t("function",new de.Ident(n));return i.space=e[2],i}}ident(){var e;if(e=/^-*([_a-zA-Z$]|@apply)[-\w\d$]*/.exec(this.str))return this.skip(e),new t("ident",new de.Ident(e[0]))}newline(){var e,n;if(this.indentRe?e=this.indentRe.exec(this.str):((e=(n=/^\n([\t]*)[ \t]*/).exec(this.str))&&!e[1].length&&(e=(n=/^\n([ \t]*)/).exec(this.str)),e&&e[1].length&&(this.indentRe=n)),e){var i,r=e[1].length;if(this.skip(e)," "===this.str[0]||"\t"===this.str[0])throw new SyntaxError("Invalid indentation. You can use tabs or spaces to indent, but not both.");if("\n"==this.str[0])return this.advance();if(this.indentStack.length&&rr;)this.stash.push(new t("outdent")),this.indentStack.shift();i=this.stash.pop()}else r&&r!=this.indentStack[0]?(this.indentStack.unshift(r),i=new t("indent")):i=new t("newline");return i}}unit(){var e;if(e=/^(-)?(\d+\.\d+|\d+|\.\d+)(%|[a-zA-Z]+)?[ \t]*/.exec(this.str)){this.skip(e);var n=parseFloat(e[2]);"-"==e[1]&&(n=-n);var i=new de.Unit(n,e[3]);return i.raw=e[0],new t("unit",i)}}string(){var e;if(e=/^("[^"]*"|'[^']*')[ \t]*/.exec(this.str)){var n=e[1],i=e[0][0];return this.skip(e),n=n.slice(1,-1).replace(/\\n/g,"\n"),new t("string",new de.String(n,i))}}color(){return this.rrggbbaa()||this.rrggbb()||this.rgba()||this.rgb()||this.nn()||this.n()}n(){var e;if(e=/^#([a-fA-F0-9]{1})[ \t]*/.exec(this.str)){this.skip(e);var n=parseInt(e[1]+e[1],16),i=new de.RGBA(n,n,n,1);return i.raw=e[0],new t("color",i)}}nn(){var e;if(e=/^#([a-fA-F0-9]{2})[ \t]*/.exec(this.str)){this.skip(e);var n=parseInt(e[1],16),i=new de.RGBA(n,n,n,1);return i.raw=e[0],new t("color",i)}}rgb(){var e;if(e=/^#([a-fA-F0-9]{3})[ \t]*/.exec(this.str)){this.skip(e);var n=e[1],i=parseInt(n[0]+n[0],16),r=parseInt(n[1]+n[1],16),a=parseInt(n[2]+n[2],16),o=new de.RGBA(i,r,a,1);return o.raw=e[0],new t("color",o)}}rgba(){var e;if(e=/^#([a-fA-F0-9]{4})[ \t]*/.exec(this.str)){this.skip(e);var n=e[1],i=parseInt(n[0]+n[0],16),r=parseInt(n[1]+n[1],16),a=parseInt(n[2]+n[2],16),o=parseInt(n[3]+n[3],16),h=new de.RGBA(i,r,a,o/255);return h.raw=e[0],new t("color",h)}}rrggbb(){var e;if(e=/^#([a-fA-F0-9]{6})[ \t]*/.exec(this.str)){this.skip(e);var n=e[1],i=parseInt(n.substr(0,2),16),r=parseInt(n.substr(2,2),16),a=parseInt(n.substr(4,2),16),o=new de.RGBA(i,r,a,1);return o.raw=e[0],new t("color",o)}}rrggbbaa(){var e;if(e=/^#([a-fA-F0-9]{8})[ \t]*/.exec(this.str)){this.skip(e);var n=e[1],i=parseInt(n.substr(0,2),16),r=parseInt(n.substr(2,2),16),a=parseInt(n.substr(4,2),16),o=parseInt(n.substr(6,2),16),h=new de.RGBA(i,r,a,o/255);return h.raw=e[0],new t("color",h)}}selector(){var e;if(e=/^\^|.*?(?=\/\/(?![^\[]*\])|[,\n{])/.exec(this.str)){var n=e[0];return this.skip(e),new t("selector",n)}}};var ge=class NullCache{set(e,t){}get(e){}has(e){return!1}key(e,t){return""}},ke=65407===new Uint16Array(new Uint8Array([127,255]).buffer)[0];function hexify(e){for(var t="",n=8;n--;)t+=(e>>>(n<<2)&15).toString(16);return t}function parity(e,t,n){return e^t^n}function majority(e,t,n){return e&t^e&n^t&n}function rotateLeft(e,t){return e<>>32-t}var we=new Uint32Array(80),be=class MemoryCache{constructor(e){e=e||{},this.limit=e["cache limit"]||256,this._cache={},this.length=0,this.head=this.tail=null}set(e,t){var n,i=t.clone();i.filename=de.filename,i.lineno=de.lineno,i.column=de.column,n={key:e,value:i},this._cache[e]=n,this.tail?(this.tail.next=n,n.prev=this.tail):this.head=n,this.tail=n,this.length++==this.limit&&this.purge()}get(e){var t=this._cache[e],n=t.value.clone();return t==this.tail||(t.next&&(t==this.head&&(this.head=t.next),t.next.prev=t.prev),t.prev&&(t.prev.next=t.next),t.next=null,t.prev=this.tail,this.tail&&(this.tail.next=t),this.tail=t),n}has(e){return!!this._cache[e]}key(e,t){var n=function createHash(){let e="";return{update:function update(t){e+=t},digest:function digest(){return function sha1(e){if(!(e instanceof Uint8Array))throw new TypeError("Input data must be a Uint8Array.");var t,n=new ArrayBuffer(function align(e,t){var n=t-1;return e+n&~n}(e.byteLength+9,64)),i=new Uint32Array(n),r=new Uint8Array(n);if(r.set(e),r[e.byteLength]=128,ke)for(var a=0,o=i.length;a>24&255|t>>8&65280|t<<8&16711680|t<<24&4278190080;var h=8*e.byteLength;i[i.length-2]=h/Math.pow(2,32),i[i.length-1]=h;for(var l,c=1732584193,u=4023233417,f=2562383102,d=271733878,m=3285377520,v=void 0,g=void 0,k=void 0,w=void 0,b=void 0,y=void 0,x=void 0,S=0,N=i.length;S","=",":","&","&&","~","{","}",".","..","/"],Se=["is","has","where","not","dir","lang","any-link","link","visited","local-link","target","scope","hover","active","focus","drop","current","past","future","enabled","disabled","read-only","read-write","placeholder-shown","checked","indeterminate","valid","invalid","in-range","out-of-range","required","optional","user-error","root","empty","blank","nth-child","nth-last-child","first-child","last-child","only-child","nth-of-type","nth-last-of-type","first-of-type","last-of-type","only-of-type","nth-match","nth-last-match","nth-column","nth-last-column","first-line","first-letter","before","after","selection"],Ne=class Parser{constructor(e,t){var n=this;t=t||{},Parser.cache=Parser.cache||Parser.getCache(t),this.hash=Parser.cache.key(e,t),this.lexer={},Parser.cache.has(this.hash)||(this.lexer=new me(e,t)),this.prefix=t.prefix||"",this.root=t.root||new de.Root,this.state=["root"],this.stash=[],this.parens=0,this.css=0,this.state.pop=function(){n.prevState=[].pop.call(this)}}static getCache(e){return!1===e.cache?getCache(!1):getCache(e.cache||"memory",e)}currentState(){return this.state[this.state.length-1]}previousState(){return this.state[this.state.length-2]}parse(){var e=this.parent=this.root;if(Parser.cache.has(this.hash))"block"==(e=Parser.cache.get(this.hash)).nodeName&&(e.constructor=de.Root);else{for(;"eos"!=this.peek().type&&(this.skipWhitespace(),"eos"!=this.peek().type);){var t=this.statement();this.accept(";"),t||this.error("unexpected token {peek}, not allowed at the root level"),e.push(t)}Parser.cache.set(this.hash,e)}return e}error(e){var t=this.peek().type,n=null==this.peek().val?"":" "+this.peek().toString();throw n.trim()==t.trim()&&(n=""),new ParseError(e.replace("{peek}",'"'+t+n+'"'))}accept(e){if(e==this.peek().type)return this.next()}expect(e){return e!=this.peek().type&&this.error('expected "'+e+'", got {peek}'),this.next()}next(){var e=this.stash.length?this.stash.pop():this.lexer.next(),t=e.lineno,n=e.column||1;return e.val&&e.val.nodeName&&(e.val.lineno=t,e.val.column=n),de.lineno=t,de.column=n,ye.lexer("%s %s",e.type,e.val||""),e}peek(){return this.lexer.peek()}lookahead(e){return this.lexer.lookahead(e)}isSelectorToken(e){var t=this.lookahead(e).type;switch(t){case"for":return this.bracketed;case"[":return this.bracketed=!0,!0;case"]":return this.bracketed=!1,!0;default:return~xe.indexOf(t)}}isPseudoSelector(e){var t=this.lookahead(e).val;return t&&~Se.indexOf(t.name)}lineContains(e){for(var t,n=1;t=this.lookahead(n++);){if(~["indent","outdent","newline","eos"].indexOf(t.type))return;if(e==t.type)return!0}}selectorToken(){if(this.isSelectorToken(1)){if("{"==this.peek().type){if(!this.lineContains("}"))return;for(var e,t=0;e=this.lookahead(++t);){if("}"==e.type){if(2==t||3==t&&"space"==this.lookahead(t-1).type)return;break}if(":"==e.type)return}}return this.next()}}skip(e){for(;~e.indexOf(this.peek().type);)this.next()}skipWhitespace(){this.skip(["space","indent","outdent","newline"])}skipNewlines(){for(;"newline"==this.peek().type;)this.next()}skipSpaces(){for(;"space"==this.peek().type;)this.next()}skipSpacesAndComments(){for(;"space"==this.peek().type||"comment"==this.peek().type;)this.next()}looksLikeFunctionDefinition(e){return"indent"==this.lookahead(e).type||"{"==this.lookahead(e).type}looksLikeSelector(e){var t,n,i=1;if(e&&":"==this.lookahead(i+1).type&&(this.lookahead(i+1).space||"indent"==this.lookahead(i+2).type))return!1;for(;"ident"==this.lookahead(i).type&&("newline"==this.lookahead(i+1).type||","==this.lookahead(i+1).type);)i+=2;for(;this.isSelectorToken(i)||","==this.lookahead(i).type;){if("selector"==this.lookahead(i).type)return!0;if("&"==this.lookahead(i+1).type)return!0;if(i>1&&"ident"===this.lookahead(i-1).type&&"."===this.lookahead(i).type&&"ident"===this.lookahead(i+1).type){for(;t=this.lookahead(i+2);){if(-1!==["indent","outdent","{",";","eos","selector","media","if","atrule",")","}","unit","[","for","function"].indexOf(t.type)){if("["!==t.type){if(this.isPseudoSelector(i+2))return!0;if(")"===t.type&&this.lookahead(i+3)&&"}"===this.lookahead(i+3).type)break;return-1===["outdent",";","eos","media","if","atrule",")","}","unit","for","function"].indexOf(t.type)}for(;(t=this.lookahead(i+3))&&"]"!==t.type;){if(~[".","unit"].indexOf(t.type))return!1;i+=1}}i+=1}return!0}if("."==this.lookahead(i).type&&"ident"==this.lookahead(i+1).type)return!0;if("*"==this.lookahead(i).type&&"newline"==this.lookahead(i+1).type)return!0;if(":"==this.lookahead(i).type&&":"==this.lookahead(i+1).type)return!0;if("color"==this.lookahead(i).type&&"newline"==this.lookahead(i-1).type)return!0;if(this.looksLikeAttributeSelector(i))return!0;if(("="==this.lookahead(i).type||"function"==this.lookahead(i).type)&&"{"==this.lookahead(i+1).type)return!1;if(":"==this.lookahead(i).type&&!this.isPseudoSelector(i+1)&&this.lineContains("."))return!1;if("{"==this.lookahead(i).type?n=!0:"}"==this.lookahead(i).type&&(n=!1),n&&":"==this.lookahead(i).type)return!0;if("space"==this.lookahead(i).type&&"{"==this.lookahead(i+1).type)return!0;if(":"==this.lookahead(i++).type&&!this.lookahead(i-1).space&&this.isPseudoSelector(i))return!0;if("space"==this.lookahead(i).type&&"newline"==this.lookahead(i+1).type&&"{"==this.lookahead(i+2).type)return!0;if(","==this.lookahead(i).type&&"newline"==this.lookahead(i+1).type)return!0}if(","==this.lookahead(i).type&&"newline"==this.lookahead(i+1).type)return!0;if("{"==this.lookahead(i).type&&"newline"==this.lookahead(i+1).type)return!0;if(this.css&&(";"==this.lookahead(i).type||"}"==this.lookahead(i-1).type))return!1;for(;!~["indent","outdent","newline","for","if",";","}","eos"].indexOf(this.lookahead(i).type);)++i;return"indent"==this.lookahead(i).type||void 0}looksLikeAttributeSelector(e){var t=this.lookahead(e).type;return!("="!=t||!this.bracketed)||("ident"==t||"string"==t)&&"]"==this.lookahead(e+1).type&&("newline"==this.lookahead(e+2).type||this.isSelectorToken(e+2))&&!this.lineContains(":")&&!this.lineContains("=")}looksLikeKeyframe(){var e,t=2;switch(this.lookahead(t).type){case"{":case"indent":case",":return!0;case"newline":for(;"unit"==this.lookahead(++t).type||"newline"==this.lookahead(t).type;);return"indent"==(e=this.lookahead(t).type)||"{"==e}}stateAllowsSelector(){switch(this.currentState()){case"root":case"atblock":case"selector":case"conditional":case"function":case"atrule":case"for":return!0}}assignAtblock(e){try{e.push(this.atblock(e))}catch(e){this.error("invalid right-hand side operand in assignment, got {peek}")}}statement(){var e,t,n=this.stmt(),i=this.prevState;switch(this.allowPostfix&&(this.allowPostfix=!1,i="expression"),i){case"assignment":case"expression":case"function arguments":for(;t=this.accept("if")||this.accept("unless")||this.accept("for");)switch(t.type){case"if":case"unless":(n=new de.If(this.expression(),n)).postfix=!0,n.negate="unless"==t.type,this.accept(";");break;case"for":var r,a=this.id().name;this.accept(",")&&(r=this.id().name),this.expect("in");var o=new de.Each(a,r,this.expression());(e=new de.Block(this.parent,o)).push(n),o.block=e,n=o}}return n}stmt(){var e,t=this.peek();switch(t.type){case"keyframes":return this.keyframes();case"-moz-document":return this.mozdocument();case"comment":case"selector":case"literal":case"charset":case"namespace":case"import":case"require":case"extend":case"media":case"atrule":case"ident":case"scope":case"supports":case"unless":case"function":case"for":case"if":return this[t.type]();case"return":return this.return();case"{":return this.property();default:if(this.stateAllowsSelector())switch(t.type){case"color":case"~":case">":case"<":case":":case"&":case"&&":case"[":case".":case"/":return(e=this.selector()).column=t.column,e.lineno=t.lineno,e;case"..":if("/"==this.lookahead(2).type)return this.selector();case"+":return"function"==this.lookahead(2).type?this.functionCall():this.selector();case"*":return this.property();case"unit":if(this.looksLikeKeyframe())return(e=this.selector()).column=t.column,e.lineno=t.lineno,e;case"-":if("{"==this.lookahead(2).type)return this.property()}var n=this.expression();return n.isEmpty&&this.error("unexpected {peek}"),n}}block(e,t){var n,i,r,a=this.parent=new de.Block(this.parent,e);for(!1===t&&(a.scope=!1),this.accept("newline"),this.accept("{")?(this.css++,n="}",this.skipWhitespace()):(n="outdent",this.expect("indent"));n!=this.peek().type;){if(this.css){if(this.accept("newline")||this.accept("indent"))continue;i=this.statement(),this.accept(";"),this.skipWhitespace()}else{if(this.accept("newline"))continue;if(r=this.lookahead(2).type,"indent"==this.peek().type&&~["outdent","newline","comment"].indexOf(r)){this.skip(["indent","outdent"]);continue}if("eos"==this.peek().type)return a;i=this.statement(),this.accept(";")}i||this.error("unexpected token {peek} in block"),a.push(i)}return this.css?(this.skipWhitespace(),this.expect("}"),this.skipSpaces(),this.css--):this.expect("outdent"),this.parent=a.parent,a}comment(){var e=this.next().val;return this.skipSpaces(),e}for(){this.expect("for");var e,t=this.id().name;this.accept(",")&&(e=this.id().name),this.expect("in"),this.state.push("for"),this.cond=!0;var n=new de.Each(t,e,this.expression());return this.cond=!1,n.block=this.block(n,!1),this.state.pop(),n}return(){this.expect("return");var e=this.expression();return e.isEmpty?new de.Return:new de.Return(e)}unless(){this.expect("unless"),this.state.push("conditional"),this.cond=!0;var e=new de.If(this.expression(),!0);return this.cond=!1,e.block=this.block(e,!1),this.state.pop(),e}if(){var e=this.expect("if");this.state.push("conditional"),this.cond=!0;var t,n,i,r=new de.If(this.expression());for(r.column=e.column,this.cond=!1,r.block=this.block(r,!1),this.skip(["newline","comment"]);this.accept("else");){if(!(e=this.accept("if"))){r.elses.push(this.block(r,!1));break}this.cond=!0,t=this.expression(),this.cond=!1,n=this.block(r,!1),(i=new de.If(t,n)).column=e.column,r.elses.push(i),this.skip(["newline","comment"])}return this.state.pop(),r}atblock(e){return e||this.expect("atblock"),e=new de.Atblock,this.state.push("atblock"),e.block=this.block(e,!1),this.state.pop(),e}atrule(){var e,t=this.expect("atrule").val,n=new de.Atrule(t);return this.skipSpacesAndComments(),n.segments=this.selectorParts(),this.skipSpacesAndComments(),("indent"==(e=this.peek().type)||"{"==e||"newline"==e&&"{"==this.lookahead(2).type)&&(this.state.push("atrule"),n.block=this.block(n),this.state.pop()),n}scope(){this.expect("scope");var e=this.selectorParts().map((function(e){return e.val})).join("");return this.selectorScope=e.trim(),de.null}supports(){this.expect("supports");var e=new de.Supports(this.supportsCondition());return this.state.push("atrule"),e.block=this.block(e),this.state.pop(),e}supportsCondition(){var e=this.supportsNegation()||this.supportsOp();return e||(this.cond=!0,e=this.expression(),this.cond=!1),e}supportsNegation(){if(this.accept("not")){var e=new de.Expression;return e.push(new de.Literal("not")),e.push(this.supportsFeature()),e}}supportsOp(){var e,t,n=this.supportsFeature();if(n){for((t=new de.Expression).push(n);e=this.accept("&&")||this.accept("||");)t.push(new de.Literal("&&"==e.val?"and":"or")),t.push(this.supportsFeature());return t}}supportsFeature(){if(this.skipSpacesAndComments(),"("==this.peek().type){var e=this.lookahead(2).type;if("ident"==e||"{"==e)return this.feature();this.expect("(");var t=new de.Expression;return t.push(new de.Literal("(")),t.push(this.supportsCondition()),this.expect(")"),t.push(new de.Literal(")")),this.skipSpacesAndComments(),t}}extend(){var e,t,n,i=this.expect("extend"),r=[];do{(n=this.selectorParts()).length&&(e=new de.Selector(n),r.push(e),"!"===this.peek().type&&"ident"===(i=this.lookahead(2)).type&&"optional"===i.val.name&&(this.skip(["!","ident"]),e.optional=!0))}while(this.accept(","));return(t=new de.Extend(r)).lineno=i.lineno,t.column=i.column,t}media(){this.expect("media"),this.state.push("atrule");var e=new de.Media(this.queries());return e.block=this.block(e),this.state.pop(),e}queries(){var e=new de.QueryList,t=["comment","newline","space"];do{this.skip(t),e.push(this.query()),this.skip(t)}while(this.accept(","));return e}query(){var e,t,n,i=new de.Query;if("ident"==this.peek().type&&("."==this.lookahead(2).type||"["==this.lookahead(2).type))return this.cond=!0,e=this.expression(),this.cond=!1,i.push(new de.Feature(e.nodes)),i;if((t=this.accept("ident")||this.accept("not"))&&(t=new de.Literal(t.val.string||t.val),this.skipSpacesAndComments(),(n=this.accept("ident"))?(i.type=n.val,i.predicate=t):i.type=t,this.skipSpacesAndComments(),!this.accept("&&")))return i;do{i.push(this.feature())}while(this.accept("&&"));return i}feature(){this.skipSpacesAndComments(),this.expect("("),this.skipSpacesAndComments();var e=new de.Feature(this.interpolate());return this.skipSpacesAndComments(),this.accept(":"),this.skipSpacesAndComments(),this.inProperty=!0,e.expr=this.list(),this.inProperty=!1,this.skipSpacesAndComments(),this.expect(")"),this.skipSpacesAndComments(),e}mozdocument(){this.expect("-moz-document");var e=new de.Atrule("-moz-document"),t=[];do{this.skipSpacesAndComments(),t.push(this.functionCall()),this.skipSpacesAndComments()}while(this.accept(","));return e.segments=[new de.Literal(t.join(", "))],this.state.push("atrule"),e.block=this.block(e,!1),this.state.pop(),e}import(){return this.expect("import"),this.allowPostfix=!0,new de.Import(this.expression(),!1)}require(){return this.expect("require"),this.allowPostfix=!0,new de.Import(this.expression(),!0)}charset(){this.expect("charset");var e=this.expect("string").val;return this.allowPostfix=!0,new de.Charset(e)}namespace(){var e,t;return this.expect("namespace"),this.skipSpacesAndComments(),(t=this.accept("ident"))&&(t=t.val),this.skipSpacesAndComments(),e=this.accept("string")||this.url(),this.allowPostfix=!0,new de.Namespace(e,t)}keyframes(){var e,t=this.expect("keyframes");return this.skipSpacesAndComments(),(e=new de.Keyframes(this.selectorParts(),t.val)).column=t.column,this.skipSpacesAndComments(),this.state.push("atrule"),e.block=this.block(e),this.state.pop(),e}literal(){return this.expect("literal").val}id(){var e=this.expect("ident");return this.accept("space"),e.val}ident(){for(var e=2,t=this.lookahead(e).type;"space"==t;)t=this.lookahead(++e).type;switch(t){case"=":case"?=":case"-=":case"+=":case"*=":case"/=":case"%=":return this.assignment();case".":if("space"==this.lookahead(e-1).type)return this.selector();if(this._ident==this.peek())return this.id();for(;"="!=this.lookahead(++e).type&&!~["[",",","newline","indent","eos"].indexOf(this.lookahead(e).type););if("="==this.lookahead(e).type)return this._ident=this.peek(),this.expression();if(this.looksLikeSelector()&&this.stateAllowsSelector())return this.selector();case"[":if(this._ident==this.peek())return this.id();for(;"]"!=this.lookahead(e++).type&&"selector"!=this.lookahead(e).type&&"eos"!=this.lookahead(e).type;);if("="==this.lookahead(e).type)return this._ident=this.peek(),this.expression();if(this.looksLikeSelector()&&this.stateAllowsSelector())return this.selector();case"-":case"+":case"/":case"*":case"%":case"**":case"&&":case"||":case">":case"<":case">=":case"<=":case"!=":case"==":case"?":case"in":case"is a":case"is defined":if(this._ident==this.peek())return this.id();switch(this._ident=this.peek(),this.currentState()){case"for":case"selector":return this.property();case"root":case"atblock":case"atrule":return"["==t?this.subscript():this.selector();case"function":case"conditional":return this.looksLikeSelector()?this.selector():this.expression();default:return this.operand?this.id():this.expression()}default:switch(this.currentState()){case"root":return this.selector();case"for":case"selector":case"function":case"conditional":case"atblock":case"atrule":return this.property();default:var n=this.id();return"interpolation"==this.previousState()&&(n.mixin=!0),n}}}interpolate(){var e,t=[];for(this.accept("*")&&t.push(new de.Literal("*"));;)if(this.accept("{"))this.state.push("interpolation"),t.push(this.expression()),this.expect("}"),this.state.pop();else if(e=this.accept("-"))t.push(new de.Literal("-"));else{if(!(e=this.accept("ident")))break;t.push(e.val)}return t.length||this.expect("ident"),t}property(){if(this.looksLikeSelector(!0))return this.selector();var e=this.interpolate(),t=new de.Property(e),n=t;return this.accept("space"),this.accept(":")&&this.accept("space"),this.state.push("property"),this.inProperty=!0,t.expr=this.list(),t.expr.isEmpty&&(n=e[0]),this.inProperty=!1,this.allowPostfix=!0,this.state.pop(),this.accept(";"),n}selector(){var e,t,n=new de.Group,i=this.selectorScope,r="root"==this.currentState();do{this.accept("newline"),e=this.selectorParts(),r&&i&&e.unshift(new de.Literal(i+" ")),e.length&&((t=new de.Selector(e)).lineno=e[0].lineno,t.column=e[0].column,n.push(t))}while(this.accept(",")||this.accept("newline"));return"selector-parts"==this.currentState()?n.nodes:(this.state.push("selector"),n.block=this.block(n),this.state.pop(),n)}selectorParts(){for(var e,t=[];e=this.selectorToken();)switch(e.type){case"{":this.skipSpaces();var n=this.expression();this.skipSpaces(),this.expect("}"),t.push(n);break;case this.prefix&&".":var i=new de.Literal(e.val+this.prefix);i.prefixed=!0,t.push(i);break;case"comment":break;case"color":case"unit":t.push(new de.Literal(e.val.raw));break;case"space":t.push(new de.Literal(" "));break;case"function":t.push(new de.Literal(e.val.name+"("));break;case"ident":t.push(new de.Literal(e.val.name||e.val.string));break;default:t.push(new de.Literal(e.val)),e.space&&t.push(new de.Literal(" "))}return t}assignment(){var e,t,n=this.id(),i=n.name;if(e=this.accept("=")||this.accept("?=")||this.accept("+=")||this.accept("-=")||this.accept("*=")||this.accept("/=")||this.accept("%=")){this.state.push("assignment");var r=this.list();switch(r.isEmpty&&this.assignAtblock(r),(t=new de.Ident(i,r)).lineno=n.lineno,t.column=n.column,this.state.pop(),e.type){case"?=":var a=new de.BinOp("is defined",t),o=new de.Expression;o.push(new de.Ident(i)),t=new de.Ternary(a,o,t);break;case"+=":case"-=":case"*=":case"/=":case"%=":t.val=new de.BinOp(e.type[0],new de.Ident(i),r)}}return t}function(){var e,t=1,n=2;e:for(;e=this.lookahead(n++);)switch(e.type){case"function":case"(":++t;break;case")":if(! --t)break e;break;case"eos":this.error('failed to find closing paren ")"')}return"expression"===this.currentState()?this.functionCall():this.looksLikeFunctionDefinition(n)?this.functionDefinition():this.expression()}url(){this.expect("function"),this.state.push("function arguments");var e=this.args();return this.expect(")"),this.state.pop(),new de.Call("url",e)}functionCall(){var e=this.accept("+");if("url"==this.peek().val.name)return this.url();var t=this.expect("function").val,n=t.name;this.state.push("function arguments"),this.parens++;var i=this.args();this.expect(")"),this.parens--,this.state.pop();var r=new de.Call(n,i);return r.column=t.column,r.lineno=t.lineno,e&&(this.state.push("function"),r.block=this.block(r),this.state.pop()),r}functionDefinition(){var e=this.expect("function"),t=e.val.name;this.state.push("function params"),this.skipWhitespace();var n=this.params();this.skipWhitespace(),this.expect(")"),this.state.pop(),this.state.push("function");var i=new de.Function(t,n);return i.column=e.column,i.lineno=e.lineno,i.block=this.block(i),this.state.pop(),new de.Ident(t,i)}params(){for(var e,t,n=new de.Params;e=this.accept("ident");)this.accept("space"),n.push(t=e.val),this.accept("...")?t.rest=!0:this.accept("=")&&(t.val=this.expression()),this.skipWhitespace(),this.accept(","),this.skipWhitespace();return n}args(){var e,t=new de.Arguments;do{"ident"==this.peek().type&&":"==this.lookahead(2).type?(e=this.next().val.string,this.expect(":"),t.map[e]=this.expression()):t.push(this.expression())}while(this.accept(","));return t}list(){for(var e=this.expression();this.accept(",");)if(e.isList)t.push(this.expression());else{var t=new de.Expression(!0);t.push(e),t.push(this.expression()),e=t}return e}expression(){var e,t=new de.Expression;for(this.state.push("expression");e=this.negation();)e||this.error("unexpected token {peek} in expression"),t.push(e);return this.state.pop(),t.nodes.length&&(t.lineno=t.nodes[0].lineno,t.column=t.nodes[0].column),t}negation(){return this.accept("not")?new de.UnaryOp("!",this.negation()):this.ternary()}ternary(){var e=this.logical();if(this.accept("?")){var t=this.expression();this.expect(":");var n=this.expression();e=new de.Ternary(e,t,n)}return e}logical(){for(var e,t=this.typecheck();e=this.accept("&&")||this.accept("||");)t=new de.BinOp(e.type,t,this.typecheck());return t}typecheck(){for(var e,t=this.equality();e=this.accept("is a");)this.operand=!0,t||this.error('illegal unary "'+e+'", missing left-hand operand'),t=new de.BinOp(e.type,t,this.equality()),this.operand=!1;return t}equality(){for(var e,t=this.in();e=this.accept("==")||this.accept("!=");)this.operand=!0,t||this.error('illegal unary "'+e+'", missing left-hand operand'),t=new de.BinOp(e.type,t,this.in()),this.operand=!1;return t}in(){for(var e=this.relational();this.accept("in");)this.operand=!0,e||this.error('illegal unary "in", missing left-hand operand'),e=new de.BinOp("in",e,this.relational()),this.operand=!1;return e}relational(){for(var e,t=this.range();e=this.accept(">=")||this.accept("<=")||this.accept("<")||this.accept(">");)this.operand=!0,t||this.error('illegal unary "'+e+'", missing left-hand operand'),t=new de.BinOp(e.type,t,this.range()),this.operand=!1;return t}range(){var e,t=this.additive();return(e=this.accept("...")||this.accept(".."))&&(this.operand=!0,t||this.error('illegal unary "'+e+'", missing left-hand operand'),t=new de.BinOp(e.val,t,this.additive()),this.operand=!1),t}additive(){for(var e,t=this.multiplicative();e=this.accept("+")||this.accept("-");)this.operand=!0,t=new de.BinOp(e.type,t,this.multiplicative()),this.operand=!1;return t}multiplicative(){for(var e,n=this.defined();e=this.accept("**")||this.accept("*")||this.accept("/")||this.accept("%");){if(this.operand=!0,"/"==e&&this.inProperty&&!this.parens)return this.stash.push(new t("literal",new de.Literal("/"))),this.operand=!1,n;n||this.error('illegal unary "'+e+'", missing left-hand operand'),n=new de.BinOp(e.type,n,this.defined()),this.operand=!1}return n}defined(){var e=this.unary();return this.accept("is defined")&&(e||this.error('illegal unary "is defined", missing left-hand operand'),e=new de.BinOp("is defined",e)),e}unary(){var e,t;return(e=this.accept("!")||this.accept("~")||this.accept("+")||this.accept("-"))?(this.operand=!0,(t=this.unary())||this.error('illegal unary "'+e+'"'),t=new de.UnaryOp(e.type,t),this.operand=!1,t):this.subscript()}subscript(){for(var e=this.member();this.accept("[");)e=new de.BinOp("[]",e,this.expression()),this.expect("]");return this.accept("=")&&(e.op+="=",e.val=this.list(),e.val.isEmpty&&this.assignAtblock(e.val)),e}member(){var e=this.primary();if(e){for(;this.accept(".");){var t=new de.Ident(this.expect("ident").val.string);e=new de.Member(e,t)}this.skipSpaces(),this.accept("=")&&(e.val=this.list(),e.val.isEmpty&&this.assignAtblock(e.val))}return e}object(){var e,t,n,i,r=new de.Object;for(this.expect("{"),this.skipWhitespace();!this.accept("}");)this.accept("comment")||this.accept("newline")||(n||this.accept(","),(e=this.accept("ident")||this.accept("string"))||this.error('expected "ident" or "string", got {peek}'),i=e.val.hash,this.skipSpacesAndComments(),this.expect(":"),t=this.expression(),r.setValue(i,t),r.setKey(i,e.val),n=this.accept(","),this.skipWhitespace());return r}primary(){var e;if(this.skipSpaces(),this.accept("(")){++this.parens;var t=this.expression(),n=this.expect(")");return--this.parens,this.accept("%")&&t.push(new de.Ident("%")),e=this.peek(),!n.space&&"ident"==e.type&&~i.indexOf(e.val.string)&&(t.push(new de.Ident(e.val.string)),this.next()),t}switch((e=this.peek()).type){case"null":case"unit":case"color":case"string":case"literal":case"boolean":case"comment":return this.next().val;case!this.cond&&"{":return this.object();case"atblock":return this.atblock();case"atrule":var r=new de.Ident(this.next().val);return r.property=!0,r;case"ident":return this.ident();case"function":return e.anonymous?this.functionDefinition():this.functionCall()}}};const Ee={exports:{}};!function(e){void 0!==Ee&&(Ee.exports=e);var t="listeners",n={on:function on(e,t){return getListeners(this,e).push(t),this},once:function once(e,t){var n=this;return wrap.originalListener=t,getListeners(n,e).push(wrap),n;function wrap(){off.call(n,e,wrap),t.apply(this,arguments)}},off:off,emit:function emit(e,t){var n=this,i=getListeners(n,e,!0);if(!i)return!1;var r=arguments.length;if(1===r)i.forEach((function zeroarg(e){e.call(n)}));else if(2===r)i.forEach((function onearg(e){e.call(n,t)}));else{var a=Array.prototype.slice.call(arguments,1);i.forEach((function moreargs(e){e.apply(n,a)}))}return!!i.length}};function mixin(e){for(var t in n)e[t]=n[t];return e}function off(e,n){var i,r=this;if(arguments.length){if(n){if(i=getListeners(r,e,!0)){if(!(i=i.filter((function ne(e){return e!==n&&e.originalListener!==n}))).length)return off.call(r,e);r[t][e]=i}}else if((i=r[t])&&(delete i[e],!Object.keys(i).length))return off.call(r)}else delete r[t];return r}function getListeners(e,n,i){if(!i||e[t]){var r=e[t]||(e[t]={});return r[n]||(r[n]=[])}}mixin(e.prototype),e.mixin=mixin}(( +class ParseError extends Error{constructor(e){super(),this.name="ParseError",this.message=e,Error.captureStackTrace&&Error.captureStackTrace(this,ParseError)}}class SyntaxError extends Error{constructor(e){super(),this.name="SyntaxError",this.message=e,Error.captureStackTrace&&Error.captureStackTrace(this,ParseError)}}let pe;var fe={and:"&&",or:"||",is:"==",isnt:"!=","is not":"!=",":=":"?="};pe=class Lexer{constructor(e,t){function comment(e,t,n,i){var r=i.lastIndexOf("/*",n)>i.lastIndexOf("*/",n),a=i.lastIndexOf("//",n),o=i.lastIndexOf("\n",n),h=0,l=0;if(~a&&a>o)for(;o!=n;){if("'"==i[o]&&(l?l--:l++),'"'==i[o]&&(h?h--:h++),"/"==i[o]&&"/"==i[o+1]){r=!l&&!h;break}++o}return r?e:","===t&&/^[,\t\n]+$/.test(e)?e.replace(/\n/,"\r"):t+"\r"}this.stash=[],this.indentStack=[],this.indentRe=null,this.lineno=1,this.column=1,"\ufeff"==e.charAt(0)&&(e=e.slice(1)),this.str=e.replace(/\s+$/,"\n").replace(/\r\n?/g,"\n").replace(/\\ *\n/g,"\r").replace(/([,(:](?!\/\/[^ ])) *(?:\/\/[^\n]*|\/\*.*?\*\/)?\n\s*/g,comment).replace(/\s*\n[ \t]*([,)])/g,comment)}inspect(){for(var e,t=this.str,n=[];"eos"!=(e=this.next()).type;)n.push(e.inspect());return this.str=t,n.concat(e.inspect()).join("\n")}lookahead(e){for(var t=e-this.stash.length;t-- >0;)this.stash.push(this.advance());return this.stash[--e]}skip(e){var t=e[0];e=t?t.length:e,this.str=this.str.substr(e),t?this.move(t):this.column+=e}move(e){var t=e.match(/\n/g),n=e.lastIndexOf("\n");t&&(this.lineno+=t.length),this.column=~n?e.length-n:this.column+e.length}next(){var e=this.stashed()||this.advance();return this.prev=e,e}isPartOfSelector(){var e=this.stash[this.stash.length-1]||this.prev;switch(e&&e.type){case"color":return 2==e.val.raw.length;case".":case"[":return!0}return!1}advance(){var e=this.column,t=this.lineno,n=this.eos()||this.null()||this.sep()||this.keyword()||this.urlchars()||this.comment()||this.newline()||this.escaped()||this.important()||this.literal()||this.anonFunc()||this.atrule()||this.function()||this.brace()||this.paren()||this.color()||this.string()||this.unit()||this.namedop()||this.boolean()||this.unicode()||this.ident()||this.op()||function(){var n=this.eol();return n&&(e=n.column,t=n.lineno),n}.call(this)||this.space()||this.selector();return n.lineno=t,n.column=e,n}peek(){return this.lookahead(1)}stashed(){return this.stash.shift()}eos(){if(!this.str.length)return this.indentStack.length?(this.indentStack.shift(),new t("outdent")):new t("eos")}urlchars(){var e;if(this.isURL)return(e=/^[\/:@.;?&=*!,<>#%0-9]+/.exec(this.str))?(this.skip(e),new t("literal",new ue.Literal(e[0]))):void 0}sep(){var e;if(e=/^;[ \t]*/.exec(this.str))return this.skip(e),new t(";")}eol(){if("\r"==this.str[0]){for(++this.lineno,this.skip(1),this.column=1;this.space(););return this.advance()}}space(){var e;if(e=/^([ \t]+)/.exec(this.str))return this.skip(e),new t("space")}escaped(){var e;if(e=/^\\(.)[ \t]*/.exec(this.str)){var n=e[1];return this.skip(e),new t("ident",new ue.Literal(n))}}literal(){var e;if(e=/^@css[ \t]*\{/.exec(this.str)){this.skip(e);for(var n,i,r=1,a="";n=this.str[0];){switch(this.str=this.str.substr(1),n){case"{":++r;break;case"}":--r;break;case"\n":case"\r":++this.lineno}if(a+=n,!r)break}return a=a.replace(/\s*}$/,""),(i=new ue.Literal(a)).css=!0,new t("literal",i)}}important(){var e;if(e=/^!important[ \t]*/.exec(this.str))return this.skip(e),new t("ident",new ue.Literal("!important"))}brace(){var e;if(e=/^([{}])/.exec(this.str)){this.skip(1);var n=e[1];return new t(n,n)}}paren(){var e;if(e=/^([()])([ \t]*)/.exec(this.str)){var n=e[1];this.skip(e),")"==n&&(this.isURL=!1);var i=new t(n,n);return i.space=e[2],i}}null(){var e;if(e=/^(null)\b[ \t]*/.exec(this.str))return this.skip(e),this.isPartOfSelector()?new t("ident",new ue.Ident(e[0])):new t("null",ue.null)}keyword(){var e;if(e=/^(return|if|else|unless|for|in)\b(?!-)[ \t]*/.exec(this.str)){var n=e[1];return this.skip(e),this.isPartOfSelector()?new t("ident",new ue.Ident(e[0])):new t(n,n)}}namedop(){var e,n;if(e=/^(not|and|or|is a|is defined|isnt|is not|is)(?!-)\b([ \t]*)/.exec(this.str)){var i=e[1];return this.skip(e),(n=this.isPartOfSelector()?new t("ident",new ue.Ident(e[0])):new t(i=fe[i]||i,i)).space=e[2],n}}op(){var e;if(e=/^([.]{1,3}|&&|\|\||[!<>=?:]=|\*\*|[-+*\/%]=?|[,=?:!~<>&\[\]])([ \t]*)/.exec(this.str)){var n=e[1];this.skip(e);var i=new t(n=fe[n]||n,n);return i.space=e[2],this.isURL=!1,i}}anonFunc(){var e;if("@"==this.str[0]&&"("==this.str[1])return this.skip(2),(e=new t("function",new ue.Ident("anonymous"))).anonymous=!0,e}atrule(){var e;if(e=/^@(?!apply)(?:-(\w+)-)?([a-zA-Z0-9-_]+)[ \t]*/.exec(this.str)){this.skip(e);var n=e[1],i=e[2];switch(i){case"require":case"import":case"charset":case"namespace":case"media":case"scope":case"supports":return new t(i);case"document":return new t("-moz-document");case"block":return new t("atblock");case"extend":case"extends":return new t("extend");case"keyframes":return new t(i,n);default:return new t("atrule",n?"-"+n+"-"+i:i)}}}comment(){if("/"==this.str[0]&&"/"==this.str[1])return-1==(e=this.str.indexOf("\n"))&&(e=this.str.length),this.skip(e),this.advance();if("/"==this.str[0]&&"*"==this.str[1]){var e;-1==(e=this.str.indexOf("*/"))&&(e=this.str.length);var n=this.str.substr(0,e+2),i=n.split(/\n|\r/).length-1,r=!0,a=!1;return this.lineno+=i,this.skip(e+2),"!"==n[2]&&(n=n.replace("*!","*"),r=!1),this.prev&&";"==this.prev.type&&(a=!0),new t("comment",new ue.Comment(n,r,a))}}boolean(){var e;if(e=/^(true|false)\b([ \t]*)/.exec(this.str)){var n=new ue.Boolean("true"==e[1]);this.skip(e);var i=new t("boolean",n);return i.space=e[2],i}}unicode(){var e;if(e=/^u\+[0-9a-f?]{1,6}(?:-[0-9a-f]{1,6})?/i.exec(this.str))return this.skip(e),new t("literal",new ue.Literal(e[0]))}function(){var e;if(e=/^(-*[_a-zA-Z$][-\w\d$]*)\(([ \t]*)/.exec(this.str)){var n=e[1];this.skip(e),this.isURL="url"==n;var i=new t("function",new ue.Ident(n));return i.space=e[2],i}}ident(){var e;if(e=/^-*([_a-zA-Z$]|@apply)[-\w\d$]*/.exec(this.str))return this.skip(e),new t("ident",new ue.Ident(e[0]))}newline(){var e,n;if(this.indentRe?e=this.indentRe.exec(this.str):((e=(n=/^\n([\t]*)[ \t]*/).exec(this.str))&&!e[1].length&&(e=(n=/^\n([ \t]*)/).exec(this.str)),e&&e[1].length&&(this.indentRe=n)),e){var i,r=e[1].length;if(this.skip(e)," "===this.str[0]||"\t"===this.str[0])throw new SyntaxError("Invalid indentation. You can use tabs or spaces to indent, but not both.");if("\n"==this.str[0])return this.advance();if(this.indentStack.length&&rr;)this.stash.push(new t("outdent")),this.indentStack.shift();i=this.stash.pop()}else r&&r!=this.indentStack[0]?(this.indentStack.unshift(r),i=new t("indent")):i=new t("newline");return i}}unit(){var e;if(e=/^(-)?(\d+\.\d+|\d+|\.\d+)(%|[a-zA-Z]+)?[ \t]*/.exec(this.str)){this.skip(e);var n=parseFloat(e[2]);"-"==e[1]&&(n=-n);var i=new ue.Unit(n,e[3]);return i.raw=e[0],new t("unit",i)}}string(){var e;if(e=/^("[^"]*"|'[^']*')[ \t]*/.exec(this.str)){var n=e[1],i=e[0][0];return this.skip(e),n=n.slice(1,-1).replace(/\\n/g,"\n"),new t("string",new ue.String(n,i))}}color(){return this.rrggbbaa()||this.rrggbb()||this.rgba()||this.rgb()||this.nn()||this.n()}n(){var e;if(e=/^#([a-fA-F0-9]{1})[ \t]*/.exec(this.str)){this.skip(e);var n=parseInt(e[1]+e[1],16),i=new ue.RGBA(n,n,n,1);return i.raw=e[0],new t("color",i)}}nn(){var e;if(e=/^#([a-fA-F0-9]{2})[ \t]*/.exec(this.str)){this.skip(e);var n=parseInt(e[1],16),i=new ue.RGBA(n,n,n,1);return i.raw=e[0],new t("color",i)}}rgb(){var e;if(e=/^#([a-fA-F0-9]{3})[ \t]*/.exec(this.str)){this.skip(e);var n=e[1],i=parseInt(n[0]+n[0],16),r=parseInt(n[1]+n[1],16),a=parseInt(n[2]+n[2],16),o=new ue.RGBA(i,r,a,1);return o.raw=e[0],new t("color",o)}}rgba(){var e;if(e=/^#([a-fA-F0-9]{4})[ \t]*/.exec(this.str)){this.skip(e);var n=e[1],i=parseInt(n[0]+n[0],16),r=parseInt(n[1]+n[1],16),a=parseInt(n[2]+n[2],16),o=parseInt(n[3]+n[3],16),h=new ue.RGBA(i,r,a,o/255);return h.raw=e[0],new t("color",h)}}rrggbb(){var e;if(e=/^#([a-fA-F0-9]{6})[ \t]*/.exec(this.str)){this.skip(e);var n=e[1],i=parseInt(n.substr(0,2),16),r=parseInt(n.substr(2,2),16),a=parseInt(n.substr(4,2),16),o=new ue.RGBA(i,r,a,1);return o.raw=e[0],new t("color",o)}}rrggbbaa(){var e;if(e=/^#([a-fA-F0-9]{8})[ \t]*/.exec(this.str)){this.skip(e);var n=e[1],i=parseInt(n.substr(0,2),16),r=parseInt(n.substr(2,2),16),a=parseInt(n.substr(4,2),16),o=parseInt(n.substr(6,2),16),h=new ue.RGBA(i,r,a,o/255);return h.raw=e[0],new t("color",h)}}selector(){var e;if(e=/^\^|.*?(?=\/\/(?![^\[]*\])|[,\n{])/.exec(this.str)){var n=e[0];return this.skip(e),new t("selector",n)}}};var me=65407===new Uint16Array(new Uint8Array([127,255]).buffer)[0];function align(e,t){var n=t-1;return e+n&~n}function hexify(e){for(var t="",n=8;n--;)t+=(e>>>(n<<2)&15).toString(16);return t}function parity(e,t,n){return e^t^n}function majority(e,t,n){return e&t^e&n^t&n}function rotateLeft(e,t){return e<>>32-t}var de=new Uint32Array(80);function sha1(e){if(!(e instanceof Uint8Array))throw new TypeError("Input data must be a Uint8Array.");var t,n=new ArrayBuffer(align(e.byteLength+9,64)),i=new Uint32Array(n),r=new Uint8Array(n);if(r.set(e),r[e.byteLength]=128,me)for(var a=0,o=i.length;a>24&255|t>>8&65280|t<<8&16711680|t<<24&4278190080;var h=8*e.byteLength;i[i.length-2]=h/Math.pow(2,32),i[i.length-1]=h;for(var l,c=1732584193,u=4023233417,f=2562383102,m=271733878,d=3285377520,v=void 0,g=void 0,k=void 0,w=void 0,b=void 0,y=void 0,x=void 0,S=0,N=i.length;S","=",":","&","&&","~","{","}",".","..","/"],be=["is","has","where","not","dir","lang","any-link","link","visited","local-link","target","scope","hover","active","focus","drop","current","past","future","enabled","disabled","read-only","read-write","placeholder-shown","checked","indeterminate","valid","invalid","in-range","out-of-range","required","optional","user-error","root","empty","blank","nth-child","nth-last-child","first-child","last-child","only-child","nth-of-type","nth-last-of-type","first-of-type","last-of-type","only-of-type","nth-match","nth-last-match","nth-column","nth-last-column","first-line","first-letter","before","after","selection"],ye=class Parser{constructor(e,t){var n=this;t=t||{},Parser.cache=Parser.cache||Parser.getCache(t),this.hash=Parser.cache.key(e,t),this.lexer={},Parser.cache.has(this.hash)||(this.lexer=new pe(e,t)),this.prefix=t.prefix||"",this.root=t.root||new ue.Root,this.state=["root"],this.stash=[],this.parens=0,this.css=0,this.state.pop=function(){n.prevState=[].pop.call(this)}}static getCache(e){return!1===e.cache?getCache(!1):getCache(e.cache||"memory",e)}currentState(){return this.state[this.state.length-1]}previousState(){return this.state[this.state.length-2]}parse(){var e=this.parent=this.root;if(Parser.cache.has(this.hash))"block"==(e=Parser.cache.get(this.hash)).nodeName&&(e.constructor=ue.Root);else{for(;"eos"!=this.peek().type&&(this.skipWhitespace(),"eos"!=this.peek().type);){var t=this.statement();this.accept(";"),t||this.error("unexpected token {peek}, not allowed at the root level"),e.push(t)}Parser.cache.set(this.hash,e)}return e}error(e){var t=this.peek().type,n=null==this.peek().val?"":" "+this.peek().toString();throw n.trim()==t.trim()&&(n=""),new ParseError(e.replace("{peek}",'"'+t+n+'"'))}accept(e){if(e==this.peek().type)return this.next()}expect(e){return e!=this.peek().type&&this.error('expected "'+e+'", got {peek}'),this.next()}next(){var e=this.stash.length?this.stash.pop():this.lexer.next(),t=e.lineno,n=e.column||1;return e.val&&e.val.nodeName&&(e.val.lineno=t,e.val.column=n),ue.lineno=t,ue.column=n,ke.lexer("%s %s",e.type,e.val||""),e}peek(){return this.lexer.peek()}lookahead(e){return this.lexer.lookahead(e)}isSelectorToken(e){var t=this.lookahead(e).type;switch(t){case"for":return this.bracketed;case"[":return this.bracketed=!0,!0;case"]":return this.bracketed=!1,!0;default:return~we.indexOf(t)}}isPseudoSelector(e){var t=this.lookahead(e).val;return t&&~be.indexOf(t.name)}lineContains(e){for(var t,n=1;t=this.lookahead(n++);){if(~["indent","outdent","newline","eos"].indexOf(t.type))return;if(e==t.type)return!0}}selectorToken(){if(this.isSelectorToken(1)){if("{"==this.peek().type){if(!this.lineContains("}"))return;for(var e,t=0;e=this.lookahead(++t);){if("}"==e.type){if(2==t||3==t&&"space"==this.lookahead(t-1).type)return;break}if(":"==e.type)return}}return this.next()}}skip(e){for(;~e.indexOf(this.peek().type);)this.next()}skipWhitespace(){this.skip(["space","indent","outdent","newline"])}skipNewlines(){for(;"newline"==this.peek().type;)this.next()}skipSpaces(){for(;"space"==this.peek().type;)this.next()}skipSpacesAndComments(){for(;"space"==this.peek().type||"comment"==this.peek().type;)this.next()}looksLikeFunctionDefinition(e){return"indent"==this.lookahead(e).type||"{"==this.lookahead(e).type}looksLikeSelector(e){var t,n,i=1;if(e&&":"==this.lookahead(i+1).type&&(this.lookahead(i+1).space||"indent"==this.lookahead(i+2).type))return!1;for(;"ident"==this.lookahead(i).type&&("newline"==this.lookahead(i+1).type||","==this.lookahead(i+1).type);)i+=2;for(;this.isSelectorToken(i)||","==this.lookahead(i).type;){if("selector"==this.lookahead(i).type)return!0;if("&"==this.lookahead(i+1).type)return!0;if(i>1&&"ident"===this.lookahead(i-1).type&&"."===this.lookahead(i).type&&"ident"===this.lookahead(i+1).type){for(;t=this.lookahead(i+2);){if(-1!==["indent","outdent","{",";","eos","selector","media","if","atrule",")","}","unit","[","for","function"].indexOf(t.type)){if("["!==t.type){if(this.isPseudoSelector(i+2))return!0;if(")"===t.type&&this.lookahead(i+3)&&"}"===this.lookahead(i+3).type)break;return-1===["outdent",";","eos","media","if","atrule",")","}","unit","for","function"].indexOf(t.type)}for(;(t=this.lookahead(i+3))&&"]"!==t.type;){if(~[".","unit"].indexOf(t.type))return!1;i+=1}}i+=1}return!0}if("."==this.lookahead(i).type&&"ident"==this.lookahead(i+1).type)return!0;if("*"==this.lookahead(i).type&&"newline"==this.lookahead(i+1).type)return!0;if(":"==this.lookahead(i).type&&":"==this.lookahead(i+1).type)return!0;if("color"==this.lookahead(i).type&&"newline"==this.lookahead(i-1).type)return!0;if(this.looksLikeAttributeSelector(i))return!0;if(("="==this.lookahead(i).type||"function"==this.lookahead(i).type)&&"{"==this.lookahead(i+1).type)return!1;if(":"==this.lookahead(i).type&&!this.isPseudoSelector(i+1)&&this.lineContains("."))return!1;if("{"==this.lookahead(i).type?n=!0:"}"==this.lookahead(i).type&&(n=!1),n&&":"==this.lookahead(i).type)return!0;if("space"==this.lookahead(i).type&&"{"==this.lookahead(i+1).type)return!0;if(":"==this.lookahead(i++).type&&!this.lookahead(i-1).space&&this.isPseudoSelector(i))return!0;if("space"==this.lookahead(i).type&&"newline"==this.lookahead(i+1).type&&"{"==this.lookahead(i+2).type)return!0;if(","==this.lookahead(i).type&&"newline"==this.lookahead(i+1).type)return!0}if(","==this.lookahead(i).type&&"newline"==this.lookahead(i+1).type)return!0;if("{"==this.lookahead(i).type&&"newline"==this.lookahead(i+1).type)return!0;if(this.css&&(";"==this.lookahead(i).type||"}"==this.lookahead(i-1).type))return!1;for(;!~["indent","outdent","newline","for","if",";","}","eos"].indexOf(this.lookahead(i).type);)++i;return"indent"==this.lookahead(i).type||void 0}looksLikeAttributeSelector(e){var t=this.lookahead(e).type;return!("="!=t||!this.bracketed)||("ident"==t||"string"==t)&&"]"==this.lookahead(e+1).type&&("newline"==this.lookahead(e+2).type||this.isSelectorToken(e+2))&&!this.lineContains(":")&&!this.lineContains("=")}looksLikeKeyframe(){var e,t=2;switch(this.lookahead(t).type){case"{":case"indent":case",":return!0;case"newline":for(;"unit"==this.lookahead(++t).type||"newline"==this.lookahead(t).type;);return"indent"==(e=this.lookahead(t).type)||"{"==e}}stateAllowsSelector(){switch(this.currentState()){case"root":case"atblock":case"selector":case"conditional":case"function":case"atrule":case"for":return!0}}assignAtblock(e){try{e.push(this.atblock(e))}catch(e){this.error("invalid right-hand side operand in assignment, got {peek}")}}statement(){var e,t,n=this.stmt(),i=this.prevState;switch(this.allowPostfix&&(this.allowPostfix=!1,i="expression"),i){case"assignment":case"expression":case"function arguments":for(;t=this.accept("if")||this.accept("unless")||this.accept("for");)switch(t.type){case"if":case"unless":(n=new ue.If(this.expression(),n)).postfix=!0,n.negate="unless"==t.type,this.accept(";");break;case"for":var r,a=this.id().name;this.accept(",")&&(r=this.id().name),this.expect("in");var o=new ue.Each(a,r,this.expression());(e=new ue.Block(this.parent,o)).push(n),o.block=e,n=o}}return n}stmt(){var e,t=this.peek();switch(t.type){case"keyframes":return this.keyframes();case"-moz-document":return this.mozdocument();case"comment":case"selector":case"literal":case"charset":case"namespace":case"import":case"require":case"extend":case"media":case"atrule":case"ident":case"scope":case"supports":case"unless":case"function":case"for":case"if":return this[t.type]();case"return":return this.return();case"{":return this.property();default:if(this.stateAllowsSelector())switch(t.type){case"color":case"~":case">":case"<":case":":case"&":case"&&":case"[":case".":case"/":return(e=this.selector()).column=t.column,e.lineno=t.lineno,e;case"..":if("/"==this.lookahead(2).type)return this.selector();case"+":return"function"==this.lookahead(2).type?this.functionCall():this.selector();case"*":return this.property();case"unit":if(this.looksLikeKeyframe())return(e=this.selector()).column=t.column,e.lineno=t.lineno,e;case"-":if("{"==this.lookahead(2).type)return this.property()}var n=this.expression();return n.isEmpty&&this.error("unexpected {peek}"),n}}block(e,t){var n,i,r,a=this.parent=new ue.Block(this.parent,e);for(!1===t&&(a.scope=!1),this.accept("newline"),this.accept("{")?(this.css++,n="}",this.skipWhitespace()):(n="outdent",this.expect("indent"));n!=this.peek().type;){if(this.css){if(this.accept("newline")||this.accept("indent"))continue;i=this.statement(),this.accept(";"),this.skipWhitespace()}else{if(this.accept("newline"))continue;if(r=this.lookahead(2).type,"indent"==this.peek().type&&~["outdent","newline","comment"].indexOf(r)){this.skip(["indent","outdent"]);continue}if("eos"==this.peek().type)return a;i=this.statement(),this.accept(";")}i||this.error("unexpected token {peek} in block"),a.push(i)}return this.css?(this.skipWhitespace(),this.expect("}"),this.skipSpaces(),this.css--):this.expect("outdent"),this.parent=a.parent,a}comment(){var e=this.next().val;return this.skipSpaces(),e}for(){this.expect("for");var e,t=this.id().name;this.accept(",")&&(e=this.id().name),this.expect("in"),this.state.push("for"),this.cond=!0;var n=new ue.Each(t,e,this.expression());return this.cond=!1,n.block=this.block(n,!1),this.state.pop(),n}return(){this.expect("return");var e=this.expression();return e.isEmpty?new ue.Return:new ue.Return(e)}unless(){this.expect("unless"),this.state.push("conditional"),this.cond=!0;var e=new ue.If(this.expression(),!0);return this.cond=!1,e.block=this.block(e,!1),this.state.pop(),e}if(){var e=this.expect("if");this.state.push("conditional"),this.cond=!0;var t,n,i,r=new ue.If(this.expression());for(r.column=e.column,this.cond=!1,r.block=this.block(r,!1),this.skip(["newline","comment"]);this.accept("else");){if(!(e=this.accept("if"))){r.elses.push(this.block(r,!1));break}this.cond=!0,t=this.expression(),this.cond=!1,n=this.block(r,!1),(i=new ue.If(t,n)).column=e.column,r.elses.push(i),this.skip(["newline","comment"])}return this.state.pop(),r}atblock(e){return e||this.expect("atblock"),e=new ue.Atblock,this.state.push("atblock"),e.block=this.block(e,!1),this.state.pop(),e}atrule(){var e,t=this.expect("atrule").val,n=new ue.Atrule(t);return this.skipSpacesAndComments(),n.segments=this.selectorParts(),this.skipSpacesAndComments(),("indent"==(e=this.peek().type)||"{"==e||"newline"==e&&"{"==this.lookahead(2).type)&&(this.state.push("atrule"),n.block=this.block(n),this.state.pop()),n}scope(){this.expect("scope");var e=this.selectorParts().map((function(e){return e.val})).join("");return this.selectorScope=e.trim(),ue.null}supports(){this.expect("supports");var e=new ue.Supports(this.supportsCondition());return this.state.push("atrule"),e.block=this.block(e),this.state.pop(),e}supportsCondition(){var e=this.supportsNegation()||this.supportsOp();return e||(this.cond=!0,e=this.expression(),this.cond=!1),e}supportsNegation(){if(this.accept("not")){var e=new ue.Expression;return e.push(new ue.Literal("not")),e.push(this.supportsFeature()),e}}supportsOp(){var e,t,n=this.supportsFeature();if(n){for((t=new ue.Expression).push(n);e=this.accept("&&")||this.accept("||");)t.push(new ue.Literal("&&"==e.val?"and":"or")),t.push(this.supportsFeature());return t}}supportsFeature(){if(this.skipSpacesAndComments(),"("==this.peek().type){var e=this.lookahead(2).type;if("ident"==e||"{"==e)return this.feature();this.expect("(");var t=new ue.Expression;return t.push(new ue.Literal("(")),t.push(this.supportsCondition()),this.expect(")"),t.push(new ue.Literal(")")),this.skipSpacesAndComments(),t}}extend(){var e,t,n,i=this.expect("extend"),r=[];do{(n=this.selectorParts()).length&&(e=new ue.Selector(n),r.push(e),"!"===this.peek().type&&"ident"===(i=this.lookahead(2)).type&&"optional"===i.val.name&&(this.skip(["!","ident"]),e.optional=!0))}while(this.accept(","));return(t=new ue.Extend(r)).lineno=i.lineno,t.column=i.column,t}media(){this.expect("media"),this.state.push("atrule");var e=new ue.Media(this.queries());return e.block=this.block(e),this.state.pop(),e}queries(){var e=new ue.QueryList,t=["comment","newline","space"];do{this.skip(t),e.push(this.query()),this.skip(t)}while(this.accept(","));return e}query(){var e,t,n,i=new ue.Query;if("ident"==this.peek().type&&("."==this.lookahead(2).type||"["==this.lookahead(2).type))return this.cond=!0,e=this.expression(),this.cond=!1,i.push(new ue.Feature(e.nodes)),i;if((t=this.accept("ident")||this.accept("not"))&&(t=new ue.Literal(t.val.string||t.val),this.skipSpacesAndComments(),(n=this.accept("ident"))?(i.type=n.val,i.predicate=t):i.type=t,this.skipSpacesAndComments(),!this.accept("&&")))return i;do{i.push(this.feature())}while(this.accept("&&"));return i}feature(){this.skipSpacesAndComments(),this.expect("("),this.skipSpacesAndComments();var e=new ue.Feature(this.interpolate());return this.skipSpacesAndComments(),this.accept(":"),this.skipSpacesAndComments(),this.inProperty=!0,e.expr=this.list(),this.inProperty=!1,this.skipSpacesAndComments(),this.expect(")"),this.skipSpacesAndComments(),e}mozdocument(){this.expect("-moz-document");var e=new ue.Atrule("-moz-document"),t=[];do{this.skipSpacesAndComments(),t.push(this.functionCall()),this.skipSpacesAndComments()}while(this.accept(","));return e.segments=[new ue.Literal(t.join(", "))],this.state.push("atrule"),e.block=this.block(e,!1),this.state.pop(),e}import(){return this.expect("import"),this.allowPostfix=!0,new ue.Import(this.expression(),!1)}require(){return this.expect("require"),this.allowPostfix=!0,new ue.Import(this.expression(),!0)}charset(){this.expect("charset");var e=this.expect("string").val;return this.allowPostfix=!0,new ue.Charset(e)}namespace(){var e,t;return this.expect("namespace"),this.skipSpacesAndComments(),(t=this.accept("ident"))&&(t=t.val),this.skipSpacesAndComments(),e=this.accept("string")||this.url(),this.allowPostfix=!0,new ue.Namespace(e,t)}keyframes(){var e,t=this.expect("keyframes");return this.skipSpacesAndComments(),(e=new ue.Keyframes(this.selectorParts(),t.val)).column=t.column,this.skipSpacesAndComments(),this.state.push("atrule"),e.block=this.block(e),this.state.pop(),e}literal(){return this.expect("literal").val}id(){var e=this.expect("ident");return this.accept("space"),e.val}ident(){for(var e=2,t=this.lookahead(e).type;"space"==t;)t=this.lookahead(++e).type;switch(t){case"=":case"?=":case"-=":case"+=":case"*=":case"/=":case"%=":return this.assignment();case".":if("space"==this.lookahead(e-1).type)return this.selector();if(this._ident==this.peek())return this.id();for(;"="!=this.lookahead(++e).type&&!~["[",",","newline","indent","eos"].indexOf(this.lookahead(e).type););if("="==this.lookahead(e).type)return this._ident=this.peek(),this.expression();if(this.looksLikeSelector()&&this.stateAllowsSelector())return this.selector();case"[":if(this._ident==this.peek())return this.id();for(;"]"!=this.lookahead(e++).type&&"selector"!=this.lookahead(e).type&&"eos"!=this.lookahead(e).type;);if("="==this.lookahead(e).type)return this._ident=this.peek(),this.expression();if(this.looksLikeSelector()&&this.stateAllowsSelector())return this.selector();case"-":case"+":case"/":case"*":case"%":case"**":case"&&":case"||":case">":case"<":case">=":case"<=":case"!=":case"==":case"?":case"in":case"is a":case"is defined":if(this._ident==this.peek())return this.id();switch(this._ident=this.peek(),this.currentState()){case"for":case"selector":return this.property();case"root":case"atblock":case"atrule":return"["==t?this.subscript():this.selector();case"function":case"conditional":return this.looksLikeSelector()?this.selector():this.expression();default:return this.operand?this.id():this.expression()}default:switch(this.currentState()){case"root":return this.selector();case"for":case"selector":case"function":case"conditional":case"atblock":case"atrule":return this.property();default:var n=this.id();return"interpolation"==this.previousState()&&(n.mixin=!0),n}}}interpolate(){var e,t=[];for(this.accept("*")&&t.push(new ue.Literal("*"));;)if(this.accept("{"))this.state.push("interpolation"),t.push(this.expression()),this.expect("}"),this.state.pop();else if(e=this.accept("-"))t.push(new ue.Literal("-"));else{if(!(e=this.accept("ident")))break;t.push(e.val)}return t.length||this.expect("ident"),t}property(){if(this.looksLikeSelector(!0))return this.selector();var e=this.interpolate(),t=new ue.Property(e),n=t;return this.accept("space"),this.accept(":")&&this.accept("space"),this.state.push("property"),this.inProperty=!0,t.expr=this.list(),t.expr.isEmpty&&(n=e[0]),this.inProperty=!1,this.allowPostfix=!0,this.state.pop(),this.accept(";"),n}selector(){var e,t,n=new ue.Group,i=this.selectorScope,r="root"==this.currentState();do{this.accept("newline"),e=this.selectorParts(),r&&i&&e.unshift(new ue.Literal(i+" ")),e.length&&((t=new ue.Selector(e)).lineno=e[0].lineno,t.column=e[0].column,n.push(t))}while(this.accept(",")||this.accept("newline"));return"selector-parts"==this.currentState()?n.nodes:(this.state.push("selector"),n.block=this.block(n),this.state.pop(),n)}selectorParts(){for(var e,t=[];e=this.selectorToken();)switch(e.type){case"{":this.skipSpaces();var n=this.expression();this.skipSpaces(),this.expect("}"),t.push(n);break;case this.prefix&&".":var i=new ue.Literal(e.val+this.prefix);i.prefixed=!0,t.push(i);break;case"comment":break;case"color":case"unit":t.push(new ue.Literal(e.val.raw));break;case"space":t.push(new ue.Literal(" "));break;case"function":t.push(new ue.Literal(e.val.name+"("));break;case"ident":t.push(new ue.Literal(e.val.name||e.val.string));break;default:t.push(new ue.Literal(e.val)),e.space&&t.push(new ue.Literal(" "))}return t}assignment(){var e,t,n=this.id(),i=n.name;if(e=this.accept("=")||this.accept("?=")||this.accept("+=")||this.accept("-=")||this.accept("*=")||this.accept("/=")||this.accept("%=")){this.state.push("assignment");var r=this.list();switch(r.isEmpty&&this.assignAtblock(r),(t=new ue.Ident(i,r)).lineno=n.lineno,t.column=n.column,this.state.pop(),e.type){case"?=":var a=new ue.BinOp("is defined",t),o=new ue.Expression;o.push(new ue.Ident(i)),t=new ue.Ternary(a,o,t);break;case"+=":case"-=":case"*=":case"/=":case"%=":t.val=new ue.BinOp(e.type[0],new ue.Ident(i),r)}}return t}function(){var e,t=1,n=2;e:for(;e=this.lookahead(n++);)switch(e.type){case"function":case"(":++t;break;case")":if(!--t)break e;break;case"eos":this.error('failed to find closing paren ")"')}return"expression"===this.currentState()?this.functionCall():this.looksLikeFunctionDefinition(n)?this.functionDefinition():this.expression()}url(){this.expect("function"),this.state.push("function arguments");var e=this.args();return this.expect(")"),this.state.pop(),new ue.Call("url",e)}functionCall(){var e=this.accept("+");if("url"==this.peek().val.name)return this.url();var t=this.expect("function").val,n=t.name;this.state.push("function arguments"),this.parens++;var i=this.args();this.expect(")"),this.parens--,this.state.pop();var r=new ue.Call(n,i);return r.column=t.column,r.lineno=t.lineno,e&&(this.state.push("function"),r.block=this.block(r),this.state.pop()),r}functionDefinition(){var e=this.expect("function"),t=e.val.name;this.state.push("function params"),this.skipWhitespace();var n=this.params();this.skipWhitespace(),this.expect(")"),this.state.pop(),this.state.push("function");var i=new ue.Function(t,n);return i.column=e.column,i.lineno=e.lineno,i.block=this.block(i),this.state.pop(),new ue.Ident(t,i)}params(){for(var e,t,n=new ue.Params;e=this.accept("ident");)this.accept("space"),n.push(t=e.val),this.accept("...")?t.rest=!0:this.accept("=")&&(t.val=this.expression()),this.skipWhitespace(),this.accept(","),this.skipWhitespace();return n}args(){var e,t=new ue.Arguments;do{"ident"==this.peek().type&&":"==this.lookahead(2).type?(e=this.next().val.string,this.expect(":"),t.map[e]=this.expression()):t.push(this.expression())}while(this.accept(","));return t}list(){for(var e=this.expression();this.accept(",");)if(e.isList)t.push(this.expression());else{var t=new ue.Expression(!0);t.push(e),t.push(this.expression()),e=t}return e}expression(){var e,t=new ue.Expression;for(this.state.push("expression");e=this.negation();)e||this.error("unexpected token {peek} in expression"),t.push(e);return this.state.pop(),t.nodes.length&&(t.lineno=t.nodes[0].lineno,t.column=t.nodes[0].column),t}negation(){return this.accept("not")?new ue.UnaryOp("!",this.negation()):this.ternary()}ternary(){var e=this.logical();if(this.accept("?")){var t=this.expression();this.expect(":");var n=this.expression();e=new ue.Ternary(e,t,n)}return e}logical(){for(var e,t=this.typecheck();e=this.accept("&&")||this.accept("||");)t=new ue.BinOp(e.type,t,this.typecheck());return t}typecheck(){for(var e,t=this.equality();e=this.accept("is a");)this.operand=!0,t||this.error('illegal unary "'+e+'", missing left-hand operand'),t=new ue.BinOp(e.type,t,this.equality()),this.operand=!1;return t}equality(){for(var e,t=this.in();e=this.accept("==")||this.accept("!=");)this.operand=!0,t||this.error('illegal unary "'+e+'", missing left-hand operand'),t=new ue.BinOp(e.type,t,this.in()),this.operand=!1;return t}in(){for(var e=this.relational();this.accept("in");)this.operand=!0,e||this.error('illegal unary "in", missing left-hand operand'),e=new ue.BinOp("in",e,this.relational()),this.operand=!1;return e}relational(){for(var e,t=this.range();e=this.accept(">=")||this.accept("<=")||this.accept("<")||this.accept(">");)this.operand=!0,t||this.error('illegal unary "'+e+'", missing left-hand operand'),t=new ue.BinOp(e.type,t,this.range()),this.operand=!1;return t}range(){var e,t=this.additive();return(e=this.accept("...")||this.accept(".."))&&(this.operand=!0,t||this.error('illegal unary "'+e+'", missing left-hand operand'),t=new ue.BinOp(e.val,t,this.additive()),this.operand=!1),t}additive(){for(var e,t=this.multiplicative();e=this.accept("+")||this.accept("-");)this.operand=!0,t=new ue.BinOp(e.type,t,this.multiplicative()),this.operand=!1;return t}multiplicative(){for(var e,n=this.defined();e=this.accept("**")||this.accept("*")||this.accept("/")||this.accept("%");){if(this.operand=!0,"/"==e&&this.inProperty&&!this.parens)return this.stash.push(new t("literal",new ue.Literal("/"))),this.operand=!1,n;n||this.error('illegal unary "'+e+'", missing left-hand operand'),n=new ue.BinOp(e.type,n,this.defined()),this.operand=!1}return n}defined(){var e=this.unary();return this.accept("is defined")&&(e||this.error('illegal unary "is defined", missing left-hand operand'),e=new ue.BinOp("is defined",e)),e}unary(){var e,t;return(e=this.accept("!")||this.accept("~")||this.accept("+")||this.accept("-"))?(this.operand=!0,(t=this.unary())||this.error('illegal unary "'+e+'"'),t=new ue.UnaryOp(e.type,t),this.operand=!1,t):this.subscript()}subscript(){for(var e=this.member();this.accept("[");)e=new ue.BinOp("[]",e,this.expression()),this.expect("]");return this.accept("=")&&(e.op+="=",e.val=this.list(),e.val.isEmpty&&this.assignAtblock(e.val)),e}member(){var e=this.primary();if(e){for(;this.accept(".");){var t=new ue.Ident(this.expect("ident").val.string);e=new ue.Member(e,t)}this.skipSpaces(),this.accept("=")&&(e.val=this.list(),e.val.isEmpty&&this.assignAtblock(e.val))}return e}object(){var e,t,n,i,r=new ue.Object;for(this.expect("{"),this.skipWhitespace();!this.accept("}");)this.accept("comment")||this.accept("newline")||(n||this.accept(","),(e=this.accept("ident")||this.accept("string"))||this.error('expected "ident" or "string", got {peek}'),i=e.val.hash,this.skipSpacesAndComments(),this.expect(":"),t=this.expression(),r.setValue(i,t),r.setKey(i,e.val),n=this.accept(","),this.skipWhitespace());return r}primary(){var e;if(this.skipSpaces(),this.accept("(")){++this.parens;var t=this.expression(),n=this.expect(")");return--this.parens,this.accept("%")&&t.push(new ue.Ident("%")),e=this.peek(),!n.space&&"ident"==e.type&&~i.indexOf(e.val.string)&&(t.push(new ue.Ident(e.val.string)),this.next()),t}switch((e=this.peek()).type){case"null":case"unit":case"color":case"string":case"literal":case"boolean":case"comment":return this.next().val;case!this.cond&&"{":return this.object();case"atblock":return this.atblock();case"atrule":var r=new ue.Ident(this.next().val);return r.property=!0,r;case"ident":return this.ident();case"function":return e.anonymous?this.functionDefinition():this.functionCall()}}};const xe={exports:{}};!function(e){void 0!==xe&&(xe.exports=e);var t={on:function on(e,t){return getListeners(this,e).push(t),this},once:function once(e,t){var n=this;return wrap.originalListener=t,getListeners(n,e).push(wrap),n;function wrap(){off.call(n,e,wrap),t.apply(this,arguments)}},off:off,emit:function emit(e,t){var n=this,i=getListeners(n,e,!0);if(!i)return!1;var r=arguments.length;if(1===r)i.forEach(zeroarg);else if(2===r)i.forEach(onearg);else{var a=Array.prototype.slice.call(arguments,1);i.forEach(moreargs)}return!!i.length;function zeroarg(e){e.call(n)}function onearg(e){e.call(n,t)}function moreargs(e){e.apply(n,a)}}};function mixin(e){for(var n in t)e[n]=t[n];return e}function off(e,t){var n,i=this;if(arguments.length){if(t){if(n=getListeners(i,e,!0)){if(!(n=n.filter(ne)).length)return off.call(i,e);i.listeners[e]=n}}else if((n=i.listeners)&&(delete n[e],!Object.keys(n).length))return off.call(i)}else delete i.listeners;return i;function ne(e){return e!==t&&e.originalListener!==t}}function getListeners(e,t,n){if(!n||e.listeners){var i=e.listeners||(e.listeners={});return i[t]||(i[t]=[])}}mixin(e.prototype),e.mixin=mixin}(( /** * event-lite.js - Light-weight EventEmitter (less than 1KB when gzipped) * @@ -60,4 +60,5 @@ class ParseError extends Error{constructor(e){super(),this.name="ParseError",thi * obj.emit("bar"); // dispatch another event * obj.off("foo"); // remove event listener */ -function EventLite(){if(!(this instanceof EventLite))return new EventLite}));var Ae=Ee.exports;const _e=class{constructor(){this.events=new Ae}on(...e){return this.events.on(...e)}off(...e){return this.events.off(...e)}once(...e){return this.events.once(...e)}emit(...e){return this.events.emit(...e)}listeners(e){return this.events.listeners&&this.events.listeners[e]||[]}},noop=()=>noop;var Le=e.dirname,Oe=class DepsResolver extends n{constructor(e,t){super(e),this.filename=t.filename,this.paths=t.paths||[],this.paths.push(Le(t.filename||".")),this.options=t,this.functions={},this.deps=[]}visit(e){switch(e.nodeName){case"root":case"block":case"expression":this.visitRoot(e);break;case"group":case"media":case"atblock":case"atrule":case"keyframes":case"each":case"supports":this.visit(e.block);break;default:super.visit(e)}}visitRoot(e){for(var t=0,n=e.nodes.length;tnoop;var Ee=e.dirname,Ae=class DepsResolver extends n{constructor(e,t){super(e),this.filename=t.filename,this.paths=t.paths||[],this.paths.push(Ee(t.filename||".")),this.options=t,this.functions={},this.deps=[]}visit(e){switch(e.nodeName){case"root":case"block":case"expression":this.visitRoot(e);break;case"group":case"media":case"atblock":case"atrule":case"keyframes":case"each":case"supports":this.visit(e.block);break;default:super.visit(e)}}visitRoot(e){for(var t=0,n=e.nodes.length;t 2) {\n var lastSlashIndex = res.lastIndexOf('/');\n if (lastSlashIndex !== res.length - 1) {\n if (lastSlashIndex === -1) {\n res = '';\n lastSegmentLength = 0;\n } else {\n res = res.slice(0, lastSlashIndex);\n lastSegmentLength = res.length - 1 - res.lastIndexOf('/');\n }\n lastSlash = i;\n dots = 0;\n continue;\n }\n } else if (res.length === 2 || res.length === 1) {\n res = '';\n lastSegmentLength = 0;\n lastSlash = i;\n dots = 0;\n continue;\n }\n }\n if (allowAboveRoot) {\n if (res.length > 0)\n res += '/..';\n else\n res = '..';\n lastSegmentLength = 2;\n }\n } else {\n if (res.length > 0)\n res += '/' + path.slice(lastSlash + 1, i);\n else\n res = path.slice(lastSlash + 1, i);\n lastSegmentLength = i - lastSlash - 1;\n }\n lastSlash = i;\n dots = 0;\n } else if (code === 46 /*.*/ && dots !== -1) {\n ++dots;\n } else {\n dots = -1;\n }\n }\n return res;\n}\n\nfunction _format(sep, pathObject) {\n var dir = pathObject.dir || pathObject.root;\n var base = pathObject.base || (pathObject.name || '') + (pathObject.ext || '');\n if (!dir) {\n return base;\n }\n if (dir === pathObject.root) {\n return dir + base;\n }\n return dir + sep + base;\n}\n\nvar posix = {\n // path.resolve([from ...], to)\n resolve: function resolve() {\n var resolvedPath = '';\n var resolvedAbsolute = false;\n var cwd;\n\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path;\n if (i >= 0)\n path = arguments[i];\n else {\n if (cwd === undefined)\n cwd = process.cwd();\n path = cwd;\n }\n\n assertPath(path);\n\n // Skip empty entries\n if (path.length === 0) {\n continue;\n }\n\n resolvedPath = path + '/' + resolvedPath;\n resolvedAbsolute = path.charCodeAt(0) === 47 /*/*/;\n }\n\n // At this point the path should be resolved to a full absolute path, but\n // handle relative paths to be safe (might happen when process.cwd() fails)\n\n // Normalize the path\n resolvedPath = normalizeStringPosix(resolvedPath, !resolvedAbsolute);\n\n if (resolvedAbsolute) {\n if (resolvedPath.length > 0)\n return '/' + resolvedPath;\n else\n return '/';\n } else if (resolvedPath.length > 0) {\n return resolvedPath;\n } else {\n return '.';\n }\n },\n\n normalize: function normalize(path) {\n assertPath(path);\n\n if (path.length === 0) return '.';\n\n var isAbsolute = path.charCodeAt(0) === 47 /*/*/;\n var trailingSeparator = path.charCodeAt(path.length - 1) === 47 /*/*/;\n\n // Normalize the path\n path = normalizeStringPosix(path, !isAbsolute);\n\n if (path.length === 0 && !isAbsolute) path = '.';\n if (path.length > 0 && trailingSeparator) path += '/';\n\n if (isAbsolute) return '/' + path;\n return path;\n },\n\n isAbsolute: function isAbsolute(path) {\n assertPath(path);\n return path.length > 0 && path.charCodeAt(0) === 47 /*/*/;\n },\n\n join: function join() {\n if (arguments.length === 0)\n return '.';\n var joined;\n for (var i = 0; i < arguments.length; ++i) {\n var arg = arguments[i];\n assertPath(arg);\n if (arg.length > 0) {\n if (joined === undefined)\n joined = arg;\n else\n joined += '/' + arg;\n }\n }\n if (joined === undefined)\n return '.';\n return posix.normalize(joined);\n },\n\n relative: function relative(from, to) {\n assertPath(from);\n assertPath(to);\n\n if (from === to) return '';\n\n from = posix.resolve(from);\n to = posix.resolve(to);\n\n if (from === to) return '';\n\n // Trim any leading backslashes\n var fromStart = 1;\n for (; fromStart < from.length; ++fromStart) {\n if (from.charCodeAt(fromStart) !== 47 /*/*/)\n break;\n }\n var fromEnd = from.length;\n var fromLen = fromEnd - fromStart;\n\n // Trim any leading backslashes\n var toStart = 1;\n for (; toStart < to.length; ++toStart) {\n if (to.charCodeAt(toStart) !== 47 /*/*/)\n break;\n }\n var toEnd = to.length;\n var toLen = toEnd - toStart;\n\n // Compare paths to find the longest common path from root\n var length = fromLen < toLen ? fromLen : toLen;\n var lastCommonSep = -1;\n var i = 0;\n for (; i <= length; ++i) {\n if (i === length) {\n if (toLen > length) {\n if (to.charCodeAt(toStart + i) === 47 /*/*/) {\n // We get here if `from` is the exact base path for `to`.\n // For example: from='/foo/bar'; to='/foo/bar/baz'\n return to.slice(toStart + i + 1);\n } else if (i === 0) {\n // We get here if `from` is the root\n // For example: from='/'; to='/foo'\n return to.slice(toStart + i);\n }\n } else if (fromLen > length) {\n if (from.charCodeAt(fromStart + i) === 47 /*/*/) {\n // We get here if `to` is the exact base path for `from`.\n // For example: from='/foo/bar/baz'; to='/foo/bar'\n lastCommonSep = i;\n } else if (i === 0) {\n // We get here if `to` is the root.\n // For example: from='/foo'; to='/'\n lastCommonSep = 0;\n }\n }\n break;\n }\n var fromCode = from.charCodeAt(fromStart + i);\n var toCode = to.charCodeAt(toStart + i);\n if (fromCode !== toCode)\n break;\n else if (fromCode === 47 /*/*/)\n lastCommonSep = i;\n }\n\n var out = '';\n // Generate the relative path based on the path difference between `to`\n // and `from`\n for (i = fromStart + lastCommonSep + 1; i <= fromEnd; ++i) {\n if (i === fromEnd || from.charCodeAt(i) === 47 /*/*/) {\n if (out.length === 0)\n out += '..';\n else\n out += '/..';\n }\n }\n\n // Lastly, append the rest of the destination (`to`) path that comes after\n // the common path parts\n if (out.length > 0)\n return out + to.slice(toStart + lastCommonSep);\n else {\n toStart += lastCommonSep;\n if (to.charCodeAt(toStart) === 47 /*/*/)\n ++toStart;\n return to.slice(toStart);\n }\n },\n\n _makeLong: function _makeLong(path) {\n return path;\n },\n\n dirname: function dirname(path) {\n assertPath(path);\n if (path.length === 0) return '.';\n var code = path.charCodeAt(0);\n var hasRoot = code === 47 /*/*/;\n var end = -1;\n var matchedSlash = true;\n for (var i = path.length - 1; i >= 1; --i) {\n code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n if (!matchedSlash) {\n end = i;\n break;\n }\n } else {\n // We saw the first non-path separator\n matchedSlash = false;\n }\n }\n\n if (end === -1) return hasRoot ? '/' : '.';\n if (hasRoot && end === 1) return '//';\n return path.slice(0, end);\n },\n\n basename: function basename(path, ext) {\n if (ext !== undefined && typeof ext !== 'string') throw new TypeError('\"ext\" argument must be a string');\n assertPath(path);\n\n var start = 0;\n var end = -1;\n var matchedSlash = true;\n var i;\n\n if (ext !== undefined && ext.length > 0 && ext.length <= path.length) {\n if (ext.length === path.length && ext === path) return '';\n var extIdx = ext.length - 1;\n var firstNonSlashEnd = -1;\n for (i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else {\n if (firstNonSlashEnd === -1) {\n // We saw the first non-path separator, remember this index in case\n // we need it if the extension ends up not matching\n matchedSlash = false;\n firstNonSlashEnd = i + 1;\n }\n if (extIdx >= 0) {\n // Try to match the explicit extension\n if (code === ext.charCodeAt(extIdx)) {\n if (--extIdx === -1) {\n // We matched the extension, so mark this as the end of our path\n // component\n end = i;\n }\n } else {\n // Extension does not match, so our result is the entire path\n // component\n extIdx = -1;\n end = firstNonSlashEnd;\n }\n }\n }\n }\n\n if (start === end) end = firstNonSlashEnd;else if (end === -1) end = path.length;\n return path.slice(start, end);\n } else {\n for (i = path.length - 1; i >= 0; --i) {\n if (path.charCodeAt(i) === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // path component\n matchedSlash = false;\n end = i + 1;\n }\n }\n\n if (end === -1) return '';\n return path.slice(start, end);\n }\n },\n\n extname: function extname(path) {\n assertPath(path);\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true;\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n var preDotState = 0;\n for (var i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n continue;\n }\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n if (code === 46 /*.*/) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1)\n startDot = i;\n else if (preDotState !== 1)\n preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (startDot === -1 || end === -1 ||\n // We saw a non-dot character immediately before the dot\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n return '';\n }\n return path.slice(startDot, end);\n },\n\n format: function format(pathObject) {\n if (pathObject === null || typeof pathObject !== 'object') {\n throw new TypeError('The \"pathObject\" argument must be of type Object. Received type ' + typeof pathObject);\n }\n return _format('/', pathObject);\n },\n\n parse: function parse(path) {\n assertPath(path);\n\n var ret = { root: '', dir: '', base: '', ext: '', name: '' };\n if (path.length === 0) return ret;\n var code = path.charCodeAt(0);\n var isAbsolute = code === 47 /*/*/;\n var start;\n if (isAbsolute) {\n ret.root = '/';\n start = 1;\n } else {\n start = 0;\n }\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true;\n var i = path.length - 1;\n\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n var preDotState = 0;\n\n // Get non-dir info\n for (; i >= start; --i) {\n code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n continue;\n }\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n if (code === 46 /*.*/) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1) startDot = i;else if (preDotState !== 1) preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (startDot === -1 || end === -1 ||\n // We saw a non-dot character immediately before the dot\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n if (end !== -1) {\n if (startPart === 0 && isAbsolute) ret.base = ret.name = path.slice(1, end);else ret.base = ret.name = path.slice(startPart, end);\n }\n } else {\n if (startPart === 0 && isAbsolute) {\n ret.name = path.slice(1, startDot);\n ret.base = path.slice(1, end);\n } else {\n ret.name = path.slice(startPart, startDot);\n ret.base = path.slice(startPart, end);\n }\n ret.ext = path.slice(startDot, end);\n }\n\n if (startPart > 0) ret.dir = path.slice(0, startPart - 1);else if (isAbsolute) ret.dir = '/';\n\n return ret;\n },\n\n sep: '/',\n delimiter: ':',\n win32: null,\n posix: null\n};\n\nposix.posix = posix;\n\nmodule.exports = posix;\n","\n/*!\n * Stylus - Token\n * Copyright (c) Automattic \n * MIT Licensed\n */\n\n/**\n * Module dependencies.\n */\n\nvar inspect = require('util').inspect;\n\nexports = module.exports = class Token {\n /**\n * Initialize a new `Token` with the given `type` and `val`.\n *\n * @param {String} type\n * @param {Mixed} val\n * @api private\n */\n\n constructor(type, val) {\n this.type = type;\n this.val = val;\n }\n\n /**\n * Custom inspect.\n *\n * @return {String}\n * @api public\n */\n\n inspect() {\n var val = ' ' + inspect(this.val);\n return '[Token:' + this.lineno + ':' + this.column + ' '\n + '\\x1b[32m' + this.type + '\\x1b[0m'\n + '\\x1b[33m' + (this.val ? val : '') + '\\x1b[0m'\n + ']';\n };\n\n /**\n * Return type or val.\n *\n * @return {String}\n * @api public\n */\n\n toString() {\n return (undefined === this.val\n ? this.type\n : this.val).toString();\n };\n};\n","\n/*!\n * Stylus - Visitor\n * Copyright (c) Automattic \n * MIT Licensed\n */\n\nmodule.exports = class Visitor {\n /**\n * Initialize a new `Visitor` with the given `root` Node.\n *\n * @param {Node} root\n * @api private\n */\n\n constructor(root) {\n this.root = root;\n }\n\n /**\n * Visit the given `node`.\n *\n * @param {Node|Array} node\n * @api public\n */\n\n visit(node, fn) {\n var method = 'visit' + node.constructor.name;\n if (this[method]) return this[method](node);\n return node;\n };\n};\n","\n/*!\n * Stylus - units\n * Copyright (c) Automattic \n * MIT Licensed\n */\n\n// units found in http://www.w3.org/TR/css3-values\n// and in https://www.w3.org/TR/css-values-4\n\nmodule.exports = [\n 'em', 'ex', 'ch', 'rem' // relative lengths\n\n , 'vw', 'svw', 'lvw', 'dvw' // relative viewport-percentage lengths (including de-facto standard)\n , 'vh', 'svh', 'lvh', 'dvh'\n , 'vi', 'svi', 'lvi', 'dvi'\n , 'vb', 'svb', 'lvb', 'dvb'\n , 'vmin', 'svmin', 'lvmin', 'dvmin'\n , 'vmax', 'svmax', 'lvmax', 'dvmax'\n\n , 'cm', 'mm', 'in', 'pt', 'pc', 'px' // absolute lengths\n , 'deg', 'grad', 'rad', 'turn' // angles\n , 's', 'ms' // times\n , 'Hz', 'kHz' // frequencies\n , 'dpi', 'dpcm', 'dppx', 'x' // resolutions\n , '%' // percentage type\n , 'fr' // grid-layout (http://www.w3.org/TR/css3-grid-layout/)\n];\n","\n/*!\n * Stylus - Stack\n * Copyright (c) Automattic \n * MIT Licensed\n */\n\nmodule.exports = class Stack extends Array {\n /**\n * Initialize a new `Stack`.\n *\n * @api private\n */\n\n constructor() {\n super()\n Array.apply(this, arguments);\n }\n\n /**\n * Push the given `frame`.\n *\n * @param {Frame} frame\n * @api public\n */\n\n push(frame) {\n frame.stack = this;\n frame.parent = this.currentFrame;\n return [].push.apply(this, arguments);\n };\n\n /**\n * Return the current stack `Frame`.\n *\n * @return {Frame}\n * @api private\n */\n\n get currentFrame() {\n return this[this.length - 1];\n };\n\n /**\n * Lookup stack frame for the given `block`.\n *\n * @param {Block} block\n * @return {Frame}\n * @api private\n */\n\n getBlockFrame(block) {\n for (var i = 0; i < this.length; ++i) {\n if (block == this[i].block) {\n return this[i];\n }\n }\n };\n\n /**\n * Lookup the given local variable `name`, relative\n * to the lexical scope of the current frame's `Block`.\n *\n * When the result of a lookup is an identifier\n * a recursive lookup is performed, defaulting to\n * returning the identifier itself.\n *\n * @param {String} name\n * @return {Node}\n * @api private\n */\n\n lookup(name) {\n var block = this.currentFrame.block\n , val\n , ret;\n\n do {\n var frame = this.getBlockFrame(block);\n if (frame && (val = frame.lookup(name))) {\n return val;\n }\n } while (block = block.parent);\n };\n\n /**\n * Custom inspect.\n *\n * @return {String}\n * @api private\n */\n\n inspect() {\n return this.reverse().map(function (frame) {\n return frame.inspect();\n }).join('\\n');\n };\n\n /**\n * Return stack string formatted as:\n *\n * at (::)\n *\n * @return {String}\n * @api private\n */\n\n toString() {\n var block\n , node\n , buf = []\n , location\n , len = this.length;\n\n while (len--) {\n block = this[len].block;\n if (node = block.node) {\n location = '(' + node.filename + ':' + (node.lineno + 1) + ':' + node.column + ')';\n switch (node.nodeName) {\n case 'function':\n buf.push(' at ' + node.name + '() ' + location);\n break;\n case 'group':\n buf.push(' at \"' + node.nodes[0].val + '\" ' + location);\n break;\n }\n }\n }\n\n return buf.join('\\n');\n };\n};\n","\n/*!\n * Stylus - stack - Scope\n * Copyright (c) Automattic \n * MIT Licensed\n */\n\nmodule.exports = class Scope {\n /**\n * Initialize a new `Scope`.\n *\n * @api private\n */\n\n constructor() {\n this.locals = {};\n }\n\n /**\n * Add `ident` node to the current scope.\n *\n * @param {Ident} ident\n * @api private\n */\n\n add(ident) {\n this.locals[ident.name] = ident.val;\n };\n\n /**\n * Lookup the given local variable `name`.\n *\n * @param {String} name\n * @return {Node}\n * @api private\n */\n\n lookup(name) {\n return this.locals.hasOwnProperty(name) ? this.locals[name] : undefined;\n };\n\n /**\n * Custom inspect.\n *\n * @return {String}\n * @api public\n */\n\n inspect() {\n var keys = Object.keys(this.locals).map(function (key) { return '@' + key; });\n return '[Scope'\n + (keys.length ? ' ' + keys.join(', ') : '')\n + ']';\n };\n};\n","\n/*!\n * Stylus - stack - Frame\n * Copyright (c) Automattic \n * MIT Licensed\n */\n\n/**\n * Module dependencies.\n */\n\nvar Scope = require('./scope');\n\nmodule.exports = class Frame {\n /**\n * Initialize a new `Frame` with the given `block`.\n *\n * @param {Block} block\n * @api private\n */\n\n constructor(block) {\n this._scope = false === block.scope\n ? null\n : new Scope;\n this.block = block;\n }\n\n /**\n * Return this frame's scope or the parent scope\n * for scope-less blocks.\n *\n * @return {Scope}\n * @api public\n */\n\n get scope() {\n return this._scope || this.parent.scope;\n };\n\n /**\n * Lookup the given local variable `name`.\n *\n * @param {String} name\n * @return {Node}\n * @api private\n */\n\n lookup(name) {\n return this.scope.lookup(name)\n };\n\n /**\n * Custom inspect.\n *\n * @return {String}\n * @api public\n */\n\n inspect() {\n return '[Frame '\n + (false === this.block.scope\n ? 'scope-less'\n : this.scope.inspect())\n + ']';\n };\n};\n","module.exports = {\r\n sync: path => {\r\n if (path === \"functions/index.styl\") {\r\n return [path];\r\n }\r\n return [];\r\n }\r\n};\r\n","/*!\n * Stylus - Selector Parser\n * Copyright (c) Automattic \n * MIT Licensed\n */\n\nvar COMBINATORS = ['>', '+', '~'];\n\nmodule.exports = class SelectorParser {\n /**\n * Initialize a new `SelectorParser`\n * with the given `str` and selectors `stack`.\n *\n * @param {String} str\n * @param {Array} stack\n * @param {Array} parts\n * @api private\n */\n\n constructor(str, stack, parts) {\n this.str = str;\n this.stack = stack || [];\n this.parts = parts || [];\n this.pos = 0;\n this.level = 2;\n this.nested = true;\n this.ignore = false;\n }\n\n /**\n * Consume the given `len` and move current position.\n *\n * @param {Number} len\n * @api private\n */\n\n skip(len) {\n this.str = this.str.substr(len);\n this.pos += len;\n };\n\n /**\n * Consume spaces.\n */\n\n skipSpaces() {\n while (' ' == this.str[0]) this.skip(1);\n };\n\n /**\n * Fetch next token.\n *\n * @return {String}\n * @api private\n */\n\n advance() {\n return this.root()\n || this.relative()\n || this.initial()\n || this.escaped()\n || this.parent()\n || this.partial()\n || this.char();\n };\n\n /**\n * '/'\n */\n\n root() {\n if (!this.pos && '/' == this.str[0]\n && 'deep' != this.str.slice(1, 5)) {\n this.nested = false;\n this.skip(1);\n }\n };\n\n /**\n * '../'\n */\n\n relative(multi) {\n if ((!this.pos || multi) && '../' == this.str.slice(0, 3)) {\n this.nested = false;\n this.skip(3);\n while (this.relative(true)) this.level++;\n if (!this.raw) {\n var ret = this.stack[this.stack.length - this.level];\n if (ret) {\n return ret;\n } else {\n this.ignore = true;\n }\n }\n }\n };\n\n /**\n * '~/'\n */\n\n initial() {\n if (!this.pos && '~' == this.str[0] && '/' == this.str[1]) {\n this.nested = false;\n this.skip(2);\n return this.stack[0];\n }\n };\n\n /**\n * '\\' ('&' | '^')\n */\n\n escaped() {\n if ('\\\\' == this.str[0]) {\n var char = this.str[1];\n if ('&' == char || '^' == char) {\n this.skip(2);\n return char;\n }\n }\n };\n\n /**\n * '&'\n */\n\n parent() {\n if ('&' == this.str[0]) {\n this.nested = false;\n\n if (!this.pos && (!this.stack.length || this.raw)) {\n var i = 0;\n while (' ' == this.str[++i]);\n if (~COMBINATORS.indexOf(this.str[i])) {\n this.skip(i + 1);\n return;\n }\n }\n\n this.skip(1);\n if (!this.raw)\n return this.stack[this.stack.length - 1];\n }\n };\n\n /**\n * '^[' range ']'\n */\n\n partial() {\n if ('^' == this.str[0] && '[' == this.str[1]) {\n this.skip(2);\n this.skipSpaces();\n var ret = this.range();\n this.skipSpaces();\n if (']' != this.str[0]) return '^[';\n this.nested = false;\n this.skip(1);\n if (ret) {\n return ret;\n } else {\n this.ignore = true;\n }\n }\n };\n\n /**\n * '-'? 0-9+\n */\n\n number() {\n var i = 0, ret = '';\n if ('-' == this.str[i])\n ret += this.str[i++];\n\n while (this.str.charCodeAt(i) >= 48\n && this.str.charCodeAt(i) <= 57)\n ret += this.str[i++];\n\n if (ret) {\n this.skip(i);\n return Number(ret);\n }\n };\n\n /**\n * number ('..' number)?\n */\n\n range() {\n var start = this.number()\n , ret;\n\n if ('..' == this.str.slice(0, 2)) {\n this.skip(2);\n var end = this.number()\n , len = this.parts.length;\n\n if (start < 0) start = len + start - 1;\n if (end < 0) end = len + end - 1;\n\n if (start > end) {\n var tmp = start;\n start = end;\n end = tmp;\n }\n\n if (end < len - 1) {\n ret = this.parts.slice(start, end + 1).map(function (part) {\n var selector = new SelectorParser(part, this.stack, this.parts);\n selector.raw = true;\n return selector.parse();\n }, this).map(function (selector) {\n return (selector.nested ? ' ' : '') + selector.val;\n }).join('').trim();\n }\n } else {\n ret = this.stack[\n start < 0 ? this.stack.length + start - 1 : start\n ];\n }\n\n if (ret) {\n return ret;\n } else {\n this.ignore = true;\n }\n };\n\n /**\n * .+\n */\n\n char() {\n var char = this.str[0];\n this.skip(1);\n return char;\n };\n\n /**\n * Parses the selector.\n *\n * @return {Object}\n * @api private\n */\n\n parse() {\n var val = '';\n while (this.str.length) {\n val += this.advance() || '';\n if (this.ignore) {\n val = '';\n break;\n }\n }\n return { val: val.trimRight(), nested: this.nested };\n };\n};\n","\n/*!\n * Stylus - utils\n * Copyright (c) Automattic \n * MIT Licensed\n */\n\n/**\n * Module dependencies.\n */\n\nvar nodes = require('./nodes')\n , basename = require('path').basename\n , relative = require('path').relative\n , join = require('path').join\n , isAbsolute = require('path').isAbsolute\n , glob = require('glob')\n , fs = require('fs');\n\n/**\n * Check if `path` looks absolute.\n *\n * @param {String} path\n * @return {Boolean}\n * @api private\n */\n\nexports.absolute = isAbsolute || function(path){\n // On Windows the path could start with a drive letter, i.e. a:\\\\ or two leading backslashes.\n // Also on Windows, the path may have been normalized to forward slashes, so check for this too.\n return path.substr(0, 2) == '\\\\\\\\' || '/' === path.charAt(0) || /^[a-z]:[\\\\\\/]/i.test(path);\n};\n\n/**\n * Attempt to lookup `path` within `paths` from tail to head.\n * Optionally a path to `ignore` may be passed.\n *\n * @param {String} path\n * @param {String} paths\n * @param {String} ignore\n * @return {String}\n * @api private\n */\n\nexports.lookup = function(path, paths, ignore){\n var lookup\n , i = paths.length;\n\n // Absolute\n if (exports.absolute(path)) {\n try {\n fs.statSync(path);\n return path;\n } catch (err) {\n // Ignore, continue on\n // to trying relative lookup.\n // Needed for url(/images/foo.png)\n // for example\n }\n }\n\n // Relative\n while (i--) {\n try {\n lookup = join(paths[i], path);\n if (ignore == lookup) continue;\n fs.statSync(lookup);\n return lookup;\n } catch (err) {\n // Ignore\n }\n }\n};\n\n/**\n * Like `utils.lookup` but uses `glob` to find files.\n *\n * @param {String} path\n * @param {String} paths\n * @param {String} ignore\n * @return {Array}\n * @api private\n */\nexports.find = function(path, paths, ignore) {\n var lookup\n , found\n , i = paths.length;\n\n // Absolute\n if (exports.absolute(path)) {\n if ((found = glob.sync(path, {windowsPathsNoEscape: true, posix: true})).length) {\n return found.sort();\n }\n }\n\n // Relative\n while (i--) {\n lookup = join(paths[i], path);\n if (ignore == lookup) continue;\n if ((found = glob.sync(lookup, {windowsPathsNoEscape: true, posix: true})).length) {\n return found.sort();\n }\n }\n};\n\n/**\n * Lookup index file inside dir with given `name`.\n *\n * @param {String} name\n * @return {Array}\n * @api private\n */\n\nexports.lookupIndex = function(name, paths, filename){\n // foo/index.styl\n var found = exports.find(join(name, 'index.styl'), paths, filename);\n if (!found) {\n // foo/foo.styl\n found = exports.find(join(name, basename(name).replace(/\\.styl/i, '') + '.styl'), paths, filename);\n }\n if (!found && !~name.indexOf('node_modules')) {\n // node_modules/foo/.. or node_modules/foo.styl/..\n found = lookupPackage(join('node_modules', name));\n }\n return found;\n\n function lookupPackage(dir) {\n var pkg = exports.lookup(join(dir, 'package.json'), paths, filename);\n if (!pkg) {\n return /\\.styl$/i.test(dir) ? exports.lookupIndex(dir, paths, filename) : lookupPackage(dir + '.styl');\n }\n var main = require(relative(__dirname, pkg)).main;\n if (main) {\n found = exports.find(join(dir, main), paths, filename);\n } else {\n found = exports.lookupIndex(dir, paths, filename);\n }\n return found;\n }\n};\n\n/**\n * Format the given `err` with the given `options`.\n *\n * Options:\n *\n * - `filename` context filename\n * - `context` context line count [8]\n * - `lineno` context line number\n * - `column` context column number\n * - `input` input string\n *\n * @param {Error} err\n * @param {Object} options\n * @return {Error}\n * @api private\n */\n\nexports.formatException = function(err, options){\n var lineno = options.lineno\n , column = options.column\n , filename = options.filename\n , str = options.input\n , context = options.context || 8\n , context = context / 2\n , lines = ('\\n' + str).split('\\n')\n , start = Math.max(lineno - context, 1)\n , end = Math.min(lines.length, lineno + context)\n , pad = end.toString().length;\n\n var context = lines.slice(start, end).map(function(line, i){\n var curr = i + start;\n return ' '\n + Array(pad - curr.toString().length + 1).join(' ')\n + curr\n + '| '\n + line\n + (curr == lineno\n ? '\\n' + Array(curr.toString().length + 5 + column).join('-') + '^'\n : '');\n }).join('\\n');\n\n err.message = filename\n + ':' + lineno\n + ':' + column\n + '\\n' + context\n + '\\n\\n' + err.message + '\\n'\n + (err.stylusStack ? err.stylusStack + '\\n' : '');\n\n // Don't show JS stack trace for Stylus errors\n if (err.fromStylus) err.stack = 'Error: ' + err.message;\n\n return err;\n};\n\n/**\n * Assert that `node` is of the given `type`, or throw.\n *\n * @param {Node} node\n * @param {Function} type\n * @param {String} param\n * @api public\n */\n\nexports.assertType = function(node, type, param){\n exports.assertPresent(node, param);\n if (node.nodeName == type) return;\n var actual = node.nodeName\n , msg = 'expected '\n + (param ? '\"' + param + '\" to be a ' : '')\n + type + ', but got '\n + actual + ':' + node;\n throw new Error('TypeError: ' + msg);\n};\n\n/**\n * Assert that `node` is a `String` or `Ident`.\n *\n * @param {Node} node\n * @param {String} param\n * @api public\n */\n\nexports.assertString = function(node, param){\n exports.assertPresent(node, param);\n switch (node.nodeName) {\n case 'string':\n case 'ident':\n case 'literal':\n return;\n default:\n var actual = node.nodeName\n , msg = 'expected string, ident or literal, but got ' + actual + ':' + node;\n throw new Error('TypeError: ' + msg);\n }\n};\n\n/**\n * Assert that `node` is a `RGBA` or `HSLA`.\n *\n * @param {Node} node\n * @param {String} param\n * @api public\n */\n\nexports.assertColor = function(node, param){\n exports.assertPresent(node, param);\n switch (node.nodeName) {\n case 'rgba':\n case 'hsla':\n return;\n default:\n var actual = node.nodeName\n , msg = 'expected rgba or hsla, but got ' + actual + ':' + node;\n throw new Error('TypeError: ' + msg);\n }\n};\n\n/**\n * Assert that param `name` is given, aka the `node` is passed.\n *\n * @param {Node} node\n * @param {String} name\n * @api public\n */\n\nexports.assertPresent = function(node, name){\n if (node) return;\n if (name) throw new Error('\"' + name + '\" argument required');\n throw new Error('argument missing');\n};\n\n/**\n * Unwrap `expr`.\n *\n * Takes an expressions with length of 1\n * such as `((1 2 3))` and unwraps it to `(1 2 3)`.\n *\n * @param {Expression} expr\n * @return {Node}\n * @api public\n */\n\nexports.unwrap = function(expr){\n // explicitly preserve the expression\n if (expr.preserve) return expr;\n if ('arguments' != expr.nodeName && 'expression' != expr.nodeName) return expr;\n if (1 != expr.nodes.length) return expr;\n if ('arguments' != expr.nodes[0].nodeName && 'expression' != expr.nodes[0].nodeName) return expr;\n return exports.unwrap(expr.nodes[0]);\n};\n\n/**\n * Coerce JavaScript values to their Stylus equivalents.\n *\n * @param {Mixed} val\n * @param {Boolean} [raw]\n * @return {Node}\n * @api public\n */\n\nexports.coerce = function(val, raw){\n switch (typeof val) {\n case 'function':\n return val;\n case 'string':\n return new nodes.String(val);\n case 'boolean':\n return new nodes.Boolean(val);\n case 'number':\n return new nodes.Unit(val);\n default:\n if (null == val) return nodes.null;\n if (Array.isArray(val)) return exports.coerceArray(val, raw);\n if (val.nodeName) return val;\n return exports.coerceObject(val, raw);\n }\n};\n\n/**\n * Coerce a javascript `Array` to a Stylus `Expression`.\n *\n * @param {Array} val\n * @param {Boolean} [raw]\n * @return {Expression}\n * @api private\n */\n\nexports.coerceArray = function(val, raw){\n var expr = new nodes.Expression;\n val.forEach(function(val){\n expr.push(exports.coerce(val, raw));\n });\n return expr;\n};\n\n/**\n * Coerce a javascript object to a Stylus `Expression` or `Object`.\n *\n * For example `{ foo: 'bar', bar: 'baz' }` would become\n * the expression `(foo 'bar') (bar 'baz')`. If `raw` is true\n * given `obj` would become a Stylus hash object.\n *\n * @param {Object} obj\n * @param {Boolean} [raw]\n * @return {Expression|Object}\n * @api public\n */\n\nexports.coerceObject = function(obj, raw){\n var node = raw ? new nodes.Object : new nodes.Expression\n , val;\n\n for (var key in obj) {\n val = exports.coerce(obj[key], raw);\n key = new nodes.Ident(key);\n if (raw) {\n node.set(key, val);\n } else {\n node.push(exports.coerceArray([key, val]));\n }\n }\n\n return node;\n};\n\n/**\n * Return param names for `fn`.\n *\n * @param {Function} fn\n * @return {Array}\n * @api private\n */\n\nexports.params = function(fn){\n return fn\n .toString()\n .match(/\\(([^)]*)\\)/)[1].split(/ *, */);\n};\n\n/**\n * Merge object `b` with `a`.\n *\n * @param {Object} a\n * @param {Object} b\n * @param {Boolean} [deep]\n * @return {Object} a\n * @api private\n */\nexports.merge = function(a, b, deep) {\n for (var k in b) {\n if (deep && a[k]) {\n var nodeA = exports.unwrap(a[k]).first\n , nodeB = exports.unwrap(b[k]).first;\n\n if ('object' == nodeA.nodeName && 'object' == nodeB.nodeName) {\n a[k].first.vals = exports.merge(nodeA.vals, nodeB.vals, deep);\n } else {\n a[k] = b[k];\n }\n } else {\n a[k] = b[k];\n }\n }\n return a;\n};\n\n/**\n * Returns an array with unique values.\n *\n * @param {Array} arr\n * @return {Array}\n * @api private\n */\n\nexports.uniq = function(arr){\n var obj = {}\n , ret = [];\n\n for (var i = 0, len = arr.length; i < len; ++i) {\n if (arr[i] in obj) continue;\n\n obj[arr[i]] = true;\n ret.push(arr[i]);\n }\n return ret;\n};\n\n/**\n * Compile selector strings in `arr` from the bottom-up\n * to produce the selector combinations. For example\n * the following Stylus:\n *\n * ul\n * li\n * p\n * a\n * color: red\n *\n * Would return:\n *\n * [ 'ul li a', 'ul p a' ]\n *\n * @param {Array} arr\n * @param {Boolean} leaveHidden\n * @return {Array}\n * @api private\n */\n\nexports.compileSelectors = function(arr, leaveHidden){\n var selectors = []\n , Parser = require('./selector-parser')\n , indent = (this.indent || '')\n , buf = [];\n\n function parse(selector, buf) {\n var parts = [selector.val]\n , str = new Parser(parts[0], parents, parts).parse().val\n , parents = [];\n\n if (buf.length) {\n for (var i = 0, len = buf.length; i < len; ++i) {\n parts.push(buf[i]);\n parents.push(str);\n var child = new Parser(buf[i], parents, parts).parse();\n\n if (child.nested) {\n str += ' ' + child.val;\n } else {\n str = child.val;\n }\n }\n }\n return str.trim();\n }\n\n function compile(arr, i) {\n if (i) {\n arr[i].forEach(function(selector){\n if (!leaveHidden && selector.isPlaceholder) return;\n if (selector.inherits) {\n buf.unshift(selector.val);\n compile(arr, i - 1);\n buf.shift();\n } else {\n selectors.push(indent + parse(selector, buf));\n }\n });\n } else {\n arr[0].forEach(function(selector){\n if (!leaveHidden && selector.isPlaceholder) return;\n var str = parse(selector, buf);\n if (str) selectors.push(indent + str);\n });\n }\n }\n\n compile(arr, arr.length - 1);\n\n // Return the list with unique selectors only\n return exports.uniq(selectors);\n};\n\n/**\n * Attempt to parse string.\n *\n * @param {String} str\n * @return {Node}\n * @api private\n */\n\nexports.parseString = function(str){\n var Parser = require('./parser')\n , parser\n , ret;\n\n try {\n parser = new Parser(str);\n ret = parser.list();\n } catch (e) {\n ret = new nodes.Literal(str);\n }\n return ret;\n};\n","var utils = require('../utils');\n\n/**\n * Adjust HSL `color` `prop` by `amount`.\n *\n * @param {RGBA|HSLA} color\n * @param {String} prop\n * @param {Unit} amount\n * @return {RGBA}\n * @api private\n */\n\nfunction adjust(color, prop, amount){\n utils.assertColor(color, 'color');\n utils.assertString(prop, 'prop');\n utils.assertType(amount, 'unit', 'amount');\n var hsl = color.hsla.clone();\n prop = { hue: 'h', saturation: 's', lightness: 'l' }[prop.string];\n if (!prop) throw new Error('invalid adjustment property');\n var val = amount.val;\n if ('%' == amount.type){\n val = 'l' == prop && val > 0\n ? (100 - hsl[prop]) * val / 100\n : hsl[prop] * (val / 100);\n }\n hsl[prop] += val;\n return hsl.rgba;\n};\nadjust.params = ['color', 'prop', 'amount'];\nmodule.exports = adjust;\n","var utils = require('../utils')\n , nodes = require('../nodes');\n\n/**\n * Return a `RGBA` from the r,g,b,a channels.\n *\n * Examples:\n *\n * rgba(255,0,0,0.5)\n * // => rgba(255,0,0,0.5)\n *\n * rgba(255,0,0,1)\n * // => #ff0000\n *\n * rgba(#ffcc00, 50%)\n * // rgba(255,204,0,0.5)\n *\n * @param {Unit|RGBA|HSLA} red\n * @param {Unit} green\n * @param {Unit} blue\n * @param {Unit} alpha\n * @return {RGBA}\n * @api public\n */\n\nfunction rgba(red, green, blue, alpha){\n switch (arguments.length) {\n case 1:\n utils.assertColor(red);\n return red.rgba;\n case 2:\n utils.assertColor(red);\n var color = red.rgba;\n utils.assertType(green, 'unit', 'alpha');\n alpha = green.clone();\n if ('%' == alpha.type) alpha.val /= 100;\n return new nodes.RGBA(\n color.r\n , color.g\n , color.b\n , alpha.val);\n default:\n utils.assertType(red, 'unit', 'red');\n utils.assertType(green, 'unit', 'green');\n utils.assertType(blue, 'unit', 'blue');\n utils.assertType(alpha, 'unit', 'alpha');\n var r = '%' == red.type ? Math.round(red.val * 2.55) : red.val\n , g = '%' == green.type ? Math.round(green.val * 2.55) : green.val\n , b = '%' == blue.type ? Math.round(blue.val * 2.55) : blue.val;\n\n alpha = alpha.clone();\n if (alpha && '%' == alpha.type) alpha.val /= 100;\n return new nodes.RGBA(\n r\n , g\n , b\n , alpha.val);\n }\n}\nrgba.params = ['red', 'green', 'blue', 'alpha'];\nmodule.exports = rgba;\n","var nodes = require('../nodes')\n , rgba = require('./rgba');\n\n/**\n * Return the alpha component of the given `color`,\n * or set the alpha component to the optional second `value` argument.\n *\n * Examples:\n *\n * alpha(#fff)\n * // => 1\n *\n * alpha(rgba(0,0,0,0.3))\n * // => 0.3\n *\n * alpha(#fff, 0.5)\n * // => rgba(255,255,255,0.5)\n *\n * @param {RGBA|HSLA} color\n * @param {Unit} [value]\n * @return {Unit|RGBA}\n * @api public\n */\n\nfunction alpha(color, value){\n color = color.rgba;\n if (value) {\n return rgba(\n new nodes.Unit(color.r),\n new nodes.Unit(color.g),\n new nodes.Unit(color.b),\n value\n );\n }\n return new nodes.Unit(color.a, '');\n};\nalpha.params = ['color', 'value'];\nmodule.exports = alpha;\n","var utils = require('../utils')\n , path = require('path');\n\n/**\n * Return the basename of `path`.\n *\n * @param {String} path\n * @return {String}\n * @api public\n */\n\nfunction basename(p, ext){\n utils.assertString(p, 'path');\n return path.basename(p.val, ext && ext.val);\n};\nbasename.params = ['p', 'ext'];\nmodule.exports = basename;\n","var utils = require('../utils')\n , nodes = require('../nodes');\n\n/**\n * Blend the `top` color over the `bottom`\n *\n * Examples:\n *\n * blend(rgba(#FFF, 0.5), #000)\n * // => #808080\n * \n * blend(rgba(#FFDE00,.42), #19C261)\n * // => #7ace38\n * \n * blend(rgba(lime, 0.5), rgba(red, 0.25))\n * // => rgba(128,128,0,0.625)\n *\n * @param {RGBA|HSLA} top\n * @param {RGBA|HSLA} [bottom=#fff]\n * @return {RGBA}\n * @api public\n */\n\nfunction blend(top, bottom){\n // TODO: different blend modes like overlay etc.\n utils.assertColor(top);\n top = top.rgba;\n bottom = bottom || new nodes.RGBA(255, 255, 255, 1);\n utils.assertColor(bottom);\n bottom = bottom.rgba;\n\n return new nodes.RGBA(\n top.r * top.a + bottom.r * (1 - top.a),\n top.g * top.a + bottom.g * (1 - top.a),\n top.b * top.a + bottom.b * (1 - top.a),\n top.a + bottom.a - top.a * bottom.a);\n};\nblend.params = ['top', 'bottom'];\nmodule.exports = blend;\n","var nodes = require('../nodes')\n , rgba = require('./rgba');\n\n/**\n * Return the blue component of the given `color`,\n * or set the blue component to the optional second `value` argument.\n *\n * Examples:\n *\n * blue(#00c)\n * // => 204\n *\n * blue(#000, 255)\n * // => #00f\n *\n * @param {RGBA|HSLA} color\n * @param {Unit} [value]\n * @return {Unit|RGBA}\n * @api public\n */\n\nfunction blue(color, value){\n color = color.rgba;\n if (value) {\n return rgba(\n new nodes.Unit(color.r),\n new nodes.Unit(color.g),\n value,\n new nodes.Unit(color.a)\n );\n }\n return new nodes.Unit(color.b, '');\n};\nblue.params = ['color', 'value'];\nmodule.exports = blue;\n","var utils = require('../utils')\n , nodes = require('../nodes');\n\n/**\n * Add property `name` with the given `expr`\n * to the mixin-able block.\n *\n * @param {String|Ident|Literal} name\n * @param {Expression} expr\n * @return {Property}\n * @api public\n */\n\n(module.exports = function addProperty(name, expr){\n utils.assertType(name, 'expression', 'name');\n name = utils.unwrap(name).first;\n utils.assertString(name, 'name');\n utils.assertType(expr, 'expression', 'expr');\n var prop = new nodes.Property([name], expr);\n var block = this.closestBlock;\n\n var len = block.nodes.length\n , head = block.nodes.slice(0, block.index)\n , tail = block.nodes.slice(block.index++, len);\n head.push(prop);\n block.nodes = head.concat(tail);\n\n return prop;\n}).raw = true;\n","var utils = require('../utils')\n , nodes = require('../nodes');\n\n/**\n * Return a `Literal` `num` converted to the provided `base`, padded to `width`\n * with zeroes (default width is 2)\n *\n * @param {Number} num\n * @param {Number} base\n * @param {Number} width\n * @return {Literal}\n * @api public\n */\n\n(module.exports = function(num, base, width) {\n utils.assertPresent(num, 'number');\n utils.assertPresent(base, 'base');\n num = utils.unwrap(num).nodes[0].val;\n base = utils.unwrap(base).nodes[0].val;\n width = (width && utils.unwrap(width).nodes[0].val) || 2;\n var result = Number(num).toString(base);\n while (result.length < width) {\n result = '0' + result;\n }\n return new nodes.Literal(result);\n}).raw = true;\n","var utils = require('../utils');\n\n/**\n * Return a clone of the given `expr`.\n *\n * @param {Expression} expr\n * @return {Node}\n * @api public\n */\n\n(module.exports = function clone(expr){\n utils.assertPresent(expr, 'expr');\n return expr.clone();\n}).raw = true;\n","var utils = require('../utils')\n , nodes = require('../nodes');\n\n/**\n * Color component name map.\n */\n\nvar componentMap = {\n red: 'r'\n , green: 'g'\n , blue: 'b'\n , alpha: 'a'\n , hue: 'h'\n , saturation: 's'\n , lightness: 'l'\n};\n\n/**\n * Color component unit type map.\n */\n\nvar unitMap = {\n hue: 'deg'\n , saturation: '%'\n , lightness: '%'\n};\n\n/**\n * Color type map.\n */\n\nvar typeMap = {\n red: 'rgba'\n , blue: 'rgba'\n , green: 'rgba'\n , alpha: 'rgba'\n , hue: 'hsla'\n , saturation: 'hsla'\n , lightness: 'hsla'\n};\n\n/**\n * Return component `name` for the given `color`.\n *\n * @param {RGBA|HSLA} color\n * @param {String} name\n * @return {Unit}\n * @api public\n */\n\nfunction component(color, name) {\n utils.assertColor(color, 'color');\n utils.assertString(name, 'name');\n var name = name.string\n , unit = unitMap[name]\n , type = typeMap[name]\n , name = componentMap[name];\n if (!name) throw new Error('invalid color component \"' + name + '\"');\n return new nodes.Unit(color[type][name], unit);\n};\ncomponent.params = ['color', 'name'];\nmodule.exports = component;\n","var utils = require('../utils')\n , nodes = require('../nodes');\n\n/**\n * Returns the relative luminance of the given `color`,\n * see http://www.w3.org/TR/WCAG20/#relativeluminancedef\n *\n * Examples:\n *\n * luminosity(white)\n * // => 1\n * \n * luminosity(#000)\n * // => 0\n * \n * luminosity(red)\n * // => 0.2126\n *\n * @param {RGBA|HSLA} color\n * @return {Unit}\n * @api public\n */\n\nfunction luminosity(color){\n utils.assertColor(color);\n color = color.rgba;\n function processChannel(channel) {\n channel = channel / 255;\n return (0.03928 > channel)\n ? channel / 12.92\n : Math.pow(((channel + 0.055) / 1.055), 2.4);\n }\n return new nodes.Unit(\n 0.2126 * processChannel(color.r)\n + 0.7152 * processChannel(color.g)\n + 0.0722 * processChannel(color.b)\n );\n};\nluminosity.params = ['color'];\nmodule.exports = luminosity;\n","var utils = require('../utils')\n , nodes = require('../nodes')\n , blend = require('./blend')\n , luminosity = require('./luminosity');\n\n/**\n * Returns the contrast ratio object between `top` and `bottom` colors,\n * based on http://leaverou.github.io/contrast-ratio/\n * and https://github.com/LeaVerou/contrast-ratio/blob/gh-pages/color.js#L108\n *\n * Examples:\n *\n * contrast(#000, #fff).ratio\n * => 21\n *\n * contrast(#000, rgba(#FFF, 0.5))\n * => { \"ratio\": \"13.15;\", \"error\": \"7.85\", \"min\": \"5.3\", \"max\": \"21\" }\n *\n * @param {RGBA|HSLA} top\n * @param {RGBA|HSLA} [bottom=#fff]\n * @return {Object}\n * @api public\n */\n\nfunction contrast(top, bottom){\n if ('rgba' != top.nodeName && 'hsla' != top.nodeName) {\n return new nodes.Literal('contrast(' + (top.isNull ? '' : top.toString()) + ')');\n }\n var result = new nodes.Object();\n top = top.rgba;\n bottom = bottom || new nodes.RGBA(255, 255, 255, 1);\n utils.assertColor(bottom);\n bottom = bottom.rgba;\n function contrast(top, bottom) {\n if (1 > top.a) {\n top = blend(top, bottom);\n }\n var l1 = luminosity(bottom).val + 0.05\n , l2 = luminosity(top).val + 0.05\n , ratio = l1 / l2;\n\n if (l2 > l1) {\n ratio = 1 / ratio;\n }\n return Math.round(ratio * 10) / 10;\n }\n\n if (1 <= bottom.a) {\n var resultRatio = new nodes.Unit(contrast(top, bottom));\n result.set('ratio', resultRatio);\n result.set('error', new nodes.Unit(0));\n result.set('min', resultRatio);\n result.set('max', resultRatio);\n } else {\n var onBlack = contrast(top, blend(bottom, new nodes.RGBA(0, 0, 0, 1)))\n , onWhite = contrast(top, blend(bottom, new nodes.RGBA(255, 255, 255, 1)))\n , max = Math.max(onBlack, onWhite);\n function processChannel(topChannel, bottomChannel) {\n return Math.min(Math.max(0, (topChannel - bottomChannel * bottom.a) / (1 - bottom.a)), 255);\n }\n var closest = new nodes.RGBA(\n processChannel(top.r, bottom.r),\n processChannel(top.g, bottom.g),\n processChannel(top.b, bottom.b),\n 1\n );\n var min = contrast(top, blend(bottom, closest));\n\n result.set('ratio', new nodes.Unit(Math.round((min + max) * 50) / 100));\n result.set('error', new nodes.Unit(Math.round((max - min) * 50) / 100));\n result.set('min', new nodes.Unit(min));\n result.set('max', new nodes.Unit(max));\n }\n return result;\n}\ncontrast.params = ['top', 'bottom'];\nmodule.exports = contrast;\n","var utils = require('../utils');\n\n/**\n * Like `unquote` but tries to convert\n * the given `str` to a Stylus node.\n *\n * @param {String} str\n * @return {Node}\n * @api public\n */\n\nfunction convert(str){\n utils.assertString(str, 'str');\n return utils.parseString(str.string);\n};\nconvert.params = ['str'];\nmodule.exports = convert;\n","var utils = require('../utils')\n , nodes = require('../nodes');\n\n/**\n * Set a variable `name` on current scope.\n *\n * @param {String} name\n * @param {Expression} expr\n * @param {Boolean} [global]\n * @api public\n */\n\nfunction define(name, expr, global){\n utils.assertType(name, 'string', 'name');\n expr = utils.unwrap(expr);\n var scope = this.currentScope;\n if (global && global.toBoolean().isTrue) {\n scope = this.global.scope;\n }\n var node = new nodes.Ident(name.val, expr);\n scope.add(node);\n return nodes.null;\n};\ndefine.params = ['name', 'expr', 'global'];\nmodule.exports = define;\n","var utils = require('../utils')\n , path = require('path');\n\n/**\n * Return the dirname of `path`.\n *\n * @param {String} path\n * @return {String}\n * @api public\n */\n\nfunction dirname(p){\n utils.assertString(p, 'path');\n return path.dirname(p.val).replace(/\\\\/g, '/');\n};\ndirname.params = ['p'];\nmodule.exports = dirname;\n","var utils = require('../utils');\n\n/**\n * Throw an error with the given `msg`.\n *\n * @param {String} msg\n * @api public\n */\n\nfunction error(msg){\n utils.assertType(msg, 'string', 'msg');\n var err = new Error(msg.val);\n err.fromStylus = true;\n throw err;\n};\nerror.params = ['msg'];\nmodule.exports = error;\n","var utils = require('../utils')\n , path = require('path');\n\n/**\n * Return the extname of `path`.\n *\n * @param {String} path\n * @return {String}\n * @api public\n */\n\nfunction extname(p){\n utils.assertString(p, 'path');\n return path.extname(p.val);\n};\nextname.params = ['p'];\nmodule.exports = extname;\n","var nodes = require('../nodes')\n , rgba = require('./rgba');\n\n/**\n * Return the green component of the given `color`,\n * or set the green component to the optional second `value` argument.\n *\n * Examples:\n *\n * green(#0c0)\n * // => 204\n *\n * green(#000, 255)\n * // => #0f0\n *\n * @param {RGBA|HSLA} color\n * @param {Unit} [value]\n * @return {Unit|RGBA}\n * @api public\n */\n\nfunction green(color, value){\n color = color.rgba;\n if (value) {\n return rgba(\n new nodes.Unit(color.r),\n value,\n new nodes.Unit(color.b),\n new nodes.Unit(color.a)\n );\n }\n return new nodes.Unit(color.g, '');\n};\ngreen.params = ['color', 'value'];\nmodule.exports = green;\n","var utils = require('../utils')\n , nodes = require('../nodes');\n\n/**\n * Convert the given `color` to an `HSLA` node,\n * or h,s,l,a component values.\n *\n * Examples:\n *\n * hsla(10deg, 50%, 30%, 0.5)\n * // => HSLA\n *\n * hsla(#ffcc00)\n * // => HSLA\n *\n * @param {RGBA|HSLA|Unit} hue\n * @param {Unit} saturation\n * @param {Unit} lightness\n * @param {Unit} alpha\n * @return {HSLA}\n * @api public\n */\n\nfunction hsla(hue, saturation, lightness, alpha){\n switch (arguments.length) {\n case 1:\n utils.assertColor(hue);\n return hue.hsla;\n case 2:\n utils.assertColor(hue);\n var color = hue.hsla;\n utils.assertType(saturation, 'unit', 'alpha');\n var alpha = saturation.clone();\n if ('%' == alpha.type) alpha.val /= 100;\n return new nodes.HSLA(\n color.h\n , color.s\n , color.l\n , alpha.val);\n default:\n utils.assertType(hue, 'unit', 'hue');\n utils.assertType(saturation, 'unit', 'saturation');\n utils.assertType(lightness, 'unit', 'lightness');\n utils.assertType(alpha, 'unit', 'alpha');\n var alpha = alpha.clone();\n if (alpha && '%' == alpha.type) alpha.val /= 100;\n return new nodes.HSLA(\n hue.val\n , saturation.val\n , lightness.val\n , alpha.val);\n }\n};\nhsla.params = ['hue', 'saturation', 'lightness', 'alpha'];\nmodule.exports = hsla;\n","var utils = require('../utils')\n , nodes = require('../nodes')\n , hsla = require('./hsla');\n\n/**\n * Convert the given `color` to an `HSLA` node,\n * or h,s,l component values.\n *\n * Examples:\n *\n * hsl(10, 50, 30)\n * // => HSLA\n *\n * hsl(#ffcc00)\n * // => HSLA\n *\n * @param {Unit|HSLA|RGBA} hue\n * @param {Unit} saturation\n * @param {Unit} lightness\n * @return {HSLA}\n * @api public\n */\n\nfunction hsl(hue, saturation, lightness){\n if (1 == arguments.length) {\n utils.assertColor(hue, 'color');\n return hue.hsla;\n } else {\n return hsla(\n hue\n , saturation\n , lightness\n , new nodes.Unit(1));\n }\n};\nhsl.params = ['hue', 'saturation', 'lightness'];\nmodule.exports = hsl;\n","var nodes = require('../nodes')\n , hsla = require('./hsla')\n , component = require('./component');\n\n/**\n * Return the hue component of the given `color`,\n * or set the hue component to the optional second `value` argument.\n *\n * Examples:\n *\n * hue(#00c)\n * // => 240deg\n *\n * hue(#00c, 90deg)\n * // => #6c0\n *\n * @param {RGBA|HSLA} color\n * @param {Unit} [value]\n * @return {Unit|RGBA}\n * @api public\n */\n\nfunction hue(color, value){\n if (value) {\n var hslaColor = color.hsla;\n return hsla(\n value,\n new nodes.Unit(hslaColor.s),\n new nodes.Unit(hslaColor.l),\n new nodes.Unit(hslaColor.a)\n )\n }\n return component(color, new nodes.String('hue'));\n};\nhue.params = ['color', 'value'];\nmodule.exports = hue;\n","var utils = require('../utils')\n , nodes = require('../nodes')\n , readFile = require('fs').readFileSync;\n\n/**\n * Convert a .json file into stylus variables or object.\n * Nested variable object keys are joined with a dash (-)\n *\n * Given this sample media-queries.json file:\n * {\n * \"small\": \"screen and (max-width:400px)\",\n * \"tablet\": {\n * \"landscape\": \"screen and (min-width:600px) and (orientation:landscape)\",\n * \"portrait\": \"screen and (min-width:600px) and (orientation:portrait)\"\n * }\n * }\n *\n * Examples:\n *\n * json('media-queries.json')\n *\n * @media small\n * // => @media screen and (max-width:400px)\n *\n * @media tablet-landscape\n * // => @media screen and (min-width:600px) and (orientation:landscape)\n *\n * vars = json('vars.json', { hash: true })\n * body\n * width: vars.width\n *\n * @param {String} path\n * @param {Boolean} [local]\n * @param {String} [namePrefix]\n * @api public\n*/\n\nfunction json(path, local, namePrefix){\n utils.assertString(path, 'path');\n\n // lookup\n path = path.string;\n var found = utils.lookup(path, this.options.paths, this.options.filename)\n , options = (local && 'object' == local.nodeName) && local;\n\n if (!found) {\n // optional JSON file\n if (options && options.get('optional').toBoolean().isTrue) {\n return nodes.null;\n }\n throw new Error('failed to locate .json file ' + path);\n }\n\n // read\n var json = JSON.parse(readFile(found, 'utf8'));\n\n if (options) {\n return convert(json, options);\n } else {\n oldJson.call(this, json, local, namePrefix);\n }\n\n function convert(obj, options){\n var ret = new nodes.Object()\n , leaveStrings = options.get('leave-strings').toBoolean();\n\n for (var key in obj) {\n var val = obj[key];\n if ('object' == typeof val) {\n ret.set(key, convert(val, options));\n } else {\n val = utils.coerce(val);\n if ('string' == val.nodeName && leaveStrings.isFalse) {\n val = utils.parseString(val.string);\n }\n ret.set(key, val);\n }\n }\n return ret;\n }\n};\njson.params = ['path', 'local', 'namePrefix'];\nmodule.exports = json;\n\n/**\n * Old `json` BIF.\n *\n * @api private\n */\n\nfunction oldJson(json, local, namePrefix){\n if (namePrefix) {\n utils.assertString(namePrefix, 'namePrefix');\n namePrefix = namePrefix.val;\n } else {\n namePrefix = '';\n }\n local = local ? local.toBoolean() : new nodes.Boolean(local);\n var scope = local.isTrue ? this.currentScope : this.global.scope;\n\n convert(json);\n return;\n\n function convert(obj, prefix){\n prefix = prefix ? prefix + '-' : '';\n for (var key in obj){\n var val = obj[key];\n var name = prefix + key;\n if ('object' == typeof val) {\n convert(val, name);\n } else {\n val = utils.coerce(val);\n if ('string' == val.nodeName) val = utils.parseString(val.string);\n scope.add({ name: namePrefix + name, val: val });\n }\n }\n }\n};\n","var nodes = require('../nodes')\n , hsla = require('./hsla')\n , component = require('./component');\n\n/**\n * Return the lightness component of the given `color`,\n * or set the lightness component to the optional second `value` argument.\n *\n * Examples:\n *\n * lightness(#00c)\n * // => 100%\n *\n * lightness(#00c, 80%)\n * // => #99f\n *\n * @param {RGBA|HSLA} color\n * @param {Unit} [value]\n * @return {Unit|RGBA}\n * @api public\n */\n\nfunction lightness(color, value){\n if (value) {\n var hslaColor = color.hsla;\n return hsla(\n new nodes.Unit(hslaColor.h),\n new nodes.Unit(hslaColor.s),\n value,\n new nodes.Unit(hslaColor.a)\n )\n }\n return component(color, new nodes.String('lightness'));\n};\nlightness.params = ['color', 'value'];\nmodule.exports = lightness;\n","var utils = require('../utils')\n , nodes = require('../nodes');\n\n/**\n * Lookup variable `name` or return Null.\n *\n * @param {String} name\n * @return {Mixed}\n * @api public\n */\n\nfunction lookup(name){\n utils.assertType(name, 'string', 'name');\n var node = this.lookup(name.val);\n if (!node) return nodes.null;\n return this.visit(node);\n}\nlookup.params = ['name'];\nmodule.exports = lookup;\n","var utils = require('../utils');\n\n/**\n * Return length of the given `expr`.\n *\n * @param {Expression} expr\n * @return {Unit}\n * @api public\n */\n\n(module.exports = function length(expr){\n if (expr) {\n if (expr.nodes) {\n var nodes = utils.unwrap(expr).nodes;\n if (1 == nodes.length && 'object' == nodes[0].nodeName) {\n return nodes[0].length;\n } else if (1 == nodes.length && 'string' == nodes[0].nodeName) {\n return nodes[0].val.length;\n } else {\n return nodes.length;\n }\n } else {\n return 1;\n }\n }\n return 0;\n}).raw = true;\n","var utils = require('../utils')\n , nodes = require('../nodes');\n\n/**\n * Return the separator of the given `list`.\n *\n * Examples:\n *\n * list1 = a b c\n * list-separator(list1)\n * // => ' '\n *\n * list2 = a, b, c\n * list-separator(list2)\n * // => ','\n *\n * @param {Experssion} list\n * @return {String}\n * @api public\n */\n\n(module.exports = function listSeparator(list){\n list = utils.unwrap(list);\n return new nodes.String(list.isList ? ',' : ' ');\n}).raw = true;\n","var utils = require('../utils')\n , nodes = require('../nodes');\n\nvar VALID_FLAGS = 'igm';\n\n/**\n * retrieves the matches when matching a `val`(string)\n * against a `pattern`(regular expression).\n *\n * Examples:\n * $regex = '^(height|width)?([<>=]{1,})(.*)'\n *\n * match($regex,'height>=sm')\n * \t // => ('height>=sm' 'height' '>=' 'sm')\n * \t // => also truthy\n *\n * match($regex, 'lorem ipsum')\n * // => null\n *\n * @param {String} pattern\n * @param {String|Ident} val\n * @param {String|Ident} [flags='']\n * @return {String|Null}\n * @api public\n */\n\nfunction match(pattern, val, flags){\n utils.assertType(pattern, 'string', 'pattern');\n utils.assertString(val, 'val');\n var re = new RegExp(pattern.val, validateFlags(flags) ? flags.string : '');\n return val.string.match(re);\n}\nmatch.params = ['pattern', 'val', 'flags'];\nmodule.exports = match;\n\nfunction validateFlags(flags) {\n flags = flags && flags.string;\n\n if (flags) {\n return flags.split('').every(function(flag) {\n return ~VALID_FLAGS.indexOf(flag);\n });\n }\n return false;\n}\n","var utils = require('../utils')\n , nodes = require('../nodes');\n\n/**\n * Apply Math `fn` to `n`.\n *\n * @param {Unit} n\n * @param {String} fn\n * @return {Unit}\n * @api private\n */\n\nfunction math(n, fn){\n utils.assertType(n, 'unit', 'n');\n utils.assertString(fn, 'fn');\n return new nodes.Unit(Math[fn.string](n.val), n.type);\n}\nmath.params = ['n', 'fn'];\nmodule.exports = math;\n","var utils = require('../utils');\n\n/**\n * Perform `op` on the `left` and `right` operands.\n *\n * @param {String} op\n * @param {Node} left\n * @param {Node} right\n * @return {Node}\n * @api public\n */\n\nfunction operate(op, left, right){\n utils.assertType(op, 'string', 'op');\n utils.assertPresent(left, 'left');\n utils.assertPresent(right, 'right');\n return left.operate(op.val, right);\n}\noperate.params = ['op', 'left', 'right'];\nmodule.exports = operate;\n","var utils = require('../utils')\n , nodes = require('../nodes');\n\n/**\n * Returns a list of units from `start` to `stop`\n * by `step`. If `step` argument is omitted,\n * it defaults to 1.\n *\n * @param {Unit} start\n * @param {Unit} stop\n * @param {Unit} [step]\n * @return {Expression}\n * @api public\n */\n\nfunction range(start, stop, step){\n utils.assertType(start, 'unit', 'start');\n utils.assertType(stop, 'unit', 'stop');\n if (step) {\n utils.assertType(step, 'unit', 'step');\n if (0 == step.val) {\n throw new Error('ArgumentError: \"step\" argument must not be zero');\n }\n } else {\n step = new nodes.Unit(1);\n }\n var list = new nodes.Expression;\n for (var i = start.val; i <= stop.val; i += step.val) {\n list.push(new nodes.Unit(i, start.type));\n }\n return list;\n}\nrange.params = ['start', 'stop', 'step'];\nmodule.exports = range;\n","var nodes = require('../nodes')\n , rgba = require('./rgba');\n\n/**\n * Return the red component of the given `color`,\n * or set the red component to the optional second `value` argument.\n *\n * Examples:\n *\n * red(#c00)\n * // => 204\n *\n * red(#000, 255)\n * // => #f00\n *\n * @param {RGBA|HSLA} color\n * @param {Unit} [value]\n * @return {Unit|RGBA}\n * @api public\n */\n\nfunction red(color, value){\n color = color.rgba;\n if (value) {\n return rgba(\n value,\n new nodes.Unit(color.g),\n new nodes.Unit(color.b),\n new nodes.Unit(color.a)\n );\n }\n return new nodes.Unit(color.r, '');\n}\nred.params = ['color', 'value'];\nmodule.exports = red;\n","var utils = require('../utils');\n\n/**\n * Remove the given `key` from the `object`.\n *\n * @param {Object} object\n * @param {String} key\n * @return {Object}\n * @api public\n */\n\nfunction remove(object, key){\n utils.assertType(object, 'object', 'object');\n utils.assertString(key, 'key');\n delete object.vals[key.string];\n return object;\n}\nremove.params = ['object', 'key'];\nmodule.exports = remove;\n","var utils = require('../utils')\n , nodes = require('../nodes');\n\n/**\n * Returns string with all matches of `pattern` replaced by `replacement` in given `val`\n *\n * @param {String} pattern\n * @param {String} replacement\n * @param {String|Ident} val\n * @return {String|Ident}\n * @api public\n */\n\nfunction replace(pattern, replacement, val){\n utils.assertString(pattern, 'pattern');\n utils.assertString(replacement, 'replacement');\n utils.assertString(val, 'val');\n pattern = new RegExp(pattern.string, 'g');\n var res = val.string.replace(pattern, replacement.string);\n return val instanceof nodes.Ident\n ? new nodes.Ident(res)\n : new nodes.String(res);\n}\nreplace.params = ['pattern', 'replacement', 'val'];\nmodule.exports = replace;\n","var utils = require('../utils')\n , nodes = require('../nodes')\n , rgba = require('./rgba');\n\n/**\n * Return a `RGBA` from the r,g,b channels.\n *\n * Examples:\n *\n * rgb(255,204,0)\n * // => #ffcc00\n *\n * rgb(#fff)\n * // => #fff\n *\n * @param {Unit|RGBA|HSLA} red\n * @param {Unit} green\n * @param {Unit} blue\n * @return {RGBA}\n * @api public\n */\n\nfunction rgb(red, green, blue){\n switch (arguments.length) {\n case 1:\n utils.assertColor(red);\n var color = red.rgba;\n return new nodes.RGBA(\n color.r\n , color.g\n , color.b\n , 1);\n default:\n return rgba(\n red\n , green\n , blue\n , new nodes.Unit(1));\n }\n}\nrgb.params = ['red', 'green', 'blue'];\nmodule.exports = rgb;\n","var utils = require('../utils');\n\n/**\n * Merge the object `dest` with the given args.\n *\n * @param {Object} dest\n * @param {Object} ...\n * @return {Object} dest\n * @api public\n */\n\n(module.exports = function merge(dest){\n utils.assertPresent(dest, 'dest');\n dest = utils.unwrap(dest).first;\n utils.assertType(dest, 'object', 'dest');\n\n var last = utils.unwrap(arguments[arguments.length - 1]).first\n , deep = (true === last.val);\n\n for (var i = 1, len = arguments.length - deep; i < len; ++i) {\n utils.merge(dest.vals, utils.unwrap(arguments[i]).first.vals, deep);\n }\n return dest;\n}).raw = true;\n","var utils = require('../utils')\n , nodes = require('../nodes');\n\n/**\n * Return the opposites of the given `positions`.\n *\n * Examples:\n *\n * opposite-position(top left)\n * // => bottom right\n *\n * @param {Expression} positions\n * @return {Expression}\n * @api public\n */\n\n(module.exports = function oppositePosition(positions){\n var expr = [];\n utils.unwrap(positions).nodes.forEach(function(pos, i){\n utils.assertString(pos, 'position ' + i);\n pos = (function(){ switch (pos.string) {\n case 'top': return 'bottom';\n case 'bottom': return 'top';\n case 'left': return 'right';\n case 'right': return 'left';\n case 'center': return 'center';\n default: throw new Error('invalid position ' + pos);\n }})();\n expr.push(new nodes.Literal(pos));\n });\n return expr;\n}).raw = true;\n","var utils = require('../utils')\n , nodes = require('../nodes');\n\n/**\n * Inspect the given `expr`.\n *\n * @param {Expression} expr\n * @api public\n */\n\n(module.exports = function p(){\n [].slice.call(arguments).forEach(function(expr){\n expr = utils.unwrap(expr);\n if (!expr.nodes.length) return;\n console.log('\\u001b[90minspect:\\u001b[0m %s', expr.toString().replace(/^\\(|\\)$/g, ''));\n })\n return nodes.null;\n}).raw = true;\n","var path = require('path');\n\n/**\n * Peform a path join.\n *\n * @param {String} path\n * @return {String}\n * @api public\n */\n\n(module.exports = function pathjoin(){\n var paths = [].slice.call(arguments).map(function(path){\n return path.first.string;\n });\n return path.join.apply(null, paths).replace(/\\\\/g, '/');\n}).raw = true;\n","var utils = require('../utils');\n\n/**\n * Pop a value from `expr`.\n *\n * @param {Expression} expr\n * @return {Node}\n * @api public\n */\n\n(module.exports = function pop(expr) {\n expr = utils.unwrap(expr);\n return expr.nodes.pop();\n}).raw = true;\n","var utils = require('../utils');\n\n/**\n * Push the given args to `expr`.\n *\n * @param {Expression} expr\n * @param {Node} ...\n * @return {Unit}\n * @api public\n */\n\n(module.exports = function(expr){\n expr = utils.unwrap(expr);\n for (var i = 1, len = arguments.length; i < len; ++i) {\n expr.nodes.push(utils.unwrap(arguments[i]).clone());\n }\n return expr.nodes.length;\n}).raw = true;\n","\n/**\n * Convert given value's base into the parameter unitName\n *\n * @param {Double} value\n * @param {String} unitName\n * @return {Double}\n * @api private\n */\n\nmodule.exports = function convertAngle(value, unitName) {\n\tvar factors = {\n\t\t\"rad\" : 1,\n\t\t\"deg\" : 180 / Math.PI,\n\t\t\"turn\": 0.5 / Math.PI,\n\t\t\"grad\": 200 / Math.PI\n\t}\n\treturn value * factors[unitName];\n}\n","var nodes = require('../nodes')\n , convert = require('./convert-angle');\n\n/**\n * Return the arcsine of the given `value`.\n *\n * @param {Double} trigValue\n * @param {Unit} output \n * @return {Unit}\n * @api public\n */\n\nmodule.exports = function atan(trigValue, output) {\n\tvar output = typeof output !== 'undefined' ? output : 'deg';\n var m = Math.pow(10, 9);\n\tvar value = Math.asin(trigValue) ;\n\tvar convertedValue = convert(value, output);\n\tconvertedValue = Math.round(convertedValue * m) / m;\n return new nodes.Unit(convertedValue, output);\n};\n","/*!\n * Stylus - Compiler\n * Copyright (c) Automattic \n * MIT Licensed\n */\n\n/**\n * Module dependencies.\n */\n\nvar Visitor = require('./')\n , utils = require('../utils')\n , fs = require('fs');\n\nmodule.exports = class Compiler extends Visitor {\n /**\n * Initialize a new `Compiler` with the given `root` Node\n * and the following `options`.\n *\n * Options:\n *\n * - `compress` Compress the CSS output (default: false)\n *\n * @param {Node} root\n * @api public\n */\n\n constructor(root, options) {\n super(root);\n options = options || {};\n this.compress = options.compress;\n this.firebug = options.firebug;\n this.linenos = options.linenos;\n this.spaces = options['indent spaces'] || 2;\n this.indents = 1;\n this.stack = [];\n }\n\n /**\n * Compile to css, and return a string of CSS.\n *\n * @return {String}\n * @api private\n */\n\n compile() {\n return this.visit(this.root);\n };\n\n /**\n * Output `str`\n *\n * @param {String} str\n * @param {Node} node\n * @return {String}\n * @api private\n */\n\n out(str, node) {\n return str;\n };\n\n /**\n * Return indentation string.\n *\n * @return {String}\n * @api private\n */\n\n get indent() {\n if (this.compress) return '';\n return new Array(this.indents).join(Array(this.spaces + 1).join(' '));\n };\n\n /**\n * Check if given `node` needs brackets.\n *\n * @param {Node} node\n * @return {Boolean}\n * @api private\n */\n\n needBrackets(node) {\n return 1 == this.indents\n || 'atrule' != node.nodeName\n || node.hasOnlyProperties;\n };\n\n /**\n * Visit Root.\n */\n\n visitRoot(block) {\n this.buf = '';\n for (var i = 0, len = block.nodes.length; i < len; ++i) {\n var node = block.nodes[i];\n if (this.linenos || this.firebug) this.debugInfo(node);\n var ret = this.visit(node);\n if (ret) this.buf += this.out(ret + '\\n', node);\n }\n return this.buf;\n };\n\n /**\n * Visit Block.\n */\n\n visitBlock(block) {\n var node\n , separator = this.compress ? '' : '\\n'\n , needBrackets\n , lastPropertyIndex;\n\n if (block.hasProperties && !block.lacksRenderedSelectors) {\n needBrackets = this.needBrackets(block.node);\n\n if (this.compress) {\n for (var i = block.nodes.length - 1; i >= 0; --i) {\n if (block.nodes[i].nodeName === 'property') {\n lastPropertyIndex = i;\n break;\n }\n }\n }\n if (needBrackets) {\n this.buf += this.out(this.compress ? '{' : ' {\\n');\n ++this.indents;\n }\n for (var i = 0, len = block.nodes.length; i < len; ++i) {\n this.last = lastPropertyIndex === i;\n node = block.nodes[i];\n switch (node.nodeName) {\n case 'null':\n case 'expression':\n case 'function':\n case 'group':\n case 'block':\n case 'unit':\n case 'media':\n case 'keyframes':\n case 'atrule':\n case 'supports':\n continue;\n // inline comments\n case !this.compress && node.inline && 'comment':\n this.buf = this.buf.slice(0, -1);\n this.buf += this.out(' ' + this.visit(node) + '\\n', node);\n break;\n case 'property':\n var ret = this.visit(node) + separator;\n this.buf += this.compress ? ret : this.out(ret, node);\n break;\n default:\n this.buf += this.out(this.visit(node) + separator, node);\n }\n }\n if (needBrackets) {\n --this.indents;\n this.buf += this.out(this.indent + '}' + separator);\n }\n }\n\n // Nesting\n for (var i = 0, len = block.nodes.length; i < len; ++i) {\n node = block.nodes[i];\n switch (node.nodeName) {\n case 'group':\n case 'block':\n case 'keyframes':\n if (this.linenos || this.firebug) this.debugInfo(node);\n this.visit(node);\n break;\n case 'media':\n case 'import':\n case 'atrule':\n case 'supports':\n this.visit(node);\n break;\n case 'comment':\n // only show unsuppressed comments\n if (!node.suppress) {\n this.buf += this.out(this.indent + this.visit(node) + '\\n', node);\n }\n break;\n case 'charset':\n case 'literal':\n case 'namespace':\n this.buf += this.out(this.visit(node) + '\\n', node);\n break;\n }\n }\n };\n\n /**\n * Visit Keyframes.\n */\n\n visitKeyframes(node) {\n if (!node.frames) return;\n\n var prefix = 'official' == node.prefix\n ? ''\n : '-' + node.prefix + '-';\n\n this.buf += this.out('@' + prefix + 'keyframes '\n + this.visit(node.val)\n + (this.compress ? '{' : ' {\\n'), node);\n\n this.keyframe = true;\n ++this.indents;\n this.visit(node.block);\n --this.indents;\n this.keyframe = false;\n\n this.buf += this.out('}' + (this.compress ? '' : '\\n'));\n };\n\n /**\n * Visit Media.\n */\n\n visitMedia(media) {\n var val = media.val;\n if (!media.hasOutput || !val.nodes.length) return;\n\n this.buf += this.out('@media ', media);\n this.visit(val);\n this.buf += this.out(this.compress ? '{' : ' {\\n');\n ++this.indents;\n this.visit(media.block);\n --this.indents;\n this.buf += this.out('}' + (this.compress ? '' : '\\n'));\n };\n\n /**\n * Visit QueryList.\n */\n\n visitQueryList(queries) {\n for (var i = 0, len = queries.nodes.length; i < len; ++i) {\n this.visit(queries.nodes[i]);\n if (len - 1 != i) this.buf += this.out(',' + (this.compress ? '' : ' '));\n }\n };\n\n /**\n * Visit Query.\n */\n\n visitQuery(node) {\n var len = node.nodes.length;\n if (node.predicate) this.buf += this.out(node.predicate + ' ');\n if (node.type) this.buf += this.out(node.type + (len ? ' and ' : ''));\n for (var i = 0; i < len; ++i) {\n this.buf += this.out(this.visit(node.nodes[i]));\n if (len - 1 != i) this.buf += this.out(' and ');\n }\n };\n\n /**\n * Visit Feature.\n */\n\n visitFeature(node) {\n if (!node.expr) {\n return node.name;\n } else if (node.expr.isEmpty) {\n return '(' + node.name + ')';\n } else {\n return '(' + node.name + ':' + (this.compress ? '' : ' ') + this.visit(node.expr) + ')';\n }\n };\n\n /**\n * Visit Import.\n */\n\n visitImport(imported) {\n this.buf += this.out('@import ' + this.visit(imported.path) + ';\\n', imported);\n };\n\n /**\n * Visit Atrule.\n */\n\n visitAtrule(atrule) {\n var newline = this.compress ? '' : '\\n';\n\n this.buf += this.out(this.indent + '@' + atrule.type, atrule);\n\n if (atrule.val) this.buf += this.out(' ' + atrule.val.trim());\n\n if (atrule.block) {\n if (atrule.block.isEmpty) {\n this.buf += this.out((this.compress ? '' : ' ') + '{}' + newline);\n } else if (atrule.hasOnlyProperties) {\n this.visit(atrule.block);\n } else {\n this.buf += this.out(this.compress ? '{' : ' {\\n');\n ++this.indents;\n this.visit(atrule.block);\n --this.indents;\n this.buf += this.out(this.indent + '}' + newline);\n }\n } else {\n this.buf += this.out(';' + newline);\n }\n };\n\n /**\n * Visit Supports.\n */\n\n visitSupports(node) {\n if (!node.hasOutput) return;\n\n this.buf += this.out(this.indent + '@supports ', node);\n this.isCondition = true;\n this.buf += this.out(this.visit(node.condition));\n this.isCondition = false;\n this.buf += this.out(this.compress ? '{' : ' {\\n');\n ++this.indents;\n this.visit(node.block);\n --this.indents;\n this.buf += this.out(this.indent + '}' + (this.compress ? '' : '\\n'));\n }\n\n /**\n * Visit Comment.\n */\n\n visitComment(comment) {\n return this.compress\n ? comment.suppress\n ? ''\n : comment.str\n : comment.str;\n };\n\n /**\n * Visit Function.\n */\n\n visitFunction(fn) {\n return fn.name;\n };\n\n /**\n * Visit Charset.\n */\n\n visitCharset(charset) {\n return '@charset ' + this.visit(charset.val) + ';';\n };\n\n /**\n * Visit Namespace.\n */\n\n visitNamespace(namespace) {\n return '@namespace '\n + (namespace.prefix ? this.visit(namespace.prefix) + ' ' : '')\n + this.visit(namespace.val) + ';';\n };\n\n /**\n * Visit Literal.\n */\n\n visitLiteral(lit) {\n var val = lit.val;\n if (lit.css) val = val.replace(/^ /gm, '');\n return val;\n };\n\n /**\n * Visit Boolean.\n */\n\n visitBoolean(bool) {\n return bool.toString();\n };\n\n /**\n * Visit RGBA.\n */\n\n visitRGBA(rgba) {\n return rgba.toString();\n };\n\n /**\n * Visit HSLA.\n */\n\n visitHSLA(hsla) {\n return hsla.rgba.toString();\n };\n\n /**\n * Visit Unit.\n */\n\n visitUnit(unit) {\n var type = unit.type || ''\n , n = unit.val\n , float = n != (n | 0);\n\n // Compress\n if (this.compress) {\n // Always return '0' unless the unit is a percentage, time, degree or fraction\n if (!(['%', 's', 'ms', 'deg', 'fr'].includes(type)) && 0 == n) return '0';\n // Omit leading '0' on floats\n if (float && n < 1 && n > -1) {\n return n.toString().replace('0.', '.') + type;\n }\n }\n\n return (float ? parseFloat(n.toFixed(15)) : n).toString() + type;\n };\n\n /**\n * Visit Group.\n */\n\n visitGroup(group) {\n var stack = this.keyframe ? [] : this.stack\n , comma = this.compress ? ',' : ',\\n';\n\n stack.push(group.nodes);\n\n // selectors\n if (group.block.hasProperties) {\n var selectors = utils.compileSelectors.call(this, stack)\n , len = selectors.length;\n\n if (len) {\n if (this.keyframe) comma = this.compress ? ',' : ', ';\n\n for (var i = 0; i < len; ++i) {\n var selector = selectors[i]\n , last = (i == len - 1);\n\n // keyframe blocks (10%, 20% { ... })\n if (this.keyframe) selector = i ? selector.trim() : selector;\n\n this.buf += this.out(selector + (last ? '' : comma), group.nodes[i]);\n }\n } else {\n group.block.lacksRenderedSelectors = true;\n }\n }\n\n // output block\n this.visit(group.block);\n stack.pop();\n };\n\n /**\n * Visit Ident.\n */\n\n visitIdent(ident) {\n return ident.name;\n };\n\n /**\n * Visit String.\n */\n\n visitString(string) {\n return this.isURL\n ? string.val\n : string.toString();\n };\n\n /**\n * Visit Null.\n */\n\n visitNull(node) {\n return '';\n };\n\n /**\n * Visit Call.\n */\n\n visitCall(call) {\n this.isURL = 'url' == call.name;\n var args = call.args.nodes.map(function (arg) {\n return this.visit(arg);\n }, this).join(this.compress ? ',' : ', ');\n if (this.isURL) args = '\"' + args + '\"';\n this.isURL = false;\n return call.name + '(' + args + ')';\n };\n\n /**\n * Visit Expression.\n */\n\n visitExpression(expr) {\n var buf = []\n , self = this\n , len = expr.nodes.length\n , nodes = expr.nodes.map(function (node) { return self.visit(node); });\n\n nodes.forEach(function (node, i) {\n var last = i == len - 1;\n buf.push(node);\n if ('/' == nodes[i + 1] || '/' == node) return;\n if (last) return;\n\n var space = self.isURL || (self.isCondition\n && (')' == nodes[i + 1] || '(' == node))\n ? '' : ' ';\n\n buf.push(expr.isList\n ? (self.compress ? ',' : ', ')\n : space);\n });\n\n return buf.join('');\n };\n\n /**\n * Visit Arguments.\n */\n\n get visitArguments() {\n return this.visitExpression;\n }\n\n /**\n * Visit Property.\n */\n\n visitProperty(prop) {\n var val = this.visit(prop.expr).trim()\n , name = (prop.name || prop.segments.join(''))\n , arr = [];\n\n if (name === '@apply') {\n arr.push(\n this.out(this.indent),\n this.out(name + ' ', prop),\n this.out(val, prop.expr),\n this.out(this.compress ? (this.last ? '' : ';') : ';')\n );\n return arr.join('');\n }\n arr.push(\n this.out(this.indent),\n this.out(name + (this.compress ? ':' : ': '), prop),\n this.out(val, prop.expr),\n this.out(this.compress ? (this.last ? '' : ';') : ';')\n );\n return arr.join('');\n };\n\n /**\n * Debug info.\n */\n\n debugInfo(node) {\n\n var path = node.filename == 'stdin' ? 'stdin' : fs.realpathSync(node.filename)\n , line = (node.nodes && node.nodes.length ? node.nodes[0].lineno : node.lineno) || 1;\n\n if (this.linenos) {\n this.buf += '\\n/* ' + 'line ' + line + ' : ' + path + ' */\\n';\n }\n\n if (this.firebug) {\n // debug info for firebug, the crazy formatting is needed\n path = 'file\\\\\\:\\\\\\/\\\\\\/' + path.replace(/([.:/\\\\])/g, function (m) {\n return '\\\\' + (m === '\\\\' ? '\\/' : m)\n });\n line = '\\\\00003' + line;\n this.buf += '\\n@media -stylus-debug-info'\n + '{filename{font-family:' + path\n + '}line{font-family:' + line + '}}\\n';\n }\n }\n\n};\n","var nodes = require('../nodes')\n , hsla = require('./hsla')\n , component = require('./component');\n\n/**\n * Return the saturation component of the given `color`,\n * or set the saturation component to the optional second `value` argument.\n *\n * Examples:\n *\n * saturation(#00c)\n * // => 100%\n *\n * saturation(#00c, 50%)\n * // => #339\n *\n * @param {RGBA|HSLA} color\n * @param {Unit} [value]\n * @return {Unit|RGBA}\n * @api public\n */\n\nfunction saturation(color, value){\n if (value) {\n var hslaColor = color.hsla;\n return hsla(\n new nodes.Unit(hslaColor.h),\n value,\n new nodes.Unit(hslaColor.l),\n new nodes.Unit(hslaColor.a)\n )\n }\n return component(color, new nodes.String('saturation'));\n}\nsaturation.params = ['color', 'value'];\nmodule.exports = saturation;\n","var utils = require('../utils')\n , nodes = require('../nodes')\n , Compiler = require('../visitor/compiler');\n\n/**\n * Return a `Literal` with the given `fmt`, and\n * variable number of arguments.\n *\n * @param {String} fmt\n * @param {Node} ...\n * @return {Literal}\n * @api public\n */\n\n(module.exports = function s(fmt){\n fmt = utils.unwrap(fmt).nodes[0];\n utils.assertString(fmt);\n var self = this\n , str = fmt.string\n , args = arguments\n , i = 1;\n\n // format\n str = str.replace(/%(s|d)/g, function(_, specifier){\n var arg = args[i++] || nodes.null;\n switch (specifier) {\n case 's':\n return new Compiler(arg, self.options).compile();\n case 'd':\n arg = utils.unwrap(arg).first;\n if ('unit' != arg.nodeName) throw new Error('%d requires a unit');\n return arg.val;\n }\n });\n\n return new nodes.Literal(str);\n}).raw = true;\n","\n/*!\n * Stylus - Normalizer\n * Copyright (c) Automattic \n * MIT Licensed\n */\n\n/**\n * Module dependencies.\n */\n\nvar Visitor = require('./')\n , nodes = require('../nodes')\n , utils = require('../utils');\n\nmodule.exports = class Normalizer extends Visitor {\n /**\n * Initialize a new `Normalizer` with the given `root` Node.\n *\n * This visitor implements the first stage of the duel-stage\n * compiler, tasked with stripping the \"garbage\" from\n * the evaluated nodes, ditching null rules, resolving\n * ruleset selectors etc. This step performs the logic\n * necessary to facilitate the \"@extend\" functionality,\n * as these must be resolved _before_ buffering output.\n *\n * @param {Node} root\n * @api public\n */\n\n constructor(root, options) {\n super(root);\n options = options || {};\n this.hoist = options['hoist atrules'];\n this.stack = [];\n this.map = {};\n this.imports = [];\n }\n\n /**\n * Normalize the node tree.\n *\n * @return {Node}\n * @api private\n */\n\n normalize() {\n var ret = this.visit(this.root);\n\n if (this.hoist) {\n // hoist @import\n if (this.imports.length) ret.nodes = this.imports.concat(ret.nodes);\n\n // hoist @charset\n if (this.charset) ret.nodes = [this.charset].concat(ret.nodes);\n }\n\n return ret;\n };\n\n /**\n * Bubble up the given `node`.\n *\n * @param {Node} node\n * @api private\n */\n\n bubble(node) {\n var props = []\n , other = []\n , self = this;\n\n function filterProps(block) {\n block.nodes.forEach(function (node) {\n node = self.visit(node);\n\n switch (node.nodeName) {\n case 'property':\n props.push(node);\n break;\n case 'block':\n filterProps(node);\n break;\n default:\n other.push(node);\n }\n });\n }\n\n filterProps(node.block);\n\n if (props.length) {\n var selector = new nodes.Selector([new nodes.Literal('&')]);\n selector.lineno = node.lineno;\n selector.column = node.column;\n selector.filename = node.filename;\n selector.val = '&';\n\n var group = new nodes.Group;\n group.lineno = node.lineno;\n group.column = node.column;\n group.filename = node.filename;\n\n var block = new nodes.Block(node.block, group);\n block.lineno = node.lineno;\n block.column = node.column;\n block.filename = node.filename;\n\n props.forEach(function (prop) {\n block.push(prop);\n });\n\n group.push(selector);\n group.block = block;\n\n node.block.nodes = [];\n node.block.push(group);\n other.forEach(function (n) {\n node.block.push(n);\n });\n\n var group = this.closestGroup(node.block);\n if (group) node.group = group.clone();\n\n node.bubbled = true;\n }\n };\n\n /**\n * Return group closest to the given `block`.\n *\n * @param {Block} block\n * @return {Group}\n * @api private\n */\n\n closestGroup(block) {\n var parent = block.parent\n , node;\n while (parent && (node = parent.node)) {\n if ('group' == node.nodeName) return node;\n parent = node.block && node.block.parent;\n }\n };\n\n /**\n * Visit Root.\n */\n\n visitRoot(block) {\n var ret = new nodes.Root\n , node;\n\n for (var i = 0; i < block.nodes.length; ++i) {\n node = block.nodes[i];\n switch (node.nodeName) {\n case 'null':\n case 'expression':\n case 'function':\n case 'unit':\n case 'atblock':\n continue;\n default:\n this.rootIndex = i;\n ret.push(this.visit(node));\n }\n }\n\n return ret;\n };\n\n /**\n * Visit Property.\n */\n\n visitProperty(prop) {\n this.visit(prop.expr);\n return prop;\n };\n\n /**\n * Visit Expression.\n */\n\n visitExpression(expr) {\n expr.nodes = expr.nodes.map(function (node) {\n // returns `block` literal if mixin's block\n // is used as part of a property value\n if ('block' == node.nodeName) {\n var literal = new nodes.Literal('block');\n literal.lineno = expr.lineno;\n literal.column = expr.column;\n return literal;\n }\n return node;\n });\n return expr;\n };\n\n /**\n * Visit Block.\n */\n\n visitBlock(block) {\n var node;\n\n if (block.hasProperties) {\n for (var i = 0, len = block.nodes.length; i < len; ++i) {\n node = block.nodes[i];\n switch (node.nodeName) {\n case 'null':\n case 'expression':\n case 'function':\n case 'group':\n case 'unit':\n case 'atblock':\n continue;\n default:\n block.nodes[i] = this.visit(node);\n }\n }\n }\n\n // nesting\n for (var i = 0, len = block.nodes.length; i < len; ++i) {\n node = block.nodes[i];\n block.nodes[i] = this.visit(node);\n }\n\n return block;\n };\n\n /**\n * Visit Group.\n */\n\n visitGroup(group) {\n var stack = this.stack\n , map = this.map\n , parts;\n\n // normalize interpolated selectors with comma\n group.nodes.forEach(function (selector, i) {\n if (!~selector.val.indexOf(',')) return;\n if (~selector.val.indexOf('\\\\,')) {\n selector.val = selector.val.replace(/\\\\,/g, ',');\n return;\n }\n parts = selector.val.split(',');\n var root = '/' == selector.val.charAt(0)\n , part, s;\n for (var k = 0, len = parts.length; k < len; ++k) {\n part = parts[k].trim();\n if (root && k > 0 && !~part.indexOf('&')) {\n part = '/' + part;\n }\n s = new nodes.Selector([new nodes.Literal(part)]);\n s.val = part;\n s.block = group.block;\n group.nodes[i++] = s;\n }\n });\n stack.push(group.nodes);\n\n var selectors = utils.compileSelectors(stack, true);\n\n // map for extension lookup\n selectors.forEach(function (selector) {\n map[selector] = map[selector] || [];\n map[selector].push(group);\n });\n\n // extensions\n this.extend(group, selectors);\n\n stack.pop();\n return group;\n };\n\n /**\n * Visit Function.\n */\n\n visitFunction() {\n return nodes.null;\n };\n\n /**\n * Visit Media.\n */\n\n visitMedia(media) {\n var medias = []\n , group = this.closestGroup(media.block)\n , parent;\n\n function mergeQueries(block) {\n block.nodes.forEach(function (node, i) {\n switch (node.nodeName) {\n case 'media':\n node.val = media.val.merge(node.val);\n medias.push(node);\n block.nodes[i] = nodes.null;\n break;\n case 'block':\n mergeQueries(node);\n break;\n default:\n if (node.block && node.block.nodes)\n mergeQueries(node.block);\n }\n });\n }\n\n mergeQueries(media.block);\n this.bubble(media);\n\n if (medias.length) {\n medias.forEach(function (node) {\n if (group) {\n group.block.push(node);\n } else {\n this.root.nodes.splice(++this.rootIndex, 0, node);\n }\n node = this.visit(node);\n parent = node.block.parent;\n if (node.bubbled && (!group || 'group' == parent.node.nodeName)) {\n node.group.block = node.block.nodes[0].block;\n node.block.nodes[0] = node.group;\n }\n }, this);\n }\n return media;\n };\n\n /**\n * Visit Supports.\n */\n\n visitSupports(node) {\n this.bubble(node);\n return node;\n };\n\n /**\n * Visit Atrule.\n */\n\n visitAtrule(node) {\n if (node.block) node.block = this.visit(node.block);\n return node;\n };\n\n /**\n * Visit Keyframes.\n */\n\n visitKeyframes(node) {\n var frames = node.block.nodes.filter(function (frame) {\n return frame.block && frame.block.hasProperties;\n });\n node.frames = frames.length;\n return node;\n };\n\n /**\n * Visit Import.\n */\n\n visitImport(node) {\n this.imports.push(node);\n return this.hoist ? nodes.null : node;\n };\n\n /**\n * Visit Charset.\n */\n\n visitCharset(node) {\n this.charset = node;\n return this.hoist ? nodes.null : node;\n };\n\n /**\n * Apply `group` extensions.\n *\n * @param {Group} group\n * @param {Array} selectors\n * @api private\n */\n\n extend(group, selectors) {\n var map = this.map\n , self = this\n , parent = this.closestGroup(group.block);\n\n group.extends.forEach(function (extend) {\n var groups = map[extend.selector];\n if (!groups) {\n if (extend.optional) return;\n groups = self._checkForPrefixedGroups(extend.selector);\n if (!groups) {\n var err = new Error('Failed to @extend \"' + extend.selector + '\"');\n err.lineno = extend.lineno;\n err.column = extend.column;\n throw err;\n }\n }\n selectors.forEach(function (selector) {\n var node = new nodes.Selector;\n node.val = selector;\n node.inherits = false;\n groups.forEach(function (group) {\n // prevent recursive extend\n if (!parent || (parent != group)) self.extend(group, selectors);\n group.push(node);\n });\n });\n });\n\n group.block = this.visit(group.block);\n };\n\n _checkForPrefixedGroups(selector) {\n var prefix = [];\n var map = this.map;\n var result = null;\n for (var i = 0; i < this.stack.length; i++) {\n var stackElementArray = this.stack[i];\n var stackElement = stackElementArray[0];\n prefix.push(stackElement.val);\n var fullSelector = prefix.join(\" \") + \" \" + selector;\n result = map[fullSelector];\n if (result)\n break;\n }\n return result;\n };\n};\n","var utils = require('../utils');\n\n/**\n * Returns true if the given selector exists.\n *\n * @param {String} sel\n * @return {Boolean}\n * @api public\n */\n\nfunction selectorExists(sel) {\n utils.assertString(sel, 'selector');\n\n if (!this.__selectorsMap__) {\n var Normalizer = require('../visitor/normalizer')\n , visitor = new Normalizer(this.root.clone());\n visitor.visit(visitor.root);\n\n this.__selectorsMap__ = visitor.map;\n }\n\n return sel.string in this.__selectorsMap__;\n}\nselectorExists.params = ['sel'];\nmodule.exports = selectorExists;\n","var utils = require('../utils');\n\n/**\n * Return the current selector or compile\n * selector from a string or a list.\n *\n * @param {String|Expression}\n * @return {String}\n * @api public\n */\n\n(module.exports = function selector(){\n var stack = this.selectorStack\n , args = [].slice.call(arguments);\n\n if (1 == args.length) {\n var expr = utils.unwrap(args[0])\n , len = expr.nodes.length;\n\n // selector('.a')\n if (1 == len) {\n utils.assertString(expr.first, 'selector');\n var SelectorParser = require('../selector-parser')\n , val = expr.first.string\n , parsed = new SelectorParser(val).parse().val;\n\n if (parsed == val) return val;\n\n stack.push(parse(val));\n } else if (len > 1) {\n // selector-list = '.a', '.b', '.c'\n // selector(selector-list)\n if (expr.isList) {\n pushToStack(expr.nodes, stack);\n // selector('.a' '.b' '.c')\n } else {\n stack.push(parse(expr.nodes.map(function(node){\n utils.assertString(node, 'selector');\n return node.string;\n }).join(' ')));\n }\n }\n // selector('.a', '.b', '.c')\n } else if (args.length > 1) {\n pushToStack(args, stack);\n }\n\n return stack.length ? utils.compileSelectors(stack).join(',') : '&';\n}).raw = true;\n\nfunction pushToStack(selectors, stack) {\n selectors.forEach(function(sel) {\n sel = sel.first;\n utils.assertString(sel, 'selector');\n stack.push(parse(sel.string));\n });\n}\n\nfunction parse(selector) {\n var Parser = new require('../parser')\n , parser = new Parser(selector)\n , nodes;\n parser.state.push('selector-parts');\n nodes = parser.selector();\n nodes.forEach(function(node) {\n node.val = node.segments.map(function(seg){\n return seg.toString();\n }).join('');\n });\n return nodes;\n}\n","var utils = require('../utils')\n , nodes = require('../nodes');\n\n/**\n * Splits the given `val` by `delim`\n *\n * @param {String} delim\n * @param {String|Ident} val\n * @return {Expression}\n * @api public\n */\n\nfunction split(delim, val){\n utils.assertString(delim, 'delimiter');\n utils.assertString(val, 'val');\n var splitted = val.string.split(delim.string);\n var expr = new nodes.Expression();\n var ItemNode = val instanceof nodes.Ident\n ? nodes.Ident\n : nodes.String;\n for (var i = 0, len = splitted.length; i < len; ++i) {\n expr.nodes.push(new ItemNode(splitted[i]));\n }\n return expr;\n}\nsplit.params = ['delim', 'val'];\nmodule.exports = split;\n","var utils = require('../utils')\n , nodes = require('../nodes');\n\n/**\n * Returns substring of the given `val`.\n *\n * @param {String|Ident} val\n * @param {Number} start\n * @param {Number} [length]\n * @return {String|Ident}\n * @api public\n */\n\nfunction substr(val, start, length){\n utils.assertString(val, 'val');\n utils.assertType(start, 'unit', 'start');\n length = length && length.val;\n var res = val.string.substr(start.val, length);\n return val instanceof nodes.Ident\n ? new nodes.Ident(res)\n : new nodes.String(res);\n}\nsubstr.params = ['val', 'start', 'length'];\nmodule.exports = substr;\n","var utils = require('../utils')\n , nodes = require('../nodes');\n\n/**\n * Return the tangent of the given `angle`.\n *\n * @param {Unit} angle\n * @return {Unit}\n * @api public\n */\n\nfunction tan(angle) {\n utils.assertType(angle, 'unit', 'angle');\n\n var radians = angle.val;\n\n if (angle.type === 'deg') {\n radians *= Math.PI / 180;\n }\n\n var m = Math.pow(10, 9);\n\n var sin = Math.round(Math.sin(radians) * m) / m\n , cos = Math.round(Math.cos(radians) * m) / m\n , tan = Math.round(m * sin / cos ) / m;\n\n return new nodes.Unit(tan, '');\n}\ntan.params = ['angle'];\nmodule.exports = tan;\n","var utils = require('../utils');\n\n/**\n * Shift an element from `expr`.\n *\n * @param {Expression} expr\n * @return {Node}\n * @api public\n */\n\n (module.exports = function(expr){\n expr = utils.unwrap(expr);\n return expr.nodes.shift();\n }).raw = true;\n\n","var utils = require('../utils')\n , nodes = require('../nodes');\n\n/**\n * This is a helper function for the slice method\n *\n * @param {String|Ident} vals\n * @param {Unit} start [0]\n * @param {Unit} end [vals.length]\n * @return {String|Literal|Null}\n * @api public\n*/\n(module.exports = function slice(val, start, end) {\n start = start && start.nodes[0].val;\n end = end && end.nodes[0].val;\n\n val = utils.unwrap(val).nodes;\n\n if (val.length > 1) {\n return utils.coerce(val.slice(start, end), true);\n }\n\n var result = val[0].string.slice(start, end);\n\n return val[0] instanceof nodes.Ident\n ? new nodes.Ident(result)\n : new nodes.String(result);\n}).raw = true;\n","var utils = require('../utils')\n , nodes = require('../nodes');\n\n/**\n * Returns the transparent version of the given `top` color,\n * as if it was blend over the given `bottom` color.\n *\n * Examples:\n *\n * transparentify(#808080)\n * => rgba(0,0,0,0.5)\n *\n * transparentify(#414141, #000)\n * => rgba(255,255,255,0.25)\n *\n * transparentify(#91974C, #F34949, 0.5)\n * => rgba(47,229,79,0.5)\n *\n * @param {RGBA|HSLA} top\n * @param {RGBA|HSLA} [bottom=#fff]\n * @param {Unit} [alpha]\n * @return {RGBA}\n * @api public\n */\n\nfunction transparentify(top, bottom, alpha){\n utils.assertColor(top);\n top = top.rgba;\n // Handle default arguments\n bottom = bottom || new nodes.RGBA(255, 255, 255, 1);\n if (!alpha && bottom && !bottom.rgba) {\n alpha = bottom;\n bottom = new nodes.RGBA(255, 255, 255, 1);\n }\n utils.assertColor(bottom);\n bottom = bottom.rgba;\n var bestAlpha = ['r', 'g', 'b'].map(function(channel){\n return (top[channel] - bottom[channel]) / ((0 < (top[channel] - bottom[channel]) ? 255 : 0) - bottom[channel]);\n }).sort(function(a, b){return b - a;})[0];\n if (alpha) {\n utils.assertType(alpha, 'unit', 'alpha');\n if ('%' == alpha.type) {\n bestAlpha = alpha.val / 100;\n } else if (!alpha.type) {\n bestAlpha = alpha = alpha.val;\n }\n }\n bestAlpha = Math.max(Math.min(bestAlpha, 1), 0);\n // Calculate the resulting color\n function processChannel(channel) {\n if (0 == bestAlpha) {\n return bottom[channel]\n } else {\n return bottom[channel] + (top[channel] - bottom[channel]) / bestAlpha\n }\n }\n return new nodes.RGBA(\n processChannel('r'),\n processChannel('g'),\n processChannel('b'),\n Math.round(bestAlpha * 100) / 100\n );\n}\ntransparentify.params = ['top', 'bottom', 'alpha'];\nmodule.exports = transparentify;\n","var utils = require('../utils');\n\n/**\n * Return type of `node`.\n *\n * Examples:\n * \n * type(12)\n * // => 'unit'\n *\n * type(#fff)\n * // => 'color'\n *\n * type(type)\n * // => 'function'\n *\n * type(unbound)\n * typeof(unbound)\n * type-of(unbound)\n * // => 'ident'\n *\n * @param {Node} node\n * @return {String}\n * @api public\n */\n\nfunction type(node){\n utils.assertPresent(node, 'expression');\n return node.nodeName;\n}\ntype.params = ['node'];\nmodule.exports = type;\n","var utils = require('../utils')\n , nodes = require('../nodes');\n\n/**\n * Assign `type` to the given `unit` or return `unit`'s type.\n *\n * @param {Unit} unit\n * @param {String|Ident} type\n * @return {Unit}\n * @api public\n */\n\nfunction unit(unit, type){\n utils.assertType(unit, 'unit', 'unit');\n\n // Assign\n if (type) {\n utils.assertString(type, 'type');\n return new nodes.Unit(unit.val, type.string);\n } else {\n return unit.type || '';\n }\n}\nunit.params = ['unit', 'type'];\nmodule.exports = unit;\n","var utils = require('../utils')\n , nodes = require('../nodes');\n\n/**\n * Unquote the given `string`.\n *\n * Examples:\n *\n * unquote(\"sans-serif\")\n * // => sans-serif\n *\n * unquote(sans-serif)\n * // => sans-serif\n *\n * @param {String|Ident} string\n * @return {Literal}\n * @api public\n */\n\nfunction unquote(string){\n utils.assertString(string, 'string');\n return new nodes.Literal(string.string);\n}\nunquote.params = ['string'];\nmodule.exports = unquote;\n","var utils = require('../utils')\n , path = require('path');\n\n/**\n* Use the given `plugin`\n* \n* Examples:\n*\n* use(\"plugins/add.js\")\n*\n* width add(10, 100)\n* // => width: 110\n*/\n\nfunction use(plugin, options){\n utils.assertString(plugin, 'plugin');\n\n if (options) {\n utils.assertType(options, 'object', 'options');\n options = parseObject(options);\n }\n\n // lookup\n plugin = plugin.string;\n var found = utils.lookup(plugin, this.options.paths, this.options.filename);\n if (!found) throw new Error('failed to locate plugin file \"' + plugin + '\"');\n\n // use\n var fn = require(path.resolve(found));\n if ('function' != typeof fn) {\n throw new Error('plugin \"' + plugin + '\" does not export a function');\n }\n this.renderer.use(fn(options || this.options));\n}\nuse.params = ['plugin', 'options'];\nmodule.exports = use;\n\n/**\n * Attempt to parse object node to the javascript object.\n *\n * @param {Object} obj\n * @return {Object}\n * @api private\n */\n\nfunction parseObject(obj){\n obj = obj.vals;\n for (var key in obj) {\n var nodes = obj[key].nodes[0].nodes;\n if (nodes && nodes.length) {\n obj[key] = [];\n for (var i = 0, len = nodes.length; i < len; ++i) {\n obj[key].push(convert(nodes[i]));\n }\n } else {\n obj[key] = convert(obj[key].first);\n }\n }\n return obj;\n\n function convert(node){\n switch (node.nodeName) {\n case 'object':\n return parseObject(node);\n case 'boolean':\n return node.isTrue;\n case 'unit':\n return node.type ? node.toString() : +node.val;\n case 'string':\n case 'literal':\n return node.val;\n default:\n return node.toString();\n }\n }\n}\n","var utils = require('../utils')\n , nodes = require('../nodes');\n\n/**\n * Warn with the given `msg` prefixed by \"Warning: \".\n *\n * @param {String} msg\n * @api public\n */\n\nfunction warn(msg){\n utils.assertType(msg, 'string', 'msg');\n console.warn('Warning: %s', msg.val);\n return nodes.null;\n}\nwarn.params = ['msg'];\nmodule.exports = warn;\n","var nodes = require('../nodes');\n\n/**\n * Get Math `prop`.\n *\n * @param {String} prop\n * @return {Unit}\n * @api private\n */\n\nfunction math(prop){\n return new nodes.Unit(Math[prop.string]);\n}\nmath.params = ['prop'];\nmodule.exports = math;\n","var utils = require('../utils');\n\n/**\n * Prefix css classes in a block\n *\n * @param {String} prefix\n * @param {Block} block\n * @return {Block}\n * @api private\n */\n\nfunction prefixClasses(prefix, block){\n utils.assertString(prefix, 'prefix');\n utils.assertType(block, 'block', 'block');\n\n var _prefix = this.prefix;\n\n this.options.prefix = this.prefix = prefix.string;\n block = this.visit(block);\n this.options.prefix = this.prefix = _prefix;\n return block;\n}\nprefixClasses.params = ['prefix', 'block'];\nmodule.exports = prefixClasses;\n","var utils = require('../utils');\n\n/**\n * Unshift the given args to `expr`.\n *\n * @param {Expression} expr\n * @param {Node} ...\n * @return {Unit}\n * @api public\n */\n\n(module.exports = function(expr){\n expr = utils.unwrap(expr);\n for (var i = 1, len = arguments.length; i < len; ++i) {\n expr.nodes.unshift(utils.unwrap(arguments[i]));\n }\n return expr.nodes.length;\n}).raw = true;\n","\n/*!\n * Stylus - Evaluator - built-in functions\n * Copyright (c) Automattic \n * MIT Licensed\n */\n\nexports['add-property'] = require('./add-property');\nexports.adjust = require('./adjust');\nexports.alpha = require('./alpha');\nexports['base-convert'] = require('./base-convert');\nexports.basename = require('./basename');\nexports.blend = require('./blend');\nexports.blue = require('./blue');\nexports.clone = require('./clone');\nexports.component = require('./component');\nexports.contrast = require('./contrast');\nexports.convert = require('./convert');\nexports['current-media'] = require('./current-media');\nexports.define = require('./define');\nexports.dirname = require('./dirname');\nexports.error = require('./error');\nexports.extname = require('./extname');\nexports.green = require('./green');\nexports.hsl = require('./hsl');\nexports.hsla = require('./hsla');\nexports.hue = require('./hue');\nexports['image-size'] = require('./image-size');\nexports.json = require('./json');\nexports.length = require('./length');\nexports.lightness = require('./lightness');\nexports['list-separator'] = require('./list-separator');\nexports.lookup = require('./lookup');\nexports.luminosity = require('./luminosity');\nexports.match = require('./match');\nexports.math = require('./math');\nexports.merge = exports.extend = require('./merge');\nexports.operate = require('./operate');\nexports['opposite-position'] = require('./opposite-position');\nexports.p = require('./p');\nexports.pathjoin = require('./pathjoin');\nexports.pop = require('./pop');\nexports.push = exports.append = require('./push');\nexports.range = require('./range');\nexports.red = require('./red');\nexports.remove = require('./remove');\nexports.replace = require('./replace');\nexports.rgb = require('./rgb');\nexports.atan = require('./atan');\nexports.asin = require('./asin');\nexports.acos = require('./acos');\nexports.rgba = require('./rgba');\nexports.s = require('./s');\nexports.saturation = require('./saturation');\nexports['selector-exists'] = require('./selector-exists');\nexports.selector = require('./selector');\nexports.selectors = require('./selectors');\nexports.shift = require('./shift');\nexports.split = require('./split');\nexports.substr = require('./substr');\nexports.slice = require('./slice');\nexports.tan = require('./tan');\nexports.trace = require('./trace');\nexports.transparentify = require('./transparentify');\nexports.type = exports.typeof = exports['type-of'] = require('./type');\nexports.unit = require('./unit');\nexports.unquote = require('./unquote');\nexports.unshift = exports.prepend = require('./unshift');\nexports.use = require('./use');\nexports.warn = require('./warn');\nexports['-math-prop'] = require('./math-prop');\nexports['-prefix-classes'] = require('./prefix-classes');\n","var nodes = require('../nodes');\n\n/**\n * Returns the @media string for the current block\n *\n * @return {String}\n * @api public\n */\n\nmodule.exports = function currentMedia(){\n var self = this;\n return new nodes.String(lookForMedia(this.closestBlock.node) || '');\n\n function lookForMedia(node){\n if ('media' == node.nodeName) {\n node.val = self.visit(node.val);\n return node.toString();\n } else if (node.block.parent.node) {\n return lookForMedia(node.block.parent.node);\n }\n }\n};\n","var nodes = require('../nodes')\n , convert = require('./convert-angle');\n\n/**\n * Return the arctangent of the given `value`.\n *\n * @param {Double} trigValue\n * @param {Unit} output \n * @return {Unit}\n * @api public\n */\n\nmodule.exports = function atan(trigValue, output) {\n\tvar output = typeof output !== 'undefined' ? output : 'deg';\n\tvar value = Math.atan(trigValue) ;\n\tvar m = Math.pow(10, 9);\n\tvar convertedValue = convert(value, output);\n\tconvertedValue = Math.round(convertedValue * m) / m;\n return new nodes.Unit(convertedValue, output);\n};\n","var nodes = require('../nodes')\n , convert = require('./convert-angle')\n , asin = require('./asin');\n\n/**\n * Return the arccosine of the given `value`.\n *\n * @param {Double} trigValue\n * @param {Unit} output \n * @return {Unit}\n * @api public\n */\nmodule.exports = function acos(trigValue, output) {\n\tvar output = typeof output !== 'undefined' ? output : 'deg';\n\tvar convertedValue = convert(Math.PI / 2, output) - asin(trigValue, output).val;\n\tvar m = Math.pow(10, 9);\n\tconvertedValue = Math.round(convertedValue * m) / m;\n return new nodes.Unit(convertedValue, output);\n};\n","var nodes = require('../nodes')\n , Parser = require('../selector-parser');\n\n/**\n * Return a list with raw selectors parts\n * of the current group.\n *\n * For example:\n *\n * .a, .b\n * .c\n * .d\n * test: selectors() // => '.a,.b', '& .c', '& .d'\n *\n * @return {Expression}\n * @api public\n */\n\nmodule.exports = function selectors(){\n var stack = this.selectorStack\n , expr = new nodes.Expression(true);\n\n if (stack.length) {\n for (var i = 0; i < stack.length; i++) {\n var group = stack[i]\n , nested;\n\n if (group.length > 1) {\n expr.push(new nodes.String(group.map(function(selector) {\n nested = new Parser(selector.val).parse().nested;\n return (nested && i ? '& ' : '') + selector.val;\n }).join(',')))\n } else {\n var selector = group[0].val\n nested = new Parser(selector).parse().nested;\n expr.push(new nodes.String((nested && i ? '& ' : '') + selector));\n }\n }\n } else {\n expr.push(new nodes.String('&'));\n }\n return expr;\n};\n","var nodes = require('../nodes');\n\n/**\n * Output stack trace.\n *\n * @api public\n */\n\nmodule.exports = function trace(){\n console.log(this.stack);\n return nodes.null;\n};\n","\n/*!\n * Stylus - colors\n * Copyright (c) Automattic \n * MIT Licensed\n */\n\nmodule.exports = {\n aliceblue: [240, 248, 255, 1]\n , antiquewhite: [250, 235, 215, 1]\n , aqua: [0, 255, 255, 1]\n , aquamarine: [127, 255, 212, 1]\n , azure: [240, 255, 255, 1]\n , beige: [245, 245, 220, 1]\n , bisque: [255, 228, 196, 1]\n , black: [0, 0, 0, 1]\n , blanchedalmond: [255, 235, 205, 1]\n , blue: [0, 0, 255, 1]\n , blueviolet: [138, 43, 226, 1]\n , brown: [165, 42, 42, 1]\n , burlywood: [222, 184, 135, 1]\n , cadetblue: [95, 158, 160, 1]\n , chartreuse: [127, 255, 0, 1]\n , chocolate: [210, 105, 30, 1]\n , coral: [255, 127, 80, 1]\n , cornflowerblue: [100, 149, 237, 1]\n , cornsilk: [255, 248, 220, 1]\n , crimson: [220, 20, 60, 1]\n , cyan: [0, 255, 255, 1]\n , darkblue: [0, 0, 139, 1]\n , darkcyan: [0, 139, 139, 1]\n , darkgoldenrod: [184, 134, 11, 1]\n , darkgray: [169, 169, 169, 1]\n , darkgreen: [0, 100, 0, 1]\n , darkgrey: [169, 169, 169, 1]\n , darkkhaki: [189, 183, 107, 1]\n , darkmagenta: [139, 0, 139, 1]\n , darkolivegreen: [85, 107, 47, 1]\n , darkorange: [255, 140, 0, 1]\n , darkorchid: [153, 50, 204, 1]\n , darkred: [139, 0, 0, 1]\n , darksalmon: [233, 150, 122, 1]\n , darkseagreen: [143, 188, 143, 1]\n , darkslateblue: [72, 61, 139, 1]\n , darkslategray: [47, 79, 79, 1]\n , darkslategrey: [47, 79, 79, 1]\n , darkturquoise: [0, 206, 209, 1]\n , darkviolet: [148, 0, 211, 1]\n , deeppink: [255, 20, 147, 1]\n , deepskyblue: [0, 191, 255, 1]\n , dimgray: [105, 105, 105, 1]\n , dimgrey: [105, 105, 105, 1]\n , dodgerblue: [30, 144, 255, 1]\n , firebrick: [178, 34, 34, 1]\n , floralwhite: [255, 250, 240, 1]\n , forestgreen: [34, 139, 34, 1]\n , fuchsia: [255, 0, 255, 1]\n , gainsboro: [220, 220, 220, 1]\n , ghostwhite: [248, 248, 255, 1]\n , gold: [255, 215, 0, 1]\n , goldenrod: [218, 165, 32, 1]\n , gray: [128, 128, 128, 1]\n , green: [0, 128, 0, 1]\n , greenyellow: [173, 255, 47, 1]\n , grey: [128, 128, 128, 1]\n , honeydew: [240, 255, 240, 1]\n , hotpink: [255, 105, 180, 1]\n , indianred: [205, 92, 92, 1]\n , indigo: [75, 0, 130, 1]\n , ivory: [255, 255, 240, 1]\n , khaki: [240, 230, 140, 1]\n , lavender: [230, 230, 250, 1]\n , lavenderblush: [255, 240, 245, 1]\n , lawngreen: [124, 252, 0, 1]\n , lemonchiffon: [255, 250, 205, 1]\n , lightblue: [173, 216, 230, 1]\n , lightcoral: [240, 128, 128, 1]\n , lightcyan: [224, 255, 255, 1]\n , lightgoldenrodyellow: [250, 250, 210, 1]\n , lightgray: [211, 211, 211, 1]\n , lightgreen: [144, 238, 144, 1]\n , lightgrey: [211, 211, 211, 1]\n , lightpink: [255, 182, 193, 1]\n , lightsalmon: [255, 160, 122, 1]\n , lightseagreen: [32, 178, 170, 1]\n , lightskyblue: [135, 206, 250, 1]\n , lightslategray: [119, 136, 153, 1]\n , lightslategrey: [119, 136, 153, 1]\n , lightsteelblue: [176, 196, 222, 1]\n , lightyellow: [255, 255, 224, 1]\n , lime: [0, 255, 0, 1]\n , limegreen: [50, 205, 50, 1]\n , linen: [250, 240, 230, 1]\n , magenta: [255, 0, 255, 1]\n , maroon: [128, 0, 0, 1]\n , mediumaquamarine: [102, 205, 170, 1]\n , mediumblue: [0, 0, 205, 1]\n , mediumorchid: [186, 85, 211, 1]\n , mediumpurple: [147, 112, 219, 1]\n , mediumseagreen: [60, 179, 113, 1]\n , mediumslateblue: [123, 104, 238, 1]\n , mediumspringgreen: [0, 250, 154, 1]\n , mediumturquoise: [72, 209, 204, 1]\n , mediumvioletred: [199, 21, 133, 1]\n , midnightblue: [25, 25, 112, 1]\n , mintcream: [245, 255, 250, 1]\n , mistyrose: [255, 228, 225, 1]\n , moccasin: [255, 228, 181, 1]\n , navajowhite: [255, 222, 173, 1]\n , navy: [0, 0, 128, 1]\n , oldlace: [253, 245, 230, 1]\n , olive: [128, 128, 0, 1]\n , olivedrab: [107, 142, 35, 1]\n , orange: [255, 165, 0, 1]\n , orangered: [255, 69, 0, 1]\n , orchid: [218, 112, 214, 1]\n , palegoldenrod: [238, 232, 170, 1]\n , palegreen: [152, 251, 152, 1]\n , paleturquoise: [175, 238, 238, 1]\n , palevioletred: [219, 112, 147, 1]\n , papayawhip: [255, 239, 213, 1]\n , peachpuff: [255, 218, 185, 1]\n , peru: [205, 133, 63, 1]\n , pink: [255, 192, 203, 1]\n , plum: [221, 160, 221, 1]\n , powderblue: [176, 224, 230, 1]\n , purple: [128, 0, 128, 1]\n , red: [255, 0, 0, 1]\n , rosybrown: [188, 143, 143, 1]\n , royalblue: [65, 105, 225, 1]\n , saddlebrown: [139, 69, 19, 1]\n , salmon: [250, 128, 114, 1]\n , sandybrown: [244, 164, 96, 1]\n , seagreen: [46, 139, 87, 1]\n , seashell: [255, 245, 238, 1]\n , sienna: [160, 82, 45, 1]\n , silver: [192, 192, 192, 1]\n , skyblue: [135, 206, 235, 1]\n , slateblue: [106, 90, 205, 1]\n , slategray: [112, 128, 144, 1]\n , slategrey: [112, 128, 144, 1]\n , snow: [255, 250, 250, 1]\n , springgreen: [0, 255, 127, 1]\n , steelblue: [70, 130, 180, 1]\n , tan: [210, 180, 140, 1]\n , teal: [0, 128, 128, 1]\n , thistle: [216, 191, 216, 1]\n , tomato: [255, 99, 71, 1]\n , transparent: [0, 0, 0, 0]\n , turquoise: [64, 224, 208, 1]\n , violet: [238, 130, 238, 1]\n , wheat: [245, 222, 179, 1]\n , white: [255, 255, 255, 1]\n , whitesmoke: [245, 245, 245, 1]\n , yellow: [255, 255, 0, 1]\n , yellowgreen: [154, 205, 50, 1]\n , rebeccapurple: [102, 51, 153, 1]\n};\n","function parse(url) {\r\n return new URL(url);\r\n}\r\n\r\nmodule.exports = {\r\n parse\r\n};\r\n","\n/*!\n * Stylus - plugin - url\n * Copyright (c) Automattic \n * MIT Licensed\n */\n\n/**\n * Module dependencies.\n */\n\nvar Compiler = require('../visitor/compiler')\n , events = require('../renderer').events\n , nodes = require('../nodes')\n , parse = require('url').parse\n , extname = require('path').extname\n , utils = require('../utils')\n , fs = require('fs');\n\n/**\n * Mime table.\n */\n\nvar defaultMimes = {\n '.gif': 'image/gif'\n , '.png': 'image/png'\n , '.jpg': 'image/jpeg'\n , '.jpeg': 'image/jpeg'\n , '.svg': 'image/svg+xml'\n , '.webp': 'image/webp'\n , '.ttf': 'application/x-font-ttf'\n , '.eot': 'application/vnd.ms-fontobject'\n , '.woff': 'application/font-woff'\n , '.woff2': 'application/font-woff2'\n};\n\n/**\n * Supported encoding types\n */\nvar encodingTypes = {\n BASE_64: 'base64',\n UTF8: 'charset=utf-8'\n}\n\n/**\n * Return a url() function with the given `options`.\n *\n * Options:\n *\n * - `limit` bytesize limit defaulting to 30Kb\n * - `paths` image resolution path(s), merged with general lookup paths\n *\n * Examples:\n *\n * stylus(str)\n * .set('filename', __dirname + '/css/test.styl')\n * .define('url', stylus.url({ paths: [__dirname + '/public'] }))\n * .render(function(err, css) { ... })\n *\n * @param {Object} options\n * @return {Function}\n * @api public\n */\n\nmodule.exports = function(options) {\n options = options || {};\n\n var _paths = options.paths || [];\n var sizeLimit = null != options.limit ? options.limit : 30000;\n var mimes = options.mimes || defaultMimes;\n\n /**\n * @param {object} url - The path to the image you want to encode.\n * @param {object} enc - The encoding for the image. Defaults to base64, the \n * other valid option is `utf8`.\n */\n function fn(url, enc) {\n // Compile the url\n var compiler = new Compiler(url)\n , encoding = encodingTypes.BASE_64;\n\n compiler.isURL = true;\n url = url.nodes.map(function(node) {\n return compiler.visit(node);\n }).join('');\n\n // Parse literal\n url = parse(url);\n var ext = extname(url.pathname || '')\n , mime = mimes[ext]\n , hash = url.hash || ''\n , literal = new nodes.Literal('url(\"' + url.href + '\")')\n , paths = _paths.concat(this.paths)\n , buf\n , result;\n\n // Not supported\n if(!mime) return literal;\n\n // Absolute\n if(url.protocol) return literal;\n\n // Lookup\n var found = utils.lookup(url.pathname, paths);\n\n // Failed to lookup\n if(!found) {\n events.emit(\n 'file not found'\n , 'File ' + literal + ' could not be found, literal url retained!'\n );\n\n return literal;\n }\n\n // Read data\n buf = fs.readFileSync(found);\n\n // Too large\n if(false !== sizeLimit && buf.length > sizeLimit) return literal;\n\n if(enc && 'utf8' == enc.first.val.toLowerCase()) {\n encoding = encodingTypes.UTF8;\n result = buf.toString().replace(/\\s+/g, ' ')\n .replace(/[{}\\|\\\\\\^~\\[\\]`\"<>#%]/g, function(match) {\n return '%' + match[0].charCodeAt(0).toString(16).toUpperCase();\n }).trim();\n } else {\n result = buf.toString(encoding) + hash;\n }\n\n // Encode\n return new nodes.Literal('url(\"data:' + mime + ';' + encoding + ',' + result + '\")');\n };\n\n fn.raw = true;\n return fn;\n};\n\n// Exporting default mimes so we could easily access them\nmodule.exports.mimes = defaultMimes;\n\n","\n/*!\n * Stylus - Evaluator\n * Copyright (c) Automattic \n * MIT Licensed\n */\n\n/**\n * Module dependencies.\n */\n\nvar Visitor = require('./')\n , units = require('../units')\n , nodes = require('../nodes')\n , Stack = require('../stack')\n , Frame = require('../stack/frame')\n , utils = require('../utils')\n , bifs = require('../functions')\n , dirname = require('path').dirname\n , colors = require('../colors')\n , debug = require('debug')('stylus:evaluator')\n , fs = require('fs');\n\n/**\n * Import `file` and return Block node.\n *\n * @api private\n */\nfunction importFile(node, file, literal) {\n var importStack = this.importStack\n , Parser = require('../parser')\n , stat;\n\n // Handling the `require`\n if (node.once) {\n if (this.requireHistory[file]) return nodes.null;\n this.requireHistory[file] = true;\n\n if (literal && !this.includeCSS) {\n return node;\n }\n }\n\n // Avoid overflows from importing the same file over again\n if (~importStack.indexOf(file))\n throw new Error('import loop has been found');\n\n var str = fs.readFileSync(file, 'utf8');\n\n // shortcut for empty files\n if (!str.trim()) return nodes.null;\n\n // Expose imports\n node.path = file;\n node.dirname = dirname(file);\n // Store the modified time\n stat = fs.statSync(file);\n node.mtime = stat.mtime;\n this.paths.push(node.dirname);\n\n if (this.options._imports) this.options._imports.push(node.clone());\n\n // Parse the file\n importStack.push(file);\n nodes.filename = file;\n\n if (literal) {\n literal = new nodes.Literal(str.replace(/\\r\\n?/g, '\\n'));\n literal.lineno = literal.column = 1;\n if (!this.resolveURL) return literal;\n }\n\n // parse\n var block = new nodes.Block\n , parser = new Parser(str, utils.merge({ root: block }, this.options));\n\n try {\n block = parser.parse();\n } catch (err) {\n var line = parser.lexer.lineno\n , column = parser.lexer.column;\n\n if (literal && this.includeCSS && this.resolveURL) {\n this.warn('ParseError: ' + file + ':' + line + ':' + column + '. This file included as-is');\n return literal;\n } else {\n err.filename = file;\n err.lineno = line;\n err.column = column;\n err.input = str;\n throw err;\n }\n }\n\n // Evaluate imported \"root\"\n block = block.clone(this.currentBlock);\n block.parent = this.currentBlock;\n block.scope = false;\n var ret = this.visit(block);\n importStack.pop();\n if (!this.resolveURL || this.resolveURL.nocheck) this.paths.pop();\n\n return ret;\n}\n\nmodule.exports = class Evaluator extends Visitor {\n /**\n * Initialize a new `Evaluator` with the given `root` Node\n * and the following `options`.\n *\n * Options:\n *\n * - `compress` Compress the css output, defaults to false\n * - `warn` Warn the user of duplicate function definitions etc\n *\n * @param {Node} root\n * @api private\n */\n\n constructor(root, options) {\n super(root);\n options = options || {};\n var functions = this.functions = options.functions || {};\n this.stack = new Stack;\n this.imports = options.imports || [];\n this.globals = options.globals || {};\n this.paths = options.paths || [];\n this.prefix = options.prefix || '';\n this.filename = options.filename;\n this.includeCSS = options['include css'];\n this.resolveURL = functions.url\n && 'resolver' == functions.url.name\n && functions.url.options;\n this.paths.push(dirname(options.filename || '.'));\n this.stack.push(this.global = new Frame(root));\n this.warnings = options.warn;\n this.options = options;\n this.calling = []; // TODO: remove, use stack\n this.importStack = [];\n this.requireHistory = {};\n this.return = 0;\n }\n\n /**\n * Proxy visit to expose node line numbers.\n *\n * @param {Node} node\n * @return {Node}\n * @api private\n */\n\n visit(node) {\n try {\n return super.visit(node);\n } catch (err) {\n if (err.filename) throw err;\n err.lineno = node.lineno;\n err.column = node.column;\n err.filename = node.filename;\n err.stylusStack = this.stack.toString();\n try {\n err.input = fs.readFileSync(err.filename, 'utf8');\n } catch (err) {\n // ignore\n }\n throw err;\n }\n };\n\n /**\n * Perform evaluation setup:\n *\n * - populate global scope\n * - iterate imports\n *\n * @api private\n */\n\n setup() {\n var root = this.root;\n var imports = [];\n\n this.populateGlobalScope();\n this.imports.forEach(function (file) {\n var expr = new nodes.Expression;\n expr.push(new nodes.String(file));\n imports.push(new nodes.Import(expr));\n }, this);\n\n root.nodes = imports.concat(root.nodes);\n };\n\n /**\n * Populate the global scope with:\n *\n * - css colors\n * - user-defined globals\n *\n * @api private\n */\n\n populateGlobalScope() {\n var scope = this.global.scope;\n\n // colors\n Object.keys(colors).forEach(function (name) {\n var color = colors[name]\n , rgba = new nodes.RGBA(color[0], color[1], color[2], color[3])\n , node = new nodes.Ident(name, rgba);\n rgba.name = name;\n scope.add(node);\n });\n\n // expose url function\n scope.add(new nodes.Ident(\n 'embedurl',\n new nodes.Function('embedurl', require('../functions/url')({\n limit: false\n }))\n ));\n\n // user-defined globals\n var globals = this.globals;\n Object.keys(globals).forEach(function (name) {\n var val = globals[name];\n if (!val.nodeName) val = new nodes.Literal(val);\n scope.add(new nodes.Ident(name, val));\n });\n };\n\n /**\n * Evaluate the tree.\n *\n * @return {Node}\n * @api private\n */\n\n evaluate() {\n debug('eval %s', this.filename);\n this.setup();\n return this.visit(this.root);\n };\n\n /**\n * Visit Group.\n */\n\n visitGroup(group) {\n group.nodes = group.nodes.map(function (selector) {\n selector.val = this.interpolate(selector);\n debug('ruleset %s', selector.val);\n return selector;\n }, this);\n\n group.block = this.visit(group.block);\n return group;\n };\n\n /**\n * Visit Return.\n */\n\n visitReturn(ret) {\n ret.expr = this.visit(ret.expr);\n throw ret;\n };\n\n /**\n * Visit Media.\n */\n\n visitMedia(media) {\n media.block = this.visit(media.block);\n media.val = this.visit(media.val);\n return media;\n };\n\n /**\n * Visit QueryList.\n */\n\n visitQueryList(queries) {\n var val, query;\n queries.nodes.forEach(this.visit, this);\n\n if (1 == queries.nodes.length) {\n query = queries.nodes[0];\n if (val = this.lookup(query.type)) {\n val = val.first.string;\n if (!val) return queries;\n var Parser = require('../parser')\n , parser = new Parser(val, this.options);\n queries = this.visit(parser.queries());\n }\n }\n return queries;\n };\n\n /**\n * Visit Query.\n */\n\n visitQuery(node) {\n node.predicate = this.visit(node.predicate);\n node.type = this.visit(node.type);\n node.nodes.forEach(this.visit, this);\n return node;\n };\n\n /**\n * Visit Feature.\n */\n\n visitFeature(node) {\n node.name = this.interpolate(node);\n if (node.expr) {\n this.return++;\n node.expr = this.visit(node.expr);\n this.return--;\n }\n return node;\n };\n\n /**\n * Visit Object.\n */\n\n visitObject(obj) {\n for (var key in obj.vals) {\n obj.vals[key] = this.visit(obj.vals[key]);\n }\n return obj;\n };\n\n /**\n * Visit Member.\n */\n\n visitMember(node) {\n var left = node.left\n , right = node.right\n , obj = this.visit(left).first;\n\n if ('object' != obj.nodeName) {\n throw new Error(left.toString() + ' has no property .' + right);\n }\n if (node.val) {\n this.return++;\n obj.set(right.name, this.visit(node.val));\n this.return--;\n }\n return obj.get(right.name);\n };\n\n /**\n * Visit Keyframes.\n */\n\n visitKeyframes(keyframes) {\n var val;\n if (keyframes.fabricated) return keyframes;\n keyframes.val = this.interpolate(keyframes).trim();\n if (val = this.lookup(keyframes.val)) {\n keyframes.val = val.first.string || val.first.name;\n }\n keyframes.block = this.visit(keyframes.block);\n\n if ('official' != keyframes.prefix) return keyframes;\n\n this.vendors.forEach(function (prefix) {\n // IE never had prefixes for keyframes\n if ('ms' == prefix) return;\n var node = keyframes.clone();\n node.val = keyframes.val;\n node.prefix = prefix;\n node.block = keyframes.block;\n node.fabricated = true;\n this.currentBlock.push(node);\n }, this);\n\n return nodes.null;\n };\n\n /**\n * Visit Function.\n */\n\n visitFunction(fn) {\n // check local\n var local = this.stack.currentFrame.scope.lookup(fn.name);\n if (local) this.warn('local ' + local.nodeName + ' \"' + fn.name + '\" previously defined in this scope');\n\n // user-defined\n var user = this.functions[fn.name];\n if (user) this.warn('user-defined function \"' + fn.name + '\" is already defined');\n\n // BIF\n var bif = bifs[fn.name];\n if (bif) this.warn('built-in function \"' + fn.name + '\" is already defined');\n\n return fn;\n };\n\n /**\n * Visit Each.\n */\n\n visitEach(each) {\n this.return++;\n var expr = utils.unwrap(this.visit(each.expr))\n , len = expr.nodes.length\n , val = new nodes.Ident(each.val)\n , key = new nodes.Ident(each.key || '__index__')\n , scope = this.currentScope\n , block = this.currentBlock\n , vals = []\n , self = this\n , body\n , obj;\n this.return--;\n\n each.block.scope = false;\n\n function visitBody(key, val) {\n scope.add(val);\n scope.add(key);\n body = self.visit(each.block.clone());\n vals = vals.concat(body.nodes);\n }\n\n // for prop in obj\n if (1 == len && 'object' == expr.nodes[0].nodeName) {\n obj = expr.nodes[0];\n for (var prop in obj.vals) {\n val.val = new nodes.String(prop);\n key.val = obj.get(prop);\n visitBody(key, val);\n }\n } else {\n for (var i = 0; i < len; ++i) {\n val.val = expr.nodes[i];\n key.val = new nodes.Unit(i);\n visitBody(key, val);\n }\n }\n\n this.mixin(vals, block);\n return vals[vals.length - 1] || nodes.null;\n };\n\n /**\n * Visit Call.\n */\n\n visitCall(call) {\n debug('call %s', call);\n var fn = this.lookup(call.name)\n , literal\n , ret;\n\n // url()\n this.ignoreColors = 'url' == call.name;\n\n // Variable function\n if (fn && 'expression' == fn.nodeName) {\n fn = fn.nodes[0];\n }\n\n // Not a function? try user-defined or built-ins\n if (fn && 'function' != fn.nodeName) {\n fn = this.lookupFunction(call.name);\n }\n\n // Undefined function? render literal CSS\n if (!fn || fn.nodeName != 'function') {\n debug('%s is undefined', call);\n // Special case for `calc`\n if ('calc' == this.unvendorize(call.name)) {\n literal = call.args.nodes && call.args.nodes[0];\n if (literal) ret = new nodes.Literal(call.name + literal);\n } else {\n ret = this.literalCall(call);\n }\n this.ignoreColors = false;\n return ret;\n }\n\n this.calling.push(call.name);\n\n // Massive stack\n if (this.calling.length > 200) {\n throw new RangeError('Maximum stylus call stack size exceeded');\n }\n\n // First node in expression\n if ('expression' == fn.nodeName) fn = fn.first;\n\n // Evaluate arguments\n this.return++;\n var args = this.visit(call.args);\n\n for (var key in args.map) {\n args.map[key] = this.visit(args.map[key].clone());\n }\n this.return--;\n\n // Built-in\n if (fn.fn) {\n debug('%s is built-in', call);\n ret = this.invokeBuiltin(fn.fn, args);\n // User-defined\n } else if ('function' == fn.nodeName) {\n debug('%s is user-defined', call);\n // Evaluate mixin block\n if (call.block) call.block = this.visit(call.block);\n ret = this.invokeFunction(fn, args, call.block);\n }\n\n this.calling.pop();\n this.ignoreColors = false;\n return ret;\n };\n\n /**\n * Visit Ident.\n */\n\n visitIdent(ident) {\n var prop;\n // Property lookup\n if (ident.property) {\n if (prop = this.lookupProperty(ident.name)) {\n return this.visit(prop.expr.clone());\n }\n return nodes.null;\n // Lookup\n } else if (ident.val.isNull) {\n var val = this.lookup(ident.name);\n // Object or Block mixin\n if (val && ident.mixin) this.mixinNode(val);\n return val ? this.visit(val) : ident;\n // Assign\n } else {\n this.return++;\n ident.val = this.visit(ident.val);\n this.return--;\n this.currentScope.add(ident);\n return ident.val;\n }\n };\n\n /**\n * Visit BinOp.\n */\n\n visitBinOp(binop) {\n // Special-case \"is defined\" pseudo binop\n if ('is defined' == binop.op) return this.isDefined(binop.left);\n\n this.return++;\n // Visit operands\n var op = binop.op\n , left = this.visit(binop.left)\n , right = ('||' == op || '&&' == op)\n ? binop.right : this.visit(binop.right);\n\n // HACK: ternary\n var val = binop.val\n ? this.visit(binop.val)\n : null;\n this.return--;\n\n // Operate\n try {\n return this.visit(left.operate(op, right, val));\n } catch (err) {\n // disregard coercion issues in equality\n // checks, and simply return false\n if ('CoercionError' == err.name) {\n switch (op) {\n case '==':\n return nodes.false;\n case '!=':\n return nodes.true;\n }\n }\n throw err;\n }\n };\n\n /**\n * Visit UnaryOp.\n */\n\n visitUnaryOp(unary) {\n var op = unary.op\n , node = this.visit(unary.expr);\n\n if ('!' != op) {\n node = node.first.clone();\n utils.assertType(node, 'unit');\n }\n\n switch (op) {\n case '-':\n node.val = -node.val;\n break;\n case '+':\n node.val = +node.val;\n break;\n case '~':\n node.val = ~node.val;\n break;\n case '!':\n return node.toBoolean().negate();\n }\n\n return node;\n };\n\n /**\n * Visit TernaryOp.\n */\n\n visitTernary(ternary) {\n var ok = this.visit(ternary.cond).toBoolean();\n return ok.isTrue\n ? this.visit(ternary.trueExpr)\n : this.visit(ternary.falseExpr);\n };\n\n /**\n * Visit Expression.\n */\n\n visitExpression(expr) {\n for (var i = 0, len = expr.nodes.length; i < len; ++i) {\n expr.nodes[i] = this.visit(expr.nodes[i]);\n }\n\n // support (n * 5)px etc\n if (this.castable(expr)) expr = this.cast(expr);\n\n return expr;\n };\n\n /**\n * Visit Arguments.\n */\n\n get visitArguments() {\n return this.visitExpression;\n }\n\n /**\n * Visit Property.\n */\n\n visitProperty(prop) {\n var name = this.interpolate(prop)\n , fn = this.lookup(name)\n , call = fn && 'function' == fn.first.nodeName\n , literal = ~this.calling.indexOf(name)\n , _prop = this.property;\n\n // Function of the same name\n if (call && !literal && !prop.literal) {\n var args = nodes.Arguments.fromExpression(utils.unwrap(prop.expr.clone()));\n prop.name = name;\n this.property = prop;\n this.return++;\n this.property.expr = this.visit(prop.expr);\n this.return--;\n var ret = this.visit(new nodes.Call(name, args));\n this.property = _prop;\n return ret;\n // Regular property\n } else {\n this.return++;\n prop.name = name;\n prop.literal = true;\n this.property = prop;\n prop.expr = this.visit(prop.expr);\n this.property = _prop;\n this.return--;\n return prop;\n }\n };\n\n /**\n * Visit Root.\n */\n\n visitRoot(block) {\n // normalize cached imports\n if (block != this.root) {\n block.constructor = nodes.Block;\n return this.visit(block);\n }\n\n for (var i = 0; i < block.nodes.length; ++i) {\n block.index = i;\n block.nodes[i] = this.visit(block.nodes[i]);\n }\n return block;\n };\n\n /**\n * Visit Block.\n */\n\n visitBlock(block) {\n this.stack.push(new Frame(block));\n for (block.index = 0; block.index < block.nodes.length; ++block.index) {\n try {\n block.nodes[block.index] = this.visit(block.nodes[block.index]);\n } catch (err) {\n if ('return' == err.nodeName) {\n if (this.return) {\n this.stack.pop();\n throw err;\n } else {\n block.nodes[block.index] = err;\n break;\n }\n } else {\n throw err;\n }\n }\n }\n this.stack.pop();\n return block;\n };\n\n /**\n * Visit Atblock.\n */\n\n visitAtblock(atblock) {\n atblock.block = this.visit(atblock.block);\n return atblock;\n };\n\n /**\n * Visit Atrule.\n */\n\n visitAtrule(atrule) {\n atrule.val = this.interpolate(atrule);\n if (atrule.block) atrule.block = this.visit(atrule.block);\n return atrule;\n };\n\n /**\n * Visit Supports.\n */\n\n visitSupports(node) {\n var condition = node.condition\n , val;\n\n this.return++;\n node.condition = this.visit(condition);\n this.return--;\n\n val = condition.first;\n if (1 == condition.nodes.length\n && 'string' == val.nodeName) {\n node.condition = val.string;\n }\n node.block = this.visit(node.block);\n return node;\n };\n\n /**\n * Visit If.\n */\n\n visitIf(node) {\n var ret\n , block = this.currentBlock\n , negate = node.negate;\n\n this.return++;\n var ok = this.visit(node.cond).first.toBoolean();\n this.return--;\n\n node.block.scope = node.block.hasMedia;\n\n // Evaluate body\n if (negate) {\n // unless\n if (ok.isFalse) {\n ret = this.visit(node.block);\n }\n } else {\n // if\n if (ok.isTrue) {\n ret = this.visit(node.block);\n // else\n } else if (node.elses.length) {\n var elses = node.elses\n , len = elses.length\n , cond;\n for (var i = 0; i < len; ++i) {\n // else if\n if (elses[i].cond) {\n elses[i].block.scope = elses[i].block.hasMedia;\n this.return++;\n cond = this.visit(elses[i].cond).first.toBoolean();\n this.return--;\n if (cond.isTrue) {\n ret = this.visit(elses[i].block);\n break;\n }\n // else\n } else {\n elses[i].scope = elses[i].hasMedia;\n ret = this.visit(elses[i]);\n }\n }\n }\n }\n\n // mixin conditional statements within\n // a selector group or at-rule\n if (ret && !node.postfix && block.node\n && ~['group'\n , 'atrule'\n , 'media'\n , 'supports'\n , 'keyframes'].indexOf(block.node.nodeName)) {\n this.mixin(ret.nodes, block);\n return nodes.null;\n }\n\n return ret || nodes.null;\n };\n\n /**\n * Visit Extend.\n */\n\n visitExtend(extend) {\n var block = this.currentBlock;\n if ('group' != block.node.nodeName) block = this.closestGroup;\n extend.selectors.forEach(function (selector) {\n block.node.extends.push({\n // Cloning the selector for when we are in a loop and don't want it to affect\n // the selector nodes and cause the values to be different to expected\n selector: this.interpolate(selector.clone()).trim(),\n optional: selector.optional,\n lineno: selector.lineno,\n column: selector.column\n });\n }, this);\n return nodes.null;\n };\n\n /**\n * Visit Import.\n */\n\n visitImport(imported) {\n this.return++;\n\n var path = this.visit(imported.path).first\n , nodeName = imported.once ? 'require' : 'import'\n , found\n , literal;\n\n this.return--;\n debug('import %s', path);\n\n // url() passed\n if ('url' == path.name) {\n if (imported.once) throw new Error('You cannot @require a url');\n\n return imported;\n }\n\n // Ensure string\n if (!path.string) throw new Error('@' + nodeName + ' string expected');\n\n var name = path = path.string;\n\n // Absolute URL or hash\n if (/(?:url\\s*\\(\\s*)?['\"]?(?:#|(?:https?:)?\\/\\/)/i.test(path)) {\n if (imported.once) throw new Error('You cannot @require a url');\n return imported;\n }\n\n // Literal\n if (/\\.css(?:\"|$)/.test(path)) {\n literal = true;\n if (!imported.once && !this.includeCSS) {\n return imported;\n }\n }\n\n // support optional .styl\n if (!literal && !/\\.styl$/i.test(path)) path += '.styl';\n\n // Lookup\n found = utils.find(path, this.paths, this.filename);\n if (!found) {\n found = utils.lookupIndex(name, this.paths, this.filename);\n }\n\n // Throw if import failed\n if (!found) throw new Error('failed to locate @' + nodeName + ' file ' + path);\n\n var block = new nodes.Block;\n\n for (var i = 0, len = found.length; i < len; ++i) {\n block.push(importFile.call(this, imported, found[i], literal));\n }\n\n return block;\n };\n\n /**\n * Invoke `fn` with `args`.\n *\n * @param {Function} fn\n * @param {Array} args\n * @return {Node}\n * @api private\n */\n\n invokeFunction(fn, args, content) {\n var block = new nodes.Block(fn.block.parent);\n\n // Clone the function body\n // to prevent mutation of subsequent calls\n var body = fn.block.clone(block);\n\n // mixin block\n var mixinBlock = this.stack.currentFrame.block;\n\n // new block scope\n this.stack.push(new Frame(block));\n var scope = this.currentScope;\n\n // normalize arguments\n if ('arguments' != args.nodeName) {\n var expr = new nodes.Expression;\n expr.push(args);\n args = nodes.Arguments.fromExpression(expr);\n }\n\n // arguments local\n scope.add(new nodes.Ident('arguments', args));\n\n // mixin scope introspection\n scope.add(new nodes.Ident('mixin', this.return\n ? nodes.false\n : new nodes.String(mixinBlock.nodeName)));\n\n // current property\n if (this.property) {\n var prop = this.propertyExpression(this.property, fn.name);\n scope.add(new nodes.Ident('current-property', prop));\n } else {\n scope.add(new nodes.Ident('current-property', nodes.null));\n }\n\n // current call stack\n var expr = new nodes.Expression;\n for (var i = this.calling.length - 1; i--;) {\n expr.push(new nodes.Literal(this.calling[i]));\n };\n scope.add(new nodes.Ident('called-from', expr));\n\n // inject arguments as locals\n var i = 0\n , len = args.nodes.length;\n fn.params.nodes.forEach(function (node) {\n // rest param support\n if (node.rest) {\n node.val = new nodes.Expression;\n for (; i < len; ++i) node.val.push(args.nodes[i]);\n node.val.preserve = true;\n node.val.isList = args.isList;\n // argument default support\n } else {\n var arg = args.map[node.name] || args.nodes[i++];\n node = node.clone();\n if (arg) {\n arg.isEmpty ? args.nodes[i - 1] = this.visit(node) : node.val = arg;\n } else {\n args.push(node.val);\n }\n\n // required argument not satisfied\n if (node.val.isNull) {\n throw new Error('argument \"' + node + '\" required for ' + fn);\n }\n }\n\n scope.add(node);\n }, this);\n\n // mixin block\n if (content) scope.add(new nodes.Ident('block', content, true));\n\n // invoke\n return this.invoke(body, true, fn.filename);\n };\n\n /**\n * Invoke built-in `fn` with `args`.\n *\n * @param {Function} fn\n * @param {Array} args\n * @return {Node}\n * @api private\n */\n\n invokeBuiltin(fn, args) {\n // Map arguments to first node\n // providing a nicer js api for\n // BIFs. Functions may specify that\n // they wish to accept full expressions\n // via .raw\n if (fn.raw) {\n args = args.nodes;\n } else {\n if (!fn.params) {\n fn.params = utils.params(fn);\n }\n args = fn.params.reduce(function (ret, param) {\n var arg = args.map[param] || args.nodes.shift()\n if (arg) {\n arg = utils.unwrap(arg);\n var len = arg.nodes.length;\n if (len > 1) {\n for (var i = 0; i < len; ++i) {\n ret.push(utils.unwrap(arg.nodes[i].first));\n }\n } else {\n ret.push(arg.first);\n }\n }\n return ret;\n }, []);\n }\n\n // Invoke the BIF\n var body = utils.coerce(fn.apply(this, args));\n\n // Always wrapping allows js functions\n // to return several values with a single\n // Expression node\n var expr = new nodes.Expression;\n expr.push(body);\n body = expr;\n\n // Invoke\n return this.invoke(body);\n };\n\n /**\n * Invoke the given function `body`.\n *\n * @param {Block} body\n * @return {Node}\n * @api private\n */\n\n invoke(body, stack, filename) {\n var self = this\n , ret;\n\n if (filename) this.paths.push(dirname(filename));\n\n // Return\n if (this.return) {\n ret = this.eval(body.nodes);\n if (stack) this.stack.pop();\n // Mixin\n } else {\n body = this.visit(body);\n if (stack) this.stack.pop();\n this.mixin(body.nodes, this.currentBlock);\n ret = nodes.null;\n }\n\n if (filename) this.paths.pop();\n\n return ret;\n };\n\n /**\n * Mixin the given `nodes` to the given `block`.\n *\n * @param {Array} nodes\n * @param {Block} block\n * @api private\n */\n\n mixin(nodes, block) {\n if (!nodes.length) return;\n var len = block.nodes.length\n , head = block.nodes.slice(0, block.index)\n , tail = block.nodes.slice(block.index + 1, len);\n this._mixin(nodes, head, block);\n block.index = 0;\n block.nodes = head.concat(tail);\n };\n\n /**\n * Mixin the given `items` to the `dest` array.\n *\n * @param {Array} items\n * @param {Array} dest\n * @param {Block} block\n * @api private\n */\n\n _mixin(items, dest, block) {\n var node\n , len = items.length;\n for (var i = 0; i < len; ++i) {\n switch ((node = items[i]).nodeName) {\n case 'return':\n return;\n case 'block':\n this._mixin(node.nodes, dest, block);\n break;\n case 'media':\n // fix link to the parent block\n var parentNode = node.block.parent.node;\n if (parentNode && 'call' != parentNode.nodeName) {\n node.block.parent = block;\n }\n case 'property':\n var val = node.expr;\n // prevent `block` mixin recursion\n if (node.literal && 'block' == val.first.name) {\n val = utils.unwrap(val);\n val.nodes[0] = new nodes.Literal('block');\n }\n default:\n dest.push(node);\n }\n }\n };\n\n /**\n * Mixin the given `node` to the current block.\n *\n * @param {Node} node\n * @api private\n */\n\n mixinNode(node) {\n node = this.visit(node.first);\n switch (node.nodeName) {\n case 'object':\n this.mixinObject(node);\n return nodes.null;\n case 'block':\n case 'atblock':\n this.mixin(node.nodes, this.currentBlock);\n return nodes.null;\n }\n };\n\n /**\n * Mixin the given `object` to the current block.\n *\n * @param {Object} object\n * @api private\n */\n\n mixinObject(object) {\n var Parser = require('../parser')\n , root = this.root\n , str = '$block ' + object.toBlock()\n , parser = new Parser(str, utils.merge({ root: block }, this.options))\n , block;\n\n try {\n block = parser.parse();\n } catch (err) {\n err.filename = this.filename;\n err.lineno = parser.lexer.lineno;\n err.column = parser.lexer.column;\n err.input = str;\n throw err;\n }\n\n block.parent = root;\n block.scope = false;\n var ret = this.visit(block)\n , vals = ret.first.nodes;\n for (var i = 0, len = vals.length; i < len; ++i) {\n if (vals[i].block) {\n this.mixin(vals[i].block.nodes, this.currentBlock);\n break;\n }\n }\n };\n\n /**\n * Evaluate the given `vals`.\n *\n * @param {Array} vals\n * @return {Node}\n * @api private\n */\n\n eval(vals) {\n if (!vals) return nodes.null;\n var len = vals.length\n , node = nodes.null;\n\n try {\n for (var i = 0; i < len; ++i) {\n node = vals[i];\n switch (node.nodeName) {\n case 'if':\n if ('block' != node.block.nodeName) {\n node = this.visit(node);\n break;\n }\n case 'each':\n case 'block':\n node = this.visit(node);\n if (node.nodes) node = this.eval(node.nodes);\n break;\n default:\n node = this.visit(node);\n }\n }\n } catch (err) {\n if ('return' == err.nodeName) {\n return err.expr;\n } else {\n throw err;\n }\n }\n\n return node;\n };\n\n /**\n * Literal function `call`.\n *\n * @param {Call} call\n * @return {call}\n * @api private\n */\n\n literalCall(call) {\n call.args = this.visit(call.args);\n return call;\n };\n\n /**\n * Lookup property `name`.\n *\n * @param {String} name\n * @return {Property}\n * @api private\n */\n\n lookupProperty(name) {\n var i = this.stack.length\n , index = this.currentBlock.index\n , top = i\n , nodes\n , block\n , len\n , other;\n\n while (i--) {\n block = this.stack[i].block;\n if (!block.node) continue;\n switch (block.node.nodeName) {\n case 'group':\n case 'function':\n case 'if':\n case 'each':\n case 'atrule':\n case 'media':\n case 'atblock':\n case 'call':\n nodes = block.nodes;\n // scan siblings from the property index up\n if (i + 1 == top) {\n while (index--) {\n // ignore current property\n if (this.property == nodes[index]) continue;\n other = this.interpolate(nodes[index]);\n if (name == other) return nodes[index].clone();\n }\n // sequential lookup for non-siblings (for now)\n } else {\n len = nodes.length;\n while (len--) {\n if ('property' != nodes[len].nodeName\n || this.property == nodes[len]) continue;\n other = this.interpolate(nodes[len]);\n if (name == other) return nodes[len].clone();\n }\n }\n break;\n }\n }\n\n return nodes.null;\n };\n\n /**\n * Return the closest mixin-able `Block`.\n *\n * @return {Block}\n * @api private\n */\n\n get closestBlock() {\n var i = this.stack.length\n , block;\n while (i--) {\n block = this.stack[i].block;\n if (block.node) {\n switch (block.node.nodeName) {\n case 'group':\n case 'keyframes':\n case 'atrule':\n case 'atblock':\n case 'media':\n case 'call':\n return block;\n }\n }\n }\n };\n\n /**\n * Return the closest group block.\n *\n * @return {Block}\n * @api private\n */\n\n get closestGroup() {\n var i = this.stack.length\n , block;\n while (i--) {\n block = this.stack[i].block;\n if (block.node && 'group' == block.node.nodeName) {\n return block;\n }\n }\n };\n\n /**\n * Return the current selectors stack.\n *\n * @return {Array}\n * @api private\n */\n\n get selectorStack() {\n var block\n , stack = [];\n for (var i = 0, len = this.stack.length; i < len; ++i) {\n block = this.stack[i].block;\n if (block.node && 'group' == block.node.nodeName) {\n block.node.nodes.forEach(function (selector) {\n if (!selector.val) selector.val = this.interpolate(selector);\n }, this);\n stack.push(block.node.nodes);\n }\n }\n return stack;\n };\n\n /**\n * Lookup `name`, with support for JavaScript\n * functions, and BIFs.\n *\n * @param {String} name\n * @return {Node}\n * @api private\n */\n\n lookup(name) {\n var val;\n if (this.ignoreColors && name in colors) return;\n if (val = this.stack.lookup(name)) {\n return utils.unwrap(val);\n } else {\n return this.lookupFunction(name);\n }\n };\n\n /**\n * Map segments in `node` returning a string.\n *\n * @param {Node} node\n * @return {String}\n * @api private\n */\n\n interpolate(node) {\n var self = this\n , isSelector = ('selector' == node.nodeName);\n function toString(node) {\n switch (node.nodeName) {\n case 'function':\n case 'ident':\n return node.name;\n case 'literal':\n case 'string':\n if (self.prefix && !node.prefixed && !node.val.nodeName) {\n node.val = node.val.replace(/\\.(?=[\\w-])|^\\.$/g, '.' + self.prefix);\n node.prefixed = true;\n }\n return node.val;\n case 'unit':\n // Interpolation inside keyframes\n return '%' == node.type ? node.val + '%' : node.val;\n case 'member':\n return toString(self.visit(node));\n case 'expression':\n // Prevent cyclic `selector()` calls.\n if (self.calling && ~self.calling.indexOf('selector') && self._selector) return self._selector;\n self.return++;\n var ret = toString(self.visit(node).first);\n self.return--;\n if (isSelector) self._selector = ret;\n return ret;\n }\n }\n\n if (node.segments) {\n return node.segments.map(toString).join('');\n } else {\n return toString(node);\n }\n };\n\n /**\n * Lookup JavaScript user-defined or built-in function.\n *\n * @param {String} name\n * @return {Function}\n * @api private\n */\n\n lookupFunction(name) {\n var fn = this.functions[name] || bifs[name];\n if (fn) return new nodes.Function(name, fn);\n };\n\n /**\n * Check if the given `node` is an ident, and if it is defined.\n *\n * @param {Node} node\n * @return {Boolean}\n * @api private\n */\n\n isDefined(node) {\n if ('ident' == node.nodeName) {\n return new nodes.Boolean(this.lookup(node.name));\n } else {\n throw new Error('invalid \"is defined\" check on non-variable ' + node);\n }\n };\n\n /**\n * Return `Expression` based on the given `prop`,\n * replacing cyclic calls to the given function `name`\n * with \"__CALL__\".\n *\n * @param {Property} prop\n * @param {String} name\n * @return {Expression}\n * @api private\n */\n\n propertyExpression(prop, name) {\n var expr = new nodes.Expression\n , val = prop.expr.clone();\n\n // name\n expr.push(new nodes.String(prop.name));\n\n // replace cyclic call with __CALL__\n function replace(node) {\n if ('call' == node.nodeName && name == node.name) {\n return new nodes.Literal('__CALL__');\n }\n\n if (node.nodes) node.nodes = node.nodes.map(replace);\n return node;\n }\n\n replace(val);\n expr.push(val);\n return expr;\n };\n\n /**\n * Cast `expr` to the trailing ident.\n *\n * @param {Expression} expr\n * @return {Unit}\n * @api private\n */\n\n cast(expr) {\n return new nodes.Unit(expr.first.val, expr.nodes[1].name);\n };\n\n /**\n * Check if `expr` is castable.\n *\n * @param {Expression} expr\n * @return {Boolean}\n * @api private\n */\n\n castable(expr) {\n return 2 == expr.nodes.length\n && 'unit' == expr.first.nodeName\n && ~units.indexOf(expr.nodes[1].name);\n };\n\n /**\n * Warn with the given `msg`.\n *\n * @param {String} msg\n * @api private\n */\n\n warn(msg) {\n if (!this.warnings) return;\n console.warn('\\u001b[33mWarning:\\u001b[0m ' + msg);\n };\n\n /**\n * Return the current `Block`.\n *\n * @return {Block}\n * @api private\n */\n\n get currentBlock() {\n return this.stack.currentFrame.block;\n };\n\n /**\n * Return an array of vendor names.\n *\n * @return {Array}\n * @api private\n */\n\n get vendors() {\n return this.lookup('vendors').nodes.map(function (node) {\n return node.string;\n });\n };\n\n /**\n * Return the property name without vendor prefix.\n *\n * @param {String} prop\n * @return {String}\n * @api public\n */\n\n unvendorize(prop) {\n for (var i = 0, len = this.vendors.length; i < len; i++) {\n if ('official' != this.vendors[i]) {\n var vendor = '-' + this.vendors[i] + '-';\n if (~prop.indexOf(vendor)) return prop.replace(vendor, '');\n }\n }\n return prop;\n };\n\n /**\n * Return the current frame `Scope`.\n *\n * @return {Scope}\n * @api private\n */\n\n get currentScope() {\n return this.stack.currentFrame.scope;\n };\n\n /**\n * Return the current `Frame`.\n *\n * @return {Frame}\n * @api private\n */\n\n get currentFrame() {\n return this.stack.currentFrame;\n };\n};\n","\n/*!\n * Stylus - Node\n * Copyright (c) Automattic \n * MIT Licensed\n */\n\n/**\n * Module dependencies.\n */\n\nvar Evaluator = require('../visitor/evaluator')\n , utils = require('../utils')\n , nodes = require('./');\n\nclass CoercionError extends Error {\n /**\n * Initialize a new `CoercionError` with the given `msg`.\n *\n * @param {String} msg\n * @api private\n */\n\n constructor(msg) {\n super();\n this.name = 'CoercionError'\n this.message = msg\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, CoercionError);\n }\n }\n}\n\n\n\nmodule.exports = class Node {\n /**\n * Node constructor.\n *\n * @api public\n */\n\n constructor() {\n this.lineno = nodes.lineno || 1;\n this.column = nodes.column || 1;\n this.filename = nodes.filename;\n }\n\n /**\n * Return this node.\n *\n * @return {Node}\n * @api public\n */\n\n get first() {\n return this;\n }\n\n /**\n * Return hash.\n *\n * @return {String}\n * @api public\n */\n\n get hash() {\n return this.val;\n }\n\n /**\n * Return node name.\n *\n * @return {String}\n * @api public\n */\n\n get nodeName() {\n return this.constructor.name.toLowerCase();\n }\n\n /**\n * Return this node.\n * \n * @return {Node}\n * @api public\n */\n\n clone() {\n return this;\n }\n\n /**\n * Return a JSON representation of this node.\n *\n * @return {Object}\n * @api public\n */\n\n toJSON() {\n return {\n lineno: this.lineno,\n column: this.column,\n filename: this.filename\n };\n }\n\n /**\n * Nodes by default evaluate to themselves.\n *\n * @return {Node}\n * @api public\n */\n\n eval() {\n return new Evaluator(this).evaluate();\n }\n\n /**\n * Return true.\n *\n * @return {Boolean}\n * @api public\n */\n\n toBoolean() {\n return nodes.true;\n }\n\n /**\n * Return the expression, or wrap this node in an expression.\n *\n * @return {Expression}\n * @api public\n */\n\n toExpression() {\n if ('expression' == this.nodeName) return this;\n var expr = new nodes.Expression;\n expr.push(this);\n return expr;\n }\n\n /**\n * Return false if `op` is generally not coerced.\n *\n * @param {String} op\n * @return {Boolean}\n * @api private\n */\n\n shouldCoerce(op) {\n switch (op) {\n case 'is a':\n case 'in':\n case '||':\n case '&&':\n return false;\n default:\n return true;\n }\n }\n\n /**\n * Operate on `right` with the given `op`.\n *\n * @param {String} op\n * @param {Node} right\n * @return {Node}\n * @api public\n */\n\n operate(op, right) {\n switch (op) {\n case 'is a':\n if ('string' == right.first.nodeName) {\n return new nodes.Boolean(this.nodeName == right.val);\n } else {\n throw new Error('\"is a\" expects a string, got ' + right.toString());\n }\n case '==':\n return new nodes.Boolean(this.hash == right.hash);\n case '!=':\n return new nodes.Boolean(this.hash != right.hash);\n case '>=':\n return new nodes.Boolean(this.hash >= right.hash);\n case '<=':\n return new nodes.Boolean(this.hash <= right.hash);\n case '>':\n return new nodes.Boolean(this.hash > right.hash);\n case '<':\n return new nodes.Boolean(this.hash < right.hash);\n case '||':\n return this.toBoolean().isTrue\n ? this\n : right;\n case 'in':\n var vals = utils.unwrap(right).nodes\n , len = vals && vals.length\n , hash = this.hash;\n if (!vals) throw new Error('\"in\" given invalid right-hand operand, expecting an expression');\n\n // 'prop' in obj\n if (1 == len && 'object' == vals[0].nodeName) {\n return new nodes.Boolean(vals[0].has(this.hash));\n }\n\n for (var i = 0; i < len; ++i) {\n if (hash == vals[i].hash) {\n return nodes.true;\n }\n }\n return nodes.false;\n case '&&':\n var a = this.toBoolean()\n , b = right.toBoolean();\n return a.isTrue && b.isTrue\n ? right\n : a.isFalse\n ? this\n : right;\n default:\n if ('[]' == op) {\n var msg = 'cannot perform '\n + this\n + '[' + right + ']';\n } else {\n var msg = 'cannot perform'\n + ' ' + this\n + ' ' + op\n + ' ' + right;\n }\n throw new Error(msg);\n }\n }\n\n /**\n * Default coercion throws.\n *\n * @param {Node} other\n * @return {Node}\n * @api public\n */\n\n coerce(other) {\n if (other.nodeName == this.nodeName) return other;\n throw new CoercionError('cannot coerce ' + other + ' to ' + this.nodeName);\n }\n};\n\n","\n/*!\n * Stylus - Unit\n * Copyright (c) Automattic \n * MIT Licensed\n */\n\n/**\n * Module dependencies.\n */\n\nvar Node = require('./node')\n , nodes = require('./');\n\n/**\n * Unit conversion table.\n */\n\nvar FACTOR_TABLE = {\n 'mm': { val: 1, label: 'mm' },\n 'cm': { val: 10, label: 'mm' },\n 'in': { val: 25.4, label: 'mm' },\n 'pt': { val: 25.4 / 72, label: 'mm' },\n 'ms': { val: 1, label: 'ms' },\n 's': { val: 1000, label: 'ms' },\n 'Hz': { val: 1, label: 'Hz' },\n 'kHz': { val: 1000, label: 'Hz' }\n};\n\nmodule.exports = class Unit extends Node {\n /**\n * Initialize a new `Unit` with the given `val` and unit `type`\n * such as \"px\", \"pt\", \"in\", etc.\n *\n * @param {String} val\n * @param {String} type\n * @api public\n */\n\n constructor(val, type) {\n super();\n this.val = val;\n this.type = type;\n }\n\n /**\n * Return Boolean based on the unit value.\n *\n * @return {Boolean}\n * @api public\n */\n\n toBoolean() {\n return new nodes.Boolean(this.type\n ? true\n : this.val);\n };\n\n /**\n * Return unit string.\n *\n * @return {String}\n * @api public\n */\n\n toString() {\n return this.val + (this.type || '');\n };\n\n /**\n * Return a clone of this node.\n *\n * @return {Node}\n * @api public\n */\n\n clone() {\n var clone = new Unit(this.val, this.type);\n clone.lineno = this.lineno;\n clone.column = this.column;\n clone.filename = this.filename;\n return clone;\n };\n\n /**\n * Return a JSON representation of this node.\n *\n * @return {Object}\n * @api public\n */\n\n toJSON() {\n return {\n __type: 'Unit',\n val: this.val,\n type: this.type,\n lineno: this.lineno,\n column: this.column,\n filename: this.filename\n };\n };\n\n /**\n * Operate on `right` with the given `op`.\n *\n * @param {String} op\n * @param {Node} right\n * @return {Node}\n * @api public\n */\n\n operate(op, right) {\n var type = this.type || right.first.type;\n\n // swap color\n if ('rgba' == right.nodeName || 'hsla' == right.nodeName) {\n return right.operate(op, this);\n }\n\n // operate\n if (this.shouldCoerce(op)) {\n right = right.first;\n // percentages\n if ('%' != this.type && ('-' == op || '+' == op) && '%' == right.type) {\n right = new Unit(this.val * (right.val / 100), '%');\n } else {\n right = this.coerce(right);\n }\n\n switch (op) {\n case '-':\n return new Unit(this.val - right.val, type);\n case '+':\n // keyframes interpolation\n type = type || (right.type == '%' && right.type);\n return new Unit(this.val + right.val, type);\n case '/':\n return new Unit(this.val / right.val, type);\n case '*':\n return new Unit(this.val * right.val, type);\n case '%':\n return new Unit(this.val % right.val, type);\n case '**':\n return new Unit(Math.pow(this.val, right.val), type);\n case '..':\n case '...':\n var start = this.val\n , end = right.val\n , expr = new nodes.Expression\n , inclusive = '..' == op;\n if (start < end) {\n do {\n expr.push(new nodes.Unit(start));\n } while (inclusive ? ++start <= end : ++start < end);\n } else {\n do {\n expr.push(new nodes.Unit(start));\n } while (inclusive ? --start >= end : --start > end);\n }\n return expr;\n }\n }\n\n return super.operate(op, right);\n };\n\n /**\n * Coerce `other` unit to the same type as `this` unit.\n *\n * Supports:\n *\n * mm -> cm | in\n * cm -> mm | in\n * in -> mm | cm\n *\n * ms -> s\n * s -> ms\n *\n * Hz -> kHz\n * kHz -> Hz\n *\n * @param {Unit} other\n * @return {Unit}\n * @api public\n */\n\n coerce(other) {\n if ('unit' == other.nodeName) {\n var a = this\n , b = other\n , factorA = FACTOR_TABLE[a.type]\n , factorB = FACTOR_TABLE[b.type];\n\n if (factorA && factorB && (factorA.label == factorB.label)) {\n var bVal = b.val * (factorB.val / factorA.val);\n return new nodes.Unit(bVal, a.type);\n } else {\n return new nodes.Unit(b.val, a.type);\n }\n } else if ('string' == other.nodeName) {\n // keyframes interpolation\n if ('%' == other.val) return new nodes.Unit(0, '%');\n var val = parseFloat(other.val);\n if (isNaN(val)) super.coerce(other);\n return new nodes.Unit(val);\n } else {\n return super.coerce(other);\n }\n };\n};\n","/*!\n * Stylus - String\n * Copyright (c) Automattic \n * MIT Licensed\n */\n\n/**\n * Module dependencies.\n */\n\nvar Node = require('./node')\n , sprintf = require('../functions').s\n , utils = require('../utils')\n , nodes = require('./');\n\nmodule.exports = class String extends Node {\n /**\n * Initialize a new `String` with the given `val`.\n *\n * @param {String} val\n * @param {String} quote\n * @api public\n */\n\n constructor(val, quote) {\n super();\n this.val = val;\n this.string = val;\n this.prefixed = false;\n if (typeof quote !== 'string') {\n this.quote = \"'\";\n } else {\n this.quote = quote;\n }\n }\n\n /**\n * Return quoted string.\n *\n * @return {String}\n * @api public\n */\n\n toString() {\n return this.quote + this.val + this.quote;\n };\n\n /**\n * Return a clone of this node.\n * \n * @return {Node}\n * @api public\n */\n\n clone() {\n var clone = new String(this.val, this.quote);\n clone.lineno = this.lineno;\n clone.column = this.column;\n clone.filename = this.filename;\n return clone;\n };\n\n /**\n * Return a JSON representation of this node.\n *\n * @return {Object}\n * @api public\n */\n\n toJSON() {\n return {\n __type: 'String',\n val: this.val,\n quote: this.quote,\n lineno: this.lineno,\n column: this.column,\n filename: this.filename\n };\n };\n\n /**\n * Return Boolean based on the length of this string.\n *\n * @return {Boolean}\n * @api public\n */\n\n toBoolean() {\n return new nodes.Boolean(this.val.length);\n };\n\n /**\n * Coerce `other` to a string.\n *\n * @param {Node} other\n * @return {String}\n * @api public\n */\n\n coerce(other) {\n switch (other.nodeName) {\n case 'string':\n return other;\n case 'expression':\n return new String(other.nodes.map(function (node) {\n return this.coerce(node).val;\n }, this).join(' '));\n default:\n return new String(other.toString());\n }\n };\n\n /**\n * Operate on `right` with the given `op`.\n *\n * @param {String} op\n * @param {Node} right\n * @return {Node}\n * @api public\n */\n\n operate(op, right) {\n switch (op) {\n case '%':\n var expr = new nodes.Expression;\n expr.push(this);\n\n // constructargs\n var args = 'expression' == right.nodeName\n ? utils.unwrap(right).nodes\n : [right];\n\n // apply\n return sprintf.apply(null, [expr].concat(args));\n case '+':\n var expr = new nodes.Expression;\n expr.push(new String(this.val + this.coerce(right).val));\n return expr;\n default:\n return super.operate(op, right);\n }\n };\n\n};\n","\n/*!\n * Stylus - HSLA\n * Copyright (c) Automattic \n * MIT Licensed\n */\n\n/**\n * Module dependencies.\n */\n\nvar Node = require('./node')\n , nodes = require('./');\n\n/**\n * Initialize a new `HSLA` with the given h,s,l,a component values.\n *\n * @param {Number} h\n * @param {Number} s\n * @param {Number} l\n * @param {Number} a\n * @api public\n */\n\nexports = module.exports = class HSLA extends Node {\n constructor(h, s, l, a) {\n super();\n this.h = clampDegrees(h);\n this.s = clampPercentage(s);\n this.l = clampPercentage(l);\n this.a = clampAlpha(a);\n this.hsla = this;\n }\n\n /**\n * Return hsla(n,n,n,n).\n *\n * @return {String}\n * @api public\n */\n\n toString() {\n return 'hsla('\n + this.h + ','\n + this.s.toFixed(0) + '%,'\n + this.l.toFixed(0) + '%,'\n + this.a + ')';\n };\n\n /**\n * Return a clone of this node.\n * \n * @return {Node}\n * @api public\n */\n\n clone(parent) {\n var clone = new HSLA(\n this.h\n , this.s\n , this.l\n , this.a);\n clone.lineno = this.lineno;\n clone.column = this.column;\n clone.filename = this.filename;\n return clone;\n };\n\n /**\n * Return a JSON representation of this node.\n *\n * @return {Object}\n * @api public\n */\n\n toJSON() {\n return {\n __type: 'HSLA',\n h: this.h,\n s: this.s,\n l: this.l,\n a: this.a,\n lineno: this.lineno,\n column: this.column,\n filename: this.filename\n };\n };\n\n /**\n * Return rgba `RGBA` representation.\n *\n * @return {RGBA}\n * @api public\n */\n\n get rgba() {\n return nodes.RGBA.fromHSLA(this);\n };\n\n /**\n * Return hash.\n *\n * @return {String}\n * @api public\n */\n\n get hash() {\n return this.rgba.toString();\n };\n\n /**\n * Add h,s,l to the current component values.\n *\n * @param {Number} h\n * @param {Number} s\n * @param {Number} l\n * @return {HSLA} new node\n * @api public\n */\n\n add(h, s, l) {\n return new HSLA(\n this.h + h\n , this.s + s\n , this.l + l\n , this.a);\n };\n\n /**\n * Subtract h,s,l from the current component values.\n *\n * @param {Number} h\n * @param {Number} s\n * @param {Number} l\n * @return {HSLA} new node\n * @api public\n */\n\n sub(h, s, l) {\n return this.add(-h, -s, -l);\n };\n\n /**\n * Operate on `right` with the given `op`.\n *\n * @param {String} op\n * @param {Node} right\n * @return {Node}\n * @api public\n */\n\n operate(op, right) {\n switch (op) {\n case '==':\n case '!=':\n case '<=':\n case '>=':\n case '<':\n case '>':\n case 'is a':\n case '||':\n case '&&':\n return this.rgba.operate(op, right);\n default:\n return this.rgba.operate(op, right).hsla;\n }\n };\n\n\n /**\n * Adjust lightness by `percent`.\n *\n * @param {Number} percent\n * @return {HSLA} for chaining\n * @api public\n */\n\n adjustLightness(percent) {\n this.l = clampPercentage(this.l + this.l * (percent / 100));\n return this;\n };\n\n /**\n * Adjust hue by `deg`.\n *\n * @param {Number} deg\n * @return {HSLA} for chaining\n * @api public\n */\n\n adjustHue(deg) {\n this.h = clampDegrees(this.h + deg);\n return this;\n };\n\n\n /**\n * Return `HSLA` representation of the given `color`.\n *\n * @param {RGBA} color\n * @return {HSLA}\n * @api public\n */\n\n static fromRGBA(rgba) {\n var r = rgba.r / 255\n , g = rgba.g / 255\n , b = rgba.b / 255\n , a = rgba.a;\n\n var min = Math.min(r, g, b)\n , max = Math.max(r, g, b)\n , l = (max + min) / 2\n , d = max - min\n , h, s;\n\n switch (max) {\n case min: h = 0; break;\n case r: h = 60 * (g - b) / d; break;\n case g: h = 60 * (b - r) / d + 120; break;\n case b: h = 60 * (r - g) / d + 240; break;\n }\n\n if (max == min) {\n s = 0;\n } else if (l < .5) {\n s = d / (2 * l);\n } else {\n s = d / (2 - 2 * l);\n }\n\n h %= 360;\n s *= 100;\n l *= 100;\n\n return new HSLA(h, s, l, a);\n };\n};\n\n/**\n * Clamp degree `n` >= 0 and <= 360.\n *\n * @param {Number} n\n * @return {Number}\n * @api private\n */\n\nfunction clampDegrees(n) {\n n = n % 360;\n return n >= 0 ? n : 360 + n;\n}\n\n/**\n * Clamp percentage `n` >= 0 and <= 100.\n *\n * @param {Number} n\n * @return {Number}\n * @api private\n */\n\nfunction clampPercentage(n) {\n return Math.max(0, Math.min(n, 100));\n}\n\n/**\n * Clamp alpha `n` >= 0 and <= 1.\n *\n * @param {Number} n\n * @return {Number}\n * @api private\n */\n\nfunction clampAlpha(n) {\n return Math.max(0, Math.min(n, 1));\n}\n","\n/*!\n * Stylus - RGBA\n * Copyright (c) Automattic \n * MIT Licensed\n */\n\n/**\n * Module dependencies.\n */\n\nvar Node = require('./node')\n , HSLA = require('./hsla')\n , functions = require('../functions')\n , adjust = functions.adjust\n , nodes = require('./');\n\nexports = module.exports = class RGBA extends Node {\n /**\n * Initialize a new `RGBA` with the given r,g,b,a component values.\n *\n * @param {Number} r\n * @param {Number} g\n * @param {Number} b\n * @param {Number} a\n * @api public\n */\n\n constructor(r, g, b, a) {\n super();\n this.r = clamp(r);\n this.g = clamp(g);\n this.b = clamp(b);\n this.a = clampAlpha(a);\n this.name = '';\n this.rgba = this;\n }\n\n /**\n * Return an `RGBA` without clamping values.\n * \n * @param {Number} r\n * @param {Number} g\n * @param {Number} b\n * @param {Number} a\n * @return {RGBA}\n * @api public\n */\n\n static withoutClamping(r, g, b, a) {\n var rgba = new RGBA(0, 0, 0, 0);\n rgba.r = r;\n rgba.g = g;\n rgba.b = b;\n rgba.a = a;\n return rgba;\n };\n\n /**\n * Return a clone of this node.\n * \n * @return {Node}\n * @api public\n */\n\n clone() {\n var clone = new RGBA(\n this.r\n , this.g\n , this.b\n , this.a);\n clone.raw = this.raw;\n clone.name = this.name;\n clone.lineno = this.lineno;\n clone.column = this.column;\n clone.filename = this.filename;\n return clone;\n };\n\n /**\n * Return a JSON representation of this node.\n *\n * @return {Object}\n * @api public\n */\n\n toJSON() {\n return {\n __type: 'RGBA',\n r: this.r,\n g: this.g,\n b: this.b,\n a: this.a,\n raw: this.raw,\n name: this.name,\n lineno: this.lineno,\n column: this.column,\n filename: this.filename\n };\n };\n\n /**\n * Return true.\n *\n * @return {Boolean}\n * @api public\n */\n\n toBoolean() {\n return nodes.true;\n };\n\n /**\n * Return `HSLA` representation.\n *\n * @return {HSLA}\n * @api public\n */\n\n get hsla() {\n return HSLA.fromRGBA(this);\n };\n\n /**\n * Return hash.\n *\n * @return {String}\n * @api public\n */\n\n get hash() {\n return this.toString();\n };\n\n /**\n * Add r,g,b,a to the current component values.\n *\n * @param {Number} r\n * @param {Number} g\n * @param {Number} b\n * @param {Number} a\n * @return {RGBA} new node\n * @api public\n */\n\n add(r, g, b, a) {\n return new RGBA(\n this.r + r\n , this.g + g\n , this.b + b\n , this.a + a);\n };\n\n /**\n * Subtract r,g,b,a from the current component values.\n *\n * @param {Number} r\n * @param {Number} g\n * @param {Number} b\n * @param {Number} a\n * @return {RGBA} new node\n * @api public\n */\n\n sub(r, g, b, a) {\n return new RGBA(\n this.r - r\n , this.g - g\n , this.b - b\n , a == 1 ? this.a : this.a - a);\n };\n\n /**\n * Multiply rgb components by `n`.\n *\n * @param {String} n\n * @return {RGBA} new node\n * @api public\n */\n\n multiply(n) {\n return new RGBA(\n this.r * n\n , this.g * n\n , this.b * n\n , this.a);\n };\n\n /**\n * Divide rgb components by `n`.\n *\n * @param {String} n\n * @return {RGBA} new node\n * @api public\n */\n\n divide(n) {\n return new RGBA(\n this.r / n\n , this.g / n\n , this.b / n\n , this.a);\n };\n\n /**\n * Operate on `right` with the given `op`.\n *\n * @param {String} op\n * @param {Node} right\n * @return {Node}\n * @api public\n */\n\n operate(op, right) {\n if ('in' != op) right = right.first\n\n switch (op) {\n case 'is a':\n if ('string' == right.nodeName && 'color' == right.string) {\n return nodes.true;\n }\n break;\n case '+':\n switch (right.nodeName) {\n case 'unit':\n var n = right.val;\n switch (right.type) {\n case '%': return adjust(this, new nodes.String('lightness'), right);\n case 'deg': return this.hsla.adjustHue(n).rgba;\n default: return this.add(n, n, n, 0);\n }\n case 'rgba':\n return this.add(right.r, right.g, right.b, right.a);\n case 'hsla':\n return this.hsla.add(right.h, right.s, right.l);\n }\n break;\n case '-':\n switch (right.nodeName) {\n case 'unit':\n var n = right.val;\n switch (right.type) {\n case '%': return adjust(this, new nodes.String('lightness'), new nodes.Unit(-n, '%'));\n case 'deg': return this.hsla.adjustHue(-n).rgba;\n default: return this.sub(n, n, n, 0);\n }\n case 'rgba':\n return this.sub(right.r, right.g, right.b, right.a);\n case 'hsla':\n return this.hsla.sub(right.h, right.s, right.l);\n }\n break;\n case '*':\n switch (right.nodeName) {\n case 'unit':\n return this.multiply(right.val);\n }\n break;\n case '/':\n switch (right.nodeName) {\n case 'unit':\n return this.divide(right.val);\n }\n break;\n }\n return super.operate(op, right);\n };\n\n /**\n * Return #nnnnnn, #nnn, or rgba(n,n,n,n) string representation of the color.\n *\n * @return {String}\n * @api public\n */\n\n toString() {\n function pad(n) {\n return n < 16\n ? '0' + n.toString(16)\n : n.toString(16);\n }\n\n // special case for transparent named color\n if ('transparent' == this.name)\n return this.name;\n\n if (1 == this.a) {\n var r = pad(this.r)\n , g = pad(this.g)\n , b = pad(this.b);\n\n // Compress\n if (r[0] == r[1] && g[0] == g[1] && b[0] == b[1]) {\n return '#' + r[0] + g[0] + b[0];\n } else {\n return '#' + r + g + b;\n }\n } else {\n return 'rgba('\n + this.r + ','\n + this.g + ','\n + this.b + ','\n + (+this.a.toFixed(3)) + ')';\n }\n };\n\n /**\n * Return a `RGBA` from the given `hsla`.\n *\n * @param {HSLA} hsla\n * @return {RGBA}\n * @api public\n */\n\n static fromHSLA(hsla) {\n var h = hsla.h / 360\n , s = hsla.s / 100\n , l = hsla.l / 100\n , a = hsla.a;\n\n var m2 = l <= .5 ? l * (s + 1) : l + s - l * s\n , m1 = l * 2 - m2;\n\n var r = hue(h + 1 / 3) * 0xff\n , g = hue(h) * 0xff\n , b = hue(h - 1 / 3) * 0xff;\n\n function hue(h) {\n if (h < 0) ++h;\n if (h > 1) --h;\n if (h * 6 < 1) return m1 + (m2 - m1) * h * 6;\n if (h * 2 < 1) return m2;\n if (h * 3 < 2) return m1 + (m2 - m1) * (2 / 3 - h) * 6;\n return m1;\n }\n\n\n return new RGBA(r, g, b, a);\n };\n};\n\n/**\n * Clamp `n` >= 0 and <= 255.\n *\n * @param {Number} n\n * @return {Number}\n * @api private\n */\n\nfunction clamp(n) {\n return Math.max(0, Math.min(n.toFixed(0), 255));\n}\n\n/**\n * Clamp alpha `n` >= 0 and <= 1.\n *\n * @param {Number} n\n * @return {Number}\n * @api private\n */\n\nfunction clampAlpha(n) {\n return Math.max(0, Math.min(n, 1));\n}\n","\n/*!\n * Stylus - Ident\n * Copyright (c) Automattic \n * MIT Licensed\n */\n\n/**\n * Module dependencies.\n */\n\nvar Node = require('./node')\n , nodes = require('./');\n\nmodule.exports = class Ident extends Node {\n /**\n * Initialize a new `Ident` by `name` with the given `val` node.\n *\n * @param {String} name\n * @param {Node} val\n * @api public\n */\n\n constructor(name, val, mixin) {\n super();\n this.name = name;\n this.string = name;\n this.val = val || nodes.null;\n this.mixin = !!mixin;\n }\n\n /**\n * Check if the variable has a value.\n *\n * @return {Boolean}\n * @api public\n */\n\n get isEmpty() {\n return undefined == this.val;\n };\n\n /**\n * Return hash.\n *\n * @return {String}\n * @api public\n */\n\n get hash() {\n return this.name;\n };\n\n /**\n * Return a clone of this node.\n * \n * @return {Node}\n * @api public\n */\n\n clone(parent) {\n var clone = new Ident(this.name);\n clone.val = this.val.clone(parent, clone);\n clone.mixin = this.mixin;\n clone.lineno = this.lineno;\n clone.column = this.column;\n clone.filename = this.filename;\n clone.property = this.property;\n clone.rest = this.rest;\n return clone;\n };\n\n /**\n * Return a JSON representation of this node.\n *\n * @return {Object}\n * @api public\n */\n\n toJSON() {\n return {\n __type: 'Ident',\n name: this.name,\n val: this.val,\n mixin: this.mixin,\n property: this.property,\n rest: this.rest,\n lineno: this.lineno,\n column: this.column,\n filename: this.filename\n };\n };\n\n /**\n * Return .\n *\n * @return {String}\n * @api public\n */\n\n toString() {\n return this.name;\n };\n\n /**\n * Coerce `other` to an ident.\n *\n * @param {Node} other\n * @return {String}\n * @api public\n */\n\n coerce(other) {\n switch (other.nodeName) {\n case 'ident':\n case 'string':\n case 'literal':\n return new Ident(other.string);\n case 'unit':\n return new Ident(other.toString());\n default:\n return super.coerce(other);\n }\n };\n\n /**\n * Operate on `right` with the given `op`.\n *\n * @param {String} op\n * @param {Node} right\n * @return {Node}\n * @api public\n */\n\n operate(op, right) {\n var val = right.first;\n switch (op) {\n case '-':\n if ('unit' == val.nodeName) {\n var expr = new nodes.Expression;\n val = val.clone();\n val.val = -val.val;\n expr.push(this);\n expr.push(val);\n return expr;\n }\n case '+':\n return new nodes.Ident(this.string + this.coerce(val).string);\n }\n return super.operate(op, right);\n };\n};\n","/*!\n * Stylus - at-rule\n * Copyright (c) Automattic \n * MIT Licensed\n */\n\n/**\n * Module dependencies.\n */\n\nvar Node = require('./node');\n\nmodule.exports = class Atrule extends Node {\n /**\n * Initialize a new at-rule node.\n *\n * @param {String} type\n * @api public\n */\n\n constructor(type) {\n super()\n this.type = type;\n }\n\n /**\n * Check if at-rule's block has only properties.\n *\n * @return {Boolean}\n * @api public\n */\n\n get hasOnlyProperties() {\n if (!this.block) return false;\n\n var nodes = this.block.nodes;\n for (var i = 0, len = nodes.length; i < len; ++i) {\n var nodeName = nodes[i].nodeName;\n switch (nodes[i].nodeName) {\n case 'property':\n case 'expression':\n case 'comment':\n continue;\n default:\n return false;\n }\n }\n return true;\n }\n\n /**\n * Return a clone of this node.\n *\n * @return {Node}\n * @api public\n */\n\n clone(parent) {\n var clone = new Atrule(this.type);\n if (this.block) clone.block = this.block.clone(parent, clone);\n clone.segments = this.segments.map(function (node) { return node.clone(parent, clone); });\n clone.lineno = this.lineno;\n clone.column = this.column;\n clone.filename = this.filename;\n return clone;\n };\n\n /**\n * Return a JSON representation of this node.\n *\n * @return {Object}\n * @api public\n */\n\n toJSON() {\n var json = {\n __type: 'Atrule',\n type: this.type,\n segments: this.segments,\n lineno: this.lineno,\n column: this.column,\n filename: this.filename\n };\n if (this.block) json.block = this.block;\n return json;\n };\n\n /**\n * Return @.\n *\n * @return {String}\n * @api public\n */\n\n toString() {\n return '@' + this.type;\n };\n\n /**\n * Check if the at-rule's block has output nodes.\n *\n * @return {Boolean}\n * @api public\n */\n\n get hasOutput() {\n return !!this.block && hasOutput(this.block);\n };\n};\n\nfunction hasOutput(block) {\n var nodes = block.nodes;\n\n // only placeholder selectors\n if (nodes.every(function (node) {\n return 'group' == node.nodeName && node.hasOnlyPlaceholders;\n })) return false;\n\n // something visible\n return nodes.some(function (node) {\n switch (node.nodeName) {\n case 'property':\n case 'literal':\n case 'import':\n return true;\n case 'block':\n return hasOutput(node);\n default:\n if (node.block) return hasOutput(node.block);\n }\n });\n}\n","\n/*!\n * Stylus - Media\n * Copyright (c) Automattic \n * MIT Licensed\n */\n\n/**\n * Module dependencies.\n */\n\nvar Atrule = require('./atrule');\n\nmodule.exports = class Media extends Atrule {\n /**\n * Initialize a new `Media` with the given `val`\n *\n * @param {String} val\n * @api public\n */\n\n constructor(val) {\n super('media');\n this.val = val;\n }\n\n /**\n * Clone this node.\n *\n * @return {Media}\n * @api public\n */\n\n clone(parent) {\n var clone = new Media;\n clone.val = this.val.clone(parent, clone);\n clone.block = this.block.clone(parent, clone);\n clone.lineno = this.lineno;\n clone.column = this.column;\n clone.filename = this.filename;\n return clone;\n };\n\n /**\n * Return a JSON representation of this node.\n *\n * @return {Object}\n * @api public\n */\n\n toJSON() {\n return {\n __type: 'Media',\n val: this.val,\n block: this.block,\n lineno: this.lineno,\n column: this.column,\n filename: this.filename\n };\n };\n\n /**\n * Return @media \"val\".\n *\n * @return {String}\n * @api public\n */\n\n toString() {\n return '@media ' + this.val;\n };\n};\n","\n/*!\n * Stylus - Object\n * Copyright (c) Automattic \n * MIT Licensed\n */\n\n/**\n * Module dependencies.\n */\n\nvar Node = require('./node')\n , nodes = require('./')\n , nativeObj = {}.constructor;\n\nmodule.exports = class Object extends Node {\n /**\n * Initialize a new `Object`.\n *\n * @api public\n */\n\n constructor() {\n super();\n this.vals = {};\n this.keys = {};\n }\n\n /**\n * Set `key` to `val`.\n *\n * @param {String} key\n * @param {Node} val\n * @return {Object} for chaining\n * @api public\n */\n\n setValue(key, val) {\n this.vals[key] = val;\n return this;\n };\n\n /**\n * Alias for `setValue` for compatible API\n */\n\n get set() {\n return this.setValue;\n }\n\n /**\n * Set `key` to `val`.\n *\n * @param {String} key\n * @param {Node} val\n * @return {Object} for chaining\n * @api public\n */\n\n setKey(key, val) {\n this.keys[key] = val;\n return this;\n };\n\n /**\n * Return length.\n *\n * @return {Number}\n * @api public\n */\n\n get length() {\n return nativeObj.keys(this.vals).length;\n };\n\n /**\n * Get `key`.\n *\n * @param {String} key\n * @return {Node}\n * @api public\n */\n\n get(key) {\n return this.vals[key] || nodes.null;\n };\n\n /**\n * Has `key`?\n *\n * @param {String} key\n * @return {Boolean}\n * @api public\n */\n\n has(key) {\n return key in this.vals;\n };\n\n /**\n * Operate on `right` with the given `op`.\n *\n * @param {String} op\n * @param {Node} right\n * @return {Node}\n * @api public\n */\n\n operate(op, right) {\n switch (op) {\n case '.':\n case '[]':\n return this.get(right.hash);\n case '==':\n var vals = this.vals\n , a\n , b;\n if ('object' != right.nodeName || this.length != right.length)\n return nodes.false;\n for (var key in vals) {\n a = vals[key];\n b = right.vals[key];\n if (a.operate(op, b).isFalse)\n return nodes.false;\n }\n return nodes.true;\n case '!=':\n return this.operate('==', right).negate();\n default:\n return super.operate(op, right);\n }\n };\n\n /**\n * Return Boolean based on the length of this object.\n *\n * @return {Boolean}\n * @api public\n */\n\n toBoolean() {\n return new nodes.Boolean(this.length);\n };\n\n /**\n * Convert object to string with properties.\n *\n * @return {String}\n * @api private\n */\n\n toBlock() {\n var str = '{'\n , key\n , val;\n\n for (key in this.vals) {\n val = this.get(key);\n if ('object' == val.first.nodeName) {\n str += key + ' ' + val.first.toBlock();\n } else {\n switch (key) {\n case '@charset':\n str += key + ' ' + val.first.toString() + ';';\n break;\n default:\n str += key + ':' + toString(val) + ';';\n }\n }\n }\n\n str += '}';\n\n return str;\n\n function toString(node) {\n if (node.nodes) {\n return node.nodes.map(toString).join(node.isList ? ',' : ' ');\n } else if ('literal' == node.nodeName && ',' == node.val) {\n return '\\\\,';\n }\n return node.toString();\n }\n };\n\n /**\n * Return a clone of this node.\n *\n * @return {Node}\n * @api public\n */\n\n clone(parent) {\n var clone = new Object;\n clone.lineno = this.lineno;\n clone.column = this.column;\n clone.filename = this.filename;\n\n var key;\n for (key in this.vals) {\n clone.vals[key] = this.vals[key].clone(parent, clone);\n }\n\n for (key in this.keys) {\n clone.keys[key] = this.keys[key].clone(parent, clone);\n }\n\n return clone;\n };\n\n /**\n * Return a JSON representation of this node.\n *\n * @return {Object}\n * @api public\n */\n\n toJSON() {\n return {\n __type: 'Object',\n vals: this.vals,\n keys: this.keys,\n lineno: this.lineno,\n column: this.column,\n filename: this.filename\n };\n };\n\n /**\n * Return \"{ : }\"\n *\n * @return {String}\n * @api public\n */\n\n toString() {\n var obj = {};\n for (var prop in this.vals) {\n obj[prop] = this.vals[prop].toString();\n }\n return JSON.stringify(obj);\n };\n\n};\n","\n/*!\n * Stylus - Expression\n * Copyright (c) Automattic \n * MIT Licensed\n */\n\n/**\n * Module dependencies.\n */\n\nvar Node = require('./node')\n , nodes = require('../nodes')\n , utils = require('../utils');\n\nmodule.exports = class Expression extends Node {\n /**\n * Initialize a new `Expression`.\n *\n * @param {Boolean} isList\n * @api public\n */\n\n constructor(isList) {\n super();\n this.nodes = [];\n this.isList = isList;\n }\n\n /**\n * Check if the variable has a value.\n *\n * @return {Boolean}\n * @api public\n */\n\n get isEmpty() {\n return !this.nodes.length;\n };\n\n /**\n * Return the first node in this expression.\n *\n * @return {Node}\n * @api public\n */\n\n get first() {\n return this.nodes[0]\n ? this.nodes[0].first\n : nodes.null;\n };\n\n /**\n * Hash all the nodes in order.\n *\n * @return {String}\n * @api public\n */\n\n get hash() {\n return this.nodes.map(function (node) {\n return node.hash;\n }).join('::');\n };\n\n /**\n * Return a clone of this node.\n * \n * @return {Node}\n * @api public\n */\n\n clone(parent) {\n var clone = new this.constructor(this.isList);\n clone.preserve = this.preserve;\n clone.lineno = this.lineno;\n clone.column = this.column;\n clone.filename = this.filename;\n clone.nodes = this.nodes.map(function (node) {\n return node.clone(parent, clone);\n });\n return clone;\n };\n\n /**\n * Push the given `node`.\n *\n * @param {Node} node\n * @api public\n */\n\n push(node) {\n this.nodes.push(node);\n };\n\n /**\n * Operate on `right` with the given `op`.\n *\n * @param {String} op\n * @param {Node} right\n * @return {Node}\n * @api public\n */\n\n operate(op, right, val) {\n switch (op) {\n case '[]=':\n var self = this\n , range = utils.unwrap(right).nodes\n , val = utils.unwrap(val)\n , len\n , node;\n range.forEach(function (unit) {\n len = self.nodes.length;\n if ('unit' == unit.nodeName) {\n var i = unit.val < 0 ? len + unit.val : unit.val\n , n = i;\n while (i-- > len) self.nodes[i] = nodes.null;\n self.nodes[n] = val;\n } else if (unit.string) {\n node = self.nodes[0];\n if (node && 'object' == node.nodeName) node.set(unit.string, val.clone());\n }\n });\n return val;\n case '[]':\n var expr = new nodes.Expression\n , vals = utils.unwrap(this).nodes\n , range = utils.unwrap(right).nodes\n , node;\n range.forEach(function (unit) {\n if ('unit' == unit.nodeName) {\n node = vals[unit.val < 0 ? vals.length + unit.val : unit.val];\n } else if ('object' == vals[0].nodeName) {\n node = vals[0].get(unit.string);\n }\n if (node) expr.push(node);\n });\n return expr.isEmpty\n ? nodes.null\n : utils.unwrap(expr);\n case '||':\n return this.toBoolean().isTrue\n ? this\n : right;\n case 'in':\n return super.operate(op, right);\n case '!=':\n return this.operate('==', right, val).negate();\n case '==':\n var len = this.nodes.length\n , right = right.toExpression()\n , a\n , b;\n if (len != right.nodes.length) return nodes.false;\n for (var i = 0; i < len; ++i) {\n a = this.nodes[i];\n b = right.nodes[i];\n if (a.operate(op, b).isTrue) continue;\n return nodes.false;\n }\n return nodes.true;\n break;\n default:\n return this.first.operate(op, right, val);\n }\n };\n\n /**\n * Expressions with length > 1 are truthy,\n * otherwise the first value's toBoolean()\n * method is invoked.\n *\n * @return {Boolean}\n * @api public\n */\n\n toBoolean() {\n if (this.nodes.length > 1) return nodes.true;\n return this.first.toBoolean();\n };\n\n /**\n * Return \" \" or \", , \" if\n * the expression represents a list.\n *\n * @return {String}\n * @api public\n */\n\n toString() {\n return '(' + this.nodes.map(function (node) {\n return node.toString();\n }).join(this.isList ? ', ' : ' ') + ')';\n };\n\n /**\n * Return a JSON representation of this node.\n *\n * @return {Object}\n * @api public\n */\n\n toJSON() {\n return {\n __type: 'Expression',\n isList: this.isList,\n preserve: this.preserve,\n lineno: this.lineno,\n column: this.column,\n filename: this.filename,\n nodes: this.nodes\n };\n };\n};\n","\n/*!\n * Stylus - Arguments\n * Copyright (c) Automattic \n * MIT Licensed\n */\n\n/**\n * Module dependencies.\n */\n\nvar nodes = require('../nodes');\n\nmodule.exports = class Arguments extends nodes.Expression {\n /**\n * Initialize a new `Arguments`.\n *\n * @api public\n */\n\n constructor() {\n super();\n this.map = {};\n }\n\n /**\n * Initialize an `Arguments` object with the nodes\n * from the given `expr`.\n *\n * @param {Expression} expr\n * @return {Arguments}\n * @api public\n */\n\n static fromExpression(expr) {\n var args = new Arguments\n , len = expr.nodes.length;\n args.lineno = expr.lineno;\n args.column = expr.column;\n args.isList = expr.isList;\n for (var i = 0; i < len; ++i) {\n args.push(expr.nodes[i]);\n }\n return args;\n };\n\n /**\n * Return a clone of this node.\n *\n * @return {Node}\n * @api public\n */\n\n clone(parent) {\n var clone = super.clone(parent);\n clone.map = {};\n for (var key in this.map) {\n clone.map[key] = this.map[key].clone(parent, clone);\n }\n clone.isList = this.isList;\n clone.lineno = this.lineno;\n clone.column = this.column;\n clone.filename = this.filename;\n return clone;\n };\n\n /**\n * Return a JSON representation of this node.\n *\n * @return {Object}\n * @api public\n */\n\n toJSON() {\n return {\n __type: 'Arguments',\n map: this.map,\n isList: this.isList,\n preserve: this.preserve,\n lineno: this.lineno,\n column: this.column,\n filename: this.filename,\n nodes: this.nodes\n };\n };\n\n};\n\n\n\n","\n/*!\n * Stylus - nodes\n * Copyright (c) Automattic \n * MIT Licensed\n */\n\nexports.lineno = null;\nexports.column = null;\nexports.filename = null;\n\n/**\n * Constructors\n */\n\nexports.Node = require('./node');\nexports.Root = require('./root');\nexports.Null = require('./null');\nexports.Each = require('./each');\nexports.If = require('./if');\nexports.Call = require('./call');\nexports.UnaryOp = require('./unaryop');\nexports.BinOp = require('./binop');\nexports.Ternary = require('./ternary');\nexports.Block = require('./block');\nexports.Unit = require('./unit');\nexports.String = require('./string');\nexports.HSLA = require('./hsla');\nexports.RGBA = require('./rgba');\nexports.Ident = require('./ident');\nexports.Group = require('./group');\nexports.Literal = require('./literal');\nexports.Boolean = require('./boolean');\nexports.Return = require('./return');\nexports.Media = require('./media');\nexports.QueryList = require('./query-list');\nexports.Query = require('./query');\nexports.Feature = require('./feature');\nexports.Params = require('./params');\nexports.Comment = require('./comment');\nexports.Keyframes = require('./keyframes');\nexports.Member = require('./member');\nexports.Charset = require('./charset');\nexports.Namespace = require('./namespace');\nexports.Import = require('./import');\nexports.Extend = require('./extend');\nexports.Object = require('./object');\nexports.Function = require('./function');\nexports.Property = require('./property');\nexports.Selector = require('./selector');\nexports.Expression = require('./expression');\nexports.Arguments = require('./arguments');\nexports.Atblock = require('./atblock');\nexports.Atrule = require('./atrule');\nexports.Supports = require('./supports');\n\n/**\n * Singletons.\n */\n\nexports.true = new exports.Boolean(true);\nexports.false = new exports.Boolean(false);\nexports.null = new exports.Null;\n","\n/*!\n * Stylus - Root\n * Copyright (c) Automattic \n * MIT Licensed\n */\n\n/**\n * Module dependencies.\n */\n\nvar Node = require('./node');\n\nmodule.exports = class Root extends Node {\n /**\n * Initialize a new `Root` node.\n *\n * @api public\n */\n\n constructor() {\n super();\n this.nodes = [];\n }\n\n /**\n * Push a `node` to this block.\n *\n * @param {Node} node\n * @api public\n */\n\n push(node) {\n this.nodes.push(node);\n };\n\n /**\n * Unshift a `node` to this block.\n *\n * @param {Node} node\n * @api public\n */\n\n unshift(node) {\n this.nodes.unshift(node);\n };\n\n /**\n * Return a clone of this node.\n *\n * @return {Node}\n * @api public\n */\n\n clone() {\n var clone = new Root();\n clone.lineno = this.lineno;\n clone.column = this.column;\n clone.filename = this.filename;\n this.nodes.forEach(function (node) {\n clone.push(node.clone(clone, clone));\n });\n return clone;\n };\n\n /**\n * Return \"root\".\n *\n * @return {String}\n * @api public\n */\n\n toString() {\n return '[Root]';\n };\n\n /**\n * Return a JSON representation of this node.\n *\n * @return {Object}\n * @api public\n */\n\n toJSON() {\n return {\n __type: 'Root',\n nodes: this.nodes,\n lineno: this.lineno,\n column: this.column,\n filename: this.filename\n };\n };\n\n};\n","\n/*!\n * Stylus - Null\n * Copyright (c) Automattic \n * MIT Licensed\n */\n\n/**\n * Module dependencies.\n */\n\nvar Node = require('./node')\n , nodes = require('./');\n\n/**\n * Initialize a new `Null` node.\n *\n * @api public\n */\n\nmodule.exports = class Null extends Node {\n /**\n * Return 'Null'.\n *\n * @return {String}\n * @api public\n */\n\n toString() {\n return 'null';\n };\n\n inspect() {\n return 'null';\n }\n\n /**\n * Return false.\n *\n * @return {Boolean}\n * @api public\n */\n\n toBoolean() {\n return nodes.false;\n };\n\n /**\n * Check if the node is a null node.\n *\n * @return {Boolean}\n * @api public\n */\n\n get isNull() {\n return true;\n };\n\n /**\n * Return hash.\n *\n * @return {String}\n * @api public\n */\n\n get hash() {\n return null;\n };\n\n /**\n * Return a JSON representation of this node.\n *\n * @return {Object}\n * @api public\n */\n\n toJSON() {\n return {\n __type: 'Null',\n lineno: this.lineno,\n column: this.column,\n filename: this.filename\n };\n };\n};\n","\n/*!\n * Stylus - Each\n * Copyright (c) Automattic \n * MIT Licensed\n */\n\n/**\n * Module dependencies.\n */\n\nvar Node = require('./node')\n , nodes = require('./');\n\nmodule.exports = class Each extends Node {\n /**\n * Initialize a new `Each` node with the given `val` name,\n * `key` name, `expr`, and `block`.\n *\n * @param {String} val\n * @param {String} key\n * @param {Expression} expr\n * @param {Block} block\n * @api public\n */\n\n constructor(val, key, expr, block) {\n super();\n this.val = val;\n this.key = key;\n this.expr = expr;\n this.block = block;\n }\n\n /**\n * Return a clone of this node.\n * \n * @return {Node}\n * @api public\n */\n\n clone(parent) {\n var clone = new Each(this.val, this.key);\n clone.expr = this.expr.clone(parent, clone);\n clone.block = this.block.clone(parent, clone);\n clone.lineno = this.lineno;\n clone.column = this.column;\n clone.filename = this.filename;\n return clone;\n };\n\n /**\n * Return a JSON representation of this node.\n *\n * @return {Object}\n * @api public\n */\n\n toJSON() {\n return {\n __type: 'Each',\n val: this.val,\n key: this.key,\n expr: this.expr,\n block: this.block,\n lineno: this.lineno,\n column: this.column,\n filename: this.filename\n };\n };\n\n}\n","\n/*!\n * Stylus - If\n * Copyright (c) Automattic \n * MIT Licensed\n */\n\n/**\n * Module dependencies.\n */\n\nvar Node = require('./node');\n\nmodule.exports = class If extends Node {\n /**\n * Initialize a new `If` with the given `cond`.\n *\n * @param {Expression} cond\n * @param {Boolean|Block} negate, block\n * @api public\n */\n\n constructor(cond, negate) {\n super();\n this.cond = cond;\n this.elses = [];\n if (negate && negate.nodeName) {\n this.block = negate;\n } else {\n this.negate = negate;\n }\n }\n\n /**\n * Return a clone of this node.\n * \n * @return {Node}\n * @api public\n */\n\n clone(parent) {\n var clone = new If();\n clone.cond = this.cond.clone(parent, clone);\n clone.block = this.block.clone(parent, clone);\n clone.elses = this.elses.map(function (node) { return node.clone(parent, clone); });\n clone.negate = this.negate;\n clone.postfix = this.postfix;\n clone.lineno = this.lineno;\n clone.column = this.column;\n clone.filename = this.filename;\n return clone;\n };\n\n /**\n * Return a JSON representation of this node.\n *\n * @return {Object}\n * @api public\n */\n\n toJSON() {\n return {\n __type: 'If',\n cond: this.cond,\n block: this.block,\n elses: this.elses,\n negate: this.negate,\n postfix: this.postfix,\n lineno: this.lineno,\n column: this.column,\n filename: this.filename\n };\n };\n};\n","\n/*!\n * Stylus - Call\n * Copyright (c) Automattic \n * MIT Licensed\n */\n\n/**\n * Module dependencies.\n */\n\nvar Node = require('./node');\n\nmodule.exports = class Call extends Node {\n /**\n * Initialize a new `Call` with `name` and `args`.\n *\n * @param {String} name\n * @param {Expression} args\n * @api public\n */\n\n constructor(name, args) {\n super();\n this.name = name;\n this.args = args;\n }\n\n /**\n * Return a clone of this node.\n * \n * @return {Node}\n * @api public\n */\n\n clone(parent) {\n var clone = new Call(this.name);\n clone.args = this.args.clone(parent, clone);\n if (this.block) clone.block = this.block.clone(parent, clone);\n clone.lineno = this.lineno;\n clone.column = this.column;\n clone.filename = this.filename;\n return clone;\n };\n\n /**\n * Return (param1, param2, ...).\n *\n * @return {String}\n * @api public\n */\n\n toString() {\n var args = this.args.nodes.map(function (node) {\n var str = node.toString();\n return str.slice(1, str.length - 1);\n }).join(', ');\n\n return this.name + '(' + args + ')';\n };\n\n /**\n * Return a JSON representation of this node.\n *\n * @return {Object}\n * @api public\n */\n\n toJSON() {\n var json = {\n __type: 'Call',\n name: this.name,\n args: this.args,\n lineno: this.lineno,\n column: this.column,\n filename: this.filename\n };\n if (this.block) json.block = this.block;\n return json;\n };\n};\n","\n/*!\n * Stylus - UnaryOp\n * Copyright (c) Automattic \n * MIT Licensed\n */\n\n/**\n * Module dependencies.\n */\n\nvar Node = require('./node');\n\nmodule.exports = class UnaryOp extends Node {\n /**\n * Initialize a new `UnaryOp` with `op`, and `expr`.\n *\n * @param {String} op\n * @param {Node} expr\n * @api public\n */\n\n constructor(op, expr) {\n super();\n this.op = op;\n this.expr = expr;\n }\n\n\n /**\n * Return a clone of this node.\n * \n * @return {Node}\n * @api public\n */\n\n clone(parent) {\n var clone = new UnaryOp(this.op);\n clone.expr = this.expr.clone(parent, clone);\n clone.lineno = this.lineno;\n clone.column = this.column;\n clone.filename = this.filename;\n return clone;\n };\n\n /**\n * Return a JSON representation of this node.\n *\n * @return {Object}\n * @api public\n */\n\n toJSON() {\n return {\n __type: 'UnaryOp',\n op: this.op,\n expr: this.expr,\n lineno: this.lineno,\n column: this.column,\n filename: this.filename\n };\n };\n\n};\n","\n/*!\n * Stylus - BinOp\n * Copyright (c) Automattic \n * MIT Licensed\n */\n\n/**\n * Module dependencies.\n */\n\nvar Node = require('./node');\n\nmodule.exports = class BinOp extends Node {\n /**\n * Initialize a new `BinOp` with `op`, `left` and `right`.\n *\n * @param {String} op\n * @param {Node} left\n * @param {Node} right\n * @api public\n */\n\n constructor(op, left, right) {\n super();\n this.op = op;\n this.left = left;\n this.right = right;\n }\n\n /**\n * Return a clone of this node.\n * \n * @return {Node}\n * @api public\n */\n\n clone(parent) {\n var clone = new BinOp(this.op);\n clone.left = this.left.clone(parent, clone);\n clone.right = this.right && this.right.clone(parent, clone);\n clone.lineno = this.lineno;\n clone.column = this.column;\n clone.filename = this.filename;\n if (this.val) clone.val = this.val.clone(parent, clone);\n return clone;\n };\n\n /**\n * Return \n *\n * @return {String}\n * @api public\n */\n toString() {\n return this.left.toString() + ' ' + this.op + ' ' + this.right.toString();\n };\n\n /**\n * Return a JSON representation of this node.\n *\n * @return {Object}\n * @api public\n */\n\n toJSON() {\n var json = {\n __type: 'BinOp',\n left: this.left,\n right: this.right,\n op: this.op,\n lineno: this.lineno,\n column: this.column,\n filename: this.filename\n };\n if (this.val) json.val = this.val;\n return json;\n };\n\n};\n","\n/*!\n * Stylus - Ternary\n * Copyright (c) Automattic \n * MIT Licensed\n */\n\n/**\n * Module dependencies.\n */\n\nvar Node = require('./node');\n\nmodule.exports = class Ternary extends Node {\n /**\n * Initialize a new `Ternary` with `cond`, `trueExpr` and `falseExpr`.\n *\n * @param {Expression} cond\n * @param {Expression} trueExpr\n * @param {Expression} falseExpr\n * @api public\n */\n\n constructor(cond, trueExpr, falseExpr) {\n super();\n this.cond = cond;\n this.trueExpr = trueExpr;\n this.falseExpr = falseExpr;\n }\n\n /**\n * Return a clone of this node.\n * \n * @return {Node}\n * @api public\n */\n\n clone(parent) {\n var clone = new Ternary();\n clone.cond = this.cond.clone(parent, clone);\n clone.trueExpr = this.trueExpr.clone(parent, clone);\n clone.falseExpr = this.falseExpr.clone(parent, clone);\n clone.lineno = this.lineno;\n clone.column = this.column;\n clone.filename = this.filename;\n return clone;\n };\n\n /**\n * Return a JSON representation of this node.\n *\n * @return {Object}\n * @api public\n */\n\n toJSON() {\n return {\n __type: 'Ternary',\n cond: this.cond,\n trueExpr: this.trueExpr,\n falseExpr: this.falseExpr,\n lineno: this.lineno,\n column: this.column,\n filename: this.filename\n };\n };\n};\n","\n/*!\n * Stylus - Block\n * Copyright (c) Automattic \n * MIT Licensed\n */\n\n/**\n * Module dependencies.\n */\n\nvar Node = require('./node');\n\nmodule.exports = class Block extends Node {\n /**\n * Initialize a new `Block` node with `parent` Block.\n *\n * @param {Block} parent\n * @api public\n */\n\n constructor(parent, node) {\n super();\n this.nodes = [];\n this.parent = parent;\n this.node = node;\n this.scope = true;\n }\n\n /**\n * Check if this block has properties..\n *\n * @return {Boolean}\n * @api public\n */\n\n get hasProperties() {\n for (var i = 0, len = this.nodes.length; i < len; ++i) {\n if ('property' == this.nodes[i].nodeName) {\n return true;\n }\n }\n };\n\n /**\n * Check if this block has @media nodes.\n *\n * @return {Boolean}\n * @api public\n */\n\n get hasMedia() {\n for (var i = 0, len = this.nodes.length; i < len; ++i) {\n var nodeName = this.nodes[i].nodeName;\n if ('media' == nodeName) {\n return true;\n }\n }\n return false;\n };\n\n /**\n * Check if this block is empty.\n *\n * @return {Boolean}\n * @api public\n */\n\n get isEmpty() {\n return !this.nodes.length || this.nodes.every(function (n) { return n.nodeName == 'comment' });\n };\n\n /**\n * Return a clone of this node.\n * \n * @return {Node}\n * @api public\n */\n\n clone(parent, node) {\n parent = parent || this.parent;\n var clone = new Block(parent, node || this.node);\n clone.lineno = this.lineno;\n clone.column = this.column;\n clone.filename = this.filename;\n clone.scope = this.scope;\n this.nodes.forEach(function (node) {\n clone.push(node.clone(clone, clone));\n });\n return clone;\n };\n\n /**\n * Push a `node` to this block.\n *\n * @param {Node} node\n * @api public\n */\n\n push(node) {\n this.nodes.push(node);\n };\n\n /**\n * Return a JSON representation of this node.\n *\n * @return {Object}\n * @api public\n */\n\n toJSON() {\n return {\n __type: 'Block',\n // parent: this.parent,\n // node: this.node,\n scope: this.scope,\n lineno: this.lineno,\n column: this.column,\n filename: this.filename,\n nodes: this.nodes\n };\n };\n\n};\n","\n/*!\n * Stylus - Group\n * Copyright (c) Automattic \n * MIT Licensed\n */\n\n/**\n * Module dependencies.\n */\n\nvar Node = require('./node');\n\nmodule.exports = class Group extends Node {\n /**\n * Initialize a new `Group`.\n *\n * @api public\n */\n\n constructor() {\n super();\n this.nodes = [];\n this.extends = [];\n }\n\n /**\n * Push the given `selector` node.\n *\n * @param {Selector} selector\n * @api public\n */\n\n push(selector) {\n this.nodes.push(selector);\n };\n\n /**\n * Return this set's `Block`.\n */\n\n get block() {\n return this.nodes[0].block;\n };\n\n /**\n * Assign `block` to each selector in this set.\n *\n * @param {Block} block\n * @api public\n */\n\n set block(block) {\n for (var i = 0, len = this.nodes.length; i < len; ++i) {\n this.nodes[i].block = block;\n }\n };\n\n /**\n * Check if this set has only placeholders.\n *\n * @return {Boolean}\n * @api public\n */\n\n get hasOnlyPlaceholders() {\n return this.nodes.every(function (selector) { return selector.isPlaceholder; });\n };\n\n /**\n * Return a clone of this node.\n * \n * @return {Node}\n * @api public\n */\n\n clone(parent) {\n var clone = new Group;\n clone.lineno = this.lineno;\n clone.column = this.column;\n this.nodes.forEach(function (node) {\n clone.push(node.clone(parent, clone));\n });\n clone.filename = this.filename;\n clone.block = this.block.clone(parent, clone);\n return clone;\n };\n\n /**\n * Return a JSON representation of this node.\n *\n * @return {Object}\n * @api public\n */\n\n toJSON() {\n return {\n __type: 'Group',\n nodes: this.nodes,\n block: this.block,\n lineno: this.lineno,\n column: this.column,\n filename: this.filename\n };\n };\n};\n","\n/*!\n * Stylus - Literal\n * Copyright (c) Automattic \n * MIT Licensed\n */\n\n/**\n * Module dependencies.\n */\n\nvar Node = require('./node')\n , nodes = require('./');\n\nmodule.exports = class Literal extends Node {\n /**\n * Initialize a new `Literal` with the given `str`.\n *\n * @param {String} str\n * @api public\n */\n\n constructor(str) {\n super();\n this.val = str;\n this.string = str;\n this.prefixed = false;\n }\n\n /**\n * Return hash.\n *\n * @return {String}\n * @api public\n */\n\n get hash() {\n return this.val;\n };\n\n /**\n * Return literal value.\n *\n * @return {String}\n * @api public\n */\n\n toString() {\n return this.val.toString();\n };\n\n /**\n * Coerce `other` to a literal.\n *\n * @param {Node} other\n * @return {String}\n * @api public\n */\n\n coerce(other) {\n switch (other.nodeName) {\n case 'ident':\n case 'string':\n case 'literal':\n return new Literal(other.string);\n default:\n return super.coerce(other);\n }\n };\n\n /**\n * Operate on `right` with the given `op`.\n *\n * @param {String} op\n * @param {Node} right\n * @return {Node}\n * @api public\n */\n\n operate(op, right) {\n var val = right.first;\n switch (op) {\n case '+':\n return new nodes.Literal(this.string + this.coerce(val).string);\n default:\n return super.operate(op, right);\n }\n };\n\n /**\n * Return a JSON representation of this node.\n *\n * @return {Object}\n * @api public\n */\n\n toJSON() {\n return {\n __type: 'Literal',\n val: this.val,\n string: this.string,\n prefixed: this.prefixed,\n lineno: this.lineno,\n column: this.column,\n filename: this.filename\n };\n };\n\n};\n","\n/*!\n * Stylus - Boolean\n * Copyright (c) Automattic \n * MIT Licensed\n */\n\n/**\n * Module dependencies.\n */\n\nvar Node = require('./node')\n , nodes = require('./');\n\nmodule.exports = class Boolean extends Node {\n /**\n * Initialize a new `Boolean` node with the given `val`.\n *\n * @param {Boolean} val\n * @api public\n */\n\n constructor(val) {\n super();\n if (this.nodeName) {\n this.val = !!val;\n } else {\n return new Boolean(val);\n }\n }\n\n /**\n * Return `this` node.\n *\n * @return {Boolean}\n * @api public\n */\n\n toBoolean() {\n return this;\n };\n\n /**\n * Return `true` if this node represents `true`.\n *\n * @return {Boolean}\n * @api public\n */\n\n get isTrue() {\n return this.val;\n };\n\n /**\n * Return `true` if this node represents `false`.\n *\n * @return {Boolean}\n * @api public\n */\n\n get isFalse() {\n return !this.val;\n };\n\n /**\n * Negate the value.\n *\n * @return {Boolean}\n * @api public\n */\n\n negate() {\n return new Boolean(!this.val);\n };\n\n /**\n * Return 'Boolean'.\n *\n * @return {String}\n * @api public\n */\n\n inspect() {\n return '[Boolean ' + this.val + ']';\n };\n\n /**\n * Return 'true' or 'false'.\n *\n * @return {String}\n * @api public\n */\n\n toString() {\n return this.val\n ? 'true'\n : 'false';\n };\n\n /**\n * Return a JSON representaiton of this node.\n *\n * @return {Object}\n * @api public\n */\n\n toJSON() {\n return {\n __type: 'Boolean',\n val: this.val\n };\n };\n};\n","\n/*!\n * Stylus - Return\n * Copyright (c) Automattic \n * MIT Licensed\n */\n\n/**\n * Module dependencies.\n */\n\nvar Node = require('./node')\n , nodes = require('./');\n\n/**\n * Initialize a new `Return` node with the given `expr`.\n *\n * @param {Expression} expr\n * @api public\n */\n\nmodule.exports = class Return extends Node {\n constructor(expr) {\n super();\n this.expr = expr || nodes.null;\n };\n\n /**\n * Return a clone of this node.\n * \n * @return {Node}\n * @api public\n */\n\n clone(parent) {\n var clone = new Return();\n clone.expr = this.expr.clone(parent, clone);\n clone.lineno = this.lineno;\n clone.column = this.column;\n clone.filename = this.filename;\n return clone;\n };\n\n /**\n * Return a JSON representation of this node.\n *\n * @return {Object}\n * @api public\n */\n\n toJSON() {\n return {\n __type: 'Return',\n expr: this.expr,\n lineno: this.lineno,\n column: this.column,\n filename: this.filename\n };\n };\n};\n","\n/*!\n * Stylus - QueryList\n * Copyright (c) Automattic \n * MIT Licensed\n */\n\n/**\n * Module dependencies.\n */\n\nvar Node = require('./node');\n\nmodule.exports = class QueryList extends Node {\n /**\n * Initialize a new `QueryList`.\n *\n * @api public\n */\n\n constructor() {\n super();\n this.nodes = [];\n }\n\n /**\n * Return a clone of this node.\n * \n * @return {Node}\n * @api public\n */\n\n clone(parent) {\n var clone = new QueryList;\n clone.lineno = this.lineno;\n clone.column = this.column;\n clone.filename = this.filename;\n for (var i = 0; i < this.nodes.length; ++i) {\n clone.push(this.nodes[i].clone(parent, clone));\n }\n return clone;\n };\n\n /**\n * Push the given `node`.\n *\n * @param {Node} node\n * @api public\n */\n\n push(node) {\n this.nodes.push(node);\n };\n\n /**\n * Merges this query list with the `other`.\n *\n * @param {QueryList} other\n * @return {QueryList}\n * @api private\n */\n\n merge(other) {\n var list = new QueryList\n , merged;\n this.nodes.forEach(function (query) {\n for (var i = 0, len = other.nodes.length; i < len; ++i) {\n merged = query.merge(other.nodes[i]);\n if (merged) list.push(merged);\n }\n });\n return list;\n };\n\n /**\n * Return \", , \"\n *\n * @return {String}\n * @api public\n */\n\n toString() {\n return '(' + this.nodes.map(function (node) {\n return node.toString();\n }).join(', ') + ')';\n };\n\n /**\n * Return a JSON representation of this node.\n *\n * @return {Object}\n * @api public\n */\n\n toJSON() {\n return {\n __type: 'QueryList',\n nodes: this.nodes,\n lineno: this.lineno,\n column: this.column,\n filename: this.filename\n };\n };\n\n};\n","\n/*!\n * Stylus - Query\n * Copyright (c) Automattic \n * MIT Licensed\n */\n\n/**\n * Module dependencies.\n */\n\nvar Node = require('./node');\n\nmodule.exports = class Query extends Node {\n /**\n * Initialize a new `Query`.\n *\n * @api public\n */\n\n constructor() {\n super();\n this.nodes = [];\n this.type = '';\n this.predicate = '';\n }\n\n /**\n * Return a clone of this node.\n * \n * @return {Node}\n * @api public\n */\n\n clone(parent) {\n var clone = new Query;\n clone.predicate = this.predicate;\n clone.type = this.type;\n for (var i = 0, len = this.nodes.length; i < len; ++i) {\n clone.push(this.nodes[i].clone(parent, clone));\n }\n clone.lineno = this.lineno;\n clone.column = this.column;\n clone.filename = this.filename;\n return clone;\n };\n\n /**\n * Push the given `feature`.\n *\n * @param {Feature} feature\n * @api public\n */\n\n push(feature) {\n this.nodes.push(feature);\n };\n\n /**\n * Return resolved type of this query.\n *\n * @return {String}\n * @api private\n */\n\n get resolvedType() {\n if (this.type) {\n return this.type.nodeName\n ? this.type.string\n : this.type;\n }\n };\n\n /**\n * Return resolved predicate of this query.\n *\n * @return {String}\n * @api private\n */\n\n get resolvedPredicate() {\n if (this.predicate) {\n return this.predicate.nodeName\n ? this.predicate.string\n : this.predicate;\n }\n };\n\n /**\n * Merges this query with the `other`.\n *\n * @param {Query} other\n * @return {Query}\n * @api private\n */\n\n merge(other) {\n var query = new Query\n , p1 = this.resolvedPredicate\n , p2 = other.resolvedPredicate\n , t1 = this.resolvedType\n , t2 = other.resolvedType\n , type, pred;\n\n // Stolen from Sass :D\n t1 = t1 || t2;\n t2 = t2 || t1;\n if (('not' == p1) ^ ('not' == p2)) {\n if (t1 == t2) return;\n type = ('not' == p1) ? t2 : t1;\n pred = ('not' == p1) ? p2 : p1;\n } else if (('not' == p1) && ('not' == p2)) {\n if (t1 != t2) return;\n type = t1;\n pred = 'not';\n } else if (t1 != t2) {\n return;\n } else {\n type = t1;\n pred = p1 || p2;\n }\n query.predicate = pred;\n query.type = type;\n query.nodes = this.nodes.concat(other.nodes);\n return query;\n };\n\n /**\n * Return \" and and \"\n *\n * @return {String}\n * @api public\n */\n\n toString() {\n var pred = this.predicate ? this.predicate + ' ' : ''\n , type = this.type || ''\n , len = this.nodes.length\n , str = pred + type;\n if (len) {\n str += (type && ' and ') + this.nodes.map(function (expr) {\n return expr.toString();\n }).join(' and ');\n }\n return str;\n };\n\n /**\n * Return a JSON representation of this node.\n *\n * @return {Object}\n * @api public\n */\n\n toJSON() {\n return {\n __type: 'Query',\n predicate: this.predicate,\n type: this.type,\n nodes: this.nodes,\n lineno: this.lineno,\n column: this.column,\n filename: this.filename\n };\n };\n};\n","\n/*!\n * Stylus - Feature\n * Copyright (c) Automattic \n * MIT Licensed\n */\n\n/**\n * Module dependencies.\n */\n\nvar Node = require('./node');\n\nmodule.exports = class Feature extends Node {\n /**\n * Initialize a new `Feature` with the given `segs`.\n *\n * @param {Array} segs\n * @api public\n */\n\n constructor(segs) {\n super();\n this.segments = segs;\n this.expr = null;\n }\n\n /**\n * Return a clone of this node.\n * \n * @return {Node}\n * @api public\n */\n\n clone(parent) {\n var clone = new Feature;\n clone.segments = this.segments.map(function (node) { return node.clone(parent, clone); });\n if (this.expr) clone.expr = this.expr.clone(parent, clone);\n if (this.name) clone.name = this.name;\n clone.lineno = this.lineno;\n clone.column = this.column;\n clone.filename = this.filename;\n return clone;\n };\n\n /**\n * Return \"\" or \"(: )\"\n *\n * @return {String}\n * @api public\n */\n\n toString() {\n if (this.expr) {\n return '(' + this.segments.join('') + ': ' + this.expr.toString() + ')';\n } else {\n return this.segments.join('');\n }\n };\n\n /**\n * Return a JSON representation of this node.\n *\n * @return {Object}\n * @api public\n */\n\n toJSON() {\n var json = {\n __type: 'Feature',\n segments: this.segments,\n lineno: this.lineno,\n column: this.column,\n filename: this.filename\n };\n if (this.expr) json.expr = this.expr;\n if (this.name) json.name = this.name;\n return json;\n };\n};\n","\n/*!\n * Stylus - Params\n * Copyright (c) Automattic \n * MIT Licensed\n */\n\n/**\n * Module dependencies.\n */\n\nvar Node = require('./node');\n\nmodule.exports = class Params extends Node {\n /**\n * Initialize a new `Params` with `name`, `params`, and `body`.\n *\n * @param {String} name\n * @param {Params} params\n * @param {Expression} body\n * @api public\n */\n\n constructor() {\n super();\n this.nodes = [];\n }\n\n /**\n * Check function arity.\n *\n * @return {Boolean}\n * @api public\n */\n\n get length() {\n return this.nodes.length;\n };\n\n /**\n * Push the given `node`.\n *\n * @param {Node} node\n * @api public\n */\n\n push(node) {\n this.nodes.push(node);\n };\n\n /**\n * Return a clone of this node.\n * \n * @return {Node}\n * @api public\n */\n\n clone(parent) {\n var clone = new Params;\n clone.lineno = this.lineno;\n clone.column = this.column;\n clone.filename = this.filename;\n this.nodes.forEach(function (node) {\n clone.push(node.clone(parent, clone));\n });\n return clone;\n };\n\n /**\n * Return a JSON representation of this node.\n *\n * @return {Object}\n * @api public\n */\n\n toJSON() {\n return {\n __type: 'Params',\n nodes: this.nodes,\n lineno: this.lineno,\n column: this.column,\n filename: this.filename\n };\n };\n};\n","\n/*!\n * Stylus - Comment\n * Copyright (c) Automattic \n * MIT Licensed\n */\n\n/**\n * Module dependencies.\n */\n\nvar Node = require('./node');\n\nmodule.exports = class Comment extends Node {\n /**\n * Initialize a new `Comment` with the given `str`.\n *\n * @param {String} str\n * @param {Boolean} suppress\n * @param {Boolean} inline\n * @api public\n */\n\n constructor(str, suppress, inline) {\n super();\n this.str = str;\n this.suppress = suppress;\n this.inline = inline;\n }\n\n /**\n * Return a JSON representation of this node.\n *\n * @return {Object}\n * @api public\n */\n\n toJSON() {\n return {\n __type: 'Comment',\n str: this.str,\n suppress: this.suppress,\n inline: this.inline,\n lineno: this.lineno,\n column: this.column,\n filename: this.filename\n };\n };\n\n /**\n * Return comment.\n *\n * @return {String}\n * @api public\n */\n\n toString() {\n return this.str;\n };\n\n};\n","\n/*!\n * Stylus - Keyframes\n * Copyright (c) Automattic \n * MIT Licensed\n */\n\n/**\n * Module dependencies.\n */\n\nvar Atrule = require('./atrule');\n\nmodule.exports = class Keyframes extends Atrule {\n /**\n * Initialize a new `Keyframes` with the given `segs`,\n * and optional vendor `prefix`.\n *\n * @param {Array} segs\n * @param {String} prefix\n * @api public\n */\n\n constructor(segs, prefix) {\n super('keyframes')\n this.segments = segs;\n this.prefix = prefix || 'official';\n }\n\n /**\n * Return a clone of this node.\n * \n * @return {Node}\n * @api public\n */\n\n clone(parent) {\n var clone = new Keyframes;\n clone.lineno = this.lineno;\n clone.column = this.column;\n clone.filename = this.filename;\n clone.segments = this.segments.map(function (node) { return node.clone(parent, clone); });\n clone.prefix = this.prefix;\n clone.block = this.block.clone(parent, clone);\n return clone;\n };\n\n /**\n * Return a JSON representation of this node.\n *\n * @return {Object}\n * @api public\n */\n\n toJSON() {\n return {\n __type: 'Keyframes',\n segments: this.segments,\n prefix: this.prefix,\n block: this.block,\n lineno: this.lineno,\n column: this.column,\n filename: this.filename\n };\n };\n\n /**\n * Return `@keyframes name`.\n *\n * @return {String}\n * @api public\n */\n\n toString() {\n return '@keyframes ' + this.segments.join('');\n };\n\n};","\n/*!\n * Stylus - Member\n * Copyright (c) Automattic \n * MIT Licensed\n */\n\n/**\n * Module dependencies.\n */\n\nvar Node = require('./node');\n\nmodule.exports = class Member extends Node {\n /**\n * Initialize a new `Member` with `left` and `right`.\n *\n * @param {Node} left\n * @param {Node} right\n * @api public\n */\n\n constructor(left, right) {\n super();\n this.left = left;\n this.right = right;\n }\n\n /**\n * Return a clone of this node.\n *\n * @return {Node}\n * @api public\n */\n\n clone(parent) {\n var clone = new Member;\n clone.left = this.left.clone(parent, clone);\n clone.right = this.right.clone(parent, clone);\n if (this.val) clone.val = this.val.clone(parent, clone);\n clone.lineno = this.lineno;\n clone.column = this.column;\n clone.filename = this.filename;\n return clone;\n };\n\n /**\n * Return a JSON representation of this node.\n *\n * @return {Object}\n * @api public\n */\n\n toJSON() {\n var json = {\n __type: 'Member',\n left: this.left,\n right: this.right,\n lineno: this.lineno,\n column: this.column,\n filename: this.filename\n };\n if (this.val) json.val = this.val;\n return json;\n };\n\n /**\n * Return a string representation of this node.\n *\n * @return {String}\n * @api public\n */\n\n toString() {\n return this.left.toString()\n + '.' + this.right.toString();\n };\n};\n","\n/*!\n * Stylus - Charset\n * Copyright (c) Automattic \n * MIT Licensed\n */\n\n/**\n * Module dependencies.\n */\n\nvar Node = require('./node');\n\nmodule.exports = class Charset extends Node {\n /**\n * Initialize a new `Charset` with the given `val`\n *\n * @param {String} val\n * @api public\n */\n\n constructor(val) {\n super();\n this.val = val;\n }\n\n /**\n * Return @charset \"val\".\n *\n * @return {String}\n * @api public\n */\n\n toString() {\n return '@charset ' + this.val;\n };\n\n /**\n * Return a JSON representation of this node.\n *\n * @return {Object}\n * @api public\n */\n\n toJSON() {\n return {\n __type: 'Charset',\n val: this.val,\n lineno: this.lineno,\n column: this.column,\n filename: this.filename\n };\n };\n\n};\n","/*!\n * Stylus - Namespace\n * Copyright (c) Automattic \n * MIT Licensed\n */\n\n/**\n * Module dependencies.\n */\n\nvar Node = require('./node');\n\nmodule.exports = class Namespace extends Node {\n /**\n * Initialize a new `Namespace` with the given `val` and `prefix`\n *\n * @param {String|Call} val\n * @param {String} [prefix]\n * @api public\n */\n\n constructor(val, prefix) {\n super();\n this.val = val;\n this.prefix = prefix;\n }\n\n /**\n * Return @namespace \"val\".\n *\n * @return {String}\n * @api public\n */\n\n toString() {\n return '@namespace ' + (this.prefix ? this.prefix + ' ' : '') + this.val;\n };\n\n /**\n * Return a JSON representation of this node.\n *\n * @return {Object}\n * @api public\n */\n\n toJSON() {\n return {\n __type: 'Namespace',\n val: this.val,\n prefix: this.prefix,\n lineno: this.lineno,\n column: this.column,\n filename: this.filename\n };\n };\n};\n","\n/*!\n * Stylus - Import\n * Copyright (c) Automattic \n * MIT Licensed\n */\n\n/**\n * Module dependencies.\n */\n\nvar Node = require('./node');\n\nmodule.exports = class Import extends Node {\n /**\n * Initialize a new `Import` with the given `expr`.\n *\n * @param {Expression} expr\n * @api public\n */\n\n constructor(expr, once) {\n super();\n this.path = expr;\n this.once = once || false;\n }\n\n /**\n * Return a clone of this node.\n *\n * @return {Node}\n * @api public\n */\n\n clone(parent) {\n var clone = new Import();\n clone.path = this.path.nodeName ? this.path.clone(parent, clone) : this.path;\n clone.once = this.once;\n clone.mtime = this.mtime;\n clone.lineno = this.lineno;\n clone.column = this.column;\n clone.filename = this.filename;\n return clone;\n };\n\n /**\n * Return a JSON representation of this node.\n *\n * @return {Object}\n * @api public\n */\n\n toJSON() {\n return {\n __type: 'Import',\n path: this.path,\n once: this.once,\n mtime: this.mtime,\n lineno: this.lineno,\n column: this.column,\n filename: this.filename\n };\n };\n\n};\n","\n/*!\n * Stylus - Extend\n * Copyright (c) Automattic \n * MIT Licensed\n */\n\n/**\n * Module dependencies.\n */\n\nvar Node = require('./node');\n\nmodule.exports = class Extend extends Node {\n /**\n * Initialize a new `Extend` with the given `selectors` array.\n *\n * @param {Array} selectors array of the selectors\n * @api public\n */\n\n constructor(selectors) {\n super();\n this.selectors = selectors;\n }\n\n /**\n * Return a clone of this node.\n * \n * @return {Node}\n * @api public\n */\n\n clone() {\n return new Extend(this.selectors);\n };\n\n /**\n * Return `@extend selectors`.\n *\n * @return {String}\n * @api public\n */\n\n toString() {\n return '@extend ' + this.selectors.join(', ');\n };\n\n /**\n * Return a JSON representation of this node.\n *\n * @return {Object}\n * @api public\n */\n\n toJSON() {\n return {\n __type: 'Extend',\n selectors: this.selectors,\n lineno: this.lineno,\n column: this.column,\n filename: this.filename\n };\n };\n\n};","\n/*!\n * Stylus - Function\n * Copyright (c) Automattic \n * MIT Licensed\n */\n\n/**\n * Module dependencies.\n */\n\nvar Node = require('./node');\n\nmodule.exports = class Function extends Node {\n /**\n * Initialize a new `Function` with `name`, `params`, and `body`.\n *\n * @param {String} name\n * @param {Params|Function} params\n * @param {Block} body\n * @api public\n */\n\n constructor(name, params, body) {\n super();\n this.name = name;\n this.params = params;\n this.block = body;\n if ('function' == typeof params) this.fn = params;\n }\n\n /**\n * Check function arity.\n *\n * @return {Boolean}\n * @api public\n */\n\n get arity() {\n return this.params.length;\n };\n\n /**\n * Return hash.\n *\n * @return {String}\n * @api public\n */\n\n get hash() {\n return 'function ' + this.name;\n };\n\n /**\n * Return a clone of this node.\n * \n * @return {Node}\n * @api public\n */\n\n clone(parent) {\n if (this.fn) {\n var clone = new Function(\n this.name\n , this.fn);\n } else {\n var clone = new Function(this.name);\n clone.params = this.params.clone(parent, clone);\n clone.block = this.block.clone(parent, clone);\n }\n clone.lineno = this.lineno;\n clone.column = this.column;\n clone.filename = this.filename;\n return clone;\n };\n\n /**\n * Return (param1, param2, ...).\n *\n * @return {String}\n * @api public\n */\n\n toString() {\n if (this.fn) {\n return this.name\n + '('\n + this.fn.toString()\n .match(/^function *\\w*\\((.*?)\\)/)\n .slice(1)\n .join(', ')\n + ')';\n } else {\n return this.name\n + '('\n + this.params.nodes.join(', ')\n + ')';\n }\n };\n\n /**\n * Return a JSON representation of this node.\n *\n * @return {Object}\n * @api public\n */\n\n toJSON() {\n var json = {\n __type: 'Function',\n name: this.name,\n lineno: this.lineno,\n column: this.column,\n filename: this.filename\n };\n if (this.fn) {\n json.fn = this.fn;\n } else {\n json.params = this.params;\n json.block = this.block;\n }\n return json;\n };\n\n};\n","\n/*!\n * Stylus - Property\n * Copyright (c) Automattic \n * MIT Licensed\n */\n\n/**\n * Module dependencies.\n */\n\nvar Node = require('./node');\n\nmodule.exports = class Property extends Node {\n /**\n * Initialize a new `Property` with the given `segs` and optional `expr`.\n *\n * @param {Array} segs\n * @param {Expression} expr\n * @api public\n */\n\n constructor(segs, expr) {\n super();\n this.segments = segs;\n this.expr = expr;\n }\n\n /**\n * Return a clone of this node.\n * \n * @return {Node}\n * @api public\n */\n\n clone(parent) {\n var clone = new Property(this.segments);\n clone.name = this.name;\n if (this.literal) clone.literal = this.literal;\n clone.lineno = this.lineno;\n clone.column = this.column;\n clone.filename = this.filename;\n clone.segments = this.segments.map(function (node) { return node.clone(parent, clone); });\n if (this.expr) clone.expr = this.expr.clone(parent, clone);\n return clone;\n };\n\n /**\n * Return a JSON representation of this node.\n *\n * @return {Object}\n * @api public\n */\n\n toJSON() {\n var json = {\n __type: 'Property',\n segments: this.segments,\n name: this.name,\n lineno: this.lineno,\n column: this.column,\n filename: this.filename\n };\n if (this.expr) json.expr = this.expr;\n if (this.literal) json.literal = this.literal;\n return json;\n };\n\n /**\n * Return string representation of this node.\n *\n * @return {String}\n * @api public\n */\n\n toString() {\n return 'property(' + this.segments.join('') + ', ' + this.expr + ')';\n };\n\n /**\n * Operate on the property expression.\n *\n * @param {String} op\n * @param {Node} right\n * @return {Node}\n * @api public\n */\n\n operate(op, right, val) {\n return this.expr.operate(op, right, val);\n };\n};\n","\n/*!\n * Stylus - Selector\n * Copyright (c) Automattic \n * MIT Licensed\n */\n\n/**\n * Module dependencies.\n */\n\nvar Block = require('./block')\n , Node = require('./node');\n\nmodule.exports = class Selector extends Node {\n /**\n * Initialize a new `Selector` with the given `segs`.\n *\n * @param {Array} segs\n * @api public\n */\n\n constructor(segs) {\n super();\n this.inherits = true;\n this.segments = segs;\n this.optional = false;\n }\n\n /**\n * Return the selector string.\n *\n * @return {String}\n * @api public\n */\n\n toString() {\n return this.segments.join('') + (this.optional ? ' !optional' : '');\n };\n\n /**\n * Check if this is placeholder selector.\n *\n * @return {Boolean}\n * @api public\n */\n\n get isPlaceholder() {\n return this.val && ~this.val.substr(0, 2).indexOf('$');\n };\n\n /**\n * Return a clone of this node.\n * \n * @return {Node}\n * @api public\n */\n\n clone(parent) {\n var clone = new Selector;\n clone.lineno = this.lineno;\n clone.column = this.column;\n clone.filename = this.filename;\n clone.inherits = this.inherits;\n clone.val = this.val;\n clone.segments = this.segments.map(function (node) { return node.clone(parent, clone); });\n clone.optional = this.optional;\n return clone;\n };\n\n /**\n * Return a JSON representation of this node.\n *\n * @return {Object}\n * @api public\n */\n\n toJSON() {\n return {\n __type: 'Selector',\n inherits: this.inherits,\n segments: this.segments,\n optional: this.optional,\n val: this.val,\n lineno: this.lineno,\n column: this.column,\n filename: this.filename\n };\n };\n\n};\n","/*!\n * Stylus - @block\n * Copyright (c) Automattic \n * MIT Licensed\n */\n\n/**\n * Module dependencies.\n */\n\nvar Node = require('./node');\n\nmodule.exports = class Atblock extends Node {\n /**\n * Initialize a new `@block` node.\n *\n * @api public\n */\n\n constructor() {\n super();\n }\n\n /**\n * Return `block` nodes.\n */\n\n get nodes() {\n return this.block.nodes;\n }\n\n /**\n * Return a clone of this node.\n *\n * @return {Node}\n * @api public\n */\n\n clone(parent) {\n var clone = new Atblock;\n clone.block = this.block.clone(parent, clone);\n clone.lineno = this.lineno;\n clone.column = this.column;\n clone.filename = this.filename;\n return clone;\n };\n\n /**\n * Return @block.\n *\n * @return {String}\n * @api public\n */\n\n toString() {\n return '@block';\n };\n\n /**\n * Return a JSON representation of this node.\n *\n * @return {Object}\n * @api public\n */\n\n toJSON() {\n return {\n __type: 'Atblock',\n block: this.block,\n lineno: this.lineno,\n column: this.column,\n fileno: this.fileno\n };\n };\n};\n","/*!\n * Stylus - supports\n * Copyright (c) Automattic \n * MIT Licensed\n */\n\n/**\n * Module dependencies.\n */\n\nvar Atrule = require('./atrule');\n\nmodule.exports = class Supports extends Atrule {\n /**\n * Initialize a new supports node.\n *\n * @param {Expression} condition\n * @api public\n */\n\n constructor(condition) {\n super('supports');\n this.condition = condition;\n }\n\n /**\n * Return a clone of this node.\n *\n * @return {Node}\n * @api public\n */\n\n clone(parent) {\n var clone = new Supports;\n clone.condition = this.condition.clone(parent, clone);\n clone.block = this.block.clone(parent, clone);\n clone.lineno = this.lineno;\n clone.column = this.column;\n clone.filename = this.filename;\n return clone;\n };\n\n /**\n * Return a JSON representation of this node.\n *\n * @return {Object}\n * @api public\n */\n\n toJSON() {\n return {\n __type: 'Supports',\n condition: this.condition,\n block: this.block,\n lineno: this.lineno,\n column: this.column,\n filename: this.filename\n };\n };\n\n /**\n * Return @supports\n *\n * @return {String}\n * @api public\n */\n\n toString() {\n return '@supports ' + this.condition;\n };\n};\n","\n/*!\n * Stylus - errors\n * Copyright (c) Automattic \n * MIT Licensed\n */\n\n/**\n * Initialize a new `ParseError` with the given `msg`.\n *\n * @param {String} msg\n * @api private\n */\n\nclass ParseError extends Error {\n constructor(msg) {\n super();\n this.name = 'ParseError';\n this.message = msg;\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, ParseError);\n }\n }\n}\n\n/**\n * Initialize a new `SyntaxError` with the given `msg`.\n *\n * @param {String} msg\n * @api private\n */\n\nclass SyntaxError extends Error {\n constructor(msg) {\n super();\n this.name = 'SyntaxError';\n this.message = msg;\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, ParseError);\n }\n }\n}\n\n/**\n * Expose constructors.\n */\n\nexports.ParseError = ParseError;\nexports.SyntaxError = SyntaxError;\n","\n/*!\n * Stylus - Lexer\n * Copyright (c) Automattic \n * MIT Licensed\n */\n\n/**\n * Module dependencies.\n */\n\nvar Token = require('./token')\n , nodes = require('./nodes')\n , errors = require('./errors');\n\n/**\n * Operator aliases.\n */\n\nvar alias = {\n 'and': '&&'\n , 'or': '||'\n , 'is': '=='\n , 'isnt': '!='\n , 'is not': '!='\n , ':=': '?='\n};\n\nexports = module.exports = class Lexer {\n /**\n * Initialize a new `Lexer` with the given `str` and `options`.\n *\n * @param {String} str\n * @param {Object} options\n * @api private\n */\n\n constructor(str, options) {\n options = options || {};\n this.stash = [];\n this.indentStack = [];\n this.indentRe = null;\n this.lineno = 1;\n this.column = 1;\n\n // HACK!\n function comment(str, val, offset, s) {\n var inComment = s.lastIndexOf('/*', offset) > s.lastIndexOf('*/', offset)\n , commentIdx = s.lastIndexOf('//', offset)\n , i = s.lastIndexOf('\\n', offset)\n , double = 0\n , single = 0;\n\n if (~commentIdx && commentIdx > i) {\n while (i != offset) {\n if (\"'\" == s[i]) single ? single-- : single++;\n if ('\"' == s[i]) double ? double-- : double++;\n\n if ('/' == s[i] && '/' == s[i + 1]) {\n inComment = !single && !double;\n break;\n }\n ++i;\n }\n }\n\n return inComment\n ? str\n : ((val === ',' && /^[,\\t\\n]+$/.test(str)) ? str.replace(/\\n/, '\\r') : val + '\\r');\n };\n\n // Remove UTF-8 BOM.\n if ('\\uFEFF' == str.charAt(0)) str = str.slice(1);\n\n this.str = str\n .replace(/\\s+$/, '\\n')\n .replace(/\\r\\n?/g, '\\n')\n .replace(/\\\\ *\\n/g, '\\r')\n .replace(/([,(:](?!\\/\\/[^ ])) *(?:\\/\\/[^\\n]*|\\/\\*.*?\\*\\/)?\\n\\s*/g, comment)\n .replace(/\\s*\\n[ \\t]*([,)])/g, comment);\n };\n\n /**\n * Custom inspect.\n */\n\n inspect() {\n var tok\n , tmp = this.str\n , buf = [];\n while ('eos' != (tok = this.next()).type) {\n buf.push(tok.inspect());\n }\n this.str = tmp;\n return buf.concat(tok.inspect()).join('\\n');\n }\n\n /**\n * Lookahead `n` tokens.\n *\n * @param {Number} n\n * @return {Object}\n * @api private\n */\n\n lookahead(n) {\n var fetch = n - this.stash.length;\n while (fetch-- > 0) this.stash.push(this.advance());\n return this.stash[--n];\n }\n\n /**\n * Consume the given `len`.\n *\n * @param {Number|Array} len\n * @api private\n */\n\n skip(len) {\n var chunk = len[0];\n len = chunk ? chunk.length : len;\n this.str = this.str.substr(len);\n if (chunk) {\n this.move(chunk);\n } else {\n this.column += len;\n }\n }\n\n /**\n * Move current line and column position.\n *\n * @param {String} str\n * @api private\n */\n\n move(str) {\n var lines = str.match(/\\n/g)\n , idx = str.lastIndexOf('\\n');\n\n if (lines) this.lineno += lines.length;\n this.column = ~idx\n ? str.length - idx\n : this.column + str.length;\n }\n\n /**\n * Fetch next token including those stashed by peek.\n *\n * @return {Token}\n * @api private\n */\n\n next() {\n var tok = this.stashed() || this.advance();\n this.prev = tok;\n return tok;\n }\n\n /**\n * Check if the current token is a part of selector.\n *\n * @return {Boolean}\n * @api private\n */\n\n isPartOfSelector() {\n var tok = this.stash[this.stash.length - 1] || this.prev;\n switch (tok && tok.type) {\n // #for\n case 'color':\n return 2 == tok.val.raw.length;\n // .or\n case '.':\n // [is]\n case '[':\n return true;\n }\n return false;\n }\n\n /**\n * Fetch next token.\n *\n * @return {Token}\n * @api private\n */\n\n advance() {\n var column = this.column\n , line = this.lineno\n , tok = this.eos()\n || this.null()\n || this.sep()\n || this.keyword()\n || this.urlchars()\n || this.comment()\n || this.newline()\n || this.escaped()\n || this.important()\n || this.literal()\n || this.anonFunc()\n || this.atrule()\n || this.function()\n || this.brace()\n || this.paren()\n || this.color()\n || this.string()\n || this.unit()\n || this.namedop()\n || this.boolean()\n || this.unicode()\n || this.ident()\n || this.op()\n || (function () {\n var token = this.eol();\n\n if (token) {\n column = token.column;\n line = token.lineno;\n }\n\n return token;\n }).call(this)\n || this.space()\n || this.selector();\n\n tok.lineno = line;\n tok.column = column;\n\n return tok;\n }\n\n /**\n * Lookahead a single token.\n *\n * @return {Token}\n * @api private\n */\n\n peek() {\n return this.lookahead(1);\n }\n\n /**\n * Return the next possibly stashed token.\n *\n * @return {Token}\n * @api private\n */\n\n stashed() {\n return this.stash.shift();\n }\n\n /**\n * EOS | trailing outdents.\n */\n\n eos() {\n if (this.str.length) return;\n if (this.indentStack.length) {\n this.indentStack.shift();\n return new Token('outdent');\n } else {\n return new Token('eos');\n }\n }\n\n /**\n * url char\n */\n\n urlchars() {\n var captures;\n if (!this.isURL) return;\n if (captures = /^[\\/:@.;?&=*!,<>#%0-9]+/.exec(this.str)) {\n this.skip(captures);\n return new Token('literal', new nodes.Literal(captures[0]));\n }\n }\n\n /**\n * ';' [ \\t]*\n */\n\n sep() {\n var captures;\n if (captures = /^;[ \\t]*/.exec(this.str)) {\n this.skip(captures);\n return new Token(';');\n }\n }\n\n /**\n * '\\r'\n */\n\n eol() {\n if ('\\r' == this.str[0]) {\n ++this.lineno;\n this.skip(1);\n\n this.column = 1;\n while (this.space());\n\n return this.advance();\n }\n }\n\n /**\n * ' '+\n */\n\n space() {\n var captures;\n if (captures = /^([ \\t]+)/.exec(this.str)) {\n this.skip(captures);\n return new Token('space');\n }\n }\n\n /**\n * '\\\\' . ' '*\n */\n\n escaped() {\n var captures;\n if (captures = /^\\\\(.)[ \\t]*/.exec(this.str)) {\n var c = captures[1];\n this.skip(captures);\n return new Token('ident', new nodes.Literal(c));\n }\n }\n\n /**\n * '@css' ' '* '{' .* '}' ' '*\n */\n\n literal() {\n // HACK attack !!!\n var captures;\n if (captures = /^@css[ \\t]*\\{/.exec(this.str)) {\n this.skip(captures);\n var c\n , braces = 1\n , css = ''\n , node;\n while (c = this.str[0]) {\n this.str = this.str.substr(1);\n switch (c) {\n case '{': ++braces; break;\n case '}': --braces; break;\n case '\\n':\n case '\\r':\n ++this.lineno;\n break;\n }\n css += c;\n if (!braces) break;\n }\n css = css.replace(/\\s*}$/, '');\n node = new nodes.Literal(css);\n node.css = true;\n return new Token('literal', node);\n }\n }\n\n /**\n * '!important' ' '*\n */\n\n important() {\n var captures;\n if (captures = /^!important[ \\t]*/.exec(this.str)) {\n this.skip(captures);\n return new Token('ident', new nodes.Literal('!important'));\n }\n }\n\n /**\n * '{' | '}'\n */\n\n brace() {\n var captures;\n if (captures = /^([{}])/.exec(this.str)) {\n this.skip(1);\n var brace = captures[1];\n return new Token(brace, brace);\n }\n }\n\n /**\n * '(' | ')' ' '*\n */\n\n paren() {\n var captures;\n if (captures = /^([()])([ \\t]*)/.exec(this.str)) {\n var paren = captures[1];\n this.skip(captures);\n if (')' == paren) this.isURL = false;\n var tok = new Token(paren, paren);\n tok.space = captures[2];\n return tok;\n }\n }\n\n /**\n * 'null'\n */\n\n null() {\n var captures\n , tok;\n if (captures = /^(null)\\b[ \\t]*/.exec(this.str)) {\n this.skip(captures);\n if (this.isPartOfSelector()) {\n tok = new Token('ident', new nodes.Ident(captures[0]));\n } else {\n tok = new Token('null', nodes.null);\n }\n return tok;\n }\n }\n\n /**\n * 'if'\n * | 'else'\n * | 'unless'\n * | 'return'\n * | 'for'\n * | 'in'\n */\n\n keyword() {\n var captures\n , tok;\n if (captures = /^(return|if|else|unless|for|in)\\b(?!-)[ \\t]*/.exec(this.str)) {\n var keyword = captures[1];\n this.skip(captures);\n if (this.isPartOfSelector()) {\n tok = new Token('ident', new nodes.Ident(captures[0]));\n } else {\n tok = new Token(keyword, keyword);\n }\n return tok;\n }\n }\n\n /**\n * 'not'\n * | 'and'\n * | 'or'\n * | 'is'\n * | 'is not'\n * | 'isnt'\n * | 'is a'\n * | 'is defined'\n */\n\n namedop() {\n var captures\n , tok;\n if (captures = /^(not|and|or|is a|is defined|isnt|is not|is)(?!-)\\b([ \\t]*)/.exec(this.str)) {\n var op = captures[1];\n this.skip(captures);\n if (this.isPartOfSelector()) {\n tok = new Token('ident', new nodes.Ident(captures[0]));\n } else {\n op = alias[op] || op;\n tok = new Token(op, op);\n }\n tok.space = captures[2];\n return tok;\n }\n }\n\n /**\n * ','\n * | '+'\n * | '+='\n * | '-'\n * | '-='\n * | '*'\n * | '*='\n * | '/'\n * | '/='\n * | '%'\n * | '%='\n * | '**'\n * | '!'\n * | '&'\n * | '&&'\n * | '||'\n * | '>'\n * | '>='\n * | '<'\n * | '<='\n * | '='\n * | '=='\n * | '!='\n * | '!'\n * | '~'\n * | '?='\n * | ':='\n * | '?'\n * | ':'\n * | '['\n * | ']'\n * | '.'\n * | '..'\n * | '...'\n */\n\n op() {\n var captures;\n if (captures = /^([.]{1,3}|&&|\\|\\||[!<>=?:]=|\\*\\*|[-+*\\/%]=?|[,=?:!~<>&\\[\\]])([ \\t]*)/.exec(this.str)) {\n var op = captures[1];\n this.skip(captures);\n op = alias[op] || op;\n var tok = new Token(op, op);\n tok.space = captures[2];\n this.isURL = false;\n return tok;\n }\n }\n\n /**\n * '@('\n */\n\n anonFunc() {\n var tok;\n if ('@' == this.str[0] && '(' == this.str[1]) {\n this.skip(2);\n tok = new Token('function', new nodes.Ident('anonymous'));\n tok.anonymous = true;\n return tok;\n }\n }\n\n /**\n * '@' (-(\\w+)-)?[a-zA-Z0-9-_]+\n */\n\n atrule() {\n var captures;\n if (captures = /^@(?!apply)(?:-(\\w+)-)?([a-zA-Z0-9-_]+)[ \\t]*/.exec(this.str)) {\n this.skip(captures);\n var vendor = captures[1]\n , type = captures[2]\n , tok;\n switch (type) {\n case 'require':\n case 'import':\n case 'charset':\n case 'namespace':\n case 'media':\n case 'scope':\n case 'supports':\n return new Token(type);\n case 'document':\n return new Token('-moz-document');\n case 'block':\n return new Token('atblock');\n case 'extend':\n case 'extends':\n return new Token('extend');\n case 'keyframes':\n return new Token(type, vendor);\n default:\n return new Token('atrule', (vendor ? '-' + vendor + '-' + type : type));\n }\n }\n }\n\n /**\n * '//' *\n */\n\n comment() {\n // Single line\n if ('/' == this.str[0] && '/' == this.str[1]) {\n var end = this.str.indexOf('\\n');\n if (-1 == end) end = this.str.length;\n this.skip(end);\n return this.advance();\n }\n\n // Multi-line\n if ('/' == this.str[0] && '*' == this.str[1]) {\n var end = this.str.indexOf('*/');\n if (-1 == end) end = this.str.length;\n var str = this.str.substr(0, end + 2)\n , lines = str.split(/\\n|\\r/).length - 1\n , suppress = true\n , inline = false;\n this.lineno += lines;\n this.skip(end + 2);\n // output\n if ('!' == str[2]) {\n str = str.replace('*!', '*');\n suppress = false;\n }\n if (this.prev && ';' == this.prev.type) inline = true;\n return new Token('comment', new nodes.Comment(str, suppress, inline));\n }\n }\n\n /**\n * 'true' | 'false'\n */\n\n boolean() {\n var captures;\n if (captures = /^(true|false)\\b([ \\t]*)/.exec(this.str)) {\n var val = new nodes.Boolean('true' == captures[1]);\n this.skip(captures);\n var tok = new Token('boolean', val);\n tok.space = captures[2];\n return tok;\n }\n }\n\n /**\n * 'U+' [0-9A-Fa-f?]{1,6}(?:-[0-9A-Fa-f]{1,6})?\n */\n\n unicode() {\n var captures;\n if (captures = /^u\\+[0-9a-f?]{1,6}(?:-[0-9a-f]{1,6})?/i.exec(this.str)) {\n this.skip(captures);\n return new Token('literal', new nodes.Literal(captures[0]));\n }\n }\n\n /**\n * -*[_a-zA-Z$] [-\\w\\d$]* '('\n */\n\n function() {\n var captures;\n if (captures = /^(-*[_a-zA-Z$][-\\w\\d$]*)\\(([ \\t]*)/.exec(this.str)) {\n var name = captures[1];\n this.skip(captures);\n this.isURL = 'url' == name;\n var tok = new Token('function', new nodes.Ident(name));\n tok.space = captures[2];\n return tok;\n }\n }\n\n /**\n * -*[_a-zA-Z$] [-\\w\\d$]*\n */\n\n ident() {\n var captures;\n if (captures = /^-*([_a-zA-Z$]|@apply)[-\\w\\d$]*/.exec(this.str)) {\n this.skip(captures);\n return new Token('ident', new nodes.Ident(captures[0]));\n }\n }\n\n /**\n * '\\n' ' '+\n */\n\n newline() {\n var captures, re;\n\n // we have established the indentation regexp\n if (this.indentRe) {\n captures = this.indentRe.exec(this.str);\n // figure out if we are using tabs or spaces\n } else {\n // try tabs\n re = /^\\n([\\t]*)[ \\t]*/;\n captures = re.exec(this.str);\n\n // nope, try spaces\n if (captures && !captures[1].length) {\n re = /^\\n([ \\t]*)/;\n captures = re.exec(this.str);\n }\n\n // established\n if (captures && captures[1].length) this.indentRe = re;\n }\n\n\n if (captures) {\n var tok\n , indents = captures[1].length;\n\n this.skip(captures);\n if (this.str[0] === ' ' || this.str[0] === '\\t') {\n throw new errors.SyntaxError('Invalid indentation. You can use tabs or spaces to indent, but not both.');\n }\n\n // Blank line\n if ('\\n' == this.str[0]) return this.advance();\n\n // Outdent\n if (this.indentStack.length && indents < this.indentStack[0]) {\n while (this.indentStack.length && this.indentStack[0] > indents) {\n this.stash.push(new Token('outdent'));\n this.indentStack.shift();\n }\n tok = this.stash.pop();\n // Indent\n } else if (indents && indents != this.indentStack[0]) {\n this.indentStack.unshift(indents);\n tok = new Token('indent');\n // Newline\n } else {\n tok = new Token('newline');\n }\n\n return tok;\n }\n }\n\n /**\n * '-'? (digit+ | digit* '.' digit+) unit\n */\n\n unit() {\n var captures;\n if (captures = /^(-)?(\\d+\\.\\d+|\\d+|\\.\\d+)(%|[a-zA-Z]+)?[ \\t]*/.exec(this.str)) {\n this.skip(captures);\n var n = parseFloat(captures[2]);\n if ('-' == captures[1]) n = -n;\n var node = new nodes.Unit(n, captures[3]);\n node.raw = captures[0];\n return new Token('unit', node);\n }\n }\n\n /**\n * '\"' [^\"]+ '\"' | \"'\"\" [^']+ \"'\"\n */\n\n string() {\n var captures;\n if (captures = /^(\"[^\"]*\"|'[^']*')[ \\t]*/.exec(this.str)) {\n var str = captures[1]\n , quote = captures[0][0];\n this.skip(captures);\n str = str.slice(1, -1).replace(/\\\\n/g, '\\n');\n return new Token('string', new nodes.String(str, quote));\n }\n }\n\n /**\n * #rrggbbaa | #rrggbb | #rgba | #rgb | #nn | #n\n */\n\n color() {\n return this.rrggbbaa()\n || this.rrggbb()\n || this.rgba()\n || this.rgb()\n || this.nn()\n || this.n()\n }\n\n /**\n * #n\n */\n\n n() {\n var captures;\n if (captures = /^#([a-fA-F0-9]{1})[ \\t]*/.exec(this.str)) {\n this.skip(captures);\n var n = parseInt(captures[1] + captures[1], 16)\n , color = new nodes.RGBA(n, n, n, 1);\n color.raw = captures[0];\n return new Token('color', color);\n }\n }\n\n /**\n * #nn\n */\n\n nn() {\n var captures;\n if (captures = /^#([a-fA-F0-9]{2})[ \\t]*/.exec(this.str)) {\n this.skip(captures);\n var n = parseInt(captures[1], 16)\n , color = new nodes.RGBA(n, n, n, 1);\n color.raw = captures[0];\n return new Token('color', color);\n }\n }\n\n /**\n * #rgb\n */\n\n rgb() {\n var captures;\n if (captures = /^#([a-fA-F0-9]{3})[ \\t]*/.exec(this.str)) {\n this.skip(captures);\n var rgb = captures[1]\n , r = parseInt(rgb[0] + rgb[0], 16)\n , g = parseInt(rgb[1] + rgb[1], 16)\n , b = parseInt(rgb[2] + rgb[2], 16)\n , color = new nodes.RGBA(r, g, b, 1);\n color.raw = captures[0];\n return new Token('color', color);\n }\n }\n\n /**\n * #rgba\n */\n\n rgba() {\n var captures;\n if (captures = /^#([a-fA-F0-9]{4})[ \\t]*/.exec(this.str)) {\n this.skip(captures);\n var rgb = captures[1]\n , r = parseInt(rgb[0] + rgb[0], 16)\n , g = parseInt(rgb[1] + rgb[1], 16)\n , b = parseInt(rgb[2] + rgb[2], 16)\n , a = parseInt(rgb[3] + rgb[3], 16)\n , color = new nodes.RGBA(r, g, b, a / 255);\n color.raw = captures[0];\n return new Token('color', color);\n }\n }\n\n /**\n * #rrggbb\n */\n\n rrggbb() {\n var captures;\n if (captures = /^#([a-fA-F0-9]{6})[ \\t]*/.exec(this.str)) {\n this.skip(captures);\n var rgb = captures[1]\n , r = parseInt(rgb.substr(0, 2), 16)\n , g = parseInt(rgb.substr(2, 2), 16)\n , b = parseInt(rgb.substr(4, 2), 16)\n , color = new nodes.RGBA(r, g, b, 1);\n color.raw = captures[0];\n return new Token('color', color);\n }\n }\n\n /**\n * #rrggbbaa\n */\n\n rrggbbaa() {\n var captures;\n if (captures = /^#([a-fA-F0-9]{8})[ \\t]*/.exec(this.str)) {\n this.skip(captures);\n var rgb = captures[1]\n , r = parseInt(rgb.substr(0, 2), 16)\n , g = parseInt(rgb.substr(2, 2), 16)\n , b = parseInt(rgb.substr(4, 2), 16)\n , a = parseInt(rgb.substr(6, 2), 16)\n , color = new nodes.RGBA(r, g, b, a / 255);\n color.raw = captures[0];\n return new Token('color', color);\n }\n }\n\n /**\n * ^|[^\\n,;]+\n */\n\n selector() {\n var captures;\n if (captures = /^\\^|.*?(?=\\/\\/(?![^\\[]*\\])|[,\\n{])/.exec(this.str)) {\n var selector = captures[0];\n this.skip(captures);\n return new Token('selector', selector);\n }\n }\n};\n","var systemLittleEndian = new Uint16Array(new Uint8Array([0x7F, 0xFF]).buffer)[0] === 0xFF7F;\n\n function swap4(num) {\n return num >> 24 & 0xff | num >> 8 & 0xff00 | num << 8 & 0xff0000 | num << 24 & 0xff000000;\n }\n\n function align(address, alignment) {\n var tmp = alignment - 1;\n return address + tmp & ~tmp;\n }\n\n /** Convert a uint32 to an 8-character big-endian hex string. */\n function hexify(n) {\n var s = '';\n var i = 8;\n while (i--) {\n s += (n >>> (i << 2) & 0xf).toString(16);\n }\n return s;\n }\n\n function choice(x, y, z) {\n return x & y ^ ~x & z;\n }\n\n function parity(x, y, z) {\n return x ^ y ^ z;\n }\n\n function majority(x, y, z) {\n return x & y ^ x & z ^ y & z;\n }\n\n function rotateLeft(value, bits) { return value << bits | value >>> 32 - bits;\n }\n\nvar w = new Uint32Array(80);\n\n function sha1(bytes) { if (!(bytes instanceof Uint8Array)) {\n throw new TypeError('Input data must be a Uint8Array.');\n }\n\n // Allocate a buffer to fit the message data,\n // the padding byte and the 64-bit message bit length\n var buffer = new ArrayBuffer(align(bytes.byteLength + 9, 64));\n var data = new Uint32Array(buffer);\n\n // Copy the message data and set the padding byte\n var dataU8 = new Uint8Array(buffer);\n dataU8.set(bytes);\n dataU8[bytes.byteLength] = 0x80;\n\n // Swap bytes if neeeded\n if (systemLittleEndian) {\n for (var _i = 0, len = data.length; _i < len; ++_i) {\n data[_i] = swap4(data[_i]);\n }\n }\n\n var bitLength = 8 * bytes.byteLength;\n\n // Store the message bit length as a 64-bit value\n data[data.length - 2] = bitLength / Math.pow(2, 32);\n data[data.length - 1] = bitLength;\n\n // Set the initial hash state\n var h0 = 0x67452301;\n var h1 = 0xefcdab89;\n var h2 = 0x98badcfe;\n var h3 = 0x10325476;\n var h4 = 0xc3d2e1f0;\n\n /* eslint-disable one-var, one-var-declaration-per-line */\n var i = void 0,\n a = void 0,\n b = void 0,\n c = void 0,\n d = void 0,\n e = void 0,\n tmp = void 0;\n\n for (var offset = 0, _len = data.length; offset < _len; offset += 16) {\n for (i = 0; i < 16; ++i) {\n w[i] = data[offset + i];\n }\n\n for (i = 16; i < 80; ++i) {\n w[i] = rotateLeft(w[i - 3] ^ w[i - 8] ^ w[i - 14] ^ w[i - 16], 1);\n }\n\n a = h0;\n b = h1;\n c = h2;\n d = h3;\n e = h4;\n\n for (i = 0; i < 20; ++i) {\n tmp = rotateLeft(a, 5) + choice(b, c, d) + e + 0x5a827999 + w[i] | 0;\n e = d;\n d = c;\n c = rotateLeft(b, 30);\n b = a;\n a = tmp;\n }\n\n for (i = 20; i < 40; ++i) {\n tmp = rotateLeft(a, 5) + parity(b, c, d) + e + 0x6ed9eba1 + w[i] | 0;\n e = d;\n d = c;\n c = rotateLeft(b, 30);\n b = a;\n a = tmp;\n }\n\n for (i = 40; i < 60; ++i) {\n tmp = rotateLeft(a, 5) + majority(b, c, d) + e + 0x8f1bbcdc + w[i] | 0;\n e = d;\n d = c;\n c = rotateLeft(b, 30);\n b = a;\n a = tmp;\n }\n\n for (i = 60; i < 80; ++i) {\n tmp = rotateLeft(a, 5) + parity(b, c, d) + e + 0xca62c1d6 + w[i] | 0;\n e = d;\n d = c;\n c = rotateLeft(b, 30);\n b = a;\n a = tmp;\n }\n\n h0 = h0 + a | 0;\n h1 = h1 + b | 0;\n h2 = h2 + c | 0;\n h3 = h3 + d | 0;\n h4 = h4 + e | 0;\n }\n\n return '' + hexify(h0) + hexify(h1) + hexify(h2) + hexify(h3) + hexify(h4);\n }\n\nexport default sha1;\n//# sourceMappingURL=tiny-sha1.mjs.map\n","const sha1 = require(\"tiny-sha1/dist/tiny-sha1.mjs\");\r\n\r\nfunction createHash() {\r\n let data = \"\";\r\n return {update, digest};\r\n \r\n function update(_data) {\r\n data += _data;\r\n }\r\n \r\n function digest() {\r\n return sha1((new TextEncoder).encode(data));\r\n }\r\n}\r\n\r\nmodule.exports = {createHash};\r\n","/**\n * Module dependencies.\n */\n\nvar crypto = require('crypto')\n , nodes = require('../nodes');\n\nmodule.exports = class MemoryCache {\n constructor(options) {\n options = options || {};\n this.limit = options['cache limit'] || 256;\n this._cache = {};\n this.length = 0;\n this.head = this.tail = null;\n }\n\n /**\n * Set cache item with given `key` to `value`.\n *\n * @param {String} key\n * @param {Object} value\n * @api private\n */\n\n set(key, value) {\n var clone = value.clone()\n , item;\n\n clone.filename = nodes.filename;\n clone.lineno = nodes.lineno;\n clone.column = nodes.column;\n item = { key: key, value: clone };\n this._cache[key] = item;\n\n if (this.tail) {\n this.tail.next = item;\n item.prev = this.tail;\n } else {\n this.head = item;\n }\n\n this.tail = item;\n if (this.length++ == this.limit) this.purge();\n };\n\n /**\n * Get cache item with given `key`.\n *\n * @param {String} key\n * @return {Object}\n * @api private\n */\n\n get(key) {\n var item = this._cache[key]\n , val = item.value.clone();\n\n if (item == this.tail) return val;\n if (item.next) {\n if (item == this.head) this.head = item.next;\n item.next.prev = item.prev;\n }\n if (item.prev) item.prev.next = item.next;\n\n item.next = null;\n item.prev = this.tail;\n\n if (this.tail) this.tail.next = item;\n this.tail = item;\n\n return val;\n };\n\n /**\n * Check if cache has given `key`.\n *\n * @param {String} key\n * @return {Boolean}\n * @api private\n */\n\n has(key) {\n return !!this._cache[key];\n };\n\n /**\n * Generate key for the source `str` with `options`.\n *\n * @param {String} str\n * @param {Object} options\n * @return {String}\n * @api private\n */\n\n key(str, options) {\n var hash = crypto.createHash('sha1');\n hash.update(str + options.prefix);\n return hash.digest('hex');\n };\n\n /**\n * Remove the oldest item from the cache.\n *\n * @api private\n */\n\n purge() {\n var item = this.head;\n\n if (this.head.next) {\n this.head = this.head.next;\n this.head.prev = null;\n }\n\n this._cache[item.key] = item.prev = item.next = null;\n this.length--;\n };\n};\n","/**\n * Module dependencies.\n */\n\nmodule.exports = class NullCache {\n\n /**\n * Set cache item with given `key` to `value`.\n *\n * @param {String} key\n * @param {Object} value\n * @api private\n */\n\n set(key, value) { };\n\n /**\n * Get cache item with given `key`.\n *\n * @param {String} key\n * @return {Object}\n * @api private\n */\n\n get(key) { };\n\n /**\n * Check if cache has given `key`.\n *\n * @param {String} key\n * @return {Boolean}\n * @api private\n */\n\n has(key) {\n return false;\n };\n\n /**\n * Generate key for the source `str` with `options`.\n *\n * @param {String} str\n * @param {Object} options\n * @return {String}\n * @api private\n */\n\n key(str, options) {\n return '';\n };\n}","/**\n * Get cache object by `name`.\n *\n * @param {String|Function} name\n * @param {Object} options\n * @return {Object}\n * @api private\n */\n\nvar getCache = module.exports = function(name, options){\n if ('function' == typeof name) return new name(options);\n\n var cache;\n switch (name){\n // case 'fs':\n // cache = require('./fs')\n // break;\n case 'memory':\n cache = require('./memory');\n break;\n default:\n cache = require('./null');\n }\n return new cache(options);\n};\n","/*!\n * Stylus - Parser\n * Copyright (c) Automattic \n * MIT Licensed\n */\n\n/**\n * Module dependencies.\n */\n\nvar Lexer = require('./lexer')\n , nodes = require('./nodes')\n , Token = require('./token')\n , units = require('./units')\n , errors = require('./errors')\n , cache = require('./cache');\n\n// debuggers\n\nvar debug = {\n lexer: require('debug')('stylus:lexer')\n , selector: require('debug')('stylus:parser:selector')\n};\n\n/**\n * Selector composite tokens.\n */\n\nvar selectorTokens = [\n 'ident'\n , 'string'\n , 'selector'\n , 'function'\n , 'comment'\n , 'boolean'\n , 'space'\n , 'color'\n , 'unit'\n , 'for'\n , 'in'\n , '['\n , ']'\n , '('\n , ')'\n , '+'\n , '-'\n , '*'\n , '*='\n , '<'\n , '>'\n , '='\n , ':'\n , '&'\n , '&&'\n , '~'\n , '{'\n , '}'\n , '.'\n , '..'\n , '/'\n];\n\n/**\n * CSS pseudo-classes and pseudo-elements.\n * See http://dev.w3.org/csswg/selectors4/\n */\n\nvar pseudoSelectors = [\n // https://www.w3.org/TR/selectors-4/#logical-combination\n // Logical Combinations\n 'is'\n , 'has'\n , 'where'\n , 'not'\n\n // Linguistic Pseudo-classes\n , 'dir'\n , 'lang'\n\n // Location Pseudo-classes\n , 'any-link'\n , 'link'\n , 'visited'\n , 'local-link'\n , 'target'\n , 'scope'\n\n // User Action Pseudo-classes\n , 'hover'\n , 'active'\n , 'focus'\n , 'drop'\n\n // Time-dimensional Pseudo-classes\n , 'current'\n , 'past'\n , 'future'\n\n // The Input Pseudo-classes\n , 'enabled'\n , 'disabled'\n , 'read-only'\n , 'read-write'\n , 'placeholder-shown'\n , 'checked'\n , 'indeterminate'\n , 'valid'\n , 'invalid'\n , 'in-range'\n , 'out-of-range'\n , 'required'\n , 'optional'\n , 'user-error'\n\n // Tree-Structural pseudo-classes\n , 'root'\n , 'empty'\n , 'blank'\n , 'nth-child'\n , 'nth-last-child'\n , 'first-child'\n , 'last-child'\n , 'only-child'\n , 'nth-of-type'\n , 'nth-last-of-type'\n , 'first-of-type'\n , 'last-of-type'\n , 'only-of-type'\n , 'nth-match'\n , 'nth-last-match'\n\n // Grid-Structural Selectors\n , 'nth-column'\n , 'nth-last-column'\n\n // Pseudo-elements\n , 'first-line'\n , 'first-letter'\n , 'before'\n , 'after'\n\n // Non-standard\n , 'selection'\n];\n\nmodule.exports = class Parser {\n /**\n * Initialize a new `Parser` with the given `str` and `options`.\n *\n * @param {String} str\n * @param {Object} options\n * @api private\n */\n\n constructor(str, options) {\n var self = this;\n options = options || {};\n Parser.cache = Parser.cache || Parser.getCache(options);\n this.hash = Parser.cache.key(str, options);\n this.lexer = {};\n if (!Parser.cache.has(this.hash)) {\n this.lexer = new Lexer(str, options);\n }\n this.prefix = options.prefix || '';\n this.root = options.root || new nodes.Root;\n this.state = ['root'];\n this.stash = [];\n this.parens = 0;\n this.css = 0;\n this.state.pop = function () {\n self.prevState = [].pop.call(this);\n };\n };\n\n /**\n * Get cache instance.\n *\n * @param {Object} options\n * @return {Object}\n * @api private\n */\n\n static getCache(options) {\n return false === options.cache\n ? cache(false)\n : cache(options.cache || 'memory', options);\n };\n\n\n /**\n * Return current state.\n *\n * @return {String}\n * @api private\n */\n\n currentState() {\n return this.state[this.state.length - 1];\n }\n\n /**\n * Return previous state.\n *\n * @return {String}\n * @api private\n */\n\n previousState() {\n return this.state[this.state.length - 2];\n }\n\n /**\n * Parse the input, then return the root node.\n *\n * @return {Node}\n * @api private\n */\n\n parse() {\n var block = this.parent = this.root;\n if (Parser.cache.has(this.hash)) {\n block = Parser.cache.get(this.hash);\n // normalize cached imports\n if ('block' == block.nodeName) block.constructor = nodes.Root;\n } else {\n while ('eos' != this.peek().type) {\n this.skipWhitespace();\n if ('eos' == this.peek().type) break;\n var stmt = this.statement();\n this.accept(';');\n if (!stmt) this.error('unexpected token {peek}, not allowed at the root level');\n block.push(stmt);\n }\n Parser.cache.set(this.hash, block);\n }\n return block;\n }\n\n /**\n * Throw an `Error` with the given `msg`.\n *\n * @param {String} msg\n * @api private\n */\n\n error(msg) {\n var type = this.peek().type\n , val = undefined == this.peek().val\n ? ''\n : ' ' + this.peek().toString();\n if (val.trim() == type.trim()) val = '';\n throw new errors.ParseError(msg.replace('{peek}', '\"' + type + val + '\"'));\n }\n\n /**\n * Accept the given token `type`, and return it,\n * otherwise return `undefined`.\n *\n * @param {String} type\n * @return {Token}\n * @api private\n */\n\n accept(type) {\n if (type == this.peek().type) {\n return this.next();\n }\n }\n\n /**\n * Expect token `type` and return it, throw otherwise.\n *\n * @param {String} type\n * @return {Token}\n * @api private\n */\n\n expect(type) {\n if (type != this.peek().type) {\n this.error('expected \"' + type + '\", got {peek}');\n }\n return this.next();\n }\n\n /**\n * Get the next token.\n *\n * @return {Token}\n * @api private\n */\n\n next() {\n var tok = this.stash.length\n ? this.stash.pop()\n : this.lexer.next()\n , line = tok.lineno\n , column = tok.column || 1;\n\n if (tok.val && tok.val.nodeName) {\n tok.val.lineno = line;\n tok.val.column = column;\n }\n nodes.lineno = line;\n nodes.column = column;\n debug.lexer('%s %s', tok.type, tok.val || '');\n return tok;\n }\n\n /**\n * Peek with lookahead(1).\n *\n * @return {Token}\n * @api private\n */\n\n peek() {\n return this.lexer.peek();\n }\n\n /**\n * Lookahead `n` tokens.\n *\n * @param {Number} n\n * @return {Token}\n * @api private\n */\n\n lookahead(n) {\n return this.lexer.lookahead(n);\n }\n\n /**\n * Check if the token at `n` is a valid selector token.\n *\n * @param {Number} n\n * @return {Boolean}\n * @api private\n */\n\n isSelectorToken(n) {\n var la = this.lookahead(n).type;\n switch (la) {\n case 'for':\n return this.bracketed;\n case '[':\n this.bracketed = true;\n return true;\n case ']':\n this.bracketed = false;\n return true;\n default:\n return ~selectorTokens.indexOf(la);\n }\n }\n\n /**\n * Check if the token at `n` is a pseudo selector.\n *\n * @param {Number} n\n * @return {Boolean}\n * @api private\n */\n\n isPseudoSelector(n) {\n var val = this.lookahead(n).val;\n return val && ~pseudoSelectors.indexOf(val.name);\n }\n\n /**\n * Check if the current line contains `type`.\n *\n * @param {String} type\n * @return {Boolean}\n * @api private\n */\n\n lineContains(type) {\n var i = 1\n , la;\n\n while (la = this.lookahead(i++)) {\n if (~['indent', 'outdent', 'newline', 'eos'].indexOf(la.type)) return;\n if (type == la.type) return true;\n }\n }\n\n /**\n * Valid selector tokens.\n */\n\n selectorToken() {\n if (this.isSelectorToken(1)) {\n if ('{' == this.peek().type) {\n // unclosed, must be a block\n if (!this.lineContains('}')) return;\n // check if ':' is within the braces.\n // though not required by Stylus, chances\n // are if someone is using {} they will\n // use CSS-style props, helping us with\n // the ambiguity in this case\n var i = 0\n , la;\n while (la = this.lookahead(++i)) {\n if ('}' == la.type) {\n // Check empty block.\n if (i == 2 || (i == 3 && this.lookahead(i - 1).type == 'space'))\n return;\n break;\n }\n if (':' == la.type) return;\n }\n }\n return this.next();\n }\n }\n\n /**\n * Skip the given `tokens`.\n *\n * @param {Array} tokens\n * @api private\n */\n\n skip(tokens) {\n while (~tokens.indexOf(this.peek().type))\n this.next();\n }\n\n /**\n * Consume whitespace.\n */\n\n skipWhitespace() {\n this.skip(['space', 'indent', 'outdent', 'newline']);\n }\n\n /**\n * Consume newlines.\n */\n\n skipNewlines() {\n while ('newline' == this.peek().type)\n this.next();\n }\n\n /**\n * Consume spaces.\n */\n\n skipSpaces() {\n while ('space' == this.peek().type)\n this.next();\n }\n\n /**\n * Consume spaces and comments.\n */\n\n skipSpacesAndComments() {\n while ('space' == this.peek().type\n || 'comment' == this.peek().type)\n this.next();\n }\n\n /**\n * Check if the following sequence of tokens\n * forms a function definition, ie trailing\n * `{` or indentation.\n */\n\n looksLikeFunctionDefinition(i) {\n return 'indent' == this.lookahead(i).type\n || '{' == this.lookahead(i).type;\n }\n\n /**\n * Check if the following sequence of tokens\n * forms a selector.\n *\n * @param {Boolean} [fromProperty]\n * @return {Boolean}\n * @api private\n */\n\n looksLikeSelector(fromProperty) {\n var i = 1\n , node\n , brace;\n\n // Real property\n if (fromProperty && ':' == this.lookahead(i + 1).type\n && (this.lookahead(i + 1).space || 'indent' == this.lookahead(i + 2).type))\n return false;\n\n // Assume selector when an ident is\n // followed by a selector\n while ('ident' == this.lookahead(i).type\n && ('newline' == this.lookahead(i + 1).type\n || ',' == this.lookahead(i + 1).type)) i += 2;\n\n while (this.isSelectorToken(i)\n || ',' == this.lookahead(i).type) {\n\n if ('selector' == this.lookahead(i).type)\n return true;\n\n if ('&' == this.lookahead(i + 1).type)\n return true;\n\n // Hash values inside properties\n if (\n i > 1 &&\n 'ident' === this.lookahead(i - 1).type &&\n '.' === this.lookahead(i).type &&\n 'ident' === this.lookahead(i + 1).type\n ) {\n while ((node = this.lookahead(i + 2))) {\n if ([\n 'indent',\n 'outdent',\n '{',\n ';',\n 'eos',\n 'selector',\n 'media',\n 'if',\n 'atrule',\n ')',\n '}',\n 'unit',\n '[',\n 'for',\n 'function'\n ].indexOf(node.type) !== -1) {\n if (node.type === '[') {\n while ((node = this.lookahead(i + 3)) && node.type !== ']') {\n if (~['.', 'unit'].indexOf(node.type)) {\n return false;\n }\n i += 1\n }\n } else {\n if (this.isPseudoSelector(i + 2)) {\n return true;\n }\n\n if (node.type === ')' && this.lookahead(i + 3) && this.lookahead(i + 3).type === '}') {\n break;\n }\n\n return [\n 'outdent',\n ';',\n 'eos',\n 'media',\n 'if',\n 'atrule',\n ')',\n '}',\n 'unit',\n 'for',\n 'function'\n ].indexOf(node.type) === -1;\n }\n }\n\n i += 1\n }\n\n return true;\n }\n\n if ('.' == this.lookahead(i).type && 'ident' == this.lookahead(i + 1).type) {\n return true;\n }\n\n if ('*' == this.lookahead(i).type && 'newline' == this.lookahead(i + 1).type)\n return true;\n\n // Pseudo-elements\n if (':' == this.lookahead(i).type\n && ':' == this.lookahead(i + 1).type)\n return true;\n\n // #a after an ident and newline\n if ('color' == this.lookahead(i).type\n && 'newline' == this.lookahead(i - 1).type)\n return true;\n\n if (this.looksLikeAttributeSelector(i))\n return true;\n\n if (('=' == this.lookahead(i).type || 'function' == this.lookahead(i).type)\n && '{' == this.lookahead(i + 1).type)\n return false;\n\n // Hash values inside properties\n if (':' == this.lookahead(i).type\n && !this.isPseudoSelector(i + 1)\n && this.lineContains('.'))\n return false;\n\n // the ':' token within braces signifies\n // a selector. ex: \"foo{bar:'baz'}\"\n if ('{' == this.lookahead(i).type) brace = true;\n else if ('}' == this.lookahead(i).type) brace = false;\n if (brace && ':' == this.lookahead(i).type) return true;\n\n // '{' preceded by a space is considered a selector.\n // for example \"foo{bar}{baz}\" may be a property,\n // however \"foo{bar} {baz}\" is a selector\n if ('space' == this.lookahead(i).type\n && '{' == this.lookahead(i + 1).type)\n return true;\n\n // Assume pseudo selectors are NOT properties\n // as 'td:th-child(1)' may look like a property\n // and function call to the parser otherwise\n if (':' == this.lookahead(i++).type\n && !this.lookahead(i - 1).space\n && this.isPseudoSelector(i))\n return true;\n\n // Trailing space\n if ('space' == this.lookahead(i).type\n && 'newline' == this.lookahead(i + 1).type\n && '{' == this.lookahead(i + 2).type)\n return true;\n\n if (',' == this.lookahead(i).type\n && 'newline' == this.lookahead(i + 1).type)\n return true;\n }\n\n // Trailing comma\n if (',' == this.lookahead(i).type\n && 'newline' == this.lookahead(i + 1).type)\n return true;\n\n // Trailing brace\n if ('{' == this.lookahead(i).type\n && 'newline' == this.lookahead(i + 1).type)\n return true;\n\n // css-style mode, false on ; }\n if (this.css) {\n if (';' == this.lookahead(i).type ||\n '}' == this.lookahead(i - 1).type)\n return false;\n }\n\n // Trailing separators\n while (!~[\n 'indent'\n , 'outdent'\n , 'newline'\n , 'for'\n , 'if'\n , ';'\n , '}'\n , 'eos'].indexOf(this.lookahead(i).type))\n ++i;\n\n if ('indent' == this.lookahead(i).type)\n return true;\n }\n\n /**\n * Check if the following sequence of tokens\n * forms an attribute selector.\n */\n\n looksLikeAttributeSelector(n) {\n var type = this.lookahead(n).type;\n if ('=' == type && this.bracketed) return true;\n return ('ident' == type || 'string' == type)\n && ']' == this.lookahead(n + 1).type\n && ('newline' == this.lookahead(n + 2).type || this.isSelectorToken(n + 2))\n && !this.lineContains(':')\n && !this.lineContains('=');\n }\n\n /**\n * Check if the following sequence of tokens\n * forms a keyframe block.\n */\n\n looksLikeKeyframe() {\n var i = 2\n , type;\n switch (this.lookahead(i).type) {\n case '{':\n case 'indent':\n case ',':\n return true;\n case 'newline':\n while ('unit' == this.lookahead(++i).type\n || 'newline' == this.lookahead(i).type);\n type = this.lookahead(i).type;\n return 'indent' == type || '{' == type;\n }\n }\n\n /**\n * Check if the current state supports selectors.\n */\n\n stateAllowsSelector() {\n switch (this.currentState()) {\n case 'root':\n case 'atblock':\n case 'selector':\n case 'conditional':\n case 'function':\n case 'atrule':\n case 'for':\n return true;\n }\n }\n\n /**\n * Try to assign @block to the node.\n *\n * @param {Expression} expr\n * @private\n */\n\n assignAtblock(expr) {\n try {\n expr.push(this.atblock(expr));\n } catch (err) {\n this.error('invalid right-hand side operand in assignment, got {peek}');\n }\n }\n\n /**\n * statement\n * | statement 'if' expression\n * | statement 'unless' expression\n */\n\n statement() {\n var stmt = this.stmt()\n , state = this.prevState\n , block\n , op;\n\n // special-case statements since it\n // is not an expression. We could\n // implement postfix conditionals at\n // the expression level, however they\n // would then fail to enclose properties\n if (this.allowPostfix) {\n this.allowPostfix = false;\n state = 'expression';\n }\n\n switch (state) {\n case 'assignment':\n case 'expression':\n case 'function arguments':\n while (op =\n this.accept('if')\n || this.accept('unless')\n || this.accept('for')) {\n switch (op.type) {\n case 'if':\n case 'unless':\n stmt = new nodes.If(this.expression(), stmt);\n stmt.postfix = true;\n stmt.negate = 'unless' == op.type;\n this.accept(';');\n break;\n case 'for':\n var key\n , val = this.id().name;\n if (this.accept(',')) key = this.id().name;\n this.expect('in');\n var each = new nodes.Each(val, key, this.expression());\n block = new nodes.Block(this.parent, each);\n block.push(stmt);\n each.block = block;\n stmt = each;\n }\n }\n }\n\n return stmt;\n }\n\n /**\n * ident\n * | selector\n * | literal\n * | charset\n * | namespace\n * | import\n * | require\n * | media\n * | atrule\n * | scope\n * | keyframes\n * | mozdocument\n * | for\n * | if\n * | unless\n * | comment\n * | expression\n * | 'return' expression\n */\n\n stmt() {\n var tok = this.peek(), selector;\n switch (tok.type) {\n case 'keyframes':\n return this.keyframes();\n case '-moz-document':\n return this.mozdocument();\n case 'comment':\n case 'selector':\n case 'literal':\n case 'charset':\n case 'namespace':\n case 'import':\n case 'require':\n case 'extend':\n case 'media':\n case 'atrule':\n case 'ident':\n case 'scope':\n case 'supports':\n case 'unless':\n case 'function':\n case 'for':\n case 'if':\n return this[tok.type]();\n case 'return':\n return this.return();\n case '{':\n return this.property();\n default:\n // Contextual selectors\n if (this.stateAllowsSelector()) {\n switch (tok.type) {\n case 'color':\n case '~':\n case '>':\n case '<':\n case ':':\n case '&':\n case '&&':\n case '[':\n case '.':\n case '/':\n selector = this.selector();\n selector.column = tok.column;\n selector.lineno = tok.lineno;\n return selector;\n // relative reference\n case '..':\n if ('/' == this.lookahead(2).type)\n return this.selector();\n case '+':\n return 'function' == this.lookahead(2).type\n ? this.functionCall()\n : this.selector();\n case '*':\n return this.property();\n // keyframe blocks (10%, 20% { ... })\n case 'unit':\n if (this.looksLikeKeyframe()) {\n selector = this.selector();\n selector.column = tok.column;\n selector.lineno = tok.lineno;\n return selector;\n }\n case '-':\n if ('{' == this.lookahead(2).type)\n return this.property();\n }\n }\n\n // Expression fallback\n var expr = this.expression();\n if (expr.isEmpty) this.error('unexpected {peek}');\n return expr;\n }\n }\n\n /**\n * indent (!outdent)+ outdent\n */\n\n block(node, scope) {\n var delim\n , stmt\n , next\n , block = this.parent = new nodes.Block(this.parent, node);\n\n if (false === scope) block.scope = false;\n\n this.accept('newline');\n\n // css-style\n if (this.accept('{')) {\n this.css++;\n delim = '}';\n this.skipWhitespace();\n } else {\n delim = 'outdent';\n this.expect('indent');\n }\n\n while (delim != this.peek().type) {\n // css-style\n if (this.css) {\n if (this.accept('newline') || this.accept('indent')) continue;\n stmt = this.statement();\n this.accept(';');\n this.skipWhitespace();\n } else {\n if (this.accept('newline')) continue;\n // skip useless indents and comments\n next = this.lookahead(2).type;\n if ('indent' == this.peek().type\n && ~['outdent', 'newline', 'comment'].indexOf(next)) {\n this.skip(['indent', 'outdent']);\n continue;\n }\n if ('eos' == this.peek().type) return block;\n stmt = this.statement();\n this.accept(';');\n }\n if (!stmt) this.error('unexpected token {peek} in block');\n block.push(stmt);\n }\n\n // css-style\n if (this.css) {\n this.skipWhitespace();\n this.expect('}');\n this.skipSpaces();\n this.css--;\n } else {\n this.expect('outdent');\n }\n\n this.parent = block.parent;\n return block;\n }\n\n /**\n * comment space*\n */\n\n comment() {\n var node = this.next().val;\n this.skipSpaces();\n return node;\n }\n\n /**\n * for val (',' key) in expr\n */\n\n for() {\n this.expect('for');\n var key\n , val = this.id().name;\n if (this.accept(',')) key = this.id().name;\n this.expect('in');\n this.state.push('for');\n this.cond = true;\n var each = new nodes.Each(val, key, this.expression());\n this.cond = false;\n each.block = this.block(each, false);\n this.state.pop();\n return each;\n }\n\n /**\n * return expression\n */\n\n return() {\n this.expect('return');\n var expr = this.expression();\n return expr.isEmpty\n ? new nodes.Return\n : new nodes.Return(expr);\n }\n\n /**\n * unless expression block\n */\n\n unless() {\n this.expect('unless');\n this.state.push('conditional');\n this.cond = true;\n var node = new nodes.If(this.expression(), true);\n this.cond = false;\n node.block = this.block(node, false);\n this.state.pop();\n return node;\n }\n\n /**\n * if expression block (else block)?\n */\n\n if() {\n var token = this.expect('if');\n\n this.state.push('conditional');\n this.cond = true;\n var node = new nodes.If(this.expression())\n , cond\n , block\n , item;\n\n node.column = token.column;\n\n this.cond = false;\n node.block = this.block(node, false);\n this.skip(['newline', 'comment']);\n while (this.accept('else')) {\n token = this.accept('if');\n if (token) {\n this.cond = true;\n cond = this.expression();\n this.cond = false;\n block = this.block(node, false);\n item = new nodes.If(cond, block);\n\n item.column = token.column;\n\n node.elses.push(item);\n } else {\n node.elses.push(this.block(node, false));\n break;\n }\n this.skip(['newline', 'comment']);\n }\n this.state.pop();\n return node;\n }\n\n /**\n * @block\n *\n * @param {Expression} [node]\n */\n\n atblock(node) {\n if (!node) this.expect('atblock');\n node = new nodes.Atblock;\n this.state.push('atblock');\n node.block = this.block(node, false);\n this.state.pop();\n return node;\n }\n\n /**\n * atrule selector? block?\n */\n\n atrule() {\n var type = this.expect('atrule').val\n , node = new nodes.Atrule(type)\n , tok;\n this.skipSpacesAndComments();\n node.segments = this.selectorParts();\n this.skipSpacesAndComments();\n tok = this.peek().type;\n if ('indent' == tok || '{' == tok || ('newline' == tok\n && '{' == this.lookahead(2).type)) {\n this.state.push('atrule');\n node.block = this.block(node);\n this.state.pop();\n }\n return node;\n }\n\n /**\n * scope\n */\n\n scope() {\n this.expect('scope');\n var selector = this.selectorParts()\n .map(function (selector) { return selector.val; })\n .join('');\n this.selectorScope = selector.trim();\n return nodes.null;\n }\n\n /**\n * supports\n */\n\n supports() {\n this.expect('supports');\n var node = new nodes.Supports(this.supportsCondition());\n this.state.push('atrule');\n node.block = this.block(node);\n this.state.pop();\n return node;\n }\n\n /**\n * supports negation\n * | supports op\n * | expression\n */\n\n supportsCondition() {\n var node = this.supportsNegation()\n || this.supportsOp();\n if (!node) {\n this.cond = true;\n node = this.expression();\n this.cond = false;\n }\n return node;\n }\n\n /**\n * 'not' supports feature\n */\n\n supportsNegation() {\n if (this.accept('not')) {\n var node = new nodes.Expression;\n node.push(new nodes.Literal('not'));\n node.push(this.supportsFeature());\n return node;\n }\n }\n\n /**\n * supports feature (('and' | 'or') supports feature)+\n */\n\n supportsOp() {\n var feature = this.supportsFeature()\n , op\n , expr;\n if (feature) {\n expr = new nodes.Expression;\n expr.push(feature);\n while (op = this.accept('&&') || this.accept('||')) {\n expr.push(new nodes.Literal('&&' == op.val ? 'and' : 'or'));\n expr.push(this.supportsFeature());\n }\n return expr;\n }\n }\n\n /**\n * ('(' supports condition ')')\n * | feature\n */\n\n supportsFeature() {\n this.skipSpacesAndComments();\n if ('(' == this.peek().type) {\n var la = this.lookahead(2).type;\n\n if ('ident' == la || '{' == la) {\n return this.feature();\n } else {\n this.expect('(');\n var node = new nodes.Expression;\n node.push(new nodes.Literal('('));\n node.push(this.supportsCondition());\n this.expect(')')\n node.push(new nodes.Literal(')'));\n this.skipSpacesAndComments();\n return node;\n }\n }\n }\n\n /**\n * extend\n */\n\n extend() {\n var tok = this.expect('extend')\n , selectors = []\n , sel\n , node\n , arr;\n\n do {\n arr = this.selectorParts();\n\n if (!arr.length) continue;\n\n sel = new nodes.Selector(arr);\n selectors.push(sel);\n\n if ('!' !== this.peek().type) continue;\n\n tok = this.lookahead(2);\n if ('ident' !== tok.type || 'optional' !== tok.val.name) continue;\n\n this.skip(['!', 'ident']);\n sel.optional = true;\n } while (this.accept(','));\n\n node = new nodes.Extend(selectors);\n node.lineno = tok.lineno;\n node.column = tok.column;\n return node;\n }\n\n /**\n * media queries\n */\n\n media() {\n this.expect('media');\n this.state.push('atrule');\n var media = new nodes.Media(this.queries());\n media.block = this.block(media);\n this.state.pop();\n return media;\n }\n\n /**\n * query (',' query)*\n */\n\n queries() {\n var queries = new nodes.QueryList\n , skip = ['comment', 'newline', 'space'];\n\n do {\n this.skip(skip);\n queries.push(this.query());\n this.skip(skip);\n } while (this.accept(','));\n return queries;\n }\n\n /**\n * expression\n * | (ident | 'not')? ident ('and' feature)*\n * | feature ('and' feature)*\n */\n\n query() {\n var query = new nodes.Query\n , expr\n , pred\n , id;\n\n // hash values support\n if ('ident' == this.peek().type\n && ('.' == this.lookahead(2).type\n || '[' == this.lookahead(2).type)) {\n this.cond = true;\n expr = this.expression();\n this.cond = false;\n query.push(new nodes.Feature(expr.nodes));\n return query;\n }\n\n if (pred = this.accept('ident') || this.accept('not')) {\n pred = new nodes.Literal(pred.val.string || pred.val);\n\n this.skipSpacesAndComments();\n if (id = this.accept('ident')) {\n query.type = id.val;\n query.predicate = pred;\n } else {\n query.type = pred;\n }\n this.skipSpacesAndComments();\n\n if (!this.accept('&&')) return query;\n }\n\n do {\n query.push(this.feature());\n } while (this.accept('&&'));\n\n return query;\n }\n\n /**\n * '(' ident ( ':'? expression )? ')'\n */\n\n feature() {\n this.skipSpacesAndComments();\n this.expect('(');\n this.skipSpacesAndComments();\n var node = new nodes.Feature(this.interpolate());\n this.skipSpacesAndComments();\n this.accept(':')\n this.skipSpacesAndComments();\n this.inProperty = true;\n node.expr = this.list();\n this.inProperty = false;\n this.skipSpacesAndComments();\n this.expect(')');\n this.skipSpacesAndComments();\n return node;\n }\n\n /**\n * @-moz-document call (',' call)* block\n */\n\n mozdocument() {\n this.expect('-moz-document');\n var mozdocument = new nodes.Atrule('-moz-document')\n , calls = [];\n do {\n this.skipSpacesAndComments();\n calls.push(this.functionCall());\n this.skipSpacesAndComments();\n } while (this.accept(','));\n mozdocument.segments = [new nodes.Literal(calls.join(', '))];\n this.state.push('atrule');\n mozdocument.block = this.block(mozdocument, false);\n this.state.pop();\n return mozdocument;\n }\n\n /**\n * import expression\n */\n\n import() {\n this.expect('import');\n this.allowPostfix = true;\n return new nodes.Import(this.expression(), false);\n }\n\n /**\n * require expression\n */\n\n require() {\n this.expect('require');\n this.allowPostfix = true;\n return new nodes.Import(this.expression(), true);\n }\n\n /**\n * charset string\n */\n\n charset() {\n this.expect('charset');\n var str = this.expect('string').val;\n this.allowPostfix = true;\n return new nodes.Charset(str);\n }\n\n /**\n * namespace ident? (string | url)\n */\n\n namespace() {\n var str\n , prefix;\n this.expect('namespace');\n\n this.skipSpacesAndComments();\n if (prefix = this.accept('ident')) {\n prefix = prefix.val;\n }\n this.skipSpacesAndComments();\n\n str = this.accept('string') || this.url();\n this.allowPostfix = true;\n return new nodes.Namespace(str, prefix);\n }\n\n /**\n * keyframes name block\n */\n\n keyframes() {\n var tok = this.expect('keyframes')\n , keyframes;\n\n this.skipSpacesAndComments();\n keyframes = new nodes.Keyframes(this.selectorParts(), tok.val);\n keyframes.column = tok.column;\n\n this.skipSpacesAndComments();\n\n // block\n this.state.push('atrule');\n keyframes.block = this.block(keyframes);\n this.state.pop();\n\n return keyframes;\n }\n\n /**\n * literal\n */\n\n literal() {\n return this.expect('literal').val;\n }\n\n /**\n * ident space?\n */\n\n id() {\n var tok = this.expect('ident');\n this.accept('space');\n return tok.val;\n }\n\n /**\n * ident\n * | assignment\n * | property\n * | selector\n */\n\n ident() {\n var i = 2\n , la = this.lookahead(i).type;\n\n while ('space' == la) la = this.lookahead(++i).type;\n\n switch (la) {\n // Assignment\n case '=':\n case '?=':\n case '-=':\n case '+=':\n case '*=':\n case '/=':\n case '%=':\n return this.assignment();\n // Member\n case '.':\n if ('space' == this.lookahead(i - 1).type) return this.selector();\n if (this._ident == this.peek()) return this.id();\n while ('=' != this.lookahead(++i).type\n && !~['[', ',', 'newline', 'indent', 'eos'].indexOf(this.lookahead(i).type));\n if ('=' == this.lookahead(i).type) {\n this._ident = this.peek();\n return this.expression();\n } else if (this.looksLikeSelector() && this.stateAllowsSelector()) {\n return this.selector();\n }\n // Assignment []=\n case '[':\n if (this._ident == this.peek()) return this.id();\n while (']' != this.lookahead(i++).type\n && 'selector' != this.lookahead(i).type\n && 'eos' != this.lookahead(i).type);\n if ('=' == this.lookahead(i).type) {\n this._ident = this.peek();\n return this.expression();\n } else if (this.looksLikeSelector() && this.stateAllowsSelector()) {\n return this.selector();\n }\n // Operation\n case '-':\n case '+':\n case '/':\n case '*':\n case '%':\n case '**':\n case '&&':\n case '||':\n case '>':\n case '<':\n case '>=':\n case '<=':\n case '!=':\n case '==':\n case '?':\n case 'in':\n case 'is a':\n case 'is defined':\n // Prevent cyclic .ident, return literal\n if (this._ident == this.peek()) {\n return this.id();\n } else {\n this._ident = this.peek();\n switch (this.currentState()) {\n // unary op or selector in property / for\n case 'for':\n case 'selector':\n return this.property();\n // Part of a selector\n case 'root':\n case 'atblock':\n case 'atrule':\n return '[' == la\n ? this.subscript()\n : this.selector();\n case 'function':\n case 'conditional':\n return this.looksLikeSelector()\n ? this.selector()\n : this.expression();\n // Do not disrupt the ident when an operand\n default:\n return this.operand\n ? this.id()\n : this.expression();\n }\n }\n // Selector or property\n default:\n switch (this.currentState()) {\n case 'root':\n return this.selector();\n case 'for':\n case 'selector':\n case 'function':\n case 'conditional':\n case 'atblock':\n case 'atrule':\n return this.property();\n default:\n var id = this.id();\n if ('interpolation' == this.previousState()) id.mixin = true;\n return id;\n }\n }\n }\n\n /**\n * '*'? (ident | '{' expression '}')+\n */\n\n interpolate() {\n var node\n , segs = []\n , star;\n\n star = this.accept('*');\n if (star) segs.push(new nodes.Literal('*'));\n\n while (true) {\n if (this.accept('{')) {\n this.state.push('interpolation');\n segs.push(this.expression());\n this.expect('}');\n this.state.pop();\n } else if (node = this.accept('-')) {\n segs.push(new nodes.Literal('-'));\n } else if (node = this.accept('ident')) {\n segs.push(node.val);\n } else {\n break;\n }\n }\n if (!segs.length) this.expect('ident');\n return segs;\n }\n\n /**\n * property ':'? expression\n * | ident\n */\n\n property() {\n if (this.looksLikeSelector(true)) return this.selector();\n\n // property\n var ident = this.interpolate()\n , prop = new nodes.Property(ident)\n , ret = prop;\n\n // optional ':'\n this.accept('space');\n if (this.accept(':')) this.accept('space');\n\n this.state.push('property');\n this.inProperty = true;\n prop.expr = this.list();\n if (prop.expr.isEmpty) ret = ident[0];\n this.inProperty = false;\n this.allowPostfix = true;\n this.state.pop();\n\n // optional ';'\n this.accept(';');\n\n return ret;\n }\n\n /**\n * selector ',' selector\n * | selector newline selector\n * | selector block\n */\n\n selector() {\n var arr\n , group = new nodes.Group\n , scope = this.selectorScope\n , isRoot = 'root' == this.currentState()\n , selector;\n\n do {\n // Clobber newline after ,\n this.accept('newline');\n\n arr = this.selectorParts();\n\n // Push the selector\n if (isRoot && scope) arr.unshift(new nodes.Literal(scope + ' '));\n if (arr.length) {\n selector = new nodes.Selector(arr);\n selector.lineno = arr[0].lineno;\n selector.column = arr[0].column;\n group.push(selector);\n }\n } while (this.accept(',') || this.accept('newline'));\n\n if ('selector-parts' == this.currentState()) return group.nodes;\n\n this.state.push('selector');\n group.block = this.block(group);\n this.state.pop();\n\n return group;\n }\n\n selectorParts() {\n var tok\n , arr = [];\n\n // Selector candidates,\n // stitched together to\n // form a selector.\n while (tok = this.selectorToken()) {\n debug.selector('%s', tok);\n // Selector component\n switch (tok.type) {\n case '{':\n this.skipSpaces();\n var expr = this.expression();\n this.skipSpaces();\n this.expect('}');\n arr.push(expr);\n break;\n case this.prefix && '.':\n var literal = new nodes.Literal(tok.val + this.prefix);\n literal.prefixed = true;\n arr.push(literal);\n break;\n case 'comment':\n // ignore comments\n break;\n case 'color':\n case 'unit':\n arr.push(new nodes.Literal(tok.val.raw));\n break;\n case 'space':\n arr.push(new nodes.Literal(' '));\n break;\n case 'function':\n arr.push(new nodes.Literal(tok.val.name + '('));\n break;\n case 'ident':\n arr.push(new nodes.Literal(tok.val.name || tok.val.string));\n break;\n default:\n arr.push(new nodes.Literal(tok.val));\n if (tok.space) arr.push(new nodes.Literal(' '));\n }\n }\n\n return arr;\n }\n\n /**\n * ident ('=' | '?=') expression\n */\n\n assignment() {\n var\n op,\n node,\n ident = this.id(),\n name = ident.name;\n\n if (op =\n this.accept('=')\n || this.accept('?=')\n || this.accept('+=')\n || this.accept('-=')\n || this.accept('*=')\n || this.accept('/=')\n || this.accept('%=')) {\n this.state.push('assignment');\n var expr = this.list();\n // @block support\n if (expr.isEmpty) this.assignAtblock(expr);\n node = new nodes.Ident(name, expr);\n\n node.lineno = ident.lineno;\n node.column = ident.column;\n\n this.state.pop();\n\n switch (op.type) {\n case '?=':\n var defined = new nodes.BinOp('is defined', node)\n , lookup = new nodes.Expression;\n lookup.push(new nodes.Ident(name));\n node = new nodes.Ternary(defined, lookup, node);\n break;\n case '+=':\n case '-=':\n case '*=':\n case '/=':\n case '%=':\n node.val = new nodes.BinOp(op.type[0], new nodes.Ident(name), expr);\n break;\n }\n }\n\n return node;\n }\n\n /**\n * definition\n * | call\n */\n\n function() {\n var parens = 1\n , i = 2\n , tok;\n\n // Lookahead and determine if we are dealing\n // with a function call or definition. Here\n // we pair parens to prevent false negatives\n out:\n while (tok = this.lookahead(i++)) {\n switch (tok.type) {\n case 'function':\n case '(':\n ++parens;\n break;\n case ')':\n if (!--parens) break out;\n break;\n case 'eos':\n this.error('failed to find closing paren \")\"');\n }\n }\n\n // Definition or call\n switch (this.currentState()) {\n case 'expression':\n return this.functionCall();\n default:\n return this.looksLikeFunctionDefinition(i)\n ? this.functionDefinition()\n : this.expression();\n }\n }\n\n /**\n * url '(' (expression | urlchars)+ ')'\n */\n\n url() {\n this.expect('function');\n this.state.push('function arguments');\n var args = this.args();\n this.expect(')');\n this.state.pop();\n return new nodes.Call('url', args);\n }\n\n /**\n * '+'? ident '(' expression ')' block?\n */\n\n functionCall() {\n var withBlock = this.accept('+');\n if ('url' == this.peek().val.name) return this.url();\n\n var tok = this.expect('function').val;\n var name = tok.name;\n\n this.state.push('function arguments');\n this.parens++;\n var args = this.args();\n this.expect(')');\n this.parens--;\n this.state.pop();\n var call = new nodes.Call(name, args);\n\n call.column = tok.column;\n call.lineno = tok.lineno;\n\n if (withBlock) {\n this.state.push('function');\n call.block = this.block(call);\n this.state.pop();\n }\n return call;\n }\n\n /**\n * ident '(' params ')' block\n */\n\n functionDefinition() {\n var\n tok = this.expect('function'),\n name = tok.val.name;\n\n // params\n this.state.push('function params');\n this.skipWhitespace();\n var params = this.params();\n this.skipWhitespace();\n this.expect(')');\n this.state.pop();\n\n // Body\n this.state.push('function');\n var fn = new nodes.Function(name, params);\n\n fn.column = tok.column;\n fn.lineno = tok.lineno;\n\n fn.block = this.block(fn);\n this.state.pop();\n return new nodes.Ident(name, fn);\n }\n\n /**\n * ident\n * | ident '...'\n * | ident '=' expression\n * | ident ',' ident\n */\n\n params() {\n var tok\n , node\n , params = new nodes.Params;\n while (tok = this.accept('ident')) {\n this.accept('space');\n params.push(node = tok.val);\n if (this.accept('...')) {\n node.rest = true;\n } else if (this.accept('=')) {\n node.val = this.expression();\n }\n this.skipWhitespace();\n this.accept(',');\n this.skipWhitespace();\n }\n return params;\n }\n\n /**\n * (ident ':')? expression (',' (ident ':')? expression)*\n */\n\n args() {\n var args = new nodes.Arguments\n , keyword;\n\n do {\n // keyword\n if ('ident' == this.peek().type && ':' == this.lookahead(2).type) {\n keyword = this.next().val.string;\n this.expect(':');\n args.map[keyword] = this.expression();\n // arg\n } else {\n args.push(this.expression());\n }\n } while (this.accept(','));\n\n return args;\n }\n\n /**\n * expression (',' expression)*\n */\n\n list() {\n var node = this.expression();\n\n while (this.accept(',')) {\n if (node.isList) {\n list.push(this.expression());\n } else {\n var list = new nodes.Expression(true);\n list.push(node);\n list.push(this.expression());\n node = list;\n }\n }\n return node;\n }\n\n /**\n * negation+\n */\n\n expression() {\n var node\n , expr = new nodes.Expression;\n this.state.push('expression');\n while (node = this.negation()) {\n if (!node) this.error('unexpected token {peek} in expression');\n expr.push(node);\n }\n this.state.pop();\n if (expr.nodes.length) {\n expr.lineno = expr.nodes[0].lineno;\n expr.column = expr.nodes[0].column;\n }\n return expr;\n }\n\n /**\n * 'not' ternary\n * | ternary\n */\n\n negation() {\n if (this.accept('not')) {\n return new nodes.UnaryOp('!', this.negation());\n }\n return this.ternary();\n }\n\n /**\n * logical ('?' expression ':' expression)?\n */\n\n ternary() {\n var node = this.logical();\n if (this.accept('?')) {\n var trueExpr = this.expression();\n this.expect(':');\n var falseExpr = this.expression();\n node = new nodes.Ternary(node, trueExpr, falseExpr);\n }\n return node;\n }\n\n /**\n * typecheck (('&&' | '||') typecheck)*\n */\n\n logical() {\n var op\n , node = this.typecheck();\n while (op = this.accept('&&') || this.accept('||')) {\n node = new nodes.BinOp(op.type, node, this.typecheck());\n }\n return node;\n }\n\n /**\n * equality ('is a' equality)*\n */\n\n typecheck() {\n var op\n , node = this.equality();\n while (op = this.accept('is a')) {\n this.operand = true;\n if (!node) this.error('illegal unary \"' + op + '\", missing left-hand operand');\n node = new nodes.BinOp(op.type, node, this.equality());\n this.operand = false;\n }\n return node;\n }\n\n /**\n * in (('==' | '!=') in)*\n */\n\n equality() {\n var op\n , node = this.in();\n while (op = this.accept('==') || this.accept('!=')) {\n this.operand = true;\n if (!node) this.error('illegal unary \"' + op + '\", missing left-hand operand');\n node = new nodes.BinOp(op.type, node, this.in());\n this.operand = false;\n }\n return node;\n }\n\n /**\n * relational ('in' relational)*\n */\n\n in() {\n var node = this.relational();\n while (this.accept('in')) {\n this.operand = true;\n if (!node) this.error('illegal unary \"in\", missing left-hand operand');\n node = new nodes.BinOp('in', node, this.relational());\n this.operand = false;\n }\n return node;\n }\n\n /**\n * range (('>=' | '<=' | '>' | '<') range)*\n */\n\n relational() {\n var op\n , node = this.range();\n while (op =\n this.accept('>=')\n || this.accept('<=')\n || this.accept('<')\n || this.accept('>')\n ) {\n this.operand = true;\n if (!node) this.error('illegal unary \"' + op + '\", missing left-hand operand');\n node = new nodes.BinOp(op.type, node, this.range());\n this.operand = false;\n }\n return node;\n }\n\n /**\n * additive (('..' | '...') additive)*\n */\n\n range() {\n var op\n , node = this.additive();\n if (op = this.accept('...') || this.accept('..')) {\n this.operand = true;\n if (!node) this.error('illegal unary \"' + op + '\", missing left-hand operand');\n node = new nodes.BinOp(op.val, node, this.additive());\n this.operand = false;\n }\n return node;\n }\n\n /**\n * multiplicative (('+' | '-') multiplicative)*\n */\n\n additive() {\n var op\n , node = this.multiplicative();\n while (op = this.accept('+') || this.accept('-')) {\n this.operand = true;\n node = new nodes.BinOp(op.type, node, this.multiplicative());\n this.operand = false;\n }\n return node;\n }\n\n /**\n * defined (('**' | '*' | '/' | '%') defined)*\n */\n\n multiplicative() {\n var op\n , node = this.defined();\n while (op =\n this.accept('**')\n || this.accept('*')\n || this.accept('/')\n || this.accept('%')) {\n this.operand = true;\n if ('/' == op && this.inProperty && !this.parens) {\n this.stash.push(new Token('literal', new nodes.Literal('/')));\n this.operand = false;\n return node;\n } else {\n if (!node) this.error('illegal unary \"' + op + '\", missing left-hand operand');\n node = new nodes.BinOp(op.type, node, this.defined());\n this.operand = false;\n }\n }\n return node;\n }\n\n /**\n * unary 'is defined'\n * | unary\n */\n\n defined() {\n var node = this.unary();\n if (this.accept('is defined')) {\n if (!node) this.error('illegal unary \"is defined\", missing left-hand operand');\n node = new nodes.BinOp('is defined', node);\n }\n return node;\n }\n\n /**\n * ('!' | '~' | '+' | '-') unary\n * | subscript\n */\n\n unary() {\n var op\n , node;\n if (op =\n this.accept('!')\n || this.accept('~')\n || this.accept('+')\n || this.accept('-')) {\n this.operand = true;\n node = this.unary();\n if (!node) this.error('illegal unary \"' + op + '\"');\n node = new nodes.UnaryOp(op.type, node);\n this.operand = false;\n return node;\n }\n return this.subscript();\n }\n\n /**\n * member ('[' expression ']')+ '='?\n * | member\n */\n\n subscript() {\n var node = this.member()\n , id;\n while (this.accept('[')) {\n node = new nodes.BinOp('[]', node, this.expression());\n this.expect(']');\n }\n // TODO: TernaryOp :)\n if (this.accept('=')) {\n node.op += '=';\n node.val = this.list();\n // @block support\n if (node.val.isEmpty) this.assignAtblock(node.val);\n }\n return node;\n }\n\n /**\n * primary ('.' id)+ '='?\n * | primary\n */\n\n member() {\n var node = this.primary();\n if (node) {\n while (this.accept('.')) {\n var id = new nodes.Ident(this.expect('ident').val.string);\n node = new nodes.Member(node, id);\n }\n this.skipSpaces();\n if (this.accept('=')) {\n node.val = this.list();\n // @block support\n if (node.val.isEmpty) this.assignAtblock(node.val);\n }\n }\n return node;\n }\n\n /**\n * '{' '}'\n * | '{' pair (ws pair)* '}'\n */\n\n object() {\n var obj = new nodes.Object\n , id, val, comma, hash;\n this.expect('{');\n this.skipWhitespace();\n\n while (!this.accept('}')) {\n if (this.accept('comment')\n || this.accept('newline')) continue;\n\n if (!comma) this.accept(',');\n id = this.accept('ident') || this.accept('string');\n\n if (!id) {\n this.error('expected \"ident\" or \"string\", got {peek}');\n }\n\n hash = id.val.hash;\n\n this.skipSpacesAndComments();\n this.expect(':');\n\n val = this.expression();\n\n obj.setValue(hash, val);\n obj.setKey(hash, id.val);\n\n comma = this.accept(',');\n this.skipWhitespace();\n }\n\n return obj;\n }\n\n /**\n * unit\n * | null\n * | color\n * | string\n * | ident\n * | boolean\n * | literal\n * | object\n * | atblock\n * | atrule\n * | '(' expression ')' '%'?\n */\n\n primary() {\n var tok;\n this.skipSpaces();\n\n // Parenthesis\n if (this.accept('(')) {\n ++this.parens;\n var expr = this.expression()\n , paren = this.expect(')');\n --this.parens;\n if (this.accept('%')) expr.push(new nodes.Ident('%'));\n tok = this.peek();\n // (1 + 2)px, (1 + 2)em, etc.\n if (!paren.space\n && 'ident' == tok.type\n && ~units.indexOf(tok.val.string)) {\n expr.push(new nodes.Ident(tok.val.string));\n this.next();\n }\n return expr;\n }\n\n tok = this.peek();\n\n // Primitive\n switch (tok.type) {\n case 'null':\n case 'unit':\n case 'color':\n case 'string':\n case 'literal':\n case 'boolean':\n case 'comment':\n return this.next().val;\n case !this.cond && '{':\n return this.object();\n case 'atblock':\n return this.atblock();\n // property lookup\n case 'atrule':\n var id = new nodes.Ident(this.next().val);\n id.property = true;\n return id;\n case 'ident':\n return this.ident();\n case 'function':\n return tok.anonymous\n ? this.functionDefinition()\n : this.functionCall();\n }\n }\n};\n","/**\n * event-lite.js - Light-weight EventEmitter (less than 1KB when gzipped)\n *\n * @copyright Yusuke Kawasaki\n * @license MIT\n * @constructor\n * @see https://github.com/kawanet/event-lite\n * @see http://kawanet.github.io/event-lite/EventLite.html\n * @example\n * var EventLite = require(\"event-lite\");\n *\n * function MyClass() {...} // your class\n *\n * EventLite.mixin(MyClass.prototype); // import event methods\n *\n * var obj = new MyClass();\n * obj.on(\"foo\", function() {...}); // add event listener\n * obj.once(\"bar\", function() {...}); // add one-time event listener\n * obj.emit(\"foo\"); // dispatch event\n * obj.emit(\"bar\"); // dispatch another event\n * obj.off(\"foo\"); // remove event listener\n */\n\nfunction EventLite() {\n if (!(this instanceof EventLite)) return new EventLite();\n}\n\n(function(EventLite) {\n // export the class for node.js\n if (\"undefined\" !== typeof module) module.exports = EventLite;\n\n // property name to hold listeners\n var LISTENERS = \"listeners\";\n\n // methods to export\n var methods = {\n on: on,\n once: once,\n off: off,\n emit: emit\n };\n\n // mixin to self\n mixin(EventLite.prototype);\n\n // export mixin function\n EventLite.mixin = mixin;\n\n /**\n * Import on(), once(), off() and emit() methods into target object.\n *\n * @function EventLite.mixin\n * @param target {Prototype}\n */\n\n function mixin(target) {\n for (var key in methods) {\n target[key] = methods[key];\n }\n return target;\n }\n\n /**\n * Add an event listener.\n *\n * @function EventLite.prototype.on\n * @param type {string}\n * @param func {Function}\n * @returns {EventLite} Self for method chaining\n */\n\n function on(type, func) {\n getListeners(this, type).push(func);\n return this;\n }\n\n /**\n * Add one-time event listener.\n *\n * @function EventLite.prototype.once\n * @param type {string}\n * @param func {Function}\n * @returns {EventLite} Self for method chaining\n */\n\n function once(type, func) {\n var that = this;\n wrap.originalListener = func;\n getListeners(that, type).push(wrap);\n return that;\n\n function wrap() {\n off.call(that, type, wrap);\n func.apply(this, arguments);\n }\n }\n\n /**\n * Remove an event listener.\n *\n * @function EventLite.prototype.off\n * @param [type] {string}\n * @param [func] {Function}\n * @returns {EventLite} Self for method chaining\n */\n\n function off(type, func) {\n var that = this;\n var listners;\n if (!arguments.length) {\n delete that[LISTENERS];\n } else if (!func) {\n listners = that[LISTENERS];\n if (listners) {\n delete listners[type];\n if (!Object.keys(listners).length) return off.call(that);\n }\n } else {\n listners = getListeners(that, type, true);\n if (listners) {\n listners = listners.filter(ne);\n if (!listners.length) return off.call(that, type);\n that[LISTENERS][type] = listners;\n }\n }\n return that;\n\n function ne(test) {\n return test !== func && test.originalListener !== func;\n }\n }\n\n /**\n * Dispatch (trigger) an event.\n *\n * @function EventLite.prototype.emit\n * @param type {string}\n * @param [value] {*}\n * @returns {boolean} True when a listener received the event\n */\n\n function emit(type, value) {\n var that = this;\n var listeners = getListeners(that, type, true);\n if (!listeners) return false;\n var arglen = arguments.length;\n if (arglen === 1) {\n listeners.forEach(zeroarg);\n } else if (arglen === 2) {\n listeners.forEach(onearg);\n } else {\n var args = Array.prototype.slice.call(arguments, 1);\n listeners.forEach(moreargs);\n }\n return !!listeners.length;\n\n function zeroarg(func) {\n func.call(that);\n }\n\n function onearg(func) {\n func.call(that, value);\n }\n\n function moreargs(func) {\n func.apply(that, args);\n }\n }\n\n /**\n * @ignore\n */\n\n function getListeners(that, type, readonly) {\n if (readonly && !that[LISTENERS]) return;\n var listeners = that[LISTENERS] || (that[LISTENERS] = {});\n return listeners[type] || (listeners[type] = []);\n }\n\n})(EventLite);\n","const EventLite = require(\"event-lite\");\r\nmodule.exports = {\r\n EventEmitter: class {\r\n constructor() {\r\n this.events = new EventLite;\r\n }\r\n on(...args) {\r\n return this.events.on(...args);\r\n }\r\n off(...args) {\r\n return this.events.off(...args);\r\n }\r\n once(...args) {\r\n return this.events.once(...args);\r\n }\r\n emit(...args) {\r\n return this.events.emit(...args);\r\n }\r\n listeners(name) {\r\n return this.events.listeners && this.events.listeners[name] || [];\r\n }\r\n }\r\n};\r\n","\n/**\n * Module dependencies.\n */\n\nvar Visitor = require('./')\n , Parser = require('../parser')\n , nodes = require('../nodes')\n , utils = require('../utils')\n , dirname = require('path').dirname\n , fs = require('fs');\n\nmodule.exports = class DepsResolver extends Visitor {\n /**\n * Initialize a new `DepsResolver` with the given `root` Node\n * and the `options`.\n *\n * @param {Node} root\n * @param {Object} options\n * @api private\n */\n\n constructor(root, options) {\n super(root)\n this.filename = options.filename;\n this.paths = options.paths || [];\n this.paths.push(dirname(options.filename || '.'));\n this.options = options;\n this.functions = {};\n this.deps = [];\n }\n\n\n visit(node) {\n switch (node.nodeName) {\n case 'root':\n case 'block':\n case 'expression':\n this.visitRoot(node);\n break;\n case 'group':\n case 'media':\n case 'atblock':\n case 'atrule':\n case 'keyframes':\n case 'each':\n case 'supports':\n this.visit(node.block);\n break;\n default:\n super.visit(node);\n }\n };\n\n /**\n * Visit Root.\n */\n\n visitRoot(block) {\n for (var i = 0, len = block.nodes.length; i < len; ++i) {\n this.visit(block.nodes[i]);\n }\n };\n\n /**\n * Visit Ident.\n */\n\n visitIdent(ident) {\n this.visit(ident.val);\n };\n\n /**\n * Visit If.\n */\n\n visitIf(node) {\n this.visit(node.block);\n this.visit(node.cond);\n for (var i = 0, len = node.elses.length; i < len; ++i) {\n this.visit(node.elses[i]);\n }\n };\n\n /**\n * Visit Function.\n */\n\n visitFunction(fn) {\n this.functions[fn.name] = fn.block;\n };\n\n /**\n * Visit Call.\n */\n\n visitCall(call) {\n if (call.name in this.functions) this.visit(this.functions[call.name]);\n if (call.block) this.visit(call.block);\n };\n\n /**\n * Visit Import.\n */\n\n visitImport(node) {\n // If it's a url() call, skip\n if (node.path.first.name === 'url') return;\n\n var path = !node.path.first.val.isNull && node.path.first.val || node.path.first.name\n , literal, found, oldPath;\n\n if (!path) return;\n\n literal = /\\.css(?:\"|$)/.test(path);\n\n // support optional .styl\n if (!literal && !/\\.styl$/i.test(path)) {\n oldPath = path;\n path += '.styl';\n }\n\n // Lookup\n found = utils.find(path, this.paths, this.filename);\n\n // support optional index\n if (!found && oldPath) found = utils.lookupIndex(oldPath, this.paths, this.filename);\n\n if (!found) return;\n\n this.deps = this.deps.concat(found);\n\n if (literal) return;\n\n // nested imports\n for (var i = 0, len = found.length; i < len; ++i) {\n var file = found[i]\n , dir = dirname(file)\n , str = fs.readFileSync(file, 'utf-8')\n , block = new nodes.Block\n , parser = new Parser(str, utils.merge({ root: block }, this.options));\n\n if (!~this.paths.indexOf(dir)) this.paths.push(dir);\n\n try {\n block = parser.parse();\n } catch (err) {\n err.filename = file;\n err.lineno = parser.lexer.lineno;\n err.column = parser.lexer.column;\n err.input = str;\n throw err;\n }\n\n this.visit(block);\n }\n };\n\n /**\n * Get dependencies.\n */\n\n resolve() {\n this.visit(this.root);\n return utils.uniq(this.deps);\n };\n};\n","\n/*!\n * Stylus - Renderer\n * Copyright (c) Automattic \n * MIT Licensed\n */\n\n/**\n * Module dependencies.\n */\n\nvar Parser = require('./parser')\n , EventEmitter = require('events').EventEmitter\n , Evaluator = require('./visitor/evaluator')\n , Normalizer = require('./visitor/normalizer')\n , events = new EventEmitter\n , utils = require('./utils')\n , nodes = require('./nodes')\n , join = require('path').join;\n\nclass Renderer extends EventEmitter {\n /**\n * Initialize a new `Renderer` with the given `str` and `options`.\n *\n * @param {String} str\n * @param {Object} options\n * @api public\n */\n\n constructor(str, options) {\n super();\n options = options || {};\n options.globals = options.globals || {};\n options.functions = options.functions || {};\n options.use = options.use || [];\n options.use = Array.isArray(options.use) ? options.use : [options.use];\n options.imports = [join(__dirname, 'functions/index.styl')].concat(options.imports || []);\n options.paths = options.paths || [];\n options.filename = options.filename || 'stylus';\n options.Evaluator = options.Evaluator || Evaluator;\n this.options = options;\n this.str = str;\n this.events = events;\n }\n\n /**\n * Parse and evaluate AST, then callback `fn(err, css, js)`.\n *\n * @param {Function} fn\n * @api public\n */\n\n render(fn) {\n var parser = this.parser = new Parser(this.str, this.options);\n\n // use plugin(s)\n for (var i = 0, len = this.options.use.length; i < len; i++) {\n this.use(this.options.use[i]);\n }\n\n try {\n nodes.filename = this.options.filename;\n // parse\n var ast = parser.parse();\n\n // evaluate\n this.evaluator = new this.options.Evaluator(ast, this.options);\n this.nodes = nodes;\n this.evaluator.renderer = this;\n ast = this.evaluator.evaluate();\n\n // normalize\n var normalizer = new Normalizer(ast, this.options);\n ast = normalizer.normalize();\n\n // compile\n var compiler = this.options.sourcemap\n ? new (require('./visitor/sourcemapper'))(ast, this.options)\n : new (require('./visitor/compiler'))(ast, this.options)\n , css = compiler.compile();\n\n // expose sourcemap\n if (this.options.sourcemap) this.sourcemap = compiler.map.toJSON();\n } catch (err) {\n var options = {};\n options.input = err.input || this.str;\n options.filename = err.filename || this.options.filename;\n options.lineno = err.lineno || parser.lexer.lineno;\n options.column = err.column || parser.lexer.column;\n if (!fn) throw utils.formatException(err, options);\n return fn(utils.formatException(err, options));\n }\n\n // fire `end` event\n var listeners = this.listeners('end');\n if (fn) listeners.push(fn);\n for (var i = 0, len = listeners.length; i < len; i++) {\n var ret = listeners[i](null, css);\n if (ret) css = ret;\n }\n if (!fn) return css;\n }\n\n /**\n * Get dependencies of the compiled file.\n *\n * @param {String} [filename]\n * @return {Array}\n * @api public\n */\n\n deps(filename) {\n var opts = utils.merge({ cache: false }, this.options);\n if (filename) opts.filename = filename;\n\n var DepsResolver = require('./visitor/deps-resolver')\n , parser = new Parser(this.str, opts);\n\n try {\n nodes.filename = opts.filename;\n // parse\n var ast = parser.parse()\n , resolver = new DepsResolver(ast, opts);\n\n // resolve dependencies\n return resolver.resolve();\n } catch (err) {\n var options = {};\n options.input = err.input || this.str;\n options.filename = err.filename || opts.filename;\n options.lineno = err.lineno || parser.lexer.lineno;\n options.column = err.column || parser.lexer.column;\n throw utils.formatException(err, options);\n }\n };\n\n /**\n * Set option `key` to `val`.\n *\n * @param {String} key\n * @param {Mixed} val\n * @return {Renderer} for chaining\n * @api public\n */\n\n set(key, val) {\n this.options[key] = val;\n return this;\n };\n\n /**\n * Get option `key`.\n *\n * @param {String} key\n * @return {Mixed} val\n * @api public\n */\n\n get(key) {\n return this.options[key];\n };\n\n /**\n * Include the given `path` to the lookup paths array.\n *\n * @param {String} path\n * @return {Renderer} for chaining\n * @api public\n */\n\n include(path) {\n this.options.paths.push(path);\n return this;\n };\n\n /**\n * Use the given `fn`.\n *\n * This allows for plugins to alter the renderer in\n * any way they wish, exposing paths etc.\n *\n * @param {Function}\n * @return {Renderer} for chaining\n * @api public\n */\n\n use(fn) {\n fn.call(this, this);\n return this;\n };\n\n /**\n * Define function or global var with the given `name`. Optionally\n * the function may accept full expressions, by setting `raw`\n * to `true`.\n *\n * @param {String} name\n * @param {Function|Node} fn\n * @param {Boolean} [raw]\n * @return {Renderer} for chaining\n * @api public\n */\n\n define(name, fn, raw) {\n fn = utils.coerce(fn, raw);\n\n if (fn.nodeName) {\n this.options.globals[name] = fn;\n return this;\n }\n\n // function\n this.options.functions[name] = fn;\n if (undefined != raw) fn.raw = raw;\n return this;\n };\n\n /**\n * Import the given `file`.\n *\n * @param {String} file\n * @return {Renderer} for chaining\n * @api public\n */\n\n import(file) {\n this.options.imports.push(file);\n return this;\n };\n};\n\n/**\n * Expose `Renderer`.\n */\n\nmodule.exports = Renderer;\n\n/**\n * Expose events explicitly.\n */\n\nmodule.exports.events = events;\n"],"names":["assertPath","path","TypeError","JSON","stringify","normalizeStringPosix","allowAboveRoot","code","res","lastSegmentLength","lastSlash","dots","i","length","charCodeAt","lastSlashIndex","lastIndexOf","slice","_format","sep","pathObject","dir","root","base","name","ext","posix","resolve","cwd","resolvedPath","resolvedAbsolute","arguments","undefined","process","normalize","isAbsolute","trailingSeparator","join","joined","arg","relative","from","to","fromStart","fromEnd","fromLen","toStart","toLen","lastCommonSep","fromCode","out","_makeLong","dirname","hasRoot","end","matchedSlash","basename","start","extIdx","firstNonSlashEnd","extname","startDot","startPart","preDotState","format","parse","ret","delimiter","win32","_module_exports_$m","Token","constructor","type","val","this","inspect","nodeUtil","lineno","column","toString","Visitor","visit","node","fn","method","units","Stack","Array","super","apply","push","frame","stack","parent","currentFrame","getBlockFrame","block","lookup","reverse","map","location","buf","len","filename","nodeName","nodes","Scope","locals","add","ident","hasOwnProperty","keys","Object","key","Frame","_scope","scope","_export_sync_","COMBINATORS","Parser$1","SelectorParser","str","parts","pos","level","nested","ignore","skip","substr","skipSpaces","advance","initial","escaped","partial","char","multi","raw","indexOf","range","number","Number","tmp","part","selector","trim","trimRight","_require_path_","_export_lookup_","paths","fs.statSync","err","_export_find_","found","glob.sync","sort","_export_lookupIndex_","replace","_export_formatException_","options","input","context","lines","split","Math","max","min","pad","line","curr","message","stylusStack","fromStylus","_export_assertType_","param","_export_assertPresent_","actual","Error","_export_assertString_","_export_assertColor_","_export_unwrap_","expr","preserve","_export_coerce_","String","Boolean","Unit","null","isArray","_export_coerceArray_","_export_coerceObject_","Expression","forEach","obj","Ident","set","_export_params_","match","_export_merge_","a","b","deep","k","nodeA","first","nodeB","vals","_export_uniq_","arr","_export_compileSelectors_","leaveHidden","selectors","Parser","_require__$selector_parser_","indent","parents","child","compile","isPlaceholder","inherits","unshift","shift","_export_parseString_","_require__$parser_","list","e","Literal","adjust","color","prop","amount","utils.assertColor","utils.assertString","utils.assertType","hsl","hsla","clone","hue","saturation","lightness","string","rgba","red","green","blue","alpha","RGBA","r","g","round","value","p","blend","top","bottom","_module_exports_","addProperty","utils.unwrap","Property","closestBlock","head","index","tail","concat","params","num","width","utils.assertPresent","result","componentMap","unitMap","typeMap","component","unit","luminosity","processChannel","channel","pow","contrast","isNull","l1","l2","ratio","resultRatio","onBlack","onWhite","topChannel","bottomChannel","closest","convert","utils.parseString","define","global","currentScope","toBoolean","isTrue","error","msg","HSLA","h","s","l","hslaColor","json","local","namePrefix","utils.lookup","get","readFile","leaveStrings","utils.coerce","isFalse","oldJson","call","prefix","listSeparator","isList","pattern","flags","re","RegExp","validateFlags","every","flag","math","n","operate","op","left","right","stop","step","remove","object","replacement","rgb","merge","dest","last","utils.merge","oppositePosition","positions","console","log","pathjoin","pop","convertAngle","unitName","rad","deg","PI","turn","grad","_require__$asin_","atan","trigValue","output","m","asin","convertedValue","_require__$visitor$compiler_","Compiler","compress","firebug","linenos","spaces","indents","needBrackets","hasOnlyProperties","visitRoot","debugInfo","visitBlock","lastPropertyIndex","separator","hasProperties","lacksRenderedSelectors","inline","suppress","visitKeyframes","frames","keyframe","visitMedia","media","hasOutput","visitQueryList","queries","visitQuery","predicate","visitFeature","isEmpty","visitImport","imported","visitAtrule","atrule","newline","visitSupports","isCondition","condition","visitComment","comment","visitFunction","visitCharset","charset","visitNamespace","namespace","visitLiteral","lit","css","visitBoolean","bool","visitRGBA","visitHSLA","visitUnit","float","includes","parseFloat","toFixed","visitGroup","group","comma","utils.compileSelectors","visitIdent","visitString","isURL","visitNull","visitCall","args","visitExpression","self","space","visitArguments","visitProperty","segments","fs.realpathSync","fmt","_","specifier","Normalizer","hoist","imports","bubble","props","other","filterProps","Selector","Group","Block","closestGroup","bubbled","Root","rootIndex","literal","charAt","extend","medias","mergeQueries","splice","filter","extends","groups","optional","_checkForPrefixedGroups","stackElement","selectorExists","sel","__selectorsMap__","visitor","_require___$visitor$normalizer_","pushToStack","parser","_require___$parser_","state","seg","selectorStack","_require___$selector_parser_","parsed","delim","splitted","ItemNode","tan","angle","radians","sin","cos","transparentify","bestAlpha","unquote","use","warn","prefixClasses","_prefix","_require__$add_property_","_require__$adjust_","_require__$alpha_","_require__$base_convert_","_require__$basename_","_require__$blend_","_require__$blue_","_require__$clone_","_require__$component_","_require__$contrast_","_require__$convert_","currentMedia","lookForMedia","_require__$define_","_require__$dirname_","_require__$error_","_require__$extname_","_require__$green_","_require__$hsl_","_require__$hsla_","_require__$hue_","_require__$image_size_","_require__$json_","_require__$length_","_require__$lightness_","_require__$list_separator_","_require__$lookup_","_require__$luminosity_","_require__$match_","_require__$math_","_module_exports_$5","_require__$merge_","_require__$operate_","_require__$opposite_position_","_require__$p_","_require__$pathjoin_","_require__$pop_","append","_require__$push_","_require__$range_","_require__$red_","_require__$remove_","_require__$replace_","_require__$rgb_","acos","_require__$rgba_","_require__$s_","_require__$saturation_","_require__$selector_exists_","_require__$selector_","_require__$shift_","_require__$split_","_require__$substr_","_require__$slice_","_require__$tan_","trace","_require__$transparentify_","typeof","_require__$type_","_require__$unit_","_require__$unquote_","prepend","_require__$unshift_","_require__$use_","_require__$warn_","_require__$math_prop_","_require__$prefix_classes_","colors","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","teal","thistle","tomato","transparent","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","rebeccapurple","url","URL","defaultMimes","encodingTypes","_module_exports_$4","_paths","sizeLimit","limit","mimes","enc","compiler","encoding","pathname","mime","hash","href","protocol","fs.readFileSync","toLowerCase","toUpperCase","events","emit","debug","_require_debug_","importFile","file","stat","importStack","once","requireHistory","includeCSS","mtime","_imports","resolveURL","lexer","currentBlock","nocheck","Evaluator","functions","globals","warnings","calling","return","setup","populateGlobalScope","Import","Function","_require___$functions$url_","evaluate","interpolate","visitReturn","query","visitObject","visitMember","keyframes","fabricated","vendors","bifs","visitEach","each","body","visitBody","mixin","ignoreColors","lookupFunction","unvendorize","literalCall","RangeError","invokeBuiltin","invokeFunction","property","lookupProperty","mixinNode","visitBinOp","binop","isDefined","false","true","visitUnaryOp","unary","negate","visitTernary","ternary","cond","trueExpr","falseExpr","castable","cast","_prop","Arguments","fromExpression","Call","visitAtblock","atblock","visitIf","ok","hasMedia","elses","postfix","visitExtend","test","utils.find","utils.lookupIndex","content","mixinBlock","propertyExpression","rest","invoke","utils.params","reduce","eval","_mixin","items","parentNode","mixinObject","toBlock","isSelector","prefixed","_selector","vendor","CoercionError","captureStackTrace","_require__$node_","Node","toJSON","toExpression","shouldCoerce","has","coerce","FACTOR_TABLE","mm","label","cm","in","pt","ms","Hz","kHz","sprintf","_require___$functions_","clampDegrees","clampPercentage","__type","fromHSLA","sub","adjustLightness","percent","adjustHue","static","d","clamp","fromRGBA","multiply","divide","m2","m1","_require__$atrule_","Atrule","hasOnlyPlaceholders","some","nativeObj","_require__$expression_","Null","Each","If","UnaryOp","BinOp","Ternary","inclusive","factorA","factorB","bVal","isNaN","quote","Return","Media","QueryList","merged","Query","feature","resolvedType","resolvedPredicate","pred","p1","p2","t1","t2","Feature","segs","Params","Comment","Keyframes","Member","Charset","Namespace","Extend","setValue","setKey","arity","Atblock","fileno","Supports","_module_exports_$1","ParseError","SyntaxError","alias","and","or","is","isnt","Lexer","offset","inComment","commentIdx","double","single","stash","indentStack","indentRe","tok","next","lookahead","fetch","chunk","move","idx","stashed","prev","isPartOfSelector","eos","keyword","urlchars","important","anonFunc","function","brace","paren","namedop","boolean","unicode","token","eol","peek","captures","exec","c","braces","anonymous","errors.SyntaxError","rrggbbaa","rrggbb","nn","parseInt","systemLittleEndian","Uint16Array","Uint8Array","buffer","align","address","alignment","hexify","parity","x","y","z","majority","rotateLeft","bits","w","Uint32Array","sha1","bytes","ArrayBuffer","byteLength","data","dataU8","_i","bitLength","h0","h1","h2","h3","h4","_len","createHash","update","_data","digest","TextEncoder","encode","_require__$memory_","MemoryCache","_cache","item","purge","crypto.createHash","_require__$null_","NullCache","getCache","cache","selectorTokens","pseudoSelectors","parens","prevState","currentState","previousState","skipWhitespace","stmt","statement","accept","errors.ParseError","expect","isSelectorToken","la","bracketed","isPseudoSelector","lineContains","selectorToken","tokens","skipNewlines","skipSpacesAndComments","looksLikeFunctionDefinition","looksLikeSelector","fromProperty","looksLikeAttributeSelector","looksLikeKeyframe","stateAllowsSelector","assignAtblock","allowPostfix","expression","id","mozdocument","functionCall","for","unless","if","selectorParts","selectorScope","supports","supportsCondition","supportsNegation","supportsOp","supportsFeature","inProperty","calls","import","require","assignment","_ident","subscript","operand","isRoot","defined","functionDefinition","withBlock","negation","logical","typecheck","equality","relational","additive","multiplicative","member","primary","EventLite","_module_","exports","methods","on","func","getListeners","that","wrap","originalListener","off","listeners","arglen","zeroarg","onearg","prototype","moreargs","target","listners","ne","readonly","EventLite$1","_export_EventEmitter_","_require__$visitor$deps_resolver_","DepsResolver","deps","oldPath","utils.uniq","EventEmitter","Renderer","render","ast","evaluator","renderer","sourcemap","utils.formatException","opts","include"],"mappings":"2CA0BA,SAASA,WAAWC,GAClB,GAAoB,iBAATA,EACT,MAAM,IAAIC,UAAU,mCAAqCC,KAAKC,UAAUH,GAE5E,CAGA,SAASI,qBAAqBJ,EAAMK,GAMlC,IALA,IAIIC,EAJAC,EAAM,GACNC,EAAoB,EACpBC,GAAa,EACbC,EAAO,EAEFC,EAAI,EAAGA,GAAKX,EAAKY,SAAUD,EAAG,CACrC,GAAIA,EAAIX,EAAKY,OACXN,EAAON,EAAKa,WAAWF,OACpB,IAAa,KAATL,EACP,MAEAA,EAAO,EAAS,CAClB,GAAa,KAATA,EAAmB,CACrB,GAAIG,IAAcE,EAAI,GAAc,IAATD,QAEpB,GAAID,IAAcE,EAAI,GAAc,IAATD,EAAY,CAC5C,GAAIH,EAAIK,OAAS,GAA2B,IAAtBJ,GAA8D,KAAnCD,EAAIM,WAAWN,EAAIK,OAAS,IAAsD,KAAnCL,EAAIM,WAAWN,EAAIK,OAAS,GAC1H,GAAIL,EAAIK,OAAS,EAAG,CAClB,IAAIE,EAAiBP,EAAIQ,YAAY,KACrC,GAAID,IAAmBP,EAAIK,OAAS,EAAG,EACb,IAApBE,GACFP,EAAM,GACNC,EAAoB,GAGpBA,GADAD,EAAMA,EAAIS,MAAM,EAAGF,IACKF,OAAS,EAAIL,EAAIQ,YAAY,KAEvDN,EAAYE,EACZD,EAAO,EACP,QACD,CACb,MAAiB,GAAmB,IAAfH,EAAIK,QAA+B,IAAfL,EAAIK,OAAc,CAC/CL,EAAM,GACNC,EAAoB,EACpBC,EAAYE,EACZD,EAAO,EACP,QACD,CAECL,IACEE,EAAIK,OAAS,EACfL,GAAO,MAEPA,EAAM,KACRC,EAAoB,EAE9B,MACYD,EAAIK,OAAS,EACfL,GAAO,IAAMP,EAAKgB,MAAMP,EAAY,EAAGE,GAEvCJ,EAAMP,EAAKgB,MAAMP,EAAY,EAAGE,GAClCH,EAAoBG,EAAIF,EAAY,EAEtCA,EAAYE,EACZD,EAAO,CACR,MAAmB,KAATJ,IAA+B,IAAVI,IAC5BA,EAEFA,GAAQ,CAEX,CACD,OAAOH,CACT,CAEA,SAASU,QAAQC,EAAKC,GACpB,IAAIC,EAAMD,EAAWC,KAAOD,EAAWE,KACnCC,EAAOH,EAAWG,OAASH,EAAWI,MAAQ,KAAOJ,EAAWK,KAAO,IAC3E,OAAKJ,EAGDA,IAAQD,EAAWE,KACdD,EAAME,EAERF,EAAMF,EAAMI,EALVA,CAMX,CAEA,IAAIG,EAAQ,CAEVC,QAAS,SAASA,UAKhB,IAJA,IAEIC,EAFAC,EAAe,GACfC,GAAmB,EAGdlB,EAAImB,UAAUlB,OAAS,EAAGD,IAAM,IAAMkB,EAAkBlB,IAAK,CACpE,IAAIX,EACAW,GAAK,EACPX,EAAO8B,UAAUnB,SAELoB,IAARJ,IACFA,EAAMK,QAAQL,OAChB3B,EAAO2B,GAGT5B,WAAWC,GAGS,IAAhBA,EAAKY,SAITgB,EAAe5B,EAAO,IAAM4B,EAC5BC,EAA0C,KAAvB7B,EAAKa,WAAW,GACpC,CAQD,OAFAe,EAAexB,qBAAqBwB,GAAeC,GAE/CA,EACED,EAAahB,OAAS,EACjB,IAAMgB,EAEN,IACAA,EAAahB,OAAS,EACxBgB,EAEA,GAEV,EAEDK,UAAW,SAASA,UAAUjC,GAG5B,GAFAD,WAAWC,GAES,IAAhBA,EAAKY,OAAc,MAAO,IAE9B,IAAIsB,EAAoC,KAAvBlC,EAAKa,WAAW,GAC7BsB,EAAyD,KAArCnC,EAAKa,WAAWb,EAAKY,OAAS,GAQtD,OAHoB,KAFpBZ,EAAOI,qBAAqBJ,GAAOkC,IAE1BtB,QAAiBsB,IAAYlC,EAAO,KACzCA,EAAKY,OAAS,GAAKuB,IAAmBnC,GAAQ,KAE9CkC,EAAmB,IAAMlC,EACtBA,CACR,EAEDkC,WAAY,SAASA,WAAWlC,GAE9B,OADAD,WAAWC,GACJA,EAAKY,OAAS,GAA4B,KAAvBZ,EAAKa,WAAW,EAC3C,EAEDuB,KAAM,SAASA,OACb,GAAyB,IAArBN,UAAUlB,OACZ,MAAO,IAET,IADA,IAAIyB,EACK1B,EAAI,EAAGA,EAAImB,UAAUlB,SAAUD,EAAG,CACzC,IAAI2B,EAAMR,UAAUnB,GACpBZ,WAAWuC,GACPA,EAAI1B,OAAS,SACAmB,IAAXM,EACFA,EAASC,EAETD,GAAU,IAAMC,EAErB,CACD,YAAeP,IAAXM,EACK,IACFZ,EAAMQ,UAAUI,EACxB,EAEDE,SAAU,SAASA,SAASC,EAAMC,GAIhC,GAHA1C,WAAWyC,GACXzC,WAAW0C,GAEPD,IAASC,EAAI,MAAO,GAKxB,IAHAD,EAAOf,EAAMC,QAAQc,OACrBC,EAAKhB,EAAMC,QAAQe,IAEF,MAAO,GAIxB,IADA,IAAIC,EAAY,EACTA,EAAYF,EAAK5B,QACa,KAA/B4B,EAAK3B,WAAW6B,KADYA,GASlC,IALA,IAAIC,EAAUH,EAAK5B,OACfgC,EAAUD,EAAUD,EAGpBG,EAAU,EACPA,EAAUJ,EAAG7B,QACa,KAA3B6B,EAAG5B,WAAWgC,KADUA,GAW9B,IAPA,IACIC,EADQL,EAAG7B,OACKiC,EAGhBjC,EAASgC,EAAUE,EAAQF,EAAUE,EACrCC,GAAiB,EACjBpC,EAAI,EACDA,GAAKC,IAAUD,EAAG,CACvB,GAAIA,IAAMC,EAAQ,CAChB,GAAIkC,EAAQlC,EAAQ,CAClB,GAAmC,KAA/B6B,EAAG5B,WAAWgC,EAAUlC,GAG1B,OAAO8B,EAAGzB,MAAM6B,EAAUlC,EAAI,GACzB,GAAU,IAANA,EAGT,OAAO8B,EAAGzB,MAAM6B,EAAUlC,EAEtC,MAAmBiC,EAAUhC,IACoB,KAAnC4B,EAAK3B,WAAW6B,EAAY/B,GAG9BoC,EAAgBpC,EACD,IAANA,IAGToC,EAAgB,IAGpB,KACD,CACD,IAAIC,EAAWR,EAAK3B,WAAW6B,EAAY/B,GAE3C,GAAIqC,IADSP,EAAG5B,WAAWgC,EAAUlC,GAEnC,MACoB,KAAbqC,IACPD,EAAgBpC,EACnB,CAED,IAAIsC,EAAM,GAGV,IAAKtC,EAAI+B,EAAYK,EAAgB,EAAGpC,GAAKgC,IAAWhC,EAClDA,IAAMgC,GAAkC,KAAvBH,EAAK3B,WAAWF,KAChB,IAAfsC,EAAIrC,OACNqC,GAAO,KAEPA,GAAO,OAMb,OAAIA,EAAIrC,OAAS,EACRqC,EAAMR,EAAGzB,MAAM6B,EAAUE,IAEhCF,GAAWE,EACoB,KAA3BN,EAAG5B,WAAWgC,MACdA,EACGJ,EAAGzB,MAAM6B,GAEnB,EAEDK,UAAW,SAASA,UAAUlD,GAC5B,OAAOA,CACR,EAEDmD,QAAS,SAASA,QAAQnD,GAExB,GADAD,WAAWC,GACS,IAAhBA,EAAKY,OAAc,MAAO,IAK9B,IAJA,IAAIN,EAAON,EAAKa,WAAW,GACvBuC,EAAmB,KAAT9C,EACV+C,GAAO,EACPC,GAAe,EACV3C,EAAIX,EAAKY,OAAS,EAAGD,GAAK,IAAKA,EAEtC,GAAa,MADbL,EAAON,EAAKa,WAAWF,KAEnB,IAAK2C,EAAc,CACjBD,EAAM1C,EACN,KACD,OAGH2C,GAAe,EAInB,OAAa,IAATD,EAAmBD,EAAU,IAAM,IACnCA,GAAmB,IAARC,EAAkB,KAC1BrD,EAAKgB,MAAM,EAAGqC,EACtB,EAEDE,SAAU,SAASA,SAASvD,EAAMwB,GAChC,QAAYO,IAARP,GAAoC,iBAARA,EAAkB,MAAM,IAAIvB,UAAU,mCACtEF,WAAWC,GAEX,IAGIW,EAHA6C,EAAQ,EACRH,GAAO,EACPC,GAAe,EAGnB,QAAYvB,IAARP,GAAqBA,EAAIZ,OAAS,GAAKY,EAAIZ,QAAUZ,EAAKY,OAAQ,CACpE,GAAIY,EAAIZ,SAAWZ,EAAKY,QAAUY,IAAQxB,EAAM,MAAO,GACvD,IAAIyD,EAASjC,EAAIZ,OAAS,EACtB8C,GAAoB,EACxB,IAAK/C,EAAIX,EAAKY,OAAS,EAAGD,GAAK,IAAKA,EAAG,CACrC,IAAIL,EAAON,EAAKa,WAAWF,GAC3B,GAAa,KAATL,GAGA,IAAKgD,EAAc,CACjBE,EAAQ7C,EAAI,EACZ,KACD,OAEuB,IAAtB+C,IAGFJ,GAAe,EACfI,EAAmB/C,EAAI,GAErB8C,GAAU,IAERnD,IAASkB,EAAIX,WAAW4C,IACR,KAAZA,IAGJJ,EAAM1C,IAKR8C,GAAU,EACVJ,EAAMK,GAIb,CAGD,OADIF,IAAUH,EAAKA,EAAMK,GAAmC,IAATL,IAAYA,EAAMrD,EAAKY,QACnEZ,EAAKgB,MAAMwC,EAAOH,EAC/B,CACM,IAAK1C,EAAIX,EAAKY,OAAS,EAAGD,GAAK,IAAKA,EAClC,GAA2B,KAAvBX,EAAKa,WAAWF,IAGhB,IAAK2C,EAAc,CACjBE,EAAQ7C,EAAI,EACZ,KACD,OACiB,IAAT0C,IAGXC,GAAe,EACfD,EAAM1C,EAAI,GAId,OAAa,IAAT0C,EAAmB,GAChBrD,EAAKgB,MAAMwC,EAAOH,EAE5B,EAEDM,QAAS,SAASA,QAAQ3D,GACxBD,WAAWC,GAQX,IAPA,IAAI4D,GAAY,EACZC,EAAY,EACZR,GAAO,EACPC,GAAe,EAGfQ,EAAc,EACTnD,EAAIX,EAAKY,OAAS,EAAGD,GAAK,IAAKA,EAAG,CACzC,IAAIL,EAAON,EAAKa,WAAWF,GAC3B,GAAa,KAATL,GASS,IAAT+C,IAGFC,GAAe,EACfD,EAAM1C,EAAI,GAEC,KAATL,GAEkB,IAAdsD,EACFA,EAAWjD,EACY,IAAhBmD,IACPA,EAAc,IACK,IAAdF,IAGTE,GAAe,QArBb,IAAKR,EAAc,CACjBO,EAAYlD,EAAI,EAChB,KACD,CAoBN,CAED,OAAkB,IAAdiD,IAA4B,IAATP,GAEH,IAAhBS,GAEgB,IAAhBA,GAAqBF,IAAaP,EAAM,GAAKO,IAAaC,EAAY,EACjE,GAEF7D,EAAKgB,MAAM4C,EAAUP,EAC7B,EAEDU,OAAQ,SAASA,OAAO5C,GACtB,GAAmB,OAAfA,GAA6C,iBAAfA,EAChC,MAAM,IAAIlB,UAAU,0EAA4EkB,GAElG,OAAOF,QAAQ,IAAKE,EACrB,EAED6C,MAAO,SAASA,MAAMhE,GACpBD,WAAWC,GAEX,IAAIiE,EAAM,CAAE5C,KAAM,GAAID,IAAK,GAAIE,KAAM,GAAIE,IAAK,GAAID,KAAM,IACxD,GAAoB,IAAhBvB,EAAKY,OAAc,OAAOqD,EAC9B,IAEIT,EAFAlD,EAAON,EAAKa,WAAW,GACvBqB,EAAsB,KAAT5B,EAEb4B,GACF+B,EAAI5C,KAAO,IACXmC,EAAQ,GAERA,EAAQ,EAaV,IAXA,IAAII,GAAY,EACZC,EAAY,EACZR,GAAO,EACPC,GAAe,EACf3C,EAAIX,EAAKY,OAAS,EAIlBkD,EAAc,EAGXnD,GAAK6C,IAAS7C,EAEnB,GAAa,MADbL,EAAON,EAAKa,WAAWF,KAUV,IAAT0C,IAGFC,GAAe,EACfD,EAAM1C,EAAI,GAEC,KAATL,GAEkB,IAAdsD,EAAiBA,EAAWjD,EAA2B,IAAhBmD,IAAmBA,EAAc,IACrD,IAAdF,IAGXE,GAAe,QAlBb,IAAKR,EAAc,CACjBO,EAAYlD,EAAI,EAChB,KACD,CAwCP,OArBkB,IAAdiD,IAA4B,IAATP,GAEP,IAAhBS,GAEgB,IAAhBA,GAAqBF,IAAaP,EAAM,GAAKO,IAAaC,EAAY,GACvD,IAATR,IACiCY,EAAI3C,KAAO2C,EAAI1C,KAAhC,IAAdsC,GAAmB3B,EAAkClC,EAAKgB,MAAM,EAAGqC,GAAgCrD,EAAKgB,MAAM6C,EAAWR,KAG7G,IAAdQ,GAAmB3B,GACrB+B,EAAI1C,KAAOvB,EAAKgB,MAAM,EAAG4C,GACzBK,EAAI3C,KAAOtB,EAAKgB,MAAM,EAAGqC,KAEzBY,EAAI1C,KAAOvB,EAAKgB,MAAM6C,EAAWD,GACjCK,EAAI3C,KAAOtB,EAAKgB,MAAM6C,EAAWR,IAEnCY,EAAIzC,IAAMxB,EAAKgB,MAAM4C,EAAUP,IAG7BQ,EAAY,EAAGI,EAAI7C,IAAMpB,EAAKgB,MAAM,EAAG6C,EAAY,GAAY3B,IAAY+B,EAAI7C,IAAM,KAElF6C,CACR,EAED/C,IAAK,IACLgD,UAAW,IACXC,MAAO,KACP1C,MAAO;;;;;KAGTA,EAAMA,MAAQA,ECjgBd2C,EAAA,MAAAC,MASAC,YAAAC,EAAAC,GACAC,KAAAF,KAAAA,EACAE,KAAAD,IAAAA,CACA,CASAE,UACA,IAAAF,EAAA,IAAoBG,SAAOD,QAAAD,KAAAD,KAC3B,MAAA,UAAAC,KAAAG,OAAA,IAAAH,KAAAI,OAAA,SACAJ,KAAAF,KADA,aAEAE,KAAAD,IAAAA,EAAA,IAFA,OAIA,CASAM,WACA,YAAA/C,IAAA0C,KAAAD,IACAC,KAAAF,KACAE,KAAAD,KAAAM,UACA;;;;;MC9CA,IAAAC,EAAA,MAAuBA,QAQrBT,YAAYjD,GACVoD,KAAKpD,KAAOA,CACb,CASD2D,MAAMC,EAAMC,GACV,IAAIC,EAAS,QAAUF,EAAKX,YAAY/C,KACxC,OAAIkD,KAAKU,GAAgBV,KAAKU,GAAQF,GAC/BA,CACR,GCpBcG,EAAA,CACb,KAAM,KAAM,KAAM,MAElB,KAAM,MAAO,MAAO,MACpB,KAAM,MAAO,MAAO,MACpB,KAAM,MAAO,MAAO,MACpB,KAAM,MAAO,MAAO,MACpB,OAAQ,QAAS,QAAS,QAC1B,OAAQ,QAAS,QAAS,QAE1B,KAAM,KAAM,KAAM,KAAM,KAAM,KAC9B,MAAO,OAAQ,MAAO,OACtB,IAAK,KACL,KAAM,MACN,MAAO,OAAQ,OAAQ,IACvB,IACA,MCnBJC,EAAiB,MAAMA,cAAcC,MAOnChB,cACEiB,QACAD,MAAME,MAAMf,KAAM3C,UACnB,CASD2D,KAAKC,GAGH,OAFAA,EAAMC,MAAQlB,KACdiB,EAAME,OAASnB,KAAKoB,aACb,GAAGJ,KAAKD,MAAMf,KAAM3C,UAC5B,CASG+D,mBACF,OAAOpB,KAAKA,KAAK7D,OAAS,EAC3B,CAUDkF,cAAcC,GACZ,IAAK,IAAIpF,EAAI,EAAGA,EAAI8D,KAAK7D,SAAUD,EACjC,GAAIoF,GAAStB,KAAK9D,GAAGoF,MACnB,OAAOtB,KAAK9D,EAGjB,CAeDqF,OAAOzE,GACF,IACCiD,EADAuB,EAAQtB,KAAKoB,aAAaE,MAI9B,EAAG,CACD,IAAIL,EAAQjB,KAAKqB,cAAcC,GAC/B,GAAIL,IAAUlB,EAAMkB,EAAMM,OAAOzE,IAC/B,OAAOiD,CAEf,OAAauB,EAAQA,EAAMH,OACxB,CASDlB,UACE,OAAOD,KAAKwB,UAAUC,KAAI,SAAUR,GAClC,OAAOA,EAAMhB,SACnB,IAAOtC,KAAK,KACT,CAWD0C,WAOE,IANA,IACIG,EAEAkB,EADAC,EAAM,GAENC,EAAM5B,KAAK7D,OAERyF,KAEL,GAAIpB,EADIR,KAAK4B,GAAKN,MACDd,KAEf,OADAkB,EAAW,IAAMlB,EAAKqB,SAAW,KAAOrB,EAAKL,OAAS,GAAK,IAAMK,EAAKJ,OAAS,IACvEI,EAAKsB,UACX,IAAK,WACHH,EAAIX,KAAK,UAAYR,EAAK1D,KAAO,MAAQ4E,GACzC,MACF,IAAK,QACHC,EAAIX,KAAK,WAAaR,EAAKuB,MAAM,GAAGhC,IAAM,KAAO2B,GAMzD,OAAOC,EAAIhE,KAAK,KACjB,GC3HHqE,EAAA,MAAuBA,MAOrBnC,cACEG,KAAKiC,OAAS,EACf,CASDC,IAAIC,GACFnC,KAAKiC,OAAOE,EAAMrF,MAAQqF,EAAMpC,GACjC,CAUDwB,OAAOzE,GACL,OAAOkD,KAAKiC,OAAOG,eAAetF,GAAQkD,KAAKiC,OAAOnF,QAAQQ,CAC/D,CASD2C,UACE,IAAIoC,EAAOC,OAAOD,KAAKrC,KAAKiC,QAAQR,KAAI,SAAUc,GAAO,MAAO,IAAMA,CAAM,IAC5E,MAAO,UACFF,EAAKlG,OAAS,IAAMkG,EAAK1E,KAAK,MAAQ,IACvC,GACL,GCxCH6E,EAAA,MAAuBA,MAQrB3C,YAAYyB,GACVtB,KAAKyC,QAAS,IAAUnB,EAAMoB,MAC1B,KACA,IAAIV,EACRhC,KAAKsB,MAAQA,CACd,CAUGoB,YACF,OAAO1C,KAAKyC,QAAUzC,KAAKmB,OAAOuB,KACnC,CAUDnB,OAAOzE,GACL,OAAOkD,KAAK0C,MAAMnB,OAAOzE,EAC1B,CASDmD,UACE,MAAO,YACF,IAAUD,KAAKsB,MAAMoB,MACpB,aACA1C,KAAK0C,MAAMzC,WACb,GACL;;;;;KCjEH,MACQ0C,cAAApH,GACS,yBAATA,EACK,CAACA,GAEH;;;;;;ACCX,IAAIqH,EAAc,CAAC,IAAK,IAAK,KAEZC,EAAA,MAAMC,eAWrBjD,YAAYkD,EAAK7B,EAAO8B,GACtBhD,KAAK+C,IAAMA,EACX/C,KAAKkB,MAAQA,GAAS,GACtBlB,KAAKgD,MAAQA,GAAS,GACtBhD,KAAKiD,IAAM,EACXjD,KAAKkD,MAAQ,EACblD,KAAKmD,QAAS,EACdnD,KAAKoD,QAAS,CACf,CASDC,KAAKzB,GACH5B,KAAK+C,IAAM/C,KAAK+C,IAAIO,OAAO1B,GAC3B5B,KAAKiD,KAAOrB,CACb,CAMD2B,aACE,KAAO,KAAOvD,KAAK+C,IAAI,IAAI/C,KAAKqD,KAAK,EACtC,CASDG,UACE,OAAOxD,KAAKpD,QACPoD,KAAKlC,YACLkC,KAAKyD,WACLzD,KAAK0D,WACL1D,KAAKmB,UACLnB,KAAK2D,WACL3D,KAAK4D,MACX,CAMDhH,OACOoD,KAAKiD,KAAO,KAAOjD,KAAK+C,IAAI,IAC5B,QAAU/C,KAAK+C,IAAIxG,MAAM,EAAG,KAC/ByD,KAAKmD,QAAS,EACdnD,KAAKqD,KAAK,GAEb,CAMDvF,SAAS+F,GACP,KAAM7D,KAAKiD,KAAOY,IAAU,OAAS7D,KAAK+C,IAAIxG,MAAM,EAAG,GAAI,CAGzD,IAFAyD,KAAKmD,QAAS,EACdnD,KAAKqD,KAAK,GACHrD,KAAKlC,UAAS,IAAOkC,KAAKkD,QACjC,IAAKlD,KAAK8D,IAAK,CACb,IAAItE,EAAMQ,KAAKkB,MAAMlB,KAAKkB,MAAM/E,OAAS6D,KAAKkD,OAC9C,GAAI1D,EACF,OAAOA,EAEPQ,KAAKoD,QAAS,CAEjB,CACF,CACF,CAMDK,UACE,IAAKzD,KAAKiD,KAAO,KAAOjD,KAAK+C,IAAI,IAAM,KAAO/C,KAAK+C,IAAI,GAGrD,OAFA/C,KAAKmD,QAAS,EACdnD,KAAKqD,KAAK,GACHrD,KAAKkB,MAAM,EAErB,CAMDwC,UACE,GAAI,MAAQ1D,KAAK+C,IAAI,GAAI,CACvB,IAAIa,EAAO5D,KAAK+C,IAAI,GACpB,GAAI,KAAOa,GAAQ,KAAOA,EAExB,OADA5D,KAAKqD,KAAK,GACHO,CAEV,CACF,CAMDzC,SACE,GAAI,KAAOnB,KAAK+C,IAAI,GAAI,CAGtB,GAFA/C,KAAKmD,QAAS,GAETnD,KAAKiD,OAASjD,KAAKkB,MAAM/E,QAAU6D,KAAK8D,KAAM,CAEjD,IADA,IAAI5H,EAAI,EACD,KAAO8D,KAAK+C,MAAM7G,KACzB,IAAK0G,EAAYmB,QAAQ/D,KAAK+C,IAAI7G,IAEhC,YADA8D,KAAKqD,KAAKnH,EAAI,EAGjB,CAGD,GADA8D,KAAKqD,KAAK,IACLrD,KAAK8D,IACR,OAAO9D,KAAKkB,MAAMlB,KAAKkB,MAAM/E,OAAS,EACzC,CACF,CAMDwH,UACE,GAAI,KAAO3D,KAAK+C,IAAI,IAAM,KAAO/C,KAAK+C,IAAI,GAAI,CAC5C/C,KAAKqD,KAAK,GACVrD,KAAKuD,aACL,IAAI/D,EAAMQ,KAAKgE,QAEf,GADAhE,KAAKuD,aACD,KAAOvD,KAAK+C,IAAI,GAAI,MAAO,KAG/B,GAFA/C,KAAKmD,QAAS,EACdnD,KAAKqD,KAAK,GACN7D,EACF,OAAOA,EAEPQ,KAAKoD,QAAS,CAEjB,CACF,CAMDa,SACE,IAAI/H,EAAI,EAAGsD,EAAM,GAIjB,IAHI,KAAOQ,KAAK+C,IAAI7G,KAClBsD,GAAOQ,KAAK+C,IAAI7G,MAEX8D,KAAK+C,IAAI3G,WAAWF,IAAM,IAC5B8D,KAAK+C,IAAI3G,WAAWF,IAAM,IAC7BsD,GAAOQ,KAAK+C,IAAI7G,KAElB,GAAIsD,EAEF,OADAQ,KAAKqD,KAAKnH,GACHgI,OAAO1E,EAEjB,CAMDwE,QACE,IACIxE,EADAT,EAAQiB,KAAKiE,SAGjB,GAAI,MAAQjE,KAAK+C,IAAIxG,MAAM,EAAG,GAAI,CAChCyD,KAAKqD,KAAK,GACV,IAAIzE,EAAMoB,KAAKiE,SACXrC,EAAM5B,KAAKgD,MAAM7G,OAKrB,GAHI4C,EAAQ,IAAGA,EAAQ6C,EAAM7C,EAAQ,GACjCH,EAAM,IAAGA,EAAMgD,EAAMhD,EAAM,GAE3BG,EAAQH,EAAK,CACf,IAAIuF,EAAMpF,EACVA,EAAQH,EACRA,EAAMuF,CACP,CAEGvF,EAAMgD,EAAM,IACdpC,EAAMQ,KAAKgD,MAAMzG,MAAMwC,EAAOH,EAAM,GAAG6C,KAAI,SAAU2C,GACnD,IAAIC,EAAW,IAAIvB,eAAesB,EAAMpE,KAAKkB,MAAOlB,KAAKgD,OAEzD,OADAqB,EAASP,KAAM,EACRO,EAAS9E,OACjB,GAAES,MAAMyB,KAAI,SAAU4C,GACrB,OAAQA,EAASlB,OAAS,IAAM,IAAMkB,EAAStE,GAChD,IAAEpC,KAAK,IAAI2G,OAEpB,MACM9E,EAAMQ,KAAKkB,MACTnC,EAAQ,EAAIiB,KAAKkB,MAAM/E,OAAS4C,EAAQ,EAAIA,GAIhD,GAAIS,EACF,OAAOA,EAEPQ,KAAKoD,QAAS,CAEjB,CAMDQ,OACE,IAAIA,EAAO5D,KAAK+C,IAAI,GAEpB,OADA/C,KAAKqD,KAAK,GACHO,CACR,CASDrE,QAEE,IADA,IAAIQ,EAAM,GACHC,KAAK+C,IAAI5G,QAEd,GADA4D,GAAOC,KAAKwD,WAAa,GACrBxD,KAAKoD,OAAQ,CACfrD,EAAM,GACN,KACD,CAEH,MAAO,CAAEA,IAAKA,EAAIwE,YAAapB,OAAQnD,KAAKmD,OAC7C,uBCtPC,IAAArE,EAAW0F,EAAgB1F,SAChB0F,EAAgB1G,aAC3BH,EAAO6G,EAAgB7G,KACV6G,EAAgB/G,WA6BjC,MAAAgH,gBAAiB,SAASlJ,EAAMmJ,EAAOtB,GAkBrC,IAjBA,IAAI7B,EACArF,EAAIwI,EAAMvI,OAgBPD,KACL,IAEE,GAAIkH,IADJ7B,EAAS5D,EAAK+G,EAAMxI,GAAIX,IACF,SAEtB,OADAoJ,kBAAYpD,GACLA,CAGR,CAFC,MAAOqD,GAER,CAEL,EAWAC,EAAe,SAAStJ,EAAMmJ,EAAOtB,GAanC,IAZA,IAAI7B,EACAuD,EACA5I,EAAIwI,EAAMvI,OAUPD,KAEL,GAAIkH,IADJ7B,EAAS5D,EAAK+G,EAAMxI,GAAIX,MAEnBuJ,EAAQC,cAAUxD,IAAoDpF,OACzE,OAAO2I,EAAME,MAGnB,EAUA,MAAAC,qBAAsB,SAASnI,EAAM4H,EAAO7C,GAE1C,IAAIiD,EAAQD,EAAalH,EAAKb,EAAM,cAAe4H,EAAO7C,GAK1D,OAJKiD,IAEHA,EAAQD,EAAalH,EAAKb,EAAMgC,EAAShC,GAAMoI,QAAQ,UAAW,IAAM,SAAUR,EAAO7C,IAoB1FiD,CACH,EAmB0BK,yBAAA,SAASP,EAAKQ,GACtC,IAAIjF,EAASiF,EAAQjF,OACjBC,EAASgF,EAAQhF,OACjByB,EAAWuD,EAAQvD,SACnBkB,EAAMqC,EAAQC,MAEdC,GADAA,EAAUF,EAAQE,SAAW,GACT,EACpBC,GAAS,KAAOxC,GAAKyC,MAAM,MAC3BzG,EAAQ0G,KAAKC,IAAIvF,EAASmF,EAAS,GACnC1G,EAAM6G,KAAKE,IAAIJ,EAAMpJ,OAAQgE,EAASmF,GACtCM,EAAMhH,EAAIyB,WAAWlE,OAErBmJ,EAAUC,EAAMhJ,MAAMwC,EAAOH,GAAK6C,KAAI,SAASoE,EAAM3J,GACvD,IAAI4J,EAAO5J,EAAI6C,EACf,MAAO,MACH8B,MAAM+E,EAAME,EAAKzF,WAAWlE,OAAS,GAAGwB,KAAK,KAC7CmI,EACA,KACAD,GACCC,GAAQ3F,EACP,KAAOU,MAAMiF,EAAKzF,WAAWlE,OAAS,EAAIiE,GAAQzC,KAAK,KAAO,IAC9D,GACV,IAAKA,KAAK,MAYR,OAVAiH,EAAImB,QAAUlE,EACV,IAAM1B,EACN,IAAMC,EACN,KAAOkF,EACP,OAASV,EAAImB,QAAU,MACtBnB,EAAIoB,YAAcpB,EAAIoB,YAAc,KAAO,IAG5CpB,EAAIqB,aAAYrB,EAAI1D,MAAQ,UAAY0D,EAAImB,SAEzCnB,CACT,EAWqBsB,oBAAA,SAAS1F,EAAMV,EAAMqG,GAExC,GADAC,EAAsB5F,EAAM2F,GACxB3F,EAAKsB,UAAYhC,EAArB,CACA,IAAIuG,EAAS7F,EAAKsB,SAKlB,MAAM,IAAIwE,MAAM,eAJN,aACHH,EAAQ,IAAMA,EAAQ,aAAgB,IACvCrG,EAAO,aACPuG,EAAS,IAAM7F,GALa,CAOpC,EAUuB+F,sBAAA,SAAS/F,EAAM2F,GAEpC,OADAC,EAAsB5F,EAAM2F,GACpB3F,EAAKsB,UACX,IAAK,SACL,IAAK,QACL,IAAK,UACH,OACF,QACE,IAAIuE,EAAS7F,EAAKsB,SAElB,MAAM,IAAIwE,MAAM,eADN,8CAAgDD,EAAS,IAAM7F,IAG/E,EAUsBgG,qBAAA,SAAShG,EAAM2F,GAEnC,OADAC,EAAsB5F,EAAM2F,GACpB3F,EAAKsB,UACX,IAAK,OACL,IAAK,OACH,OACF,QACE,IAAIuE,EAAS7F,EAAKsB,SAElB,MAAM,IAAIwE,MAAM,eADN,kCAAoCD,EAAS,IAAM7F,IAGnE,EAUA4F,EAAwB,SAAS5F,EAAM1D,GACrC,IAAI0D,EAAJ,CACA,GAAI1D,EAAM,MAAM,IAAIwJ,MAAM,IAAMxJ,EAAO,uBACvC,MAAM,IAAIwJ,MAAM,mBAFC,CAGnB,EAaAG,EAAiB,SAASC,GAExB,OAAIA,EAAKC,UACL,aAAeD,EAAK5E,UAAY,cAAgB4E,EAAK5E,UACrD,GAAK4E,EAAK3E,MAAM5F,QAChB,aAAeuK,EAAK3E,MAAM,GAAGD,UAAY,cAAgB4E,EAAK3E,MAAM,GAAGD,SAHjD4E,EAInBD,EAAeC,EAAK3E,MAAM,GACnC,EAWA6E,EAAiB,SAAS7G,EAAK+D,GAC7B,cAAe/D,GACb,IAAK,WACH,OAAOA,EACT,IAAK,SACH,OAAO,IAAIgC,GAAM8E,OAAO9G,GAC1B,IAAK,UACH,OAAO,IAAIgC,GAAM+E,QAAQ/G,GAC3B,IAAK,SACH,OAAO,IAAIgC,GAAMgF,KAAKhH,GACxB,QACE,OAAI,MAAQA,EAAYgC,GAAMiF,KAC1BnG,MAAMoG,QAAQlH,GAAamH,EAAoBnH,EAAK+D,GACpD/D,EAAI+B,SAAiB/B,EAClBoH,EAAqBpH,EAAK+D,GAEvC,EAWAoD,EAAsB,SAASnH,EAAK+D,GAClC,IAAI4C,EAAO,IAAI3E,GAAMqF,WAIrB,OAHArH,EAAIsH,SAAQ,SAAStH,GACnB2G,EAAK1F,KAAK4F,EAAe7G,EAAK+D,GAClC,IACS4C,CACT,EAeAS,EAAuB,SAASG,EAAKxD,GACnC,IACI/D,EADAS,EAAOsD,EAAM,IAAI/B,GAAMO,OAAS,IAAIP,GAAMqF,WAG9C,IAAK,IAAI7E,KAAO+E,EACdvH,EAAM6G,EAAeU,EAAI/E,GAAMuB,GAC/BvB,EAAM,IAAIR,GAAMwF,MAAMhF,GAClBuB,EACFtD,EAAKgH,IAAIjF,EAAKxC,GAEdS,EAAKQ,KAAKkG,EAAoB,CAAC3E,EAAKxC,KAIxC,OAAOS,CACT,EAUA,MAAAiH,gBAAiB,SAAShH,GACxB,OAAOA,EACJJ,WACAqH,MAAM,eAAe,GAAGlC,MAAM,QACnC,EAWAmC,EAAgB,SAASC,EAAGC,EAAGC,GAC7B,IAAK,IAAIC,KAAKF,EACZ,GAAIC,GAAQF,EAAEG,GAAI,CAChB,IAAIC,EAAQvB,EAAemB,EAAEG,IAAIE,MAC7BC,EAAQzB,EAAeoB,EAAEE,IAAIE,MAE7B,UAAYD,EAAMlG,UAAY,UAAYoG,EAAMpG,SAClD8F,EAAEG,GAAGE,MAAME,KAAOR,EAAcK,EAAMG,KAAMD,EAAMC,KAAML,GAExDF,EAAEG,GAAKF,EAAEE,EAEjB,MACMH,EAAEG,GAAKF,EAAEE,GAGb,OAAOH,CACT,EAUAQ,EAAe,SAASC,GAItB,IAHA,IAAIf,EAAM,CAAE,EACR9H,EAAM,GAEDtD,EAAI,EAAG0F,EAAMyG,EAAIlM,OAAQD,EAAI0F,IAAO1F,EACvCmM,EAAInM,KAAMoL,IAEdA,EAAIe,EAAInM,KAAM,EACdsD,EAAIwB,KAAKqH,EAAInM,KAEf,OAAOsD,CACT,EAuBA,MAA2B8I,0BAAA,SAASD,EAAKE,GACvC,IAAIC,EAAY,GACZC,EAASC,EACTC,EAAU3I,MAAWA,KAAA2I,QAAI,GACzBhH,EAAM,GAEV,SAASpC,MAAM8E,EAAU1C,GACvB,IAAIqB,EAAQ,CAACqB,EAAStE,KAClBgD,EAAM,IAAI0F,EAAOzF,EAAM,GAAI4F,EAAS5F,GAAOzD,QAAQQ,IACnD6I,EAAU,GAEd,GAAIjH,EAAIxF,OACN,IAAK,IAAID,EAAI,EAAG0F,EAAMD,EAAIxF,OAAQD,EAAI0F,IAAO1F,EAAG,CAC9C8G,EAAMhC,KAAKW,EAAIzF,IACf0M,EAAQ5H,KAAK+B,GACb,IAAI8F,EAAQ,IAAIJ,EAAO9G,EAAIzF,GAAI0M,EAAS5F,GAAOzD,QAE3CsJ,EAAM1F,OACRJ,GAAO,IAAM8F,EAAM9I,IAEnBgD,EAAM8F,EAAM9I,GAEf,CAEH,OAAOgD,EAAIuB,MACZ,CA0BD,OAxBA,SAASwE,QAAQT,EAAKnM,GAChBA,EACFmM,EAAInM,GAAGmL,SAAQ,SAAShD,IACjBkE,GAAelE,EAAS0E,gBACzB1E,EAAS2E,UACXrH,EAAIsH,QAAQ5E,EAAStE,KACrB+I,QAAQT,EAAKnM,EAAI,GACjByF,EAAIuH,SAEJV,EAAUxH,KAAK2H,EAASpJ,MAAM8E,EAAU1C,IAElD,IAEM0G,EAAI,GAAGhB,SAAQ,SAAShD,GACtB,GAAKkE,IAAelE,EAAS0E,cAA7B,CACA,IAAIhG,EAAMxD,MAAM8E,EAAU1C,GACtBoB,GAAKyF,EAAUxH,KAAK2H,EAAS5F,EAFkB,CAG3D,GAEG,CAED+F,CAAQT,EAAKA,EAAIlM,OAAS,GAGnBiM,EAAaI,EACtB,EAUAW,qBAAsB,SAASpG,GAC7B,IAEIvD,EAFAiJ,EAASW,GAIb,IAEE5J,EADS,IAAIiJ,EAAO1F,GACPsG,MAGd,CAFC,MAAOC,GACP9J,EAAM,IAAIuC,GAAMwH,QAAQxG,EACzB,CACD,OAAOvD,CACT,YC/fA,SAASgK,SAAOC,EAAOC,EAAMC,GAC3BC,qBAAkBH,EAAO,SACzBI,sBAAmBH,EAAM,QACzBI,oBAAiBH,EAAQ,OAAQ,UACjC,IAAII,EAAMN,EAAMO,KAAKC,QAErB,KADAP,EAAO,CAAEQ,IAAK,IAAKC,WAAY,IAAKC,UAAW,KAAMV,EAAKW,SAC/C,MAAM,IAAI/D,MAAM,+BAC3B,IAAIvG,EAAM4J,EAAO5J,IAOjB,MANI,KAAO4J,EAAO7J,OAChBC,EAAM,KAAO2J,GAAQ3J,EAAM,GACtB,IAAMgK,EAAIL,IAAS3J,EAAM,IAC1BgK,EAAIL,IAAS3J,EAAM,MAEzBgK,EAAIL,IAAS3J,EACNgK,EAAIO,IACb,CCFA,SAASA,KAAKC,EAAKC,EAAOC,EAAMC,GAC9B,OAAQrN,UAAUlB,QAChB,KAAK,EAEH,OADAyN,qBAAkBW,GACXA,EAAID,KACb,KAAK,EACHV,qBAAkBW,GAClB,IAAId,EAAQc,EAAID,KAIhB,OAHAR,oBAAiBU,EAAO,OAAQ,SAE5B,MADJE,EAAQF,EAAMP,SACGnK,OAAM4K,EAAM3K,KAAO,KAC7B,IAAIgC,GAAM4I,KACblB,EAAMmB,EACNnB,EAAMoB,EACNpB,EAAM5B,EACN6C,EAAM3K,KACZ,QACE+J,oBAAiBS,EAAK,OAAQ,OAC9BT,oBAAiBU,EAAO,OAAQ,SAChCV,oBAAiBW,EAAM,OAAQ,QAC/BX,oBAAiBY,EAAO,OAAQ,SAChC,IAAIE,EAAI,KAAOL,EAAIzK,KAAO2F,KAAKqF,MAAgB,KAAVP,EAAIxK,KAAcwK,EAAIxK,IACvD8K,EAAI,KAAOL,EAAM1K,KAAO2F,KAAKqF,MAAkB,KAAZN,EAAMzK,KAAcyK,EAAMzK,IAC7D8H,EAAI,KAAO4C,EAAK3K,KAAO2F,KAAKqF,MAAiB,KAAXL,EAAK1K,KAAc0K,EAAK1K,IAI9D,OAFA2K,EAAQA,EAAMT,UACD,KAAOS,EAAM5K,OAAM4K,EAAM3K,KAAO,KACtC,IAAIgC,GAAM4I,KACbC,EACAC,EACAhD,EACA6C,EAAM3K,KAEhB,CClCA,SAAS2K,MAAMjB,EAAOsB,GAEpB,OADAtB,EAAQA,EAAMa,KACVS,EACKT,KACL,IAAIvI,GAAMgF,KAAK0C,EAAMmB,GACrB,IAAI7I,GAAMgF,KAAK0C,EAAMoB,GACrB,IAAI9I,GAAMgF,KAAK0C,EAAM5B,GACrBkD,GAGG,IAAIhJ,GAAMgF,KAAK0C,EAAM7B,EAAG,GACjC,CCxBA,SAAS9I,SAASkM,EAAGjO,GAEnB,OADA8M,sBAAmBmB,EAAG,QACfzP,EAAKuD,SAASkM,EAAEjL,IAAKhD,GAAOA,EAAIgD,IACzC,CCSA,SAASkL,MAAMC,EAAKC,GAQlB,OANAvB,qBAAkBsB,GAClBA,EAAMA,EAAIZ,KACVa,EAASA,GAAU,IAAIpJ,GAAM4I,KAAK,IAAK,IAAK,IAAK,GACjDf,qBAAkBuB,GAClBA,EAASA,EAAOb,KAET,IAAIvI,GAAM4I,KACfO,EAAIN,EAAIM,EAAItD,EAAIuD,EAAOP,GAAK,EAAIM,EAAItD,GACpCsD,EAAIL,EAAIK,EAAItD,EAAIuD,EAAON,GAAK,EAAIK,EAAItD,GACpCsD,EAAIrD,EAAIqD,EAAItD,EAAIuD,EAAOtD,GAAK,EAAIqD,EAAItD,GACpCsD,EAAItD,EAAIuD,EAAOvD,EAAIsD,EAAItD,EAAIuD,EAAOvD,EACtC,CCfA,SAAS6C,KAAKhB,EAAOsB,GAEnB,OADAtB,EAAQA,EAAMa,KACVS,EACKT,KACL,IAAIvI,GAAMgF,KAAK0C,EAAMmB,GACrB,IAAI7I,GAAMgF,KAAK0C,EAAMoB,GACrBE,EACA,IAAIhJ,GAAMgF,KAAK0C,EAAM7B,IAGlB,IAAI7F,GAAMgF,KAAK0C,EAAM5B,EAAG,GACjC,ECnBCuD,EAAiB,SAASC,YAAYvO,EAAM4J,GAC3CoD,oBAAiBhN,EAAM,aAAc,QACrCA,EAAOwO,EAAaxO,GAAMmL,MAC1B4B,sBAAmB/M,EAAM,QACzBgN,oBAAiBpD,EAAM,aAAc,QACrC,IAAIgD,EAAO,IAAI3H,GAAMwJ,SAAS,CAACzO,GAAO4J,GAClCpF,EAAQtB,KAAKwL,aAEb5J,EAAMN,EAAMS,MAAM5F,OAClBsP,EAAOnK,EAAMS,MAAMxF,MAAM,EAAG+E,EAAMoK,OAClCC,EAAOrK,EAAMS,MAAMxF,MAAM+E,EAAMoK,QAAS9J,GAI5C,OAHA6J,EAAKzK,KAAK0I,GACVpI,EAAMS,MAAQ0J,EAAKG,OAAOD,GAEnBjC,CACT,GAAG5F,KAAM,ENAT0F,SAAOqC,OAAS,CAAC,QAAS,OAAQ,UC+BlCvB,KAAKuB,OAAS,CAAC,MAAO,QAAS,OAAQ,SCvBvCnB,MAAMmB,OAAS,CAAC,QAAS,UKtBxBT,EAAiB,SAASU,EAAKjP,EAAMkP,GACpCC,EAAoBF,EAAK,UACzBE,EAAoBnP,EAAM,QAC1BiP,EAAMR,EAAaQ,GAAK/J,MAAM,GAAGhC,IACjClD,EAAOyO,EAAazO,GAAMkF,MAAM,GAAGhC,IACnCgM,EAASA,GAAST,EAAaS,GAAOhK,MAAM,GAAGhC,KAAQ,EAEvD,IADA,IAAIkM,EAAS/H,OAAO4H,GAAKzL,SAASxD,GAC3BoP,EAAO9P,OAAS4P,GACrBE,EAAS,IAAMA,EAEjB,OAAO,IAAIlK,GAAMwH,QAAQ0C,EAC3B,GAAGnI,KAAM,EJVThF,SAAS+M,OAAS,CAAC,IAAK,OCsBxBZ,MAAMY,OAAS,CAAC,MAAO,UCJvBpB,KAAKoB,OAAS,CAAC,QAAS,UGvBvBT,EAAiB,SAASnB,MAAMvD,GAE/B,OADAsF,EAAoBtF,EAAM,QACnBA,EAAKuD,OACd,GAAGnG,KAAM,ECNT,IAAIoI,EAAe,CACf3B,IAAK,IACLC,MAAO,IACPC,KAAM,IACNC,MAAO,IACPR,IAAK,IACLC,WAAY,IACZC,UAAW,KAOX+B,EAAU,CACVjC,IAAK,MACLC,WAAY,IACZC,UAAW,KAOXgC,EAAU,CACV7B,IAAK,OACLE,KAAM,OACND,MAAO,OACPE,MAAO,OACPR,IAAK,OACLC,WAAY,OACZC,UAAW,QAYf,SAASiC,UAAU5C,EAAO3M,GACxB8M,qBAAkBH,EAAO,SACzBI,sBAAmB/M,EAAM,QACrBA,EAAOA,EAAKuN,OAAhB,IACIiC,EAAOH,EAAQrP,GACfgD,EAAOsM,EAAQtP,GAEnB,KADIA,EAAOoP,EAAapP,IACb,MAAM,IAAIwJ,MAAM,4BAA8BxJ,EAAO,KAChE,OAAO,IAAIiF,GAAMgF,KAAK0C,EAAM3J,GAAMhD,GAAOwP,EAC3C,CCpCA,SAASC,WAAW9C,GAGlB,SAAS+C,eAAeC,GAEtB,MAAQ,QADRA,GAAoB,KAEhBA,EAAU,MACVhH,KAAKiH,KAAMD,EAAU,MAAS,MAAQ,IAC3C,CACD,OARA7C,qBAAkBH,GAClBA,EAAQA,EAAMa,KAOP,IAAIvI,GAAMgF,KACf,MAASyF,eAAe/C,EAAMmB,GAC5B,MAAS4B,eAAe/C,EAAMoB,GAC9B,MAAS2B,eAAe/C,EAAM5B,GAEpC,CCbA,SAAS8E,SAASzB,EAAKC,GACrB,GAAI,QAAUD,EAAIpJ,UAAY,QAAUoJ,EAAIpJ,SAC1C,OAAO,IAAIC,GAAMwH,QAAQ,aAAe2B,EAAI0B,OAAS,GAAK1B,EAAI7K,YAAc,KAE9E,IAAI4L,EAAS,IAAIlK,GAAMO,OAKvB,SAASqK,SAASzB,EAAKC,GACjB,EAAID,EAAItD,IACVsD,EAAMD,MAAMC,EAAKC,IAEnB,IAAI0B,EAAKN,WAAWpB,GAAQpL,IAAM,IAC9B+M,EAAKP,WAAWrB,GAAKnL,IAAM,IAC3BgN,EAAQF,EAAKC,EAKjB,OAHIA,EAAKD,IACPE,EAAQ,EAAIA,GAEPtH,KAAKqF,MAAc,GAARiC,GAAc,EACjC,CAED,GAlBA7B,EAAMA,EAAIZ,KACVa,EAASA,GAAU,IAAIpJ,GAAM4I,KAAK,IAAK,IAAK,IAAK,GACjDf,qBAAkBuB,GAgBd,IAfJA,EAASA,EAAOb,MAeA1C,EAAG,CACjB,IAAIoF,EAAc,IAAIjL,GAAMgF,KAAK4F,SAASzB,EAAKC,IAC/Cc,EAAOzE,IAAI,QAASwF,GACpBf,EAAOzE,IAAI,QAAS,IAAIzF,GAAMgF,KAAK,IACnCkF,EAAOzE,IAAI,MAAOwF,GAClBf,EAAOzE,IAAI,MAAOwF,EACtB,KAAS,CACL,IAAIC,EAAUN,SAASzB,EAAKD,MAAME,EAAQ,IAAIpJ,GAAM4I,KAAK,EAAG,EAAG,EAAG,KAC9DuC,EAAUP,SAASzB,EAAKD,MAAME,EAAQ,IAAIpJ,GAAM4I,KAAK,IAAK,IAAK,IAAK,KACpEjF,EAAMD,KAAKC,IAAIuH,EAASC,GAC5B,SAASV,eAAeW,EAAYC,GAClC,OAAO3H,KAAKE,IAAIF,KAAKC,IAAI,GAAIyH,EAAaC,EAAgBjC,EAAOvD,IAAM,EAAIuD,EAAOvD,IAAK,IACxF,CACD,IAAIyF,EAAU,IAAItL,GAAM4I,KACtB6B,eAAetB,EAAIN,EAAGO,EAAOP,GAC7B4B,eAAetB,EAAIL,EAAGM,EAAON,GAC7B2B,eAAetB,EAAIrD,EAAGsD,EAAOtD,GAC7B,GAEElC,EAAMgH,SAASzB,EAAKD,MAAME,EAAQkC,IAEtCpB,EAAOzE,IAAI,QAAS,IAAIzF,GAAMgF,KAAKtB,KAAKqF,MAAoB,IAAbnF,EAAMD,IAAa,MAClEuG,EAAOzE,IAAI,QAAS,IAAIzF,GAAMgF,KAAKtB,KAAKqF,MAAoB,IAAbpF,EAAMC,IAAa,MAClEsG,EAAOzE,IAAI,MAAO,IAAIzF,GAAMgF,KAAKpB,IACjCsG,EAAOzE,IAAI,MAAO,IAAIzF,GAAMgF,KAAKrB,GAClC,CACD,OAAOuG,CACT,CC/DA,SAASqB,UAAQvK,GAEf,OADA8G,sBAAmB9G,EAAK,OACjBwK,qBAAkBxK,EAAIsH,OAC/B,CH8CAgC,UAAUR,OAAS,CAAC,QAAS,QCtB7BU,WAAWV,OAAS,CAAC,SCqCrBc,SAASd,OAAS,CAAC,MAAO,UC5D1ByB,UAAQzB,OAAS,CAAC,OCHlB,SAAS2B,OAAO1Q,EAAM4J,EAAM+G,GAC1B3D,oBAAiBhN,EAAM,SAAU,QACjC4J,EAAO4E,EAAa5E,GACpB,IAAIhE,EAAQ1C,KAAK0N,aACbD,GAAUA,EAAOE,YAAYC,SAC/BlL,EAAQ1C,KAAKyN,OAAO/K,OAEtB,IAAIlC,EAAO,IAAIuB,GAAMwF,MAAMzK,EAAKiD,IAAK2G,GAErC,OADAhE,EAAMR,IAAI1B,GACHuB,GAAMiF,IACf,CCXA,SAAStI,UAAQsM,GAEf,OADAnB,sBAAmBmB,EAAG,QACfzP,EAAKmD,QAAQsM,EAAEjL,KAAKmF,QAAQ,MAAO,IAC5C,CCLA,SAAS2I,MAAMC,GACbhE,oBAAiBgE,EAAK,SAAU,OAChC,IAAIlJ,EAAM,IAAI0B,MAAMwH,EAAI/N,KAExB,MADA6E,EAAIqB,YAAa,EACXrB,CACR,CCHA,SAAS1F,UAAQ8L,GAEf,OADAnB,sBAAmBmB,EAAG,QACfzP,EAAK2D,QAAQ8L,EAAEjL,IACxB,CCOA,SAASyK,MAAMf,EAAOsB,GAEpB,OADAtB,EAAQA,EAAMa,KACVS,EACKT,KACL,IAAIvI,GAAMgF,KAAK0C,EAAMmB,GACrBG,EACA,IAAIhJ,GAAMgF,KAAK0C,EAAM5B,GACrB,IAAI9F,GAAMgF,KAAK0C,EAAM7B,IAGlB,IAAI7F,GAAMgF,KAAK0C,EAAMoB,EAAG,GACjC,CCTA,SAASb,KAAKE,EAAKC,EAAYC,EAAWM,GACxC,OAAQrN,UAAUlB,QAChB,KAAK,EAEH,OADAyN,qBAAkBM,GACXA,EAAIF,KACb,KAAK,EACHJ,qBAAkBM,GAClB,IAAIT,EAAQS,EAAIF,KAIhB,OAHAF,oBAAiBK,EAAY,OAAQ,SAEjC,MADAO,EAAQP,EAAWF,SACNnK,OAAM4K,EAAM3K,KAAO,KAC7B,IAAIgC,GAAMgM,KACbtE,EAAMuE,EACNvE,EAAMwE,EACNxE,EAAMyE,EACNxD,EAAM3K,KACZ,QAOE,OANA+J,oBAAiBI,EAAK,OAAQ,OAC9BJ,oBAAiBK,EAAY,OAAQ,cACrCL,oBAAiBM,EAAW,OAAQ,aACpCN,oBAAiBY,EAAO,OAAQ,UAC5BA,EAAQA,EAAMT,UACL,KAAOS,EAAM5K,OAAM4K,EAAM3K,KAAO,KACtC,IAAIgC,GAAMgM,KACb7D,EAAInK,IACJoK,EAAWpK,IACXqK,EAAUrK,IACV2K,EAAM3K,KAEhB,CC7BA,SAASgK,IAAIG,EAAKC,EAAYC,GAC5B,OAAI,GAAK/M,UAAUlB,QACjByN,qBAAkBM,EAAK,SAChBA,EAAIF,MAEJA,KACHE,EACAC,EACAC,EACA,IAAIrI,GAAMgF,KAAK,GAEvB,CCZA,SAASmD,IAAIT,EAAOsB,GAClB,GAAIA,EAAO,CACT,IAAIoD,EAAY1E,EAAMO,KACtB,OAAOA,KACLe,EACA,IAAIhJ,GAAMgF,KAAKoH,EAAUF,GACzB,IAAIlM,GAAMgF,KAAKoH,EAAUD,GACzB,IAAInM,GAAMgF,KAAKoH,EAAUvG,GAE5B,CACD,OAAOyE,UAAU5C,EAAO,IAAI1H,GAAM8E,OAAO,OAC3C,CPVA2G,OAAO3B,OAAS,CAAC,OAAQ,OAAQ,UCRjCnN,UAAQmN,OAAS,CAAC,KCAlBgC,MAAMhC,OAAS,CAAC,OCAhB3M,UAAQ2M,OAAS,CAAC,KCkBlBrB,MAAMqB,OAAS,CAAC,QAAS,SCoBzB7B,KAAK6B,OAAS,CAAC,MAAO,aAAc,YAAa,SClBjD9B,IAAI8B,OAAS,CAAC,MAAO,aAAc,aCDnC3B,IAAI2B,OAAS,CAAC,QAAS,iCCGvB,SAASuC,KAAK7S,EAAM8S,EAAOC,GACzBzE,sBAAmBtO,EAAM,QAGzBA,EAAOA,EAAK8O,OACZ,IAAIvF,EAAQyJ,gBAAahT,EAAMyE,KAAKoF,QAAQV,MAAO1E,KAAKoF,QAAQvD,UAC5DuD,EAAWiJ,GAAS,UAAYA,EAAMvM,UAAauM,EAEvD,IAAKvJ,EAAO,CAEV,GAAIM,GAAWA,EAAQoJ,IAAI,YAAYb,YAAYC,OACjD,OAAO7L,GAAMiF,KAEf,MAAM,IAAIV,MAAM,+BAAiC/K,EAClD,CAGD,IAAI6S,EAAO3S,KAAK8D,MAAMkP,sBAAS3J,IAE/B,GAAIM,EACF,OAKF,SAASkI,QAAQhG,EAAKlC,GACpB,IAAI5F,EAAM,IAAIuC,GAAMO,OAChBoM,EAAetJ,EAAQoJ,IAAI,iBAAiBb,YAEhD,IAAK,IAAIpL,KAAO+E,EAAK,CACnB,IAAIvH,EAAMuH,EAAI/E,GACV,iBAAmBxC,EACrBP,EAAIgI,IAAIjF,EAAK+K,QAAQvN,EAAKqF,KAGtB,WADJrF,EAAM4O,EAAa5O,IACC+B,UAAY4M,EAAaE,UAC3C7O,EAAMwN,qBAAkBxN,EAAIsK,SAE9B7K,EAAIgI,IAAIjF,EAAKxC,GAEhB,CACD,OAAOP,CACR,CAtBQ8N,CAAQc,EAAMhJ,GAErByJ,QAAQC,KAAK9O,KAAMoO,EAAMC,EAAOC,EAqBpC,CAUA,SAASO,QAAQT,EAAMC,EAAOC,GACxBA,GACFzE,sBAAmByE,EAAY,cAC/BA,EAAaA,EAAWvO,KAExBuO,EAAa,GAGf,IAAI5L,GADJ2L,EAAQA,EAAQA,EAAMV,YAAc,IAAI5L,GAAM+E,QAAQuH,IACpCT,OAAS5N,KAAK0N,aAAe1N,KAAKyN,OAAO/K,MAG3D,YAEA,SAAS4K,QAAQhG,EAAKyH,GAEpB,IAAK,IAAIxM,KADTwM,EAASA,EAASA,EAAS,IAAM,GACjBzH,EAAI,CAClB,IAAIvH,EAAMuH,EAAI/E,GACVzF,EAAOiS,EAASxM,EAChB,iBAAmBxC,EACrBuN,QAAQvN,EAAKjD,IAGT,WADJiD,EAAM4O,EAAa5O,IACC+B,WAAU/B,EAAMwN,qBAAkBxN,EAAIsK,SAC1D3H,EAAMR,IAAI,CAAEpF,KAAMwR,EAAaxR,EAAMiD,IAAKA,IAE7C,CACF,CAhBDuN,CAAQc,EAiBV,SC/FA,SAAShE,UAAUX,EAAOsB,GACxB,GAAIA,EAAO,CACT,IAAIoD,EAAY1E,EAAMO,KACtB,OAAOA,KACL,IAAIjI,GAAMgF,KAAKoH,EAAUH,GACzB,IAAIjM,GAAMgF,KAAKoH,EAAUF,GACzBlD,EACA,IAAIhJ,GAAMgF,KAAKoH,EAAUvG,GAE5B,CACD,OAAOyE,UAAU5C,EAAO,IAAI1H,GAAM8E,OAAO,aAC3C,CCtBA,SAAStF,OAAOzE,GACdgN,oBAAiBhN,EAAM,SAAU,QACjC,IAAI0D,EAAOR,KAAKuB,OAAOzE,EAAKiD,KAC5B,OAAKS,EACER,KAAKO,MAAMC,GADAuB,GAAMiF,IAE1B,CFiEAoH,KAAKvC,OAAS,CAAC,OAAQ,QAAS,eGvE/BT,EAAiB,SAASjP,OAAOuK,GAChC,GAAIA,EAAM,CACR,GAAIA,EAAK3E,MAAO,CACd,IAAIA,EAAQuJ,EAAa5E,GAAM3E,MAC/B,OAAI,GAAKA,EAAM5F,QAAU,UAAY4F,EAAM,GAAGD,SACrCC,EAAM,GAAG5F,OACP,GAAK4F,EAAM5F,QAAU,UAAY4F,EAAM,GAAGD,SAC5CC,EAAM,GAAGhC,IAAI5D,OAEb4F,EAAM5F,MAErB,CACM,OAAO,CAEV,CACD,OAAO,CACT,GAAG2H,KAAM,EFQTsG,UAAUyB,OAAS,CAAC,QAAS,UGb5BT,EAAiB,SAAS4D,cAAc3F,GAEvC,OADAA,EAAOiC,EAAajC,GACb,IAAItH,GAAM8E,OAAOwC,EAAK4F,OAAS,IAAM,IAC9C,GAAGnL,KAAM,EFPTvC,OAAOsK,OAAS,CAAC,QGSjB,SAASnE,MAAMwH,EAASnP,EAAKoP,GAC3BrF,oBAAiBoF,EAAS,SAAU,WACpCrF,sBAAmB9J,EAAK,OACxB,IAAIqP,EAAK,IAAIC,OAAOH,EAAQnP,IAAKuP,cAAcH,GAASA,EAAM9E,OAAS,IACvE,OAAOtK,EAAIsK,OAAO3C,MAAM0H,EAC1B,CAIA,SAASE,cAAcH,GAGrB,SAFAA,EAAQA,GAASA,EAAM9E,SAGd8E,EAAM3J,MAAM,IAAI+J,OAAM,SAASC,GACpC,OArCY,MAqCQzL,QAAQyL,EAClC,GAGA,CChCA,SAASC,OAAKC,EAAGjP,GAGf,OAFAqJ,oBAAiB4F,EAAG,OAAQ,KAC5B7F,sBAAmBpJ,EAAI,MAChB,IAAIsB,GAAMgF,KAAKtB,KAAKhF,EAAG4J,QAAQqF,EAAE3P,KAAM2P,EAAE5P,KAClD,iBCJA,SAAS6P,QAAQC,EAAIC,EAAMC,GAIzB,OAHAhG,oBAAiB8F,EAAI,SAAU,MAC/B5D,EAAoB6D,EAAM,QAC1B7D,EAAoB8D,EAAO,SACpBD,EAAKF,QAAQC,EAAG7P,IAAK+P,EAC9B,CCFA,SAAS9L,MAAMjF,EAAOgR,EAAMC,GAG1B,GAFAlG,oBAAiB/K,EAAO,OAAQ,SAChC+K,oBAAiBiG,EAAM,OAAQ,QAC3BC,GAEF,GADAlG,oBAAiBkG,EAAM,OAAQ,QAC3B,GAAKA,EAAKjQ,IACZ,MAAM,IAAIuG,MAAM,wDAGlB0J,EAAO,IAAIjO,GAAMgF,KAAK,GAGxB,IADA,IAAIsC,EAAO,IAAItH,GAAMqF,WACZlL,EAAI6C,EAAMgB,IAAK7D,GAAK6T,EAAKhQ,IAAK7D,GAAK8T,EAAKjQ,IAC/CsJ,EAAKrI,KAAK,IAAIe,GAAMgF,KAAK7K,EAAG6C,EAAMe,OAEpC,OAAOuJ,CACT,CCVA,SAASkB,IAAId,EAAOsB,GAElB,OADAtB,EAAQA,EAAMa,KACVS,EACKT,KACLS,EACA,IAAIhJ,GAAMgF,KAAK0C,EAAMoB,GACrB,IAAI9I,GAAMgF,KAAK0C,EAAM5B,GACrB,IAAI9F,GAAMgF,KAAK0C,EAAM7B,IAGlB,IAAI7F,GAAMgF,KAAK0C,EAAMmB,EAAG,GACjC,CCrBA,SAASqF,OAAOC,EAAQ3N,GAItB,OAHAuH,oBAAiBoG,EAAQ,SAAU,UACnCrG,sBAAmBtH,EAAK,cACjB2N,EAAO/H,KAAK5F,EAAI8H,QAChB6F,CACT,CCHA,SAAShL,QAAQgK,EAASiB,EAAapQ,GACrC8J,sBAAmBqF,EAAS,WAC5BrF,sBAAmBsG,EAAa,eAChCtG,sBAAmB9J,EAAK,OACxBmP,EAAU,IAAIG,OAAOH,EAAQ7E,OAAQ,KACrC,IAAIvO,EAAMiE,EAAIsK,OAAOnF,QAAQgK,EAASiB,EAAY9F,QAClD,OAAOtK,aAAegC,GAAMwF,MACxB,IAAIxF,GAAMwF,MAAMzL,GAChB,IAAIiG,GAAM8E,OAAO/K,EACvB,CCAA,SAASsU,IAAI7F,EAAKC,EAAOC,GACvB,GACO,IADCpN,UAAUlB,OAChB,CACEyN,qBAAkBW,GAClB,IAAId,EAAQc,EAAID,KAChB,OAAO,IAAIvI,GAAM4I,KACblB,EAAMmB,EACNnB,EAAMoB,EACNpB,EAAM5B,EACN,EAAE,CAEN,OAAOyC,KACHC,EACAC,EACAC,EACA,IAAI1I,GAAMgF,KAAK,GAEzB,CPPAW,MAAMmE,OAAS,CAAC,UAAW,MAAO,SCflC4D,OAAK5D,OAAS,CAAC,IAAK,OONnBT,EAAiB,SAASiF,MAAMC,GAC/BtE,EAAoBsE,EAAM,QAC1BA,EAAOhF,EAAagF,GAAMrI,MAC1B6B,oBAAiBwG,EAAM,SAAU,QAKjC,IAHA,IAAIC,EAAOjF,EAAajO,UAAUA,UAAUlB,OAAS,IAAI8L,MACrDH,GAAQ,IAASyI,EAAKxQ,IAEjB7D,EAAI,EAAG0F,EAAMvE,UAAUlB,OAAS2L,EAAM5L,EAAI0F,IAAO1F,EACxDsU,EAAYF,EAAKnI,KAAMmD,EAAajO,UAAUnB,IAAI+L,MAAME,KAAML,GAEhE,OAAOwI,CACT,GAAGxM,KAAM,ENLT6L,QAAQ9D,OAAS,CAAC,KAAM,OAAQ,UOF/BT,EAAiB,SAASqF,iBAAiBC,GAC1C,IAAIhK,EAAO,GAaX,OAZA4E,EAAaoF,GAAW3O,MAAMsF,SAAQ,SAASpE,EAAK/G,GAClD2N,sBAAmB5G,EAAK,YAAc/G,GACtC+G,EAAM,WAAa,OAAQA,EAAIoH,QAC7B,IAAK,MAAO,MAAO,SACnB,IAAK,SAAU,MAAO,MACtB,IAAK,OAAQ,MAAO,QACpB,IAAK,QAAS,MAAO,OACrB,IAAK,SAAU,MAAO,SACtB,QAAS,MAAM,IAAI/D,MAAM,oBAAsBrD,GAC/C,CAPI,GAQNyD,EAAK1F,KAAK,IAAIe,GAAMwH,QAAQtG,GAChC,IACSyD,CACT,GAAG5C,KAAM,GCrBRsH,EAAiB,SAASJ,IAMzB,MALA,GAAGzO,MAAMuS,KAAKzR,WAAWgK,SAAQ,SAASX,IACxCA,EAAO4E,EAAa5E,IACV3E,MAAM5F,QAChBwU,QAAQC,IAAI,uBAAkClK,EAAKrG,WAAW6E,QAAQ,WAAY,IACtF,IACSnD,GAAMiF,IACf,GAAGlD,KAAM,GCPRsH,EAAiB,SAASyF,WACzB,IAAInM,EAAQ,GAAGnI,MAAMuS,KAAKzR,WAAWoE,KAAI,SAASlG,GAChD,OAAOA,EAAK0M,MAAMoC,MACtB,IACE,OAAO9O,EAAKoC,KAAKoD,MAAM,KAAM2D,GAAOQ,QAAQ,MAAO,IACrD,GAAGpB,KAAM,GCLRsH,EAAiB,SAAS0F,IAAIpK,GAE7B,OADAA,EAAO4E,EAAa5E,IACR3E,MAAM+O,KACpB,GAAGhN,KAAM,GCFRsH,EAAiB,SAAS1E,GACzBA,EAAO4E,EAAa5E,GACpB,IAAK,IAAIxK,EAAI,EAAG0F,EAAMvE,UAAUlB,OAAQD,EAAI0F,IAAO1F,EACjDwK,EAAK3E,MAAMf,KAAKsK,EAAajO,UAAUnB,IAAI+N,SAE7C,OAAOvD,EAAK3E,MAAM5F,MACpB,GAAG2H,KAAM,EVeTE,MAAM6H,OAAS,CAAC,QAAS,OAAQ,QCCjCtB,IAAIsB,OAAS,CAAC,QAAS,SChBvBoE,OAAOpE,OAAS,CAAC,SAAU,OCM3B3G,QAAQ2G,OAAS,CAAC,UAAW,cAAe,OCiB5CuE,IAAIvE,OAAS,CAAC,MAAO,QAAS,QO9B9B,IAAAyB,EAAA,SAA0ByD,aAAahG,EAAOiG,GAO7C,OAAOjG,EANO,CACbkG,IAAQ,EACRC,IAAQ,IAAMzL,KAAK0L,GACnBC,KAAQ,GAAM3L,KAAK0L,GACnBE,KAAQ,IAAM5L,KAAK0L,IAEGH,EACvB,ECNDM,EAAyB,SAACC,KAAKC,EAAWC,GACrCA,OAA2B,IAAXA,EAAyBA,EAAS,MAAtD,IACKC,EAAIjM,KAAKiH,IAAI,GAAI,GAClB3B,EAAQtF,KAAKkM,KAAKH,GAClBI,EAAiBtE,EAAQvC,EAAO0G,GAEnC,OADDG,EAAiBnM,KAAKqF,MAAM8G,EAAiBF,GAAKA,EAC1C,IAAI3P,GAAMgF,KAAK6K,EAAgBH,EACvC,ECLDI,EAAA,MAAuBC,iBAAiBxR,EAatCT,YAAYjD,EAAMwI,GAChBtE,MAAMlE,GACNwI,EAAUA,GAAW,GACrBpF,KAAK+R,SAAW3M,EAAQ2M,SACxB/R,KAAKgS,QAAU5M,EAAQ4M,QACvBhS,KAAKiS,QAAU7M,EAAQ6M,QACvBjS,KAAKkS,OAAS9M,EAAQ,kBAAoB,EAC1CpF,KAAKmS,QAAU,EACfnS,KAAKkB,MAAQ,EACd,CASD4H,UACE,OAAO9I,KAAKO,MAAMP,KAAKpD,KACxB,CAWD4B,IAAIuE,EAAKvC,GACP,OAAOuC,CACR,CASG4F,aACF,OAAI3I,KAAK+R,SAAiB,GACnB,IAAIlR,MAAMb,KAAKmS,SAASxU,KAAKkD,MAAMb,KAAKkS,OAAS,GAAGvU,KAAK,KACjE,CAUDyU,aAAa5R,GACX,OAAO,GAAKR,KAAKmS,SACZ,UAAY3R,EAAKsB,UACjBtB,EAAK6R,iBACX,CAMDC,UAAUhR,GACRtB,KAAK2B,IAAM,GACX,IAAK,IAAIzF,EAAI,EAAG0F,EAAMN,EAAMS,MAAM5F,OAAQD,EAAI0F,IAAO1F,EAAG,CACtD,IAAIsE,EAAOc,EAAMS,MAAM7F,IACnB8D,KAAKiS,SAAWjS,KAAKgS,UAAShS,KAAKuS,UAAU/R,GACjD,IAAIhB,EAAMQ,KAAKO,MAAMC,GACjBhB,IAAKQ,KAAK2B,KAAO3B,KAAKxB,IAAIgB,EAAM,KAAMgB,GAC3C,CACD,OAAOR,KAAK2B,GACb,CAMD6Q,WAAWlR,GACT,IAAId,EAEA4R,EACAK,EAFAC,EAAY1S,KAAK+R,SAAW,GAAK,KAIrC,GAAIzQ,EAAMqR,gBAAkBrR,EAAMsR,uBAAwB,CAGxD,GAFAR,EAAepS,KAAKoS,aAAa9Q,EAAMd,MAEnCR,KAAK+R,SACP,IAAK,IAAI7V,EAAIoF,EAAMS,MAAM5F,OAAS,EAAGD,GAAK,IAAKA,EAC7C,GAAgC,aAA5BoF,EAAMS,MAAM7F,GAAG4F,SAAyB,CAC1C2Q,EAAoBvW,EACpB,KACD,CAGDkW,IACFpS,KAAK2B,KAAO3B,KAAKxB,IAAIwB,KAAK+R,SAAW,IAAM,UACzC/R,KAAKmS,SAEAjW,EAAI,EAAb,IAAK,IAAW0F,EAAMN,EAAMS,MAAM5F,OAAQD,EAAI0F,IAAO1F,EAGnD,OAFA8D,KAAKuQ,KAAOkC,IAAsBvW,GAClCsE,EAAOc,EAAMS,MAAM7F,IACN4F,UACX,IAAK,OACL,IAAK,aACL,IAAK,WACL,IAAK,QACL,IAAK,QACL,IAAK,OACL,IAAK,QACL,IAAK,YACL,IAAK,SACL,IAAK,WACH,SAEF,KAAM9B,KAAK+R,UAAYvR,EAAKqS,QAAU,UACpC7S,KAAK2B,IAAM3B,KAAK2B,IAAIpF,MAAM,GAAI,GAC9ByD,KAAK2B,KAAO3B,KAAKxB,IAAI,IAAMwB,KAAKO,MAAMC,GAAQ,KAAMA,GACpD,MACF,IAAK,WACH,IAAIhB,EAAMQ,KAAKO,MAAMC,GAAQkS,EAC7B1S,KAAK2B,KAAO3B,KAAK+R,SAAWvS,EAAMQ,KAAKxB,IAAIgB,EAAKgB,GAChD,MACF,QACER,KAAK2B,KAAO3B,KAAKxB,IAAIwB,KAAKO,MAAMC,GAAQkS,EAAWlS,GAGrD4R,MACApS,KAAKmS,QACPnS,KAAK2B,KAAO3B,KAAKxB,IAAIwB,KAAK2I,OAAS,IAAM+J,GAE5C,CAGD,IAASxW,EAAI,EAAG0F,EAAMN,EAAMS,MAAM5F,OAAQD,EAAI0F,IAAO1F,EAEnD,QADAsE,EAAOc,EAAMS,MAAM7F,IACN4F,UACX,IAAK,QACL,IAAK,QACL,IAAK,aACC9B,KAAKiS,SAAWjS,KAAKgS,UAAShS,KAAKuS,UAAU/R,GACjDR,KAAKO,MAAMC,GACX,MACF,IAAK,QACL,IAAK,SACL,IAAK,SACL,IAAK,WACHR,KAAKO,MAAMC,GACX,MACF,IAAK,UAEEA,EAAKsS,WACR9S,KAAK2B,KAAO3B,KAAKxB,IAAIwB,KAAK2I,OAAS3I,KAAKO,MAAMC,GAAQ,KAAMA,IAE9D,MACF,IAAK,UACL,IAAK,UACL,IAAK,YACHR,KAAK2B,KAAO3B,KAAKxB,IAAIwB,KAAKO,MAAMC,GAAQ,KAAMA,GAIrD,CAMDuS,eAAevS,GACb,GAAKA,EAAKwS,OAAV,CAEA,IAAIjE,EAAS,YAAcvO,EAAKuO,OAC5B,GACA,IAAMvO,EAAKuO,OAAS,IAExB/O,KAAK2B,KAAO3B,KAAKxB,IAAI,IAAMuQ,EAAS,aAChC/O,KAAKO,MAAMC,EAAKT,MACfC,KAAK+R,SAAW,IAAM,QAASvR,GAEpCR,KAAKiT,UAAW,IACdjT,KAAKmS,QACPnS,KAAKO,MAAMC,EAAKc,SACdtB,KAAKmS,QACPnS,KAAKiT,UAAW,EAEhBjT,KAAK2B,KAAO3B,KAAKxB,IAAI,KAAOwB,KAAK+R,SAAW,GAAK,MAhBxB,CAiB1B,CAMDmB,WAAWC,GACT,IAAIpT,EAAMoT,EAAMpT,IACXoT,EAAMC,WAAcrT,EAAIgC,MAAM5F,SAEnC6D,KAAK2B,KAAO3B,KAAKxB,IAAI,UAAW2U,GAChCnT,KAAKO,MAAMR,GACXC,KAAK2B,KAAO3B,KAAKxB,IAAIwB,KAAK+R,SAAW,IAAM,UACzC/R,KAAKmS,QACPnS,KAAKO,MAAM4S,EAAM7R,SACftB,KAAKmS,QACPnS,KAAK2B,KAAO3B,KAAKxB,IAAI,KAAOwB,KAAK+R,SAAW,GAAK,OAClD,CAMDsB,eAAeC,GACb,IAAK,IAAIpX,EAAI,EAAG0F,EAAM0R,EAAQvR,MAAM5F,OAAQD,EAAI0F,IAAO1F,EACrD8D,KAAKO,MAAM+S,EAAQvR,MAAM7F,IACrB0F,EAAM,GAAK1F,IAAG8D,KAAK2B,KAAO3B,KAAKxB,IAAI,KAAOwB,KAAK+R,SAAW,GAAK,MAEtE,CAMDwB,WAAW/S,GACT,IAAIoB,EAAMpB,EAAKuB,MAAM5F,OACjBqE,EAAKgT,YAAWxT,KAAK2B,KAAO3B,KAAKxB,IAAIgC,EAAKgT,UAAY,MACtDhT,EAAKV,OAAME,KAAK2B,KAAO3B,KAAKxB,IAAIgC,EAAKV,MAAQ8B,EAAM,QAAU,MACjE,IAAK,IAAI1F,EAAI,EAAGA,EAAI0F,IAAO1F,EACzB8D,KAAK2B,KAAO3B,KAAKxB,IAAIwB,KAAKO,MAAMC,EAAKuB,MAAM7F,KACvC0F,EAAM,GAAK1F,IAAG8D,KAAK2B,KAAO3B,KAAKxB,IAAI,SAE1C,CAMDiV,aAAajT,GACX,OAAKA,EAAKkG,KAEClG,EAAKkG,KAAKgN,QACZ,IAAMlT,EAAK1D,KAAO,IAElB,IAAM0D,EAAK1D,KAAO,KAAOkD,KAAK+R,SAAW,GAAK,KAAO/R,KAAKO,MAAMC,EAAKkG,MAAQ,IAJ7ElG,EAAK1D,IAMf,CAMD6W,YAAYC,GACV5T,KAAK2B,KAAO3B,KAAKxB,IAAI,WAAawB,KAAKO,MAAMqT,EAASrY,MAAQ,MAAOqY,EACtE,CAMDC,YAAYC,GACV,IAAIC,EAAU/T,KAAK+R,SAAW,GAAK,KAEnC/R,KAAK2B,KAAO3B,KAAKxB,IAAIwB,KAAK2I,OAAS,IAAMmL,EAAOhU,KAAMgU,GAElDA,EAAO/T,MAAKC,KAAK2B,KAAO3B,KAAKxB,IAAI,IAAMsV,EAAO/T,IAAIuE,SAElDwP,EAAOxS,MACLwS,EAAOxS,MAAMoS,QACf1T,KAAK2B,KAAO3B,KAAKxB,KAAKwB,KAAK+R,SAAW,GAAK,KAAO,KAAOgC,GAChDD,EAAOzB,kBAChBrS,KAAKO,MAAMuT,EAAOxS,QAElBtB,KAAK2B,KAAO3B,KAAKxB,IAAIwB,KAAK+R,SAAW,IAAM,UACzC/R,KAAKmS,QACPnS,KAAKO,MAAMuT,EAAOxS,SAChBtB,KAAKmS,QACPnS,KAAK2B,KAAO3B,KAAKxB,IAAIwB,KAAK2I,OAAS,IAAMoL,IAG3C/T,KAAK2B,KAAO3B,KAAKxB,IAAI,IAAMuV,EAE9B,CAMDC,cAAcxT,GACPA,EAAK4S,YAEVpT,KAAK2B,KAAO3B,KAAKxB,IAAIwB,KAAK2I,OAAS,aAAcnI,GACjDR,KAAKiU,aAAc,EACnBjU,KAAK2B,KAAO3B,KAAKxB,IAAIwB,KAAKO,MAAMC,EAAK0T,YACrClU,KAAKiU,aAAc,EACnBjU,KAAK2B,KAAO3B,KAAKxB,IAAIwB,KAAK+R,SAAW,IAAM,UACzC/R,KAAKmS,QACPnS,KAAKO,MAAMC,EAAKc,SACdtB,KAAKmS,QACPnS,KAAK2B,KAAO3B,KAAKxB,IAAIwB,KAAK2I,OAAS,KAAO3I,KAAK+R,SAAW,GAAK,OAChE,CAMDoC,aAAaC,GACX,OAAOpU,KAAK+R,UACRqC,EAAQtB,SACN,GAEFsB,EAAQrR,GACb,CAMDsR,cAAc5T,GACZ,OAAOA,EAAG3D,IACX,CAMDwX,aAAaC,GACX,MAAO,YAAcvU,KAAKO,MAAMgU,EAAQxU,KAAO,GAChD,CAMDyU,eAAeC,GACb,MAAO,eACFA,EAAU1F,OAAS/O,KAAKO,MAAMkU,EAAU1F,QAAU,IAAM,IACzD/O,KAAKO,MAAMkU,EAAU1U,KAAO,GACjC,CAMD2U,aAAaC,GACX,IAAI5U,EAAM4U,EAAI5U,IAEd,OADI4U,EAAIC,MAAK7U,EAAMA,EAAImF,QAAQ,QAAS,KACjCnF,CACR,CAMD8U,aAAaC,GACX,OAAOA,EAAKzU,UACb,CAMD0U,UAAUzK,GACR,OAAOA,EAAKjK,UACb,CAMD2U,UAAUhL,GACR,OAAOA,EAAKM,KAAKjK,UAClB,CAMD4U,UAAU3I,GACR,IAAIxM,EAAOwM,EAAKxM,MAAQ,GACpB4P,EAAIpD,EAAKvM,IACTmV,EAAQxF,IAAU,EAAJA,GAGlB,GAAI1P,KAAK+R,SAAU,CAEjB,IAAM,CAAC,IAAK,IAAK,KAAM,MAAO,MAAMoD,SAASrV,IAAU,GAAK4P,EAAG,MAAO,IAEtE,GAAIwF,GAASxF,EAAI,GAAKA,GAAK,EACzB,OAAOA,EAAErP,WAAW6E,QAAQ,KAAM,KAAOpF,CAE5C,CAED,OAAQoV,EAAQE,WAAW1F,EAAE2F,QAAQ,KAAO3F,GAAGrP,WAAaP,CAC7D,CAMDwV,WAAWC,GACT,IAAIrU,EAAQlB,KAAKiT,SAAW,GAAKjT,KAAKkB,MAClCsU,EAAQxV,KAAK+R,SAAW,IAAM,MAKlC,GAHA7Q,EAAMF,KAAKuU,EAAMxT,OAGbwT,EAAMjU,MAAMqR,cAAe,CAC7B,IAAInK,EAAYiN,0BAAuB3G,KAAK9O,KAAMkB,GAC9CU,EAAM4G,EAAUrM,OAEpB,GAAIyF,EAAK,CACH5B,KAAKiT,WAAUuC,EAAQxV,KAAK+R,SAAW,IAAM,MAEjD,IAAK,IAAI7V,EAAI,EAAGA,EAAI0F,IAAO1F,EAAG,CAC5B,IAAImI,EAAWmE,EAAUtM,GACrBqU,EAAQrU,GAAK0F,EAAM,EAGnB5B,KAAKiT,WAAU5O,EAAWnI,EAAImI,EAASC,OAASD,GAEpDrE,KAAK2B,KAAO3B,KAAKxB,IAAI6F,GAAYkM,EAAO,GAAKiF,GAAQD,EAAMxT,MAAM7F,GAClE,CACT,MACQqZ,EAAMjU,MAAMsR,wBAAyB,CAExC,CAGD5S,KAAKO,MAAMgV,EAAMjU,OACjBJ,EAAM4P,KACP,CAMD4E,WAAWvT,GACT,OAAOA,EAAMrF,IACd,CAMD6Y,YAAYtL,GACV,OAAOrK,KAAK4V,MACRvL,EAAOtK,IACPsK,EAAOhK,UACZ,CAMDwV,UAAUrV,GACR,MAAO,EACR,CAMDsV,UAAUhH,GACR9O,KAAK4V,MAAQ,OAAS9G,EAAKhS,KAC3B,IAAIiZ,EAAOjH,EAAKiH,KAAKhU,MAAMN,KAAI,SAAU5D,GACvC,OAAOmC,KAAKO,MAAM1C,EACxB,GAAOmC,MAAMrC,KAAKqC,KAAK+R,SAAW,IAAM,MAGpC,OAFI/R,KAAK4V,QAAOG,EAAO,IAAMA,EAAO,KACpC/V,KAAK4V,OAAQ,EACN9G,EAAKhS,KAAO,IAAMiZ,EAAO,GACjC,CAMDC,gBAAgBtP,GACd,IAAI/E,EAAM,GACNsU,EAAOjW,KACP4B,EAAM8E,EAAK3E,MAAM5F,OACjB4F,EAAQ2E,EAAK3E,MAAMN,KAAI,SAAUjB,GAAQ,OAAOyV,EAAK1V,MAAMC,EAAQ,IAiBvE,OAfAuB,EAAMsF,SAAQ,SAAU7G,EAAMtE,GAC5B,IAAIqU,EAAOrU,GAAK0F,EAAM,EAEtB,GADAD,EAAIX,KAAKR,GACL,KAAOuB,EAAM7F,EAAI,IAAM,KAAOsE,IAC9B+P,EAAJ,CAEA,IAAI2F,EAAQD,EAAKL,OAAUK,EAAKhC,cAC1B,KAAOlS,EAAM7F,EAAI,IAAM,KAAOsE,GAChC,GAAK,IAETmB,EAAIX,KAAK0F,EAAKuI,OACTgH,EAAKlE,SAAW,IAAM,KACvBmE,EARa,CASvB,IAEWvU,EAAIhE,KAAK,GACjB,CAMGwY,qBACF,OAAOnW,KAAKgW,eACb,CAMDI,cAAc1M,GACZ,IAAI3J,EAAMC,KAAKO,MAAMmJ,EAAKhD,MAAMpC,OAC5BxH,EAAQ4M,EAAK5M,MAAQ4M,EAAK2M,SAAS1Y,KAAK,IACxC0K,EAAM,GAEV,MAAa,WAATvL,GACFuL,EAAIrH,KACFhB,KAAKxB,IAAIwB,KAAK2I,QACd3I,KAAKxB,IAAI1B,EAAO,IAAK4M,GACrB1J,KAAKxB,IAAIuB,EAAK2J,EAAKhD,MACnB1G,KAAKxB,IAAIwB,KAAK+R,UAAY/R,KAAKuQ,KAAO,GAAY,MAE7ClI,EAAI1K,KAAK,MAElB0K,EAAIrH,KACFhB,KAAKxB,IAAIwB,KAAK2I,QACd3I,KAAKxB,IAAI1B,GAAQkD,KAAK+R,SAAW,IAAM,MAAOrI,GAC9C1J,KAAKxB,IAAIuB,EAAK2J,EAAKhD,MACnB1G,KAAKxB,IAAIwB,KAAK+R,UAAY/R,KAAKuQ,KAAO,GAAY,MAE7ClI,EAAI1K,KAAK,IACjB,CAMD4U,UAAU/R,GAER,IAAIjF,EAAwB,SAAjBiF,EAAKqB,SAAsB,QAAUyU,eAAgB9V,EAAKqB,UACjEgE,GAAQrF,EAAKuB,OAASvB,EAAKuB,MAAM5F,OAASqE,EAAKuB,MAAM,GAAG5B,OAASK,EAAKL,SAAW,EAEjFH,KAAKiS,UACPjS,KAAK2B,KAAO,aAAoBkE,EAAO,MAAQtK,EAAO,SAGpDyE,KAAKgS,UAEPzW,EAAO,gBAAqBA,EAAK2J,QAAQ,cAAc,SAAUwM,GAC/D,MAAO,MAAc,OAANA,EAAa,IAAOA,EAC3C,IACM7L,EAAO,UAAYA,EACnB7F,KAAK2B,KAAO,oDACmBpG,EAC3B,qBAAuBsK,EAAO,OAErC,SCljBH,SAASsE,WAAWV,EAAOsB,GACzB,GAAIA,EAAO,CACT,IAAIoD,EAAY1E,EAAMO,KACtB,OAAOA,KACL,IAAIjI,GAAMgF,KAAKoH,EAAUH,GACzBjD,EACA,IAAIhJ,GAAMgF,KAAKoH,EAAUD,GACzB,IAAInM,GAAMgF,KAAKoH,EAAUvG,GAE5B,CACD,OAAOyE,UAAU5C,EAAO,IAAI1H,GAAM8E,OAAO,cAC3C,ECnBCuE,EAAiB,SAAS6C,EAAEsI,GAC3BA,EAAMjL,EAAaiL,GAAKxU,MAAM,GAC9B8H,sBAAmB0M,GACnB,IAAIN,EAAOjW,KACP+C,EAAMwT,EAAIlM,OACV0L,EAAO1Y,UACPnB,EAAI,EAeR,OAZA6G,EAAMA,EAAImC,QAAQ,WAAW,SAASsR,EAAGC,GACvC,IAAI5Y,EAAMkY,EAAK7Z,MAAQ6F,GAAMiF,KAC7B,OAAQyP,GACN,IAAK,IACH,OAAO,IAAI3E,EAASjU,EAAKoY,GAAYA,EAAA7Q,SAAE0D,UACzC,IAAK,IAEH,GAAI,SADJjL,EAAMyN,EAAazN,GAAKoK,OACNnG,SAAU,MAAM,IAAIwE,MAAM,sBAC5C,OAAOzI,EAAIkC,IAEnB,IAES,IAAIgC,GAAMwH,QAAQxG,EAC3B,GAAGe,KAAM,EDFTqG,WAAW0B,OAAS,CAAC,QAAS,SEnB9B,IAAA6K,EAAA,MAAuBA,mBAAmBpW,EAexCT,YAAYjD,EAAMwI,GAChBtE,MAAMlE,GACNwI,EAAUA,GAAW,GACrBpF,KAAK2W,MAAQvR,EAAQ,iBACrBpF,KAAKkB,MAAQ,GACblB,KAAKyB,IAAM,GACXzB,KAAK4W,QAAU,EAChB,CASDpZ,YACE,IAAIgC,EAAMQ,KAAKO,MAAMP,KAAKpD,MAU1B,OARIoD,KAAK2W,QAEH3W,KAAK4W,QAAQza,SAAQqD,EAAIuC,MAAQ/B,KAAK4W,QAAQhL,OAAOpM,EAAIuC,QAGzD/B,KAAKuU,UAAS/U,EAAIuC,MAAQ,CAAC/B,KAAKuU,SAAS3I,OAAOpM,EAAIuC,SAGnDvC,CACR,CASDqX,OAAOrW,GACL,IAAIsW,EAAQ,GACRC,EAAQ,GACRd,EAAOjW,KAqBX,GAnBA,SAASgX,YAAY1V,GACnBA,EAAMS,MAAMsF,SAAQ,SAAU7G,GAG5B,QAFAA,EAAOyV,EAAK1V,MAAMC,IAELsB,UACX,IAAK,WACHgV,EAAM9V,KAAKR,GACX,MACF,IAAK,QACHwW,YAAYxW,GACZ,MACF,QACEuW,EAAM/V,KAAKR,GAEvB,GACK,CAEDwW,CAAYxW,EAAKc,OAEbwV,EAAM3a,OAAQ,CAChB,IAAIkI,EAAW,IAAItC,GAAMkV,SAAS,CAAC,IAAIlV,GAAMwH,QAAQ,OACrDlF,EAASlE,OAASK,EAAKL,OACvBkE,EAASjE,OAASI,EAAKJ,OACvBiE,EAASxC,SAAWrB,EAAKqB,SACzBwC,EAAStE,IAAM,KAEXwV,EAAQ,IAAIxT,GAAMmV,OAChB/W,OAASK,EAAKL,OACpBoV,EAAMnV,OAASI,EAAKJ,OACpBmV,EAAM1T,SAAWrB,EAAKqB,SAEtB,IAkBI0T,EAlBAjU,EAAQ,IAAIS,GAAMoV,MAAM3W,EAAKc,MAAOiU,GACxCjU,EAAMnB,OAASK,EAAKL,OACpBmB,EAAMlB,OAASI,EAAKJ,OACpBkB,EAAMO,SAAWrB,EAAKqB,SAEtBiV,EAAMzP,SAAQ,SAAUqC,GACtBpI,EAAMN,KAAK0I,EACnB,IAEM6L,EAAMvU,KAAKqD,GACXkR,EAAMjU,MAAQA,EAEdd,EAAKc,MAAMS,MAAQ,GACnBvB,EAAKc,MAAMN,KAAKuU,GAChBwB,EAAM1P,SAAQ,SAAUqI,GACtBlP,EAAKc,MAAMN,KAAK0O,EACxB,KAEU6F,EAAQvV,KAAKoX,aAAa5W,EAAKc,UACxBd,EAAK+U,MAAQA,EAAMtL,SAE9BzJ,EAAK6W,SAAU,CAChB,CACF,CAUDD,aAAa9V,GAGX,IAFA,IACId,EADAW,EAASG,EAAMH,OAEZA,IAAWX,EAAOW,EAAOX,OAAO,CACrC,GAAI,SAAWA,EAAKsB,SAAU,OAAOtB,EACrCW,EAASX,EAAKc,OAASd,EAAKc,MAAMH,MACnC,CACF,CAMDmR,UAAUhR,GAIR,IAHA,IACId,EADAhB,EAAM,IAAIuC,GAAMuV,KAGXpb,EAAI,EAAGA,EAAIoF,EAAMS,MAAM5F,SAAUD,EAExC,QADAsE,EAAOc,EAAMS,MAAM7F,IACN4F,UACX,IAAK,OACL,IAAK,aACL,IAAK,WACL,IAAK,OACL,IAAK,UACH,SACF,QACE9B,KAAKuX,UAAYrb,EACjBsD,EAAIwB,KAAKhB,KAAKO,MAAMC,IAI1B,OAAOhB,CACR,CAMD4W,cAAc1M,GAEZ,OADA1J,KAAKO,MAAMmJ,EAAKhD,MACTgD,CACR,CAMDsM,gBAAgBtP,GAYd,OAXAA,EAAK3E,MAAQ2E,EAAK3E,MAAMN,KAAI,SAAUjB,GAGpC,GAAI,SAAWA,EAAKsB,SAAU,CAC5B,IAAI0V,EAAU,IAAIzV,GAAMwH,QAAQ,SAGhC,OAFAiO,EAAQrX,OAASuG,EAAKvG,OACtBqX,EAAQpX,OAASsG,EAAKtG,OACfoX,CACR,CACD,OAAOhX,CACb,IACWkG,CACR,CAMD8L,WAAWlR,GACT,IAAId,EAEJ,GAAIc,EAAMqR,cACR,IAAK,IAAIzW,EAAI,EAAG0F,EAAMN,EAAMS,MAAM5F,OAAQD,EAAI0F,IAAO1F,EAEnD,QADAsE,EAAOc,EAAMS,MAAM7F,IACN4F,UACX,IAAK,OACL,IAAK,aACL,IAAK,WACL,IAAK,QACL,IAAK,OACL,IAAK,UACH,SACF,QACER,EAAMS,MAAM7F,GAAK8D,KAAKO,MAAMC,GAMpC,IAAStE,EAAI,EAAG0F,EAAMN,EAAMS,MAAM5F,OAAQD,EAAI0F,IAAO1F,EACnDsE,EAAOc,EAAMS,MAAM7F,GACnBoF,EAAMS,MAAM7F,GAAK8D,KAAKO,MAAMC,GAG9B,OAAOc,CACR,CAMDgU,WAAWC,GACT,IAEIvS,EAFA9B,EAAQlB,KAAKkB,MACbO,EAAMzB,KAAKyB,IAIf8T,EAAMxT,MAAMsF,SAAQ,SAAUhD,EAAUnI,GACtC,IAAMmI,EAAStE,IAAIgE,QAAQ,KAC3B,IAAKM,EAAStE,IAAIgE,QAAQ,OACxBM,EAAStE,IAAMsE,EAAStE,IAAImF,QAAQ,OAAQ,SAD9C,CAIAlC,EAAQqB,EAAStE,IAAIyF,MAAM,KAG3B,IAFA,IACIpB,EAAM6J,EADNrR,EAAO,KAAOyH,EAAStE,IAAI0X,OAAO,GAE7B1P,EAAI,EAAGnG,EAAMoB,EAAM7G,OAAQ4L,EAAInG,IAAOmG,EAC7C3D,EAAOpB,EAAM+E,GAAGzD,OACZ1H,GAAQmL,EAAI,KAAO3D,EAAKL,QAAQ,OAClCK,EAAO,IAAMA,IAEf6J,EAAI,IAAIlM,GAAMkV,SAAS,CAAC,IAAIlV,GAAMwH,QAAQnF,MACxCrE,IAAMqE,EACR6J,EAAE3M,MAAQiU,EAAMjU,MAChBiU,EAAMxT,MAAM7F,KAAO+R,CAZpB,CAcP,IACI/M,EAAMF,KAAKuU,EAAMxT,OAEjB,IAAIyG,EAAYiN,0BAAuBvU,GAAO,GAY9C,OATAsH,EAAUnB,SAAQ,SAAUhD,GAC1B5C,EAAI4C,GAAY5C,EAAI4C,IAAa,GACjC5C,EAAI4C,GAAUrD,KAAKuU,EACzB,IAGIvV,KAAK0X,OAAOnC,EAAO/M,GAEnBtH,EAAM4P,MACCyE,CACR,CAMDlB,gBACE,OAAOtS,GAAMiF,IACd,CAMDkM,WAAWC,GACT,IAEIhS,EAFAwW,EAAS,GACTpC,EAAQvV,KAAKoX,aAAajE,EAAM7R,OAuCpC,OApCA,SAASsW,aAAatW,GACpBA,EAAMS,MAAMsF,SAAQ,SAAU7G,EAAMtE,GAClC,OAAQsE,EAAKsB,UACX,IAAK,QACHtB,EAAKT,IAAMoT,EAAMpT,IAAIsQ,MAAM7P,EAAKT,KAChC4X,EAAO3W,KAAKR,GACZc,EAAMS,MAAM7F,GAAK6F,GAAMiF,KACvB,MACF,IAAK,QACH4Q,aAAapX,GACb,MACF,QACMA,EAAKc,OAASd,EAAKc,MAAMS,OAC3B6V,aAAapX,EAAKc,OAEhC,GACK,CAEDsW,CAAazE,EAAM7R,OACnBtB,KAAK6W,OAAO1D,GAERwE,EAAOxb,QACTwb,EAAOtQ,SAAQ,SAAU7G,GACnB+U,EACFA,EAAMjU,MAAMN,KAAKR,GAEjBR,KAAKpD,KAAKmF,MAAM8V,SAAS7X,KAAKuX,UAAW,EAAG/W,GAE9CA,EAAOR,KAAKO,MAAMC,GAClBW,EAASX,EAAKc,MAAMH,QAChBX,EAAK6W,SAAa9B,GAAS,SAAWpU,EAAOX,KAAKsB,WACpDtB,EAAK+U,MAAMjU,MAAQd,EAAKc,MAAMS,MAAM,GAAGT,MACvCd,EAAKc,MAAMS,MAAM,GAAKvB,EAAK+U,MAE9B,GAAEvV,MAEEmT,CACR,CAMDa,cAAcxT,GAEZ,OADAR,KAAK6W,OAAOrW,GACLA,CACR,CAMDqT,YAAYrT,GAEV,OADIA,EAAKc,QAAOd,EAAKc,MAAQtB,KAAKO,MAAMC,EAAKc,QACtCd,CACR,CAMDuS,eAAevS,GACb,IAAIwS,EAASxS,EAAKc,MAAMS,MAAM+V,QAAO,SAAU7W,GAC7C,OAAOA,EAAMK,OAASL,EAAMK,MAAMqR,aACxC,IAEI,OADAnS,EAAKwS,OAASA,EAAO7W,OACdqE,CACR,CAMDmT,YAAYnT,GAEV,OADAR,KAAK4W,QAAQ5V,KAAKR,GACXR,KAAK2W,MAAQ5U,GAAMiF,KAAOxG,CAClC,CAMD8T,aAAa9T,GAEX,OADAR,KAAKuU,QAAU/T,EACRR,KAAK2W,MAAQ5U,GAAMiF,KAAOxG,CAClC,CAUDkX,OAAOnC,EAAO/M,GACZ,IAAI/G,EAAMzB,KAAKyB,IACXwU,EAAOjW,KACPmB,EAASnB,KAAKoX,aAAa7B,EAAMjU,OAErCiU,EAAMwC,QAAQ1Q,SAAQ,SAAUqQ,GAC9B,IAAIM,EAASvW,EAAIiW,EAAOrT,UACxB,IAAK2T,EAAQ,CACX,GAAIN,EAAOO,SAAU,OAErB,KADAD,EAAS/B,EAAKiC,wBAAwBR,EAAOrT,WAChC,CACX,IAAIO,EAAM,IAAI0B,MAAM,sBAAwBoR,EAAOrT,SAAW,KAG9D,MAFAO,EAAIzE,OAASuX,EAAOvX,OACpByE,EAAIxE,OAASsX,EAAOtX,OACdwE,CACP,CACF,CACD4D,EAAUnB,SAAQ,SAAUhD,GAC1B,IAAI7D,EAAO,IAAIuB,GAAMkV,SACrBzW,EAAKT,IAAMsE,EACX7D,EAAKwI,UAAW,EAChBgP,EAAO3Q,SAAQ,SAAUkO,GAElBpU,GAAWA,GAAUoU,GAAQU,EAAKyB,OAAOnC,EAAO/M,GACrD+M,EAAMvU,KAAKR,EACrB,GACA,GACA,IAEI+U,EAAMjU,MAAQtB,KAAKO,MAAMgV,EAAMjU,MAChC,CAED4W,wBAAwB7T,GAItB,IAHA,IAAI0K,EAAS,GACTtN,EAAMzB,KAAKyB,IACXwK,EAAS,KACJ/P,EAAI,EAAGA,EAAI8D,KAAKkB,MAAM/E,OAAQD,IAAK,CAC1C,IACIic,EADoBnY,KAAKkB,MAAMhF,GACE,GAIrC,GAHA6S,EAAO/N,KAAKmX,EAAapY,KAEzBkM,EAASxK,EADUsN,EAAOpR,KAAK,KAAO,IAAM0G,GAG1C,KACH,CACD,OAAO4H,CACR,GC3aH,SAASmM,eAAeC,GAGtB,GAFAxO,sBAAmBwO,EAAK,aAEnBrY,KAAKsY,iBAAkB,CAC1B,IACIC,EAAU,IADGC,EACYxY,KAAKpD,KAAKqN,SACvCsO,EAAQhY,MAAMgY,EAAQ3b,MAEtBoD,KAAKsY,iBAAmBC,EAAQ9W,GACjC,CAED,OAAO4W,EAAIhO,UAAUrK,KAAKsY,gBAC5B,OC4BA,SAASG,YAAYjQ,EAAWtH,GAC9BsH,EAAUnB,SAAQ,SAASgR,GACzBA,EAAMA,EAAIpQ,MACV4B,sBAAmBwO,EAAK,YACxBnX,EAAMF,KAAKzB,QAAM8Y,EAAIhO,QACzB,GACA,CAEA,SAAS9K,QAAM8E,GACb,IAEItC,EADA2W,EAAS,IADAC,GACWtU,GASxB,OAPAqU,EAAOE,MAAM5X,KAAK,mBAClBe,EAAQ2W,EAAOrU,YACTgD,SAAQ,SAAS7G,GACrBA,EAAKT,IAAMS,EAAK6V,SAAS5U,KAAI,SAASoX,GACpC,OAAOA,EAAIxY,UACjB,IAAO1C,KAAK,GACZ,IACSoE,CACT,CD/CAqW,eAAevM,OAAS,CAAC,QCZxBT,EAAiB,SAAS/G,WACzB,IAAInD,EAAQlB,KAAK8Y,cACb/C,EAAO,GAAGxZ,MAAMuS,KAAKzR,WAEzB,GAAI,GAAK0Y,EAAK5Z,OAAQ,CACpB,IAAIuK,EAAO4E,EAAayK,EAAK,IACzBnU,EAAM8E,EAAK3E,MAAM5F,OAGrB,GAAI,GAAKyF,EAAK,CACZiI,sBAAmBnD,EAAKuB,MAAO,YAC/B,IAAInF,EAAiBiW,EACjBhZ,EAAM2G,EAAKuB,MAAMoC,OACjB2O,EAAS,IAAIlW,EAAe/C,GAAKR,QAAQQ,IAE7C,GAAIiZ,GAAUjZ,EAAK,OAAOA,EAE1BmB,EAAMF,KAAKzB,QAAMQ,GACvB,MAAe6B,EAAM,IAGX8E,EAAKuI,OACPwJ,YAAY/R,EAAK3E,MAAOb,GAGxBA,EAAMF,KAAKzB,QAAMmH,EAAK3E,MAAMN,KAAI,SAASjB,GAEvC,OADAqJ,sBAAmBrJ,EAAM,YAClBA,EAAK6J,MACb,IAAE1M,KAAK,OAIhB,MAAaoY,EAAK5Z,OAAS,GACvBsc,YAAY1C,EAAM7U,GAGpB,OAAOA,EAAM/E,OAASsZ,0BAAuBvU,GAAOvD,KAAK,KAAO,GAClE,GAAGmG,KAAM,UCpCT,SAAS0B,MAAMyT,EAAOlZ,GACpB8J,sBAAmBoP,EAAO,aAC1BpP,sBAAmB9J,EAAK,OAMxB,IALA,IAAImZ,EAAWnZ,EAAIsK,OAAO7E,MAAMyT,EAAM5O,QAClC3D,EAAO,IAAI3E,GAAMqF,WACjB+R,EAAWpZ,aAAegC,GAAMwF,MAChCxF,GAAMwF,MACNxF,GAAM8E,OACD3K,EAAI,EAAG0F,EAAMsX,EAAS/c,OAAQD,EAAI0F,IAAO1F,EAChDwK,EAAK3E,MAAMf,KAAK,IAAImY,EAASD,EAAShd,KAExC,OAAOwK,CACT,CCXA,SAASpD,OAAOvD,EAAKhB,EAAO5C,GAC1B0N,sBAAmB9J,EAAK,OACxB+J,oBAAiB/K,EAAO,OAAQ,SAChC5C,EAASA,GAAUA,EAAO4D,IAC1B,IAAIjE,EAAMiE,EAAIsK,OAAO/G,OAAOvE,EAAMgB,IAAK5D,GACvC,OAAO4D,aAAegC,GAAMwF,MACtB,IAAIxF,GAAMwF,MAAMzL,GAChB,IAAIiG,GAAM8E,OAAO/K,EACzB,CCVA,SAASsd,IAAIC,GACXvP,oBAAiBuP,EAAO,OAAQ,SAEhC,IAAIC,EAAUD,EAAMtZ,IAED,QAAfsZ,EAAMvZ,OACRwZ,GAAW7T,KAAK0L,GAAK,KAGvB,IAAIO,EAAIjM,KAAKiH,IAAI,GAAI,GAEjB6M,EAAM9T,KAAKqF,MAAMrF,KAAK8T,IAAID,GAAW5H,GAAKA,EAC1C8H,EAAM/T,KAAKqF,MAAMrF,KAAK+T,IAAIF,GAAW5H,GAAKA,EAC1C0H,EAAM3T,KAAKqF,MAAM4G,EAAI6H,EAAMC,GAAQ9H,EAEvC,OAAO,IAAI3P,GAAMgF,KAAKqS,EAAK,GAC7B,ECjBEhO,EAAiB,SAAS1E,GAEzB,OADAA,EAAO4E,EAAa5E,IACR3E,MAAMmH,OACnB,GAAEpF,KAAM,EHYV0B,MAAMqG,OAAS,CAAC,QAAS,OCHzBvI,OAAOuI,OAAS,CAAC,MAAO,QAAS,WGVhCT,EAAiB,SAAS7O,MAAMwD,EAAKhB,EAAOH,GAM3C,GALAG,EAAQA,GAASA,EAAMgD,MAAM,GAAGhC,IAChCnB,EAAMA,GAAOA,EAAImD,MAAM,GAAGhC,KAE1BA,EAAMuL,EAAavL,GAAKgC,OAEhB5F,OAAS,EACf,OAAOwS,EAAa5O,EAAIxD,MAAMwC,EAAOH,IAAM,GAG7C,IAAIqN,EAASlM,EAAI,GAAGsK,OAAO9N,MAAMwC,EAAOH,GAExC,OAAOmB,EAAI,aAAcgC,GAAMwF,MAC3B,IAAIxF,GAAMwF,MAAM0E,GAChB,IAAIlK,GAAM8E,OAAOoF,EACvB,GAAGnI,KAAM,EFCTsV,IAAIvN,OAAS,CAAC,SGHd,SAAS4N,eAAevO,EAAKC,EAAQT,GACnCd,qBAAkBsB,GAClBA,EAAMA,EAAIZ,KAEVa,EAASA,GAAU,IAAIpJ,GAAM4I,KAAK,IAAK,IAAK,IAAK,GAC5CD,IAASS,GAAWA,EAAOb,OAC9BI,EAAQS,EACRA,EAAS,IAAIpJ,GAAM4I,KAAK,IAAK,IAAK,IAAK,IAEzCf,qBAAkBuB,GAClBA,EAASA,EAAOb,KAChB,IAAIoP,EAAY,CAAC,IAAK,IAAK,KAAKjY,KAAI,SAASgL,GAC3C,OAAQvB,EAAIuB,GAAWtB,EAAOsB,MAAc,EAAKvB,EAAIuB,GAAWtB,EAAOsB,GAAY,IAAM,GAAKtB,EAAOsB,GACtG,IAAEzH,MAAK,SAAS4C,EAAGC,GAAG,OAAOA,EAAID,CAAE,IAAG,GAWvC,SAAS4E,eAAeC,GACtB,OAAI,GAAKiN,EACAvO,EAAOsB,GAEPtB,EAAOsB,IAAYvB,EAAIuB,GAAWtB,EAAOsB,IAAYiN,CAE/D,CACD,OAjBIhP,IACFZ,oBAAiBY,EAAO,OAAQ,SAC5B,KAAOA,EAAM5K,KACf4Z,EAAYhP,EAAM3K,IAAM,IACd2K,EAAM5K,OAChB4Z,EAAYhP,EAAQA,EAAM3K,MAG9B2Z,EAAYjU,KAAKC,IAAID,KAAKE,IAAI+T,EAAW,GAAI,GAStC,IAAI3X,GAAM4I,KACf6B,eAAe,KACfA,eAAe,KACfA,eAAe,KACf/G,KAAKqF,MAAkB,IAAZ4O,GAAmB,IAElC,CCpCA,SAAS5Z,KAAKU,GAEZ,OADAwL,EAAoBxL,EAAM,cACnBA,EAAKsB,QACd,CCjBA,SAASwK,KAAKA,EAAMxM,GAIlB,OAHAgK,oBAAiBwC,EAAM,OAAQ,QAG3BxM,GACF+J,sBAAmB/J,EAAM,QAClB,IAAIiC,GAAMgF,KAAKuF,EAAKvM,IAAKD,EAAKuK,SAE9BiC,EAAKxM,MAAQ,EAExB,CCHA,SAAS6Z,QAAQtP,GAEf,OADAR,sBAAmBQ,EAAQ,UACpB,IAAItI,GAAMwH,QAAQc,EAAOA,OAClC,OCWC,SAAAuP,MAAA,CCvBD,SAASC,KAAK/L,GAGZ,OAFAhE,oBAAiBgE,EAAK,SAAU,OAChC6C,QAAQkJ,KAAK,cAAe/L,EAAI/N,KACzBgC,GAAMiF,IACf,CCJA,SAASyI,KAAK/F,GACZ,OAAO,IAAI3H,GAAMgF,KAAKtB,KAAKiE,EAAKW,QAClC,CCDA,SAASyP,cAAc/K,EAAQzN,GAC7BuI,sBAAmBkF,EAAQ,UAC3BjF,oBAAiBxI,EAAO,QAAS,SAEjC,IAAIyY,EAAU/Z,KAAK+O,OAKnB,OAHA/O,KAAKoF,QAAQ2J,OAAS/O,KAAK+O,OAASA,EAAO1E,OAC3C/I,EAAQtB,KAAKO,MAAMe,GACnBtB,KAAKoF,QAAQ2J,OAAS/O,KAAK+O,OAASgL,EAC7BzY,CACT,CP0CAmY,eAAe5N,OAAS,CAAC,MAAO,SAAU,SCjC1C/L,KAAK+L,OAAS,CAAC,QCPfS,KAAKT,OAAS,CAAC,OAAQ,QCAvB8N,QAAQ9N,OAAS,CAAC,WKZjBT,EAAiB,SAAS1E,GACzBA,EAAO4E,EAAa5E,GACpB,IAAK,IAAIxK,EAAI,EAAG0F,EAAMvE,UAAUlB,OAAQD,EAAI0F,IAAO1F,EACjDwK,EAAK3E,MAAMkH,QAAQqC,EAAajO,UAAUnB,KAE5C,OAAOwK,EAAK3E,MAAM5F,MACpB,GAAG2H,KAAM,EJiBT8V,IAAI/N,OAAS,CAAC,SAAU,WCnBxBgO,KAAKhO,OAAS,CAAC,OCFf4D,KAAK5D,OAAS,CAAC,QCSfiO,cAAcjO,OAAS,CAAC,SAAU,oBEflCT,EAAQ,gBAAkB4O,EAC1B5O,EAAQ5B,OAASyQ,SACjB7O,EAAQV,MAAQwP,MAChB9O,EAAQ,gBAAkB+O,EAC1B/O,EAAQtM,SAAWsb,SACnBhP,EAAQH,MAAQoP,MAChBjP,EAAQX,KAAO6P,KACflP,EAAQnB,MAAQsQ,EAChBnP,EAAQiB,UAAYmO,UACpBpP,EAAQuB,SAAW8N,SACnBrP,EAAQkC,QAAUoN,UAClBtP,EAAQ,iBCTR,SAA0BuP,eACxB,IAAI1E,EAAOjW,KACX,OAAO,IAAI+B,GAAM8E,OAEjB,SAAS+T,aAAapa,GACpB,GAAI,SAAWA,EAAKsB,SAElB,OADAtB,EAAKT,IAAMkW,EAAK1V,MAAMC,EAAKT,KACpBS,EAAKH,WACP,GAAIG,EAAKc,MAAMH,OAAOX,KAC3B,OAAOoa,aAAapa,EAAKc,MAAMH,OAAOX,KAEzC,CATuBoa,CAAa5a,KAAKwL,aAAahL,OAAS,GAUjE,EDFD4K,EAAQoC,OAASqN,OACjBzP,EAAQ1M,QAAUoc,UAClB1P,EAAQyC,MAAQkN,MAChB3P,EAAQlM,QAAU8b,UAClB5P,EAAQZ,MAAQyQ,MAChB7P,EAAQrB,IAAMmR,IACd9P,EAAQpB,KAAOmR,KACf/P,EAAQlB,IAAMkR,IACdhQ,EAAQ,cAAgBiQ,OACxBjQ,EAAQgD,KAAOkN,KACflQ,EAAQjP,OAASof,EACjBnQ,EAAQhB,UAAYoR,UACpBpQ,EAAQ,kBAAoBqQ,EAC5BrQ,EAAQ7J,OAASma,OACjBtQ,EAAQmB,WAAaoP,WACrBvQ,EAAQ1D,MAAQkU,MAChBxQ,EAAQqE,KAAOoM,OACRC,EAACzL,MAAQjF,EAAQsM,OAASqE,EACjC3Q,EAAQuE,QAAUqM,QAClB5Q,EAAQ,qBAAuB6Q,EAC/B7Q,EAAQJ,EAAIkR,EACZ9Q,EAAQyF,SAAWsL,EACnB/Q,EAAQ0F,IAAMsL,EACPN,EAAC9a,KAAOoK,EAAQiR,OAASC,EAChClR,EAAQpH,MAAQuY,MAChBnR,EAAQb,IAAMiS,IACdpR,EAAQ6E,OAASwM,OACjBrR,EAAQlG,QAAUwX,QAClBtR,EAAQgF,IAAMuM,IACdvR,EAAQmG,KEpCiB,SAACA,KAAKC,EAAWC,GACrCA,OAA2B,IAAXA,EAAyBA,EAAS,MAAtD,IACI1G,EAAQtF,KAAK8L,KAAKC,GAClBE,EAAIjM,KAAKiH,IAAI,GAAI,GACjBkF,EAAiBtE,EAAQvC,EAAO0G,GAEnC,OADDG,EAAiBnM,KAAKqF,MAAM8G,EAAiBF,GAAKA,EAC1C,IAAI3P,GAAMgF,KAAK6K,EAAgBH,EACvC,EF8BDrG,EAAQuG,KAAOL,EACflG,EAAQwR,KGtCiB,SAACA,KAAKpL,EAAWC,GACrCA,OAA2B,IAAXA,EAAyBA,EAAS,MAAtD,IACIG,EAAiBtE,EAAQ7H,KAAK0L,GAAK,EAAGM,GAAUE,EAAKH,EAAWC,GAAQ1R,IACxE2R,EAAIjM,KAAKiH,IAAI,GAAI,GAEpB,OADDkF,EAAiBnM,KAAKqF,MAAM8G,EAAiBF,GAAKA,EAC1C,IAAI3P,GAAMgF,KAAK6K,EAAgBH,EACvC,EHiCDrG,EAAQd,KAAOuS,KACfzR,EAAQ6C,EAAI6O,EACZ1R,EAAQjB,WAAa4S,WACrB3R,EAAQ,mBAAqB4R,eAC7B5R,EAAQ/G,SAAW4Y,EACnB7R,EAAQ5C,UItCR,SAA0BA,YACxB,IAAItH,EAAQlB,KAAK8Y,cACbpS,EAAO,IAAI3E,GAAMqF,YAAW,GAEhC,GAAIlG,EAAM/E,OACR,IAAK,IAAID,EAAI,EAAGA,EAAIgF,EAAM/E,OAAQD,IAAK,CACrC,IACIiH,EADAoS,EAAQrU,EAAMhF,GAGlB,GAAIqZ,EAAMpZ,OAAS,EACjBuK,EAAK1F,KAAK,IAAIe,GAAM8E,OAAO0O,EAAM9T,KAAI,SAAS4C,GAE5C,QADAlB,EAAS,IAAIsF,EAAOpE,EAAStE,KAAKR,QAAQ4D,SACxBjH,EAAI,KAAO,IAAMmI,EAAStE,GACtD,IAAWpC,KAAK,WACH,CACL,IAAI0G,EAAWkR,EAAM,GAAGxV,IACxBoD,EAAS,IAAIsF,EAAOpE,GAAU9E,QAAQ4D,OACtCuD,EAAK1F,KAAK,IAAIe,GAAM8E,QAAQ1D,GAAUjH,EAAI,KAAO,IAAMmI,GACxD,CACF,MAEDqC,EAAK1F,KAAK,IAAIe,GAAM8E,OAAO,MAE7B,OAAOH,CACR,EJeD0E,EAAQlC,MAAQgU,EAChB9R,EAAQ5F,MAAQ2X,MAChB/R,EAAQ9H,OAAS8Z,OACjBhS,EAAQ7O,MAAQ8gB,EAChBjS,EAAQgO,IAAMkE,IACdlS,EAAQmS,MKtDiB,SAACA,QAExB,OADA5M,QAAQC,IAAI5Q,KAAKkB,OACVa,GAAMiF,IACd,ELoDDoE,EAAQqO,eAAiB+D,eACzBpS,EAAQtL,KAAOsL,EAAQqS,OAASrS,EAAQ,WAAasS,KACrDtS,EAAQkB,KAAOqR,KACfvS,EAAQuO,QAAUiE,QACX9B,EAAC7S,QAAUmC,EAAQyS,QAAUC,EACpC1S,EAAQwO,IAAMmE,IACd3S,EAAQyO,KAAOmE,KACf5S,EAAQ,cAAgB6S,KACxB7S,EAAQ,mBAAqB8S;;;;;;AMhEZ,IAAAC,EAAA,CACbC,UAAW,CAAC,IAAK,IAAK,IAAK,GAC3BC,aAAc,CAAC,IAAK,IAAK,IAAK,GAC9BC,KAAM,CAAC,EAAG,IAAK,IAAK,GACpBC,WAAY,CAAC,IAAK,IAAK,IAAK,GAC5BC,MAAO,CAAC,IAAK,IAAK,IAAK,GACvBC,MAAO,CAAC,IAAK,IAAK,IAAK,GACvBC,OAAQ,CAAC,IAAK,IAAK,IAAK,GACxBC,MAAO,CAAC,EAAG,EAAG,EAAG,GACjBC,eAAgB,CAAC,IAAK,IAAK,IAAK,GAChCnU,KAAM,CAAC,EAAG,EAAG,IAAK,GAClBoU,WAAY,CAAC,IAAK,GAAI,IAAK,GAC3BC,MAAO,CAAC,IAAK,GAAI,GAAI,GACrBC,UAAW,CAAC,IAAK,IAAK,IAAK,GAC3BC,UAAW,CAAC,GAAI,IAAK,IAAK,GAC1BC,WAAY,CAAC,IAAK,IAAK,EAAG,GAC1BC,UAAW,CAAC,IAAK,IAAK,GAAI,GAC1BC,MAAO,CAAC,IAAK,IAAK,GAAI,GACtBC,eAAgB,CAAC,IAAK,IAAK,IAAK,GAChCC,SAAU,CAAC,IAAK,IAAK,IAAK,GAC1BC,QAAS,CAAC,IAAK,GAAI,GAAI,GACvBC,KAAM,CAAC,EAAG,IAAK,IAAK,GACpBC,SAAU,CAAC,EAAG,EAAG,IAAK,GACtBC,SAAU,CAAC,EAAG,IAAK,IAAK,GACxBC,cAAe,CAAC,IAAK,IAAK,GAAI,GAC9BC,SAAU,CAAC,IAAK,IAAK,IAAK,GAC1BC,UAAW,CAAC,EAAG,IAAK,EAAG,GACvBC,SAAU,CAAC,IAAK,IAAK,IAAK,GAC1BC,UAAW,CAAC,IAAK,IAAK,IAAK,GAC3BC,YAAa,CAAC,IAAK,EAAG,IAAK,GAC3BC,eAAgB,CAAC,GAAI,IAAK,GAAI,GAC9BC,WAAY,CAAC,IAAK,IAAK,EAAG,GAC1BC,WAAY,CAAC,IAAK,GAAI,IAAK,GAC3BC,QAAS,CAAC,IAAK,EAAG,EAAG,GACrBC,WAAY,CAAC,IAAK,IAAK,IAAK,GAC5BC,aAAc,CAAC,IAAK,IAAK,IAAK,GAC9BC,cAAe,CAAC,GAAI,GAAI,IAAK,GAC7BC,cAAe,CAAC,GAAI,GAAI,GAAI,GAC5BC,cAAe,CAAC,GAAI,GAAI,GAAI,GAC5BC,cAAe,CAAC,EAAG,IAAK,IAAK,GAC7BC,WAAY,CAAC,IAAK,EAAG,IAAK,GAC1BC,SAAU,CAAC,IAAK,GAAI,IAAK,GACzBC,YAAa,CAAC,EAAG,IAAK,IAAK,GAC3BC,QAAS,CAAC,IAAK,IAAK,IAAK,GACzBC,QAAS,CAAC,IAAK,IAAK,IAAK,GACzBC,WAAY,CAAC,GAAI,IAAK,IAAK,GAC3BC,UAAW,CAAC,IAAK,GAAI,GAAI,GACzBC,YAAa,CAAC,IAAK,IAAK,IAAK,GAC7BC,YAAa,CAAC,GAAI,IAAK,GAAI,GAC3BC,QAAS,CAAC,IAAK,EAAG,IAAK,GACvBC,UAAW,CAAC,IAAK,IAAK,IAAK,GAC3BC,WAAY,CAAC,IAAK,IAAK,IAAK,GAC5BC,KAAM,CAAC,IAAK,IAAK,EAAG,GACpBC,UAAW,CAAC,IAAK,IAAK,GAAI,GAC1BC,KAAM,CAAC,IAAK,IAAK,IAAK,GACtBhX,MAAO,CAAC,EAAG,IAAK,EAAG,GACnBiX,YAAa,CAAC,IAAK,IAAK,GAAI,GAC5BC,KAAM,CAAC,IAAK,IAAK,IAAK,GACtBC,SAAU,CAAC,IAAK,IAAK,IAAK,GAC1BC,QAAS,CAAC,IAAK,IAAK,IAAK,GACzBC,UAAW,CAAC,IAAK,GAAI,GAAI,GACzBC,OAAQ,CAAC,GAAI,EAAG,IAAK,GACrBC,MAAO,CAAC,IAAK,IAAK,IAAK,GACvBC,MAAO,CAAC,IAAK,IAAK,IAAK,GACvBC,SAAU,CAAC,IAAK,IAAK,IAAK,GAC1BC,cAAe,CAAC,IAAK,IAAK,IAAK,GAC/BC,UAAW,CAAC,IAAK,IAAK,EAAG,GACzBC,aAAc,CAAC,IAAK,IAAK,IAAK,GAC9BC,UAAW,CAAC,IAAK,IAAK,IAAK,GAC3BC,WAAY,CAAC,IAAK,IAAK,IAAK,GAC5BC,UAAW,CAAC,IAAK,IAAK,IAAK,GAC3BC,qBAAsB,CAAC,IAAK,IAAK,IAAK,GACtCC,UAAW,CAAC,IAAK,IAAK,IAAK,GAC3BC,WAAY,CAAC,IAAK,IAAK,IAAK,GAC5BC,UAAW,CAAC,IAAK,IAAK,IAAK,GAC3BC,UAAW,CAAC,IAAK,IAAK,IAAK,GAC3BC,YAAa,CAAC,IAAK,IAAK,IAAK,GAC7BC,cAAe,CAAC,GAAI,IAAK,IAAK,GAC9BC,aAAc,CAAC,IAAK,IAAK,IAAK,GAC9BC,eAAgB,CAAC,IAAK,IAAK,IAAK,GAChCC,eAAgB,CAAC,IAAK,IAAK,IAAK,GAChCC,eAAgB,CAAC,IAAK,IAAK,IAAK,GAChCC,YAAa,CAAC,IAAK,IAAK,IAAK,GAC7BC,KAAM,CAAC,EAAG,IAAK,EAAG,GAClBC,UAAW,CAAC,GAAI,IAAK,GAAI,GACzBC,MAAO,CAAC,IAAK,IAAK,IAAK,GACvBC,QAAS,CAAC,IAAK,EAAG,IAAK,GACvBC,OAAQ,CAAC,IAAK,EAAG,EAAG,GACpBC,iBAAkB,CAAC,IAAK,IAAK,IAAK,GAClCC,WAAY,CAAC,EAAG,EAAG,IAAK,GACxBC,aAAc,CAAC,IAAK,GAAI,IAAK,GAC7BC,aAAc,CAAC,IAAK,IAAK,IAAK,GAC9BC,eAAgB,CAAC,GAAI,IAAK,IAAK,GAC/BC,gBAAiB,CAAC,IAAK,IAAK,IAAK,GACjCC,kBAAmB,CAAC,EAAG,IAAK,IAAK,GACjCC,gBAAiB,CAAC,GAAI,IAAK,IAAK,GAChCC,gBAAiB,CAAC,IAAK,GAAI,IAAK,GAChCC,aAAc,CAAC,GAAI,GAAI,IAAK,GAC5BC,UAAW,CAAC,IAAK,IAAK,IAAK,GAC3BC,UAAW,CAAC,IAAK,IAAK,IAAK,GAC3BC,SAAU,CAAC,IAAK,IAAK,IAAK,GAC1BC,YAAa,CAAC,IAAK,IAAK,IAAK,GAC7BC,KAAM,CAAC,EAAG,EAAG,IAAK,GAClBC,QAAS,CAAC,IAAK,IAAK,IAAK,GACzBC,MAAO,CAAC,IAAK,IAAK,EAAG,GACrBC,UAAW,CAAC,IAAK,IAAK,GAAI,GAC1BC,OAAQ,CAAC,IAAK,IAAK,EAAG,GACtBC,UAAW,CAAC,IAAK,GAAI,EAAG,GACxBC,OAAQ,CAAC,IAAK,IAAK,IAAK,GACxBC,cAAe,CAAC,IAAK,IAAK,IAAK,GAC/BC,UAAW,CAAC,IAAK,IAAK,IAAK,GAC3BC,cAAe,CAAC,IAAK,IAAK,IAAK,GAC/BC,cAAe,CAAC,IAAK,IAAK,IAAK,GAC/BC,WAAY,CAAC,IAAK,IAAK,IAAK,GAC5BC,UAAW,CAAC,IAAK,IAAK,IAAK,GAC3BC,KAAM,CAAC,IAAK,IAAK,GAAI,GACrBC,KAAM,CAAC,IAAK,IAAK,IAAK,GACtBC,KAAM,CAAC,IAAK,IAAK,IAAK,GACtBC,WAAY,CAAC,IAAK,IAAK,IAAK,GAC5BC,OAAQ,CAAC,IAAK,EAAG,IAAK,GACtBjb,IAAK,CAAC,IAAK,EAAG,EAAG,GACjBkb,UAAW,CAAC,IAAK,IAAK,IAAK,GAC3BC,UAAW,CAAC,GAAI,IAAK,IAAK,GAC1BC,YAAa,CAAC,IAAK,GAAI,GAAI,GAC3BC,OAAQ,CAAC,IAAK,IAAK,IAAK,GACxBC,WAAY,CAAC,IAAK,IAAK,GAAI,GAC3BC,SAAU,CAAC,GAAI,IAAK,GAAI,GACxBC,SAAU,CAAC,IAAK,IAAK,IAAK,GAC1BC,OAAQ,CAAC,IAAK,GAAI,GAAI,GACtBC,OAAQ,CAAC,IAAK,IAAK,IAAK,GACxBC,QAAS,CAAC,IAAK,IAAK,IAAK,GACzBC,UAAW,CAAC,IAAK,GAAI,IAAK,GAC1BC,UAAW,CAAC,IAAK,IAAK,IAAK,GAC3BC,UAAW,CAAC,IAAK,IAAK,IAAK,GAC3BC,KAAM,CAAC,IAAK,IAAK,IAAK,GACtBC,YAAa,CAAC,EAAG,IAAK,IAAK,GAC3BC,UAAW,CAAC,GAAI,IAAK,IAAK,GAC1BpN,IAAK,CAAC,IAAK,IAAK,IAAK,GACrBqN,KAAM,CAAC,EAAG,IAAK,IAAK,GACpBC,QAAS,CAAC,IAAK,IAAK,IAAK,GACzBC,OAAQ,CAAC,IAAK,GAAI,GAAI,GACtBC,YAAa,CAAC,EAAG,EAAG,EAAG,GACvBC,UAAW,CAAC,GAAI,IAAK,IAAK,GAC1BC,OAAQ,CAAC,IAAK,IAAK,IAAK,GACxBC,MAAO,CAAC,IAAK,IAAK,IAAK,GACvBC,MAAO,CAAC,IAAK,IAAK,IAAK,GACvBC,WAAY,CAAC,IAAK,IAAK,IAAK,GAC5BC,OAAQ,CAAC,IAAK,IAAK,EAAG,GACtBC,YAAa,CAAC,IAAK,IAAK,GAAI,GAC5BC,cAAe,CAAC,IAAK,GAAI,IAAK,IC5JlC,SAAS7nB,MAAM8nB,GACb,OAAO,IAAIC,IAAID,EACjB,UCaI,IAAAnoB,EAAUsF,EAAgBtF,QAQ1BqoB,EAAe,CACf,OAAQ,YACR,OAAQ,YACR,OAAQ,aACR,QAAS,aACT,OAAQ,gBACR,QAAS,aACT,OAAQ,yBACR,OAAQ,gCACR,QAAS,wBACT,SAAU,0BAMVC,EACO,SADPA,EAEI,gBAuBMC,EAAG,SAASriB,GAGxB,IAAIsiB,GAFJtiB,EAAUA,GAAW,IAEAV,OAAS,GAC1BijB,EAAY,MAAQviB,EAAQwiB,MAAQxiB,EAAQwiB,MAAQ,IACpDC,EAAQziB,EAAQyiB,OAASN,EAO7B,SAAS9mB,GAAG4mB,EAAKS,GAEf,IAAIC,EAAW,IAAIjW,EAASuV,GACxBW,EAAWR,EAEfO,EAASnS,OAAQ,EAMjByR,EAAM9nB,MALN8nB,EAAMA,EAAItlB,MAAMN,KAAI,SAASjB,GAC3B,OAAOunB,EAASxnB,MAAMC,EAC5B,IAAO7C,KAAK,KAIR,IAKIgE,EACAsK,EANAlP,EAAMmC,EAAQmoB,EAAIY,UAAY,IAC9BC,EAAOL,EAAM9qB,GACborB,EAAOd,EAAIc,MAAQ,GACnB3Q,EAAU,IAAIzV,GAAMwH,QAAQ,QAAU8d,EAAIe,KAAO,MACjD1jB,EAAQgjB,EAAO9b,OAAO5L,KAAK0E,OAK/B,IAAIwjB,EAAM,OAAO1Q,EAGjB,GAAG6P,EAAIgB,SAAU,OAAO7Q,EAGxB,IAAI1S,EAAQyJ,gBAAa8Y,EAAIY,SAAUvjB,GAGvC,OAAII,GAUJnD,EAAM2mB,sBAAgBxjB,IAGnB,IAAU6iB,GAAahmB,EAAIxF,OAASwrB,EAAkBnQ,GAEtDsQ,GAAO,QAAUA,EAAI7f,MAAMlI,IAAIwoB,eAChCP,EAAWR,EACXvb,EAAStK,EAAItB,WAAW6E,QAAQ,OAAQ,KACrCA,QAAQ,0BAA0B,SAASwC,GAC1C,MAAO,IAAMA,EAAM,GAAGtL,WAAW,GAAGiE,SAAS,IAAImoB,aAC3D,IAAWlkB,QAEL2H,EAAStK,EAAItB,SAAS2nB,GAAYG,EAI7B,IAAIpmB,GAAMwH,QAAQ,aAAe2e,EAAO,IAAOF,EAAW,IAAM/b,EAAS,SAzB9Ewc,GAAOC,KACH,iBACA,QAAUlR,EAAU,8CAGjBA,EAsBb,CAEE,OADA/W,GAAGqD,KAAM,EACFrD,EACT,EAGcgnB,EAACI,MAAQN,EC1HnB,IAAA7oB,EAAU8F,EAAgB9F,QAE1BiqB,EAAQC,SAQZ,SAASC,WAAWroB,EAAMsoB,EAAMtR,GAC9B,IAEIuR,EAFAC,EAAchpB,KAAKgpB,YACnBvgB,EAASkQ,GAIb,GAAInY,EAAKyoB,KAAM,CACb,GAAIjpB,KAAKkpB,eAAeJ,GAAO,OAAO/mB,GAAMiF,KAG5C,GAFAhH,KAAKkpB,eAAeJ,IAAQ,EAExBtR,IAAYxX,KAAKmpB,WACnB,OAAO3oB,CAEV,CAGD,IAAKwoB,EAAYjlB,QAAQ+kB,GACvB,MAAM,IAAIxiB,MAAM,8BAElB,IAAIvD,EAAMulB,sBAAgBQ,GAG1B,IAAK/lB,EAAIuB,OAAQ,OAAOvC,GAAMiF,KAgB9B,GAbAxG,EAAKjF,KAAOutB,EACZtoB,EAAK9B,QAAUA,EAAQoqB,GAEvBC,EAAOpkB,kBAAYmkB,GACnBtoB,EAAK4oB,MAAQL,EAAKK,MAClBppB,KAAK0E,MAAM1D,KAAKR,EAAK9B,SAEjBsB,KAAKoF,QAAQikB,UAAUrpB,KAAKoF,QAAQikB,SAASroB,KAAKR,EAAKyJ,SAG3D+e,EAAYhoB,KAAK8nB,GACjB/mB,GAAMF,SAAWinB,EAEbtR,KACFA,EAAU,IAAIzV,GAAMwH,QAAQxG,EAAImC,QAAQ,SAAU,QAC1C/E,OAASqX,EAAQpX,OAAS,GAC7BJ,KAAKspB,YAAY,OAAO9R,EAI/B,IAAIlW,EAAQ,IAAIS,GAAMoV,MAClBuB,EAAS,IAAIjQ,EAAO1F,EAAKyN,EAAY,CAAE5T,KAAM0E,GAAStB,KAAKoF,UAE/D,IACE9D,EAAQoX,EAAOnZ,OAehB,CAdC,MAAOqF,GACP,IAAIiB,EAAO6S,EAAO6Q,MAAMppB,OACpBC,EAASsY,EAAO6Q,MAAMnpB,OAE1B,GAAIoX,GAAWxX,KAAKmpB,YAAcnpB,KAAKspB,WAErC,OADAtpB,KAAK6Z,KAAK,eAAiBiP,EAAO,IAAMjjB,EAAO,IAAMzF,EAAS,8BACvDoX,EAMP,MAJA5S,EAAI/C,SAAWinB,EACflkB,EAAIzE,OAAS0F,EACbjB,EAAIxE,OAASA,EACbwE,EAAIS,MAAQtC,EACN6B,CAET,EAGDtD,EAAQA,EAAM2I,MAAMjK,KAAKwpB,eACnBroB,OAASnB,KAAKwpB,aACpBloB,EAAMoB,OAAQ,EACd,IAAIlD,EAAMQ,KAAKO,MAAMe,GAIrB,OAHA0nB,EAAYlY,MACP9Q,KAAKspB,aAActpB,KAAKspB,WAAWG,SAASzpB,KAAK0E,MAAMoM,MAErDtR,CACT,CAEA,IAAAkqB,EAAA,MAAuBA,kBAAkBppB,EAcvCT,YAAYjD,EAAMwI,GAChBtE,MAAMlE,GACNwI,EAAUA,GAAW,GACrB,IAAIukB,EAAY3pB,KAAK2pB,UAAYvkB,EAAQukB,WAAa,CAAA,EACtD3pB,KAAKkB,MAAQ,IAAIN,EACjBZ,KAAK4W,QAAUxR,EAAQwR,SAAW,GAClC5W,KAAK4pB,QAAUxkB,EAAQwkB,SAAW,CAAA,EAClC5pB,KAAK0E,MAAQU,EAAQV,OAAS,GAC9B1E,KAAK+O,OAAS3J,EAAQ2J,QAAU,GAChC/O,KAAK6B,SAAWuD,EAAQvD,SACxB7B,KAAKmpB,WAAa/jB,EAAQ,eAC1BpF,KAAKspB,WAAaK,EAAUtC,KACvB,YAAcsC,EAAUtC,IAAIvqB,MAC5B6sB,EAAUtC,IAAIjiB,QACnBpF,KAAK0E,MAAM1D,KAAKtC,EAAQ0G,EAAQvD,UAAY,MAC5C7B,KAAKkB,MAAMF,KAAKhB,KAAKyN,OAAS,IAAIjL,EAAM5F,IACxCoD,KAAK6pB,SAAWzkB,EAAQyU,KACxB7Z,KAAKoF,QAAUA,EACfpF,KAAK8pB,QAAU,GACf9pB,KAAKgpB,YAAc,GACnBhpB,KAAKkpB,eAAiB,GACtBlpB,KAAK+pB,OAAS,CACf,CAUDxpB,MAAMC,GACJ,IACE,OAAOM,MAAMP,MAAMC,EAapB,CAZC,MAAOoE,GACP,GAAIA,EAAI/C,SAAU,MAAM+C,EACxBA,EAAIzE,OAASK,EAAKL,OAClByE,EAAIxE,OAASI,EAAKJ,OAClBwE,EAAI/C,SAAWrB,EAAKqB,SACpB+C,EAAIoB,YAAchG,KAAKkB,MAAMb,WAC7B,IACEuE,EAAIS,MAAQijB,sBAAgB1jB,EAAI/C,SAGjC,CAFC,MAAO+C,GAER,CACD,MAAMA,CACP,CACF,CAWDolB,QACE,IAAIptB,EAAOoD,KAAKpD,KACZga,EAAU,GAEd5W,KAAKiqB,sBACLjqB,KAAK4W,QAAQvP,SAAQ,SAAUyhB,GAC7B,IAAIpiB,EAAO,IAAI3E,GAAMqF,WACrBV,EAAK1F,KAAK,IAAIe,GAAM8E,OAAOiiB,IAC3BlS,EAAQ5V,KAAK,IAAIe,GAAMmoB,OAAOxjB,GAC/B,GAAE1G,MAEHpD,EAAKmF,MAAQ6U,EAAQhL,OAAOhP,EAAKmF,MAClC,CAWDkoB,sBACE,IAAIvnB,EAAQ1C,KAAKyN,OAAO/K,MAGxBJ,OAAOD,KAAK8b,GAAQ9W,SAAQ,SAAUvK,GACpC,IAAI2M,EAAQ0U,EAAOrhB,GACfwN,EAAO,IAAIvI,GAAM4I,KAAKlB,EAAM,GAAIA,EAAM,GAAIA,EAAM,GAAIA,EAAM,IAC1DjJ,EAAO,IAAIuB,GAAMwF,MAAMzK,EAAMwN,GACjCA,EAAKxN,KAAOA,EACZ4F,EAAMR,IAAI1B,EAChB,IAGIkC,EAAMR,IAAI,IAAIH,GAAMwF,MAClB,WACA,IAAIxF,GAAMooB,SAAS,WAAYC,EAA4B,CACzDxC,OAAO,OAKX,IAAIgC,EAAU5pB,KAAK4pB,QACnBtnB,OAAOD,KAAKunB,GAASviB,SAAQ,SAAUvK,GACrC,IAAIiD,EAAM6pB,EAAQ9sB,GACbiD,EAAI+B,WAAU/B,EAAM,IAAIgC,GAAMwH,QAAQxJ,IAC3C2C,EAAMR,IAAI,IAAIH,GAAMwF,MAAMzK,EAAMiD,GACtC,GACG,CASDsqB,WAGE,OAFA1B,EAAM,UAAW3oB,KAAK6B,UACtB7B,KAAKgqB,QACEhqB,KAAKO,MAAMP,KAAKpD,KACxB,CAMD0Y,WAAWC,GAQT,OAPAA,EAAMxT,MAAQwT,EAAMxT,MAAMN,KAAI,SAAU4C,GAGtC,OAFAA,EAAStE,IAAMC,KAAKsqB,YAAYjmB,GAChCskB,EAAM,aAActkB,EAAStE,KACtBsE,CACR,GAAErE,MAEHuV,EAAMjU,MAAQtB,KAAKO,MAAMgV,EAAMjU,OACxBiU,CACR,CAMDgV,YAAY/qB,GAEV,MADAA,EAAIkH,KAAO1G,KAAKO,MAAMf,EAAIkH,MACpBlH,CACP,CAMD0T,WAAWC,GAGT,OAFAA,EAAM7R,MAAQtB,KAAKO,MAAM4S,EAAM7R,OAC/B6R,EAAMpT,IAAMC,KAAKO,MAAM4S,EAAMpT,KACtBoT,CACR,CAMDE,eAAeC,GACb,IAAIvT,EAAKyqB,EAGT,GAFAlX,EAAQvR,MAAMsF,QAAQrH,KAAKO,MAAOP,MAE9B,GAAKsT,EAAQvR,MAAM5F,SACrBquB,EAAQlX,EAAQvR,MAAM,GAClBhC,EAAMC,KAAKuB,OAAOipB,EAAM1qB,OAAO,CAEjC,KADAC,EAAMA,EAAIkI,MAAMoC,QACN,OAAOiJ,EACjB,IACIoF,EAAS,IADAC,GACW5Y,EAAKC,KAAKoF,SAClCkO,EAAUtT,KAAKO,MAAMmY,EAAOpF,UAC7B,CAEH,OAAOA,CACR,CAMDC,WAAW/S,GAIT,OAHAA,EAAKgT,UAAYxT,KAAKO,MAAMC,EAAKgT,WACjChT,EAAKV,KAAOE,KAAKO,MAAMC,EAAKV,MAC5BU,EAAKuB,MAAMsF,QAAQrH,KAAKO,MAAOP,MACxBQ,CACR,CAMDiT,aAAajT,GAOX,OANAA,EAAK1D,KAAOkD,KAAKsqB,YAAY9pB,GACzBA,EAAKkG,OACP1G,KAAK+pB,SACLvpB,EAAKkG,KAAO1G,KAAKO,MAAMC,EAAKkG,MAC5B1G,KAAK+pB,UAEAvpB,CACR,CAMDiqB,YAAYnjB,GACV,IAAK,IAAI/E,KAAO+E,EAAIa,KAClBb,EAAIa,KAAK5F,GAAOvC,KAAKO,MAAM+G,EAAIa,KAAK5F,IAEtC,OAAO+E,CACR,CAMDojB,YAAYlqB,GACV,IAAIqP,EAAOrP,EAAKqP,KACZC,EAAQtP,EAAKsP,MACbxI,EAAMtH,KAAKO,MAAMsP,GAAM5H,MAE3B,GAAI,UAAYX,EAAIxF,SAClB,MAAM,IAAIwE,MAAMuJ,EAAKxP,WAAa,qBAAuByP,GAO3D,OALItP,EAAKT,MACPC,KAAK+pB,SACLziB,EAAIE,IAAIsI,EAAMhT,KAAMkD,KAAKO,MAAMC,EAAKT,MACpCC,KAAK+pB,UAEAziB,EAAIkH,IAAIsB,EAAMhT,KACtB,CAMDiW,eAAe4X,GACb,IAAI5qB,EACJ,OAAI4qB,EAAUC,WAAmBD,GACjCA,EAAU5qB,IAAMC,KAAKsqB,YAAYK,GAAWrmB,QACxCvE,EAAMC,KAAKuB,OAAOopB,EAAU5qB,QAC9B4qB,EAAU5qB,IAAMA,EAAIkI,MAAMoC,QAAUtK,EAAIkI,MAAMnL,MAEhD6tB,EAAUrpB,MAAQtB,KAAKO,MAAMoqB,EAAUrpB,OAEnC,YAAcqpB,EAAU5b,OAAe4b,GAE3C3qB,KAAK6qB,QAAQxjB,SAAQ,SAAU0H,GAE7B,GAAI,MAAQA,EAAZ,CACA,IAAIvO,EAAOmqB,EAAU1gB,QACrBzJ,EAAKT,IAAM4qB,EAAU5qB,IACrBS,EAAKuO,OAASA,EACdvO,EAAKc,MAAQqpB,EAAUrpB,MACvBd,EAAKoqB,YAAa,EAClB5qB,KAAKwpB,aAAaxoB,KAAKR,EANI,CAO5B,GAAER,MAEI+B,GAAMiF,MACd,CAMDqN,cAAc5T,GAEZ,IAAI4N,EAAQrO,KAAKkB,MAAME,aAAasB,MAAMnB,OAAOd,EAAG3D,MAWpD,OAVIuR,GAAOrO,KAAK6Z,KAAK,SAAWxL,EAAMvM,SAAW,KAAOrB,EAAG3D,KAAO,sCAGvDkD,KAAK2pB,UAAUlpB,EAAG3D,OACnBkD,KAAK6Z,KAAK,0BAA4BpZ,EAAG3D,KAAO,wBAGhDguB,EAAKrqB,EAAG3D,OACTkD,KAAK6Z,KAAK,sBAAwBpZ,EAAG3D,KAAO,wBAE9C2D,CACR,CAMDsqB,UAAUC,GACRhrB,KAAK+pB,SACL,IAQIkB,EACA3jB,EATAZ,EAAO4E,EAAatL,KAAKO,MAAMyqB,EAAKtkB,OACpC9E,EAAM8E,EAAK3E,MAAM5F,OACjB4D,EAAM,IAAIgC,GAAMwF,MAAMyjB,EAAKjrB,KAC3BwC,EAAM,IAAIR,GAAMwF,MAAMyjB,EAAKzoB,KAAO,aAClCG,EAAQ1C,KAAK0N,aACbpM,EAAQtB,KAAKwpB,aACbrhB,EAAO,GACP8N,EAAOjW,KAOX,SAASkrB,UAAU3oB,EAAKxC,GACtB2C,EAAMR,IAAInC,GACV2C,EAAMR,IAAIK,GACV0oB,EAAOhV,EAAK1V,MAAMyqB,EAAK1pB,MAAM2I,SAC7B9B,EAAOA,EAAKyD,OAAOqf,EAAKlpB,MACzB,CAGD,GAZA/B,KAAK+pB,SAELiB,EAAK1pB,MAAMoB,OAAQ,EAUf,GAAKd,GAAO,UAAY8E,EAAK3E,MAAM,GAAGD,SAExC,IAAK,IAAI4H,KADTpC,EAAMZ,EAAK3E,MAAM,IACIoG,KACnBpI,EAAIA,IAAM,IAAIgC,GAAM8E,OAAO6C,GAC3BnH,EAAIxC,IAAMuH,EAAIkH,IAAI9E,GAClBwhB,UAAU3oB,EAAKxC,QAGjB,IAAK,IAAI7D,EAAI,EAAGA,EAAI0F,IAAO1F,EACzB6D,EAAIA,IAAM2G,EAAK3E,MAAM7F,GACrBqG,EAAIxC,IAAM,IAAIgC,GAAMgF,KAAK7K,GACzBgvB,UAAU3oB,EAAKxC,GAKnB,OADAC,KAAKmrB,MAAMhjB,EAAM7G,GACV6G,EAAKA,EAAKhM,OAAS,IAAM4F,GAAMiF,IACvC,CAMD8O,UAAUhH,GAER,IACI0I,EACAhY,EAFAiB,EAAKT,KAAKuB,OAAOuN,EAAKhS,MAkB1B,GAbAkD,KAAKorB,aAAe,OAAStc,EAAKhS,KAG9B2D,GAAM,cAAgBA,EAAGqB,WAC3BrB,EAAKA,EAAGsB,MAAM,IAIZtB,GAAM,YAAcA,EAAGqB,WACzBrB,EAAKT,KAAKqrB,eAAevc,EAAKhS,QAI3B2D,GAAqB,YAAfA,EAAGqB,SAUZ,MAPI,QAAU9B,KAAKsrB,YAAYxc,EAAKhS,OAClC0a,EAAU1I,EAAKiH,KAAKhU,OAAS+M,EAAKiH,KAAKhU,MAAM,MAChCvC,EAAM,IAAIuC,GAAMwH,QAAQuF,EAAKhS,KAAO0a,IAEjDhY,EAAMQ,KAAKurB,YAAYzc,GAEzB9O,KAAKorB,cAAe,EACb5rB,EAMT,GAHAQ,KAAK8pB,QAAQ9oB,KAAK8N,EAAKhS,MAGnBkD,KAAK8pB,QAAQ3tB,OAAS,IACxB,MAAM,IAAIqvB,WAAW,2CAInB,cAAgB/qB,EAAGqB,WAAUrB,EAAKA,EAAGwH,OAGzCjI,KAAK+pB,SACL,IAAIhU,EAAO/V,KAAKO,MAAMuO,EAAKiH,MAE3B,IAAK,IAAIxT,KAAOwT,EAAKtU,IACnBsU,EAAKtU,IAAIc,GAAOvC,KAAKO,MAAMwV,EAAKtU,IAAIc,GAAK0H,SAkB3C,OAhBAjK,KAAK+pB,SAGDtpB,EAAGA,GAELjB,EAAMQ,KAAKyrB,cAAchrB,EAAGA,GAAIsV,GAEvB,YAActV,EAAGqB,WAGtBgN,EAAKxN,QAAOwN,EAAKxN,MAAQtB,KAAKO,MAAMuO,EAAKxN,QAC7C9B,EAAMQ,KAAK0rB,eAAejrB,EAAIsV,EAAMjH,EAAKxN,QAG3CtB,KAAK8pB,QAAQhZ,MACb9Q,KAAKorB,cAAe,EACb5rB,CACR,CAMDkW,WAAWvT,GACT,IAAIuH,EAEJ,GAAIvH,EAAMwpB,SACR,OAAIjiB,EAAO1J,KAAK4rB,eAAezpB,EAAMrF,OAC5BkD,KAAKO,MAAMmJ,EAAKhD,KAAKuD,SAEvBlI,GAAMiF,KAER,GAAI7E,EAAMpC,IAAI6M,OAAQ,CAC3B,IAAI7M,EAAMC,KAAKuB,OAAOY,EAAMrF,MAG5B,OADIiD,GAAOoC,EAAMgpB,OAAOnrB,KAAK6rB,UAAU9rB,GAChCA,EAAMC,KAAKO,MAAMR,GAAOoC,CAErC,CAKM,OAJAnC,KAAK+pB,SACL5nB,EAAMpC,IAAMC,KAAKO,MAAM4B,EAAMpC,KAC7BC,KAAK+pB,SACL/pB,KAAK0N,aAAaxL,IAAIC,GACfA,EAAMpC,GAEhB,CAMD+rB,WAAWC,GAET,GAAI,cAAgBA,EAAMnc,GAAI,OAAO5P,KAAKgsB,UAAUD,EAAMlc,MAE1D7P,KAAK+pB,SAEL,IAAIna,EAAKmc,EAAMnc,GACXC,EAAO7P,KAAKO,MAAMwrB,EAAMlc,MACxBC,EAAS,MAAQF,GAAM,MAAQA,EAC7Bmc,EAAMjc,MAAQ9P,KAAKO,MAAMwrB,EAAMjc,OAGjC/P,EAAMgsB,EAAMhsB,IACZC,KAAKO,MAAMwrB,EAAMhsB,KACjB,KACJC,KAAK+pB,SAGL,IACE,OAAO/pB,KAAKO,MAAMsP,EAAKF,QAAQC,EAAIE,EAAO/P,GAa3C,CAZC,MAAO6E,GAGP,GAAI,iBAAmBA,EAAI9H,KACzB,OAAQ8S,GACN,IAAK,KACH,OAAO7N,GAAMkqB,MACf,IAAK,KACH,OAAOlqB,GAAMmqB,KAGnB,MAAMtnB,CACP,CACF,CAMDunB,aAAaC,GACX,IAAIxc,EAAKwc,EAAMxc,GACXpP,EAAOR,KAAKO,MAAM6rB,EAAM1lB,MAO5B,OALI,KAAOkJ,IACTpP,EAAOA,EAAKyH,MAAMgC,QAClBH,oBAAiBtJ,EAAM,SAGjBoP,GACN,IAAK,IACHpP,EAAKT,KAAOS,EAAKT,IACjB,MACF,IAAK,IACHS,EAAKT,KAAOS,EAAKT,IACjB,MACF,IAAK,IACHS,EAAKT,KAAOS,EAAKT,IACjB,MACF,IAAK,IACH,OAAOS,EAAKmN,YAAY0e,SAG5B,OAAO7rB,CACR,CAMD8rB,aAAaC,GAEX,OADSvsB,KAAKO,MAAMgsB,EAAQC,MAAM7e,YACxBC,OACN5N,KAAKO,MAAMgsB,EAAQE,UACnBzsB,KAAKO,MAAMgsB,EAAQG,UACxB,CAMD1W,gBAAgBtP,GACd,IAAK,IAAIxK,EAAI,EAAG0F,EAAM8E,EAAK3E,MAAM5F,OAAQD,EAAI0F,IAAO1F,EAClDwK,EAAK3E,MAAM7F,GAAK8D,KAAKO,MAAMmG,EAAK3E,MAAM7F,IAMxC,OAFI8D,KAAK2sB,SAASjmB,KAAOA,EAAO1G,KAAK4sB,KAAKlmB,IAEnCA,CACR,CAMGyP,qBACF,OAAOnW,KAAKgW,eACb,CAMDI,cAAc1M,GACZ,IAAI5M,EAAOkD,KAAKsqB,YAAY5gB,GACxBjJ,EAAKT,KAAKuB,OAAOzE,GACjBgS,EAAOrO,GAAM,YAAcA,EAAGwH,MAAMnG,SACpC0V,GAAWxX,KAAK8pB,QAAQ/lB,QAAQjH,GAChC+vB,EAAQ7sB,KAAK2rB,SAGjB,IAAI7c,GAAS0I,GAAY9N,EAAK8N,QAmB5B,OAPAxX,KAAK+pB,SACLrgB,EAAK5M,KAAOA,EACZ4M,EAAK8N,SAAU,EACfxX,KAAK2rB,SAAWjiB,EAChBA,EAAKhD,KAAO1G,KAAKO,MAAMmJ,EAAKhD,MAC5B1G,KAAK2rB,SAAWkB,EAChB7sB,KAAK+pB,SACErgB,EAlBP,IAAIqM,EAAOhU,GAAM+qB,UAAUC,eAAezhB,EAAa5B,EAAKhD,KAAKuD,UACjEP,EAAK5M,KAAOA,EACZkD,KAAK2rB,SAAWjiB,EAChB1J,KAAK+pB,SACL/pB,KAAK2rB,SAASjlB,KAAO1G,KAAKO,MAAMmJ,EAAKhD,MACrC1G,KAAK+pB,SACL,IAAIvqB,EAAMQ,KAAKO,MAAM,IAAIwB,GAAMirB,KAAKlwB,EAAMiZ,IAE1C,OADA/V,KAAK2rB,SAAWkB,EACTrtB,CAYV,CAMD8S,UAAUhR,GAER,GAAIA,GAAStB,KAAKpD,KAEhB,OADA0E,EAAMzB,YAAckC,GAAMoV,MACnBnX,KAAKO,MAAMe,GAGpB,IAAK,IAAIpF,EAAI,EAAGA,EAAIoF,EAAMS,MAAM5F,SAAUD,EACxCoF,EAAMoK,MAAQxP,EACdoF,EAAMS,MAAM7F,GAAK8D,KAAKO,MAAMe,EAAMS,MAAM7F,IAE1C,OAAOoF,CACR,CAMDkR,WAAWlR,GAET,IADAtB,KAAKkB,MAAMF,KAAK,IAAIwB,EAAMlB,IACrBA,EAAMoK,MAAQ,EAAGpK,EAAMoK,MAAQpK,EAAMS,MAAM5F,SAAUmF,EAAMoK,MAC9D,IACEpK,EAAMS,MAAMT,EAAMoK,OAAS1L,KAAKO,MAAMe,EAAMS,MAAMT,EAAMoK,OAazD,CAZC,MAAO9G,GACP,GAAI,UAAYA,EAAI9C,SAAU,CAC5B,GAAI9B,KAAK+pB,OAEP,MADA/pB,KAAKkB,MAAM4P,MACLlM,EAENtD,EAAMS,MAAMT,EAAMoK,OAAS9G,EAC3B,KAEZ,CACU,MAAMA,CAET,CAGH,OADA5E,KAAKkB,MAAM4P,MACJxP,CACR,CAMD2rB,aAAaC,GAEX,OADAA,EAAQ5rB,MAAQtB,KAAKO,MAAM2sB,EAAQ5rB,OAC5B4rB,CACR,CAMDrZ,YAAYC,GAGV,OAFAA,EAAO/T,IAAMC,KAAKsqB,YAAYxW,GAC1BA,EAAOxS,QAAOwS,EAAOxS,MAAQtB,KAAKO,MAAMuT,EAAOxS,QAC5CwS,CACR,CAMDE,cAAcxT,GACZ,IACIT,EADAmU,EAAY1T,EAAK0T,UAarB,OAVAlU,KAAK+pB,SACLvpB,EAAK0T,UAAYlU,KAAKO,MAAM2T,GAC5BlU,KAAK+pB,SAELhqB,EAAMmU,EAAUjM,MACZ,GAAKiM,EAAUnS,MAAM5F,QACpB,UAAY4D,EAAI+B,WACnBtB,EAAK0T,UAAYnU,EAAIsK,QAEvB7J,EAAKc,MAAQtB,KAAKO,MAAMC,EAAKc,OACtBd,CACR,CAMD2sB,QAAQ3sB,GACN,IAAIhB,EACA8B,EAAQtB,KAAKwpB,aACb6C,EAAS7rB,EAAK6rB,OAElBrsB,KAAK+pB,SACL,IAAIqD,EAAKptB,KAAKO,MAAMC,EAAKgsB,MAAMvkB,MAAM0F,YAMrC,GALA3N,KAAK+pB,SAELvpB,EAAKc,MAAMoB,MAAQlC,EAAKc,MAAM+rB,SAG1BhB,EAEEe,EAAGxe,UACLpP,EAAMQ,KAAKO,MAAMC,EAAKc,aAIxB,GAAI8rB,EAAGxf,OACLpO,EAAMQ,KAAKO,MAAMC,EAAKc,YAEjB,GAAId,EAAK8sB,MAAMnxB,OAIpB,IAHA,IAEIqwB,EAFAc,EAAQ9sB,EAAK8sB,MACb1rB,EAAM0rB,EAAMnxB,OAEPD,EAAI,EAAGA,EAAI0F,IAAO1F,EAEzB,GAAIoxB,EAAMpxB,GAAGswB,MAKX,GAJAc,EAAMpxB,GAAGoF,MAAMoB,MAAQ4qB,EAAMpxB,GAAGoF,MAAM+rB,SACtCrtB,KAAK+pB,SACLyC,EAAOxsB,KAAKO,MAAM+sB,EAAMpxB,GAAGswB,MAAMvkB,MAAM0F,YACvC3N,KAAK+pB,SACDyC,EAAK5e,OAAQ,CACfpO,EAAMQ,KAAKO,MAAM+sB,EAAMpxB,GAAGoF,OAC1B,KACD,OAGDgsB,EAAMpxB,GAAGwG,MAAQ4qB,EAAMpxB,GAAGmxB,SAC1B7tB,EAAMQ,KAAKO,MAAM+sB,EAAMpxB,IAQ/B,OAAIsD,IAAQgB,EAAK+sB,SAAWjsB,EAAMd,OAC5B,CAAC,QACD,SACA,QACA,WACA,aAAauD,QAAQzC,EAAMd,KAAKsB,WACpC9B,KAAKmrB,MAAM3rB,EAAIuC,MAAOT,GACfS,GAAMiF,MAGRxH,GAAOuC,GAAMiF,IACrB,CAMDwmB,YAAY9V,GACV,IAAIpW,EAAQtB,KAAKwpB,aAYjB,MAXI,SAAWloB,EAAMd,KAAKsB,WAAUR,EAAQtB,KAAKoX,cACjDM,EAAOlP,UAAUnB,SAAQ,SAAUhD,GACjC/C,EAAMd,KAAKuX,QAAQ/W,KAAK,CAGtBqD,SAAUrE,KAAKsqB,YAAYjmB,EAAS4F,SAAS3F,OAC7C2T,SAAU5T,EAAS4T,SACnB9X,OAAQkE,EAASlE,OACjBC,OAAQiE,EAASjE,QAEpB,GAAEJ,MACI+B,GAAMiF,IACd,CAMD2M,YAAYC,GACV5T,KAAK+pB,SAEL,IAEIjlB,EACA0S,EAHAjc,EAAOyE,KAAKO,MAAMqT,EAASrY,MAAM0M,MACjCnG,EAAW8R,EAASqV,KAAO,UAAY,SAQ3C,GAJAjpB,KAAK+pB,SAID,OAASxuB,EAAKuB,KAAM,CACtB,GAAI8W,EAASqV,KAAM,MAAM,IAAI3iB,MAAM,6BAEnC,OAAOsN,CACR,CAGD,IAAKrY,EAAK8O,OAAQ,MAAM,IAAI/D,MAAM,IAAMxE,EAAW,oBAEnD,IAAIhF,EAAOvB,EAAOA,EAAK8O,OAGvB,GAAI,+CAA+CojB,KAAKlyB,GAAO,CAC7D,GAAIqY,EAASqV,KAAM,MAAM,IAAI3iB,MAAM,6BACnC,OAAOsN,CACR,CAGD,GAAI,eAAe6Z,KAAKlyB,KACtBic,GAAU,GACL5D,EAASqV,OAASjpB,KAAKmpB,YAC1B,OAAOvV,EAcX,GATK4D,GAAY,WAAWiW,KAAKlyB,KAAOA,GAAQ,UAGhDuJ,EAAQ4oB,EAAWnyB,EAAMyE,KAAK0E,MAAO1E,KAAK6B,aAExCiD,EAAQ6oB,qBAAkB7wB,EAAMkD,KAAK0E,MAAO1E,KAAK6B,YAI9CiD,EAAO,MAAM,IAAIwB,MAAM,qBAAuBxE,EAAW,SAAWvG,GAIzE,IAFA,IAAI+F,EAAQ,IAAIS,GAAMoV,MAEbjb,EAAI,EAAG0F,EAAMkD,EAAM3I,OAAQD,EAAI0F,IAAO1F,EAC7CoF,EAAMN,KAAK6nB,WAAW/Z,KAAK9O,KAAM4T,EAAU9O,EAAM5I,GAAIsb,IAGvD,OAAOlW,CACR,CAWDoqB,eAAejrB,EAAIsV,EAAM6X,GACvB,IAAItsB,EAAQ,IAAIS,GAAMoV,MAAM1W,EAAGa,MAAMH,QAIjC8pB,EAAOxqB,EAAGa,MAAM2I,MAAM3I,GAGtBusB,EAAa7tB,KAAKkB,MAAME,aAAaE,MAGzCtB,KAAKkB,MAAMF,KAAK,IAAIwB,EAAMlB,IAC1B,IAAIoB,EAAQ1C,KAAK0N,aAGb,aAAeqI,EAAKjU,YAClB4E,EAAO,IAAI3E,GAAMqF,YAChBpG,KAAK+U,GACVA,EAAOhU,GAAM+qB,UAAUC,eAAermB,IAYxC,GARAhE,EAAMR,IAAI,IAAIH,GAAMwF,MAAM,YAAawO,IAGvCrT,EAAMR,IAAI,IAAIH,GAAMwF,MAAM,QAASvH,KAAK+pB,OACpChoB,GAAMkqB,MACN,IAAIlqB,GAAM8E,OAAOgnB,EAAW/rB,YAG5B9B,KAAK2rB,SAAU,CACjB,IAAIjiB,EAAO1J,KAAK8tB,mBAAmB9tB,KAAK2rB,SAAUlrB,EAAG3D,MACrD4F,EAAMR,IAAI,IAAIH,GAAMwF,MAAM,mBAAoBmC,GACpD,MACMhH,EAAMR,IAAI,IAAIH,GAAMwF,MAAM,mBAAoBxF,GAAMiF,OAKtD,IADA,IAAIN,EAAO,IAAI3E,GAAMqF,WACZlL,EAAI8D,KAAK8pB,QAAQ3tB,OAAS,EAAGD,KACpCwK,EAAK1F,KAAK,IAAIe,GAAMwH,QAAQvJ,KAAK8pB,QAAQ5tB,KAE3CwG,EAAMR,IAAI,IAAIH,GAAMwF,MAAM,cAAeb,IAGrCxK,EAAI,EAAR,IACI0F,EAAMmU,EAAKhU,MAAM5F,OA+BrB,OA9BAsE,EAAGoL,OAAO9J,MAAMsF,SAAQ,SAAU7G,GAEhC,GAAIA,EAAKutB,KAAM,CAEb,IADAvtB,EAAKT,IAAM,IAAIgC,GAAMqF,WACdlL,EAAI0F,IAAO1F,EAAGsE,EAAKT,IAAIiB,KAAK+U,EAAKhU,MAAM7F,IAC9CsE,EAAKT,IAAI4G,UAAW,EACpBnG,EAAKT,IAAIkP,OAAS8G,EAAK9G,MAE/B,KAAa,CACL,IAAIpR,EAAMkY,EAAKtU,IAAIjB,EAAK1D,OAASiZ,EAAKhU,MAAM7F,KAS5C,GARAsE,EAAOA,EAAKyJ,QACRpM,EACFA,EAAI6V,QAAUqC,EAAKhU,MAAM7F,EAAI,GAAK8D,KAAKO,MAAMC,GAAQA,EAAKT,IAAMlC,EAEhEkY,EAAK/U,KAAKR,EAAKT,KAIbS,EAAKT,IAAI6M,OACX,MAAM,IAAItG,MAAM,aAAe9F,EAAO,kBAAoBC,EAE7D,CAEDiC,EAAMR,IAAI1B,EACX,GAAER,MAGC4tB,GAASlrB,EAAMR,IAAI,IAAIH,GAAMwF,MAAM,QAASqmB,GAAS,IAGlD5tB,KAAKguB,OAAO/C,GAAM,EAAMxqB,EAAGoB,SACnC,CAWD4pB,cAAchrB,EAAIsV,GAMZtV,EAAGqD,IACLiS,EAAOA,EAAKhU,OAEPtB,EAAGoL,SACNpL,EAAGoL,OAASoiB,gBAAaxtB,IAE3BsV,EAAOtV,EAAGoL,OAAOqiB,QAAO,SAAU1uB,EAAK2G,GACrC,IAAItI,EAAMkY,EAAKtU,IAAI0E,IAAU4P,EAAKhU,MAAMmH,QACxC,GAAIrL,EAAK,CAEP,IAAI+D,GADJ/D,EAAMyN,EAAazN,IACLkE,MAAM5F,OACpB,GAAIyF,EAAM,EACR,IAAK,IAAI1F,EAAI,EAAGA,EAAI0F,IAAO1F,EACzBsD,EAAIwB,KAAKsK,EAAazN,EAAIkE,MAAM7F,GAAG+L,aAGrCzI,EAAIwB,KAAKnD,EAAIoK,MAEhB,CACD,OAAOzI,CACR,GAAE,KAIL,IAAIyrB,EAAOtc,EAAalO,EAAGM,MAAMf,KAAM+V,IAKnCrP,EAAO,IAAI3E,GAAMqF,WAKrB,OAJAV,EAAK1F,KAAKiqB,GACVA,EAAOvkB,EAGA1G,KAAKguB,OAAO/C,EACpB,CAUD+C,OAAO/C,EAAM/pB,EAAOW,GACf,IACCrC,EAkBJ,OAhBIqC,GAAU7B,KAAK0E,MAAM1D,KAAKtC,EAAQmD,IAGlC7B,KAAK+pB,QACPvqB,EAAMQ,KAAKmuB,KAAKlD,EAAKlpB,OACjBb,GAAOlB,KAAKkB,MAAM4P,QAGtBma,EAAOjrB,KAAKO,MAAM0qB,GACd/pB,GAAOlB,KAAKkB,MAAM4P,MACtB9Q,KAAKmrB,MAAMF,EAAKlpB,MAAO/B,KAAKwpB,cAC5BhqB,EAAMuC,GAAMiF,MAGVnF,GAAU7B,KAAK0E,MAAMoM,MAElBtR,CACR,CAUD2rB,MAAMppB,EAAOT,GACX,GAAKS,EAAM5F,OAAX,CACA,IAAIyF,EAAMN,EAAMS,MAAM5F,OAClBsP,EAAOnK,EAAMS,MAAMxF,MAAM,EAAG+E,EAAMoK,OAClCC,EAAOrK,EAAMS,MAAMxF,MAAM+E,EAAMoK,MAAQ,EAAG9J,GAC9C5B,KAAKouB,OAAOrsB,EAAO0J,EAAMnK,GACzBA,EAAMoK,MAAQ,EACdpK,EAAMS,MAAQ0J,EAAKG,OAAOD,EANA,CAO3B,CAWDyiB,OAAOC,EAAO/d,EAAMhP,GAGlB,IAFA,IAAId,EACAoB,EAAMysB,EAAMlyB,OACPD,EAAI,EAAGA,EAAI0F,IAAO1F,EACzB,QAASsE,EAAO6tB,EAAMnyB,IAAI4F,UACxB,IAAK,SACH,OACF,IAAK,QACH9B,KAAKouB,OAAO5tB,EAAKuB,MAAOuO,EAAMhP,GAC9B,MACF,IAAK,QAEH,IAAIgtB,EAAa9tB,EAAKc,MAAMH,OAAOX,KAC/B8tB,GAAc,QAAUA,EAAWxsB,WACrCtB,EAAKc,MAAMH,OAASG,GAExB,IAAK,WACH,IAAIvB,EAAMS,EAAKkG,KAEXlG,EAAKgX,SAAW,SAAWzX,EAAIkI,MAAMnL,QACvCiD,EAAMuL,EAAavL,IACfgC,MAAM,GAAK,IAAIA,GAAMwH,QAAQ,UAErC,QACE+G,EAAKtP,KAAKR,GAGjB,CASDqrB,UAAUrrB,GAER,QADAA,EAAOR,KAAKO,MAAMC,EAAKyH,QACVnG,UACX,IAAK,SAEH,OADA9B,KAAKuuB,YAAY/tB,GACVuB,GAAMiF,KACf,IAAK,QACL,IAAK,UAEH,OADAhH,KAAKmrB,MAAM3qB,EAAKuB,MAAO/B,KAAKwpB,cACrBznB,GAAMiF,KAElB,CASDunB,YAAYre,GACV,IAII5O,EAJAmH,EAASkQ,GACT/b,EAAOoD,KAAKpD,KACZmG,EAAM,UAAYmN,EAAOse,UACzB9V,EAAS,IAAIjQ,EAAO1F,EAAKyN,EAAY,CAAE5T,KAAM0E,GAAStB,KAAKoF,UAG/D,IACE9D,EAAQoX,EAAOnZ,OAOhB,CANC,MAAOqF,GAKP,MAJAA,EAAI/C,SAAW7B,KAAK6B,SACpB+C,EAAIzE,OAASuY,EAAO6Q,MAAMppB,OAC1ByE,EAAIxE,OAASsY,EAAO6Q,MAAMnpB,OAC1BwE,EAAIS,MAAQtC,EACN6B,CACP,CAEDtD,EAAMH,OAASvE,EACf0E,EAAMoB,OAAQ,EAGd,IAFA,IACIyF,EADMnI,KAAKO,MAAMe,GACN2G,MAAMlG,MACZ7F,EAAI,EAAG0F,EAAMuG,EAAKhM,OAAQD,EAAI0F,IAAO1F,EAC5C,GAAIiM,EAAKjM,GAAGoF,MAAO,CACjBtB,KAAKmrB,MAAMhjB,EAAKjM,GAAGoF,MAAMS,MAAO/B,KAAKwpB,cACrC,KACD,CAEJ,CAUD2E,KAAKhmB,GACH,IAAKA,EAAM,OAAOpG,GAAMiF,KACxB,IAAIpF,EAAMuG,EAAKhM,OACXqE,EAAOuB,GAAMiF,KAEjB,IACE,IAAK,IAAI9K,EAAI,EAAGA,EAAI0F,IAAO1F,EAEzB,QADAsE,EAAO2H,EAAKjM,IACC4F,UACX,IAAK,KACH,GAAI,SAAWtB,EAAKc,MAAMQ,SAAU,CAClCtB,EAAOR,KAAKO,MAAMC,GAClB,KACD,CACH,IAAK,OACL,IAAK,SACHA,EAAOR,KAAKO,MAAMC,IACTuB,QAAOvB,EAAOR,KAAKmuB,KAAK3tB,EAAKuB,QACtC,MACF,QACEvB,EAAOR,KAAKO,MAAMC,GASzB,CANC,MAAOoE,GACP,GAAI,UAAYA,EAAI9C,SAClB,OAAO8C,EAAI8B,KAEX,MAAM9B,CAET,CAED,OAAOpE,CACR,CAUD+qB,YAAYzc,GAEV,OADAA,EAAKiH,KAAO/V,KAAKO,MAAMuO,EAAKiH,MACrBjH,CACR,CAUD8c,eAAe9uB,GASb,IARA,IAGIiF,EACAT,EACAM,EALA1F,EAAI8D,KAAKkB,MAAM/E,OACfuP,EAAQ1L,KAAKwpB,aAAa9d,MAC1BR,EAAMhP,EAMHA,KAEL,IADAoF,EAAQtB,KAAKkB,MAAMhF,GAAGoF,OACXd,KACX,OAAQc,EAAMd,KAAKsB,UACjB,IAAK,QACL,IAAK,WACL,IAAK,KACL,IAAK,OACL,IAAK,SACL,IAAK,QACL,IAAK,UACL,IAAK,OAGH,GAFAC,EAAQT,EAAMS,MAEV7F,EAAI,GAAKgP,GACX,KAAOQ,KAEL,GAAI1L,KAAK2rB,UAAY5pB,EAAM2J,IAEvB5O,GADIkD,KAAKsqB,YAAYvoB,EAAM2J,IACZ,OAAO3J,EAAM2J,GAAOzB,aAKzC,IADArI,EAAMG,EAAM5F,OACLyF,KACL,GAAI,YAAcG,EAAMH,GAAKE,UACxB9B,KAAK2rB,UAAY5pB,EAAMH,IAExB9E,GADIkD,KAAKsqB,YAAYvoB,EAAMH,IACZ,OAAOG,EAAMH,GAAKqI,QAO/C,OAAOlI,EAAMiF,IACd,CASGwE,mBAGF,IAFA,IACIlK,EADApF,EAAI8D,KAAKkB,MAAM/E,OAEZD,KAEL,IADAoF,EAAQtB,KAAKkB,MAAMhF,GAAGoF,OACZd,KACR,OAAQc,EAAMd,KAAKsB,UACjB,IAAK,QACL,IAAK,YACL,IAAK,SACL,IAAK,UACL,IAAK,QACL,IAAK,OACH,OAAOR,EAIhB,CASG8V,mBAGF,IAFA,IACI9V,EADApF,EAAI8D,KAAKkB,MAAM/E,OAEZD,KAEL,IADAoF,EAAQtB,KAAKkB,MAAMhF,GAAGoF,OACZd,MAAQ,SAAWc,EAAMd,KAAKsB,SACtC,OAAOR,CAGZ,CASGwX,oBAGF,IAFA,IAAIxX,EACAJ,EAAQ,GACHhF,EAAI,EAAG0F,EAAM5B,KAAKkB,MAAM/E,OAAQD,EAAI0F,IAAO1F,GAClDoF,EAAQtB,KAAKkB,MAAMhF,GAAGoF,OACZd,MAAQ,SAAWc,EAAMd,KAAKsB,WACtCR,EAAMd,KAAKuB,MAAMsF,SAAQ,SAAUhD,GAC5BA,EAAStE,MAAKsE,EAAStE,IAAMC,KAAKsqB,YAAYjmB,GACpD,GAAErE,MACHkB,EAAMF,KAAKM,EAAMd,KAAKuB,QAG1B,OAAOb,CACR,CAWDK,OAAOzE,GACL,IAAIiD,EACJ,IAAIC,KAAKorB,gBAAgBtuB,KAAQqhB,GACjC,OAAIpe,EAAMC,KAAKkB,MAAMK,OAAOzE,IACnBwO,EAAavL,GAEbC,KAAKqrB,eAAevuB,EAE9B,CAUDwtB,YAAY9pB,GACV,IAAIyV,EAAOjW,KACPyuB,EAAc,YAAcjuB,EAAKsB,SACrC,SAASzB,SAASG,GAChB,OAAQA,EAAKsB,UACX,IAAK,WACL,IAAK,QACH,OAAOtB,EAAK1D,KACd,IAAK,UACL,IAAK,SAKH,OAJImZ,EAAKlH,QAAWvO,EAAKkuB,UAAaluB,EAAKT,IAAI+B,WAC7CtB,EAAKT,IAAMS,EAAKT,IAAImF,QAAQ,oBAAqB,IAAM+Q,EAAKlH,QAC5DvO,EAAKkuB,UAAW,GAEXluB,EAAKT,IACd,IAAK,OAEH,MAAO,KAAOS,EAAKV,KAAOU,EAAKT,IAAM,IAAMS,EAAKT,IAClD,IAAK,SACH,OAAOM,SAAS4V,EAAK1V,MAAMC,IAC7B,IAAK,aAEH,GAAIyV,EAAK6T,UAAY7T,EAAK6T,QAAQ/lB,QAAQ,aAAekS,EAAK0Y,UAAW,OAAO1Y,EAAK0Y,UACrF1Y,EAAK8T,SACL,IAAIvqB,EAAMa,SAAS4V,EAAK1V,MAAMC,GAAMyH,OAGpC,OAFAgO,EAAK8T,SACD0E,IAAYxY,EAAK0Y,UAAYnvB,GAC1BA,EAEZ,CAED,OAAIgB,EAAK6V,SACA7V,EAAK6V,SAAS5U,IAAIpB,UAAU1C,KAAK,IAEjC0C,SAASG,EAEnB,CAUD6qB,eAAevuB,GACb,IAAI2D,EAAKT,KAAK2pB,UAAU7sB,IAASguB,EAAKhuB,GACtC,GAAI2D,EAAI,OAAO,IAAIsB,GAAMooB,SAASrtB,EAAM2D,EACzC,CAUDurB,UAAUxrB,GACR,GAAI,SAAWA,EAAKsB,SAClB,OAAO,IAAIC,GAAM+E,QAAQ9G,KAAKuB,OAAOf,EAAK1D,OAE1C,MAAM,IAAIwJ,MAAM,8CAAgD9F,EAEnE,CAaDstB,mBAAmBpkB,EAAM5M,GACvB,IAAI4J,EAAO,IAAI3E,GAAMqF,WACjBrH,EAAM2J,EAAKhD,KAAKuD,QAiBpB,OAdAvD,EAAK1F,KAAK,IAAIe,GAAM8E,OAAO6C,EAAK5M,OAGhC,SAASoI,QAAQ1E,GACf,MAAI,QAAUA,EAAKsB,UAAYhF,GAAQ0D,EAAK1D,KACnC,IAAIiF,GAAMwH,QAAQ,aAGvB/I,EAAKuB,QAAOvB,EAAKuB,MAAQvB,EAAKuB,MAAMN,IAAIyD,UACrC1E,EACR,CAED0E,CAAQnF,GACR2G,EAAK1F,KAAKjB,GACH2G,CACR,CAUDkmB,KAAKlmB,GACH,OAAO,IAAI3E,GAAMgF,KAAKL,EAAKuB,MAAMlI,IAAK2G,EAAK3E,MAAM,GAAGjF,KACrD,CAUD6vB,SAASjmB,GACP,OAAO,GAAKA,EAAK3E,MAAM5F,QAClB,QAAUuK,EAAKuB,MAAMnG,WACpBnB,EAAMoD,QAAQ2C,EAAK3E,MAAM,GAAGjF,KACnC,CASD+c,KAAK/L,GACE9N,KAAK6pB,UACVlZ,QAAQkJ,KAAK,qBAAiC/L,EAC/C,CASG0b,mBACF,OAAOxpB,KAAKkB,MAAME,aAAaE,KAChC,CASGupB,cACF,OAAO7qB,KAAKuB,OAAO,WAAWQ,MAAMN,KAAI,SAAUjB,GAChD,OAAOA,EAAK6J,MAClB,GACG,CAUDihB,YAAY5hB,GACV,IAAK,IAAIxN,EAAI,EAAG0F,EAAM5B,KAAK6qB,QAAQ1uB,OAAQD,EAAI0F,EAAK1F,IAClD,GAAI,YAAc8D,KAAK6qB,QAAQ3uB,GAAI,CACjC,IAAI0yB,EAAS,IAAM5uB,KAAK6qB,QAAQ3uB,GAAK,IACrC,IAAKwN,EAAK3F,QAAQ6qB,GAAS,OAAOllB,EAAKxE,QAAQ0pB,EAAQ,GACxD,CAEH,OAAOllB,CACR,CASGgE,mBACF,OAAO1N,KAAKkB,MAAME,aAAasB,KAChC,CASGtB,mBACF,OAAOpB,KAAKkB,MAAME,YACnB,GCzjDH,MAAMytB,sBAAsBvoB,MAQ1BzG,YAAYiO,GACVhN,QACAd,KAAKlD,KAAO,gBACZkD,KAAK+F,QAAU+H,EACXxH,MAAMwoB,mBACRxoB,MAAMwoB,kBAAkB9uB,KAAM6uB,cAEjC,EAKc,IAAAE,GAAA,MAAMC,KAOrBnvB,cACEG,KAAKG,OAAS4B,GAAM5B,QAAU,EAC9BH,KAAKI,OAAS2B,GAAM3B,QAAU,EAC9BJ,KAAK6B,SAAWE,GAAMF,QACvB,CASGoG,YACF,OAAOjI,IACR,CASGmoB,WACF,OAAOnoB,KAAKD,GACb,CASG+B,eACF,OAAO9B,KAAKH,YAAY/C,KAAKyrB,aAC9B,CASDte,QACE,OAAOjK,IACR,CASDivB,SACE,MAAO,CACL9uB,OAAQH,KAAKG,OACbC,OAAQJ,KAAKI,OACbyB,SAAU7B,KAAK6B,SAElB,CASDssB,OACE,OAAO,IAAIzE,EAAU1pB,MAAMqqB,UAC5B,CASD1c,YACE,OAAO5L,GAAMmqB,IACd,CASDgD,eACE,GAAI,cAAgBlvB,KAAK8B,SAAU,OAAO9B,KAC1C,IAAI0G,EAAO,IAAI3E,GAAMqF,WAErB,OADAV,EAAK1F,KAAKhB,MACH0G,CACR,CAUDyoB,aAAavf,GACX,OAAQA,GACN,IAAK,OACL,IAAK,KACL,IAAK,KACL,IAAK,KACH,OAAO,EACT,QACE,OAAO,EAEZ,CAWDD,QAAQC,EAAIE,GACV,OAAQF,GACN,IAAK,OACH,GAAI,UAAYE,EAAM7H,MAAMnG,SAC1B,OAAO,IAAIC,GAAM+E,QAAQ9G,KAAK8B,UAAYgO,EAAM/P,KAEhD,MAAM,IAAIuG,MAAM,gCAAkCwJ,EAAMzP,YAE5D,IAAK,KACH,OAAO,IAAI0B,GAAM+E,QAAQ9G,KAAKmoB,MAAQrY,EAAMqY,MAC9C,IAAK,KACH,OAAO,IAAIpmB,GAAM+E,QAAQ9G,KAAKmoB,MAAQrY,EAAMqY,MAC9C,IAAK,KACH,OAAO,IAAIpmB,GAAM+E,QAAQ9G,KAAKmoB,MAAQrY,EAAMqY,MAC9C,IAAK,KACH,OAAO,IAAIpmB,GAAM+E,QAAQ9G,KAAKmoB,MAAQrY,EAAMqY,MAC9C,IAAK,IACH,OAAO,IAAIpmB,GAAM+E,QAAQ9G,KAAKmoB,KAAOrY,EAAMqY,MAC7C,IAAK,IACH,OAAO,IAAIpmB,GAAM+E,QAAQ9G,KAAKmoB,KAAOrY,EAAMqY,MAC7C,IAAK,KACH,OAAOnoB,KAAK2N,YAAYC,OACpB5N,KACA8P,EACN,IAAK,KACH,IAAI3H,EAAOmD,EAAawE,GAAO/N,MAC3BH,EAAMuG,GAAQA,EAAKhM,OACnBgsB,EAAOnoB,KAAKmoB,KAChB,IAAKhgB,EAAM,MAAM,IAAI7B,MAAM,kEAG3B,GAAI,GAAK1E,GAAO,UAAYuG,EAAK,GAAGrG,SAClC,OAAO,IAAIC,GAAM+E,QAAQqB,EAAK,GAAGinB,IAAIpvB,KAAKmoB,OAG5C,IAAK,IAAIjsB,EAAI,EAAGA,EAAI0F,IAAO1F,EACzB,GAAIisB,GAAQhgB,EAAKjM,GAAGisB,KAClB,OAAOpmB,GAAMmqB,KAGjB,OAAOnqB,GAAMkqB,MACf,IAAK,KACH,IAAIrkB,EAAI5H,KAAK2N,YACT9F,EAAIiI,EAAMnC,YACd,OAAO/F,EAAEgG,QAAU/F,EAAE+F,OACjBkC,EACAlI,EAAEgH,QACA5O,KACA8P,EACR,QACE,GAAI,MAAQF,EACV,IAAI9B,EAAM,kBACN9N,KACA,IAAM8P,EAAQ,SAEdhC,EAAM,kBACA9N,KACN,IAAM4P,EACN,IAAME,EAEZ,MAAM,IAAIxJ,MAAMwH,GAErB,CAUDuhB,OAAOtY,GACL,GAAIA,EAAMjV,UAAY9B,KAAK8B,SAAU,OAAOiV,EAC5C,MAAM,IAAI8X,cAAc,iBAAmB9X,EAAQ,OAAS/W,KAAK8B,SAClE,GCrOCwtB,GAAe,CACjBC,GAAM,CAAExvB,IAAK,EAAGyvB,MAAO,MACvBC,GAAM,CAAE1vB,IAAK,GAAIyvB,MAAO,MACxBE,GAAM,CAAE3vB,IAAK,KAAMyvB,MAAO,MAC1BG,GAAM,CAAE5vB,IAAK,KAAO,GAAIyvB,MAAO,MAC/BI,GAAM,CAAE7vB,IAAK,EAAGyvB,MAAO,MACvBvhB,EAAK,CAAElO,IAAK,IAAMyvB,MAAO,MACzBK,GAAM,CAAE9vB,IAAK,EAAGyvB,MAAO,MACvBM,IAAO,CAAE/vB,IAAK,IAAMyvB,MAAO,OCfzBO,GAAUC,EAAwB/hB,YC4OtC,SAASgiB,aAAavgB,GAEpB,OADAA,GAAQ,MACI,EAAIA,EAAI,IAAMA,CAC5B,CAUA,SAASwgB,gBAAgBxgB,GACvB,OAAOjK,KAAKC,IAAI,EAAGD,KAAKE,IAAI+J,EAAG,KACjC,CA9OAtE,GAA2B,MAAM2C,aAAaihB,GAC5CnvB,YAAYmO,EAAGC,EAAGC,EAAGtG,GAuPvB,IAAoB8H,EAtPhB5O,QACAd,KAAKgO,EAAIiiB,aAAajiB,GACtBhO,KAAKiO,EAAIiiB,gBAAgBjiB,GACzBjO,KAAKkO,EAAIgiB,gBAAgBhiB,GACzBlO,KAAK4H,GAkPW8H,EAlPI9H,EAmPfnC,KAAKC,IAAI,EAAGD,KAAKE,IAAI+J,EAAG,KAlP7B1P,KAAKgK,KAAOhK,IACb,CASDK,WACE,MAAO,QACHL,KAAKgO,EAAI,IACThO,KAAKiO,EAAEoH,QAAQ,GAAK,KACpBrV,KAAKkO,EAAEmH,QAAQ,GAAK,KACpBrV,KAAK4H,EAAI,GACd,CASDqC,MAAM9I,GACJ,IAAI8I,EAAQ,IAAI8D,KACd/N,KAAKgO,EACHhO,KAAKiO,EACLjO,KAAKkO,EACLlO,KAAK4H,GAIT,OAHAqC,EAAM9J,OAASH,KAAKG,OACpB8J,EAAM7J,OAASJ,KAAKI,OACpB6J,EAAMpI,SAAW7B,KAAK6B,SACfoI,CACR,CASDglB,SACE,MAAO,CACLkB,OAAQ,OACRniB,EAAGhO,KAAKgO,EACRC,EAAGjO,KAAKiO,EACRC,EAAGlO,KAAKkO,EACRtG,EAAG5H,KAAK4H,EACRzH,OAAQH,KAAKG,OACbC,OAAQJ,KAAKI,OACbyB,SAAU7B,KAAK6B,SAElB,CASGyI,WACF,OAAOvI,GAAM4I,KAAKylB,SAASpwB,KAC5B,CASGmoB,WACF,OAAOnoB,KAAKsK,KAAKjK,UAClB,CAYD6B,IAAI8L,EAAGC,EAAGC,GACR,OAAO,IAAIH,KACT/N,KAAKgO,EAAIA,EACPhO,KAAKiO,EAAIA,EACTjO,KAAKkO,EAAIA,EACTlO,KAAK4H,EACV,CAYDyoB,IAAIriB,EAAGC,EAAGC,GACR,OAAOlO,KAAKkC,KAAK8L,GAAIC,GAAIC,EAC1B,CAWDyB,QAAQC,EAAIE,GACV,OAAQF,GACN,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,IACL,IAAK,IACL,IAAK,OACL,IAAK,KACL,IAAK,KACH,OAAO5P,KAAKsK,KAAKqF,QAAQC,EAAIE,GAC/B,QACE,OAAO9P,KAAKsK,KAAKqF,QAAQC,EAAIE,GAAO9F,KAEzC,CAWDsmB,gBAAgBC,GAEd,OADAvwB,KAAKkO,EAAIgiB,gBAAgBlwB,KAAKkO,EAAIlO,KAAKkO,GAAKqiB,EAAU,MAC/CvwB,IACR,CAUDwwB,UAAUtf,GAER,OADAlR,KAAKgO,EAAIiiB,aAAajwB,KAAKgO,EAAIkD,GACxBlR,IACR,CAWDywB,gBAAgBnmB,GACd,IASI0D,EAAGC,EATHrD,EAAIN,EAAKM,EAAI,IACbC,EAAIP,EAAKO,EAAI,IACbhD,EAAIyC,EAAKzC,EAAI,IACbD,EAAI0C,EAAK1C,EAETjC,EAAMF,KAAKE,IAAIiF,EAAGC,EAAGhD,GACrBnC,EAAMD,KAAKC,IAAIkF,EAAGC,EAAGhD,GACrBqG,GAAKxI,EAAMC,GAAO,EAClB+qB,EAAIhrB,EAAMC,EAGd,OAAQD,GACN,KAAKC,EAAKqI,EAAI,EAAG,MACjB,KAAKpD,EAAGoD,EAAI,IAAMnD,EAAIhD,GAAK6oB,EAAG,MAC9B,KAAK7lB,EAAGmD,EAAI,IAAMnG,EAAI+C,GAAK8lB,EAAI,IAAK,MACpC,KAAK7oB,EAAGmG,EAAI,IAAMpD,EAAIC,GAAK6lB,EAAI,IAejC,OAXEziB,EADEvI,GAAOC,EACL,EACKuI,EAAI,GACTwiB,GAAK,EAAIxiB,GAETwiB,GAAK,EAAI,EAAIxiB,GAOZ,IAAIH,KAJXC,GAAK,IACLC,GAAK,IACLC,GAAK,IAEoBtG,EAC1B,OC9NC4B,GAASmgB,EAAUngB,OA+UvB,SAASmnB,MAAMjhB,GACb,OAAOjK,KAAKC,IAAI,EAAGD,KAAKE,IAAI+J,EAAE2F,QAAQ,GAAI,KAC5C,CA9UAjK,GAA2B,MAAMT,aAAaqkB,GAW5CnvB,YAAY+K,EAAGC,EAAGhD,EAAGD,GA6UvB,IAAoB8H,EA5UhB5O,QACAd,KAAK4K,EAAI+lB,MAAM/lB,GACf5K,KAAK6K,EAAI8lB,MAAM9lB,GACf7K,KAAK6H,EAAI8oB,MAAM9oB,GACf7H,KAAK4H,GAwUW8H,EAxUI9H,EAyUfnC,KAAKC,IAAI,EAAGD,KAAKE,IAAI+J,EAAG,KAxU7B1P,KAAKlD,KAAO,GACZkD,KAAKsK,KAAOtK,IACb,CAaDywB,uBAAuB7lB,EAAGC,EAAGhD,EAAGD,GAC9B,IAAI0C,EAAO,IAAIK,KAAK,EAAG,EAAG,EAAG,GAK7B,OAJAL,EAAKM,EAAIA,EACTN,EAAKO,EAAIA,EACTP,EAAKzC,EAAIA,EACTyC,EAAK1C,EAAIA,EACF0C,CACR,CASDL,QACE,IAAIA,EAAQ,IAAIU,KACd3K,KAAK4K,EACH5K,KAAK6K,EACL7K,KAAK6H,EACL7H,KAAK4H,GAMT,OALAqC,EAAMnG,IAAM9D,KAAK8D,IACjBmG,EAAMnN,KAAOkD,KAAKlD,KAClBmN,EAAM9J,OAASH,KAAKG,OACpB8J,EAAM7J,OAASJ,KAAKI,OACpB6J,EAAMpI,SAAW7B,KAAK6B,SACfoI,CACR,CASDglB,SACE,MAAO,CACLkB,OAAQ,OACRvlB,EAAG5K,KAAK4K,EACRC,EAAG7K,KAAK6K,EACRhD,EAAG7H,KAAK6H,EACRD,EAAG5H,KAAK4H,EACR9D,IAAK9D,KAAK8D,IACVhH,KAAMkD,KAAKlD,KACXqD,OAAQH,KAAKG,OACbC,OAAQJ,KAAKI,OACbyB,SAAU7B,KAAK6B,SAElB,CASD8L,YACE,OAAO5L,GAAMmqB,IACd,CASGliB,WACF,OAAO+D,GAAK6iB,SAAS5wB,KACtB,CASGmoB,WACF,OAAOnoB,KAAKK,UACb,CAaD6B,IAAI0I,EAAGC,EAAGhD,EAAGD,GACX,OAAO,IAAI+C,KACT3K,KAAK4K,EAAIA,EACP5K,KAAK6K,EAAIA,EACT7K,KAAK6H,EAAIA,EACT7H,KAAK4H,EAAIA,EACd,CAaDyoB,IAAIzlB,EAAGC,EAAGhD,EAAGD,GACX,OAAO,IAAI+C,KACT3K,KAAK4K,EAAIA,EACP5K,KAAK6K,EAAIA,EACT7K,KAAK6H,EAAIA,EACJ,GAALD,EAAS5H,KAAK4H,EAAI5H,KAAK4H,EAAIA,EAChC,CAUDipB,SAASnhB,GACP,OAAO,IAAI/E,KACT3K,KAAK4K,EAAI8E,EACP1P,KAAK6K,EAAI6E,EACT1P,KAAK6H,EAAI6H,EACT1P,KAAK4H,EACV,CAUDkpB,OAAOphB,GACL,OAAO,IAAI/E,KACT3K,KAAK4K,EAAI8E,EACP1P,KAAK6K,EAAI6E,EACT1P,KAAK6H,EAAI6H,EACT1P,KAAK4H,EACV,CAWD+H,QAAQC,EAAIE,GAGV,OAFI,MAAQF,IAAIE,EAAQA,EAAM7H,OAEtB2H,GACN,IAAK,OACH,GAAI,UAAYE,EAAMhO,UAAY,SAAWgO,EAAMzF,OACjD,OAAOtI,GAAMmqB,KAEf,MACF,IAAK,IACH,OAAQpc,EAAMhO,UACZ,IAAK,OACH,IAAI4N,EAAII,EAAM/P,IACd,OAAQ+P,EAAMhQ,MACZ,IAAK,IAAK,OAAO0J,GAAOxJ,KAAM,IAAI+B,GAAM8E,OAAO,aAAciJ,GAC7D,IAAK,MAAO,OAAO9P,KAAKgK,KAAKwmB,UAAU9gB,GAAGpF,KAC1C,QAAS,OAAOtK,KAAKkC,IAAIwN,EAAGA,EAAGA,EAAG,GAEtC,IAAK,OACH,OAAO1P,KAAKkC,IAAI4N,EAAMlF,EAAGkF,EAAMjF,EAAGiF,EAAMjI,EAAGiI,EAAMlI,GACnD,IAAK,OACH,OAAO5H,KAAKgK,KAAK9H,IAAI4N,EAAM9B,EAAG8B,EAAM7B,EAAG6B,EAAM5B,GAEjD,MACF,IAAK,IACH,OAAQ4B,EAAMhO,UACZ,IAAK,OACC4N,EAAII,EAAM/P,IACd,OAAQ+P,EAAMhQ,MACZ,IAAK,IAAK,OAAO0J,GAAOxJ,KAAM,IAAI+B,GAAM8E,OAAO,aAAc,IAAI9E,GAAMgF,MAAM2I,EAAG,MAChF,IAAK,MAAO,OAAO1P,KAAKgK,KAAKwmB,WAAW9gB,GAAGpF,KAC3C,QAAS,OAAOtK,KAAKqwB,IAAI3gB,EAAGA,EAAGA,EAAG,GAEtC,IAAK,OACH,OAAO1P,KAAKqwB,IAAIvgB,EAAMlF,EAAGkF,EAAMjF,EAAGiF,EAAMjI,EAAGiI,EAAMlI,GACnD,IAAK,OACH,OAAO5H,KAAKgK,KAAKqmB,IAAIvgB,EAAM9B,EAAG8B,EAAM7B,EAAG6B,EAAM5B,GAEjD,MACF,IAAK,IACH,GACO,SADC4B,EAAMhO,SAEV,OAAO9B,KAAK6wB,SAAS/gB,EAAM/P,KAE/B,MACF,IAAK,IACH,GACO,SADC+P,EAAMhO,SAEV,OAAO9B,KAAK8wB,OAAOhhB,EAAM/P,KAIjC,OAAOe,MAAM6O,QAAQC,EAAIE,EAC1B,CASDzP,WACE,SAASuF,IAAI8J,GACX,OAAOA,EAAI,GACP,IAAMA,EAAErP,SAAS,IACjBqP,EAAErP,SAAS,GAChB,CAGD,GAAI,eAAiBL,KAAKlD,KACxB,OAAOkD,KAAKlD,KAEd,GAAI,GAAKkD,KAAK4H,EAAG,CACf,IAAIgD,EAAIhF,IAAI5F,KAAK4K,GACbC,EAAIjF,IAAI5F,KAAK6K,GACbhD,EAAIjC,IAAI5F,KAAK6H,GAGjB,OAAI+C,EAAE,IAAMA,EAAE,IAAMC,EAAE,IAAMA,EAAE,IAAMhD,EAAE,IAAMA,EAAE,GACrC,IAAM+C,EAAE,GAAKC,EAAE,GAAKhD,EAAE,GAEtB,IAAM+C,EAAIC,EAAIhD,CAE7B,CACM,MAAO,QACH7H,KAAK4K,EAAI,IACT5K,KAAK6K,EAAI,IACT7K,KAAK6H,EAAI,MACP7H,KAAK4H,EAAEyN,QAAQ,GAAM,GAE9B,CAUDob,gBAAgBzmB,GACd,IAAIgE,EAAIhE,EAAKgE,EAAI,IACbC,EAAIjE,EAAKiE,EAAI,IACbC,EAAIlE,EAAKkE,EAAI,IACbtG,EAAIoC,EAAKpC,EAETmpB,EAAK7iB,GAAK,GAAKA,GAAKD,EAAI,GAAKC,EAAID,EAAIC,EAAID,EACzC+iB,EAAS,EAAJ9iB,EAAQ6iB,EAEbnmB,EAAqB,IAAjBV,IAAI8D,EAAI,EAAI,GAChBnD,EAAa,IAATX,IAAI8D,GACRnG,EAAqB,IAAjBqC,IAAI8D,EAAI,EAAI,GAEpB,SAAS9D,IAAI8D,GAGX,OAFIA,EAAI,KAAKA,EACTA,EAAI,KAAKA,EACL,EAAJA,EAAQ,EAAUgjB,GAAMD,EAAKC,GAAMhjB,EAAI,EACnC,EAAJA,EAAQ,EAAU+iB,EACd,EAAJ/iB,EAAQ,EAAUgjB,GAAMD,EAAKC,IAAO,EAAI,EAAIhjB,GAAK,EAC9CgjB,CACR,CAGD,OAAO,IAAIrmB,KAAKC,EAAGC,EAAGhD,EAAGD,EAC1B,GCpUH,ICFAqpB,GAAiB,MAAMC,eAAelC,GAQpCnvB,YAAYC,GACVgB,QACAd,KAAKF,KAAOA,CACb,CASGuS,wBACF,IAAKrS,KAAKsB,MAAO,OAAO,EAGxB,IADA,IAAIS,EAAQ/B,KAAKsB,MAAMS,MACd7F,EAAI,EAAG0F,EAAMG,EAAM5F,OAAQD,EAAI0F,IAAO1F,EAE7C,OADe6F,EAAM7F,GAAG4F,SAChBC,EAAM7F,GAAG4F,UACf,IAAK,WACL,IAAK,aACL,IAAK,UACH,SACF,QACE,OAAO,EAGb,OAAO,CACR,CASDmI,MAAM9I,GACJ,IAAI8I,EAAQ,IAAIinB,OAAOlxB,KAAKF,MAM5B,OALIE,KAAKsB,QAAO2I,EAAM3I,MAAQtB,KAAKsB,MAAM2I,MAAM9I,EAAQ8I,IACvDA,EAAMoM,SAAWrW,KAAKqW,SAAS5U,KAAI,SAAUjB,GAAQ,OAAOA,EAAKyJ,MAAM9I,EAAQ8I,EAAS,IACxFA,EAAM9J,OAASH,KAAKG,OACpB8J,EAAM7J,OAASJ,KAAKI,OACpB6J,EAAMpI,SAAW7B,KAAK6B,SACfoI,CACR,CASDglB,SACE,IAAI7gB,EAAO,CACT+hB,OAAQ,SACRrwB,KAAME,KAAKF,KACXuW,SAAUrW,KAAKqW,SACflW,OAAQH,KAAKG,OACbC,OAAQJ,KAAKI,OACbyB,SAAU7B,KAAK6B,UAGjB,OADI7B,KAAKsB,QAAO8M,EAAK9M,MAAQtB,KAAKsB,OAC3B8M,CACR,CASD/N,WACE,MAAO,IAAML,KAAKF,IACnB,CASGsT,gBACF,QAASpT,KAAKsB,OAAS8R,UAAUpT,KAAKsB,MACvC,GAGH,SAAS8R,UAAU9R,GACjB,IAAIS,EAAQT,EAAMS,MAGlB,OAAIA,EAAMwN,OAAM,SAAU/O,GACxB,MAAO,SAAWA,EAAKsB,UAAYtB,EAAK2wB,mBAC5C,KAGSpvB,EAAMqvB,MAAK,SAAU5wB,GAC1B,OAAQA,EAAKsB,UACX,IAAK,WACL,IAAK,UACL,IAAK,SACH,OAAO,EACT,IAAK,QACH,OAAOsR,UAAU5S,GACnB,QACE,GAAIA,EAAKc,MAAO,OAAO8R,UAAU5S,EAAKc,OAE9C,GACA,CCtHA,ICAI+vB,GAAY,CAAE,EAACxxB,YCEnByxB,GAAA,MAAuBlqB,mBAAmB4nB,GAQxCnvB,YAAYoP,GACVnO,QACAd,KAAK+B,MAAQ,GACb/B,KAAKiP,OAASA,CACf,CASGyE,cACF,OAAQ1T,KAAK+B,MAAM5F,MACpB,CASG8L,YACF,OAAOjI,KAAK+B,MAAM,GACd/B,KAAK+B,MAAM,GAAGkG,MACdlG,GAAMiF,IACX,CASGmhB,WACF,OAAOnoB,KAAK+B,MAAMN,KAAI,SAAUjB,GAC9B,OAAOA,EAAK2nB,IAClB,IAAOxqB,KAAK,KACT,CASDsM,MAAM9I,GACJ,IAAI8I,EAAQ,IAAIjK,KAAKH,YAAYG,KAAKiP,QAQtC,OAPAhF,EAAMtD,SAAW3G,KAAK2G,SACtBsD,EAAM9J,OAASH,KAAKG,OACpB8J,EAAM7J,OAASJ,KAAKI,OACpB6J,EAAMpI,SAAW7B,KAAK6B,SACtBoI,EAAMlI,MAAQ/B,KAAK+B,MAAMN,KAAI,SAAUjB,GACrC,OAAOA,EAAKyJ,MAAM9I,EAAQ8I,EAChC,IACWA,CACR,CASDjJ,KAAKR,GACHR,KAAK+B,MAAMf,KAAKR,EACjB,CAWDmP,QAAQC,EAAIE,EAAO/P,GACjB,OAAQ6P,GACN,IAAK,MACH,IAAIqG,EAAOjW,KACPgE,EAAQsH,EAAawE,GAAO/N,MAC5BhC,EAAMuL,EAAavL,GAevB,OAZAiE,EAAMqD,SAAQ,SAAUiF,GAEtB,GADA1K,EAAMqU,EAAKlU,MAAM5F,OACb,QAAUmQ,EAAKxK,SAAU,CAG3B,IAFA,IAAI5F,EAAIoQ,EAAKvM,IAAM,EAAI6B,EAAM0K,EAAKvM,IAAMuM,EAAKvM,IACzC2P,EAAIxT,EACDA,KAAM0F,GAAKqU,EAAKlU,MAAM7F,GAAK6F,GAAMiF,KACxCiP,EAAKlU,MAAM2N,GAAK3P,CAC5B,MAAqBuM,EAAKjC,SACd7J,EAAOyV,EAAKlU,MAAM,KACN,UAAYvB,EAAKsB,UAAUtB,EAAKgH,IAAI8E,EAAKjC,OAAQtK,EAAIkK,QAE7E,IACelK,EACT,IAAK,KACH,IAGIS,EAHAkG,EAAO,IAAI3E,GAAMqF,WACjBe,EAAOmD,EAAatL,MAAM+B,MAW9B,OAVIiC,EAAQsH,EAAawE,GAAO/N,OAE1BsF,SAAQ,SAAUiF,GAClB,QAAUA,EAAKxK,SACjBtB,EAAO2H,EAAKmE,EAAKvM,IAAM,EAAIoI,EAAKhM,OAASmQ,EAAKvM,IAAMuM,EAAKvM,KAChD,UAAYoI,EAAK,GAAGrG,WAC7BtB,EAAO2H,EAAK,GAAGqG,IAAIlC,EAAKjC,SAEtB7J,GAAMkG,EAAK1F,KAAKR,EAC9B,IACekG,EAAKgN,QACR3R,GAAMiF,KACNsE,EAAa5E,GACnB,IAAK,KACH,OAAO1G,KAAK2N,YAAYC,OACpB5N,KACA8P,EACN,IAAK,KACH,OAAOhP,MAAM6O,QAAQC,EAAIE,GAC3B,IAAK,KACH,OAAO9P,KAAK2P,QAAQ,KAAMG,EAAO/P,GAAKssB,SACxC,IAAK,KACH,IAEIzkB,EACAC,EAHAjG,EAAM5B,KAAK+B,MAAM5F,OACjB2T,EAAQA,EAAMof,eAGlB,GAAIttB,GAAOkO,EAAM/N,MAAM5F,OAAQ,OAAO4F,GAAMkqB,MAC5C,IAAK,IAAI/vB,EAAI,EAAGA,EAAI0F,IAAO1F,EAGzB,GAFA0L,EAAI5H,KAAK+B,MAAM7F,GACf2L,EAAIiI,EAAM/N,MAAM7F,IACZ0L,EAAE+H,QAAQC,EAAI/H,GAAG+F,OACrB,OAAO7L,GAAMkqB,MAEf,OAAOlqB,GAAMmqB,KAEf,QACE,OAAOlsB,KAAKiI,MAAM0H,QAAQC,EAAIE,EAAO/P,GAE1C,CAWD4N,YACE,OAAI3N,KAAK+B,MAAM5F,OAAS,EAAU4F,GAAMmqB,KACjClsB,KAAKiI,MAAM0F,WACnB,CAUDtN,WACE,MAAO,IAAML,KAAK+B,MAAMN,KAAI,SAAUjB,GACpC,OAAOA,EAAKH,UAClB,IAAO1C,KAAKqC,KAAKiP,OAAS,KAAO,KAAO,GACrC,CASDggB,SACE,MAAO,CACLkB,OAAQ,aACRlhB,OAAQjP,KAAKiP,OACbtI,SAAU3G,KAAK2G,SACfxG,OAAQH,KAAKG,OACbC,OAAQJ,KAAKI,OACbyB,SAAU7B,KAAK6B,SACfE,MAAO/B,KAAK+B,MAEf,GC3MCA,GAAQuvB;;;;;;ACJZlmB,OAAiB,KACjBA,OAAiB,KACjBA,SAAmB,MAMnBA,GAAQ4jB,KAAOD,GACf3jB,GAAQkM,KCHS,MAAMA,aAAa0X,GAOlCnvB,cACEiB,QACAd,KAAK+B,MAAQ,EACd,CASDf,KAAKR,GACHR,KAAK+B,MAAMf,KAAKR,EACjB,CASDyI,QAAQzI,GACNR,KAAK+B,MAAMkH,QAAQzI,EACpB,CASDyJ,QACE,IAAIA,EAAQ,IAAIqN,KAOhB,OANArN,EAAM9J,OAASH,KAAKG,OACpB8J,EAAM7J,OAASJ,KAAKI,OACpB6J,EAAMpI,SAAW7B,KAAK6B,SACtB7B,KAAK+B,MAAMsF,SAAQ,SAAU7G,GAC3ByJ,EAAMjJ,KAAKR,EAAKyJ,MAAMA,EAAOA,GACnC,IACWA,CACR,CASD5J,WACE,MAAO,QACR,CASD4uB,SACE,MAAO,CACLkB,OAAQ,OACRpuB,MAAO/B,KAAK+B,MACZ5B,OAAQH,KAAKG,OACbC,OAAQJ,KAAKI,OACbyB,SAAU7B,KAAK6B,SAElB,GD1EHuJ,GAAQmmB,KEGS,MAAMA,aAAavC,GAQlC3uB,WACE,MAAO,MACR,CAEDJ,UACE,MAAO,MACR,CASD0N,YACE,OAAO5L,GAAMkqB,KACd,CASGrf,aACF,OAAO,CACR,CASGub,WACF,OAAO,IACR,CASD8G,SACE,MAAO,CACLkB,OAAQ,OACRhwB,OAAQH,KAAKG,OACbC,OAAQJ,KAAKI,OACbyB,SAAU7B,KAAK6B,SAElB,GFjEHuJ,GAAQomB,KGJS,MAAMA,aAAaxC,GAYlCnvB,YAAYE,EAAKwC,EAAKmE,EAAMpF,GAC1BR,QACAd,KAAKD,IAAMA,EACXC,KAAKuC,IAAMA,EACXvC,KAAK0G,KAAOA,EACZ1G,KAAKsB,MAAQA,CACd,CASD2I,MAAM9I,GACJ,IAAI8I,EAAQ,IAAIunB,KAAKxxB,KAAKD,IAAKC,KAAKuC,KAMpC,OALA0H,EAAMvD,KAAO1G,KAAK0G,KAAKuD,MAAM9I,EAAQ8I,GACrCA,EAAM3I,MAAQtB,KAAKsB,MAAM2I,MAAM9I,EAAQ8I,GACvCA,EAAM9J,OAASH,KAAKG,OACpB8J,EAAM7J,OAASJ,KAAKI,OACpB6J,EAAMpI,SAAW7B,KAAK6B,SACfoI,CACR,CASDglB,SACE,MAAO,CACLkB,OAAQ,OACRpwB,IAAKC,KAAKD,IACVwC,IAAKvC,KAAKuC,IACVmE,KAAM1G,KAAK0G,KACXpF,MAAOtB,KAAKsB,MACZnB,OAAQH,KAAKG,OACbC,OAAQJ,KAAKI,OACbyB,SAAU7B,KAAK6B,SAElB,GHlDHuJ,GAAQqmB,GINS,MAAMA,WAAWzC,GAShCnvB,YAAY2sB,EAAMH,GAChBvrB,QACAd,KAAKwsB,KAAOA,EACZxsB,KAAKstB,MAAQ,GACTjB,GAAUA,EAAOvqB,SACnB9B,KAAKsB,MAAQ+qB,EAEbrsB,KAAKqsB,OAASA,CAEjB,CASDpiB,MAAM9I,GACJ,IAAI8I,EAAQ,IAAIwnB,GAShB,OARAxnB,EAAMuiB,KAAOxsB,KAAKwsB,KAAKviB,MAAM9I,EAAQ8I,GACrCA,EAAM3I,MAAQtB,KAAKsB,MAAM2I,MAAM9I,EAAQ8I,GACvCA,EAAMqjB,MAAQttB,KAAKstB,MAAM7rB,KAAI,SAAUjB,GAAQ,OAAOA,EAAKyJ,MAAM9I,EAAQ8I,EAAS,IAClFA,EAAMoiB,OAASrsB,KAAKqsB,OACpBpiB,EAAMsjB,QAAUvtB,KAAKutB,QACrBtjB,EAAM9J,OAASH,KAAKG,OACpB8J,EAAM7J,OAASJ,KAAKI,OACpB6J,EAAMpI,SAAW7B,KAAK6B,SACfoI,CACR,CASDglB,SACE,MAAO,CACLkB,OAAQ,KACR3D,KAAMxsB,KAAKwsB,KACXlrB,MAAOtB,KAAKsB,MACZgsB,MAAOttB,KAAKstB,MACZjB,OAAQrsB,KAAKqsB,OACbkB,QAASvtB,KAAKutB,QACdptB,OAAQH,KAAKG,OACbC,OAAQJ,KAAKI,OACbyB,SAAU7B,KAAK6B,SAElB,GJpDHuJ,GAAQ4hB,KKPS,MAAMA,aAAagC,GASlCnvB,YAAY/C,EAAMiZ,GAChBjV,QACAd,KAAKlD,KAAOA,EACZkD,KAAK+V,KAAOA,CACb,CASD9L,MAAM9I,GACJ,IAAI8I,EAAQ,IAAI+iB,KAAKhtB,KAAKlD,MAM1B,OALAmN,EAAM8L,KAAO/V,KAAK+V,KAAK9L,MAAM9I,EAAQ8I,GACjCjK,KAAKsB,QAAO2I,EAAM3I,MAAQtB,KAAKsB,MAAM2I,MAAM9I,EAAQ8I,IACvDA,EAAM9J,OAASH,KAAKG,OACpB8J,EAAM7J,OAASJ,KAAKI,OACpB6J,EAAMpI,SAAW7B,KAAK6B,SACfoI,CACR,CASD5J,WACE,IAAI0V,EAAO/V,KAAK+V,KAAKhU,MAAMN,KAAI,SAAUjB,GACvC,IAAIuC,EAAMvC,EAAKH,WACf,OAAO0C,EAAIxG,MAAM,EAAGwG,EAAI5G,OAAS,EACvC,IAAOwB,KAAK,MAER,OAAOqC,KAAKlD,KAAO,IAAMiZ,EAAO,GACjC,CASDkZ,SACE,IAAI7gB,EAAO,CACT+hB,OAAQ,OACRrzB,KAAMkD,KAAKlD,KACXiZ,KAAM/V,KAAK+V,KACX5V,OAAQH,KAAKG,OACbC,OAAQJ,KAAKI,OACbyB,SAAU7B,KAAK6B,UAGjB,OADI7B,KAAKsB,QAAO8M,EAAK9M,MAAQtB,KAAKsB,OAC3B8M,CACR,GL1DHhD,GAAQsmB,QMRS,MAAMA,gBAAgB1C,GASrCnvB,YAAY+P,EAAIlJ,GACd5F,QACAd,KAAK4P,GAAKA,EACV5P,KAAK0G,KAAOA,CACb,CAUDuD,MAAM9I,GACJ,IAAI8I,EAAQ,IAAIynB,QAAQ1xB,KAAK4P,IAK7B,OAJA3F,EAAMvD,KAAO1G,KAAK0G,KAAKuD,MAAM9I,EAAQ8I,GACrCA,EAAM9J,OAASH,KAAKG,OACpB8J,EAAM7J,OAASJ,KAAKI,OACpB6J,EAAMpI,SAAW7B,KAAK6B,SACfoI,CACR,CASDglB,SACE,MAAO,CACLkB,OAAQ,UACRvgB,GAAI5P,KAAK4P,GACTlJ,KAAM1G,KAAK0G,KACXvG,OAAQH,KAAKG,OACbC,OAAQJ,KAAKI,OACbyB,SAAU7B,KAAK6B,SAElB,GNvCHuJ,GAAQumB,MOTS,MAAMA,cAAc3C,GAUnCnvB,YAAY+P,EAAIC,EAAMC,GACpBhP,QACAd,KAAK4P,GAAKA,EACV5P,KAAK6P,KAAOA,EACZ7P,KAAK8P,MAAQA,CACd,CASD7F,MAAM9I,GACJ,IAAI8I,EAAQ,IAAI0nB,MAAM3xB,KAAK4P,IAO3B,OANA3F,EAAM4F,KAAO7P,KAAK6P,KAAK5F,MAAM9I,EAAQ8I,GACrCA,EAAM6F,MAAQ9P,KAAK8P,OAAS9P,KAAK8P,MAAM7F,MAAM9I,EAAQ8I,GACrDA,EAAM9J,OAASH,KAAKG,OACpB8J,EAAM7J,OAASJ,KAAKI,OACpB6J,EAAMpI,SAAW7B,KAAK6B,SAClB7B,KAAKD,MAAKkK,EAAMlK,IAAMC,KAAKD,IAAIkK,MAAM9I,EAAQ8I,IAC1CA,CACR,CAQD5J,WACE,OAAOL,KAAK6P,KAAKxP,WAAa,IAAML,KAAK4P,GAAK,IAAM5P,KAAK8P,MAAMzP,UAChE,CASD4uB,SACE,IAAI7gB,EAAO,CACT+hB,OAAQ,QACRtgB,KAAM7P,KAAK6P,KACXC,MAAO9P,KAAK8P,MACZF,GAAI5P,KAAK4P,GACTzP,OAAQH,KAAKG,OACbC,OAAQJ,KAAKI,OACbyB,SAAU7B,KAAK6B,UAGjB,OADI7B,KAAKD,MAAKqO,EAAKrO,IAAMC,KAAKD,KACvBqO,CACR,GPtDHhD,GAAQwmB,QQVS,MAAMA,gBAAgB5C,GAUrCnvB,YAAY2sB,EAAMC,EAAUC,GAC1B5rB,QACAd,KAAKwsB,KAAOA,EACZxsB,KAAKysB,SAAWA,EAChBzsB,KAAK0sB,UAAYA,CAClB,CASDziB,MAAM9I,GACJ,IAAI8I,EAAQ,IAAI2nB,QAOhB,OANA3nB,EAAMuiB,KAAOxsB,KAAKwsB,KAAKviB,MAAM9I,EAAQ8I,GACrCA,EAAMwiB,SAAWzsB,KAAKysB,SAASxiB,MAAM9I,EAAQ8I,GAC7CA,EAAMyiB,UAAY1sB,KAAK0sB,UAAUziB,MAAM9I,EAAQ8I,GAC/CA,EAAM9J,OAASH,KAAKG,OACpB8J,EAAM7J,OAASJ,KAAKI,OACpB6J,EAAMpI,SAAW7B,KAAK6B,SACfoI,CACR,CASDglB,SACE,MAAO,CACLkB,OAAQ,UACR3D,KAAMxsB,KAAKwsB,KACXC,SAAUzsB,KAAKysB,SACfC,UAAW1sB,KAAK0sB,UAChBvsB,OAAQH,KAAKG,OACbC,OAAQJ,KAAKI,OACbyB,SAAU7B,KAAK6B,SAElB,GRzCHuJ,GAAQ+L,MSXS,MAAMA,cAAc6X,GAQnCnvB,YAAYsB,EAAQX,GAClBM,QACAd,KAAK+B,MAAQ,GACb/B,KAAKmB,OAASA,EACdnB,KAAKQ,KAAOA,EACZR,KAAK0C,OAAQ,CACd,CASGiQ,oBACF,IAAK,IAAIzW,EAAI,EAAG0F,EAAM5B,KAAK+B,MAAM5F,OAAQD,EAAI0F,IAAO1F,EAClD,GAAI,YAAc8D,KAAK+B,MAAM7F,GAAG4F,SAC9B,OAAO,CAGZ,CASGurB,eACF,IAAK,IAAInxB,EAAI,EAAG0F,EAAM5B,KAAK+B,MAAM5F,OAAQD,EAAI0F,IAAO1F,EAAG,CAErD,GAAI,SADW8D,KAAK+B,MAAM7F,GAAG4F,SAE3B,OAAO,CAEV,CACD,OAAO,CACR,CASG4R,cACF,OAAQ1T,KAAK+B,MAAM5F,QAAU6D,KAAK+B,MAAMwN,OAAM,SAAUG,GAAK,MAAqB,WAAdA,EAAE5N,QAAuB,GAC9F,CASDmI,MAAM9I,EAAQX,GACZW,EAASA,GAAUnB,KAAKmB,OACxB,IAAI8I,EAAQ,IAAIkN,MAAMhW,EAAQX,GAAQR,KAAKQ,MAQ3C,OAPAyJ,EAAM9J,OAASH,KAAKG,OACpB8J,EAAM7J,OAASJ,KAAKI,OACpB6J,EAAMpI,SAAW7B,KAAK6B,SACtBoI,EAAMvH,MAAQ1C,KAAK0C,MACnB1C,KAAK+B,MAAMsF,SAAQ,SAAU7G,GAC3ByJ,EAAMjJ,KAAKR,EAAKyJ,MAAMA,EAAOA,GACnC,IACWA,CACR,CASDjJ,KAAKR,GACHR,KAAK+B,MAAMf,KAAKR,EACjB,CASDyuB,SACE,MAAO,CACLkB,OAAQ,QAGRztB,MAAO1C,KAAK0C,MACZvC,OAAQH,KAAKG,OACbC,OAAQJ,KAAKI,OACbyB,SAAU7B,KAAK6B,SACfE,MAAO/B,KAAK+B,MAEf,GThGHqJ,GAAQrE,KVIS,MAAMA,aAAaioB,GAUlCnvB,YAAYE,EAAKD,GACfgB,QACAd,KAAKD,IAAMA,EACXC,KAAKF,KAAOA,CACb,CASD6N,YACE,OAAO,IAAI5L,GAAM+E,UAAQ9G,KAAKF,MAE1BE,KAAKD,IACV,CASDM,WACE,OAAOL,KAAKD,KAAOC,KAAKF,MAAQ,GACjC,CASDmK,QACE,IAAIA,EAAQ,IAAIlD,KAAK/G,KAAKD,IAAKC,KAAKF,MAIpC,OAHAmK,EAAM9J,OAASH,KAAKG,OACpB8J,EAAM7J,OAASJ,KAAKI,OACpB6J,EAAMpI,SAAW7B,KAAK6B,SACfoI,CACR,CASDglB,SACE,MAAO,CACLkB,OAAQ,OACRpwB,IAAKC,KAAKD,IACVD,KAAME,KAAKF,KACXK,OAAQH,KAAKG,OACbC,OAAQJ,KAAKI,OACbyB,SAAU7B,KAAK6B,SAElB,CAWD8N,QAAQC,EAAIE,GACV,IAAIhQ,EAAOE,KAAKF,MAAQgQ,EAAM7H,MAAMnI,KAGpC,GAAI,QAAUgQ,EAAMhO,UAAY,QAAUgO,EAAMhO,SAC9C,OAAOgO,EAAMH,QAAQC,EAAI5P,MAI3B,GAAIA,KAAKmvB,aAAavf,GASpB,OARAE,EAAQA,EAAM7H,MAKZ6H,EAHE,KAAO9P,KAAKF,MAAS,KAAO8P,GAAM,KAAOA,GAAO,KAAOE,EAAMhQ,KAGvDE,KAAKqvB,OAAOvf,GAFZ,IAAI/I,KAAK/G,KAAKD,KAAO+P,EAAM/P,IAAM,KAAM,KAKzC6P,GACN,IAAK,IACH,OAAO,IAAI7I,KAAK/G,KAAKD,IAAM+P,EAAM/P,IAAKD,GACxC,IAAK,IAGH,OADAA,EAAOA,GAAuB,KAAdgQ,EAAMhQ,MAAegQ,EAAMhQ,KACpC,IAAIiH,KAAK/G,KAAKD,IAAM+P,EAAM/P,IAAKD,GACxC,IAAK,IACH,OAAO,IAAIiH,KAAK/G,KAAKD,IAAM+P,EAAM/P,IAAKD,GACxC,IAAK,IACH,OAAO,IAAIiH,KAAK/G,KAAKD,IAAM+P,EAAM/P,IAAKD,GACxC,IAAK,IACH,OAAO,IAAIiH,KAAK/G,KAAKD,IAAM+P,EAAM/P,IAAKD,GACxC,IAAK,KACH,OAAO,IAAIiH,KAAKtB,KAAKiH,IAAI1M,KAAKD,IAAK+P,EAAM/P,KAAMD,GACjD,IAAK,KACL,IAAK,MACH,IAAIf,EAAQiB,KAAKD,IACbnB,EAAMkR,EAAM/P,IACZ2G,EAAO,IAAI3E,GAAMqF,WACjByqB,EAAY,MAAQjiB,EACxB,GAAI7Q,EAAQH,EACV,GACE8H,EAAK1F,KAAK,IAAIe,GAAMgF,KAAKhI,UAClB8yB,IAAc9yB,GAASH,IAAQG,EAAQH,QAEhD,GACE8H,EAAK1F,KAAK,IAAIe,GAAMgF,KAAKhI,UAClB8yB,IAAc9yB,GAASH,IAAQG,EAAQH,GAElD,OAAO8H,EAIb,OAAO5F,MAAM6O,QAAQC,EAAIE,EAC1B,CAsBDuf,OAAOtY,GACL,GAAI,QAAUA,EAAMjV,SAAU,CAC5B,IAAI8F,EAAI5H,KACJ6H,EAAIkP,EACJ+a,EAAUxC,GAAa1nB,EAAE9H,MACzBiyB,EAAUzC,GAAaznB,EAAE/H,MAE7B,GAAIgyB,GAAWC,GAAYD,EAAQtC,OAASuC,EAAQvC,MAAQ,CAC1D,IAAIwC,EAAOnqB,EAAE9H,KAAOgyB,EAAQhyB,IAAM+xB,EAAQ/xB,KAC1C,OAAO,IAAIgC,GAAMgF,KAAKirB,EAAMpqB,EAAE9H,KACtC,CACQ,OAAO,IAAIiC,GAAMgF,KAAKc,EAAE9H,IAAK6H,EAAE9H,KAEvC,CAAW,GAAI,UAAYiX,EAAMjV,SAAU,CAErC,GAAI,KAAOiV,EAAMhX,IAAK,OAAO,IAAIgC,GAAMgF,KAAK,EAAG,KAC/C,IAAIhH,EAAMqV,WAAW2B,EAAMhX,KAE3B,OADIkyB,MAAMlyB,IAAMe,MAAMuuB,OAAOtY,GACtB,IAAIhV,GAAMgF,KAAKhH,EAC5B,CACM,OAAOe,MAAMuuB,OAAOtY,EAEvB,GUtLH3L,GAAQvE,OTXS,MAAMA,eAAemoB,GASpCnvB,YAAYE,EAAKmyB,GACfpxB,QACAd,KAAKD,IAAMA,EACXC,KAAKqK,OAAStK,EACdC,KAAK0uB,UAAW,EAEd1uB,KAAKkyB,MADc,iBAAVA,EACI,IAEAA,CAEhB,CASD7xB,WACE,OAAOL,KAAKkyB,MAAQlyB,KAAKD,IAAMC,KAAKkyB,KACrC,CASDjoB,QACE,IAAIA,EAAQ,IAAIpD,OAAO7G,KAAKD,IAAKC,KAAKkyB,OAItC,OAHAjoB,EAAM9J,OAASH,KAAKG,OACpB8J,EAAM7J,OAASJ,KAAKI,OACpB6J,EAAMpI,SAAW7B,KAAK6B,SACfoI,CACR,CASDglB,SACE,MAAO,CACLkB,OAAQ,SACRpwB,IAAKC,KAAKD,IACVmyB,MAAOlyB,KAAKkyB,MACZ/xB,OAAQH,KAAKG,OACbC,OAAQJ,KAAKI,OACbyB,SAAU7B,KAAK6B,SAElB,CASD8L,YACE,OAAO,IAAI5L,GAAM+E,QAAQ9G,KAAKD,IAAI5D,OACnC,CAUDkzB,OAAOtY,GACL,OAAQA,EAAMjV,UACZ,IAAK,SACH,OAAOiV,EACT,IAAK,aACH,OAAO,IAAIlQ,OAAOkQ,EAAMhV,MAAMN,KAAI,SAAUjB,GAC1C,OAAOR,KAAKqvB,OAAO7uB,GAAMT,GAC1B,GAAEC,MAAMrC,KAAK,MAChB,QACE,OAAO,IAAIkJ,OAAOkQ,EAAM1W,YAE7B,CAWDsP,QAAQC,EAAIE,GACV,OAAQF,GACN,IAAK,KACClJ,EAAO,IAAI3E,GAAMqF,YAChBpG,KAAKhB,MAGV,IAAI+V,EAAO,cAAgBjG,EAAMhO,SAC7BwJ,EAAawE,GAAO/N,MACpB,CAAC+N,GAGL,OAAOigB,GAAQhvB,MAAM,KAAM,CAAC2F,GAAMkF,OAAOmK,IAC3C,IAAK,IACH,IAAIrP,EAEJ,OAFIA,EAAO,IAAI3E,GAAMqF,YAChBpG,KAAK,IAAI6F,OAAO7G,KAAKD,IAAMC,KAAKqvB,OAAOvf,GAAO/P,MAC5C2G,EACT,QACE,OAAO5F,MAAM6O,QAAQC,EAAIE,GAE9B,GSlHH1E,GAAQ2C,KAAOoN,GACf/P,GAAQT,KAAOkS,GACfzR,GAAQ7D,MNfS,MAAMA,cAAcynB,GASnCnvB,YAAY/C,EAAMiD,EAAKorB,GACrBrqB,QACAd,KAAKlD,KAAOA,EACZkD,KAAKqK,OAASvN,EACdkD,KAAKD,IAAMA,GAAOgC,GAAMiF,KACxBhH,KAAKmrB,QAAUA,CAChB,CASGzX,cACF,OAAOpW,MAAa0C,KAAKD,GAC1B,CASGooB,WACF,OAAOnoB,KAAKlD,IACb,CASDmN,MAAM9I,GACJ,IAAI8I,EAAQ,IAAI1C,MAAMvH,KAAKlD,MAQ3B,OAPAmN,EAAMlK,IAAMC,KAAKD,IAAIkK,MAAM9I,EAAQ8I,GACnCA,EAAMkhB,MAAQnrB,KAAKmrB,MACnBlhB,EAAM9J,OAASH,KAAKG,OACpB8J,EAAM7J,OAASJ,KAAKI,OACpB6J,EAAMpI,SAAW7B,KAAK6B,SACtBoI,EAAM0hB,SAAW3rB,KAAK2rB,SACtB1hB,EAAM8jB,KAAO/tB,KAAK+tB,KACX9jB,CACR,CASDglB,SACE,MAAO,CACLkB,OAAQ,QACRrzB,KAAMkD,KAAKlD,KACXiD,IAAKC,KAAKD,IACVorB,MAAOnrB,KAAKmrB,MACZQ,SAAU3rB,KAAK2rB,SACfoC,KAAM/tB,KAAK+tB,KACX5tB,OAAQH,KAAKG,OACbC,OAAQJ,KAAKI,OACbyB,SAAU7B,KAAK6B,SAElB,CASDxB,WACE,OAAOL,KAAKlD,IACb,CAUDuyB,OAAOtY,GACL,OAAQA,EAAMjV,UACZ,IAAK,QACL,IAAK,SACL,IAAK,UACH,OAAO,IAAIyF,MAAMwP,EAAM1M,QACzB,IAAK,OACH,OAAO,IAAI9C,MAAMwP,EAAM1W,YACzB,QACE,OAAOS,MAAMuuB,OAAOtY,GAEzB,CAWDpH,QAAQC,EAAIE,GACV,IAAI/P,EAAM+P,EAAM7H,MAChB,OAAQ2H,GACN,IAAK,IACH,GAAI,QAAU7P,EAAI+B,SAAU,CAC1B,IAAI4E,EAAO,IAAI3E,GAAMqF,WAKrB,OAJArH,EAAMA,EAAIkK,SACNlK,KAAOA,EAAIA,IACf2G,EAAK1F,KAAKhB,MACV0G,EAAK1F,KAAKjB,GACH2G,CACR,CACH,IAAK,IACH,OAAO,IAAI3E,GAAMwF,MAAMvH,KAAKqK,OAASrK,KAAKqvB,OAAOtvB,GAAKsK,QAE1D,OAAOvJ,MAAM6O,QAAQC,EAAIE,EAC1B,GMxHH1E,GAAQ8L,MUjBS,MAAMA,cAAc8X,GAOnCnvB,cACEiB,QACAd,KAAK+B,MAAQ,GACb/B,KAAK+X,QAAU,EAChB,CASD/W,KAAKqD,GACHrE,KAAK+B,MAAMf,KAAKqD,EACjB,CAMG/C,YACF,OAAOtB,KAAK+B,MAAM,GAAGT,KACtB,CASGA,UAAMA,GACR,IAAK,IAAIpF,EAAI,EAAG0F,EAAM5B,KAAK+B,MAAM5F,OAAQD,EAAI0F,IAAO1F,EAClD8D,KAAK+B,MAAM7F,GAAGoF,MAAQA,CAEzB,CASG6vB,0BACF,OAAOnxB,KAAK+B,MAAMwN,OAAM,SAAUlL,GAAY,OAAOA,EAAS0E,aAAc,GAC7E,CASDkB,MAAM9I,GACJ,IAAI8I,EAAQ,IAAIiN,MAQhB,OAPAjN,EAAM9J,OAASH,KAAKG,OACpB8J,EAAM7J,OAASJ,KAAKI,OACpBJ,KAAK+B,MAAMsF,SAAQ,SAAU7G,GAC3ByJ,EAAMjJ,KAAKR,EAAKyJ,MAAM9I,EAAQ8I,GACpC,IACIA,EAAMpI,SAAW7B,KAAK6B,SACtBoI,EAAM3I,MAAQtB,KAAKsB,MAAM2I,MAAM9I,EAAQ8I,GAChCA,CACR,CASDglB,SACE,MAAO,CACLkB,OAAQ,QACRpuB,MAAO/B,KAAK+B,MACZT,MAAOtB,KAAKsB,MACZnB,OAAQH,KAAKG,OACbC,OAAQJ,KAAKI,OACbyB,SAAU7B,KAAK6B,SAElB,GVzEHuJ,GAAQ7B,QWjBS,MAAMA,gBAAgBylB,GAQrCnvB,YAAYkD,GACVjC,QACAd,KAAKD,IAAMgD,EACX/C,KAAKqK,OAAStH,EACd/C,KAAK0uB,UAAW,CACjB,CASGvG,WACF,OAAOnoB,KAAKD,GACb,CASDM,WACE,OAAOL,KAAKD,IAAIM,UACjB,CAUDgvB,OAAOtY,GACL,OAAQA,EAAMjV,UACZ,IAAK,QACL,IAAK,SACL,IAAK,UACH,OAAO,IAAIyH,QAAQwN,EAAM1M,QAC3B,QACE,OAAOvJ,MAAMuuB,OAAOtY,GAEzB,CAWDpH,QAAQC,EAAIE,GACV,IAAI/P,EAAM+P,EAAM7H,MAChB,MACO,MADC2H,EAEG,IAAI7N,GAAMwH,QAAQvJ,KAAKqK,OAASrK,KAAKqvB,OAAOtvB,GAAKsK,QAEjDvJ,MAAM6O,QAAQC,EAAIE,EAE9B,CASDmf,SACE,MAAO,CACLkB,OAAQ,UACRpwB,IAAKC,KAAKD,IACVsK,OAAQrK,KAAKqK,OACbqkB,SAAU1uB,KAAK0uB,SACfvuB,OAAQH,KAAKG,OACbC,OAAQJ,KAAKI,OACbyB,SAAU7B,KAAK6B,SAElB,GX1EHuJ,GAAQtE,QYlBS,MAAMA,gBAAgBkoB,GAQrCnvB,YAAYE,GAEV,GADAe,SACId,KAAK8B,SAGP,OAAO,IAAIgF,QAAQ/G,GAFnBC,KAAKD,MAAQA,CAIhB,CASD4N,YACE,OAAO3N,IACR,CASG4N,aACF,OAAO5N,KAAKD,GACb,CASG6O,cACF,OAAQ5O,KAAKD,GACd,CASDssB,SACE,OAAO,IAAIvlB,SAAS9G,KAAKD,IAC1B,CASDE,UACE,MAAO,YAAcD,KAAKD,IAAM,GACjC,CASDM,WACE,OAAOL,KAAKD,IACR,OACA,OACL,CASDkvB,SACE,MAAO,CACLkB,OAAQ,UACRpwB,IAAKC,KAAKD,IAEb,GZ9EHqL,GAAQ+mB,OaZS,MAAMA,eAAenD,GACpCnvB,YAAY6G,GACV5F,QACAd,KAAK0G,KAAOA,GAAQ3E,GAAMiF,IAC3B,CASDiD,MAAM9I,GACJ,IAAI8I,EAAQ,IAAIkoB,OAKhB,OAJAloB,EAAMvD,KAAO1G,KAAK0G,KAAKuD,MAAM9I,EAAQ8I,GACrCA,EAAM9J,OAASH,KAAKG,OACpB8J,EAAM7J,OAASJ,KAAKI,OACpB6J,EAAMpI,SAAW7B,KAAK6B,SACfoI,CACR,CASDglB,SACE,MAAO,CACLkB,OAAQ,SACRzpB,KAAM1G,KAAK0G,KACXvG,OAAQH,KAAKG,OACbC,OAAQJ,KAAKI,OACbyB,SAAU7B,KAAK6B,SAElB,GbxBHuJ,GAAQgnB,MJrBS,MAAMA,cAAclB,GAQnCrxB,YAAYE,GACVe,MAAM,SACNd,KAAKD,IAAMA,CACZ,CASDkK,MAAM9I,GACJ,IAAI8I,EAAQ,IAAImoB,MAMhB,OALAnoB,EAAMlK,IAAMC,KAAKD,IAAIkK,MAAM9I,EAAQ8I,GACnCA,EAAM3I,MAAQtB,KAAKsB,MAAM2I,MAAM9I,EAAQ8I,GACvCA,EAAM9J,OAASH,KAAKG,OACpB8J,EAAM7J,OAASJ,KAAKI,OACpB6J,EAAMpI,SAAW7B,KAAK6B,SACfoI,CACR,CASDglB,SACE,MAAO,CACLkB,OAAQ,QACRpwB,IAAKC,KAAKD,IACVuB,MAAOtB,KAAKsB,MACZnB,OAAQH,KAAKG,OACbC,OAAQJ,KAAKI,OACbyB,SAAU7B,KAAK6B,SAElB,CASDxB,WACE,MAAO,UAAYL,KAAKD,GACzB,GInCHqL,GAAQinB,UctBR,MAAuBA,kBAAkBrD,GAOvCnvB,cACEiB,QACAd,KAAK+B,MAAQ,EACd,CASDkI,MAAM9I,GACJ,IAAI8I,EAAQ,IAAIooB,UAChBpoB,EAAM9J,OAASH,KAAKG,OACpB8J,EAAM7J,OAASJ,KAAKI,OACpB6J,EAAMpI,SAAW7B,KAAK6B,SACtB,IAAK,IAAI3F,EAAI,EAAGA,EAAI8D,KAAK+B,MAAM5F,SAAUD,EACvC+N,EAAMjJ,KAAKhB,KAAK+B,MAAM7F,GAAG+N,MAAM9I,EAAQ8I,IAEzC,OAAOA,CACR,CASDjJ,KAAKR,GACHR,KAAK+B,MAAMf,KAAKR,EACjB,CAUD6P,MAAM0G,GACJ,IACIub,EADAjpB,EAAO,IAAIgpB,UAQf,OANAryB,KAAK+B,MAAMsF,SAAQ,SAAUmjB,GAC3B,IAAK,IAAItuB,EAAI,EAAG0F,EAAMmV,EAAMhV,MAAM5F,OAAQD,EAAI0F,IAAO1F,GACnDo2B,EAAS9H,EAAMna,MAAM0G,EAAMhV,MAAM7F,MACrBmN,EAAKrI,KAAKsxB,EAE9B,IACWjpB,CACR,CASDhJ,WACE,MAAO,IAAML,KAAK+B,MAAMN,KAAI,SAAUjB,GACpC,OAAOA,EAAKH,UACb,IAAE1C,KAAK,MAAQ,GACjB,CASDsxB,SACE,MAAO,CACLkB,OAAQ,YACRpuB,MAAO/B,KAAK+B,MACZ5B,OAAQH,KAAKG,OACbC,OAAQJ,KAAKI,OACbyB,SAAU7B,KAAK6B,SAElB,GdlEHuJ,GAAQmnB,MevBS,MAAMA,cAAcvD,GAOnCnvB,cACEiB,QACAd,KAAK+B,MAAQ,GACb/B,KAAKF,KAAO,GACZE,KAAKwT,UAAY,EAClB,CASDvJ,MAAM9I,GACJ,IAAI8I,EAAQ,IAAIsoB,MAChBtoB,EAAMuJ,UAAYxT,KAAKwT,UACvBvJ,EAAMnK,KAAOE,KAAKF,KAClB,IAAK,IAAI5D,EAAI,EAAG0F,EAAM5B,KAAK+B,MAAM5F,OAAQD,EAAI0F,IAAO1F,EAClD+N,EAAMjJ,KAAKhB,KAAK+B,MAAM7F,GAAG+N,MAAM9I,EAAQ8I,IAKzC,OAHAA,EAAM9J,OAASH,KAAKG,OACpB8J,EAAM7J,OAASJ,KAAKI,OACpB6J,EAAMpI,SAAW7B,KAAK6B,SACfoI,CACR,CASDjJ,KAAKwxB,GACHxyB,KAAK+B,MAAMf,KAAKwxB,EACjB,CASGC,mBACF,GAAIzyB,KAAKF,KACP,OAAOE,KAAKF,KAAKgC,SACb9B,KAAKF,KAAKuK,OACVrK,KAAKF,IAEZ,CASG4yB,wBACF,GAAI1yB,KAAKwT,UACP,OAAOxT,KAAKwT,UAAU1R,SAClB9B,KAAKwT,UAAUnJ,OACfrK,KAAKwT,SAEZ,CAUDnD,MAAM0G,GACJ,IAKIjX,EAAM6yB,EALNnI,EAAQ,IAAI+H,MACZK,EAAK5yB,KAAK0yB,kBACVG,EAAK9b,EAAM2b,kBACXI,EAAK9yB,KAAKyyB,aACVM,EAAKhc,EAAM0b,aAMf,GAFAK,EAAKA,GAAMC,EACXA,EAAKA,GAAMD,EACN,OAASF,EAAO,OAASC,EAAK,CACjC,GAAIC,GAAMC,EAAI,OACdjzB,EAAQ,OAAS8yB,EAAMG,EAAKD,EAC5BH,EAAQ,OAASC,EAAMC,EAAKD,CAC7B,MAAM,GAAK,OAASA,GAAQ,OAASC,EAAK,CACzC,GAAIC,GAAMC,EAAI,OACdjzB,EAAOgzB,EACPH,EAAO,KACb,KAAW,IAAIG,GAAMC,EACf,OAEAjzB,EAAOgzB,EACPH,EAAOC,GAAMC,CACd,CAID,OAHArI,EAAMhX,UAAYmf,EAClBnI,EAAM1qB,KAAOA,EACb0qB,EAAMzoB,MAAQ/B,KAAK+B,MAAM6J,OAAOmL,EAAMhV,OAC/ByoB,CACR,CASDnqB,WACE,IAAIsyB,EAAO3yB,KAAKwT,UAAYxT,KAAKwT,UAAY,IAAM,GAC/C1T,EAAOE,KAAKF,MAAQ,GAEpBiD,EAAM4vB,EAAO7yB,EAMjB,OAPUE,KAAK+B,MAAM5F,SAGnB4G,IAAQjD,GAAQ,SAAWE,KAAK+B,MAAMN,KAAI,SAAUiF,GAClD,OAAOA,EAAKrG,UACpB,IAAS1C,KAAK,UAEHoF,CACR,CASDksB,SACE,MAAO,CACLkB,OAAQ,QACR3c,UAAWxT,KAAKwT,UAChB1T,KAAME,KAAKF,KACXiC,MAAO/B,KAAK+B,MACZ5B,OAAQH,KAAKG,OACbC,OAAQJ,KAAKI,OACbyB,SAAU7B,KAAK6B,SAElB,Gf/HHuJ,GAAQ4nB,QgBxBS,MAAMA,gBAAgBhE,GAQrCnvB,YAAYozB,GACVnyB,QACAd,KAAKqW,SAAW4c,EAChBjzB,KAAK0G,KAAO,IACb,CASDuD,MAAM9I,GACJ,IAAI8I,EAAQ,IAAI+oB,QAOhB,OANA/oB,EAAMoM,SAAWrW,KAAKqW,SAAS5U,KAAI,SAAUjB,GAAQ,OAAOA,EAAKyJ,MAAM9I,EAAQ8I,EAAS,IACpFjK,KAAK0G,OAAMuD,EAAMvD,KAAO1G,KAAK0G,KAAKuD,MAAM9I,EAAQ8I,IAChDjK,KAAKlD,OAAMmN,EAAMnN,KAAOkD,KAAKlD,MACjCmN,EAAM9J,OAASH,KAAKG,OACpB8J,EAAM7J,OAASJ,KAAKI,OACpB6J,EAAMpI,SAAW7B,KAAK6B,SACfoI,CACR,CASD5J,WACE,OAAIL,KAAK0G,KACA,IAAM1G,KAAKqW,SAAS1Y,KAAK,IAAM,KAAOqC,KAAK0G,KAAKrG,WAAa,IAE7DL,KAAKqW,SAAS1Y,KAAK,GAE7B,CASDsxB,SACE,IAAI7gB,EAAO,CACT+hB,OAAQ,UACR9Z,SAAUrW,KAAKqW,SACflW,OAAQH,KAAKG,OACbC,OAAQJ,KAAKI,OACbyB,SAAU7B,KAAK6B,UAIjB,OAFI7B,KAAK0G,OAAM0H,EAAK1H,KAAO1G,KAAK0G,MAC5B1G,KAAKlD,OAAMsR,EAAKtR,KAAOkD,KAAKlD,MACzBsR,CACR,GhBxCHhD,GAAQ8nB,OiBzBS,MAAMA,eAAelE,GAUpCnvB,cACEiB,QACAd,KAAK+B,MAAQ,EACd,CASG5F,aACF,OAAO6D,KAAK+B,MAAM5F,MACnB,CASD6E,KAAKR,GACHR,KAAK+B,MAAMf,KAAKR,EACjB,CASDyJ,MAAM9I,GACJ,IAAI8I,EAAQ,IAAIipB,OAOhB,OANAjpB,EAAM9J,OAASH,KAAKG,OACpB8J,EAAM7J,OAASJ,KAAKI,OACpB6J,EAAMpI,SAAW7B,KAAK6B,SACtB7B,KAAK+B,MAAMsF,SAAQ,SAAU7G,GAC3ByJ,EAAMjJ,KAAKR,EAAKyJ,MAAM9I,EAAQ8I,GACpC,IACWA,CACR,CASDglB,SACE,MAAO,CACLkB,OAAQ,SACRpuB,MAAO/B,KAAK+B,MACZ5B,OAAQH,KAAKG,OACbC,OAAQJ,KAAKI,OACbyB,SAAU7B,KAAK6B,SAElB,GjB5CHuJ,GAAQ+nB,QkB1BS,MAAMA,gBAAgBnE,GAUrCnvB,YAAYkD,EAAK+P,EAAUD,GACzB/R,QACAd,KAAK+C,IAAMA,EACX/C,KAAK8S,SAAWA,EAChB9S,KAAK6S,OAASA,CACf,CASDoc,SACE,MAAO,CACLkB,OAAQ,UACRptB,IAAK/C,KAAK+C,IACV+P,SAAU9S,KAAK8S,SACfD,OAAQ7S,KAAK6S,OACb1S,OAAQH,KAAKG,OACbC,OAAQJ,KAAKI,OACbyB,SAAU7B,KAAK6B,SAElB,CASDxB,WACE,OAAOL,KAAK+C,GACb,GlBlBHqI,GAAQgoB,UmB3BR,MAAuBA,kBAAkBlC,GAUvCrxB,YAAYozB,EAAMlkB,GAChBjO,MAAM,aACNd,KAAKqW,SAAW4c,EAChBjzB,KAAK+O,OAASA,GAAU,UACzB,CASD9E,MAAM9I,GACJ,IAAI8I,EAAQ,IAAImpB,UAOhB,OANAnpB,EAAM9J,OAASH,KAAKG,OACpB8J,EAAM7J,OAASJ,KAAKI,OACpB6J,EAAMpI,SAAW7B,KAAK6B,SACtBoI,EAAMoM,SAAWrW,KAAKqW,SAAS5U,KAAI,SAAUjB,GAAQ,OAAOA,EAAKyJ,MAAM9I,EAAQ8I,EAAS,IACxFA,EAAM8E,OAAS/O,KAAK+O,OACpB9E,EAAM3I,MAAQtB,KAAKsB,MAAM2I,MAAM9I,EAAQ8I,GAChCA,CACR,CASDglB,SACE,MAAO,CACLkB,OAAQ,YACR9Z,SAAUrW,KAAKqW,SACftH,OAAQ/O,KAAK+O,OACbzN,MAAOtB,KAAKsB,MACZnB,OAAQH,KAAKG,OACbC,OAAQJ,KAAKI,OACbyB,SAAU7B,KAAK6B,SAElB,CASDxB,WACE,MAAO,cAAgBL,KAAKqW,SAAS1Y,KAAK,GAC3C,GnBlCHyN,GAAQioB,OoB5BS,MAAMA,eAAerE,GASpCnvB,YAAYgQ,EAAMC,GAChBhP,QACAd,KAAK6P,KAAOA,EACZ7P,KAAK8P,MAAQA,CACd,CASD7F,MAAM9I,GACJ,IAAI8I,EAAQ,IAAIopB,OAOhB,OANAppB,EAAM4F,KAAO7P,KAAK6P,KAAK5F,MAAM9I,EAAQ8I,GACrCA,EAAM6F,MAAQ9P,KAAK8P,MAAM7F,MAAM9I,EAAQ8I,GACnCjK,KAAKD,MAAKkK,EAAMlK,IAAMC,KAAKD,IAAIkK,MAAM9I,EAAQ8I,IACjDA,EAAM9J,OAASH,KAAKG,OACpB8J,EAAM7J,OAASJ,KAAKI,OACpB6J,EAAMpI,SAAW7B,KAAK6B,SACfoI,CACR,CASDglB,SACE,IAAI7gB,EAAO,CACT+hB,OAAQ,SACRtgB,KAAM7P,KAAK6P,KACXC,MAAO9P,KAAK8P,MACZ3P,OAAQH,KAAKG,OACbC,OAAQJ,KAAKI,OACbyB,SAAU7B,KAAK6B,UAGjB,OADI7B,KAAKD,MAAKqO,EAAKrO,IAAMC,KAAKD,KACvBqO,CACR,CASD/N,WACE,OAAOL,KAAK6P,KAAKxP,WACb,IAAML,KAAK8P,MAAMzP,UACtB,GpBlCH+K,GAAQkoB,QqB7BS,MAAMA,gBAAgBtE,GAQrCnvB,YAAYE,GACVe,QACAd,KAAKD,IAAMA,CACZ,CASDM,WACE,MAAO,YAAcL,KAAKD,GAC3B,CASDkvB,SACE,MAAO,CACLkB,OAAQ,UACRpwB,IAAKC,KAAKD,IACVI,OAAQH,KAAKG,OACbC,OAAQJ,KAAKI,OACbyB,SAAU7B,KAAK6B,SAElB,GrBTHuJ,GAAQmoB,UsB/BR,MAAuBA,kBAAkBvE,GASvCnvB,YAAYE,EAAKgP,GACfjO,QACAd,KAAKD,IAAMA,EACXC,KAAK+O,OAASA,CACf,CASD1O,WACE,MAAO,eAAiBL,KAAK+O,OAAS/O,KAAK+O,OAAS,IAAM,IAAM/O,KAAKD,GACtE,CASDkvB,SACE,MAAO,CACLkB,OAAQ,YACRpwB,IAAKC,KAAKD,IACVgP,OAAQ/O,KAAK+O,OACb5O,OAAQH,KAAKG,OACbC,OAAQJ,KAAKI,OACbyB,SAAU7B,KAAK6B,SAElB,GtBVHuJ,GAAQ8e,OuB/BS,MAAMA,eAAe8E,GAQpCnvB,YAAY6G,EAAMuiB,GAChBnoB,QACAd,KAAKzE,KAAOmL,EACZ1G,KAAKipB,KAAOA,IAAQ,CACrB,CASDhf,MAAM9I,GACJ,IAAI8I,EAAQ,IAAIigB,OAOhB,OANAjgB,EAAM1O,KAAOyE,KAAKzE,KAAKuG,SAAW9B,KAAKzE,KAAK0O,MAAM9I,EAAQ8I,GAASjK,KAAKzE,KACxE0O,EAAMgf,KAAOjpB,KAAKipB,KAClBhf,EAAMmf,MAAQppB,KAAKopB,MACnBnf,EAAM9J,OAASH,KAAKG,OACpB8J,EAAM7J,OAASJ,KAAKI,OACpB6J,EAAMpI,SAAW7B,KAAK6B,SACfoI,CACR,CASDglB,SACE,MAAO,CACLkB,OAAQ,SACR50B,KAAMyE,KAAKzE,KACX0tB,KAAMjpB,KAAKipB,KACXG,MAAOppB,KAAKopB,MACZjpB,OAAQH,KAAKG,OACbC,OAAQJ,KAAKI,OACbyB,SAAU7B,KAAK6B,SAElB,GvBjBHuJ,GAAQooB,OwBhCS,MAAMA,eAAexE,GAQpCnvB,YAAY2I,GACV1H,QACAd,KAAKwI,UAAYA,CAClB,CASDyB,QACE,OAAO,IAAIupB,OAAOxzB,KAAKwI,UACxB,CASDnI,WACE,MAAO,WAAaL,KAAKwI,UAAU7K,KAAK,KACzC,CASDsxB,SACE,MAAO,CACLkB,OAAQ,SACR3nB,UAAWxI,KAAKwI,UAChBrI,OAAQH,KAAKG,OACbC,OAAQJ,KAAKI,OACbyB,SAAU7B,KAAK6B,SAElB,GxBjBHuJ,GAAQ9I,OH/BS,MAAMA,eAAe0sB,GAOpCnvB,cACEiB,QACAd,KAAKmI,KAAO,GACZnI,KAAKqC,KAAO,EACb,CAWDoxB,SAASlxB,EAAKxC,GAEZ,OADAC,KAAKmI,KAAK5F,GAAOxC,EACVC,IACR,CAMGwH,UACF,OAAOxH,KAAKyzB,QACb,CAWDC,OAAOnxB,EAAKxC,GAEV,OADAC,KAAKqC,KAAKE,GAAOxC,EACVC,IACR,CASG7D,aACF,OAAOk1B,GAAUhvB,KAAKrC,KAAKmI,MAAMhM,MAClC,CAUDqS,IAAIjM,GACF,OAAOvC,KAAKmI,KAAK5F,IAAQR,GAAMiF,IAChC,CAUDooB,IAAI7sB,GACF,OAAOA,KAAOvC,KAAKmI,IACpB,CAWDwH,QAAQC,EAAIE,GACV,OAAQF,GACN,IAAK,IACL,IAAK,KACH,OAAO5P,KAAKwO,IAAIsB,EAAMqY,MACxB,IAAK,KACH,IACIvgB,EACAC,EAFAM,EAAOnI,KAAKmI,KAGhB,GAAI,UAAY2H,EAAMhO,UAAY9B,KAAK7D,QAAU2T,EAAM3T,OACrD,OAAO4F,GAAMkqB,MACf,IAAK,IAAI1pB,KAAO4F,EAGd,GAFAP,EAAIO,EAAK5F,GACTsF,EAAIiI,EAAM3H,KAAK5F,GACXqF,EAAE+H,QAAQC,EAAI/H,GAAG+G,QACnB,OAAO7M,GAAMkqB,MAEjB,OAAOlqB,GAAMmqB,KACf,IAAK,KACH,OAAOlsB,KAAK2P,QAAQ,KAAMG,GAAOuc,SACnC,QACE,OAAOvrB,MAAM6O,QAAQC,EAAIE,GAE9B,CASDnC,YACE,OAAO,IAAI5L,GAAM+E,QAAQ9G,KAAK7D,OAC/B,CASDqyB,UACE,IACIjsB,EACAxC,EAFAgD,EAAM,IAIV,IAAKR,KAAOvC,KAAKmI,KAEf,GAAI,WADJpI,EAAMC,KAAKwO,IAAIjM,IACK0F,MAAMnG,SACxBiB,GAAOR,EAAM,IAAMxC,EAAIkI,MAAMumB,eAE7B,GACO,aADCjsB,EAEJQ,GAAOR,EAAM,IAAMxC,EAAIkI,MAAM5H,WAAa,SAG1C0C,GAAOR,EAAM,IAAMlC,SAASN,GAAO,IAO3C,OAFAgD,GAAO,IAIP,SAAS1C,SAASG,GAChB,OAAIA,EAAKuB,MACAvB,EAAKuB,MAAMN,IAAIpB,UAAU1C,KAAK6C,EAAKyO,OAAS,IAAM,KAChD,WAAazO,EAAKsB,UAAY,KAAOtB,EAAKT,IAC5C,MAEFS,EAAKH,UACb,CACF,CASD4J,MAAM9I,GACJ,IAKIoB,EALA0H,EAAQ,IAAI3H,OAMhB,IAAKC,KALL0H,EAAM9J,OAASH,KAAKG,OACpB8J,EAAM7J,OAASJ,KAAKI,OACpB6J,EAAMpI,SAAW7B,KAAK6B,SAGV7B,KAAKmI,KACf8B,EAAM9B,KAAK5F,GAAOvC,KAAKmI,KAAK5F,GAAK0H,MAAM9I,EAAQ8I,GAGjD,IAAK1H,KAAOvC,KAAKqC,KACf4H,EAAM5H,KAAKE,GAAOvC,KAAKqC,KAAKE,GAAK0H,MAAM9I,EAAQ8I,GAGjD,OAAOA,CACR,CASDglB,SACE,MAAO,CACLkB,OAAQ,SACRhoB,KAAMnI,KAAKmI,KACX9F,KAAMrC,KAAKqC,KACXlC,OAAQH,KAAKG,OACbC,OAAQJ,KAAKI,OACbyB,SAAU7B,KAAK6B,SAElB,CASDxB,WACE,IAAIiH,EAAM,CAAA,EACV,IAAK,IAAIoC,KAAQ1J,KAAKmI,KACpBb,EAAIoC,GAAQ1J,KAAKmI,KAAKuB,GAAMrJ,WAE9B,OAAO5E,KAAKC,UAAU4L,EACvB,GGlMH8D,GAAQ+e,SyBlCR,MAAuBA,iBAAiB6E,GAUtCnvB,YAAY/C,EAAM+O,EAAQof,GACxBnqB,QACAd,KAAKlD,KAAOA,EACZkD,KAAK6L,OAASA,EACd7L,KAAKsB,MAAQ2pB,EACT,mBAAqBpf,IAAQ7L,KAAKS,GAAKoL,EAC5C,CASG8nB,YACF,OAAO3zB,KAAK6L,OAAO1P,MACpB,CASGgsB,WACF,MAAO,YAAcnoB,KAAKlD,IAC3B,CASDmN,MAAM9I,GACJ,GAAInB,KAAKS,GACP,IAAIwJ,EAAQ,IAAIkgB,SACdnqB,KAAKlD,KACHkD,KAAKS,SAELwJ,EAAQ,IAAIkgB,SAASnqB,KAAKlD,OACxB+O,OAAS7L,KAAK6L,OAAO5B,MAAM9I,EAAQ8I,GACzCA,EAAM3I,MAAQtB,KAAKsB,MAAM2I,MAAM9I,EAAQ8I,GAKzC,OAHAA,EAAM9J,OAASH,KAAKG,OACpB8J,EAAM7J,OAASJ,KAAKI,OACpB6J,EAAMpI,SAAW7B,KAAK6B,SACfoI,CACR,CASD5J,WACE,OAAIL,KAAKS,GACAT,KAAKlD,KACR,IACAkD,KAAKS,GAAGJ,WACPqH,MAAM,2BACNnL,MAAM,GACNoB,KAAK,MACN,IAEGqC,KAAKlD,KACR,IACAkD,KAAK6L,OAAO9J,MAAMpE,KAAK,MACvB,GAEP,CASDsxB,SACE,IAAI7gB,EAAO,CACT+hB,OAAQ,WACRrzB,KAAMkD,KAAKlD,KACXqD,OAAQH,KAAKG,OACbC,OAAQJ,KAAKI,OACbyB,SAAU7B,KAAK6B,UAQjB,OANI7B,KAAKS,GACP2N,EAAK3N,GAAKT,KAAKS,IAEf2N,EAAKvC,OAAS7L,KAAK6L,OACnBuC,EAAK9M,MAAQtB,KAAKsB,OAEb8M,CACR,GzB1EHhD,GAAQG,S0BnCR,MAAuBA,iBAAiByjB,GAStCnvB,YAAYozB,EAAMvsB,GAChB5F,QACAd,KAAKqW,SAAW4c,EAChBjzB,KAAK0G,KAAOA,CACb,CASDuD,MAAM9I,GACJ,IAAI8I,EAAQ,IAAIsB,SAASvL,KAAKqW,UAQ9B,OAPApM,EAAMnN,KAAOkD,KAAKlD,KACdkD,KAAKwX,UAASvN,EAAMuN,QAAUxX,KAAKwX,SACvCvN,EAAM9J,OAASH,KAAKG,OACpB8J,EAAM7J,OAASJ,KAAKI,OACpB6J,EAAMpI,SAAW7B,KAAK6B,SACtBoI,EAAMoM,SAAWrW,KAAKqW,SAAS5U,KAAI,SAAUjB,GAAQ,OAAOA,EAAKyJ,MAAM9I,EAAQ8I,EAAS,IACpFjK,KAAK0G,OAAMuD,EAAMvD,KAAO1G,KAAK0G,KAAKuD,MAAM9I,EAAQ8I,IAC7CA,CACR,CASDglB,SACE,IAAI7gB,EAAO,CACT+hB,OAAQ,WACR9Z,SAAUrW,KAAKqW,SACfvZ,KAAMkD,KAAKlD,KACXqD,OAAQH,KAAKG,OACbC,OAAQJ,KAAKI,OACbyB,SAAU7B,KAAK6B,UAIjB,OAFI7B,KAAK0G,OAAM0H,EAAK1H,KAAO1G,KAAK0G,MAC5B1G,KAAKwX,UAASpJ,EAAKoJ,QAAUxX,KAAKwX,SAC/BpJ,CACR,CASD/N,WACE,MAAO,YAAcL,KAAKqW,SAAS1Y,KAAK,IAAM,KAAOqC,KAAK0G,KAAO,GAClE,CAWDiJ,QAAQC,EAAIE,EAAO/P,GACjB,OAAOC,KAAK0G,KAAKiJ,QAAQC,EAAIE,EAAO/P,EACrC,G1BzCHqL,GAAQ6L,S2BnCR,MAAuBA,iBAAiB+X,GAQtCnvB,YAAYozB,GACVnyB,QACAd,KAAKgJ,UAAW,EAChBhJ,KAAKqW,SAAW4c,EAChBjzB,KAAKiY,UAAW,CACjB,CASD5X,WACE,OAAOL,KAAKqW,SAAS1Y,KAAK,KAAOqC,KAAKiY,SAAW,aAAe,GACjE,CASGlP,oBACF,OAAO/I,KAAKD,MAAQC,KAAKD,IAAIuD,OAAO,EAAG,GAAGS,QAAQ,IACnD,CASDkG,MAAM9I,GACJ,IAAI8I,EAAQ,IAAIgN,SAQhB,OAPAhN,EAAM9J,OAASH,KAAKG,OACpB8J,EAAM7J,OAASJ,KAAKI,OACpB6J,EAAMpI,SAAW7B,KAAK6B,SACtBoI,EAAMjB,SAAWhJ,KAAKgJ,SACtBiB,EAAMlK,IAAMC,KAAKD,IACjBkK,EAAMoM,SAAWrW,KAAKqW,SAAS5U,KAAI,SAAUjB,GAAQ,OAAOA,EAAKyJ,MAAM9I,EAAQ8I,EAAS,IACxFA,EAAMgO,SAAWjY,KAAKiY,SACfhO,CACR,CASDglB,SACE,MAAO,CACLkB,OAAQ,WACRnnB,SAAUhJ,KAAKgJ,SACfqN,SAAUrW,KAAKqW,SACf4B,SAAUjY,KAAKiY,SACflY,IAAKC,KAAKD,IACVI,OAAQH,KAAKG,OACbC,OAAQJ,KAAKI,OACbyB,SAAU7B,KAAK6B,SAElB,G3BtCHuJ,GAAQhE,WAAakqB,GACrBlmB,GAAQ0hB,UDtCR,MAAuBA,kBAAkB/qB,GAOvClC,cACEiB,QACAd,KAAKyB,IAAM,EACZ,CAWDgvB,sBAAsB/pB,GACpB,IAAIqP,EAAO,IAAI+W,UACXlrB,EAAM8E,EAAK3E,MAAM5F,OACrB4Z,EAAK5V,OAASuG,EAAKvG,OACnB4V,EAAK3V,OAASsG,EAAKtG,OACnB2V,EAAK9G,OAASvI,EAAKuI,OACnB,IAAK,IAAI/S,EAAI,EAAGA,EAAI0F,IAAO1F,EACzB6Z,EAAK/U,KAAK0F,EAAK3E,MAAM7F,IAEvB,OAAO6Z,CACR,CASD9L,MAAM9I,GACJ,IAAI8I,EAAQnJ,MAAMmJ,MAAM9I,GAExB,IAAK,IAAIoB,KADT0H,EAAMxI,IAAM,GACIzB,KAAKyB,IACnBwI,EAAMxI,IAAIc,GAAOvC,KAAKyB,IAAIc,GAAK0H,MAAM9I,EAAQ8I,GAM/C,OAJAA,EAAMgF,OAASjP,KAAKiP,OACpBhF,EAAM9J,OAASH,KAAKG,OACpB8J,EAAM7J,OAASJ,KAAKI,OACpB6J,EAAMpI,SAAW7B,KAAK6B,SACfoI,CACR,CASDglB,SACE,MAAO,CACLkB,OAAQ,YACR1uB,IAAKzB,KAAKyB,IACVwN,OAAQjP,KAAKiP,OACbtI,SAAU3G,KAAK2G,SACfxG,OAAQH,KAAKG,OACbC,OAAQJ,KAAKI,OACbyB,SAAU7B,KAAK6B,SACfE,MAAO/B,KAAK+B,MAEf,GChCHqJ,GAAQwoB,Q4BxCS,MAAMA,gBAAgB5E,GAOrCnvB,cACEiB,OACD,CAMGiB,YACF,OAAO/B,KAAKsB,MAAMS,KACnB,CASDkI,MAAM9I,GACJ,IAAI8I,EAAQ,IAAI2pB,QAKhB,OAJA3pB,EAAM3I,MAAQtB,KAAKsB,MAAM2I,MAAM9I,EAAQ8I,GACvCA,EAAM9J,OAASH,KAAKG,OACpB8J,EAAM7J,OAASJ,KAAKI,OACpB6J,EAAMpI,SAAW7B,KAAK6B,SACfoI,CACR,CASD5J,WACE,MAAO,QACR,CASD4uB,SACE,MAAO,CACLkB,OAAQ,UACR7uB,MAAOtB,KAAKsB,MACZnB,OAAQH,KAAKG,OACbC,OAAQJ,KAAKI,OACbyzB,OAAQ7zB,KAAK6zB,OAEhB,G5BpBHzoB,GAAQ8lB,OAASD,GACjB7lB,GAAQ0oB,S6B1CR,MAAuBA,iBAAiB5C,GAQtCrxB,YAAYqU,GACVpT,MAAM,YACNd,KAAKkU,UAAYA,CAClB,CASDjK,MAAM9I,GACJ,IAAI8I,EAAQ,IAAI6pB,SAMhB,OALA7pB,EAAMiK,UAAYlU,KAAKkU,UAAUjK,MAAM9I,EAAQ8I,GAC/CA,EAAM3I,MAAQtB,KAAKsB,MAAM2I,MAAM9I,EAAQ8I,GACvCA,EAAM9J,OAASH,KAAKG,OACpB8J,EAAM7J,OAASJ,KAAKI,OACpB6J,EAAMpI,SAAW7B,KAAK6B,SACfoI,CACR,CASDglB,SACE,MAAO,CACLkB,OAAQ,WACRjc,UAAWlU,KAAKkU,UAChB5S,MAAOtB,KAAKsB,MACZnB,OAAQH,KAAKG,OACbC,OAAQJ,KAAKI,OACbyB,SAAU7B,KAAK6B,SAElB,CASDxB,WACE,MAAO,aAAeL,KAAKkU,SAC5B,G7BTI6f,GAAC7H,KAAO,IAAI9gB,GAAQtE,SAAQ,GAC5BitB,GAAC9H,MAAQ,IAAI7gB,GAAQtE,SAAQ,GACpCsE,GAAQpE,KAAO,IAAIoE,GAAQmmB;;;;;;A8BhD3B,MAAMyC,mBAAmB1tB,MACvBzG,YAAYiO,GACVhN,QACAd,KAAKlD,KAAO,aACZkD,KAAK+F,QAAU+H,EACXxH,MAAMwoB,mBACRxoB,MAAMwoB,kBAAkB9uB,KAAMg0B,WAEjC,EAUH,MAAMC,oBAAoB3tB,MACxBzG,YAAYiO,GACVhN,QACAd,KAAKlD,KAAO,cACZkD,KAAK+F,QAAU+H,EACXxH,MAAMwoB,mBACRxoB,MAAMwoB,kBAAkB9uB,KAAMg0B,WAEjC,SCrBH,IAAIE,GAAQ,CACVC,IAAO,KACLC,GAAM,KACNC,GAAM,KACNC,KAAQ,KACR,SAAU,KACV,KAAM,MAGVlpB,GAA2B,MAAMmpB,MAS/B10B,YAAYkD,EAAKqC,GASf,SAASgP,QAAQrR,EAAKhD,EAAKy0B,EAAQvmB,GACjC,IAAIwmB,EAAYxmB,EAAE3R,YAAY,KAAMk4B,GAAUvmB,EAAE3R,YAAY,KAAMk4B,GAC9DE,EAAazmB,EAAE3R,YAAY,KAAMk4B,GACjCt4B,EAAI+R,EAAE3R,YAAY,KAAMk4B,GACxBG,EAAS,EACTC,EAAS,EAEb,IAAKF,GAAcA,EAAax4B,EAC9B,KAAOA,GAAKs4B,GAAQ,CAIlB,GAHI,KAAOvmB,EAAE/R,KAAI04B,EAASA,IAAWA,KACjC,KAAO3mB,EAAE/R,KAAIy4B,EAASA,IAAWA,KAEjC,KAAO1mB,EAAE/R,IAAM,KAAO+R,EAAE/R,EAAI,GAAI,CAClCu4B,GAAaG,IAAWD,EACxB,KACD,GACCz4B,CACH,CAGH,OAAOu4B,EACH1xB,EACU,MAARhD,GAAe,aAAa0tB,KAAK1qB,GAAQA,EAAImC,QAAQ,KAAM,MAAQnF,EAAM,IAErF,CA/BIC,KAAK60B,MAAQ,GACb70B,KAAK80B,YAAc,GACnB90B,KAAK+0B,SAAW,KAChB/0B,KAAKG,OAAS,EACdH,KAAKI,OAAS,EA6BV,UAAY2C,EAAI0U,OAAO,KAAI1U,EAAMA,EAAIxG,MAAM,IAE/CyD,KAAK+C,IAAMA,EACRmC,QAAQ,OAAQ,MAChBA,QAAQ,SAAU,MAClBA,QAAQ,UAAW,MACnBA,QAAQ,yDAA0DkP,SAClElP,QAAQ,qBAAsBkP,QAClC,CAMDnU,UAIE,IAHA,IAAI+0B,EACA7wB,EAAMnE,KAAK+C,IACXpB,EAAM,GACH,QAAUqzB,EAAMh1B,KAAKi1B,QAAQn1B,MAClC6B,EAAIX,KAAKg0B,EAAI/0B,WAGf,OADAD,KAAK+C,IAAMoB,EACJxC,EAAIiK,OAAOopB,EAAI/0B,WAAWtC,KAAK,KACvC,CAUDu3B,UAAUxlB,GAER,IADA,IAAIylB,EAAQzlB,EAAI1P,KAAK60B,MAAM14B,OACpBg5B,KAAU,GAAGn1B,KAAK60B,MAAM7zB,KAAKhB,KAAKwD,WACzC,OAAOxD,KAAK60B,QAAQnlB,EACrB,CASDrM,KAAKzB,GACH,IAAIwzB,EAAQxzB,EAAI,GAChBA,EAAMwzB,EAAQA,EAAMj5B,OAASyF,EAC7B5B,KAAK+C,IAAM/C,KAAK+C,IAAIO,OAAO1B,GACvBwzB,EACFp1B,KAAKq1B,KAAKD,GAEVp1B,KAAKI,QAAUwB,CAElB,CASDyzB,KAAKtyB,GACH,IAAIwC,EAAQxC,EAAI2E,MAAM,OAClB4tB,EAAMvyB,EAAIzG,YAAY,MAEtBiJ,IAAOvF,KAAKG,QAAUoF,EAAMpJ,QAChC6D,KAAKI,QAAUk1B,EACXvyB,EAAI5G,OAASm5B,EACbt1B,KAAKI,OAAS2C,EAAI5G,MACvB,CASD84B,OACE,IAAID,EAAMh1B,KAAKu1B,WAAav1B,KAAKwD,UAEjC,OADAxD,KAAKw1B,KAAOR,EACLA,CACR,CASDS,mBACE,IAAIT,EAAMh1B,KAAK60B,MAAM70B,KAAK60B,MAAM14B,OAAS,IAAM6D,KAAKw1B,KACpD,OAAQR,GAAOA,EAAIl1B,MAEjB,IAAK,QACH,OAAO,GAAKk1B,EAAIj1B,IAAI+D,IAAI3H,OAE1B,IAAK,IAEL,IAAK,IACH,OAAO,EAEX,OAAO,CACR,CASDqH,UACE,IAAIpD,EAASJ,KAAKI,OACdyF,EAAO7F,KAAKG,OACZ60B,EAAMh1B,KAAK01B,OACR11B,KAAKgH,QACLhH,KAAKvD,OACLuD,KAAK21B,WACL31B,KAAK41B,YACL51B,KAAKoU,WACLpU,KAAK+T,WACL/T,KAAK0D,WACL1D,KAAK61B,aACL71B,KAAKwX,WACLxX,KAAK81B,YACL91B,KAAK8T,UACL9T,KAAK+1B,YACL/1B,KAAKg2B,SACLh2B,KAAKi2B,SACLj2B,KAAKyJ,SACLzJ,KAAKqK,UACLrK,KAAKsM,QACLtM,KAAKk2B,WACLl2B,KAAKm2B,WACLn2B,KAAKo2B,WACLp2B,KAAKmC,SACLnC,KAAK4P,MACL,WACD,IAAIymB,EAAQr2B,KAAKs2B,MAOjB,OALID,IACFj2B,EAASi2B,EAAMj2B,OACfyF,EAAOwwB,EAAMl2B,QAGRk2B,CACR,EAAEvnB,KAAK9O,OACLA,KAAKkW,SACLlW,KAAKqE,WAKZ,OAHA2wB,EAAI70B,OAAS0F,EACbmvB,EAAI50B,OAASA,EAEN40B,CACR,CASDuB,OACE,OAAOv2B,KAAKk1B,UAAU,EACvB,CASDK,UACE,OAAOv1B,KAAK60B,MAAM3rB,OACnB,CAMDwsB,MACE,IAAI11B,KAAK+C,IAAI5G,OACb,OAAI6D,KAAK80B,YAAY34B,QACnB6D,KAAK80B,YAAY5rB,QACV,IAAItJ,EAAM,YAEV,IAAIA,EAAM,MAEpB,CAMDg2B,WACE,IAAIY,EACJ,GAAKx2B,KAAK4V,MACV,OAAI4gB,EAAW,0BAA0BC,KAAKz2B,KAAK+C,OACjD/C,KAAKqD,KAAKmzB,GACH,IAAI52B,EAAM,UAAW,IAAImC,GAAMwH,QAAQitB,EAAS,WAFzD,CAID,CAMD/5B,MACE,IAAI+5B,EACJ,GAAIA,EAAW,WAAWC,KAAKz2B,KAAK+C,KAElC,OADA/C,KAAKqD,KAAKmzB,GACH,IAAI52B,EAAM,IAEpB,CAMD02B,MACE,GAAI,MAAQt2B,KAAK+C,IAAI,GAAI,CAKvB,MAJE/C,KAAKG,OACPH,KAAKqD,KAAK,GAEVrD,KAAKI,OAAS,EACPJ,KAAKkW,UAEZ,OAAOlW,KAAKwD,SACb,CACF,CAMD0S,QACE,IAAIsgB,EACJ,GAAIA,EAAW,YAAYC,KAAKz2B,KAAK+C,KAEnC,OADA/C,KAAKqD,KAAKmzB,GACH,IAAI52B,EAAM,QAEpB,CAMD8D,UACE,IAAI8yB,EACJ,GAAIA,EAAW,eAAeC,KAAKz2B,KAAK+C,KAAM,CAC5C,IAAI2zB,EAAIF,EAAS,GAEjB,OADAx2B,KAAKqD,KAAKmzB,GACH,IAAI52B,EAAM,QAAS,IAAImC,GAAMwH,QAAQmtB,GAC7C,CACF,CAMDlf,UAEE,IAAIgf,EACJ,GAAIA,EAAW,gBAAgBC,KAAKz2B,KAAK+C,KAAM,CAC7C/C,KAAKqD,KAAKmzB,GAKV,IAJA,IAAIE,EAGAl2B,EAFAm2B,EAAS,EACT/hB,EAAM,GAEH8hB,EAAI12B,KAAK+C,IAAI,IAAI,CAEtB,OADA/C,KAAK+C,IAAM/C,KAAK+C,IAAIO,OAAO,GACnBozB,GACN,IAAK,MAAOC,EAAQ,MACpB,IAAK,MAAOA,EAAQ,MACpB,IAAK,KACL,IAAK,OACD32B,KAAKG,OAIX,GADAyU,GAAO8hB,GACFC,EAAQ,KACd,CAID,OAHA/hB,EAAMA,EAAI1P,QAAQ,QAAS,KAC3B1E,EAAO,IAAIuB,GAAMwH,QAAQqL,IACpBA,KAAM,EACJ,IAAIhV,EAAM,UAAWY,EAC7B,CACF,CAMDq1B,YACE,IAAIW,EACJ,GAAIA,EAAW,oBAAoBC,KAAKz2B,KAAK+C,KAE3C,OADA/C,KAAKqD,KAAKmzB,GACH,IAAI52B,EAAM,QAAS,IAAImC,GAAMwH,QAAQ,cAE/C,CAMDysB,QACE,IAAIQ,EACJ,GAAIA,EAAW,UAAUC,KAAKz2B,KAAK+C,KAAM,CACvC/C,KAAKqD,KAAK,GACV,IAAI2yB,EAAQQ,EAAS,GACrB,OAAO,IAAI52B,EAAMo2B,EAAOA,EACzB,CACF,CAMDC,QACE,IAAIO,EACJ,GAAIA,EAAW,kBAAkBC,KAAKz2B,KAAK+C,KAAM,CAC/C,IAAIkzB,EAAQO,EAAS,GACrBx2B,KAAKqD,KAAKmzB,GACN,KAAOP,IAAOj2B,KAAK4V,OAAQ,GAC/B,IAAIof,EAAM,IAAIp1B,EAAMq2B,EAAOA,GAE3B,OADAjB,EAAI9e,MAAQsgB,EAAS,GACdxB,CACR,CACF,CAMDhuB,OACE,IAAIwvB,EAEJ,GAAIA,EAAW,kBAAkBC,KAAKz2B,KAAK+C,KAOzC,OANA/C,KAAKqD,KAAKmzB,GACNx2B,KAAKy1B,mBACD,IAAI71B,EAAM,QAAS,IAAImC,GAAMwF,MAAMivB,EAAS,KAE5C,IAAI52B,EAAM,OAAQmC,GAAMiF,KAInC,CAWD2uB,UACE,IAAIa,EAEJ,GAAIA,EAAW,+CAA+CC,KAAKz2B,KAAK+C,KAAM,CAC5E,IAAI4yB,EAAUa,EAAS,GAOvB,OANAx2B,KAAKqD,KAAKmzB,GACNx2B,KAAKy1B,mBACD,IAAI71B,EAAM,QAAS,IAAImC,GAAMwF,MAAMivB,EAAS,KAE5C,IAAI52B,EAAM+1B,EAASA,EAG5B,CACF,CAaDO,UACE,IAAIM,EACAxB,EACJ,GAAIwB,EAAW,8DAA8DC,KAAKz2B,KAAK+C,KAAM,CAC3F,IAAI6M,EAAK4mB,EAAS,GASlB,OARAx2B,KAAKqD,KAAKmzB,IAERxB,EADEh1B,KAAKy1B,mBACD,IAAI71B,EAAM,QAAS,IAAImC,GAAMwF,MAAMivB,EAAS,KAG5C,IAAI52B,EADVgQ,EAAKskB,GAAMtkB,IAAOA,EACEA,IAElBsG,MAAQsgB,EAAS,GACdxB,CACR,CACF,CAuCDplB,KACE,IAAI4mB,EACJ,GAAIA,EAAW,wEAAwEC,KAAKz2B,KAAK+C,KAAM,CACrG,IAAI6M,EAAK4mB,EAAS,GAClBx2B,KAAKqD,KAAKmzB,GAEV,IAAIxB,EAAM,IAAIp1B,EADdgQ,EAAKskB,GAAMtkB,IAAOA,EACMA,GAGxB,OAFAolB,EAAI9e,MAAQsgB,EAAS,GACrBx2B,KAAK4V,OAAQ,EACNof,CACR,CACF,CAMDc,WACE,IAAId,EACJ,GAAI,KAAOh1B,KAAK+C,IAAI,IAAM,KAAO/C,KAAK+C,IAAI,GAIxC,OAHA/C,KAAKqD,KAAK,IACV2xB,EAAM,IAAIp1B,EAAM,WAAY,IAAImC,GAAMwF,MAAM,eACxCqvB,WAAY,EACT5B,CAEV,CAMDlhB,SACE,IAAI0iB,EACJ,GAAIA,EAAW,gDAAgDC,KAAKz2B,KAAK+C,KAAM,CAC7E/C,KAAKqD,KAAKmzB,GACP,IAAC5H,EAAS4H,EAAS,GAClB12B,EAAO02B,EAAS,GAEpB,OAAQ12B,GACN,IAAK,UACL,IAAK,SACL,IAAK,UACL,IAAK,YACL,IAAK,QACL,IAAK,QACL,IAAK,WACH,OAAO,IAAIF,EAAME,GACnB,IAAK,WACH,OAAO,IAAIF,EAAM,iBACnB,IAAK,QACH,OAAO,IAAIA,EAAM,WACnB,IAAK,SACL,IAAK,UACH,OAAO,IAAIA,EAAM,UACnB,IAAK,YACH,OAAO,IAAIA,EAAME,EAAM8uB,GACzB,QACE,OAAO,IAAIhvB,EAAM,SAAWgvB,EAAS,IAAMA,EAAS,IAAM9uB,EAAOA,GAEtE,CACF,CAMDsU,UAEE,GAAI,KAAOpU,KAAK+C,IAAI,IAAM,KAAO/C,KAAK+C,IAAI,GAIxC,OAFK,IADDnE,EAAMoB,KAAK+C,IAAIgB,QAAQ,SACZnF,EAAMoB,KAAK+C,IAAI5G,QAC9B6D,KAAKqD,KAAKzE,GACHoB,KAAKwD,UAId,GAAI,KAAOxD,KAAK+C,IAAI,IAAM,KAAO/C,KAAK+C,IAAI,GAAI,CAC5C,IAAInE,GACC,IADDA,EAAMoB,KAAK+C,IAAIgB,QAAQ,SACZnF,EAAMoB,KAAK+C,IAAI5G,QAC9B,IAAI4G,EAAM/C,KAAK+C,IAAIO,OAAO,EAAG1E,EAAM,GAC/B2G,EAAQxC,EAAIyC,MAAM,SAASrJ,OAAS,EACpC2W,GAAW,EACXD,GAAS,EASb,OARA7S,KAAKG,QAAUoF,EACfvF,KAAKqD,KAAKzE,EAAM,GAEZ,KAAOmE,EAAI,KACbA,EAAMA,EAAImC,QAAQ,KAAM,KACxB4N,GAAW,GAET9S,KAAKw1B,MAAQ,KAAOx1B,KAAKw1B,KAAK11B,OAAM+S,GAAS,GAC1C,IAAIjT,EAAM,UAAW,IAAImC,GAAMoxB,QAAQpwB,EAAK+P,EAAUD,GAC9D,CACF,CAMDsjB,UACE,IAAIK,EACJ,GAAIA,EAAW,0BAA0BC,KAAKz2B,KAAK+C,KAAM,CACvD,IAAIhD,EAAM,IAAIgC,GAAM+E,QAAQ,QAAU0vB,EAAS,IAC/Cx2B,KAAKqD,KAAKmzB,GACV,IAAIxB,EAAM,IAAIp1B,EAAM,UAAWG,GAE/B,OADAi1B,EAAI9e,MAAQsgB,EAAS,GACdxB,CACR,CACF,CAMDoB,UACE,IAAII,EACJ,GAAIA,EAAW,yCAAyCC,KAAKz2B,KAAK+C,KAEhE,OADA/C,KAAKqD,KAAKmzB,GACH,IAAI52B,EAAM,UAAW,IAAImC,GAAMwH,QAAQitB,EAAS,IAE1D,CAMDT,WACE,IAAIS,EACJ,GAAIA,EAAW,qCAAqCC,KAAKz2B,KAAK+C,KAAM,CAClE,IAAIjG,EAAO05B,EAAS,GACpBx2B,KAAKqD,KAAKmzB,GACVx2B,KAAK4V,MAAQ,OAAS9Y,EACtB,IAAIk4B,EAAM,IAAIp1B,EAAM,WAAY,IAAImC,GAAMwF,MAAMzK,IAEhD,OADAk4B,EAAI9e,MAAQsgB,EAAS,GACdxB,CACR,CACF,CAMD7yB,QACE,IAAIq0B,EACJ,GAAIA,EAAW,kCAAkCC,KAAKz2B,KAAK+C,KAEzD,OADA/C,KAAKqD,KAAKmzB,GACH,IAAI52B,EAAM,QAAS,IAAImC,GAAMwF,MAAMivB,EAAS,IAEtD,CAMDziB,UACE,IAAIyiB,EAAUpnB,EAsBd,GAnBIpP,KAAK+0B,SACPyB,EAAWx2B,KAAK+0B,SAAS0B,KAAKz2B,KAAK+C,OAKnCyzB,GADApnB,EAAK,oBACSqnB,KAAKz2B,KAAK+C,QAGPyzB,EAAS,GAAGr6B,SAE3Bq6B,GADApnB,EAAK,eACSqnB,KAAKz2B,KAAK+C,MAItByzB,GAAYA,EAAS,GAAGr6B,SAAQ6D,KAAK+0B,SAAW3lB,IAIlDonB,EAAU,CACZ,IAAIxB,EACA7iB,EAAUqkB,EAAS,GAAGr6B,OAG1B,GADA6D,KAAKqD,KAAKmzB,GACU,MAAhBx2B,KAAK+C,IAAI,IAA8B,OAAhB/C,KAAK+C,IAAI,GAClC,MAAM,IAAI8zB,YAAmB,4EAI/B,GAAI,MAAQ72B,KAAK+C,IAAI,GAAI,OAAO/C,KAAKwD,UAGrC,GAAIxD,KAAK80B,YAAY34B,QAAUgW,EAAUnS,KAAK80B,YAAY,GAAI,CAC5D,KAAO90B,KAAK80B,YAAY34B,QAAU6D,KAAK80B,YAAY,GAAK3iB,GACtDnS,KAAK60B,MAAM7zB,KAAK,IAAIpB,EAAM,YAC1BI,KAAK80B,YAAY5rB,QAEnB8rB,EAAMh1B,KAAK60B,MAAM/jB,KAEzB,MAAiBqB,GAAWA,GAAWnS,KAAK80B,YAAY,IAChD90B,KAAK80B,YAAY7rB,QAAQkJ,GACzB6iB,EAAM,IAAIp1B,EAAM,WAGhBo1B,EAAM,IAAIp1B,EAAM,WAGlB,OAAOo1B,CACR,CACF,CAMD1oB,OACE,IAAIkqB,EACJ,GAAIA,EAAW,gDAAgDC,KAAKz2B,KAAK+C,KAAM,CAC7E/C,KAAKqD,KAAKmzB,GACV,IAAI9mB,EAAI0F,WAAWohB,EAAS,IACxB,KAAOA,EAAS,KAAI9mB,GAAKA,GAC7B,IAAIlP,EAAO,IAAIuB,GAAMgF,KAAK2I,EAAG8mB,EAAS,IAEtC,OADAh2B,EAAKsD,IAAM0yB,EAAS,GACb,IAAI52B,EAAM,OAAQY,EAC1B,CACF,CAMD6J,SACE,IAAImsB,EACJ,GAAIA,EAAW,2BAA2BC,KAAKz2B,KAAK+C,KAAM,CACxD,IAAIA,EAAMyzB,EAAS,GACftE,EAAQsE,EAAS,GAAG,GAGxB,OAFAx2B,KAAKqD,KAAKmzB,GACVzzB,EAAMA,EAAIxG,MAAM,GAAI,GAAG2I,QAAQ,OAAQ,MAChC,IAAItF,EAAM,SAAU,IAAImC,GAAM8E,OAAO9D,EAAKmvB,GAClD,CACF,CAMDzoB,QACE,OAAOzJ,KAAK82B,YACP92B,KAAK+2B,UACL/2B,KAAKsK,QACLtK,KAAKoQ,OACLpQ,KAAKg3B,MACLh3B,KAAK0P,GACX,CAMDA,IACE,IAAI8mB,EACJ,GAAIA,EAAW,2BAA2BC,KAAKz2B,KAAK+C,KAAM,CACxD/C,KAAKqD,KAAKmzB,GACV,IAAI9mB,EAAIunB,SAAST,EAAS,GAAKA,EAAS,GAAI,IACxC/sB,EAAQ,IAAI1H,GAAM4I,KAAK+E,EAAGA,EAAGA,EAAG,GAEpC,OADAjG,EAAM3F,IAAM0yB,EAAS,GACd,IAAI52B,EAAM,QAAS6J,EAC3B,CACF,CAMDutB,KACE,IAAIR,EACJ,GAAIA,EAAW,2BAA2BC,KAAKz2B,KAAK+C,KAAM,CACxD/C,KAAKqD,KAAKmzB,GACV,IAAI9mB,EAAIunB,SAAST,EAAS,GAAI,IAC1B/sB,EAAQ,IAAI1H,GAAM4I,KAAK+E,EAAGA,EAAGA,EAAG,GAEpC,OADAjG,EAAM3F,IAAM0yB,EAAS,GACd,IAAI52B,EAAM,QAAS6J,EAC3B,CACF,CAMD2G,MACE,IAAIomB,EACJ,GAAIA,EAAW,2BAA2BC,KAAKz2B,KAAK+C,KAAM,CACxD/C,KAAKqD,KAAKmzB,GACV,IAAIpmB,EAAMomB,EAAS,GACf5rB,EAAIqsB,SAAS7mB,EAAI,GAAKA,EAAI,GAAI,IAC9BvF,EAAIosB,SAAS7mB,EAAI,GAAKA,EAAI,GAAI,IAC9BvI,EAAIovB,SAAS7mB,EAAI,GAAKA,EAAI,GAAI,IAC9B3G,EAAQ,IAAI1H,GAAM4I,KAAKC,EAAGC,EAAGhD,EAAG,GAEpC,OADA4B,EAAM3F,IAAM0yB,EAAS,GACd,IAAI52B,EAAM,QAAS6J,EAC3B,CACF,CAMDa,OACE,IAAIksB,EACJ,GAAIA,EAAW,2BAA2BC,KAAKz2B,KAAK+C,KAAM,CACxD/C,KAAKqD,KAAKmzB,GACV,IAAIpmB,EAAMomB,EAAS,GACf5rB,EAAIqsB,SAAS7mB,EAAI,GAAKA,EAAI,GAAI,IAC9BvF,EAAIosB,SAAS7mB,EAAI,GAAKA,EAAI,GAAI,IAC9BvI,EAAIovB,SAAS7mB,EAAI,GAAKA,EAAI,GAAI,IAC9BxI,EAAIqvB,SAAS7mB,EAAI,GAAKA,EAAI,GAAI,IAC9B3G,EAAQ,IAAI1H,GAAM4I,KAAKC,EAAGC,EAAGhD,EAAGD,EAAI,KAExC,OADA6B,EAAM3F,IAAM0yB,EAAS,GACd,IAAI52B,EAAM,QAAS6J,EAC3B,CACF,CAMDstB,SACE,IAAIP,EACJ,GAAIA,EAAW,2BAA2BC,KAAKz2B,KAAK+C,KAAM,CACxD/C,KAAKqD,KAAKmzB,GACV,IAAIpmB,EAAMomB,EAAS,GACf5rB,EAAIqsB,SAAS7mB,EAAI9M,OAAO,EAAG,GAAI,IAC/BuH,EAAIosB,SAAS7mB,EAAI9M,OAAO,EAAG,GAAI,IAC/BuE,EAAIovB,SAAS7mB,EAAI9M,OAAO,EAAG,GAAI,IAC/BmG,EAAQ,IAAI1H,GAAM4I,KAAKC,EAAGC,EAAGhD,EAAG,GAEpC,OADA4B,EAAM3F,IAAM0yB,EAAS,GACd,IAAI52B,EAAM,QAAS6J,EAC3B,CACF,CAMDqtB,WACE,IAAIN,EACJ,GAAIA,EAAW,2BAA2BC,KAAKz2B,KAAK+C,KAAM,CACxD/C,KAAKqD,KAAKmzB,GACV,IAAIpmB,EAAMomB,EAAS,GACf5rB,EAAIqsB,SAAS7mB,EAAI9M,OAAO,EAAG,GAAI,IAC/BuH,EAAIosB,SAAS7mB,EAAI9M,OAAO,EAAG,GAAI,IAC/BuE,EAAIovB,SAAS7mB,EAAI9M,OAAO,EAAG,GAAI,IAC/BsE,EAAIqvB,SAAS7mB,EAAI9M,OAAO,EAAG,GAAI,IAC/BmG,EAAQ,IAAI1H,GAAM4I,KAAKC,EAAGC,EAAGhD,EAAGD,EAAI,KAExC,OADA6B,EAAM3F,IAAM0yB,EAAS,GACd,IAAI52B,EAAM,QAAS6J,EAC3B,CACF,CAMDpF,WACE,IAAImyB,EACJ,GAAIA,EAAW,qCAAqCC,KAAKz2B,KAAK+C,KAAM,CAClE,IAAIsB,EAAWmyB,EAAS,GAExB,OADAx2B,KAAKqD,KAAKmzB,GACH,IAAI52B,EAAM,WAAYyE,EAC9B,CACF,GCp3BH,IAAI6yB,GAAiF,QAA5D,IAAIC,YAAY,IAAIC,WAAW,CAAC,IAAM,MAAOC,QAAQ,GAM5E,SAASC,MAAMC,EAASC,GACtB,IAAIrzB,EAAMqzB,EAAY,EACtB,OAAOD,EAAUpzB,GAAOA,CACzB,CAGD,SAASszB,OAAO/nB,GAGd,IAFA,IAAIzB,EAAI,GACJ/R,EAAI,EACDA,KACL+R,IAAMyB,KAAOxT,GAAK,GAAK,IAAKmE,SAAS,IAEvC,OAAO4N,CACR,CAMD,SAASypB,OAAOC,EAAGC,EAAGC,GACpB,OAAOF,EAAIC,EAAIC,CAChB,CAED,SAASC,SAASH,EAAGC,EAAGC,GACtB,OAAOF,EAAIC,EAAID,EAAIE,EAAID,EAAIC,CAC5B,CAED,SAASE,WAAWhtB,EAAOitB,GAAW,OAAOjtB,GAASitB,EAAOjtB,IAAU,GAAKitB,CAC3E,CAEH,IAAIC,GAAI,IAAIC,YAAY,IAEtB,SAASC,KAAKC,GAAY,KAAMA,aAAiBhB,YAC7C,MAAM,IAAI57B,UAAU,oCAKtB,IA1CasQ,EA0CTurB,EAAS,IAAIgB,YAAYf,MAAMc,EAAME,WAAa,EAAG,KACrDC,EAAO,IAAIL,YAAYb,GAGvBmB,EAAS,IAAIpB,WAAWC,GAK5B,GAJAmB,EAAOhxB,IAAI4wB,GACXI,EAAOJ,EAAME,YAAc,IAGvBpB,GACF,IAAK,IAAIuB,EAAK,EAAG72B,EAAM22B,EAAKp8B,OAAQs8B,EAAK72B,IAAO62B,EAC9CF,EAAKE,IArDI3sB,EAqDQysB,EAAKE,KApDZ,GAAK,IAAO3sB,GAAO,EAAI,MAASA,GAAO,EAAI,SAAWA,GAAO,GAAK,WAwDhF,IAAI4sB,EAAY,EAAIN,EAAME,WAG1BC,EAAKA,EAAKp8B,OAAS,GAAKu8B,EAAYjzB,KAAKiH,IAAI,EAAG,IAChD6rB,EAAKA,EAAKp8B,OAAS,GAAKu8B,EAkBxB,IAfA,IA7Ccf,EA6CVgB,EAAK,WACLC,EAAK,WACLC,EAAK,WACLC,EAAK,UACLC,EAAK,WAGL78B,OAAI,EACJ0L,OAAI,EACJC,OAAI,EACJ6uB,OAAI,EACJhG,OAAI,EACJpnB,OAAI,EACJnF,OAAM,EAEDqwB,EAAS,EAAGwE,EAAOT,EAAKp8B,OAAQq4B,EAASwE,EAAMxE,GAAU,GAAI,CACpE,IAAKt4B,EAAI,EAAGA,EAAI,KAAMA,EACpB+7B,GAAE/7B,GAAKq8B,EAAK/D,EAASt4B,GAGvB,IAAKA,EAAI,GAAIA,EAAI,KAAMA,EACrB+7B,GAAE/7B,GAAK67B,WAAWE,GAAE/7B,EAAI,GAAK+7B,GAAE/7B,EAAI,GAAK+7B,GAAE/7B,EAAI,IAAM+7B,GAAE/7B,EAAI,IAAK,GASjE,IANA0L,EAAI+wB,EACJ9wB,EAAI+wB,EACJlC,EAAImC,EACJnI,EAAIoI,EACJxvB,EAAIyvB,EAEC78B,EAAI,EAAGA,EAAI,KAAMA,EACpBiI,EAAM4zB,WAAWnwB,EAAG,KA5EV+vB,EA4EsB9vB,GAAG6uB,GA3EvBiB,EA2E0BjH,GAAKpnB,EAAI,WAAa2uB,GAAE/7B,GAAK,EACnEoN,EAAIonB,EACJA,EAAIgG,EACJA,EAAIqB,WAAWlwB,EAAG,IAClBA,EAAID,EACJA,EAAIzD,EAGN,IAAKjI,EAAI,GAAIA,EAAI,KAAMA,EACrBiI,EAAM4zB,WAAWnwB,EAAG,GAAK8vB,OAAO7vB,EAAG6uB,EAAGhG,GAAKpnB,EAAI,WAAa2uB,GAAE/7B,GAAK,EACnEoN,EAAIonB,EACJA,EAAIgG,EACJA,EAAIqB,WAAWlwB,EAAG,IAClBA,EAAID,EACJA,EAAIzD,EAGN,IAAKjI,EAAI,GAAIA,EAAI,KAAMA,EACrBiI,EAAM4zB,WAAWnwB,EAAG,GAAKkwB,SAASjwB,EAAG6uB,EAAGhG,GAAKpnB,EAAI,WAAa2uB,GAAE/7B,GAAK,EACrEoN,EAAIonB,EACJA,EAAIgG,EACJA,EAAIqB,WAAWlwB,EAAG,IAClBA,EAAID,EACJA,EAAIzD,EAGN,IAAKjI,EAAI,GAAIA,EAAI,KAAMA,EACrBiI,EAAM4zB,WAAWnwB,EAAG,GAAK8vB,OAAO7vB,EAAG6uB,EAAGhG,GAAKpnB,EAAI,WAAa2uB,GAAE/7B,GAAK,EACnEoN,EAAIonB,EACJA,EAAIgG,EACJA,EAAIqB,WAAWlwB,EAAG,IAClBA,EAAID,EACJA,EAAIzD,EAGNw0B,EAAKA,EAAK/wB,EAAI,EACdgxB,EAAKA,EAAK/wB,EAAI,EACdgxB,EAAKA,EAAKnC,EAAI,EACdoC,EAAKA,EAAKpI,EAAI,EACdqI,EAAKA,EAAKzvB,EAAI,CACf,CAED,MAAO,GAAKmuB,OAAOkB,GAAMlB,OAAOmB,GAAMnB,OAAOoB,GAAMpB,OAAOqB,GAAMrB,OAAOsB,EAC3E,CC1IA,SAASE,aACP,IAAIV,EAAO,GACX,MAAO,CAACW,OAER,SAASA,OAAOC,GACdZ,GAAQY,CACT,EAJeC,OAMhB,SAASA,SACP,OAAOjB,MAAK,IAAKkB,aAAaC,OAAOf,GACtC,EACH,CCNA,IAAAgB,GAAA,MAAuBC,YACrB35B,YAAYuF,GACVA,EAAUA,GAAW,GACrBpF,KAAK4nB,MAAQxiB,EAAQ,gBAAkB,IACvCpF,KAAKy5B,OAAS,GACdz5B,KAAK7D,OAAS,EACd6D,KAAKyL,KAAOzL,KAAK2L,KAAO,IACzB,CAUDnE,IAAIjF,EAAKwI,GACP,IACI2uB,EADAzvB,EAAQc,EAAMd,QAGlBA,EAAMpI,SAAWE,GAAMF,SACvBoI,EAAM9J,OAAS4B,GAAM5B,OACrB8J,EAAM7J,OAAS2B,GAAM3B,OACrBs5B,EAAO,CAAEn3B,IAAKA,EAAKwI,MAAOd,GAC1BjK,KAAKy5B,OAAOl3B,GAAOm3B,EAEf15B,KAAK2L,MACP3L,KAAK2L,KAAKspB,KAAOyE,EACjBA,EAAKlE,KAAOx1B,KAAK2L,MAEjB3L,KAAKyL,KAAOiuB,EAGd15B,KAAK2L,KAAO+tB,EACR15B,KAAK7D,UAAY6D,KAAK4nB,OAAO5nB,KAAK25B,OACvC,CAUDnrB,IAAIjM,GACF,IAAIm3B,EAAO15B,KAAKy5B,OAAOl3B,GACnBxC,EAAM25B,EAAK3uB,MAAMd,QAErB,OAAIyvB,GAAQ15B,KAAK2L,OACb+tB,EAAKzE,OACHyE,GAAQ15B,KAAKyL,OAAMzL,KAAKyL,KAAOiuB,EAAKzE,MACxCyE,EAAKzE,KAAKO,KAAOkE,EAAKlE,MAEpBkE,EAAKlE,OAAMkE,EAAKlE,KAAKP,KAAOyE,EAAKzE,MAErCyE,EAAKzE,KAAO,KACZyE,EAAKlE,KAAOx1B,KAAK2L,KAEb3L,KAAK2L,OAAM3L,KAAK2L,KAAKspB,KAAOyE,GAChC15B,KAAK2L,KAAO+tB,GAXkB35B,CAc/B,CAUDqvB,IAAI7sB,GACF,QAASvC,KAAKy5B,OAAOl3B,EACtB,CAWDA,IAAIQ,EAAKqC,GACP,IAAI+iB,EAAOyR,aAEX,OADAzR,EAAK+Q,OAAOn2B,EAAMqC,EAAQ2J,QACnBoZ,EAAKiR,OAAO,MACpB,CAQDO,QACE,IAAID,EAAO15B,KAAKyL,KAEZzL,KAAKyL,KAAKwpB,OACZj1B,KAAKyL,KAAOzL,KAAKyL,KAAKwpB,KACtBj1B,KAAKyL,KAAK+pB,KAAO,MAGnBx1B,KAAKy5B,OAAOC,EAAKn3B,KAAOm3B,EAAKlE,KAAOkE,EAAKzE,KAAO,KAChDj1B,KAAK7D,QACN,GChHH09B,GAAA,MAAuBC,UAUrBtyB,IAAIjF,EAAKwI,GAAU,CAUnByD,IAAIjM,GAAQ,CAUZ6sB,IAAI7sB,GACF,OAAO,CACR,CAWDA,IAAIQ,EAAKqC,GACP,MAAO,EACR,GCxCC20B,SAA4B,SAASj9B,EAAMsI,GAC7C,GAAI,mBAAqBtI,EAAM,OAAO,IAAIA,EAAKsI,GAE/C,IAAI40B,EACJ,GAIO,WAJCl9B,EAKJk9B,EAAQT,QAGRS,EAAQH,GAEZ,OAAO,IAAIG,EAAM50B,EACnB,ECLIujB,GAAQ,CACVY,MAAOX,SACLvkB,SAAUukB,UAOVqR,GAAiB,CACnB,QACE,SACA,WACA,WACA,UACA,UACA,QACA,QACA,OACA,MACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,IACA,IACA,IACA,IACA,IACA,KACA,IACA,IACA,IACA,IACA,KACA,KAQAC,GAAkB,CAGpB,KACE,MACA,QACA,MAGA,MACA,OAGA,WACA,OACA,UACA,aACA,SACA,QAGA,QACA,SACA,QACA,OAGA,UACA,OACA,SAGA,UACA,WACA,YACA,aACA,oBACA,UACA,gBACA,QACA,UACA,WACA,eACA,WACA,WACA,aAGA,OACA,QACA,QACA,YACA,iBACA,cACA,aACA,aACA,cACA,mBACA,gBACA,eACA,eACA,YACA,iBAGA,aACA,kBAGA,aACA,eACA,SACA,QAGA,aAGJzxB,GAAA,MAAuBA,OASrB5I,YAAYkD,EAAKqC,GACf,IAAI6Q,EAAOjW,KACXoF,EAAUA,GAAW,GACrBqD,OAAOuxB,MAAQvxB,OAAOuxB,OAASvxB,OAAOsxB,SAAS30B,GAC/CpF,KAAKmoB,KAAO1f,OAAOuxB,MAAMz3B,IAAIQ,EAAKqC,GAClCpF,KAAKupB,MAAQ,GACR9gB,OAAOuxB,MAAM5K,IAAIpvB,KAAKmoB,QACzBnoB,KAAKupB,MAAQ,IAAIgL,GAAMxxB,EAAKqC,IAE9BpF,KAAK+O,OAAS3J,EAAQ2J,QAAU,GAChC/O,KAAKpD,KAAOwI,EAAQxI,MAAQ,IAAImF,GAAMuV,KACtCtX,KAAK4Y,MAAQ,CAAC,QACd5Y,KAAK60B,MAAQ,GACb70B,KAAKm6B,OAAS,EACdn6B,KAAK4U,IAAM,EACX5U,KAAK4Y,MAAM9H,IAAM,WACfmF,EAAKmkB,UAAY,GAAGtpB,IAAIhC,KAAK9O,KACnC,CACG,CAUDywB,gBAAgBrrB,GACd,OAAO,IAAUA,EAAQ40B,MACrBA,UAAM,GACNA,SAAM50B,EAAQ40B,OAAS,SAAU50B,EACtC,CAUDi1B,eACE,OAAOr6B,KAAK4Y,MAAM5Y,KAAK4Y,MAAMzc,OAAS,EACvC,CASDm+B,gBACE,OAAOt6B,KAAK4Y,MAAM5Y,KAAK4Y,MAAMzc,OAAS,EACvC,CASDoD,QACE,IAAI+B,EAAQtB,KAAKmB,OAASnB,KAAKpD,KAC/B,GAAI6L,OAAOuxB,MAAM5K,IAAIpvB,KAAKmoB,MAGpB,UAFJ7mB,EAAQmH,OAAOuxB,MAAMxrB,IAAIxO,KAAKmoB,OAETrmB,WAAUR,EAAMzB,YAAckC,GAAMuV,UACpD,CACL,KAAO,OAAStX,KAAKu2B,OAAOz2B,OAC1BE,KAAKu6B,iBACD,OAASv6B,KAAKu2B,OAAOz2B,OAFO,CAGhC,IAAI06B,EAAOx6B,KAAKy6B,YAChBz6B,KAAK06B,OAAO,KACPF,GAAMx6B,KAAK6N,MAAM,0DACtBvM,EAAMN,KAAKw5B,EACZ,CACD/xB,OAAOuxB,MAAMxyB,IAAIxH,KAAKmoB,KAAM7mB,EAC7B,CACD,OAAOA,CACR,CASDuM,MAAMC,GACJ,IAAIhO,EAAOE,KAAKu2B,OAAOz2B,KACnBC,EAAMzC,MAAa0C,KAAKu2B,OAAOx2B,IAC7B,GACA,IAAMC,KAAKu2B,OAAOl2B,WAExB,MADIN,EAAIuE,QAAUxE,EAAKwE,SAAQvE,EAAM,IAC/B,IAAI46B,WAAkB7sB,EAAI5I,QAAQ,SAAU,IAAMpF,EAAOC,EAAM,KACtE,CAWD26B,OAAO56B,GACL,GAAIA,GAAQE,KAAKu2B,OAAOz2B,KACtB,OAAOE,KAAKi1B,MAEf,CAUD2F,OAAO96B,GAIL,OAHIA,GAAQE,KAAKu2B,OAAOz2B,MACtBE,KAAK6N,MAAM,aAAe/N,EAAO,iBAE5BE,KAAKi1B,MACb,CASDA,OACE,IAAID,EAAMh1B,KAAK60B,MAAM14B,OACjB6D,KAAK60B,MAAM/jB,MACX9Q,KAAKupB,MAAM0L,OACXpvB,EAAOmvB,EAAI70B,OACXC,EAAS40B,EAAI50B,QAAU,EAS3B,OAPI40B,EAAIj1B,KAAOi1B,EAAIj1B,IAAI+B,WACrBkzB,EAAIj1B,IAAII,OAAS0F,EACjBmvB,EAAIj1B,IAAIK,OAASA,GAEnB2B,GAAM5B,OAAS0F,EACf9D,GAAM3B,OAASA,EACfuoB,GAAMY,MAAM,QAASyL,EAAIl1B,KAAMk1B,EAAIj1B,KAAO,IACnCi1B,CACR,CASDuB,OACE,OAAOv2B,KAAKupB,MAAMgN,MACnB,CAUDrB,UAAUxlB,GACR,OAAO1P,KAAKupB,MAAM2L,UAAUxlB,EAC7B,CAUDmrB,gBAAgBnrB,GACd,IAAIorB,EAAK96B,KAAKk1B,UAAUxlB,GAAG5P,KAC3B,OAAQg7B,GACN,IAAK,MACH,OAAO96B,KAAK+6B,UACd,IAAK,IAEH,OADA/6B,KAAK+6B,WAAY,GACV,EACT,IAAK,IAEH,OADA/6B,KAAK+6B,WAAY,GACV,EACT,QACE,OAAQd,GAAel2B,QAAQ+2B,GAEpC,CAUDE,iBAAiBtrB,GACf,IAAI3P,EAAMC,KAAKk1B,UAAUxlB,GAAG3P,IAC5B,OAAOA,IAAQm6B,GAAgBn2B,QAAQhE,EAAIjD,KAC5C,CAUDm+B,aAAan7B,GAIX,IAHA,IACIg7B,EADA5+B,EAAI,EAGD4+B,EAAK96B,KAAKk1B,UAAUh5B,MAAM,CAC/B,IAAK,CAAC,SAAU,UAAW,UAAW,OAAO6H,QAAQ+2B,EAAGh7B,MAAO,OAC/D,GAAIA,GAAQg7B,EAAGh7B,KAAM,OAAO,CAC7B,CACF,CAMDo7B,gBACE,GAAIl7B,KAAK66B,gBAAgB,GAAI,CAC3B,GAAI,KAAO76B,KAAKu2B,OAAOz2B,KAAM,CAE3B,IAAKE,KAAKi7B,aAAa,KAAM,OAQ7B,IAFA,IACIH,EADA5+B,EAAI,EAED4+B,EAAK96B,KAAKk1B,YAAYh5B,IAAI,CAC/B,GAAI,KAAO4+B,EAAGh7B,KAAM,CAElB,GAAS,GAAL5D,GAAgB,GAALA,GAAwC,SAA9B8D,KAAKk1B,UAAUh5B,EAAI,GAAG4D,KAC7C,OACF,KACD,CACD,GAAI,KAAOg7B,EAAGh7B,KAAM,MACrB,CACF,CACD,OAAOE,KAAKi1B,MACb,CACF,CASD5xB,KAAK83B,GACH,MAAQA,EAAOp3B,QAAQ/D,KAAKu2B,OAAOz2B,OACjCE,KAAKi1B,MACR,CAMDsF,iBACEv6B,KAAKqD,KAAK,CAAC,QAAS,SAAU,UAAW,WAC1C,CAMD+3B,eACE,KAAO,WAAap7B,KAAKu2B,OAAOz2B,MAC9BE,KAAKi1B,MACR,CAMD1xB,aACE,KAAO,SAAWvD,KAAKu2B,OAAOz2B,MAC5BE,KAAKi1B,MACR,CAMDoG,wBACE,KAAO,SAAWr7B,KAAKu2B,OAAOz2B,MACzB,WAAaE,KAAKu2B,OAAOz2B,MAC5BE,KAAKi1B,MACR,CAQDqG,4BAA4Bp/B,GAC1B,MAAO,UAAY8D,KAAKk1B,UAAUh5B,GAAG4D,MAChC,KAAOE,KAAKk1B,UAAUh5B,GAAG4D,IAC/B,CAWDy7B,kBAAkBC,GAChB,IACIh7B,EACAw1B,EAFA95B,EAAI,EAKR,GAAIs/B,GAAgB,KAAOx7B,KAAKk1B,UAAUh5B,EAAI,GAAG4D,OAC3CE,KAAKk1B,UAAUh5B,EAAI,GAAGga,OAAS,UAAYlW,KAAKk1B,UAAUh5B,EAAI,GAAG4D,MACrE,OAAO,EAIT,KAAO,SAAWE,KAAKk1B,UAAUh5B,GAAG4D,OAC9B,WAAaE,KAAKk1B,UAAUh5B,EAAI,GAAG4D,MAClC,KAAOE,KAAKk1B,UAAUh5B,EAAI,GAAG4D,OAAO5D,GAAK,EAEhD,KAAO8D,KAAK66B,gBAAgB3+B,IACvB,KAAO8D,KAAKk1B,UAAUh5B,GAAG4D,MAAM,CAElC,GAAI,YAAcE,KAAKk1B,UAAUh5B,GAAG4D,KAClC,OAAO,EAET,GAAI,KAAOE,KAAKk1B,UAAUh5B,EAAI,GAAG4D,KAC/B,OAAO,EAGT,GACE5D,EAAI,GACJ,UAAY8D,KAAKk1B,UAAUh5B,EAAI,GAAG4D,MAClC,MAAQE,KAAKk1B,UAAUh5B,GAAG4D,MAC1B,UAAYE,KAAKk1B,UAAUh5B,EAAI,GAAG4D,KAClC,CACA,KAAQU,EAAOR,KAAKk1B,UAAUh5B,EAAI,IAAK,CACrC,IAgB0B,IAhBtB,CACF,SACA,UACA,IACA,IACA,MACA,WACA,QACA,KACA,SACA,IACA,IACA,OACA,IACA,MACA,YACA6H,QAAQvD,EAAKV,MAAc,CAC3B,GAAkB,MAAdU,EAAKV,KAOF,CACL,GAAIE,KAAKg7B,iBAAiB9+B,EAAI,GAC5B,OAAO,EAGT,GAAkB,MAAdsE,EAAKV,MAAgBE,KAAKk1B,UAAUh5B,EAAI,IAAqC,MAA/B8D,KAAKk1B,UAAUh5B,EAAI,GAAG4D,KACtE,MAGF,OAY0B,IAZnB,CACL,UACA,IACA,MACA,QACA,KACA,SACA,IACA,IACA,OACA,MACA,YACAiE,QAAQvD,EAAKV,KAChB,CA5BC,MAAQU,EAAOR,KAAKk1B,UAAUh5B,EAAI,KAAqB,MAAdsE,EAAKV,MAAc,CAC1D,IAAK,CAAC,IAAK,QAAQiE,QAAQvD,EAAKV,MAC9B,OAAO,EAET5D,GAAK,CACN,CAwBJ,CAEDA,GAAK,CACN,CAED,OAAO,CACR,CAED,GAAI,KAAO8D,KAAKk1B,UAAUh5B,GAAG4D,MAAQ,SAAWE,KAAKk1B,UAAUh5B,EAAI,GAAG4D,KACpE,OAAO,EAGT,GAAI,KAAOE,KAAKk1B,UAAUh5B,GAAG4D,MAAQ,WAAaE,KAAKk1B,UAAUh5B,EAAI,GAAG4D,KACtE,OAAO,EAGT,GAAI,KAAOE,KAAKk1B,UAAUh5B,GAAG4D,MACxB,KAAOE,KAAKk1B,UAAUh5B,EAAI,GAAG4D,KAChC,OAAO,EAGT,GAAI,SAAWE,KAAKk1B,UAAUh5B,GAAG4D,MAC5B,WAAaE,KAAKk1B,UAAUh5B,EAAI,GAAG4D,KACtC,OAAO,EAET,GAAIE,KAAKy7B,2BAA2Bv/B,GAClC,OAAO,EAET,IAAK,KAAO8D,KAAKk1B,UAAUh5B,GAAG4D,MAAQ,YAAcE,KAAKk1B,UAAUh5B,GAAG4D,OACjE,KAAOE,KAAKk1B,UAAUh5B,EAAI,GAAG4D,KAChC,OAAO,EAGT,GAAI,KAAOE,KAAKk1B,UAAUh5B,GAAG4D,OACvBE,KAAKg7B,iBAAiB9+B,EAAI,IAC3B8D,KAAKi7B,aAAa,KACrB,OAAO,EAMT,GAFI,KAAOj7B,KAAKk1B,UAAUh5B,GAAG4D,KAAMk2B,GAAQ,EAClC,KAAOh2B,KAAKk1B,UAAUh5B,GAAG4D,OAAMk2B,GAAQ,GAC5CA,GAAS,KAAOh2B,KAAKk1B,UAAUh5B,GAAG4D,KAAM,OAAO,EAKnD,GAAI,SAAWE,KAAKk1B,UAAUh5B,GAAG4D,MAC5B,KAAOE,KAAKk1B,UAAUh5B,EAAI,GAAG4D,KAChC,OAAO,EAKT,GAAI,KAAOE,KAAKk1B,UAAUh5B,KAAK4D,OACzBE,KAAKk1B,UAAUh5B,EAAI,GAAGga,OACvBlW,KAAKg7B,iBAAiB9+B,GACzB,OAAO,EAGT,GAAI,SAAW8D,KAAKk1B,UAAUh5B,GAAG4D,MAC5B,WAAaE,KAAKk1B,UAAUh5B,EAAI,GAAG4D,MACnC,KAAOE,KAAKk1B,UAAUh5B,EAAI,GAAG4D,KAChC,OAAO,EAET,GAAI,KAAOE,KAAKk1B,UAAUh5B,GAAG4D,MACxB,WAAaE,KAAKk1B,UAAUh5B,EAAI,GAAG4D,KACtC,OAAO,CACV,CAGD,GAAI,KAAOE,KAAKk1B,UAAUh5B,GAAG4D,MACxB,WAAaE,KAAKk1B,UAAUh5B,EAAI,GAAG4D,KACtC,OAAO,EAGT,GAAI,KAAOE,KAAKk1B,UAAUh5B,GAAG4D,MACxB,WAAaE,KAAKk1B,UAAUh5B,EAAI,GAAG4D,KACtC,OAAO,EAGT,GAAIE,KAAK4U,MACH,KAAO5U,KAAKk1B,UAAUh5B,GAAG4D,MAC3B,KAAOE,KAAKk1B,UAAUh5B,EAAI,GAAG4D,MAC7B,OAAO,EAIX,OAAS,CACP,SACE,UACA,UACA,MACA,KACA,IACA,IACA,OAAOiE,QAAQ/D,KAAKk1B,UAAUh5B,GAAG4D,SACjC5D,EAEJ,MAAI,UAAY8D,KAAKk1B,UAAUh5B,GAAG4D,WAAlC,CAED,CAOD27B,2BAA2B/rB,GACzB,IAAI5P,EAAOE,KAAKk1B,UAAUxlB,GAAG5P,KAC7B,QAAI,KAAOA,IAAQE,KAAK+6B,aAChB,SAAWj7B,GAAQ,UAAYA,IAClC,KAAOE,KAAKk1B,UAAUxlB,EAAI,GAAG5P,OAC5B,WAAaE,KAAKk1B,UAAUxlB,EAAI,GAAG5P,MAAQE,KAAK66B,gBAAgBnrB,EAAI,MACpE1P,KAAKi7B,aAAa,OAClBj7B,KAAKi7B,aAAa,IACzB,CAODS,oBACE,IACI57B,EADA5D,EAAI,EAER,OAAQ8D,KAAKk1B,UAAUh5B,GAAG4D,MACxB,IAAK,IACL,IAAK,SACL,IAAK,IACH,OAAO,EACT,IAAK,UACH,KAAO,QAAUE,KAAKk1B,YAAYh5B,GAAG4D,MAChC,WAAaE,KAAKk1B,UAAUh5B,GAAG4D,OAEpC,MAAO,WADPA,EAAOE,KAAKk1B,UAAUh5B,GAAG4D,OACE,KAAOA,EAEvC,CAMD67B,sBACE,OAAQ37B,KAAKq6B,gBACX,IAAK,OACL,IAAK,UACL,IAAK,WACL,IAAK,cACL,IAAK,WACL,IAAK,SACL,IAAK,MACH,OAAO,EAEZ,CASDuB,cAAcl1B,GACZ,IACEA,EAAK1F,KAAKhB,KAAKktB,QAAQxmB,GAGxB,CAFC,MAAO9B,GACP5E,KAAK6N,MAAM,4DACZ,CACF,CAQD4sB,YACE,IAEIn5B,EACAsO,EAHA4qB,EAAOx6B,KAAKw6B,OACZ5hB,EAAQ5Y,KAAKo6B,UAcjB,OALIp6B,KAAK67B,eACP77B,KAAK67B,cAAe,EACpBjjB,EAAQ,cAGFA,GACN,IAAK,aACL,IAAK,aACL,IAAK,qBACH,KAAOhJ,EACL5P,KAAK06B,OAAO,OACT16B,KAAK06B,OAAO,WACZ16B,KAAK06B,OAAO,QACf,OAAQ9qB,EAAG9P,MACT,IAAK,KACL,IAAK,UACH06B,EAAO,IAAIz4B,GAAM0vB,GAAGzxB,KAAK87B,aAActB,IAClCjN,SAAU,EACfiN,EAAKnO,OAAS,UAAYzc,EAAG9P,KAC7BE,KAAK06B,OAAO,KACZ,MACF,IAAK,MACH,IAAIn4B,EACAxC,EAAMC,KAAK+7B,KAAKj/B,KAChBkD,KAAK06B,OAAO,OAAMn4B,EAAMvC,KAAK+7B,KAAKj/B,MACtCkD,KAAK46B,OAAO,MACZ,IAAI5P,EAAO,IAAIjpB,GAAMyvB,KAAKzxB,EAAKwC,EAAKvC,KAAK87B,eACzCx6B,EAAQ,IAAIS,GAAMoV,MAAMnX,KAAKmB,OAAQ6pB,IAC/BhqB,KAAKw5B,GACXxP,EAAK1pB,MAAQA,EACbk5B,EAAOxP,GAKjB,OAAOwP,CACR,CAuBDA,OACE,IAAuBn2B,EAAnB2wB,EAAMh1B,KAAKu2B,OACf,OAAQvB,EAAIl1B,MACV,IAAK,YACH,OAAOE,KAAK2qB,YACd,IAAK,gBACH,OAAO3qB,KAAKg8B,cACd,IAAK,UACL,IAAK,WACL,IAAK,UACL,IAAK,UACL,IAAK,YACL,IAAK,SACL,IAAK,UACL,IAAK,SACL,IAAK,QACL,IAAK,SACL,IAAK,QACL,IAAK,QACL,IAAK,WACL,IAAK,SACL,IAAK,WACL,IAAK,MACL,IAAK,KACH,OAAOh8B,KAAKg1B,EAAIl1B,QAClB,IAAK,SACH,OAAOE,KAAK+pB,SACd,IAAK,IACH,OAAO/pB,KAAK2rB,WACd,QAEE,GAAI3rB,KAAK27B,sBACP,OAAQ3G,EAAIl1B,MACV,IAAK,QACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,KACL,IAAK,IACL,IAAK,IACL,IAAK,IAIH,OAHAuE,EAAWrE,KAAKqE,YACPjE,OAAS40B,EAAI50B,OACtBiE,EAASlE,OAAS60B,EAAI70B,OACfkE,EAET,IAAK,KACH,GAAI,KAAOrE,KAAKk1B,UAAU,GAAGp1B,KAC3B,OAAOE,KAAKqE,WAChB,IAAK,IACH,MAAO,YAAcrE,KAAKk1B,UAAU,GAAGp1B,KACnCE,KAAKi8B,eACLj8B,KAAKqE,WACX,IAAK,IACH,OAAOrE,KAAK2rB,WAEd,IAAK,OACH,GAAI3rB,KAAK07B,oBAIP,OAHAr3B,EAAWrE,KAAKqE,YACPjE,OAAS40B,EAAI50B,OACtBiE,EAASlE,OAAS60B,EAAI70B,OACfkE,EAEX,IAAK,IACH,GAAI,KAAOrE,KAAKk1B,UAAU,GAAGp1B,KAC3B,OAAOE,KAAK2rB,WAKpB,IAAIjlB,EAAO1G,KAAK87B,aAEhB,OADIp1B,EAAKgN,SAAS1T,KAAK6N,MAAM,qBACtBnH,EAEZ,CAMDpF,MAAMd,EAAMkC,GACV,IAAIuW,EACAuhB,EACAvF,EACA3zB,EAAQtB,KAAKmB,OAAS,IAAIY,GAAMoV,MAAMnX,KAAKmB,OAAQX,GAgBvD,KAdI,IAAUkC,IAAOpB,EAAMoB,OAAQ,GAEnC1C,KAAK06B,OAAO,WAGR16B,KAAK06B,OAAO,MACd16B,KAAK4U,MACLqE,EAAQ,IACRjZ,KAAKu6B,mBAELthB,EAAQ,UACRjZ,KAAK46B,OAAO,WAGP3hB,GAASjZ,KAAKu2B,OAAOz2B,MAAM,CAEhC,GAAIE,KAAK4U,IAAK,CACZ,GAAI5U,KAAK06B,OAAO,YAAc16B,KAAK06B,OAAO,UAAW,SACrDF,EAAOx6B,KAAKy6B,YACZz6B,KAAK06B,OAAO,KACZ16B,KAAKu6B,gBACb,KAAa,CACL,GAAIv6B,KAAK06B,OAAO,WAAY,SAG5B,GADAzF,EAAOj1B,KAAKk1B,UAAU,GAAGp1B,KACrB,UAAYE,KAAKu2B,OAAOz2B,OACtB,CAAC,UAAW,UAAW,WAAWiE,QAAQkxB,GAAO,CACrDj1B,KAAKqD,KAAK,CAAC,SAAU,YACrB,QACD,CACD,GAAI,OAASrD,KAAKu2B,OAAOz2B,KAAM,OAAOwB,EACtCk5B,EAAOx6B,KAAKy6B,YACZz6B,KAAK06B,OAAO,IACb,CACIF,GAAMx6B,KAAK6N,MAAM,oCACtBvM,EAAMN,KAAKw5B,EACZ,CAaD,OAVIx6B,KAAK4U,KACP5U,KAAKu6B,iBACLv6B,KAAK46B,OAAO,KACZ56B,KAAKuD,aACLvD,KAAK4U,OAEL5U,KAAK46B,OAAO,WAGd56B,KAAKmB,OAASG,EAAMH,OACbG,CACR,CAMD8S,UACE,IAAI5T,EAAOR,KAAKi1B,OAAOl1B,IAEvB,OADAC,KAAKuD,aACE/C,CACR,CAMD07B,MACEl8B,KAAK46B,OAAO,OACZ,IAAIr4B,EACAxC,EAAMC,KAAK+7B,KAAKj/B,KAChBkD,KAAK06B,OAAO,OAAMn4B,EAAMvC,KAAK+7B,KAAKj/B,MACtCkD,KAAK46B,OAAO,MACZ56B,KAAK4Y,MAAM5X,KAAK,OAChBhB,KAAKwsB,MAAO,EACZ,IAAIxB,EAAO,IAAIjpB,GAAMyvB,KAAKzxB,EAAKwC,EAAKvC,KAAK87B,cAIzC,OAHA97B,KAAKwsB,MAAO,EACZxB,EAAK1pB,MAAQtB,KAAKsB,MAAM0pB,GAAM,GAC9BhrB,KAAK4Y,MAAM9H,MACJka,CACR,CAMDjB,SACE/pB,KAAK46B,OAAO,UACZ,IAAIl0B,EAAO1G,KAAK87B,aAChB,OAAOp1B,EAAKgN,QACR,IAAI3R,GAAMowB,OACV,IAAIpwB,GAAMowB,OAAOzrB,EACtB,CAMDy1B,SACEn8B,KAAK46B,OAAO,UACZ56B,KAAK4Y,MAAM5X,KAAK,eAChBhB,KAAKwsB,MAAO,EACZ,IAAIhsB,EAAO,IAAIuB,GAAM0vB,GAAGzxB,KAAK87B,cAAc,GAI3C,OAHA97B,KAAKwsB,MAAO,EACZhsB,EAAKc,MAAQtB,KAAKsB,MAAMd,GAAM,GAC9BR,KAAK4Y,MAAM9H,MACJtQ,CACR,CAMD47B,KACE,IAAI/F,EAAQr2B,KAAK46B,OAAO,MAExB56B,KAAK4Y,MAAM5X,KAAK,eAChBhB,KAAKwsB,MAAO,EACZ,IACIA,EACAlrB,EACAo4B,EAHAl5B,EAAO,IAAIuB,GAAM0vB,GAAGzxB,KAAK87B,cAU7B,IALAt7B,EAAKJ,OAASi2B,EAAMj2B,OAEpBJ,KAAKwsB,MAAO,EACZhsB,EAAKc,MAAQtB,KAAKsB,MAAMd,GAAM,GAC9BR,KAAKqD,KAAK,CAAC,UAAW,YACfrD,KAAK06B,OAAO,SAAS,CAE1B,KADArE,EAAQr2B,KAAK06B,OAAO,OAWb,CACLl6B,EAAK8sB,MAAMtsB,KAAKhB,KAAKsB,MAAMd,GAAM,IACjC,KACD,CAZCR,KAAKwsB,MAAO,EACZA,EAAOxsB,KAAK87B,aACZ97B,KAAKwsB,MAAO,EACZlrB,EAAQtB,KAAKsB,MAAMd,GAAM,IACzBk5B,EAAO,IAAI33B,GAAM0vB,GAAGjF,EAAMlrB,IAErBlB,OAASi2B,EAAMj2B,OAEpBI,EAAK8sB,MAAMtsB,KAAK04B,GAKlB15B,KAAKqD,KAAK,CAAC,UAAW,WACvB,CAED,OADArD,KAAK4Y,MAAM9H,MACJtQ,CACR,CAQD0sB,QAAQ1sB,GAMN,OALKA,GAAMR,KAAK46B,OAAO,WACvBp6B,EAAO,IAAIuB,GAAM6xB,QACjB5zB,KAAK4Y,MAAM5X,KAAK,WAChBR,EAAKc,MAAQtB,KAAKsB,MAAMd,GAAM,GAC9BR,KAAK4Y,MAAM9H,MACJtQ,CACR,CAMDsT,SACE,IAEIkhB,EAFAl1B,EAAOE,KAAK46B,OAAO,UAAU76B,IAC7BS,EAAO,IAAIuB,GAAMmvB,OAAOpxB,GAY5B,OAVAE,KAAKq7B,wBACL76B,EAAK6V,SAAWrW,KAAKq8B,gBACrBr8B,KAAKq7B,yBAED,WADJrG,EAAMh1B,KAAKu2B,OAAOz2B,OACK,KAAOk1B,GAAQ,WAAaA,GAC9C,KAAOh1B,KAAKk1B,UAAU,GAAGp1B,QAC5BE,KAAK4Y,MAAM5X,KAAK,UAChBR,EAAKc,MAAQtB,KAAKsB,MAAMd,GACxBR,KAAK4Y,MAAM9H,OAENtQ,CACR,CAMDkC,QACE1C,KAAK46B,OAAO,SACZ,IAAIv2B,EAAWrE,KAAKq8B,gBACjB56B,KAAI,SAAU4C,GAAY,OAAOA,EAAStE,GAAI,IAC9CpC,KAAK,IAER,OADAqC,KAAKs8B,cAAgBj4B,EAASC,OACvBvC,GAAMiF,IACd,CAMDu1B,WACEv8B,KAAK46B,OAAO,YACZ,IAAIp6B,EAAO,IAAIuB,GAAM+xB,SAAS9zB,KAAKw8B,qBAInC,OAHAx8B,KAAK4Y,MAAM5X,KAAK,UAChBR,EAAKc,MAAQtB,KAAKsB,MAAMd,GACxBR,KAAK4Y,MAAM9H,MACJtQ,CACR,CAQDg8B,oBACE,IAAIh8B,EAAOR,KAAKy8B,oBACXz8B,KAAK08B,aAMV,OALKl8B,IACHR,KAAKwsB,MAAO,EACZhsB,EAAOR,KAAK87B,aACZ97B,KAAKwsB,MAAO,GAEPhsB,CACR,CAMDi8B,mBACE,GAAIz8B,KAAK06B,OAAO,OAAQ,CACtB,IAAIl6B,EAAO,IAAIuB,GAAMqF,WAGrB,OAFA5G,EAAKQ,KAAK,IAAIe,GAAMwH,QAAQ,QAC5B/I,EAAKQ,KAAKhB,KAAK28B,mBACRn8B,CACR,CACF,CAMDk8B,aACE,IACI9sB,EACAlJ,EAFA8rB,EAAUxyB,KAAK28B,kBAGnB,GAAInK,EAAS,CAGX,KAFA9rB,EAAO,IAAI3E,GAAMqF,YACZpG,KAAKwxB,GACH5iB,EAAK5P,KAAK06B,OAAO,OAAS16B,KAAK06B,OAAO,OAC3Ch0B,EAAK1F,KAAK,IAAIe,GAAMwH,QAAQ,MAAQqG,EAAG7P,IAAM,MAAQ,OACrD2G,EAAK1F,KAAKhB,KAAK28B,mBAEjB,OAAOj2B,CACR,CACF,CAODi2B,kBAEE,GADA38B,KAAKq7B,wBACD,KAAOr7B,KAAKu2B,OAAOz2B,KAAM,CAC3B,IAAIg7B,EAAK96B,KAAKk1B,UAAU,GAAGp1B,KAE3B,GAAI,SAAWg7B,GAAM,KAAOA,EAC1B,OAAO96B,KAAKwyB,UAEZxyB,KAAK46B,OAAO,KACZ,IAAIp6B,EAAO,IAAIuB,GAAMqF,WAMrB,OALA5G,EAAKQ,KAAK,IAAIe,GAAMwH,QAAQ,MAC5B/I,EAAKQ,KAAKhB,KAAKw8B,qBACfx8B,KAAK46B,OAAO,KACZp6B,EAAKQ,KAAK,IAAIe,GAAMwH,QAAQ,MAC5BvJ,KAAKq7B,wBACE76B,CAEV,CACF,CAMDkX,SACE,IAEIW,EACA7X,EACA6H,EAJA2sB,EAAMh1B,KAAK46B,OAAO,UAClBpyB,EAAY,GAKhB,IACEH,EAAMrI,KAAKq8B,iBAEFlgC,SAETkc,EAAM,IAAItW,GAAMkV,SAAS5O,GACzBG,EAAUxH,KAAKqX,GAEX,MAAQrY,KAAKu2B,OAAOz2B,MAGpB,WADJk1B,EAAMh1B,KAAKk1B,UAAU,IACDp1B,MAAQ,aAAek1B,EAAIj1B,IAAIjD,OAEnDkD,KAAKqD,KAAK,CAAC,IAAK,UAChBgV,EAAIJ,UAAW,UACRjY,KAAK06B,OAAO,MAKrB,OAHAl6B,EAAO,IAAIuB,GAAMyxB,OAAOhrB,IACnBrI,OAAS60B,EAAI70B,OAClBK,EAAKJ,OAAS40B,EAAI50B,OACXI,CACR,CAMD2S,QACEnT,KAAK46B,OAAO,SACZ56B,KAAK4Y,MAAM5X,KAAK,UAChB,IAAImS,EAAQ,IAAIpR,GAAMqwB,MAAMpyB,KAAKsT,WAGjC,OAFAH,EAAM7R,MAAQtB,KAAKsB,MAAM6R,GACzBnT,KAAK4Y,MAAM9H,MACJqC,CACR,CAMDG,UACE,IAAIA,EAAU,IAAIvR,GAAMswB,UACpBhvB,EAAO,CAAC,UAAW,UAAW,SAElC,GACErD,KAAKqD,KAAKA,GACViQ,EAAQtS,KAAKhB,KAAKwqB,SAClBxqB,KAAKqD,KAAKA,SACHrD,KAAK06B,OAAO,MACrB,OAAOpnB,CACR,CAQDkX,QACE,IACI9jB,EACAisB,EACAoJ,EAHAvR,EAAQ,IAAIzoB,GAAMwwB,MAMtB,GAAI,SAAWvyB,KAAKu2B,OAAOz2B,OACrB,KAAOE,KAAKk1B,UAAU,GAAGp1B,MACxB,KAAOE,KAAKk1B,UAAU,GAAGp1B,MAK9B,OAJAE,KAAKwsB,MAAO,EACZ9lB,EAAO1G,KAAK87B,aACZ97B,KAAKwsB,MAAO,EACZhC,EAAMxpB,KAAK,IAAIe,GAAMixB,QAAQtsB,EAAK3E,QAC3ByoB,EAGT,IAAImI,EAAO3yB,KAAK06B,OAAO,UAAY16B,KAAK06B,OAAO,UAC7C/H,EAAO,IAAI5wB,GAAMwH,QAAQopB,EAAK5yB,IAAIsK,QAAUsoB,EAAK5yB,KAEjDC,KAAKq7B,yBACDU,EAAK/7B,KAAK06B,OAAO,WACnBlQ,EAAM1qB,KAAOi8B,EAAGh8B,IAChByqB,EAAMhX,UAAYmf,GAElBnI,EAAM1qB,KAAO6yB,EAEf3yB,KAAKq7B,yBAEAr7B,KAAK06B,OAAO,OAAO,OAAOlQ,EAGjC,GACEA,EAAMxpB,KAAKhB,KAAKwyB,iBACTxyB,KAAK06B,OAAO,OAErB,OAAOlQ,CACR,CAMDgI,UACExyB,KAAKq7B,wBACLr7B,KAAK46B,OAAO,KACZ56B,KAAKq7B,wBACL,IAAI76B,EAAO,IAAIuB,GAAMixB,QAAQhzB,KAAKsqB,eAUlC,OATAtqB,KAAKq7B,wBACLr7B,KAAK06B,OAAO,KACZ16B,KAAKq7B,wBACLr7B,KAAK48B,YAAa,EAClBp8B,EAAKkG,KAAO1G,KAAKqJ,OACjBrJ,KAAK48B,YAAa,EAClB58B,KAAKq7B,wBACLr7B,KAAK46B,OAAO,KACZ56B,KAAKq7B,wBACE76B,CACR,CAMDw7B,cACEh8B,KAAK46B,OAAO,iBACZ,IAAIoB,EAAc,IAAIj6B,GAAMmvB,OAAO,iBAC/B2L,EAAQ,GACZ,GACE78B,KAAKq7B,wBACLwB,EAAM77B,KAAKhB,KAAKi8B,gBAChBj8B,KAAKq7B,8BACEr7B,KAAK06B,OAAO,MAKrB,OAJAsB,EAAY3lB,SAAW,CAAC,IAAItU,GAAMwH,QAAQszB,EAAMl/B,KAAK,QACrDqC,KAAK4Y,MAAM5X,KAAK,UAChBg7B,EAAY16B,MAAQtB,KAAKsB,MAAM06B,GAAa,GAC5Ch8B,KAAK4Y,MAAM9H,MACJkrB,CACR,CAMDc,SAGE,OAFA98B,KAAK46B,OAAO,UACZ56B,KAAK67B,cAAe,EACb,IAAI95B,GAAMmoB,OAAOlqB,KAAK87B,cAAc,EAC5C,CAMDiB,UAGE,OAFA/8B,KAAK46B,OAAO,WACZ56B,KAAK67B,cAAe,EACb,IAAI95B,GAAMmoB,OAAOlqB,KAAK87B,cAAc,EAC5C,CAMDvnB,UACEvU,KAAK46B,OAAO,WACZ,IAAI73B,EAAM/C,KAAK46B,OAAO,UAAU76B,IAEhC,OADAC,KAAK67B,cAAe,EACb,IAAI95B,GAAMuxB,QAAQvwB,EAC1B,CAMD0R,YACE,IAAI1R,EACAgM,EAWJ,OAVA/O,KAAK46B,OAAO,aAEZ56B,KAAKq7B,yBACDtsB,EAAS/O,KAAK06B,OAAO,YACvB3rB,EAASA,EAAOhP,KAElBC,KAAKq7B,wBAELt4B,EAAM/C,KAAK06B,OAAO,WAAa16B,KAAKqnB,MACpCrnB,KAAK67B,cAAe,EACb,IAAI95B,GAAMwxB,UAAUxwB,EAAKgM,EACjC,CAMD4b,YACE,IACIA,EADAqK,EAAMh1B,KAAK46B,OAAO,aActB,OAXA56B,KAAKq7B,yBACL1Q,EAAY,IAAI5oB,GAAMqxB,UAAUpzB,KAAKq8B,gBAAiBrH,EAAIj1B,MAChDK,OAAS40B,EAAI50B,OAEvBJ,KAAKq7B,wBAGLr7B,KAAK4Y,MAAM5X,KAAK,UAChB2pB,EAAUrpB,MAAQtB,KAAKsB,MAAMqpB,GAC7B3qB,KAAK4Y,MAAM9H,MAEJ6Z,CACR,CAMDnT,UACE,OAAOxX,KAAK46B,OAAO,WAAW76B,GAC/B,CAMDg8B,KACE,IAAI/G,EAAMh1B,KAAK46B,OAAO,SAEtB,OADA56B,KAAK06B,OAAO,SACL1F,EAAIj1B,GACZ,CASDoC,QAIE,IAHA,IAAIjG,EAAI,EACJ4+B,EAAK96B,KAAKk1B,UAAUh5B,GAAG4D,KAEpB,SAAWg7B,GAAIA,EAAK96B,KAAKk1B,YAAYh5B,GAAG4D,KAE/C,OAAQg7B,GAEN,IAAK,IACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACH,OAAO96B,KAAKg9B,aAEd,IAAK,IACH,GAAI,SAAWh9B,KAAKk1B,UAAUh5B,EAAI,GAAG4D,KAAM,OAAOE,KAAKqE,WACvD,GAAIrE,KAAKi9B,QAAUj9B,KAAKu2B,OAAQ,OAAOv2B,KAAK+7B,KAC5C,KAAO,KAAO/7B,KAAKk1B,YAAYh5B,GAAG4D,QAC3B,CAAC,IAAK,IAAK,UAAW,SAAU,OAAOiE,QAAQ/D,KAAKk1B,UAAUh5B,GAAG4D,QACxE,GAAI,KAAOE,KAAKk1B,UAAUh5B,GAAG4D,KAE3B,OADAE,KAAKi9B,OAASj9B,KAAKu2B,OACZv2B,KAAK87B,aACP,GAAI97B,KAAKu7B,qBAAuBv7B,KAAK27B,sBAC1C,OAAO37B,KAAKqE,WAGhB,IAAK,IACH,GAAIrE,KAAKi9B,QAAUj9B,KAAKu2B,OAAQ,OAAOv2B,KAAK+7B,KAC5C,KAAO,KAAO/7B,KAAKk1B,UAAUh5B,KAAK4D,MAC7B,YAAcE,KAAKk1B,UAAUh5B,GAAG4D,MAChC,OAASE,KAAKk1B,UAAUh5B,GAAG4D,OAChC,GAAI,KAAOE,KAAKk1B,UAAUh5B,GAAG4D,KAE3B,OADAE,KAAKi9B,OAASj9B,KAAKu2B,OACZv2B,KAAK87B,aACP,GAAI97B,KAAKu7B,qBAAuBv7B,KAAK27B,sBAC1C,OAAO37B,KAAKqE,WAGhB,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,IACL,IAAK,IACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,IACL,IAAK,KACL,IAAK,OACL,IAAK,aAEH,GAAIrE,KAAKi9B,QAAUj9B,KAAKu2B,OACtB,OAAOv2B,KAAK+7B,KAGZ,OADA/7B,KAAKi9B,OAASj9B,KAAKu2B,OACXv2B,KAAKq6B,gBAEX,IAAK,MACL,IAAK,WACH,OAAOr6B,KAAK2rB,WAEd,IAAK,OACL,IAAK,UACL,IAAK,SACH,MAAO,KAAOmP,EACV96B,KAAKk9B,YACLl9B,KAAKqE,WACX,IAAK,WACL,IAAK,cACH,OAAOrE,KAAKu7B,oBACRv7B,KAAKqE,WACLrE,KAAK87B,aAEX,QACE,OAAO97B,KAAKm9B,QACRn9B,KAAK+7B,KACL/7B,KAAK87B,aAIjB,QACE,OAAQ97B,KAAKq6B,gBACX,IAAK,OACH,OAAOr6B,KAAKqE,WACd,IAAK,MACL,IAAK,WACL,IAAK,WACL,IAAK,cACL,IAAK,UACL,IAAK,SACH,OAAOrE,KAAK2rB,WACd,QACE,IAAIoQ,EAAK/7B,KAAK+7B,KAEd,MADI,iBAAmB/7B,KAAKs6B,kBAAiByB,EAAG5Q,OAAQ,GACjD4Q,GAGhB,CAMDzR,cACE,IAAI9pB,EACAyyB,EAAO,GAMX,IAHOjzB,KAAK06B,OAAO,MACTzH,EAAKjyB,KAAK,IAAIe,GAAMwH,QAAQ,QAGpC,GAAIvJ,KAAK06B,OAAO,KACd16B,KAAK4Y,MAAM5X,KAAK,iBAChBiyB,EAAKjyB,KAAKhB,KAAK87B,cACf97B,KAAK46B,OAAO,KACZ56B,KAAK4Y,MAAM9H,WACN,GAAItQ,EAAOR,KAAK06B,OAAO,KAC5BzH,EAAKjyB,KAAK,IAAIe,GAAMwH,QAAQ,UACvB,MAAI/I,EAAOR,KAAK06B,OAAO,UAG5B,MAFAzH,EAAKjyB,KAAKR,EAAKT,IAGhB,CAGH,OADKkzB,EAAK92B,QAAQ6D,KAAK46B,OAAO,SACvB3H,CACR,CAODtH,WACE,GAAI3rB,KAAKu7B,mBAAkB,GAAO,OAAOv7B,KAAKqE,WAG9C,IAAIlC,EAAQnC,KAAKsqB,cACb5gB,EAAO,IAAI3H,GAAMwJ,SAASpJ,GAC1B3C,EAAMkK,EAiBV,OAdA1J,KAAK06B,OAAO,SACR16B,KAAK06B,OAAO,MAAM16B,KAAK06B,OAAO,SAElC16B,KAAK4Y,MAAM5X,KAAK,YAChBhB,KAAK48B,YAAa,EAClBlzB,EAAKhD,KAAO1G,KAAKqJ,OACbK,EAAKhD,KAAKgN,UAASlU,EAAM2C,EAAM,IACnCnC,KAAK48B,YAAa,EAClB58B,KAAK67B,cAAe,EACpB77B,KAAK4Y,MAAM9H,MAGX9Q,KAAK06B,OAAO,KAELl7B,CACR,CAQD6E,WACE,IAAIgE,EAIAhE,EAHAkR,EAAQ,IAAIxT,GAAMmV,MAClBxU,EAAQ1C,KAAKs8B,cACbc,EAAS,QAAUp9B,KAAKq6B,eAG5B,GAEEr6B,KAAK06B,OAAO,WAEZryB,EAAMrI,KAAKq8B,gBAGPe,GAAU16B,GAAO2F,EAAIY,QAAQ,IAAIlH,GAAMwH,QAAQ7G,EAAQ,MACvD2F,EAAIlM,UACNkI,EAAW,IAAItC,GAAMkV,SAAS5O,IACrBlI,OAASkI,EAAI,GAAGlI,OACzBkE,EAASjE,OAASiI,EAAI,GAAGjI,OACzBmV,EAAMvU,KAAKqD,UAENrE,KAAK06B,OAAO,MAAQ16B,KAAK06B,OAAO,YAEzC,MAAI,kBAAoB16B,KAAKq6B,eAAuB9kB,EAAMxT,OAE1D/B,KAAK4Y,MAAM5X,KAAK,YAChBuU,EAAMjU,MAAQtB,KAAKsB,MAAMiU,GACzBvV,KAAK4Y,MAAM9H,MAEJyE,EACR,CAED8mB,gBAOE,IANA,IAAIrH,EACA3sB,EAAM,GAKH2sB,EAAMh1B,KAAKk7B,iBAGhB,OAAQlG,EAAIl1B,MACV,IAAK,IACHE,KAAKuD,aACL,IAAImD,EAAO1G,KAAK87B,aAChB97B,KAAKuD,aACLvD,KAAK46B,OAAO,KACZvyB,EAAIrH,KAAK0F,GACT,MACF,KAAK1G,KAAK+O,QAAU,IAClB,IAAIyI,EAAU,IAAIzV,GAAMwH,QAAQyrB,EAAIj1B,IAAMC,KAAK+O,QAC/CyI,EAAQkX,UAAW,EACnBrmB,EAAIrH,KAAKwW,GACT,MACF,IAAK,UAEH,MACF,IAAK,QACL,IAAK,OACHnP,EAAIrH,KAAK,IAAIe,GAAMwH,QAAQyrB,EAAIj1B,IAAI+D,MACnC,MACF,IAAK,QACHuE,EAAIrH,KAAK,IAAIe,GAAMwH,QAAQ,MAC3B,MACF,IAAK,WACHlB,EAAIrH,KAAK,IAAIe,GAAMwH,QAAQyrB,EAAIj1B,IAAIjD,KAAO,MAC1C,MACF,IAAK,QACHuL,EAAIrH,KAAK,IAAIe,GAAMwH,QAAQyrB,EAAIj1B,IAAIjD,MAAQk4B,EAAIj1B,IAAIsK,SACnD,MACF,QACEhC,EAAIrH,KAAK,IAAIe,GAAMwH,QAAQyrB,EAAIj1B,MAC3Bi1B,EAAI9e,OAAO7N,EAAIrH,KAAK,IAAIe,GAAMwH,QAAQ,MAIhD,OAAOlB,CACR,CAMD20B,aACE,IACEptB,EACApP,EACA2B,EAAQnC,KAAK+7B,KACbj/B,EAAOqF,EAAMrF,KAEf,GAAI8S,EACF5P,KAAK06B,OAAO,MACT16B,KAAK06B,OAAO,OACZ16B,KAAK06B,OAAO,OACZ16B,KAAK06B,OAAO,OACZ16B,KAAK06B,OAAO,OACZ16B,KAAK06B,OAAO,OACZ16B,KAAK06B,OAAO,MAAO,CACtB16B,KAAK4Y,MAAM5X,KAAK,cAChB,IAAI0F,EAAO1G,KAAKqJ,OAUhB,OARI3C,EAAKgN,SAAS1T,KAAK47B,cAAcl1B,IACrClG,EAAO,IAAIuB,GAAMwF,MAAMzK,EAAM4J,IAExBvG,OAASgC,EAAMhC,OACpBK,EAAKJ,OAAS+B,EAAM/B,OAEpBJ,KAAK4Y,MAAM9H,MAEHlB,EAAG9P,MACT,IAAK,KACH,IAAIu9B,EAAU,IAAIt7B,GAAM4vB,MAAM,aAAcnxB,GACxCe,EAAS,IAAIQ,GAAMqF,WACvB7F,EAAOP,KAAK,IAAIe,GAAMwF,MAAMzK,IAC5B0D,EAAO,IAAIuB,GAAM6vB,QAAQyL,EAAS97B,EAAQf,GAC1C,MACF,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACHA,EAAKT,IAAM,IAAIgC,GAAM4vB,MAAM/hB,EAAG9P,KAAK,GAAI,IAAIiC,GAAMwF,MAAMzK,GAAO4J,GAGnE,CAED,OAAOlG,CACR,CAODu1B,WACE,IAEIf,EAFAmF,EAAS,EACTj+B,EAAI,EAMRsC,EACA,KAAOw2B,EAAMh1B,KAAKk1B,UAAUh5B,MAC1B,OAAQ84B,EAAIl1B,MACV,IAAK,WACL,IAAK,MACDq6B,EACF,MACF,IAAK,IACH,MAAOA,EAAQ,MAAM37B,EACrB,MACF,IAAK,MACHwB,KAAK6N,MAAM,oCAKjB,MACO,eADC7N,KAAKq6B,eAEFr6B,KAAKi8B,eAELj8B,KAAKs7B,4BAA4Bp/B,GACpC8D,KAAKs9B,qBACLt9B,KAAK87B,YAEd,CAMDzU,MACErnB,KAAK46B,OAAO,YACZ56B,KAAK4Y,MAAM5X,KAAK,sBAChB,IAAI+U,EAAO/V,KAAK+V,OAGhB,OAFA/V,KAAK46B,OAAO,KACZ56B,KAAK4Y,MAAM9H,MACJ,IAAI/O,GAAMirB,KAAK,MAAOjX,EAC9B,CAMDkmB,eACE,IAAIsB,EAAYv9B,KAAK06B,OAAO,KAC5B,GAAI,OAAS16B,KAAKu2B,OAAOx2B,IAAIjD,KAAM,OAAOkD,KAAKqnB,MAE/C,IAAI2N,EAAMh1B,KAAK46B,OAAO,YAAY76B,IAC9BjD,EAAOk4B,EAAIl4B,KAEfkD,KAAK4Y,MAAM5X,KAAK,sBAChBhB,KAAKm6B,SACL,IAAIpkB,EAAO/V,KAAK+V,OAChB/V,KAAK46B,OAAO,KACZ56B,KAAKm6B,SACLn6B,KAAK4Y,MAAM9H,MACX,IAAIhC,EAAO,IAAI/M,GAAMirB,KAAKlwB,EAAMiZ,GAUhC,OARAjH,EAAK1O,OAAS40B,EAAI50B,OAClB0O,EAAK3O,OAAS60B,EAAI70B,OAEdo9B,IACFv9B,KAAK4Y,MAAM5X,KAAK,YAChB8N,EAAKxN,MAAQtB,KAAKsB,MAAMwN,GACxB9O,KAAK4Y,MAAM9H,OAENhC,CACR,CAMDwuB,qBACE,IACEtI,EAAMh1B,KAAK46B,OAAO,YAClB99B,EAAOk4B,EAAIj1B,IAAIjD,KAGjBkD,KAAK4Y,MAAM5X,KAAK,mBAChBhB,KAAKu6B,iBACL,IAAI1uB,EAAS7L,KAAK6L,SAClB7L,KAAKu6B,iBACLv6B,KAAK46B,OAAO,KACZ56B,KAAK4Y,MAAM9H,MAGX9Q,KAAK4Y,MAAM5X,KAAK,YAChB,IAAIP,EAAK,IAAIsB,GAAMooB,SAASrtB,EAAM+O,GAOlC,OALApL,EAAGL,OAAS40B,EAAI50B,OAChBK,EAAGN,OAAS60B,EAAI70B,OAEhBM,EAAGa,MAAQtB,KAAKsB,MAAMb,GACtBT,KAAK4Y,MAAM9H,MACJ,IAAI/O,GAAMwF,MAAMzK,EAAM2D,EAC9B,CASDoL,SAIE,IAHA,IAAImpB,EACAx0B,EACAqL,EAAS,IAAI9J,GAAMmxB,OAChB8B,EAAMh1B,KAAK06B,OAAO,UACvB16B,KAAK06B,OAAO,SACZ7uB,EAAO7K,KAAKR,EAAOw0B,EAAIj1B,KACnBC,KAAK06B,OAAO,OACdl6B,EAAKutB,MAAO,EACH/tB,KAAK06B,OAAO,OACrBl6B,EAAKT,IAAMC,KAAK87B,cAElB97B,KAAKu6B,iBACLv6B,KAAK06B,OAAO,KACZ16B,KAAKu6B,iBAEP,OAAO1uB,CACR,CAMDkK,OACE,IACI4f,EADA5f,EAAO,IAAIhU,GAAM+qB,UAGrB,GAEM,SAAW9sB,KAAKu2B,OAAOz2B,MAAQ,KAAOE,KAAKk1B,UAAU,GAAGp1B,MAC1D61B,EAAU31B,KAAKi1B,OAAOl1B,IAAIsK,OAC1BrK,KAAK46B,OAAO,KACZ7kB,EAAKtU,IAAIk0B,GAAW31B,KAAK87B,cAGzB/lB,EAAK/U,KAAKhB,KAAK87B,oBAEV97B,KAAK06B,OAAO,MAErB,OAAO3kB,CACR,CAMD1M,OAGE,IAFA,IAAI7I,EAAOR,KAAK87B,aAET97B,KAAK06B,OAAO,MACjB,GAAIl6B,EAAKyO,OACP5F,EAAKrI,KAAKhB,KAAK87B,kBACV,CACL,IAAIzyB,EAAO,IAAItH,GAAMqF,YAAW,GAChCiC,EAAKrI,KAAKR,GACV6I,EAAKrI,KAAKhB,KAAK87B,cACft7B,EAAO6I,CACR,CAEH,OAAO7I,CACR,CAMDs7B,aACE,IAAIt7B,EACAkG,EAAO,IAAI3E,GAAMqF,WAErB,IADApH,KAAK4Y,MAAM5X,KAAK,cACTR,EAAOR,KAAKw9B,YACZh9B,GAAMR,KAAK6N,MAAM,yCACtBnH,EAAK1F,KAAKR,GAOZ,OALAR,KAAK4Y,MAAM9H,MACPpK,EAAK3E,MAAM5F,SACbuK,EAAKvG,OAASuG,EAAK3E,MAAM,GAAG5B,OAC5BuG,EAAKtG,OAASsG,EAAK3E,MAAM,GAAG3B,QAEvBsG,CACR,CAOD82B,WACE,OAAIx9B,KAAK06B,OAAO,OACP,IAAI34B,GAAM2vB,QAAQ,IAAK1xB,KAAKw9B,YAE9Bx9B,KAAKusB,SACb,CAMDA,UACE,IAAI/rB,EAAOR,KAAKy9B,UAChB,GAAIz9B,KAAK06B,OAAO,KAAM,CACpB,IAAIjO,EAAWzsB,KAAK87B,aACpB97B,KAAK46B,OAAO,KACZ,IAAIlO,EAAY1sB,KAAK87B,aACrBt7B,EAAO,IAAIuB,GAAM6vB,QAAQpxB,EAAMisB,EAAUC,EAC1C,CACD,OAAOlsB,CACR,CAMDi9B,UAGE,IAFA,IAAI7tB,EACApP,EAAOR,KAAK09B,YACT9tB,EAAK5P,KAAK06B,OAAO,OAAS16B,KAAK06B,OAAO,OAC3Cl6B,EAAO,IAAIuB,GAAM4vB,MAAM/hB,EAAG9P,KAAMU,EAAMR,KAAK09B,aAE7C,OAAOl9B,CACR,CAMDk9B,YAGE,IAFA,IAAI9tB,EACApP,EAAOR,KAAK29B,WACT/tB,EAAK5P,KAAK06B,OAAO,SACtB16B,KAAKm9B,SAAU,EACV38B,GAAMR,KAAK6N,MAAM,kBAAoB+B,EAAK,gCAC/CpP,EAAO,IAAIuB,GAAM4vB,MAAM/hB,EAAG9P,KAAMU,EAAMR,KAAK29B,YAC3C39B,KAAKm9B,SAAU,EAEjB,OAAO38B,CACR,CAMDm9B,WAGE,IAFA,IAAI/tB,EACApP,EAAOR,KAAK0vB,KACT9f,EAAK5P,KAAK06B,OAAO,OAAS16B,KAAK06B,OAAO,OAC3C16B,KAAKm9B,SAAU,EACV38B,GAAMR,KAAK6N,MAAM,kBAAoB+B,EAAK,gCAC/CpP,EAAO,IAAIuB,GAAM4vB,MAAM/hB,EAAG9P,KAAMU,EAAMR,KAAK0vB,MAC3C1vB,KAAKm9B,SAAU,EAEjB,OAAO38B,CACR,CAMDkvB,KAEE,IADA,IAAIlvB,EAAOR,KAAK49B,aACT59B,KAAK06B,OAAO,OACjB16B,KAAKm9B,SAAU,EACV38B,GAAMR,KAAK6N,MAAM,iDACtBrN,EAAO,IAAIuB,GAAM4vB,MAAM,KAAMnxB,EAAMR,KAAK49B,cACxC59B,KAAKm9B,SAAU,EAEjB,OAAO38B,CACR,CAMDo9B,aAGE,IAFA,IAAIhuB,EACApP,EAAOR,KAAKgE,QACT4L,EACL5P,KAAK06B,OAAO,OACT16B,KAAK06B,OAAO,OACZ16B,KAAK06B,OAAO,MACZ16B,KAAK06B,OAAO,MAEf16B,KAAKm9B,SAAU,EACV38B,GAAMR,KAAK6N,MAAM,kBAAoB+B,EAAK,gCAC/CpP,EAAO,IAAIuB,GAAM4vB,MAAM/hB,EAAG9P,KAAMU,EAAMR,KAAKgE,SAC3ChE,KAAKm9B,SAAU,EAEjB,OAAO38B,CACR,CAMDwD,QACE,IAAI4L,EACApP,EAAOR,KAAK69B,WAOhB,OANIjuB,EAAK5P,KAAK06B,OAAO,QAAU16B,KAAK06B,OAAO,SACzC16B,KAAKm9B,SAAU,EACV38B,GAAMR,KAAK6N,MAAM,kBAAoB+B,EAAK,gCAC/CpP,EAAO,IAAIuB,GAAM4vB,MAAM/hB,EAAG7P,IAAKS,EAAMR,KAAK69B,YAC1C79B,KAAKm9B,SAAU,GAEV38B,CACR,CAMDq9B,WAGE,IAFA,IAAIjuB,EACApP,EAAOR,KAAK89B,iBACTluB,EAAK5P,KAAK06B,OAAO,MAAQ16B,KAAK06B,OAAO,MAC1C16B,KAAKm9B,SAAU,EACf38B,EAAO,IAAIuB,GAAM4vB,MAAM/hB,EAAG9P,KAAMU,EAAMR,KAAK89B,kBAC3C99B,KAAKm9B,SAAU,EAEjB,OAAO38B,CACR,CAMDs9B,iBAGE,IAFA,IAAIluB,EACApP,EAAOR,KAAKq9B,UACTztB,EACL5P,KAAK06B,OAAO,OACT16B,KAAK06B,OAAO,MACZ16B,KAAK06B,OAAO,MACZ16B,KAAK06B,OAAO,MAAM,CAErB,GADA16B,KAAKm9B,SAAU,EACX,KAAOvtB,GAAM5P,KAAK48B,aAAe58B,KAAKm6B,OAGxC,OAFAn6B,KAAK60B,MAAM7zB,KAAK,IAAIpB,EAAM,UAAW,IAAImC,GAAMwH,QAAQ,OACvDvJ,KAAKm9B,SAAU,EACR38B,EAEFA,GAAMR,KAAK6N,MAAM,kBAAoB+B,EAAK,gCAC/CpP,EAAO,IAAIuB,GAAM4vB,MAAM/hB,EAAG9P,KAAMU,EAAMR,KAAKq9B,WAC3Cr9B,KAAKm9B,SAAU,CAElB,CACD,OAAO38B,CACR,CAOD68B,UACE,IAAI78B,EAAOR,KAAKosB,QAKhB,OAJIpsB,KAAK06B,OAAO,gBACTl6B,GAAMR,KAAK6N,MAAM,yDACtBrN,EAAO,IAAIuB,GAAM4vB,MAAM,aAAcnxB,IAEhCA,CACR,CAOD4rB,QACE,IAAIxc,EACApP,EACJ,OAAIoP,EACF5P,KAAK06B,OAAO,MACT16B,KAAK06B,OAAO,MACZ16B,KAAK06B,OAAO,MACZ16B,KAAK06B,OAAO,OACf16B,KAAKm9B,SAAU,GACf38B,EAAOR,KAAKosB,UACDpsB,KAAK6N,MAAM,kBAAoB+B,EAAK,KAC/CpP,EAAO,IAAIuB,GAAM2vB,QAAQ9hB,EAAG9P,KAAMU,GAClCR,KAAKm9B,SAAU,EACR38B,GAEFR,KAAKk9B,WACb,CAODA,YAGE,IAFG,IAAC18B,EAAOR,KAAK+9B,SAET/9B,KAAK06B,OAAO,MACjBl6B,EAAO,IAAIuB,GAAM4vB,MAAM,KAAMnxB,EAAMR,KAAK87B,cACxC97B,KAAK46B,OAAO,KASd,OANI56B,KAAK06B,OAAO,OACdl6B,EAAKoP,IAAM,IACXpP,EAAKT,IAAMC,KAAKqJ,OAEZ7I,EAAKT,IAAI2T,SAAS1T,KAAK47B,cAAcp7B,EAAKT,MAEzCS,CACR,CAODu9B,SACE,IAAIv9B,EAAOR,KAAKg+B,UAChB,GAAIx9B,EAAM,CACR,KAAOR,KAAK06B,OAAO,MAAM,CACvB,IAAIqB,EAAK,IAAIh6B,GAAMwF,MAAMvH,KAAK46B,OAAO,SAAS76B,IAAIsK,QAClD7J,EAAO,IAAIuB,GAAMsxB,OAAO7yB,EAAMu7B,EAC/B,CACD/7B,KAAKuD,aACDvD,KAAK06B,OAAO,OACdl6B,EAAKT,IAAMC,KAAKqJ,OAEZ7I,EAAKT,IAAI2T,SAAS1T,KAAK47B,cAAcp7B,EAAKT,KAEjD,CACD,OAAOS,CACR,CAOD0P,SACE,IACI6rB,EAAIh8B,EAAKyV,EAAO2S,EADhB7gB,EAAM,IAAIvF,GAAMO,OAKpB,IAHAtC,KAAK46B,OAAO,KACZ56B,KAAKu6B,kBAEGv6B,KAAK06B,OAAO,MACd16B,KAAK06B,OAAO,YACX16B,KAAK06B,OAAO,aAEZllB,GAAOxV,KAAK06B,OAAO,MACxBqB,EAAK/7B,KAAK06B,OAAO,UAAY16B,KAAK06B,OAAO,YAGvC16B,KAAK6N,MAAM,4CAGbsa,EAAO4T,EAAGh8B,IAAIooB,KAEdnoB,KAAKq7B,wBACLr7B,KAAK46B,OAAO,KAEZ76B,EAAMC,KAAK87B,aAEXx0B,EAAImsB,SAAStL,EAAMpoB,GACnBuH,EAAIosB,OAAOvL,EAAM4T,EAAGh8B,KAEpByV,EAAQxV,KAAK06B,OAAO,KACpB16B,KAAKu6B,kBAGP,OAAOjzB,CACR,CAgBD02B,UACE,IAAIhJ,EAIJ,GAHAh1B,KAAKuD,aAGDvD,KAAK06B,OAAO,KAAM,GAClB16B,KAAKm6B,OACP,IAAIzzB,EAAO1G,KAAK87B,aACZ7F,EAAQj2B,KAAK46B,OAAO,KAWxB,QAVE56B,KAAKm6B,OACHn6B,KAAK06B,OAAO,MAAMh0B,EAAK1F,KAAK,IAAIe,GAAMwF,MAAM,MAChDytB,EAAMh1B,KAAKu2B,QAENN,EAAM/f,OACN,SAAW8e,EAAIl1B,OACda,EAAMoD,QAAQixB,EAAIj1B,IAAIsK,UAC1B3D,EAAK1F,KAAK,IAAIe,GAAMwF,MAAMytB,EAAIj1B,IAAIsK,SAClCrK,KAAKi1B,QAEAvuB,CACR,CAKD,QAHAsuB,EAAMh1B,KAAKu2B,QAGCz2B,MACV,IAAK,OACL,IAAK,OACL,IAAK,QACL,IAAK,SACL,IAAK,UACL,IAAK,UACL,IAAK,UACH,OAAOE,KAAKi1B,OAAOl1B,IACrB,KAAMC,KAAKwsB,MAAQ,IACjB,OAAOxsB,KAAKkQ,SACd,IAAK,UACH,OAAOlQ,KAAKktB,UAEd,IAAK,SACH,IAAI6O,EAAK,IAAIh6B,GAAMwF,MAAMvH,KAAKi1B,OAAOl1B,KAErC,OADAg8B,EAAGpQ,UAAW,EACPoQ,EACT,IAAK,QACH,OAAO/7B,KAAKmC,QACd,IAAK,WACH,OAAO6yB,EAAI4B,UACP52B,KAAKs9B,qBACLt9B,KAAKi8B,eAEd,0BCltEH,SAAUgC,QAEJ,IAAuBC,KAAQA,GAAOC,QAAUF,GAGpD,IAGIG,EAAU,CACZC,GAmCF,SAASA,GAAGv+B,EAAMw+B,GAEhB,OADAC,aAAav+B,KAAMF,GAAMkB,KAAKs9B,GACvBt+B,IACR,EArCCipB,KAgDF,SAASA,KAAKnpB,EAAMw+B,GAClB,IAAIE,EAAOx+B,KAGX,OAFAy+B,KAAKC,iBAAmBJ,EACxBC,aAAaC,EAAM1+B,GAAMkB,KAAKy9B,MACvBD,EAEP,SAASC,OACPE,IAAI7vB,KAAK0vB,EAAM1+B,EAAM2+B,MACrBH,EAAKv9B,MAAMf,KAAM3C,UAClB,CACF,EAzDCshC,IAAKA,IACLjW,KAsGF,SAASA,KAAK5oB,EAAMiL,GAClB,IAAIyzB,EAAOx+B,KACP4+B,EAAYL,aAAaC,EAAM1+B,GAAM,GACzC,IAAK8+B,EAAW,OAAO,EACvB,IAAIC,EAASxhC,UAAUlB,OACvB,GAAe,IAAX0iC,EACFD,EAAUv3B,QAAQy3B,cACb,GAAe,IAAXD,EACTD,EAAUv3B,QAAQ03B,YACb,CACL,IAAIhpB,EAAOlV,MAAMm+B,UAAUziC,MAAMuS,KAAKzR,UAAW,GACjDuhC,EAAUv3B,QAAQ43B,SACnB,CACD,QAASL,EAAUziC,OAEnB,SAAS2iC,QAAQR,GACfA,EAAKxvB,KAAK0vB,EACX,CAED,SAASO,OAAOT,GACdA,EAAKxvB,KAAK0vB,EAAMzzB,EACjB,CAED,SAASk0B,SAASX,GAChBA,EAAKv9B,MAAMy9B,EAAMzoB,EAClB,CACF,GAhHD,SAASoV,MAAM+T,GACb,IAAK,IAAI38B,KAAO67B,EACdc,EAAO38B,GAAO67B,EAAQ77B,GAExB,OAAO28B,CACR,CA8CD,SAASP,IAAI7+B,EAAMw+B,GACjB,IACIa,EADAX,EAAOx+B,KAEX,GAAK3C,UAAUlB,QAER,GAAKmiC,GAQV,GADAa,EAAWZ,aAAaC,EAAM1+B,GAAM,GACtB,CAEZ,KADAq/B,EAAWA,EAASrnB,OAAOsnB,KACbjjC,OAAQ,OAAOwiC,IAAI7vB,KAAK0vB,EAAM1+B,GAC5C0+B,EAAc,UAAE1+B,GAAQq/B,CACzB,OAVD,IADAA,EAAWX,EAAc,oBAEhBW,EAASr/B,IACXwC,OAAOD,KAAK88B,GAAUhjC,QAAQ,OAAOwiC,IAAI7vB,KAAK0vB,eAL9CA,EAAc,UAevB,OAAOA,EAEP,SAASY,GAAG3R,GACV,OAAOA,IAAS6Q,GAAQ7Q,EAAKiR,mBAAqBJ,CACnD,CACF,CA2CD,SAASC,aAAaC,EAAM1+B,EAAMu/B,GAChC,IAAIA,GAAab,EAAc,UAA/B,CACA,IAAII,EAAYJ,EAAc,YAAMA,EAAc,UAAI,CAAA,GACtD,OAAOI,EAAU9+B,KAAU8+B,EAAU9+B,GAAQ,GAFJ,CAG1C,CAtIDqrB,MAAM8S,EAAUe,WAGhBf,EAAU9S,MAAQA,KAqInB,CAxJD;;;;;;;;;;;;;;;;;;;;;;;AAJA,SAAS8S,YACP,KAAMj+B,gBAAgBi+B,WAAY,OAAO,IAAIA,SAC/C,IA0Jc,IAAAqB,GAAApB,GAAAC,QClLd,MACgBoB,GAAA,MACZ1/B,cACEG,KAAKyoB,OAAS,IAAIwV,EACnB,CACDI,MAAMtoB,GACJ,OAAO/V,KAAKyoB,OAAO4V,MAAMtoB,EAC1B,CACD4oB,OAAO5oB,GACL,OAAO/V,KAAKyoB,OAAOkW,OAAO5oB,EAC3B,CACDkT,QAAQlT,GACN,OAAO/V,KAAKyoB,OAAOQ,QAAQlT,EAC5B,CACD2S,QAAQ3S,GACN,OAAO/V,KAAKyoB,OAAOC,QAAQ3S,EAC5B,CACD6oB,UAAU9hC,GACR,OAAOkD,KAAKyoB,OAAOmW,WAAa5+B,KAAKyoB,OAAOmW,UAAU9hC,IAAS,EAChE,iBCXD,IAAA4B,GAAU8F,EAAgB9F,QAG9B8gC,GAAA,MAAuBC,qBAAqBn/B,EAU1CT,YAAYjD,EAAMwI,GAChBtE,MAAMlE,GACNoD,KAAK6B,SAAWuD,EAAQvD,SACxB7B,KAAK0E,MAAQU,EAAQV,OAAS,GAC9B1E,KAAK0E,MAAM1D,KAAKtC,GAAQ0G,EAAQvD,UAAY,MAC5C7B,KAAKoF,QAAUA,EACfpF,KAAK2pB,UAAY,GACjB3pB,KAAK0/B,KAAO,EACb,CAGDn/B,MAAMC,GACJ,OAAQA,EAAKsB,UACX,IAAK,OACL,IAAK,QACL,IAAK,aACH9B,KAAKsS,UAAU9R,GACf,MACF,IAAK,QACL,IAAK,QACL,IAAK,UACL,IAAK,SACL,IAAK,YACL,IAAK,OACL,IAAK,WACHR,KAAKO,MAAMC,EAAKc,OAChB,MACF,QACER,MAAMP,MAAMC,GAEjB,CAMD8R,UAAUhR,GACR,IAAK,IAAIpF,EAAI,EAAG0F,EAAMN,EAAMS,MAAM5F,OAAQD,EAAI0F,IAAO1F,EACnD8D,KAAKO,MAAMe,EAAMS,MAAM7F,GAE1B,CAMDwZ,WAAWvT,GACTnC,KAAKO,MAAM4B,EAAMpC,IAClB,CAMDotB,QAAQ3sB,GACNR,KAAKO,MAAMC,EAAKc,OAChBtB,KAAKO,MAAMC,EAAKgsB,MAChB,IAAK,IAAItwB,EAAI,EAAG0F,EAAMpB,EAAK8sB,MAAMnxB,OAAQD,EAAI0F,IAAO1F,EAClD8D,KAAKO,MAAMC,EAAK8sB,MAAMpxB,GAEzB,CAMDmY,cAAc5T,GACZT,KAAK2pB,UAAUlpB,EAAG3D,MAAQ2D,EAAGa,KAC9B,CAMDwU,UAAUhH,GACJA,EAAKhS,QAAQkD,KAAK2pB,WAAW3pB,KAAKO,MAAMP,KAAK2pB,UAAU7a,EAAKhS,OAC5DgS,EAAKxN,OAAOtB,KAAKO,MAAMuO,EAAKxN,MACjC,CAMDqS,YAAYnT,GAEV,GAA6B,QAAzBA,EAAKjF,KAAK0M,MAAMnL,KAApB,CAEA,IACI0a,EAAS1S,EAAO66B,EADhBpkC,GAAQiF,EAAKjF,KAAK0M,MAAMlI,IAAI6M,QAAUpM,EAAKjF,KAAK0M,MAAMlI,KAAOS,EAAKjF,KAAK0M,MAAMnL,KAGjF,GAAKvB,KAELic,EAAU,eAAeiW,KAAKlyB,KAGb,WAAWkyB,KAAKlyB,KAC/BokC,EAAUpkC,EACVA,GAAQ,WAIVuJ,EAAQ4oB,EAAWnyB,EAAMyE,KAAK0E,MAAO1E,KAAK6B,YAG5B89B,IAAS76B,EAAQ6oB,qBAAkBgS,EAAS3/B,KAAK0E,MAAO1E,KAAK6B,WAEtEiD,IAEL9E,KAAK0/B,KAAO1/B,KAAK0/B,KAAK9zB,OAAO9G,IAEzB0S,IAGJ,IAAK,IAAItb,EAAI,EAAG0F,EAAMkD,EAAM3I,OAAQD,EAAI0F,IAAO1F,EAAG,CAChD,IAAI4sB,EAAOhkB,EAAM5I,GACbS,EAAM+B,GAAQoqB,GACd/lB,EAAMulB,sBAAgBQ,GACtBxnB,EAAQ,IAAIS,GAAMoV,MAClBuB,EAAS,IAAIjQ,GAAO1F,EAAKyN,EAAY,CAAE5T,KAAM0E,GAAStB,KAAKoF,WAEzDpF,KAAK0E,MAAMX,QAAQpH,IAAMqD,KAAK0E,MAAM1D,KAAKrE,GAE/C,IACE2E,EAAQoX,EAAOnZ,OAOhB,CANC,MAAOqF,GAKP,MAJAA,EAAI/C,SAAWinB,EACflkB,EAAIzE,OAASuY,EAAO6Q,MAAMppB,OAC1ByE,EAAIxE,OAASsY,EAAO6Q,MAAMnpB,OAC1BwE,EAAIS,MAAQtC,EACN6B,CACP,CAED5E,KAAKO,MAAMe,EACZ,CAhD0C,CAiD5C,CAMDrE,UAEE,OADA+C,KAAKO,MAAMP,KAAKpD,MACTgjC,EAAW5/B,KAAK0/B,KACxB,GCtJCjX,GAAS,IAAIoX,GAGbliC,GAAO6G,EAAgB7G,YAE3B,MAAMmiC,iBAAiBD,GASrBhgC,YAAYkD,EAAKqC,GACftE,SACAsE,EAAUA,GAAW,IACbwkB,QAAUxkB,EAAQwkB,SAAW,CAAA,EACrCxkB,EAAQukB,UAAYvkB,EAAQukB,WAAa,CAAA,EACzCvkB,EAAQwU,IAAMxU,EAAQwU,KAAO,GAC7BxU,EAAQwU,IAAM/Y,MAAMoG,QAAQ7B,EAAQwU,KAAOxU,EAAQwU,IAAM,CAACxU,EAAQwU,KAClExU,EAAQwR,QAAU,CAACjZ,GAAK,IAAW,yBAAyBiO,OAAOxG,EAAQwR,SAAW,IACtFxR,EAAQV,MAAQU,EAAQV,OAAS,GACjCU,EAAQvD,SAAWuD,EAAQvD,UAAY,SACvCuD,EAAQskB,UAAYtkB,EAAQskB,WAAaA,EACzC1pB,KAAKoF,QAAUA,EACfpF,KAAK+C,IAAMA,EACX/C,KAAKyoB,OAASA,EACf,CASDsX,OAAOt/B,GAIL,IAHA,IAAIiY,EAAS1Y,KAAK0Y,OAAS,IAAIjQ,GAAOzI,KAAK+C,IAAK/C,KAAKoF,SAG5ClJ,EAAI,EAAG0F,EAAM5B,KAAKoF,QAAQwU,IAAIzd,OAAQD,EAAI0F,EAAK1F,IACtD8D,KAAK4Z,IAAI5Z,KAAKoF,QAAQwU,IAAI1d,IAG5B,IACE6F,GAAMF,SAAW7B,KAAKoF,QAAQvD,SAE9B,IAAIm+B,EAAMtnB,EAAOnZ,QAGjBS,KAAKigC,UAAY,IAAIjgC,KAAKoF,QAAQskB,UAAUsW,EAAKhgC,KAAKoF,SACtDpF,KAAK+B,MAAQA,GACb/B,KAAKigC,UAAUC,SAAWlgC,KAC1BggC,EAAMhgC,KAAKigC,UAAU5V,WAIrB2V,EADiB,IAAItpB,EAAWspB,EAAKhgC,KAAKoF,SACzB5H,YAGjB,IAAIuqB,EAAW/nB,KAAKoF,QAAQ+6B,UACxB,IAAA,KAAwCH,EAAKhgC,KAAKoF,SAClD,IAAA,EAAoC46B,EAAKhgC,KAAKoF,SAC9CwP,EAAMmT,EAASjf,UAGf9I,KAAKoF,QAAQ+6B,YAAWngC,KAAKmgC,UAAYpY,EAAStmB,IAAIwtB,SAS3D,CARC,MAAOrqB,GACP,IAAIQ,EAAU,CAAA,EAKd,GAJAA,EAAQC,MAAQT,EAAIS,OAASrF,KAAK+C,IAClCqC,EAAQvD,SAAW+C,EAAI/C,UAAY7B,KAAKoF,QAAQvD,SAChDuD,EAAQjF,OAASyE,EAAIzE,QAAUuY,EAAO6Q,MAAMppB,OAC5CiF,EAAQhF,OAASwE,EAAIxE,QAAUsY,EAAO6Q,MAAMnpB,QACvCK,EAAI,MAAM2/B,yBAAsBx7B,EAAKQ,GAC1C,OAAO3E,EAAG2/B,yBAAsBx7B,EAAKQ,GACtC,CAGD,IAAIw5B,EAAY5+B,KAAK4+B,UAAU,OAC3Bn+B,GAAIm+B,EAAU59B,KAAKP,GACvB,IAASvE,EAAI,EAAG0F,EAAMg9B,EAAUziC,OAAQD,EAAI0F,EAAK1F,IAAK,CACpD,IAAIsD,EAAMo/B,EAAU1iC,GAAG,KAAM0Y,GACzBpV,IAAKoV,EAAMpV,EAChB,CACD,IAAKiB,EAAI,OAAOmU,CACjB,CAUD8qB,KAAK79B,GACH,IAAIw+B,EAAO7vB,EAAY,CAAEwpB,OAAO,GAASh6B,KAAKoF,SAC1CvD,IAAUw+B,EAAKx+B,SAAWA,GAE9B,IAAI49B,EAAeD,GACf9mB,EAAS,IAAIjQ,GAAOzI,KAAK+C,IAAKs9B,GAElC,IAOE,OANAt+B,GAAMF,SAAWw+B,EAAKx+B,SAGP,IAAI49B,EADT/mB,EAAOnZ,QACoB8gC,GAGrBpjC,SAQjB,CAPC,MAAO2H,GACP,IAAIQ,EAAU,CAAA,EAKd,MAJAA,EAAQC,MAAQT,EAAIS,OAASrF,KAAK+C,IAClCqC,EAAQvD,SAAW+C,EAAI/C,UAAYw+B,EAAKx+B,SACxCuD,EAAQjF,OAASyE,EAAIzE,QAAUuY,EAAO6Q,MAAMppB,OAC5CiF,EAAQhF,OAASwE,EAAIxE,QAAUsY,EAAO6Q,MAAMnpB,OACtCggC,yBAAsBx7B,EAAKQ,EAClC,CACF,CAWDoC,IAAIjF,EAAKxC,GAEP,OADAC,KAAKoF,QAAQ7C,GAAOxC,EACbC,IACR,CAUDwO,IAAIjM,GACF,OAAOvC,KAAKoF,QAAQ7C,EACrB,CAUD+9B,QAAQ/kC,GAEN,OADAyE,KAAKoF,QAAQV,MAAM1D,KAAKzF,GACjByE,IACR,CAaD4Z,IAAInZ,GAEF,OADAA,EAAGqO,KAAK9O,KAAMA,MACPA,IACR,CAcDwN,OAAO1Q,EAAM2D,EAAIqD,GAGf,OAFArD,EAAKkO,EAAalO,EAAIqD,IAEfhC,UACL9B,KAAKoF,QAAQwkB,QAAQ9sB,GAAQ2D,EACtBT,OAITA,KAAKoF,QAAQukB,UAAU7sB,GAAQ2D,EAC3BnD,MAAawG,IAAKrD,EAAGqD,IAAMA,GACxB9D,KACR,CAUD88B,OAAOhU,GAEL,OADA9oB,KAAKoF,QAAQwR,QAAQ5V,KAAK8nB,GACnB9oB,IACR"} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 59b382d..6a926ed 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,33 +1,35 @@ { "name": "stylus-lang-bundle", - "version": "0.58.1", + "version": "0.64.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "stylus-lang-bundle", - "version": "0.58.1", + "version": "0.64.0", "license": "MIT", "dependencies": { "event-lite": "^0.1.2", "path-browserify": "^1.0.1", - "stylus": "0.63.0", + "stylus": "0.64.0", "tiny-sha1": "^0.2.1" }, "devDependencies": { - "@rollup/plugin-alias": "^3.1.1", - "@rollup/plugin-node-resolve": "^9.0.0", + "@rollup/plugin-alias": "^5.1.1", + "@rollup/plugin-node-resolve": "^16.0.0", "decompress": "^4.2.1", - "glob": "^7.1.6", - "make-fetch-happen": "^8.0.10", + "glob": "^10.4.5", "mocha": "^10.2.0", - "rollup": "^2.75.7", - "rollup-plugin-cjs-es": "^1.0.1", - "rollup-plugin-external-globals": "^0.6.1", - "rollup-plugin-inline-js": "^0.4.0", + "npm-run-all": "^4.1.5", + "rollup": "^2.79.2", + "rollup-plugin-cjs-es": "^1.1.0", + "rollup-plugin-external-globals": "^0.13.0", + "rollup-plugin-inline-js": "^0.5.0", "rollup-plugin-re": "^1.0.7", - "rollup-plugin-terser": "^7.0.2", - "shx": "^0.3.3" + "rollup-plugin-terser": "^7.0.2" + }, + "engines": { + "node": ">=22.12.0" } }, "node_modules/@adobe/css-tools": { @@ -117,6 +119,52 @@ "has-flag": "^3.0.0" } }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "license": "ISC", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.1.tgz", @@ -160,10 +208,11 @@ } }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.13", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.13.tgz", - "integrity": "sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w==", - "dev": true + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "dev": true, + "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.13", @@ -175,66 +224,108 @@ "@jridgewell/sourcemap-codec": "^1.4.10" } }, - "node_modules/@npmcli/move-file": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.0.1.tgz", - "integrity": "sha512-Uv6h1sT+0DrblvIrolFtbvM1FgWm+/sy4B3pvLp67Zys+thcukzS5ekn7HsZFGpWP4Q3fYJCljbWQE/XivMRLw==", - "dev": true, - "dependencies": { - "mkdirp": "^1.0.4" + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" } }, "node_modules/@rollup/plugin-alias": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@rollup/plugin-alias/-/plugin-alias-3.1.1.tgz", - "integrity": "sha512-hNcQY4bpBUIvxekd26DBPgF7BT4mKVNDF5tBG4Zi+3IgwLxGYRY0itHs9D0oLVwXM5pvJDWJlBQro+au8WaUWw==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-alias/-/plugin-alias-5.1.1.tgz", + "integrity": "sha512-PR9zDb+rOzkRb2VD+EuKB7UC41vU5DIwZ5qqCpk0KJudcWAyi8rvYOhS7+L5aZCspw1stTViLgN5v6FF1p5cgQ==", "dev": true, - "dependencies": { - "slash": "^3.0.0" + "license": "MIT", + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } } }, "node_modules/@rollup/plugin-node-resolve": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-9.0.0.tgz", - "integrity": "sha512-gPz+utFHLRrd41WMP13Jq5mqqzHL3OXrfj3/MkSyB6UBIcuNt9j60GCbarzMzdf1VHFpOxfQh/ez7wyadLMqkg==", + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-16.0.0.tgz", + "integrity": "sha512-0FPvAeVUT/zdWoO0jnb/V5BlBsUSNfkIOtFHzMO4H9MOklrmQFY6FduVHKucNb/aTFxvnGhj4MNj/T1oNdDfNg==", "dev": true, + "license": "MIT", "dependencies": { - "@rollup/pluginutils": "^3.1.0", - "@types/resolve": "1.17.1", - "builtin-modules": "^3.1.0", + "@rollup/pluginutils": "^5.0.1", + "@types/resolve": "1.20.2", "deepmerge": "^4.2.2", "is-module": "^1.0.0", - "resolve": "^1.17.0" + "resolve": "^1.22.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^2.78.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } } }, "node_modules/@rollup/pluginutils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", - "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.4.tgz", + "integrity": "sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==", "dev": true, + "license": "MIT", "dependencies": { - "@types/estree": "0.0.39", - "estree-walker": "^1.0.1", - "picomatch": "^2.2.2" + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } } }, "node_modules/@rollup/pluginutils/node_modules/estree-walker": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", - "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", - "dev": true + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true, + "license": "MIT" }, - "node_modules/@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", - "dev": true + "node_modules/@rollup/pluginutils/node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } }, "node_modules/@types/estree": { - "version": "0.0.39", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", - "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", - "dev": true + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "dev": true, + "license": "MIT" }, "node_modules/@types/node": { "version": "14.14.3", @@ -243,13 +334,11 @@ "dev": true }, "node_modules/@types/resolve": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", - "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz", + "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==", "dev": true, - "dependencies": { - "@types/node": "*" - } + "license": "MIT" }, "node_modules/acorn": { "version": "8.7.1", @@ -263,36 +352,6 @@ "node": ">=0.4.0" } }, - "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, - "dependencies": { - "debug": "4" - } - }, - "node_modules/agentkeepalive": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.1.3.tgz", - "integrity": "sha512-wn8fw19xKZwdGPO47jivonaHRTd+nGOMP1z11sgGeQzDy2xd5FG0R67dIMcKHDE2cJ5y+YXV30XVGUBPRSY7Hg==", - "dev": true, - "dependencies": { - "debug": "^4.1.0", - "depd": "^1.1.2", - "humanize-ms": "^1.2.1" - } - }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dev": true, - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - } - }, "node_modules/ansi-colors": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", @@ -302,11 +361,22 @@ "node": ">=6" } }, + "node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, "node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -336,6 +406,61 @@ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", + "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "is-array-buffer": "^3.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", + "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", @@ -364,12 +489,12 @@ } }, "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "balanced-match": "^1.0.0" } }, "node_modules/braces": { @@ -434,35 +559,54 @@ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "dev": true }, - "node_modules/builtin-modules": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.1.0.tgz", - "integrity": "sha512-k0KL0aWZuBt2lrxrcASWDfwOLMnodeQjodT/1SxEQAXsHANgo6ZC/VEaSEHCXt7aSTZ4/4H5LKa+tBXmW7Vtvw==", - "dev": true - }, - "node_modules/cacache": { - "version": "15.0.5", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.0.5.tgz", - "integrity": "sha512-lloiL22n7sOjEEXdL8NAjTgv9a1u43xICE9/203qonkZUCj5X1UEWIdf2/Y0d6QcCtMzbKQyhrcDbdvlZTs/+A==", - "dev": true, - "dependencies": { - "@npmcli/move-file": "^1.0.1", - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "glob": "^7.1.4", - "infer-owner": "^1.0.4", - "lru-cache": "^6.0.0", - "minipass": "^3.1.1", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.2", - "mkdirp": "^1.0.3", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^8.0.0", - "tar": "^6.0.2", - "unique-filename": "^1.1.1" + "node_modules/call-bind": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", + "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.0", + "es-define-property": "^1.0.0", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.1.tgz", + "integrity": "sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.3.tgz", + "integrity": "sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/camelcase": { @@ -520,22 +664,48 @@ "fsevents": "~2.3.2" } }, - "node_modules/chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "dev": true - }, "node_modules/cjs-es": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/cjs-es/-/cjs-es-0.8.2.tgz", - "integrity": "sha512-Z3AHuD0KH36hntFdT5M4c921ygkALhuRRaX8QyYhuOgoHBLeZItE5G3CMg/+m5NQ6b1revYp7Th2h6F8J56i2g==", + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/cjs-es/-/cjs-es-0.9.2.tgz", + "integrity": "sha512-b3dU5kkUWO8slt5DHHgKFgV5ghWbyBCQVa6lJnDA3+zfgil6MnL8JtoqoM01xabrDcgoazizriwvObCm1sXFgg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^4.2.1", + "estree-walker": "^3.0.1", + "is-reference": "^3.0.0", + "magic-string": "^0.26.2" + } + }, + "node_modules/cjs-es/node_modules/@rollup/pluginutils": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz", + "integrity": "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "estree-walker": "^2.0.1", + "picomatch": "^2.2.2" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/cjs-es/node_modules/@rollup/pluginutils/node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true, + "license": "MIT" + }, + "node_modules/cjs-es/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", "dev": true, + "license": "MIT", "dependencies": { - "estree-walker": "^0.6.1", - "is-reference": "^1.1.2", - "magic-string": "^0.25.2", - "rollup-pluginutils": "^2.8.1" + "@types/estree": "^1.0.0" } }, "node_modules/clean-css": { @@ -553,12 +723,6 @@ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true }, - "node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true - }, "node_modules/cliui": { "version": "7.0.4", "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", @@ -579,15 +743,6 @@ "node": ">=8" } }, - "node_modules/cliui/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/cliui/node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", @@ -618,7 +773,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, "dependencies": { "color-name": "~1.1.4" }, @@ -629,8 +783,7 @@ "node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "node_modules/commander": { "version": "2.20.3", @@ -641,7 +794,9 @@ "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" }, "node_modules/config-locator": { "version": "0.1.0", @@ -658,6 +813,74 @@ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", "dev": true }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/data-view-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", + "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", + "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/inspect-js" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", + "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -767,37 +990,77 @@ "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", "dev": true }, - "node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "dev": true - }, - "node_modules/diff": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", - "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, "engines": { - "node": ">=0.3.1" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "node_modules/encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "node_modules/diff": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", + "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", "dev": true, - "optional": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dev": true, + "license": "MIT", "dependencies": { - "iconv-lite": "^0.6.2" + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" } }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "license": "MIT" + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, "node_modules/end-of-stream": { "version": "1.4.4", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", @@ -807,21 +1070,190 @@ "once": "^1.4.0" } }, - "node_modules/err-code": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-1.1.2.tgz", - "integrity": "sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA=", - "dev": true + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-abstract": { + "version": "1.23.9", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.9.tgz", + "integrity": "sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.2", + "arraybuffer.prototype.slice": "^1.0.4", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "data-view-buffer": "^1.0.2", + "data-view-byte-length": "^1.0.2", + "data-view-byte-offset": "^1.0.1", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.1.0", + "es-to-primitive": "^1.3.0", + "function.prototype.name": "^1.1.8", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.0", + "get-symbol-description": "^1.1.0", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "internal-slot": "^1.1.0", + "is-array-buffer": "^3.0.5", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.2", + "is-regex": "^1.2.1", + "is-shared-array-buffer": "^1.0.4", + "is-string": "^1.1.1", + "is-typed-array": "^1.1.15", + "is-weakref": "^1.1.0", + "math-intrinsics": "^1.1.0", + "object-inspect": "^1.13.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.7", + "own-keys": "^1.0.1", + "regexp.prototype.flags": "^1.5.3", + "safe-array-concat": "^1.1.3", + "safe-push-apply": "^1.0.0", + "safe-regex-test": "^1.1.0", + "set-proto": "^1.0.0", + "string.prototype.trim": "^1.2.10", + "string.prototype.trimend": "^1.0.9", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.3", + "typed-array-byte-length": "^1.0.3", + "typed-array-byte-offset": "^1.0.4", + "typed-array-length": "^1.0.7", + "unbox-primitive": "^1.1.0", + "which-typed-array": "^1.1.18" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } }, "node_modules/es-info": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/es-info/-/es-info-0.3.0.tgz", - "integrity": "sha512-mcw8DZ6/PiZzT6lvwL5yUz9y1U8BJc4CLNsblFQwquc+VX0ByqzHgg/31smKU2LB2exlKAZXMABksL/F96Lhbw==", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/es-info/-/es-info-0.4.0.tgz", + "integrity": "sha512-fH+6WU7kIhEFM0tkQwMlpVn9N+Kk1oj8IxuwiNj55fEMiSrJG9e73C/WKYvk5Eeg+X3zsr+nfGd1588Th+DmtQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^4.2.1", + "estree-walker": "^3.0.1", + "is-reference": "^3.0.0" + } + }, + "node_modules/es-info/node_modules/@rollup/pluginutils": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz", + "integrity": "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==", "dev": true, + "license": "MIT", + "dependencies": { + "estree-walker": "^2.0.1", + "picomatch": "^2.2.2" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/es-info/node_modules/@rollup/pluginutils/node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true, + "license": "MIT" + }, + "node_modules/es-info/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/es-object-atoms": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", + "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-to-primitive": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", + "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", + "dev": true, + "license": "MIT", "dependencies": { - "estree-walker": "^0.6.1", - "is-reference": "^1.1.2", - "rollup-pluginutils": "^2.8.1" + "is-callable": "^1.2.7", + "is-date-object": "^1.0.5", + "is-symbol": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/escalade": { @@ -908,25 +1340,44 @@ "flat": "cli.js" } }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/foreground-child": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", + "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/fs-constants": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", "dev": true }, - "node_modules/fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0" - } - }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true, + "license": "ISC" }, "node_modules/fsevents": { "version": "2.3.2", @@ -943,10 +1394,45 @@ } }, "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz", + "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "functions-have-names": "^1.2.3", + "hasown": "^2.0.2", + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/get-caller-file": { "version": "2.0.5", @@ -957,6 +1443,45 @@ "node": "6.* || 8.* || >= 10.*" } }, + "node_modules/get-intrinsic": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.7.tgz", + "integrity": "sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "function-bind": "^1.1.2", + "get-proto": "^1.0.0", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/get-stream": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-2.3.1.tgz", @@ -967,20 +1492,39 @@ "pinkie-promise": "^2.0.0" } }, - "node_modules/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "node_modules/get-symbol-description": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", + "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", + "dev": true, + "license": "MIT", "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6" }, "engines": { - "node": "*" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -998,19 +1542,53 @@ "node": ">= 6" } }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/graceful-fs": { "version": "4.2.4", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", "dev": true }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "node_modules/has-bigints": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", + "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", "dev": true, - "dependencies": { - "function-bind": "^1.1.1" + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/has-flag": { @@ -1019,89 +1597,106 @@ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, - "node_modules/he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", "dev": true, - "bin": { - "he": "bin/he" + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/http-cache-semantics": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", - "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", - "dev": true - }, - "node_modules/http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "node_modules/has-proto": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", + "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", "dev": true, + "license": "MIT", "dependencies": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" + "dunder-proto": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", "dev": true, - "dependencies": { - "agent-base": "6", - "debug": "4" + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/humanize-ms": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", - "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", "dev": true, + "license": "MIT", "dependencies": { - "ms": "^2.0.0" + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/iconv-lite": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz", - "integrity": "sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==", + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", "dev": true, - "optional": true, + "license": "MIT", "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" } }, - "node_modules/ieee754": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", - "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==", - "dev": true - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true - }, - "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "bin": { + "he": "bin/he" + } }, - "node_modules/infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", + "node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true, + "license": "ISC" + }, + "node_modules/ieee754": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", + "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==", "dev": true }, "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dev": true, + "license": "ISC", "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -1110,7 +1705,8 @@ "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true }, "node_modules/inline-js-core": { "version": "0.5.0", @@ -1140,17 +1736,80 @@ "mime": "^2.4.6" } }, - "node_modules/interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", - "dev": true + "node_modules/internal-slot": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", + "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.2", + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + } }, - "node_modules/ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", - "dev": true + "node_modules/is-array-buffer": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", + "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-async-function": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.0.tgz", + "integrity": "sha512-GExz9MtyhlZyXYLxzlJRj5WUCE661zhDa1Yna52CN57AJsymh+DvXXjyveSioqSRdxvUrdKdvqB1b5cVKsNpWQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", + "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-bigints": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/is-binary-path": { "version": "2.1.0", @@ -1161,13 +1820,85 @@ "binary-extensions": "^2.0.0" } }, + "node_modules/is-boolean-object": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.1.tgz", + "integrity": "sha512-l9qO6eFlUETHtuihLcYOaLKByJ1f+N4kthcU9YjHy3N+B3hWv0y/2Nd0mu/7lTFnRQHTrSdXF50HQ3bl5fEnng==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-core-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.0.0.tgz", - "integrity": "sha512-jq1AH6C8MuteOoBPwkxHafmByhL9j5q4OaPGdbuD+ZtQJVzH+i6E3BJDQcBA09k57i2Hh2yQbEG8yObZ0jdlWw==", + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-view": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", + "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", + "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", "dev": true, + "license": "MIT", "dependencies": { - "has": "^1.0.3" + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-extglob": { @@ -1179,6 +1910,50 @@ "node": ">=0.10.0" } }, + "node_modules/is-finalizationregistry": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", + "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-function": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.0.tgz", + "integrity": "sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "get-proto": "^1.0.0", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-glob": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", @@ -1191,11 +1966,18 @@ "node": ">=0.10.0" } }, - "node_modules/is-lambda": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", - "integrity": "sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU=", - "dev": true + "node_modules/is-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/is-module": { "version": "1.0.0", @@ -1218,6 +2000,23 @@ "node": ">=0.12.0" } }, + "node_modules/is-number-object": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", + "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-plain-obj": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", @@ -1228,12 +2027,61 @@ } }, "node_modules/is-reference": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.3.tgz", + "integrity": "sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.6" + } + }, + "node_modules/is-regex": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", - "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", + "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-set": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", + "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", "dev": true, + "license": "MIT", "dependencies": { - "@types/estree": "*" + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-stream": { @@ -1242,6 +2090,57 @@ "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", "dev": true }, + "node_modules/is-string": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", + "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", + "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-symbols": "^1.1.0", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", + "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-unicode-supported": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", @@ -1254,12 +2153,79 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/is-weakmap": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.0.tgz", + "integrity": "sha512-SXM8Nwyys6nT5WP6pltOwKytLV7FqQ4UiibxVmW+EIosHcmCqkkjViTb5SNssDlkCiEYRP1/pdWUKVvZBmsR2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", + "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", "dev": true }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "license": "ISC" + }, + "node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, "node_modules/jest-worker": { "version": "26.6.2", "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", @@ -1292,18 +2258,51 @@ "js-yaml": "bin/js-yaml.js" } }, - "node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "node_modules/json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", "dev": true, + "license": "MIT" + }, + "node_modules/load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", + "dev": true, + "license": "MIT", "dependencies": { - "p-locate": "^5.0.0" + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" }, "engines": { - "node": ">=10" - }, - "funding": { + "node": ">=4" + } + }, + "node_modules/load-json-file/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, @@ -1323,22 +2322,17 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - } - }, "node_modules/magic-string": { - "version": "0.25.7", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", - "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", + "version": "0.26.7", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.26.7.tgz", + "integrity": "sha512-hX9XH3ziStPoPhJxLq1syWuZMxbDvGNbVchfrdCtanC7D13888bMFow61x8axrx+GfHLtVeAx2kxL7tTGRl+Ow==", "dev": true, + "license": "MIT", "dependencies": { - "sourcemap-codec": "^1.4.4" + "sourcemap-codec": "^1.4.8" + }, + "engines": { + "node": ">=12" } }, "node_modules/make-dir": { @@ -1356,27 +2350,23 @@ "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", "dev": true }, - "node_modules/make-fetch-happen": { - "version": "8.0.10", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-8.0.10.tgz", - "integrity": "sha512-jPLPKQjBmDLK5r1BdyDyNKBytmkv2AsDWm2CxHJh+fqhSmC9Pmb7RQxwOq8xQig9+AWIS49+51k4f6vDQ3VnrQ==", + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/memorystream": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", + "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==", "dev": true, - "dependencies": { - "agentkeepalive": "^4.1.0", - "cacache": "^15.0.0", - "http-cache-semantics": "^4.0.4", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^6.0.0", - "minipass": "^3.1.3", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^1.3.0", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.2", - "promise-retry": "^1.1.1", - "socks-proxy-agent": "^5.0.0", - "ssri": "^8.0.0" + "engines": { + "node": ">= 0.10.0" } }, "node_modules/merge-stream": { @@ -1392,97 +2382,29 @@ "dev": true }, "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "license": "ISC", "dependencies": { - "brace-expansion": "^1.1.7" + "brace-expansion": "^2.0.1" }, "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", - "dev": true - }, - "node_modules/minipass": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz", - "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - } - }, - "node_modules/minipass-collect": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", - "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0" - } - }, - "node_modules/minipass-fetch": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.3.2.tgz", - "integrity": "sha512-/i4fX1ss+Dtwyk++OsAI6SEV+eE1dvI6W+0hORdjfruQ7VD5uYTetJIHcEMjWiEiszWjn2aAtP1CB/Q4KfeoYA==", - "dev": true, - "dependencies": { - "minipass": "^3.1.0", - "minipass-sized": "^1.0.3", - "minizlib": "^2.0.0" + "node": ">=16 || 14 >=14.17" }, - "optionalDependencies": { - "encoding": "^0.1.12" - } - }, - "node_modules/minipass-flush": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", - "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0" - } - }, - "node_modules/minipass-pipeline": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", - "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0" - } - }, - "node_modules/minipass-sized": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", - "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0" + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" } }, - "node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true - }, "node_modules/mocha": { "version": "10.2.0", "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.2.0.tgz", @@ -1523,13 +2445,50 @@ "url": "https://opencollective.com/mochajs" } }, - "node_modules/mocha/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "node_modules/mocha/node_modules/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, + "license": "ISC", "dependencies": { - "balanced-match": "^1.0.0" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/mocha/node_modules/glob/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/mocha/node_modules/glob/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" } }, "node_modules/mocha/node_modules/minimatch": { @@ -1582,12 +2541,32 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, + "node_modules/nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true, + "license": "MIT" + }, "node_modules/node-require-async": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/node-require-async/-/node-require-async-0.2.0.tgz", "integrity": "sha512-N/MiIt1zMRxvNnHDprOGqZmNmgc1LBqtpKya/V7GrIXdPaUFMis20WUtajkwdrb1ddtZ4Qhr7JsW+/u8ZDtETg==", "dev": true }, + "node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", @@ -1597,96 +2576,434 @@ "node": ">=0.10.0" } }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "node_modules/npm-run-all": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz", + "integrity": "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==", + "dev": true, + "license": "MIT", "dependencies": { - "wrappy": "1" + "ansi-styles": "^3.2.1", + "chalk": "^2.4.1", + "cross-spawn": "^6.0.5", + "memorystream": "^0.3.1", + "minimatch": "^3.0.4", + "pidtree": "^0.3.0", + "read-pkg": "^3.0.0", + "shell-quote": "^1.6.1", + "string.prototype.padend": "^3.0.0" + }, + "bin": { + "npm-run-all": "bin/npm-run-all/index.js", + "run-p": "bin/run-p/index.js", + "run-s": "bin/run-s/index.js" + }, + "engines": { + "node": ">= 4" } }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "node_modules/npm-run-all/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, + "license": "MIT", "dependencies": { - "yocto-queue": "^0.1.0" + "color-convert": "^1.9.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=4" } }, - "node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "node_modules/npm-run-all/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, + "license": "MIT", "dependencies": { - "p-limit": "^3.0.2" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/npm-run-all/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=4" } }, - "node_modules/p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "node_modules/npm-run-all/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, + "license": "MIT", "dependencies": { - "aggregate-error": "^3.0.0" + "color-name": "1.1.3" } }, - "node_modules/path-browserify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", - "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==" + "node_modules/npm-run-all/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true, + "license": "MIT" }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "node_modules/npm-run-all/node_modules/cross-spawn": { + "version": "6.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.6.tgz", + "integrity": "sha512-VqCUuhcd1iB+dsv8gxPttb5iZh/D0iubSP21g36KXdEuf6I5JiioesUVjpCdHV9MZRUfVFlvwtIUyPfxo5trtw==", "dev": true, + "license": "MIT", + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, "engines": { - "node": ">=8" + "node": ">=4.8" } }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + "node_modules/npm-run-all/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true + "node_modules/npm-run-all/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } }, - "node_modules/pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", - "dev": true + "node_modules/npm-run-all/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } }, - "node_modules/picomatch": { + "node_modules/npm-run-all/node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-all/node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-all/node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-all/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-all/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + }, + "node_modules/object-inspect": { + "version": "1.13.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.3.tgz", + "integrity": "sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", + "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0", + "has-symbols": "^1.1.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/own-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", + "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.6", + "object-keys": "^1.1.1", + "safe-push-apply": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "license": "BlueOak-1.0.0" + }, + "node_modules/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", + "dev": true, + "license": "MIT", + "dependencies": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==" + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true, + "license": "MIT" + }, + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "license": "ISC" + }, + "node_modules/path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "license": "MIT", + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/path-type/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", + "dev": true + }, + "node_modules/picomatch": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", "dev": true }, + "node_modules/pidtree": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz", + "integrity": "sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==", + "dev": true, + "license": "MIT", + "bin": { + "pidtree": "bin/pidtree.js" + }, + "engines": { + "node": ">=0.10" + } + }, "node_modules/pify": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", @@ -1708,28 +3025,22 @@ "pinkie": "^2.0.0" } }, + "node_modules/possible-typed-array-names": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", + "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", "dev": true }, - "node_modules/promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", - "dev": true - }, - "node_modules/promise-retry": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-1.1.1.tgz", - "integrity": "sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0=", - "dev": true, - "dependencies": { - "err-code": "^1.0.0", - "retry": "^0.10.0" - } - }, "node_modules/randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", @@ -1739,6 +3050,21 @@ "safe-buffer": "^5.1.0" } }, + "node_modules/read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", @@ -1772,13 +3098,48 @@ "node": ">=8.10.0" } }, - "node_modules/rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", + "node_modules/reflect.getprototypeof": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", + "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", "dev": true, + "license": "MIT", "dependencies": { - "resolve": "^1.1.6" + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.1", + "which-builtin-type": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", + "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "set-function-name": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/require-directory": { @@ -1791,35 +3152,32 @@ } }, "node_modules/resolve": { - "version": "1.18.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.18.1.tgz", - "integrity": "sha512-lDfCPaMKfOJXjy0dPayzPdF1phampNWr3qFCjAu+rw/qbQmr5jWH5xN2hwh9QKfw9E5v4hwV7A+jrCmL8yjjqA==", - "dev": true, - "dependencies": { - "is-core-module": "^2.0.0", - "path-parse": "^1.0.6" - } - }, - "node_modules/retry": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz", - "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=", - "dev": true - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "version": "1.22.10", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", + "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", "dev": true, + "license": "MIT", "dependencies": { - "glob": "^7.1.3" + "is-core-module": "^2.16.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/rollup": { - "version": "2.75.7", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.75.7.tgz", - "integrity": "sha512-VSE1iy0eaAYNCxEXaleThdFXqZJ42qDBatAwrfnPlENEZ8erQ+0LYX4JXOLPceWfZpV1VtZwZ3dFCuOZiSyFtQ==", + "version": "2.79.2", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.2.tgz", + "integrity": "sha512-fS6iqSPZDs3dr/y7Od6y5nha8dW1YnbgtsyotCVvoFGKbERG++CVRFv1meyGDE1SNItQA8BrnCw7ScdAhRJ3XQ==", "dev": true, + "license": "MIT", "bin": { "rollup": "dist/bin/rollup" }, @@ -1831,64 +3189,121 @@ } }, "node_modules/rollup-plugin-cjs-es": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/rollup-plugin-cjs-es/-/rollup-plugin-cjs-es-1.0.1.tgz", - "integrity": "sha512-I8PUM9VCOEc1Kyyjuvg9PfVcxEFDu3eeA9OyzMgOpdDdrAUVSgkuqGzgqezyyBbxUfRFai7/n3TBpbM8iCNu7A==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-cjs-es/-/rollup-plugin-cjs-es-1.1.0.tgz", + "integrity": "sha512-dkjMddwfNKtgJiC+B7K0zT4JhayCa6YmGtscyps8enW0QPPig8AhHFNDmHp6lByzw1uAL4buBewvLrTtCwHqsg==", "dev": true, + "license": "MIT", "dependencies": { - "@rollup/pluginutils": "^3.1.0", - "cjs-es": "^0.8.2", - "es-info": "^0.3.0" + "@rollup/pluginutils": "^4.2.1", + "cjs-es": "^0.9.0", + "es-info": "^0.4.0" + }, + "engines": { + "node": ">= 7.10" + }, + "peerDependencies": { + "rollup": "^2.77.2" } }, - "node_modules/rollup-plugin-external-globals": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/rollup-plugin-external-globals/-/rollup-plugin-external-globals-0.6.1.tgz", - "integrity": "sha512-mlp3KNa5sE4Sp9UUR2rjBrxjG79OyZAh/QC18RHIjM+iYkbBwNXSo8DHRMZWtzJTrH8GxQ+SJvCTN3i14uMXIA==", + "node_modules/rollup-plugin-cjs-es/node_modules/@rollup/pluginutils": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz", + "integrity": "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==", "dev": true, + "license": "MIT", "dependencies": { - "@rollup/pluginutils": "^4.0.0", "estree-walker": "^2.0.1", - "is-reference": "^1.2.1", - "magic-string": "^0.25.7" + "picomatch": "^2.2.2" + }, + "engines": { + "node": ">= 8.0.0" } }, - "node_modules/rollup-plugin-external-globals/node_modules/@rollup/pluginutils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.0.0.tgz", - "integrity": "sha512-b5QiJRye4JlSg29bKNEECoKbLuPXZkPEHSgEjjP1CJV1CPdDBybfYHfm6kyq8yK51h/Zsyl8OvWUrp0FUBukEQ==", + "node_modules/rollup-plugin-cjs-es/node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true, + "license": "MIT" + }, + "node_modules/rollup-plugin-external-globals": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-external-globals/-/rollup-plugin-external-globals-0.13.0.tgz", + "integrity": "sha512-wBS3hmoF0OtEnA0lWsmTC6Nhnkk2zjZbfhaX2gLo8VnfNGFdGhiYKwMpIPQPrYbAw+mAYUYmoHYktAl1eZHgVw==", "dev": true, + "license": "MIT", "dependencies": { - "@types/estree": "0.0.45", - "estree-walker": "^2.0.1", - "picomatch": "^2.2.2" + "@rollup/pluginutils": "^5.1.0", + "estree-walker": "^3.0.3", + "is-reference": "^3.0.2", + "magic-string": "^0.30.10" + }, + "peerDependencies": { + "rollup": "^2.25.0 || ^3.3.0 || ^4.1.4" } }, - "node_modules/rollup-plugin-external-globals/node_modules/@types/estree": { - "version": "0.0.45", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.45.tgz", - "integrity": "sha512-jnqIUKDUqJbDIUxm0Uj7bnlMnRm1T/eZ9N+AVMqhPgzrba2GhGG5o/jCTwmdPK709nEZsGoMzXEDUjcXHa3W0g==", - "dev": true - }, "node_modules/rollup-plugin-external-globals/node_modules/estree-walker": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.1.tgz", - "integrity": "sha512-tF0hv+Yi2Ot1cwj9eYHtxC0jB9bmjacjQs6ZBTj82H8JwUywFuc+7E83NWfNMwHXZc11mjfFcVXPe9gEP4B8dg==", - "dev": true + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/rollup-plugin-external-globals/node_modules/magic-string": { + "version": "0.30.17", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", + "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0" + } }, "node_modules/rollup-plugin-inline-js": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/rollup-plugin-inline-js/-/rollup-plugin-inline-js-0.4.0.tgz", - "integrity": "sha512-WckYBGbFrw/TOXCLFQFgxmaY61miozqT1BPMWZlScWe2aYU2aXYFkc7h/nuYrxlKSjeVgkDCs7aSWGxLA2HTfw==", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-inline-js/-/rollup-plugin-inline-js-0.5.0.tgz", + "integrity": "sha512-+cx2dugs9p7b/9gxVWv6YDy1i0FLerltiRhTRXkw7Xba9vnfUMNxOcocWSwQOhFB7bA5XOQpzdZ3gLNKw8ceAg==", "dev": true, + "license": "MIT", "dependencies": { + "@rollup/pluginutils": "^4.1.0", "config-locator": "^0.1.0", "inline-js-core": "^0.5.0", "inline-js-default-resources": "^0.1.0", - "inline-js-default-transforms": "^0.1.1", - "rollup-pluginutils": "^2.8.1" + "inline-js-default-transforms": "^0.1.2" + }, + "engines": { + "node": ">=8" + }, + "peerDependencies": { + "rollup": "^2.38.5" } }, + "node_modules/rollup-plugin-inline-js/node_modules/@rollup/pluginutils": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz", + "integrity": "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "estree-walker": "^2.0.1", + "picomatch": "^2.2.2" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/rollup-plugin-inline-js/node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true, + "license": "MIT" + }, "node_modules/rollup-plugin-re": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/rollup-plugin-re/-/rollup-plugin-re-1.0.7.tgz", @@ -1941,23 +3356,86 @@ "estree-walker": "^0.6.1" } }, + "node_modules/safe-array-concat": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz", + "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "has-symbols": "^1.1.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-array-concat/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true, + "license": "MIT" + }, "node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", "dev": true }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "node_modules/safe-push-apply": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", + "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", "dev": true, - "optional": true + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-push-apply/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true, + "license": "MIT" + }, + "node_modules/safe-regex-test": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", + "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-regex": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/sax": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz", - "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==" + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz", + "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==", + "license": "ISC" }, "node_modules/seek-bzip": { "version": "1.0.6", @@ -1968,6 +3446,16 @@ "commander": "^2.8.1" } }, + "node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, "node_modules/serialize-javascript": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", @@ -1977,64 +3465,175 @@ "randombytes": "^2.1.0" } }, - "node_modules/shelljs": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", - "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", "dev": true, + "license": "MIT", "dependencies": { - "glob": "^7.0.0", - "interpret": "^1.0.0", - "rechoir": "^0.6.2" + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" }, - "bin": { - "shjs": "bin/shjs" + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" }, "engines": { - "node": ">=4" + "node": ">= 0.4" } }, - "node_modules/shx": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/shx/-/shx-0.3.3.tgz", - "integrity": "sha512-nZJ3HFWVoTSyyB+evEKjJ1STiixGztlqwKLTUNV5KqMWtGey9fTd4KU1gdZ1X9BV6215pswQ/Jew9NsuS/fNDA==", + "node_modules/set-proto": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz", + "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", "dev": true, + "license": "MIT", "dependencies": { - "minimist": "^1.2.3", - "shelljs": "^0.8.4" + "dunder-proto": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" } }, - "node_modules/slash": { + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "license": "MIT", + "engines": { + "node": ">=8" + } }, - "node_modules/smart-buffer": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.1.0.tgz", - "integrity": "sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw==", - "dev": true + "node_modules/shell-quote": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.2.tgz", + "integrity": "sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "node_modules/socks": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.5.0.tgz", - "integrity": "sha512-00OqQHp5SCbwm9ecOMJj9aQtMSjwi1uVuGQoxnpKCS50VKZcOZ8z11CTKypmR8sEy7nZimy/qXY7rYJYbRlXmA==", + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", "dev": true, + "license": "MIT", "dependencies": { - "ip": "^1.1.5", - "smart-buffer": "^4.1.0" + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/socks-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-5.0.0.tgz", - "integrity": "sha512-lEpa1zsWCChxiynk+lCycKuC502RxDWLKJZoIhnxrWNjLSDGYRFflHA1/228VkRcnv9TIb8w98derGbpKxJRgA==", - "dev": true, - "dependencies": { - "agent-base": "6", - "debug": "4", - "socks": "^2.3.3" + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/source-map": { @@ -2065,20 +3664,46 @@ "version": "1.4.8", "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", - "dev": true + "deprecated": "Please use @jridgewell/sourcemap-codec instead", + "dev": true, + "license": "MIT" }, - "node_modules/ssri": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", - "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", + "node_modules/spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", "dev": true, + "license": "Apache-2.0", "dependencies": { - "minipass": "^3.1.1" - }, - "engines": { - "node": ">= 8" + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", + "dev": true, + "license": "CC-BY-3.0" + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } }, + "node_modules/spdx-license-ids": { + "version": "3.0.20", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.20.tgz", + "integrity": "sha512-jg25NiDV/1fLtSgEgyvVyDunvaNHbuwF9lfNV17gSmPFAlYzdfNBlLtLzXTevwkPj7DhGbmN9VnmJIgLnhvaBw==", + "dev": true, + "license": "CC0-1.0" + }, "node_modules/string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", @@ -2094,6 +3719,190 @@ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true }, + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "license": "MIT" + }, + "node_modules/string.prototype.padend": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.6.tgz", + "integrity": "sha512-XZpspuSB7vJWhvJc9DLSlrXl1mcA2BdoY5jjnS135ydXqLoqhs96JjDtCkjJEQHvfqZIp9hBuBMgI589peyx9Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.10", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", + "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-data-property": "^1.1.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-object-atoms": "^1.0.0", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz", + "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, "node_modules/strip-dirs": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/strip-dirs/-/strip-dirs-2.1.0.tgz", @@ -2116,21 +3925,22 @@ } }, "node_modules/stylus": { - "version": "0.63.0", - "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.63.0.tgz", - "integrity": "sha512-OMlgrTCPzE/ibtRMoeLVhOY0RcNuNWh0rhAVqeKnk/QwcuUKQbnqhZ1kg2vzD8VU/6h3FoPTq4RJPHgLBvX6Bw==", + "version": "0.64.0", + "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.64.0.tgz", + "integrity": "sha512-ZIdT8eUv8tegmqy1tTIdJv9We2DumkNZFdCF5mz/Kpq3OcTaxSuCAYZge6HKK2CmNC02G1eJig2RV7XTw5hQrA==", + "license": "MIT", "dependencies": { "@adobe/css-tools": "~4.3.3", "debug": "^4.3.2", - "glob": "^7.1.6", - "sax": "~1.3.0", + "glob": "^10.4.5", + "sax": "~1.4.1", "source-map": "^0.7.3" }, "bin": { "stylus": "bin/stylus" }, "engines": { - "node": "*" + "node": ">=16" }, "funding": { "url": "https://opencollective.com/stylus" @@ -2145,21 +3955,17 @@ "has-flag": "^4.0.0" } }, - "node_modules/tar": { - "version": "6.1.11", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", - "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", "dev": true, - "dependencies": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^3.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, + "license": "MIT", "engines": { - "node": ">= 10" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/tar-stream": { @@ -2224,46 +4030,246 @@ "node": ">=8.0" } }, - "node_modules/unbzip2-stream": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", - "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", + "node_modules/typed-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", + "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", + "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", + "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.15", + "reflect.getprototypeof": "^1.0.9" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz", + "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0", + "reflect.getprototypeof": "^1.0.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/unbox-primitive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", + "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-bigints": "^1.0.2", + "has-symbols": "^1.1.0", + "which-boxed-primitive": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/unbzip2-stream": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", + "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", + "dev": true, + "dependencies": { + "buffer": "^5.2.1", + "through": "^2.3.8" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/vlq": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/vlq/-/vlq-0.2.3.tgz", + "integrity": "sha512-DRibZL6DsNhIgYQ+wNdWDL2SL3bKPlVrRiBqV5yuMm++op8W4kGFtaQfCs4KEJn0wBZcHVHJ3eoywX8983k1ow==", + "dev": true + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", + "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-bigint": "^1.1.0", + "is-boolean-object": "^1.2.1", + "is-number-object": "^1.1.1", + "is-string": "^1.1.1", + "is-symbol": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz", + "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "function.prototype.name": "^1.1.6", + "has-tostringtag": "^1.0.2", + "is-async-function": "^2.0.0", + "is-date-object": "^1.1.0", + "is-finalizationregistry": "^1.1.0", + "is-generator-function": "^1.0.10", + "is-regex": "^1.2.1", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.1.0", + "which-collection": "^1.0.2", + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", "dev": true, - "dependencies": { - "buffer": "^5.2.1", - "through": "^2.3.8" - } + "license": "MIT" }, - "node_modules/unique-filename": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "node_modules/which-collection": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", "dev": true, + "license": "MIT", "dependencies": { - "unique-slug": "^2.0.0" + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/unique-slug": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", - "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "node_modules/which-typed-array": { + "version": "1.1.18", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.18.tgz", + "integrity": "sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA==", "dev": true, + "license": "MIT", "dependencies": { - "imurmurhash": "^0.1.4" + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "node_modules/vlq": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/vlq/-/vlq-0.2.3.tgz", - "integrity": "sha512-DRibZL6DsNhIgYQ+wNdWDL2SL3bKPlVrRiBqV5yuMm++op8W4kGFtaQfCs4KEJn0wBZcHVHJ3eoywX8983k1ow==", - "dev": true - }, "node_modules/workerpool": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", @@ -2287,19 +4293,63 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/wrap-ansi/node_modules/ansi-regex": { + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, "engines": { "node": ">=8" @@ -2334,7 +4384,8 @@ "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true }, "node_modules/xtend": { "version": "4.0.2", @@ -2351,12 +4402,6 @@ "node": ">=10" } }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, "node_modules/yargs": { "version": "16.2.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", @@ -2408,15 +4453,6 @@ "node": ">=8" } }, - "node_modules/yargs/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/yargs/node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", @@ -2556,6 +4592,36 @@ } } }, + "@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "requires": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==" + }, + "wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "requires": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + } + } + } + }, "@jridgewell/gen-mapping": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.1.tgz", @@ -2590,9 +4656,9 @@ } }, "@jridgewell/sourcemap-codec": { - "version": "1.4.13", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.13.tgz", - "integrity": "sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", "dev": true }, "@jridgewell/trace-mapping": { @@ -2605,67 +4671,61 @@ "@jridgewell/sourcemap-codec": "^1.4.10" } }, - "@npmcli/move-file": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.0.1.tgz", - "integrity": "sha512-Uv6h1sT+0DrblvIrolFtbvM1FgWm+/sy4B3pvLp67Zys+thcukzS5ekn7HsZFGpWP4Q3fYJCljbWQE/XivMRLw==", - "dev": true, - "requires": { - "mkdirp": "^1.0.4" - } + "@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "optional": true }, "@rollup/plugin-alias": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@rollup/plugin-alias/-/plugin-alias-3.1.1.tgz", - "integrity": "sha512-hNcQY4bpBUIvxekd26DBPgF7BT4mKVNDF5tBG4Zi+3IgwLxGYRY0itHs9D0oLVwXM5pvJDWJlBQro+au8WaUWw==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-alias/-/plugin-alias-5.1.1.tgz", + "integrity": "sha512-PR9zDb+rOzkRb2VD+EuKB7UC41vU5DIwZ5qqCpk0KJudcWAyi8rvYOhS7+L5aZCspw1stTViLgN5v6FF1p5cgQ==", "dev": true, - "requires": { - "slash": "^3.0.0" - } + "requires": {} }, "@rollup/plugin-node-resolve": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-9.0.0.tgz", - "integrity": "sha512-gPz+utFHLRrd41WMP13Jq5mqqzHL3OXrfj3/MkSyB6UBIcuNt9j60GCbarzMzdf1VHFpOxfQh/ez7wyadLMqkg==", + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-16.0.0.tgz", + "integrity": "sha512-0FPvAeVUT/zdWoO0jnb/V5BlBsUSNfkIOtFHzMO4H9MOklrmQFY6FduVHKucNb/aTFxvnGhj4MNj/T1oNdDfNg==", "dev": true, "requires": { - "@rollup/pluginutils": "^3.1.0", - "@types/resolve": "1.17.1", - "builtin-modules": "^3.1.0", + "@rollup/pluginutils": "^5.0.1", + "@types/resolve": "1.20.2", "deepmerge": "^4.2.2", "is-module": "^1.0.0", - "resolve": "^1.17.0" + "resolve": "^1.22.1" } }, "@rollup/pluginutils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", - "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.4.tgz", + "integrity": "sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==", "dev": true, "requires": { - "@types/estree": "0.0.39", - "estree-walker": "^1.0.1", - "picomatch": "^2.2.2" + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^4.0.2" }, "dependencies": { "estree-walker": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", - "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true + }, + "picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", "dev": true } } }, - "@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", - "dev": true - }, "@types/estree": { - "version": "0.0.39", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", - "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", "dev": true }, "@types/node": { @@ -2675,13 +4735,10 @@ "dev": true }, "@types/resolve": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", - "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", - "dev": true, - "requires": { - "@types/node": "*" - } + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz", + "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==", + "dev": true }, "acorn": { "version": "8.7.1", @@ -2689,47 +4746,21 @@ "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", "dev": true }, - "agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, - "requires": { - "debug": "4" - } - }, - "agentkeepalive": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.1.3.tgz", - "integrity": "sha512-wn8fw19xKZwdGPO47jivonaHRTd+nGOMP1z11sgGeQzDy2xd5FG0R67dIMcKHDE2cJ5y+YXV30XVGUBPRSY7Hg==", - "dev": true, - "requires": { - "debug": "^4.1.0", - "depd": "^1.1.2", - "humanize-ms": "^1.2.1" - } - }, - "aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dev": true, - "requires": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - } - }, "ansi-colors": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", "dev": true }, + "ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==" + }, "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, "requires": { "color-convert": "^2.0.1" } @@ -2750,6 +4781,40 @@ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true }, + "array-buffer-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", + "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", + "dev": true, + "requires": { + "call-bound": "^1.0.3", + "is-array-buffer": "^3.0.5" + } + }, + "arraybuffer.prototype.slice": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", + "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", + "dev": true, + "requires": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "is-array-buffer": "^3.0.4" + } + }, + "available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dev": true, + "requires": { + "possible-typed-array-names": "^1.0.0" + } + }, "balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", @@ -2778,12 +4843,11 @@ } }, "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "balanced-match": "^1.0.0" } }, "braces": { @@ -2845,35 +4909,36 @@ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "dev": true }, - "builtin-modules": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.1.0.tgz", - "integrity": "sha512-k0KL0aWZuBt2lrxrcASWDfwOLMnodeQjodT/1SxEQAXsHANgo6ZC/VEaSEHCXt7aSTZ4/4H5LKa+tBXmW7Vtvw==", - "dev": true - }, - "cacache": { - "version": "15.0.5", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.0.5.tgz", - "integrity": "sha512-lloiL22n7sOjEEXdL8NAjTgv9a1u43xICE9/203qonkZUCj5X1UEWIdf2/Y0d6QcCtMzbKQyhrcDbdvlZTs/+A==", - "dev": true, - "requires": { - "@npmcli/move-file": "^1.0.1", - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "glob": "^7.1.4", - "infer-owner": "^1.0.4", - "lru-cache": "^6.0.0", - "minipass": "^3.1.1", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.2", - "mkdirp": "^1.0.3", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^8.0.0", - "tar": "^6.0.2", - "unique-filename": "^1.1.1" + "call-bind": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", + "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", + "dev": true, + "requires": { + "call-bind-apply-helpers": "^1.0.0", + "es-define-property": "^1.0.0", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.2" + } + }, + "call-bind-apply-helpers": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.1.tgz", + "integrity": "sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==", + "dev": true, + "requires": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + } + }, + "call-bound": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.3.tgz", + "integrity": "sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==", + "dev": true, + "requires": { + "call-bind-apply-helpers": "^1.0.1", + "get-intrinsic": "^1.2.6" } }, "camelcase": { @@ -2908,22 +4973,45 @@ "readdirp": "~3.6.0" } }, - "chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "dev": true - }, "cjs-es": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/cjs-es/-/cjs-es-0.8.2.tgz", - "integrity": "sha512-Z3AHuD0KH36hntFdT5M4c921ygkALhuRRaX8QyYhuOgoHBLeZItE5G3CMg/+m5NQ6b1revYp7Th2h6F8J56i2g==", + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/cjs-es/-/cjs-es-0.9.2.tgz", + "integrity": "sha512-b3dU5kkUWO8slt5DHHgKFgV5ghWbyBCQVa6lJnDA3+zfgil6MnL8JtoqoM01xabrDcgoazizriwvObCm1sXFgg==", "dev": true, "requires": { - "estree-walker": "^0.6.1", - "is-reference": "^1.1.2", - "magic-string": "^0.25.2", - "rollup-pluginutils": "^2.8.1" + "@rollup/pluginutils": "^4.2.1", + "estree-walker": "^3.0.1", + "is-reference": "^3.0.0", + "magic-string": "^0.26.2" + }, + "dependencies": { + "@rollup/pluginutils": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz", + "integrity": "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==", + "dev": true, + "requires": { + "estree-walker": "^2.0.1", + "picomatch": "^2.2.2" + }, + "dependencies": { + "estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true + } + } + }, + "estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dev": true, + "requires": { + "@types/estree": "^1.0.0" + } + } } }, "clean-css": { @@ -2943,12 +5031,6 @@ } } }, - "clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true - }, "cliui": { "version": "7.0.4", "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", @@ -2966,12 +5048,6 @@ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, "string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", @@ -2998,7 +5074,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, "requires": { "color-name": "~1.1.4" } @@ -3006,8 +5081,7 @@ "color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "commander": { "version": "2.20.3", @@ -3018,7 +5092,8 @@ "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true }, "config-locator": { "version": "0.1.0", @@ -3035,6 +5110,49 @@ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", "dev": true }, + "cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "data-view-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", + "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", + "dev": true, + "requires": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + } + }, + "data-view-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", + "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", + "dev": true, + "requires": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + } + }, + "data-view-byte-offset": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", + "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", + "dev": true, + "requires": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + } + }, "debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -3134,58 +5252,214 @@ "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", "dev": true }, - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "requires": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + } + }, + "define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "requires": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + } + }, + "diff": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", + "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", "dev": true }, - "diff": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", - "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", + "dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dev": true, + "requires": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + } + }, + "eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es-abstract": { + "version": "1.23.9", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.9.tgz", + "integrity": "sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==", + "dev": true, + "requires": { + "array-buffer-byte-length": "^1.0.2", + "arraybuffer.prototype.slice": "^1.0.4", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "data-view-buffer": "^1.0.2", + "data-view-byte-length": "^1.0.2", + "data-view-byte-offset": "^1.0.1", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.1.0", + "es-to-primitive": "^1.3.0", + "function.prototype.name": "^1.1.8", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.0", + "get-symbol-description": "^1.1.0", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "internal-slot": "^1.1.0", + "is-array-buffer": "^3.0.5", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.2", + "is-regex": "^1.2.1", + "is-shared-array-buffer": "^1.0.4", + "is-string": "^1.1.1", + "is-typed-array": "^1.1.15", + "is-weakref": "^1.1.0", + "math-intrinsics": "^1.1.0", + "object-inspect": "^1.13.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.7", + "own-keys": "^1.0.1", + "regexp.prototype.flags": "^1.5.3", + "safe-array-concat": "^1.1.3", + "safe-push-apply": "^1.0.0", + "safe-regex-test": "^1.1.0", + "set-proto": "^1.0.0", + "string.prototype.trim": "^1.2.10", + "string.prototype.trimend": "^1.0.9", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.3", + "typed-array-byte-length": "^1.0.3", + "typed-array-byte-offset": "^1.0.4", + "typed-array-length": "^1.0.7", + "unbox-primitive": "^1.1.0", + "which-typed-array": "^1.1.18" + } + }, + "es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", "dev": true }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", "dev": true }, - "encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "es-info": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/es-info/-/es-info-0.4.0.tgz", + "integrity": "sha512-fH+6WU7kIhEFM0tkQwMlpVn9N+Kk1oj8IxuwiNj55fEMiSrJG9e73C/WKYvk5Eeg+X3zsr+nfGd1588Th+DmtQ==", "dev": true, - "optional": true, "requires": { - "iconv-lite": "^0.6.2" + "@rollup/pluginutils": "^4.2.1", + "estree-walker": "^3.0.1", + "is-reference": "^3.0.0" + }, + "dependencies": { + "@rollup/pluginutils": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz", + "integrity": "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==", + "dev": true, + "requires": { + "estree-walker": "^2.0.1", + "picomatch": "^2.2.2" + }, + "dependencies": { + "estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true + } + } + }, + "estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dev": true, + "requires": { + "@types/estree": "^1.0.0" + } + } } }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "es-object-atoms": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", + "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", "dev": true, "requires": { - "once": "^1.4.0" + "es-errors": "^1.3.0" } }, - "err-code": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-1.1.2.tgz", - "integrity": "sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA=", - "dev": true + "es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "dev": true, + "requires": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + } }, - "es-info": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/es-info/-/es-info-0.3.0.tgz", - "integrity": "sha512-mcw8DZ6/PiZzT6lvwL5yUz9y1U8BJc4CLNsblFQwquc+VX0ByqzHgg/31smKU2LB2exlKAZXMABksL/F96Lhbw==", + "es-to-primitive": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", + "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", "dev": true, "requires": { - "estree-walker": "^0.6.1", - "is-reference": "^1.1.2", - "rollup-pluginutils": "^2.8.1" + "is-callable": "^1.2.7", + "is-date-object": "^1.0.5", + "is-symbol": "^1.0.4" } }, "escalade": { @@ -3251,25 +5525,35 @@ "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", "dev": true }, + "for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "requires": { + "is-callable": "^1.1.3" + } + }, + "foreground-child": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", + "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", + "requires": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + } + }, "fs-constants": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", "dev": true }, - "fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "dev": true, - "requires": { - "minipass": "^3.0.0" - } - }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true }, "fsevents": { "version": "2.3.2", @@ -3279,9 +5563,29 @@ "optional": true }, "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true + }, + "function.prototype.name": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz", + "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", + "dev": true, + "requires": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "functions-have-names": "^1.2.3", + "hasown": "^2.0.2", + "is-callable": "^1.2.7" + } + }, + "functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", "dev": true }, "get-caller-file": { @@ -3290,6 +5594,34 @@ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true }, + "get-intrinsic": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.7.tgz", + "integrity": "sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==", + "dev": true, + "requires": { + "call-bind-apply-helpers": "^1.0.1", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "function-bind": "^1.1.2", + "get-proto": "^1.0.0", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + } + }, + "get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dev": true, + "requires": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + } + }, "get-stream": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-2.3.1.tgz", @@ -3300,17 +5632,28 @@ "pinkie-promise": "^2.0.0" } }, + "get-symbol-description": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", + "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", + "dev": true, + "requires": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6" + } + }, "glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" } }, "glob-parent": { @@ -3322,20 +5665,33 @@ "is-glob": "^4.0.1" } }, + "globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, + "requires": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + } + }, + "gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "dev": true + }, "graceful-fs": { "version": "4.2.4", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", "dev": true }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } + "has-bigints": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", + "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", + "dev": true }, "has-flag": { "version": "4.0.0", @@ -3343,86 +5699,71 @@ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, - "he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true - }, - "http-cache-semantics": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", - "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", - "dev": true - }, - "http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", "dev": true, "requires": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" + "es-define-property": "^1.0.0" } }, - "https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", + "has-proto": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", + "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", "dev": true, "requires": { - "agent-base": "6", - "debug": "4" + "dunder-proto": "^1.0.0" } }, - "humanize-ms": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", - "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", + "has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "dev": true + }, + "has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", "dev": true, "requires": { - "ms": "^2.0.0" + "has-symbols": "^1.0.3" } }, - "iconv-lite": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz", - "integrity": "sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==", + "hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", "dev": true, - "optional": true, "requires": { - "safer-buffer": ">= 2.1.2 < 3.0.0" + "function-bind": "^1.1.2" } }, - "ieee754": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", - "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==", - "dev": true - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", "dev": true }, - "indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", "dev": true }, - "infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", + "ieee754": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", + "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==", "dev": true }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, "requires": { "once": "^1.3.0", "wrappy": "1" @@ -3431,7 +5772,8 @@ "inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true }, "inline-js-core": { "version": "0.5.0", @@ -3461,18 +5803,55 @@ "mime": "^2.4.6" } }, - "interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", - "dev": true + "internal-slot": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", + "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", + "dev": true, + "requires": { + "es-errors": "^1.3.0", + "hasown": "^2.0.2", + "side-channel": "^1.1.0" + } + }, + "is-array-buffer": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", + "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", + "dev": true, + "requires": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + } }, - "ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", "dev": true }, + "is-async-function": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.0.tgz", + "integrity": "sha512-GExz9MtyhlZyXYLxzlJRj5WUCE661zhDa1Yna52CN57AJsymh+DvXXjyveSioqSRdxvUrdKdvqB1b5cVKsNpWQ==", + "dev": true, + "requires": { + "call-bound": "^1.0.3", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + } + }, + "is-bigint": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", + "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", + "dev": true, + "requires": { + "has-bigints": "^1.0.2" + } + }, "is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", @@ -3482,13 +5861,50 @@ "binary-extensions": "^2.0.0" } }, + "is-boolean-object": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.1.tgz", + "integrity": "sha512-l9qO6eFlUETHtuihLcYOaLKByJ1f+N4kthcU9YjHy3N+B3hWv0y/2Nd0mu/7lTFnRQHTrSdXF50HQ3bl5fEnng==", + "dev": true, + "requires": { + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" + } + }, + "is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true + }, "is-core-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.0.0.tgz", - "integrity": "sha512-jq1AH6C8MuteOoBPwkxHafmByhL9j5q4OaPGdbuD+ZtQJVzH+i6E3BJDQcBA09k57i2Hh2yQbEG8yObZ0jdlWw==", + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "dev": true, + "requires": { + "hasown": "^2.0.2" + } + }, + "is-data-view": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", + "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", + "dev": true, + "requires": { + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "is-typed-array": "^1.1.13" + } + }, + "is-date-object": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", + "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", "dev": true, "requires": { - "has": "^1.0.3" + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" } }, "is-extglob": { @@ -3497,6 +5913,32 @@ "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true }, + "is-finalizationregistry": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", + "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", + "dev": true, + "requires": { + "call-bound": "^1.0.3" + } + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "is-generator-function": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.0.tgz", + "integrity": "sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==", + "dev": true, + "requires": { + "call-bound": "^1.0.3", + "get-proto": "^1.0.0", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + } + }, "is-glob": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", @@ -3506,10 +5948,10 @@ "is-extglob": "^2.1.1" } }, - "is-lambda": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", - "integrity": "sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU=", + "is-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", "dev": true }, "is-module": { @@ -3530,6 +5972,16 @@ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true }, + "is-number-object": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", + "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", + "dev": true, + "requires": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + } + }, "is-plain-obj": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", @@ -3537,12 +5989,39 @@ "dev": true }, "is-reference": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.3.tgz", + "integrity": "sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw==", + "dev": true, + "requires": { + "@types/estree": "^1.0.6" + } + }, + "is-regex": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", - "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", + "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", + "dev": true, + "requires": { + "call-bound": "^1.0.2", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + } + }, + "is-set": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "dev": true + }, + "is-shared-array-buffer": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", + "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", "dev": true, "requires": { - "@types/estree": "*" + "call-bound": "^1.0.3" } }, "is-stream": { @@ -3551,18 +6030,87 @@ "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", "dev": true }, + "is-string": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", + "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", + "dev": true, + "requires": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + } + }, + "is-symbol": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", + "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", + "dev": true, + "requires": { + "call-bound": "^1.0.2", + "has-symbols": "^1.1.0", + "safe-regex-test": "^1.1.0" + } + }, + "is-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", + "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", + "dev": true, + "requires": { + "which-typed-array": "^1.1.16" + } + }, "is-unicode-supported": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", "dev": true }, + "is-weakmap": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", + "dev": true + }, + "is-weakref": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.0.tgz", + "integrity": "sha512-SXM8Nwyys6nT5WP6pltOwKytLV7FqQ4UiibxVmW+EIosHcmCqkkjViTb5SNssDlkCiEYRP1/pdWUKVvZBmsR2Q==", + "dev": true, + "requires": { + "call-bound": "^1.0.2" + } + }, + "is-weakset": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", + "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", + "dev": true, + "requires": { + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + } + }, "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", "dev": true }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "requires": { + "@isaacs/cliui": "^8.0.2", + "@pkgjs/parseargs": "^0.11.0" + } + }, "jest-worker": { "version": "26.6.2", "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", @@ -3589,6 +6137,32 @@ "argparse": "^2.0.1" } }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true + } + } + }, "locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", @@ -3608,22 +6182,13 @@ "is-unicode-supported": "^0.1.0" } }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, "magic-string": { - "version": "0.25.7", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", - "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", + "version": "0.26.7", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.26.7.tgz", + "integrity": "sha512-hX9XH3ziStPoPhJxLq1syWuZMxbDvGNbVchfrdCtanC7D13888bMFow61x8axrx+GfHLtVeAx2kxL7tTGRl+Ow==", "dev": true, "requires": { - "sourcemap-codec": "^1.4.4" + "sourcemap-codec": "^1.4.8" } }, "make-dir": { @@ -3643,28 +6208,17 @@ } } }, - "make-fetch-happen": { - "version": "8.0.10", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-8.0.10.tgz", - "integrity": "sha512-jPLPKQjBmDLK5r1BdyDyNKBytmkv2AsDWm2CxHJh+fqhSmC9Pmb7RQxwOq8xQig9+AWIS49+51k4f6vDQ3VnrQ==", - "dev": true, - "requires": { - "agentkeepalive": "^4.1.0", - "cacache": "^15.0.0", - "http-cache-semantics": "^4.0.4", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^6.0.0", - "minipass": "^3.1.3", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^1.3.0", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.2", - "promise-retry": "^1.1.1", - "socks-proxy-agent": "^5.0.0", - "ssri": "^8.0.0" - } + "math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "dev": true + }, + "memorystream": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", + "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==", + "dev": true }, "merge-stream": { "version": "2.0.0", @@ -3679,91 +6233,17 @@ "dev": true }, "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "requires": { - "brace-expansion": "^1.1.7" + "brace-expansion": "^2.0.1" } }, - "minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", - "dev": true - }, "minipass": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz", - "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "minipass-collect": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", - "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", - "dev": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "minipass-fetch": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.3.2.tgz", - "integrity": "sha512-/i4fX1ss+Dtwyk++OsAI6SEV+eE1dvI6W+0hORdjfruQ7VD5uYTetJIHcEMjWiEiszWjn2aAtP1CB/Q4KfeoYA==", - "dev": true, - "requires": { - "encoding": "^0.1.12", - "minipass": "^3.1.0", - "minipass-sized": "^1.0.3", - "minizlib": "^2.0.0" - } - }, - "minipass-flush": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", - "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", - "dev": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "minipass-pipeline": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", - "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", - "dev": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "minipass-sized": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", - "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", - "dev": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "dev": true, - "requires": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - } - }, - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==" }, "mocha": { "version": "10.2.0", @@ -3794,13 +6274,39 @@ "yargs-unparser": "2.0.0" }, "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", "dev": true, "requires": { - "balanced-match": "^1.0.0" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "dependencies": { + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } } }, "minimatch": { @@ -3840,32 +6346,225 @@ "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", "dev": true }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, "node-require-async": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/node-require-async/-/node-require-async-0.2.0.tgz", "integrity": "sha512-N/MiIt1zMRxvNnHDprOGqZmNmgc1LBqtpKya/V7GrIXdPaUFMis20WUtajkwdrb1ddtZ4Qhr7JsW+/u8ZDtETg==", "dev": true }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, "normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true }, + "npm-run-all": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz", + "integrity": "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "chalk": "^2.4.1", + "cross-spawn": "^6.0.5", + "memorystream": "^0.3.1", + "minimatch": "^3.0.4", + "pidtree": "^0.3.0", + "read-pkg": "^3.0.0", + "shell-quote": "^1.6.1", + "string.prototype.padend": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "cross-spawn": { + "version": "6.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.6.tgz", + "integrity": "sha512-VqCUuhcd1iB+dsv8gxPttb5iZh/D0iubSP21g36KXdEuf6I5JiioesUVjpCdHV9MZRUfVFlvwtIUyPfxo5trtw==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "dev": true + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", "dev": true }, + "object-inspect": { + "version": "1.13.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.3.tgz", + "integrity": "sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==", + "dev": true + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + }, + "object.assign": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", + "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", + "dev": true, + "requires": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0", + "has-symbols": "^1.1.0", + "object-keys": "^1.1.1" + } + }, "once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, "requires": { "wrappy": "1" } }, + "own-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", + "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==", + "dev": true, + "requires": { + "get-intrinsic": "^1.2.6", + "object-keys": "^1.1.1", + "safe-push-apply": "^1.0.0" + } + }, "p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", @@ -3884,13 +6583,19 @@ "p-limit": "^3.0.2" } }, - "p-map": { + "package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==" + }, + "parse-json": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", "dev": true, "requires": { - "aggregate-error": "^3.0.0" + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" } }, "path-browserify": { @@ -3907,7 +6612,13 @@ "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" }, "path-parse": { "version": "1.0.7", @@ -3915,6 +6626,39 @@ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, + "path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "requires": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "dependencies": { + "lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==" + } + } + }, + "path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "requires": { + "pify": "^3.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true + } + } + }, "pend": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", @@ -3927,6 +6671,12 @@ "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", "dev": true }, + "pidtree": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz", + "integrity": "sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==", + "dev": true + }, "pify": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", @@ -3948,28 +6698,18 @@ "pinkie": "^2.0.0" } }, + "possible-typed-array-names": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", + "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "dev": true + }, "process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", "dev": true }, - "promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", - "dev": true - }, - "promise-retry": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-1.1.1.tgz", - "integrity": "sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0=", - "dev": true, - "requires": { - "err-code": "^1.0.0", - "retry": "^0.10.0" - } - }, "randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", @@ -3979,6 +6719,17 @@ "safe-buffer": "^5.1.0" } }, + "read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==", + "dev": true, + "requires": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + } + }, "readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", @@ -4011,13 +6762,34 @@ "picomatch": "^2.2.1" } }, - "rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", + "reflect.getprototypeof": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", + "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", + "dev": true, + "requires": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.1", + "which-builtin-type": "^1.2.1" + } + }, + "regexp.prototype.flags": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", + "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", "dev": true, "requires": { - "resolve": "^1.1.6" + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "set-function-name": "^2.0.2" } }, "require-directory": { @@ -4027,100 +6799,117 @@ "dev": true }, "resolve": { - "version": "1.18.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.18.1.tgz", - "integrity": "sha512-lDfCPaMKfOJXjy0dPayzPdF1phampNWr3qFCjAu+rw/qbQmr5jWH5xN2hwh9QKfw9E5v4hwV7A+jrCmL8yjjqA==", - "dev": true, - "requires": { - "is-core-module": "^2.0.0", - "path-parse": "^1.0.6" - } - }, - "retry": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz", - "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=", - "dev": true - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "version": "1.22.10", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", + "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", "dev": true, "requires": { - "glob": "^7.1.3" + "is-core-module": "^2.16.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" } }, "rollup": { - "version": "2.75.7", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.75.7.tgz", - "integrity": "sha512-VSE1iy0eaAYNCxEXaleThdFXqZJ42qDBatAwrfnPlENEZ8erQ+0LYX4JXOLPceWfZpV1VtZwZ3dFCuOZiSyFtQ==", + "version": "2.79.2", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.2.tgz", + "integrity": "sha512-fS6iqSPZDs3dr/y7Od6y5nha8dW1YnbgtsyotCVvoFGKbERG++CVRFv1meyGDE1SNItQA8BrnCw7ScdAhRJ3XQ==", "dev": true, "requires": { "fsevents": "~2.3.2" } }, "rollup-plugin-cjs-es": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/rollup-plugin-cjs-es/-/rollup-plugin-cjs-es-1.0.1.tgz", - "integrity": "sha512-I8PUM9VCOEc1Kyyjuvg9PfVcxEFDu3eeA9OyzMgOpdDdrAUVSgkuqGzgqezyyBbxUfRFai7/n3TBpbM8iCNu7A==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-cjs-es/-/rollup-plugin-cjs-es-1.1.0.tgz", + "integrity": "sha512-dkjMddwfNKtgJiC+B7K0zT4JhayCa6YmGtscyps8enW0QPPig8AhHFNDmHp6lByzw1uAL4buBewvLrTtCwHqsg==", "dev": true, "requires": { - "@rollup/pluginutils": "^3.1.0", - "cjs-es": "^0.8.2", - "es-info": "^0.3.0" + "@rollup/pluginutils": "^4.2.1", + "cjs-es": "^0.9.0", + "es-info": "^0.4.0" + }, + "dependencies": { + "@rollup/pluginutils": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz", + "integrity": "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==", + "dev": true, + "requires": { + "estree-walker": "^2.0.1", + "picomatch": "^2.2.2" + } + }, + "estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true + } } }, "rollup-plugin-external-globals": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/rollup-plugin-external-globals/-/rollup-plugin-external-globals-0.6.1.tgz", - "integrity": "sha512-mlp3KNa5sE4Sp9UUR2rjBrxjG79OyZAh/QC18RHIjM+iYkbBwNXSo8DHRMZWtzJTrH8GxQ+SJvCTN3i14uMXIA==", + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-external-globals/-/rollup-plugin-external-globals-0.13.0.tgz", + "integrity": "sha512-wBS3hmoF0OtEnA0lWsmTC6Nhnkk2zjZbfhaX2gLo8VnfNGFdGhiYKwMpIPQPrYbAw+mAYUYmoHYktAl1eZHgVw==", + "dev": true, + "requires": { + "@rollup/pluginutils": "^5.1.0", + "estree-walker": "^3.0.3", + "is-reference": "^3.0.2", + "magic-string": "^0.30.10" + }, + "dependencies": { + "estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dev": true, + "requires": { + "@types/estree": "^1.0.0" + } + }, + "magic-string": { + "version": "0.30.17", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", + "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", + "dev": true, + "requires": { + "@jridgewell/sourcemap-codec": "^1.5.0" + } + } + } + }, + "rollup-plugin-inline-js": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-inline-js/-/rollup-plugin-inline-js-0.5.0.tgz", + "integrity": "sha512-+cx2dugs9p7b/9gxVWv6YDy1i0FLerltiRhTRXkw7Xba9vnfUMNxOcocWSwQOhFB7bA5XOQpzdZ3gLNKw8ceAg==", "dev": true, "requires": { - "@rollup/pluginutils": "^4.0.0", - "estree-walker": "^2.0.1", - "is-reference": "^1.2.1", - "magic-string": "^0.25.7" + "@rollup/pluginutils": "^4.1.0", + "config-locator": "^0.1.0", + "inline-js-core": "^0.5.0", + "inline-js-default-resources": "^0.1.0", + "inline-js-default-transforms": "^0.1.2" }, "dependencies": { "@rollup/pluginutils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.0.0.tgz", - "integrity": "sha512-b5QiJRye4JlSg29bKNEECoKbLuPXZkPEHSgEjjP1CJV1CPdDBybfYHfm6kyq8yK51h/Zsyl8OvWUrp0FUBukEQ==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz", + "integrity": "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==", "dev": true, "requires": { - "@types/estree": "0.0.45", "estree-walker": "^2.0.1", "picomatch": "^2.2.2" } }, - "@types/estree": { - "version": "0.0.45", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.45.tgz", - "integrity": "sha512-jnqIUKDUqJbDIUxm0Uj7bnlMnRm1T/eZ9N+AVMqhPgzrba2GhGG5o/jCTwmdPK709nEZsGoMzXEDUjcXHa3W0g==", - "dev": true - }, "estree-walker": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.1.tgz", - "integrity": "sha512-tF0hv+Yi2Ot1cwj9eYHtxC0jB9bmjacjQs6ZBTj82H8JwUywFuc+7E83NWfNMwHXZc11mjfFcVXPe9gEP4B8dg==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", "dev": true } } }, - "rollup-plugin-inline-js": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/rollup-plugin-inline-js/-/rollup-plugin-inline-js-0.4.0.tgz", - "integrity": "sha512-WckYBGbFrw/TOXCLFQFgxmaY61miozqT1BPMWZlScWe2aYU2aXYFkc7h/nuYrxlKSjeVgkDCs7aSWGxLA2HTfw==", - "dev": true, - "requires": { - "config-locator": "^0.1.0", - "inline-js-core": "^0.5.0", - "inline-js-default-resources": "^0.1.0", - "inline-js-default-transforms": "^0.1.1", - "rollup-pluginutils": "^2.8.1" - } - }, "rollup-plugin-re": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/rollup-plugin-re/-/rollup-plugin-re-1.0.7.tgz", @@ -4174,23 +6963,66 @@ "estree-walker": "^0.6.1" } }, + "safe-array-concat": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz", + "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==", + "dev": true, + "requires": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "has-symbols": "^1.1.0", + "isarray": "^2.0.5" + }, + "dependencies": { + "isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + } + } + }, "safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", "dev": true }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "safe-push-apply": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", + "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", "dev": true, - "optional": true + "requires": { + "es-errors": "^1.3.0", + "isarray": "^2.0.5" + }, + "dependencies": { + "isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + } + } + }, + "safe-regex-test": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", + "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", + "dev": true, + "requires": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-regex": "^1.2.1" + } }, "sax": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz", - "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==" + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz", + "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==" }, "seek-bzip": { "version": "1.0.6", @@ -4201,6 +7033,12 @@ "commander": "^2.8.1" } }, + "semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true + }, "serialize-javascript": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", @@ -4210,60 +7048,115 @@ "randombytes": "^2.1.0" } }, - "shelljs": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", - "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", + "set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", "dev": true, "requires": { - "glob": "^7.0.0", - "interpret": "^1.0.0", - "rechoir": "^0.6.2" + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" } }, - "shx": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/shx/-/shx-0.3.3.tgz", - "integrity": "sha512-nZJ3HFWVoTSyyB+evEKjJ1STiixGztlqwKLTUNV5KqMWtGey9fTd4KU1gdZ1X9BV6215pswQ/Jew9NsuS/fNDA==", + "set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", "dev": true, "requires": { - "minimist": "^1.2.3", - "shelljs": "^0.8.4" + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" } }, - "slash": { + "set-proto": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz", + "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", + "dev": true, + "requires": { + "dunder-proto": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0" + } + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" }, - "smart-buffer": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.1.0.tgz", - "integrity": "sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw==", + "shell-quote": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.2.tgz", + "integrity": "sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA==", "dev": true }, - "socks": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.5.0.tgz", - "integrity": "sha512-00OqQHp5SCbwm9ecOMJj9aQtMSjwi1uVuGQoxnpKCS50VKZcOZ8z11CTKypmR8sEy7nZimy/qXY7rYJYbRlXmA==", + "side-channel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", "dev": true, "requires": { - "ip": "^1.1.5", - "smart-buffer": "^4.1.0" + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" } }, - "socks-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-5.0.0.tgz", - "integrity": "sha512-lEpa1zsWCChxiynk+lCycKuC502RxDWLKJZoIhnxrWNjLSDGYRFflHA1/228VkRcnv9TIb8w98derGbpKxJRgA==", + "side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "dev": true, + "requires": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + } + }, + "side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "dev": true, + "requires": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + } + }, + "side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", "dev": true, "requires": { - "agent-base": "6", - "debug": "4", - "socks": "^2.3.3" + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" } }, + "signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==" + }, "source-map": { "version": "0.7.3", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", @@ -4293,15 +7186,38 @@ "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", "dev": true }, - "ssri": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", - "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", + "spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", "dev": true, "requires": { - "minipass": "^3.1.1" + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } }, + "spdx-license-ids": { + "version": "3.0.20", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.20.tgz", + "integrity": "sha512-jg25NiDV/1fLtSgEgyvVyDunvaNHbuwF9lfNV17gSmPFAlYzdfNBlLtLzXTevwkPj7DhGbmN9VnmJIgLnhvaBw==", + "dev": true + }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", @@ -4319,6 +7235,127 @@ } } }, + "string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "requires": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "dependencies": { + "emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + } + } + }, + "string-width-cjs": { + "version": "npm:string-width@4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "requires": { + "ansi-regex": "^5.0.1" + } + } + } + }, + "string.prototype.padend": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.6.tgz", + "integrity": "sha512-XZpspuSB7vJWhvJc9DLSlrXl1mcA2BdoY5jjnS135ydXqLoqhs96JjDtCkjJEQHvfqZIp9hBuBMgI589peyx9Q==", + "dev": true, + "requires": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" + } + }, + "string.prototype.trim": { + "version": "1.2.10", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", + "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==", + "dev": true, + "requires": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-data-property": "^1.1.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-object-atoms": "^1.0.0", + "has-property-descriptors": "^1.0.2" + } + }, + "string.prototype.trimend": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz", + "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + } + }, + "string.prototype.trimstart": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "dev": true, + "requires": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + } + }, + "strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "requires": { + "ansi-regex": "^6.0.1" + } + }, + "strip-ansi-cjs": { + "version": "npm:strip-ansi@6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "requires": { + "ansi-regex": "^5.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + } + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true + }, "strip-dirs": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/strip-dirs/-/strip-dirs-2.1.0.tgz", @@ -4335,14 +7372,14 @@ "dev": true }, "stylus": { - "version": "0.63.0", - "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.63.0.tgz", - "integrity": "sha512-OMlgrTCPzE/ibtRMoeLVhOY0RcNuNWh0rhAVqeKnk/QwcuUKQbnqhZ1kg2vzD8VU/6h3FoPTq4RJPHgLBvX6Bw==", + "version": "0.64.0", + "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.64.0.tgz", + "integrity": "sha512-ZIdT8eUv8tegmqy1tTIdJv9We2DumkNZFdCF5mz/Kpq3OcTaxSuCAYZge6HKK2CmNC02G1eJig2RV7XTw5hQrA==", "requires": { "@adobe/css-tools": "~4.3.3", "debug": "^4.3.2", - "glob": "^7.1.6", - "sax": "~1.3.0", + "glob": "^10.4.5", + "sax": "~1.4.1", "source-map": "^0.7.3" } }, @@ -4355,19 +7392,11 @@ "has-flag": "^4.0.0" } }, - "tar": { - "version": "6.1.11", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", - "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", - "dev": true, - "requires": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^3.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - } + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true }, "tar-stream": { "version": "1.6.2", @@ -4422,32 +7451,79 @@ "is-number": "^7.0.0" } }, - "unbzip2-stream": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", - "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", + "typed-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", + "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", "dev": true, "requires": { - "buffer": "^5.2.1", - "through": "^2.3.8" + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.14" } }, - "unique-filename": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "typed-array-byte-length": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", + "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", "dev": true, "requires": { - "unique-slug": "^2.0.0" + "call-bind": "^1.0.8", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.14" } }, - "unique-slug": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", - "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "typed-array-byte-offset": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", + "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.15", + "reflect.getprototypeof": "^1.0.9" + } + }, + "typed-array-length": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz", + "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", + "dev": true, + "requires": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0", + "reflect.getprototypeof": "^1.0.6" + } + }, + "unbox-primitive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", + "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", + "dev": true, + "requires": { + "call-bound": "^1.0.3", + "has-bigints": "^1.0.2", + "has-symbols": "^1.1.0", + "which-boxed-primitive": "^1.1.1" + } + }, + "unbzip2-stream": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", + "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", "dev": true, "requires": { - "imurmurhash": "^0.1.4" + "buffer": "^5.2.1", + "through": "^2.3.8" } }, "util-deprecate": { @@ -4456,12 +7532,98 @@ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", "dev": true }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, "vlq": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/vlq/-/vlq-0.2.3.tgz", "integrity": "sha512-DRibZL6DsNhIgYQ+wNdWDL2SL3bKPlVrRiBqV5yuMm++op8W4kGFtaQfCs4KEJn0wBZcHVHJ3eoywX8983k1ow==", "dev": true }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "requires": { + "isexe": "^2.0.0" + } + }, + "which-boxed-primitive": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", + "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", + "dev": true, + "requires": { + "is-bigint": "^1.1.0", + "is-boolean-object": "^1.2.1", + "is-number-object": "^1.1.1", + "is-string": "^1.1.1", + "is-symbol": "^1.1.1" + } + }, + "which-builtin-type": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz", + "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", + "dev": true, + "requires": { + "call-bound": "^1.0.2", + "function.prototype.name": "^1.1.6", + "has-tostringtag": "^1.0.2", + "is-async-function": "^2.0.0", + "is-date-object": "^1.1.0", + "is-finalizationregistry": "^1.1.0", + "is-generator-function": "^1.0.10", + "is-regex": "^1.2.1", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.1.0", + "which-collection": "^1.0.2", + "which-typed-array": "^1.1.16" + }, + "dependencies": { + "isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + } + } + }, + "which-collection": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", + "dev": true, + "requires": { + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + } + }, + "which-typed-array": { + "version": "1.1.18", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.18.tgz", + "integrity": "sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA==", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2" + } + }, "workerpool": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", @@ -4485,12 +7647,6 @@ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, "string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", @@ -4513,10 +7669,46 @@ } } }, + "wrap-ansi-cjs": { + "version": "npm:wrap-ansi@7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "requires": { + "ansi-regex": "^5.0.1" + } + } + } + }, "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true }, "xtend": { "version": "4.0.2", @@ -4530,12 +7722,6 @@ "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "dev": true }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, "yargs": { "version": "16.2.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", @@ -4557,12 +7743,6 @@ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, "string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", diff --git a/package.json b/package.json index 8ac6bb3..3ab5adb 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "stylus-lang-bundle", "description": "Browser friendly version of Stylus Language", - "version": "0.63.1", + "version": "0.64.0", "author": "TJ Holowaychuk ", "homepage": "http://stylus-lang.com/", "keywords": [ @@ -16,28 +16,28 @@ "dependencies": { "event-lite": "^0.1.2", "path-browserify": "^1.0.1", - "stylus": "0.63.0", + "stylus": "0.64.0", "tiny-sha1": "^0.2.1" }, "devDependencies": { - "@rollup/plugin-alias": "^3.1.1", - "@rollup/plugin-node-resolve": "^9.0.0", + "@rollup/plugin-alias": "^5.1.1", + "@rollup/plugin-node-resolve": "^16.0.0", "decompress": "^4.2.1", - "glob": "^7.1.6", - "make-fetch-happen": "^8.0.10", + "glob": "^10.4.5", "mocha": "^10.2.0", - "rollup": "^2.75.7", - "rollup-plugin-cjs-es": "^1.0.1", - "rollup-plugin-external-globals": "^0.6.1", - "rollup-plugin-inline-js": "^0.4.0", + "npm-run-all": "^4.1.5", + "rollup": "^2.79.2", + "rollup-plugin-cjs-es": "^1.1.0", + "rollup-plugin-external-globals": "^0.13.0", + "rollup-plugin-inline-js": "^0.5.0", "rollup-plugin-re": "^1.0.7", - "rollup-plugin-terser": "^7.0.2", - "shx": "^0.3.3" + "rollup-plugin-terser": "^7.0.2" }, "scripts": { - "test": "npm run build && mocha", - "build": "shx rm -rf dist && rollup -c", - "build-test": "shx rm -rf test/cases && node build-test-cases.mjs", + "ci": "run-p build build:tests && npm test", + "test": "mocha", + "build": "rollup -c", + "build:tests": "node build-test-cases.mjs", "preversion": "npm test", "version": "npm run build && git add .", "postversion": "git push --follow-tags && npm publish" @@ -46,5 +46,8 @@ "license": "MIT", "files": [ "dist" - ] + ], + "engines": { + "node": ">=18" + } } diff --git a/rollup.config.js b/rollup.config.js index 150ee87..5341e16 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -1,3 +1,4 @@ +import fs from "fs"; import alias from "@rollup/plugin-alias"; import cjs from "rollup-plugin-cjs-es"; import glob from "glob"; @@ -7,11 +8,14 @@ import re from "rollup-plugin-re"; import resolve from "@rollup/plugin-node-resolve"; import {terser} from "rollup-plugin-terser"; +const DST_FILE = JSON.parse(fs.readFileSync('package.json', 'utf8')).unpkg; + export default { input: "src/index.js", output: { - file: "dist/stylus-renderer.min.js", + file: DST_FILE, format: "iife", + sourcemap: true, name: "StylusRenderer" }, plugins: [ @@ -57,7 +61,22 @@ export default { replace: "this && this.indent" }, { - match: /(utils|renderer)\.js$/, + match: /utils\.js$/, + test: /if \(!found && .+?node_modules[\s\S]+?(?=[\r\n]};)/, + replace: "return found;" + }, + { + match: /utils\.js$/, + test: /[\r\n]\s*\/\/ Absolute[\r\n].+?[\r\n](?=\s*\/\/ Relative[\r\n])|,\s*{windowsPathsNoEscape[^}]+}/gs, + replace: "" + }, + { + match: /[/\\]use\.js$/, + test: /([\r\n]function use)\(plugin.+?[\r\n]}(?=[\r\n])/s, + replace: "$1(){}" + }, + { + match: /renderer\.js$/, test: /__dirname/, replace: '"/"' }, @@ -86,7 +105,7 @@ export default { terser({ keep_fnames: true, compress: { - passes: 3 + reduce_funcs: false, } }) ] diff --git a/test/test.js b/test/test.js index 9880481..741682c 100644 --- a/test/test.js +++ b/test/test.js @@ -4,7 +4,7 @@ const path = require("path"); const CASES_ROOT = `${__dirname}/cases`; -eval(fs.readFileSync(`${__dirname}/../dist/stylus-renderer.min.js`, "utf8")); +eval(fs.readFileSync(require('../package.json').unpkg, "utf8")); describe("stylus renderer", () => { before(() => {