{"version":3,"file":"php.mjs","sources":["../../../../../../node_modules/highlight.js/lib/languages/php.js"],"sourcesContent":["/*\nLanguage: PHP\nAuthor: Victor Karamzin <Victor.Karamzin@enterra-inc.com>\nContributors: Evgeny Stepanischev <imbolk@gmail.com>, Ivan Sagalaev <maniac@softwaremaniacs.org>\nWebsite: https://www.php.net\nCategory: common\n*/\n\n/**\n * @param {HLJSApi} hljs\n * @returns {LanguageDetail}\n * */\nfunction php(hljs) {\n  const regex = hljs.regex;\n  // negative look-ahead tries to avoid matching patterns that are not\n  // Perl at all like $ident$, @ident@, etc.\n  const NOT_PERL_ETC = /(?![A-Za-z0-9])(?![$])/;\n  const IDENT_RE = regex.concat(\n    /[a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*/,\n    NOT_PERL_ETC);\n  // Will not detect camelCase classes\n  const PASCAL_CASE_CLASS_NAME_RE = regex.concat(\n    /(\\\\?[A-Z][a-z0-9_\\x7f-\\xff]+|\\\\?[A-Z]+(?=[A-Z][a-z0-9_\\x7f-\\xff])){1,}/,\n    NOT_PERL_ETC);\n  const VARIABLE = {\n    scope: 'variable',\n    match: '\\\\$+' + IDENT_RE,\n  };\n  const PREPROCESSOR = {\n    scope: 'meta',\n    variants: [\n      { begin: /<\\?php/, relevance: 10 }, // boost for obvious PHP\n      { begin: /<\\?=/ },\n      // less relevant per PSR-1 which says not to use short-tags\n      { begin: /<\\?/, relevance: 0.1 },\n      { begin: /\\?>/ } // end php tag\n    ]\n  };\n  const SUBST = {\n    scope: 'subst',\n    variants: [\n      { begin: /\\$\\w+/ },\n      {\n        begin: /\\{\\$/,\n        end: /\\}/\n      }\n    ]\n  };\n  const SINGLE_QUOTED = hljs.inherit(hljs.APOS_STRING_MODE, { illegal: null, });\n  const DOUBLE_QUOTED = hljs.inherit(hljs.QUOTE_STRING_MODE, {\n    illegal: null,\n    contains: hljs.QUOTE_STRING_MODE.contains.concat(SUBST),\n  });\n\n  const HEREDOC = {\n    begin: /<<<[ \\t]*(?:(\\w+)|\"(\\w+)\")\\n/,\n    end: /[ \\t]*(\\w+)\\b/,\n    contains: hljs.QUOTE_STRING_MODE.contains.concat(SUBST),\n    'on:begin': (m, resp) => { resp.data._beginMatch = m[1] || m[2]; },\n    'on:end': (m, resp) => { if (resp.data._beginMatch !== m[1]) resp.ignoreMatch(); },\n  };\n\n  const NOWDOC = hljs.END_SAME_AS_BEGIN({\n    begin: /<<<[ \\t]*'(\\w+)'\\n/,\n    end: /[ \\t]*(\\w+)\\b/,\n  });\n  // list of valid whitespaces because non-breaking space might be part of a IDENT_RE\n  const WHITESPACE = '[ \\t\\n]';\n  const STRING = {\n    scope: 'string',\n    variants: [\n      DOUBLE_QUOTED,\n      SINGLE_QUOTED,\n      HEREDOC,\n      NOWDOC\n    ]\n  };\n  const NUMBER = {\n    scope: 'number',\n    variants: [\n      { begin: `\\\\b0[bB][01]+(?:_[01]+)*\\\\b` }, // Binary w/ underscore support\n      { begin: `\\\\b0[oO][0-7]+(?:_[0-7]+)*\\\\b` }, // Octals w/ underscore support\n      { begin: `\\\\b0[xX][\\\\da-fA-F]+(?:_[\\\\da-fA-F]+)*\\\\b` }, // Hex w/ underscore support\n      // Decimals w/ underscore support, with optional fragments and scientific exponent (e) suffix.\n      { begin: `(?:\\\\b\\\\d+(?:_\\\\d+)*(\\\\.(?:\\\\d+(?:_\\\\d+)*))?|\\\\B\\\\.\\\\d+)(?:[eE][+-]?\\\\d+)?` }\n    ],\n    relevance: 0\n  };\n  const LITERALS = [\n    \"false\",\n    \"null\",\n    \"true\"\n  ];\n  const KWS = [\n    // Magic constants:\n    // <https://www.php.net/manual/en/language.constants.predefined.php>\n    \"__CLASS__\",\n    \"__DIR__\",\n    \"__FILE__\",\n    \"__FUNCTION__\",\n    \"__COMPILER_HALT_OFFSET__\",\n    \"__LINE__\",\n    \"__METHOD__\",\n    \"__NAMESPACE__\",\n    \"__TRAIT__\",\n    // Function that look like language construct or language construct that look like function:\n    // List of keywords that may not require parenthesis\n    \"die\",\n    \"echo\",\n    \"exit\",\n    \"include\",\n    \"include_once\",\n    \"print\",\n    \"require\",\n    \"require_once\",\n    // These are not language construct (function) but operate on the currently-executing function and can access the current symbol table\n    // 'compact extract func_get_arg func_get_args func_num_args get_called_class get_parent_class ' +\n    // Other keywords:\n    // <https://www.php.net/manual/en/reserved.php>\n    // <https://www.php.net/manual/en/language.types.type-juggling.php>\n    \"array\",\n    \"abstract\",\n    \"and\",\n    \"as\",\n    \"binary\",\n    \"bool\",\n    \"boolean\",\n    \"break\",\n    \"callable\",\n    \"case\",\n    \"catch\",\n    \"class\",\n    \"clone\",\n    \"const\",\n    \"continue\",\n    \"declare\",\n    \"default\",\n    \"do\",\n    \"double\",\n    \"else\",\n    \"elseif\",\n    \"empty\",\n    \"enddeclare\",\n    \"endfor\",\n    \"endforeach\",\n    \"endif\",\n    \"endswitch\",\n    \"endwhile\",\n    \"enum\",\n    \"eval\",\n    \"extends\",\n    \"final\",\n    \"finally\",\n    \"float\",\n    \"for\",\n    \"foreach\",\n    \"from\",\n    \"global\",\n    \"goto\",\n    \"if\",\n    \"implements\",\n    \"instanceof\",\n    \"insteadof\",\n    \"int\",\n    \"integer\",\n    \"interface\",\n    \"isset\",\n    \"iterable\",\n    \"list\",\n    \"match|0\",\n    \"mixed\",\n    \"new\",\n    \"never\",\n    \"object\",\n    \"or\",\n    \"private\",\n    \"protected\",\n    \"public\",\n    \"readonly\",\n    \"real\",\n    \"return\",\n    \"string\",\n    \"switch\",\n    \"throw\",\n    \"trait\",\n    \"try\",\n    \"unset\",\n    \"use\",\n    \"var\",\n    \"void\",\n    \"while\",\n    \"xor\",\n    \"yield\"\n  ];\n\n  const BUILT_INS = [\n    // Standard PHP library:\n    // <https://www.php.net/manual/en/book.spl.php>\n    \"Error|0\",\n    \"AppendIterator\",\n    \"ArgumentCountError\",\n    \"ArithmeticError\",\n    \"ArrayIterator\",\n    \"ArrayObject\",\n    \"AssertionError\",\n    \"BadFunctionCallException\",\n    \"BadMethodCallException\",\n    \"CachingIterator\",\n    \"CallbackFilterIterator\",\n    \"CompileError\",\n    \"Countable\",\n    \"DirectoryIterator\",\n    \"DivisionByZeroError\",\n    \"DomainException\",\n    \"EmptyIterator\",\n    \"ErrorException\",\n    \"Exception\",\n    \"FilesystemIterator\",\n    \"FilterIterator\",\n    \"GlobIterator\",\n    \"InfiniteIterator\",\n    \"InvalidArgumentException\",\n    \"IteratorIterator\",\n    \"LengthException\",\n    \"LimitIterator\",\n    \"LogicException\",\n    \"MultipleIterator\",\n    \"NoRewindIterator\",\n    \"OutOfBoundsException\",\n    \"OutOfRangeException\",\n    \"OuterIterator\",\n    \"OverflowException\",\n    \"ParentIterator\",\n    \"ParseError\",\n    \"RangeException\",\n    \"RecursiveArrayIterator\",\n    \"RecursiveCachingIterator\",\n    \"RecursiveCallbackFilterIterator\",\n    \"RecursiveDirectoryIterator\",\n    \"RecursiveFilterIterator\",\n    \"RecursiveIterator\",\n    \"RecursiveIteratorIterator\",\n    \"RecursiveRegexIterator\",\n    \"RecursiveTreeIterator\",\n    \"RegexIterator\",\n    \"RuntimeException\",\n    \"SeekableIterator\",\n    \"SplDoublyLinkedList\",\n    \"SplFileInfo\",\n    \"SplFileObject\",\n    \"SplFixedArray\",\n    \"SplHeap\",\n    \"SplMaxHeap\",\n    \"SplMinHeap\",\n    \"SplObjectStorage\",\n    \"SplObserver\",\n    \"SplPriorityQueue\",\n    \"SplQueue\",\n    \"SplStack\",\n    \"SplSubject\",\n    \"SplTempFileObject\",\n    \"TypeError\",\n    \"UnderflowException\",\n    \"UnexpectedValueException\",\n    \"UnhandledMatchError\",\n    // Reserved interfaces:\n    // <https://www.php.net/manual/en/reserved.interfaces.php>\n    \"ArrayAccess\",\n    \"BackedEnum\",\n    \"Closure\",\n    \"Fiber\",\n    \"Generator\",\n    \"Iterator\",\n    \"IteratorAggregate\",\n    \"Serializable\",\n    \"Stringable\",\n    \"Throwable\",\n    \"Traversable\",\n    \"UnitEnum\",\n    \"WeakReference\",\n    \"WeakMap\",\n    // Reserved classes:\n    // <https://www.php.net/manual/en/reserved.classes.php>\n    \"Directory\",\n    \"__PHP_Incomplete_Class\",\n    \"parent\",\n    \"php_user_filter\",\n    \"self\",\n    \"static\",\n    \"stdClass\"\n  ];\n\n  /** Dual-case keywords\n   *\n   * [\"then\",\"FILE\"] =>\n   *     [\"then\", \"THEN\", \"FILE\", \"file\"]\n   *\n   * @param {string[]} items */\n  const dualCase = (items) => {\n    /** @type string[] */\n    const result = [];\n    items.forEach(item => {\n      result.push(item);\n      if (item.toLowerCase() === item) {\n        result.push(item.toUpperCase());\n      } else {\n        result.push(item.toLowerCase());\n      }\n    });\n    return result;\n  };\n\n  const KEYWORDS = {\n    keyword: KWS,\n    literal: dualCase(LITERALS),\n    built_in: BUILT_INS,\n  };\n\n  /**\n   * @param {string[]} items */\n  const normalizeKeywords = (items) => {\n    return items.map(item => {\n      return item.replace(/\\|\\d+$/, \"\");\n    });\n  };\n\n  const CONSTRUCTOR_CALL = { variants: [\n    {\n      match: [\n        /new/,\n        regex.concat(WHITESPACE, \"+\"),\n        // to prevent built ins from being confused as the class constructor call\n        regex.concat(\"(?!\", normalizeKeywords(BUILT_INS).join(\"\\\\b|\"), \"\\\\b)\"),\n        PASCAL_CASE_CLASS_NAME_RE,\n      ],\n      scope: {\n        1: \"keyword\",\n        4: \"title.class\",\n      },\n    }\n  ] };\n\n  const CONSTANT_REFERENCE = regex.concat(IDENT_RE, \"\\\\b(?!\\\\()\");\n\n  const LEFT_AND_RIGHT_SIDE_OF_DOUBLE_COLON = { variants: [\n    {\n      match: [\n        regex.concat(\n          /::/,\n          regex.lookahead(/(?!class\\b)/)\n        ),\n        CONSTANT_REFERENCE,\n      ],\n      scope: { 2: \"variable.constant\", },\n    },\n    {\n      match: [\n        /::/,\n        /class/,\n      ],\n      scope: { 2: \"variable.language\", },\n    },\n    {\n      match: [\n        PASCAL_CASE_CLASS_NAME_RE,\n        regex.concat(\n          /::/,\n          regex.lookahead(/(?!class\\b)/)\n        ),\n        CONSTANT_REFERENCE,\n      ],\n      scope: {\n        1: \"title.class\",\n        3: \"variable.constant\",\n      },\n    },\n    {\n      match: [\n        PASCAL_CASE_CLASS_NAME_RE,\n        regex.concat(\n          \"::\",\n          regex.lookahead(/(?!class\\b)/)\n        ),\n      ],\n      scope: { 1: \"title.class\", },\n    },\n    {\n      match: [\n        PASCAL_CASE_CLASS_NAME_RE,\n        /::/,\n        /class/,\n      ],\n      scope: {\n        1: \"title.class\",\n        3: \"variable.language\",\n      },\n    }\n  ] };\n\n  const NAMED_ARGUMENT = {\n    scope: 'attr',\n    match: regex.concat(IDENT_RE, regex.lookahead(':'), regex.lookahead(/(?!::)/)),\n  };\n  const PARAMS_MODE = {\n    relevance: 0,\n    begin: /\\(/,\n    end: /\\)/,\n    keywords: KEYWORDS,\n    contains: [\n      NAMED_ARGUMENT,\n      VARIABLE,\n      LEFT_AND_RIGHT_SIDE_OF_DOUBLE_COLON,\n      hljs.C_BLOCK_COMMENT_MODE,\n      STRING,\n      NUMBER,\n      CONSTRUCTOR_CALL,\n    ],\n  };\n  const FUNCTION_INVOKE = {\n    relevance: 0,\n    match: [\n      /\\b/,\n      // to prevent keywords from being confused as the function title\n      regex.concat(\"(?!fn\\\\b|function\\\\b|\", normalizeKeywords(KWS).join(\"\\\\b|\"), \"|\", normalizeKeywords(BUILT_INS).join(\"\\\\b|\"), \"\\\\b)\"),\n      IDENT_RE,\n      regex.concat(WHITESPACE, \"*\"),\n      regex.lookahead(/(?=\\()/)\n    ],\n    scope: { 3: \"title.function.invoke\", },\n    contains: [ PARAMS_MODE ]\n  };\n  PARAMS_MODE.contains.push(FUNCTION_INVOKE);\n\n  const ATTRIBUTE_CONTAINS = [\n    NAMED_ARGUMENT,\n    LEFT_AND_RIGHT_SIDE_OF_DOUBLE_COLON,\n    hljs.C_BLOCK_COMMENT_MODE,\n    STRING,\n    NUMBER,\n    CONSTRUCTOR_CALL,\n  ];\n\n  const ATTRIBUTES = {\n    begin: regex.concat(/#\\[\\s*/, PASCAL_CASE_CLASS_NAME_RE),\n    beginScope: \"meta\",\n    end: /]/,\n    endScope: \"meta\",\n    keywords: {\n      literal: LITERALS,\n      keyword: [\n        'new',\n        'array',\n      ]\n    },\n    contains: [\n      {\n        begin: /\\[/,\n        end: /]/,\n        keywords: {\n          literal: LITERALS,\n          keyword: [\n            'new',\n            'array',\n          ]\n        },\n        contains: [\n          'self',\n          ...ATTRIBUTE_CONTAINS,\n        ]\n      },\n      ...ATTRIBUTE_CONTAINS,\n      {\n        scope: 'meta',\n        match: PASCAL_CASE_CLASS_NAME_RE\n      }\n    ]\n  };\n\n  return {\n    case_insensitive: false,\n    keywords: KEYWORDS,\n    contains: [\n      ATTRIBUTES,\n      hljs.HASH_COMMENT_MODE,\n      hljs.COMMENT('//', '$'),\n      hljs.COMMENT(\n        '/\\\\*',\n        '\\\\*/',\n        { contains: [\n          {\n            scope: 'doctag',\n            match: '@[A-Za-z]+'\n          }\n        ] }\n      ),\n      {\n        match: /__halt_compiler\\(\\);/,\n        keywords: '__halt_compiler',\n        starts: {\n          scope: \"comment\",\n          end: hljs.MATCH_NOTHING_RE,\n          contains: [\n            {\n              match: /\\?>/,\n              scope: \"meta\",\n              endsParent: true\n            }\n          ]\n        }\n      },\n      PREPROCESSOR,\n      {\n        scope: 'variable.language',\n        match: /\\$this\\b/\n      },\n      VARIABLE,\n      FUNCTION_INVOKE,\n      LEFT_AND_RIGHT_SIDE_OF_DOUBLE_COLON,\n      {\n        match: [\n          /const/,\n          /\\s/,\n          IDENT_RE,\n        ],\n        scope: {\n          1: \"keyword\",\n          3: \"variable.constant\",\n        },\n      },\n      CONSTRUCTOR_CALL,\n      {\n        scope: 'function',\n        relevance: 0,\n        beginKeywords: 'fn function',\n        end: /[;{]/,\n        excludeEnd: true,\n        illegal: '[$%\\\\[]',\n        contains: [\n          { beginKeywords: 'use', },\n          hljs.UNDERSCORE_TITLE_MODE,\n          {\n            begin: '=>', // No markup, just a relevance booster\n            endsParent: true\n          },\n          {\n            scope: 'params',\n            begin: '\\\\(',\n            end: '\\\\)',\n            excludeBegin: true,\n            excludeEnd: true,\n            keywords: KEYWORDS,\n            contains: [\n              'self',\n              VARIABLE,\n              LEFT_AND_RIGHT_SIDE_OF_DOUBLE_COLON,\n              hljs.C_BLOCK_COMMENT_MODE,\n              STRING,\n              NUMBER\n            ]\n          },\n        ]\n      },\n      {\n        scope: 'class',\n        variants: [\n          {\n            beginKeywords: \"enum\",\n            illegal: /[($\"]/\n          },\n          {\n            beginKeywords: \"class interface trait\",\n            illegal: /[:($\"]/\n          }\n        ],\n        relevance: 0,\n        end: /\\{/,\n        excludeEnd: true,\n        contains: [\n          { beginKeywords: 'extends implements' },\n          hljs.UNDERSCORE_TITLE_MODE\n        ]\n      },\n      // both use and namespace still use \"old style\" rules (vs multi-match)\n      // because the namespace name can include `\\` and we still want each\n      // element to be treated as its own *individual* title\n      {\n        beginKeywords: 'namespace',\n        relevance: 0,\n        end: ';',\n        illegal: /[.']/,\n        contains: [ hljs.inherit(hljs.UNDERSCORE_TITLE_MODE, { scope: \"title.class\" }) ]\n      },\n      {\n        beginKeywords: 'use',\n        relevance: 0,\n        end: ';',\n        contains: [\n          // TODO: title.function vs title.class\n          {\n            match: /\\b(as|const|function)\\b/,\n            scope: \"keyword\"\n          },\n          // TODO: could be title.class or title.function\n          hljs.UNDERSCORE_TITLE_MODE\n        ]\n      },\n      STRING,\n      NUMBER,\n    ]\n  };\n}\n\nmodule.exports = php;\n"],"names":["php","hljs","regex","NOT_PERL_ETC","IDENT_RE","PASCAL_CASE_CLASS_NAME_RE","VARIABLE","PREPROCESSOR","SUBST","SINGLE_QUOTED","DOUBLE_QUOTED","HEREDOC","m","resp","NOWDOC","WHITESPACE","STRING","NUMBER","LITERALS","KWS","BUILT_INS","KEYWORDS","items","result","item","normalizeKeywords","CONSTRUCTOR_CALL","CONSTANT_REFERENCE","LEFT_AND_RIGHT_SIDE_OF_DOUBLE_COLON","NAMED_ARGUMENT","PARAMS_MODE","FUNCTION_INVOKE","ATTRIBUTE_CONTAINS","ATTRIBUTES","php_1"],"mappings":";;;;AAYA,WAASA,EAAIC,GAAM;AACjB,UAAMC,IAAQD,EAAK,OAGbE,IAAe,0BACfC,IAAWF,EAAM;AAAA,MACrB;AAAA,MACAC;AAAA,IAAY,GAERE,IAA4BH,EAAM;AAAA,MACtC;AAAA,MACAC;AAAA,IAAY,GACRG,IAAW;AAAA,MACf,OAAO;AAAA,MACP,OAAO,SAASF;AAAA,IACpB,GACQG,IAAe;AAAA,MACnB,OAAO;AAAA,MACP,UAAU;AAAA,QACR,EAAE,OAAO,UAAU,WAAW,GAAE;AAAA;AAAA,QAChC,EAAE,OAAO,OAAM;AAAA;AAAA,QAEf,EAAE,OAAO,OAAO,WAAW,IAAG;AAAA,QAC9B,EAAE,OAAO,MAAK;AAAA;AAAA;IAEpB,GACQC,IAAQ;AAAA,MACZ,OAAO;AAAA,MACP,UAAU;AAAA,QACR,EAAE,OAAO,QAAO;AAAA,QAChB;AAAA,UACE,OAAO;AAAA,UACP,KAAK;AAAA;;IAGb,GACQC,IAAgBR,EAAK,QAAQA,EAAK,kBAAkB,EAAE,SAAS,MAAO,GACtES,IAAgBT,EAAK,QAAQA,EAAK,mBAAmB;AAAA,MACzD,SAAS;AAAA,MACT,UAAUA,EAAK,kBAAkB,SAAS,OAAOO,CAAK;AAAA,IAC1D,CAAG,GAEKG,IAAU;AAAA,MACd,OAAO;AAAA,MACP,KAAK;AAAA,MACL,UAAUV,EAAK,kBAAkB,SAAS,OAAOO,CAAK;AAAA,MACtD,YAAY,CAACI,GAAGC,MAAS;AAAE,QAAAA,EAAK,KAAK,cAAcD,EAAE,CAAC,KAAKA,EAAE,CAAC;AAAA,MAAE;AAAA,MAChE,UAAU,CAACA,GAAGC,MAAS;AAAE,QAAIA,EAAK,KAAK,gBAAgBD,EAAE,CAAC,KAAGC,EAAK,YAAW;AAAA,MAAG;AAAA,IACpF,GAEQC,IAASb,EAAK,kBAAkB;AAAA,MACpC,OAAO;AAAA,MACP,KAAK;AAAA,IACT,CAAG,GAEKc,IAAa;AAAA,IACbC,IAAS;AAAA,MACb,OAAO;AAAA,MACP,UAAU;AAAA,QACRN;AAAA,QACAD;AAAA,QACAE;AAAA,QACAG;AAAA;IAEN,GACQG,IAAS;AAAA,MACb,OAAO;AAAA,MACP,UAAU;AAAA,QACR,EAAE,OAAO,8BAA6B;AAAA;AAAA,QACtC,EAAE,OAAO,gCAA+B;AAAA;AAAA,QACxC,EAAE,OAAO,4CAA2C;AAAA;AAAA;AAAA,QAEpD,EAAE,OAAO,6EAA4E;AAAA;MAEvF,WAAW;AAAA,IACf,GACQC,IAAW;AAAA,MACf;AAAA,MACA;AAAA,MACA;AAAA,IACJ,GACQC,IAAM;AAAA;AAAA;AAAA,MAGV;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA;AAAA,MAGA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAMA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACJ,GAEQC,IAAY;AAAA;AAAA;AAAA,MAGhB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA;AAAA,MAGA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA;AAAA,MAGA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACJ,GAsBQC,IAAW;AAAA,MACf,SAASF;AAAA,MACT,UAhBe,CAACG,MAAU;AAE1B,cAAMC,IAAS,CAAA;AACf,eAAAD,EAAM,QAAQ,CAAAE,MAAQ;AACpB,UAAAD,EAAO,KAAKC,CAAI,GACZA,EAAK,YAAW,MAAOA,IACzBD,EAAO,KAAKC,EAAK,aAAa,IAE9BD,EAAO,KAAKC,EAAK,aAAa;AAAA,QAEtC,CAAK,GACMD;AAAA,MACX,GAIsBL,CAAQ;AAAA,MAC1B,UAAUE;AAAA,IACd,GAIQK,IAAoB,CAACH,MAClBA,EAAM,IAAI,CAAAE,MACRA,EAAK,QAAQ,UAAU,EAAE,CACjC,GAGGE,IAAmB,EAAE,UAAU;AAAA,MACnC;AAAA,QACE,OAAO;AAAA,UACL;AAAA,UACAxB,EAAM,OAAOa,GAAY,GAAG;AAAA;AAAA,UAE5Bb,EAAM,OAAO,OAAOuB,EAAkBL,CAAS,EAAE,KAAK,MAAM,GAAG,MAAM;AAAA,UACrEf;AAAA;QAEF,OAAO;AAAA,UACL,GAAG;AAAA,UACH,GAAG;AAAA;;IAGX,EAAG,GAEKsB,IAAqBzB,EAAM,OAAOE,GAAU,YAAY,GAExDwB,IAAsC,EAAE,UAAU;AAAA,MACtD;AAAA,QACE,OAAO;AAAA,UACL1B,EAAM;AAAA,YACJ;AAAA,YACAA,EAAM,UAAU,aAAa;AAAA;UAE/ByB;AAAA;QAEF,OAAO,EAAE,GAAG,oBAAmB;AAAA;MAEjC;AAAA,QACE,OAAO;AAAA,UACL;AAAA,UACA;AAAA;QAEF,OAAO,EAAE,GAAG,oBAAmB;AAAA;MAEjC;AAAA,QACE,OAAO;AAAA,UACLtB;AAAA,UACAH,EAAM;AAAA,YACJ;AAAA,YACAA,EAAM,UAAU,aAAa;AAAA;UAE/ByB;AAAA;QAEF,OAAO;AAAA,UACL,GAAG;AAAA,UACH,GAAG;AAAA;;MAGP;AAAA,QACE,OAAO;AAAA,UACLtB;AAAA,UACAH,EAAM;AAAA,YACJ;AAAA,YACAA,EAAM,UAAU,aAAa;AAAA;;QAGjC,OAAO,EAAE,GAAG,cAAa;AAAA;MAE3B;AAAA,QACE,OAAO;AAAA,UACLG;AAAA,UACA;AAAA,UACA;AAAA;QAEF,OAAO;AAAA,UACL,GAAG;AAAA,UACH,GAAG;AAAA;;IAGX,EAAG,GAEKwB,IAAiB;AAAA,MACrB,OAAO;AAAA,MACP,OAAO3B,EAAM,OAAOE,GAAUF,EAAM,UAAU,GAAG,GAAGA,EAAM,UAAU,QAAQ,CAAC;AAAA,IACjF,GACQ4B,IAAc;AAAA,MAClB,WAAW;AAAA,MACX,OAAO;AAAA,MACP,KAAK;AAAA,MACL,UAAUT;AAAA,MACV,UAAU;AAAA,QACRQ;AAAA,QACAvB;AAAA,QACAsB;AAAA,QACA3B,EAAK;AAAA,QACLe;AAAA,QACAC;AAAA,QACAS;AAAA;IAEN,GACQK,IAAkB;AAAA,MACtB,WAAW;AAAA,MACX,OAAO;AAAA,QACL;AAAA;AAAA,QAEA7B,EAAM,OAAO,yBAAyBuB,EAAkBN,CAAG,EAAE,KAAK,MAAM,GAAG,KAAKM,EAAkBL,CAAS,EAAE,KAAK,MAAM,GAAG,MAAM;AAAA,QACjIhB;AAAA,QACAF,EAAM,OAAOa,GAAY,GAAG;AAAA,QAC5Bb,EAAM,UAAU,QAAQ;AAAA;MAE1B,OAAO,EAAE,GAAG,wBAAuB;AAAA,MACnC,UAAU,CAAE4B,CAAW;AAAA,IAC3B;AACE,IAAAA,EAAY,SAAS,KAAKC,CAAe;AAEzC,UAAMC,IAAqB;AAAA,MACzBH;AAAA,MACAD;AAAA,MACA3B,EAAK;AAAA,MACLe;AAAA,MACAC;AAAA,MACAS;AAAA,IACJ,GAEQO,IAAa;AAAA,MACjB,OAAO/B,EAAM,OAAO,UAAUG,CAAyB;AAAA,MACvD,YAAY;AAAA,MACZ,KAAK;AAAA,MACL,UAAU;AAAA,MACV,UAAU;AAAA,QACR,SAASa;AAAA,QACT,SAAS;AAAA,UACP;AAAA,UACA;AAAA;;MAGJ,UAAU;AAAA,QACR;AAAA,UACE,OAAO;AAAA,UACP,KAAK;AAAA,UACL,UAAU;AAAA,YACR,SAASA;AAAA,YACT,SAAS;AAAA,cACP;AAAA,cACA;AAAA;;UAGJ,UAAU;AAAA,YACR;AAAA,YACA,GAAGc;AAAA;;QAGP,GAAGA;AAAA,QACH;AAAA,UACE,OAAO;AAAA,UACP,OAAO3B;AAAA;;IAGf;AAEE,WAAO;AAAA,MACL,kBAAkB;AAAA,MAClB,UAAUgB;AAAA,MACV,UAAU;AAAA,QACRY;AAAA,QACAhC,EAAK;AAAA,QACLA,EAAK,QAAQ,MAAM,GAAG;AAAA,QACtBA,EAAK;AAAA,UACH;AAAA,UACA;AAAA,UACA,EAAE,UAAU;AAAA,YACV;AAAA,cACE,OAAO;AAAA,cACP,OAAO;AAAA;UAEnB,EAAS;AAAA;QAEH;AAAA,UACE,OAAO;AAAA,UACP,UAAU;AAAA,UACV,QAAQ;AAAA,YACN,OAAO;AAAA,YACP,KAAKA,EAAK;AAAA,YACV,UAAU;AAAA,cACR;AAAA,gBACE,OAAO;AAAA,gBACP,OAAO;AAAA,gBACP,YAAY;AAAA;;;;QAKpBM;AAAA,QACA;AAAA,UACE,OAAO;AAAA,UACP,OAAO;AAAA;QAETD;AAAA,QACAyB;AAAA,QACAH;AAAA,QACA;AAAA,UACE,OAAO;AAAA,YACL;AAAA,YACA;AAAA,YACAxB;AAAA;UAEF,OAAO;AAAA,YACL,GAAG;AAAA,YACH,GAAG;AAAA;;QAGPsB;AAAA,QACA;AAAA,UACE,OAAO;AAAA,UACP,WAAW;AAAA,UACX,eAAe;AAAA,UACf,KAAK;AAAA,UACL,YAAY;AAAA,UACZ,SAAS;AAAA,UACT,UAAU;AAAA,YACR,EAAE,eAAe,MAAK;AAAA,YACtBzB,EAAK;AAAA,YACL;AAAA,cACE,OAAO;AAAA;AAAA,cACP,YAAY;AAAA;YAEd;AAAA,cACE,OAAO;AAAA,cACP,OAAO;AAAA,cACP,KAAK;AAAA,cACL,cAAc;AAAA,cACd,YAAY;AAAA,cACZ,UAAUoB;AAAA,cACV,UAAU;AAAA,gBACR;AAAA,gBACAf;AAAA,gBACAsB;AAAA,gBACA3B,EAAK;AAAA,gBACLe;AAAA,gBACAC;AAAA;;;;QAKR;AAAA,UACE,OAAO;AAAA,UACP,UAAU;AAAA,YACR;AAAA,cACE,eAAe;AAAA,cACf,SAAS;AAAA;YAEX;AAAA,cACE,eAAe;AAAA,cACf,SAAS;AAAA;;UAGb,WAAW;AAAA,UACX,KAAK;AAAA,UACL,YAAY;AAAA,UACZ,UAAU;AAAA,YACR,EAAE,eAAe,qBAAoB;AAAA,YACrChB,EAAK;AAAA;;;;;QAMT;AAAA,UACE,eAAe;AAAA,UACf,WAAW;AAAA,UACX,KAAK;AAAA,UACL,SAAS;AAAA,UACT,UAAU,CAAEA,EAAK,QAAQA,EAAK,uBAAuB,EAAE,OAAO,eAAe,CAAC;AAAA;QAEhF;AAAA,UACE,eAAe;AAAA,UACf,WAAW;AAAA,UACX,KAAK;AAAA,UACL,UAAU;AAAA;AAAA,YAER;AAAA,cACE,OAAO;AAAA,cACP,OAAO;AAAA;;YAGTA,EAAK;AAAA;;QAGTe;AAAA,QACAC;AAAA;IAEN;AAAA,EACA;AAEA,SAAAiB,IAAiBlC;;","x_google_ignoreList":[0]}