diff --git a/RELEASE.md b/RELEASE.md index 24059a331..24c063a88 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -1,8 +1,10 @@ # Releases -## 2.1.0 : pending +## 2.0.4 : (2017-07-09) - Fix AST errors on suppressErrors +- Add curly boolean on variable node (for `${bar}` syntax) +- Implement the static closure flag, ex: `$c = static function() {};` ## 2.0.0 : (2017-03-04) diff --git a/dist/php-parser.js b/dist/php-parser.js index 3ad62e847..5679fd89b 100644 --- a/dist/php-parser.js +++ b/dist/php-parser.js @@ -1,4 +1,4 @@ -/*! php-parser - BSD3 License - 2017-03-21 */ +/*! php-parser - BSD3 License - 2017-07-10 */ require=(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o 'bar', 3] + * + * // AST structure : + * { + * "kind": "array", + * "shortForm": true + * "items": [{ + * "kind": "entry", + * "key": null, + * "value": {"kind": "number", "value": "1"} + * }, { + * "kind": "entry", + * "key": {"kind": "string", "value": "foo", "isDoubleQuote": false}, + * "value": {"kind": "string", "value": "bar", "isDoubleQuote": false} + * }, { + * "kind": "entry", + * "key": null, + * "value": {"kind": "number", "value": "3"} + * }] + * } * @extends {Expression} - * @property {Entry[]} items - * @property {boolean} shortForm + * @property {Entry[]} items List of array items + * @property {boolean} shortForm Indicate if the short array syntax is used, ex `[]` instead `array()` */ var Array = Expr.extends(function Array(shortForm, items, location) { Expr.apply(this, [KIND, location]); @@ -875,14 +897,16 @@ var KIND = 'closure'; * @property {boolean} byref * @property {boolean} nullable * @property {Block|null} body + * @property {boolean} isStatic */ -var Closure = Statement.extends(function Closure(args, byref, uses, type, nullable, location) { +var Closure = Statement.extends(function Closure(args, byref, uses, type, nullable, isStatic, location) { Statement.apply(this, [KIND, location]); this.uses = uses; this.arguments = args; this.byref = byref; this.type = type; this.nullable = nullable; + this.isStatic = isStatic || false; this.body = null; }); @@ -1243,11 +1267,11 @@ var Node = require('./node'); var KIND = 'entry'; /** - * An array entry + * An array entry - see [Array](#array) * @constructor Entry * @extends {Node} - * @property {Node|null} key - * @property {Node} value + * @property {Node|null} key The entry key/offset + * @property {Node} value The entry value */ var Entry = Node.extends(function Entry(key, value, location) { Node.apply(this, [KIND, location]); @@ -2816,13 +2840,25 @@ var KIND = 'variable'; * be any expression in general, an expression can also be a pattern. * @constructor Variable * @extends {Expression} - * @property {String|Node} name - * @property {boolean} byref + * @example + * // PHP code : + * &$foo + * // AST output + * { + * "kind": "variable", + * "name": "foo", + * "byref": true, + * "curly": false + * } + * @property {String|Node} name The variable name (can be a complex expression when the name is resolved dynamically) + * @property {boolean} byref Indicate if the variable reference is used, ex `&$foo` + * @property {boolean} curly Indicate if the name is defined between curlies, ex `${foo}` */ -var Variable = Expr.extends(function Variable(name, byref, location) { +var Variable = Expr.extends(function Variable(name, byref, curly, location) { Expr.apply(this, [KIND, location]); this.name = name; this.byref = byref || false; + this.curly = curly || false; }); module.exports = Variable; @@ -5883,9 +5919,20 @@ module.exports = { return result(expr); case this.tok.T_FUNCTION: - // @fixme later - removed static lambda function declarations (colides with static keyword usage) return this.read_function(true); + case this.tok.T_STATIC: + var backup = [this.token, this.lexer.getState()]; + if (this.next().token === this.tok.T_FUNCTION) { + // handles static function + return this.read_function(true, [0, 1, 0]); + } else { + // rollback + this.lexer.tokens.push(backup); + this.next(); + } + + } // SCALAR | VARIABLE @@ -6108,7 +6155,8 @@ module.exports = { */ ,read_function: function(closure, flag) { var result = this.read_function_declaration( - closure ? 1 : (flag ? 2 : 0) + closure ? 1 : (flag ? 2 : 0), + flag && flag[1] === 1 ); if (flag && flag[2] == 1) { // abstract function : @@ -6123,7 +6171,7 @@ module.exports = { result.loc.end = result.body.loc.end; } } - if (flag) { + if (!closure && flag) { result.parseFlags(flag); } } @@ -6135,7 +6183,7 @@ module.exports = { * function_declaration ::= T_FUNCTION '&'? T_STRING '(' parameter_list ')' * ``` */ - ,read_function_declaration: function(type) { + ,read_function_declaration: function(type, isStatic) { var nodeName = 'function'; if (type === 1) { nodeName = 'closure'; @@ -6143,6 +6191,7 @@ module.exports = { nodeName = 'method'; } var result = this.node(nodeName); + if (this.expect(this.tok.T_FUNCTION)) { this.next(); } @@ -6171,7 +6220,7 @@ module.exports = { } if (type === 1) { // closure - return result(params, isRef, use, returnType, nullable); + return result(params, isRef, use, returnType, nullable, isStatic); } return result(name, params, isRef, returnType, nullable); } @@ -6190,7 +6239,7 @@ module.exports = { this.expect(this.tok.T_VARIABLE); var name = this.text().substring(1); this.next(); - return result(name, isRef); + return result(name, isRef, false); } /** * reads a list of parameters @@ -6942,20 +6991,22 @@ module.exports = { var varName = this.text(); name = this.node('variable'); this.next(); - name = name(varName, false); // check if lookup an offset // https://github.com/php/php-src/blob/master/Zend/zend_language_parser.y#L1243 if (this.token === '[') { + name = name(varName, false); var node = this.node('offsetlookup'); var offset = this.next().read_expr(); this.expect(']') && this.next(); name = node(name, offset); + } else { + name = varName; } } else { name = this.read_expr(); } this.expect('}') && this.next(); - result = result('variable', name, false); + result = result('variable', name, false, true); } // expression @@ -7284,6 +7335,9 @@ module.exports = { this.expect(';') && this.nextWithComments(); return expr; } + if (this.token === this.tok.T_FUNCTION) { + return this.read_function(true, [0, 1, 0]); + } var items = this.read_variable_declarations(); this.expectEndOfStatement(); return result(items); @@ -7652,9 +7706,9 @@ module.exports = { if (this.expect(this.tok.T_VARIABLE)) { var name = this.text().substring(1); this.next(); - variable = variable(name, false); + variable = variable(name, false, false); } else { - variable = variable('#ERR', false); + variable = variable('#ERR', false, false); } if (this.token === '=') { return node(variable, this.next().read_expr()); @@ -7809,7 +7863,7 @@ module.exports = { name = this.text().substring(1); this.next(); what = this.node('encapsed')( - [what, inner(name, false)], + [what, inner(name, false, false)], 'offset' ); if (what.loc && what.value[0].loc) { @@ -7831,7 +7885,7 @@ module.exports = { what = this.node('variable'); var name = this.text().substring(1); this.next(); - what = what(name, false); + what = what(name, false, false); break; case '$': this.next().expect(['{', this.tok.T_VARIABLE]); @@ -7885,7 +7939,7 @@ module.exports = { } else if (this.token === this.tok.T_VARIABLE) { var name = this.text().substring(1); this.next(); - offset = offset('variable', name, false); + offset = offset('variable', name, false, false); } else { this.expect([ this.tok.T_STRING, @@ -7942,7 +7996,7 @@ module.exports = { // plain variable name var name = this.text().substring(1); this.next(); - result = result(name, byref); + result = result(name, byref, false); } else { if (this.token === '$') this.next(); // dynamic variable name @@ -7950,7 +8004,7 @@ module.exports = { case '{': var expr = this.next().read_expr(); this.expect('}') && this.next(); - result = result(expr, byref); + result = result(expr, byref, true); break; case '$': // $$$var result = result(this.read_simple_variable(false), byref); @@ -7959,14 +8013,14 @@ module.exports = { var name = this.text().substring(1); var node = this.node('variable'); this.next(); - result = result(node(name, false), byref); + result = result(node(name, false, false), byref, false); break; default: this.error(['{', '$', this.tok.T_VARIABLE]); // graceful mode var name = this.text(); this.next(); - result = result(name, byref); + result = result(name, byref, false); } } return result; diff --git a/dist/php-parser.min.js b/dist/php-parser.min.js index b6bd64569..3bd0d6289 100644 --- a/dist/php-parser.min.js +++ b/dist/php-parser.min.js @@ -8,9 +8,9 @@ var kind=ctor.prototype.constructor.name.toLowerCase();"_"===kind[0]&&(kind=kind var Statement=require("./statement"),KIND="assign",Assign=Statement.extends(function Assign(left,right,operator,location){Statement.apply(this,[KIND,location]),this.operator=operator,this.left=left,this.right=right});module.exports=Assign},{"./statement":70}],5:[function(require,module,exports){"use strict";var Operation=require("./operation"),KIND="bin",binOperatorsPrecedence=[["or"],["xor"],["and"],["retif"],["??"],["||"],["&&"],["|"],["^"],["&"],["==","!=","===","!==","<=>"],["<","<=",">",">="],["<<",">>"],["+","-","."],["*","/","%"],["!"],["instanceof"]],Bin=Operation.extends(function Bin(type,left,right,location){Operation.apply(this,[KIND,location]),this.type=type,this.left=left,this.right=right});Bin.prototype.precedence=function(node){var lLevel=Bin.precedence[node.type],rLevel=Bin.precedence[this.type];if(lLevel&&rLevel&&rLevel=this.size,!this.all_tokens&&this.mode_eval?this.begin("ST_IN_SCRIPTING"):this.begin("INITIAL"),this},lexer.prototype.input=function(size){var ch=this._input[this.offset];return ch?(this.yytext+=ch, @@ -73,41 +73,42 @@ if(this.token===this.tok.T_IS_NOT_EQUAL)return result("bin","!=",expr,this.next( if("!"===this.token)return this.node("unary")("!",this.next().read_expr());if("~"===this.token)return this.node("unary")("~",this.next().read_expr());if("-"===this.token){var result=this.node();return this.next(),this.token===this.tok.T_LNUMBER||this.token===this.tok.T_DNUMBER?(result=result("number","-"+this.text()),this.next(),result):result("unary","-",this.read_expr())}if("("===this.token){var node=this.node("parenthesis"),expr=this.next().read_expr();return this.expect(")")&&this.next(),expr=node(expr),this.token===this.tok.T_OBJECT_OPERATOR?this.recursive_variable_chain_scan(expr,!1):this.token===this.tok.T_CURLY_OPEN||"["===this.token?this.read_dereferencable(expr):"("===this.token?this.node("call")(expr,this.read_function_argument_list()):expr}if("`"===this.token)return this.next().read_encapsed_string("`");if(this.token===this.tok.T_LIST){var result=this.node("list"),assign=null,isInner=this.innerList;isInner||(assign=this.node("assign")),this.next().expect("(")&&this.next(),this.innerList||(this.innerList=!0); for(var assignList=this.read_assignment_list(),hasItem=!1,i=0;i>=");case this.tok.T_INC: -return this.next(),result("post","+",expr);case this.tok.T_DEC:return this.next(),result("post","-",expr)}}else if(this.is("SCALAR"))for(expr=this.read_scalar();this.token!==this.EOF;)if(this.token===this.tok.T_OBJECT_OPERATOR)expr=this.recursive_variable_chain_scan(expr,!1);else if(this.token===this.tok.T_CURLY_OPEN||"["===this.token)expr=this.read_dereferencable(expr);else{if("("!==this.token)return expr;expr=this.node("call")(expr,this.read_function_argument_list())}else this.error("EXPR"),this.next();return expr},read_new_expr:function(){var result=this.node("new");if(this.token===this.tok.T_CLASS){var what=this.node("class"),propExtends=null,propImplements=null,body=null,args=[];return"("===this.next().token&&(args=this.read_function_argument_list()),this.token==this.tok.T_EXTENDS&&(propExtends=this.next().read_namespace_name()),this.token==this.tok.T_IMPLEMENTS&&(propImplements=this.next().read_name_list()),this.expect("{")&&(body=this.next().read_class_body()),result(what(null,propExtends,propImplements,body,[0,0,0]),args); -}var name=this.read_class_name_reference(),args=[];return"("===this.token&&(args=this.read_function_argument_list()),result(name,args)},read_class_name_reference:function(){if(this.token===this.tok.T_NS_SEPARATOR||this.token===this.tok.T_STRING||this.token===this.tok.T_NAMESPACE){var result=this.read_namespace_name();return this.token===this.tok.T_DOUBLE_COLON&&(result=this.read_static_getter(result)),result}return this.is("VARIABLE")?this.read_variable(!0,!1,!1):void this.expect([this.tok.T_STRING,"VARIABLE"])},read_assignment_list:function(){return this.read_list(this.read_assignment_list_element,",")},read_assignment_list_element:function(){if(","===this.token||")"===this.token)return null;var result=this.read_expr_item();return this.token===this.tok.T_DOUBLE_ARROW&&(result=["key",result,this.next().read_expr_item()]),result}}},{}],105:[function(require,module,exports){module.exports={is_reference:function(){return"&"==this.token&&(this.next(),!0)},is_variadic:function(){return this.token===this.tok.T_ELLIPSIS&&(this.next(), -!0)},read_function:function(closure,flag){var result=this.read_function_declaration(closure?1:flag?2:0);return flag&&1==flag[2]?(result.parseFlags(flag),this.expect(";")&&this.nextWithComments()):(this.expect("{")&&(result.body=this.read_code_block(!1),result.loc&&result.body.loc&&(result.loc.end=result.body.loc.end)),flag&&result.parseFlags(flag)),result},read_function_declaration:function(type){var nodeName="function";1===type?nodeName="closure":2===type&&(nodeName="method");var result=this.node(nodeName);this.expect(this.tok.T_FUNCTION)&&this.next();var isRef=this.is_reference(),name=!1,use=[],returnType=null,nullable=!1;1!==type&&this.expect(this.tok.T_STRING)&&(name=this.text(),this.next()),this.expect("(")&&this.next();var params=this.read_parameter_list();return this.expect(")")&&this.next(),1===type&&this.token===this.tok.T_USE&&(this.next().expect("(")&&this.next(),use=this.read_list(this.read_lexical_var,","),this.expect(")")&&this.next()),":"===this.token&&("?"===this.next().token&&(nullable=!0,this.next()), -returnType=this.read_type()),1===type?result(params,isRef,use,returnType,nullable):result(name,params,isRef,returnType,nullable)},read_lexical_var:function(){var result=this.node("variable"),isRef=!1;"&"===this.token&&(isRef=!0,this.next()),this.expect(this.tok.T_VARIABLE);var name=this.text().substring(1);return this.next(),result(name,isRef)},read_parameter_list:function(){var result=[];if(")"!=this.token)for(;this.token!=this.EOF;){if(result.push(this.read_parameter()),","!=this.token){if(")"==this.token)break;this.error([",",")"]);break}this.next()}return result},read_parameter:function(){var node=this.node("parameter"),name=null,value=null,type=null,nullable=!1;"?"===this.token&&(this.next(),nullable=!0),type=this.read_type(),nullable&&!type&&this.raiseError("Expecting a type definition combined with nullable operator");var isRef=this.is_reference(),isVariadic=this.is_variadic();return this.expect(this.tok.T_VARIABLE)&&(name=this.text().substring(1),this.next()),"="==this.token&&(value=this.next().read_expr()), -node(name,type,value,isRef,isVariadic,nullable)},read_function_argument_list:function(){var result=[],wasVariadic=!1;if(this.expect("(")&&this.next(),")"!==this.token)for(;this.token!=this.EOF;){var argument=this.read_argument_list();if(argument&&(result.push(argument),"variadic"===argument.kind?wasVariadic=!0:wasVariadic&&this.raiseError("Unexpected argument after a variadic argument")),","!==this.token)break;this.next()}return this.expect(")")&&this.next(),result},read_argument_list:function(){return this.token===this.tok.T_ELLIPSIS?this.node("variadic")(this.next().read_expr()):this.read_expr()},read_type:function(){var result=this.node("identifier");switch(this.token){case this.tok.T_ARRAY:return this.next(),result(["","array"],!1);case this.tok.T_NAMESPACE:case this.tok.T_NS_SEPARATOR:case this.tok.T_STRING:return this.read_namespace_name();case this.tok.T_CALLABLE:return this.next(),result(["","callable"],!1);default:return null}}}},{}],106:[function(require,module,exports){module.exports={read_if:function(){ -var result=this.node("if"),body=null,alternate=null,shortForm=!1,test=null;if(test=this.read_if_expr(),":"===this.token){shortForm=!0,this.next(),body=this.node("block");for(var items=[];this.token!==this.EOF&&this.token!==this.tok.T_ENDIF;){if(this.token===this.tok.T_ELSEIF){alternate=this.next().read_elseif_short();break}if(this.token===this.tok.T_ELSE){alternate=this.next().read_else_short();break}items.push(this.read_inner_statement())}body=body(null,items),this.expect(this.tok.T_ENDIF)&&this.next(),this.expectEndOfStatement()}else body=this.read_statement(),this.ignoreComments(),this.token===this.tok.T_ELSEIF?alternate=this.next().read_if():this.token===this.tok.T_ELSE&&(alternate=this.next().read_statement());return result(test,body,alternate,shortForm)},read_if_expr:function(){this.expect("(")&&this.next();var result=this.read_expr();return this.expect(")")&&this.next(),result},read_elseif_short:function(){var result=this.node("if"),alternate=null,test=null,body=null,items=[];for(test=this.read_if_expr(), -this.expect(":")&&this.next(),body=this.node("block");this.token!=this.EOF&&this.token!==this.tok.T_ENDIF;){if(this.token===this.tok.T_ELSEIF){alternate=this.next().read_elseif_short();break}if(this.token===this.tok.T_ELSE){alternate=this.next().read_else_short();break}items.push(this.read_inner_statement())}return body=body(null,items),result(test,body,alternate,!0)},read_else_short:function(){this.expect(":")&&this.next();for(var body=this.node("block"),items=[];this.token!=this.EOF&&this.token!==this.tok.T_ENDIF;)items.push(this.read_inner_statement());return body(null,items)}}},{}],107:[function(require,module,exports){"use strict";module.exports={read_while:function(){var result=this.node("while"),test=null,body=null,shortForm=!1;return this.expect("(")&&this.next(),test=this.read_expr(),this.expect(")")&&this.next(),":"===this.token?(shortForm=!0,body=this.read_short_form(this.tok.T_ENDWHILE)):body=this.read_statement(),result(test,body,shortForm)},read_do:function(){var result=this.node("do"),test=null,body=null; -return body=this.read_statement(),this.ignoreComments().expect(this.tok.T_WHILE)&&(this.next().expect("(")&&this.next(),test=this.read_expr(),this.expect(")")&&this.next(),this.expect(";")&&this.next()),result(test,body)},read_for:function(){var result=this.node("for"),init=[],test=[],increment=[],body=null,shortForm=!1;return this.expect("(")&&this.next(),";"!==this.token?(init=this.read_list(this.read_expr,","),this.expect(";")&&this.next()):this.next(),";"!==this.token?(test=this.read_list(this.read_expr,","),this.expect(";")&&this.next()):this.next(),")"!==this.token?(increment=this.read_list(this.read_expr,","),this.expect(")")&&this.next()):this.next(),":"===this.token?(shortForm=!0,body=this.read_short_form(this.tok.T_ENDFOR)):body=this.read_statement(),result(init,test,increment,body,shortForm)},read_foreach:function(){var result=this.node("foreach"),source=null,key=null,value=null,body=null,shortForm=!1;return this.expect("(")&&this.next(),source=this.read_expr(),this.ignoreComments().expect(this.tok.T_AS)&&(this.next(), -value=this.read_foreach_variable(),this.token===this.tok.T_DOUBLE_ARROW&&(key=value,value=this.next().read_foreach_variable())),this.expect(")")&&this.next(),":"===this.token?(shortForm=!0,body=this.read_short_form(this.tok.T_ENDFOREACH)):body=this.read_statement(),result(source,key,value,body,shortForm)},read_foreach_variable:function(){if(this.token===this.tok.T_LIST){var result=this.node("list");this.next().expect("(")&&this.next();var assignList=this.read_assignment_list();return this.expect(")")&&this.next(),result(assignList)}return"["===this.token||this.token===this.tok.T_ARRAY?this.read_array():this.read_variable(!1,!1,!1)}}},{}],108:[function(require,module,exports){module.exports={read_start:function(){return this.token==this.tok.T_NAMESPACE?this.read_namespace():this.read_top_statement()}}},{}],109:[function(require,module,exports){"use strict";module.exports={read_namespace:function(){var result=this.node("namespace");if(this.expect(this.tok.T_NAMESPACE)&&this.next(),"{"==this.token){this.currentNamespace=[""]; -var body=this.nextWithComments().read_top_statements();return this.expect("}")&&this.nextWithComments(),result([""],body,!0)}var name=this.read_namespace_name();if(";"==this.token){this.currentNamespace=name;var body=this.nextWithComments().read_top_statements();return this.expect(this.EOF),result(name.name,body,!1)}if("{"==this.token){this.currentNamespace=name;var body=this.nextWithComments().read_top_statements();return this.expect("}")&&this.nextWithComments(),result(name.name,body,!0)}if("("===this.token)return name.resolution=this.ast.identifier.RELATIVE_NAME,name.name=name.name.substring(1),this.node("call")(name,this.read_function_argument_list());this.error(["{",";"]),this.currentNamespace=name;var body=this.read_top_statements();return this.expect(this.EOF),result(name,body,!1)},read_namespace_name:function(){var result=this.node("identifier"),relative=!1;return this.token===this.tok.T_NAMESPACE&&(this.next().expect(this.tok.T_NS_SEPARATOR)&&this.next(),relative=!0),result(this.read_list(this.tok.T_STRING,this.tok.T_NS_SEPARATOR,!0),relative); -},read_use_statement:function(){var result=this.node("usegroup"),type=null,items=[],name=null;return this.expect(this.tok.T_USE)&&this.next(),type=this.read_use_type(),items.push(this.read_use_declaration(!1)),","===this.token?items=items.concat(this.next().read_use_declarations(!1)):"{"===this.token&&(name=items[0].name,items=this.next().read_use_declarations(null===type),this.expect("}")&&this.next()),this.expect(";")&&this.nextWithComments(),result(name,type,items)},read_use_declaration:function(typed){var result=this.node("useitem"),type=null;typed&&(type=this.read_use_type());var name=this.read_namespace_name(),alias=this.read_use_alias();return result(name.name,alias,type)},read_use_declarations:function(typed){for(var result=[this.read_use_declaration(typed)];","===this.token;)result.push(this.next().read_use_declaration(typed));return result},read_use_alias:function(){var result=null;return this.token===this.tok.T_AS&&this.next().expect(this.tok.T_STRING)&&(result=this.text(),this.next()),result},read_use_type:function(){ -return this.token===this.tok.T_FUNCTION?(this.next(),this.ast.useitem.TYPE_FUNCTION):this.token===this.tok.T_CONST?(this.next(),this.ast.useitem.TYPE_CONST):null}}},{}],110:[function(require,module,exports){var specialChar={"\\r":"\r","\\n":"\n","\\t":"\t","\\v":String.fromCharCode(11),"\\e":String.fromCharCode(27),"\\f":String.fromCharCode(12),"\\\\":"\\","\\$":"$",'\\"':'"',"\\'":"'"};module.exports={resolve_special_chars:function(text){return text.replace(/\\[rntvef"'\\\$]/g,function(seq){return specialChar[seq]})},read_scalar:function(){if(this.is("T_MAGIC_CONST"))return this.get_magic_constant();switch(this.token){case this.tok.T_CONSTANT_ENCAPSED_STRING:var value=this.node("string"),text=this.text(),isDoubleQuote='"'===text[0];return text=text.substring(1,text.length-1),this.next(),value=value(isDoubleQuote,this.resolve_special_chars(text)),this.token===this.tok.T_DOUBLE_COLON?this.read_static_getter(value):value;case this.tok.T_START_HEREDOC:if("ST_NOWDOC"===this.lexer.curCondition){var node=this.node("nowdoc"),value=this.next().text(),lastCh=value[value.length-1]; -return"\n"===lastCh?value="\r"===value[value.length-2]?value.substring(0,value.length-2):value.substring(0,value.length-1):"\r"===lastCh&&(value=value.substring(0,value.length-1)),this.expect(this.tok.T_ENCAPSED_AND_WHITESPACE)&&this.next(),node=node(value,this.lexer.heredoc_label),this.expect(this.tok.T_END_HEREDOC)&&this.next(),node}return this.next().read_encapsed_string(this.tok.T_END_HEREDOC);case'"':return this.next().read_encapsed_string('"');case'b"':case'B"':var node=this.node("cast"),what=this.next().read_encapsed_string('"');return node("binary",what);case this.tok.T_LNUMBER:case this.tok.T_DNUMBER:var result=this.node("number"),value=this.text();return this.next(),result=result(value);case this.tok.T_ARRAY:case"[":return this.read_array();default:var err=this.error("SCALAR");return this.next(),err}},read_dereferencable:function(expr){var result,node=this.node("offsetlookup");if("["===this.token){var offset=this.next().read_expr();this.expect("]")&&this.next(),result=node(expr,offset)}else if(this.token===this.tok.T_DOLLAR_OPEN_CURLY_BRACES){ -var offset=this.read_encapsed_string_item();result=node(expr,offset)}return result},read_encapsed_string_item:function(){var result=this.node();if(this.token===this.tok.T_ENCAPSED_AND_WHITESPACE){var text=this.text();this.next(),result=result("string",!1,this.resolve_special_chars(text))}else if(this.token===this.tok.T_DOLLAR_OPEN_CURLY_BRACES){var name=null;if(this.next().token===this.tok.T_STRING_VARNAME){var varName=this.text();if(name=this.node("variable"),this.next(),name=name(varName,!1),"["===this.token){var node=this.node("offsetlookup"),offset=this.next().read_expr();this.expect("]")&&this.next(),name=node(name,offset)}}else name=this.read_expr();this.expect("}")&&this.next(),result=result("variable",name,!1)}else if(this.token===this.tok.T_CURLY_OPEN)result=this.next().read_variable(!1,!1,!1),this.expect("}")&&this.next();else if(this.token===this.tok.T_VARIABLE){if(result=this.read_simple_variable(!1),"["===this.token){var node=this.node("offsetlookup"),offset=this.next().read_encaps_var_offset();this.expect("]")&&this.next(), -result=node(result,offset)}if(this.token===this.tok.T_OBJECT_OPERATOR){var node=this.node("propertylookup"),what=this.node("constref");this.next().expect(this.tok.T_STRING);var name=this.text();this.next(),result=node(result,what(name))}}else{this.expect(this.tok.T_ENCAPSED_AND_WHITESPACE);var value=this.text();this.next(),result=result("string",!1,value)}return result},read_encapsed_string:function(expect){var node=this.node("encapsed"),value=[],type=null;for(type="`"===expect?this.ast.encapsed.TYPE_SHELL:'"'===expect?this.ast.encapsed.TYPE_STRING:this.ast.encapsed.TYPE_HEREDOC;this.token!==expect&&this.token!==this.EOF;)value.push(this.read_encapsed_string_item());return this.expect(expect)&&this.next(),node=node(value,type),expect===this.tok.T_END_HEREDOC&&(node.label=this.lexer.heredoc_label),node},get_magic_constant:function(){var result=this.node("magic"),name=this.text();return this.next(),result(name)}}},{}],111:[function(require,module,exports){module.exports={read_top_statements:function(){for(var result=[];this.token!==this.EOF&&"}"!==this.token;){ -var statement=this.read_top_statement();statement&&(Array.isArray(statement)?result=result.concat(statement):result.push(statement))}return result},read_top_statement:function(){switch(this.token){case this.tok.T_FUNCTION:return this.read_function(!1,!1);case this.tok.T_ABSTRACT:case this.tok.T_FINAL:var flag=this.read_class_scope();return this.token===this.tok.T_CLASS?this.read_class(flag):(this.error(this.tok.T_CLASS),this.next(),null);case this.tok.T_CLASS:return this.read_class([0,0,0]);case this.tok.T_INTERFACE:return this.read_interface();case this.tok.T_TRAIT:return this.read_trait();case this.tok.T_USE:return this.read_use_statement();case this.tok.T_CONST:return this.next().read_const_list();case this.tok.T_NAMESPACE:return this.read_namespace();case this.tok.T_HALT_COMPILER:var result=this.node("halt");return this.next().expect("(")&&this.next(),this.expect(")")&&this.next(),this.expect(";"),this.lexer.done=!0,result(this.lexer._input.substring(this.lexer.offset));default:return this.read_statement(); -}},read_inner_statements:function(){for(var result=[];this.token!=this.EOF&&"}"!==this.token;){var statement=this.read_inner_statement();statement&&(Array.isArray(statement)?result=result.concat(statement):result.push(statement))}return result},read_const_list:function(){var result=this.read_list(function(){this.expect(this.tok.T_STRING);var result=this.node("constant"),name=this.text();return this.next().expect("=")?result(name,this.next().read_expr()):result(name,null)},",",!1);return this.expectEndOfStatement(),result},read_declare_list:function(){for(var result={};this.token!=this.EOF&&")"!==this.token;){this.expect(this.tok.T_STRING);var name=this.text().toLowerCase();if(this.next().expect("=")?result[name]=this.next().read_expr():result[name]=null,","!==this.token)break;this.next()}return result},read_inner_statement:function(){switch(this.token){case this.tok.T_FUNCTION:return this.read_function(!1,!1);case this.tok.T_ABSTRACT:case this.tok.T_FINAL:var flag=this.read_class_scope();return this.token===this.tok.T_CLASS?this.read_class(flag):(this.error(this.tok.T_CLASS), -this.next(),null);case this.tok.T_CLASS:return this.read_class([0,0,0]);case this.tok.T_INTERFACE:return this.read_interface();case this.tok.T_TRAIT:return this.read_trait();case this.tok.T_HALT_COMPILER:this.raiseError("__HALT_COMPILER() can only be used from the outermost scope");var node=this.node("halt");return this.next().expect("(")&&this.next(),this.expect(")")&&this.next(),node=node(this.lexer._input.substring(this.lexer.offset)),this.expect(";")&&this.next(),node;default:return this.read_statement()}},read_statement:function(){switch(this.token){case"{":return this.read_code_block(!1);case this.tok.T_IF:return this.next().read_if();case this.tok.T_SWITCH:return this.read_switch();case this.tok.T_FOR:return this.next().read_for();case this.tok.T_FOREACH:return this.next().read_foreach();case this.tok.T_WHILE:return this.next().read_while();case this.tok.T_DO:return this.next().read_do();case this.tok.T_COMMENT:return this.read_comment();case this.tok.T_DOC_COMMENT:return this.read_doc_comment();case this.tok.T_RETURN: -var result=this.node("return"),expr=null;return this.next().is("EOS")||(expr=this.read_expr()),this.expectEndOfStatement(),result(expr);case this.tok.T_BREAK:case this.tok.T_CONTINUE:var result=this.node(this.token===this.tok.T_CONTINUE?"continue":"break"),level=null;return this.next(),";"!==this.token&&this.token!==this.tok.T_CLOSE_TAG&&(level=this.read_expr()),this.expectEndOfStatement(),result(level);case this.tok.T_GLOBAL:var result=this.node("global"),items=this.next().read_list(this.read_simple_variable,",");return this.expectEndOfStatement(),result(items);case this.tok.T_STATIC:var current=[this.token,this.lexer.getState()],result=this.node("static");if(this.next().token===this.tok.T_DOUBLE_COLON){this.lexer.tokens.push(current);var expr=this.next().read_expr();return this.expect(";")&&this.nextWithComments(),expr}var items=this.read_variable_declarations();return this.expectEndOfStatement(),result(items);case this.tok.T_ECHO:var result=this.node("echo"),args=this.next().read_list(this.read_expr,",");return this.expectEndOfStatement(), -result(args);case this.tok.T_INLINE_HTML:var result=this.node("inline"),value=this.text();return this.next(),result(value);case this.tok.T_UNSET:var result=this.node("unset");this.next().expect("(")&&this.next();var items=this.read_list(this.read_variable,",");return this.expect(")")&&this.next(),this.expect(";")&&this.nextWithComments(),result(items);case this.tok.T_DECLARE:var what,mode,result=this.node("declare"),body=[];if(this.next().expect("(")&&this.next(),what=this.read_declare_list(),this.expect(")")&&this.next(),":"===this.token){for(this.nextWithComments();this.token!=this.EOF&&this.token!==this.tok.T_ENDDECLARE;)body.push(this.read_top_statement());this.expect(this.tok.T_ENDDECLARE)&&this.next(),this.expectEndOfStatement(),mode=this.ast.declare.MODE_SHORT}else if("{"===this.token){for(this.nextWithComments();this.token!=this.EOF&&"}"!==this.token;)body.push(this.read_top_statement());this.expect("}")&&this.next(),mode=this.ast.declare.MODE_BLOCK}else{for(this.expect(";")&&this.nextWithComments();this.token!=this.EOF&&this.token!==this.tok.T_DECLARE;)body.push(this.read_top_statement()); -mode=this.ast.declare.MODE_NONE}return result(what,body,mode);case this.tok.T_TRY:return this.read_try();case this.tok.T_THROW:var result=this.node("throw"),expr=this.next().read_expr();return this.expectEndOfStatement(),result(expr);case";":case this.tok.T_CLOSE_TAG:return this.next(),null;case this.tok.T_STRING:var current=[this.token,this.lexer.getState()],label=this.text();if(":"===this.next().token){var result=this.node("label");return this.next(),result(label)}this.lexer.tokens.push(current);var expr=this.next().read_expr();return this.expect([";",this.tok.T_CLOSE_TAG])&&this.nextWithComments(),expr;case this.tok.T_GOTO:var result=this.node("goto"),label=null;return this.next().expect(this.tok.T_STRING)&&(label=this.text(),this.next().expectEndOfStatement()),result(label);default:var expr=this.read_expr();return this.expectEndOfStatement(),expr}},read_code_block:function(top){var result=this.node("block");this.expect("{")&&this.nextWithComments();var body=top?this.read_top_statements():this.read_inner_statements(); -return this.expect("}")&&this.nextWithComments(),result(null,body)}}},{}],112:[function(require,module,exports){"use strict";module.exports={read_switch:function(){this.expect(this.tok.T_SWITCH)&&this.next();var test,body,shortForm,result=this.node("switch");return this.expect("(")&&this.next(),test=this.read_expr(),this.expect(")")&&this.next(),shortForm=":"===this.token,body=this.read_switch_case_list(),result(test,body,shortForm)},read_switch_case_list:function(){var expect=null,result=this.node("block"),items=[];for("{"===this.token?expect="}":":"===this.token?expect=this.tok.T_ENDSWITCH:this.expect(["{",":"]),";"===this.next().token&&this.next(),this.token===this.tok.T_CLOSE_TAG&&this.next();this.token!==this.EOF&&this.token!==expect;)items.push(this.read_case_list(expect));return this.expect(expect)&&this.next(),expect===this.tok.T_ENDSWITCH&&this.expectEndOfStatement(),result(null,items)},read_case_list:function(stopToken){var result=this.node("case"),test=null,body=null,items=[];for(this.token===this.tok.T_CASE?test=this.next().read_expr():this.token===this.tok.T_DEFAULT?this.next():this.expect([this.tok.T_CASE,this.tok.T_DEFAULT]), -this.expect([":",";"])&&this.next(),body=this.node("block");this.token!=this.EOF&&this.token!==stopToken&&this.token!==this.tok.T_CASE&&this.token!==this.tok.T_DEFAULT;)items.push(this.read_inner_statement());return result(test,items.length>0?body(null,items):null)}}},{}],113:[function(require,module,exports){module.exports={read_try:function(){this.expect(this.tok.T_TRY);var body,result=this.node("try"),always=null,catches=[];for(body=this.next().read_statement();this.ignoreComments().token===this.tok.T_CATCH;){var item=this.node("catch"),what=[],variable=null;this.next().expect("(")&&this.next(),what=this.read_list(this.read_namespace_name,"|",!1),variable=this.read_variable(!0,!1,!1),this.expect(")"),catches.push(item(this.next().read_statement(),what,variable))}return this.token===this.tok.T_FINALLY&&(always=this.next().read_statement()),result(body,catches,always)}}},{}],114:[function(require,module,exports){"use strict";module.exports={read_short_form:function(token){var body=this.node("block"),items=[];for(this.expect(":")&&this.next();this.token!=this.EOF&&this.token!==token;)items.push(this.read_inner_statement()); -return this.expect(token)&&this.next(),this.expectEndOfStatement(),body(null,items)},read_list:function(item,separator,preserveFirstSeparator){var result=[];if(this.token==separator&&(preserveFirstSeparator&&result.push(""),this.next()),"function"==typeof item){do if(result.push(item.apply(this,[])),this.token!=separator)break;while(this.next().token!=this.EOF)}else{if(!this.expect(item))return[];for(result.push(this.text());this.next().token!=this.EOF&&this.token==separator&&this.next().token==item;)result.push(this.text())}return result},read_name_list:function(){return this.read_list(this.read_namespace_name,",",!1)},read_variable_declarations:function(){return this.read_list(function(){var node=this.node("assign"),variable=this.node("variable");if(this.expect(this.tok.T_VARIABLE)){var name=this.text().substring(1);this.next(),variable=variable(name,!1)}else variable=variable("#ERR",!1);return"="===this.token?node(variable,this.next().read_expr()):variable},",")}}},{}],115:[function(require,module,exports){ -"use strict";module.exports={read_variable:function(read_only,encapsed,byref){var result;if(byref||"&"!==this.token||(byref=!0,this.next()),this.is([this.tok.T_VARIABLE,"$"]))result=this.read_reference_variable(encapsed,byref);else if(this.is([this.tok.T_NS_SEPARATOR,this.tok.T_STRING,this.tok.T_NAMESPACE])){result=this.node();var name=this.read_namespace_name();if(this.token!=this.tok.T_DOUBLE_COLON&&"("!=this.token){var literal=name.name.toLowerCase();result="true"===literal?result("boolean",!0):"false"===literal?result("boolean",!1):result("constref",name)}else result=name}else this.token===this.tok.T_STATIC?(result=this.node("constref"),this.next(),result=result("static")):this.expect("VARIABLE");return this.token===this.tok.T_DOUBLE_COLON&&(result=this.read_static_getter(result,encapsed)),this.recursive_variable_chain_scan(result,read_only,encapsed)},read_static_getter:function(what,encapsed){var result=this.node("staticlookup"),offset=null;if(this.next().is([this.tok.T_VARIABLE,"$"]))offset=this.read_reference_variable(encapsed,!1);else if(this.token===this.tok.T_STRING||this.token===this.tok.T_CLASS){ -offset=this.node("constref");var name=this.text();this.next(),offset=offset(name)}else{this.error([this.tok.T_VARIABLE,this.tok.T_STRING]),offset=this.node("constref");var name=this.text();this.next(),offset=offset(name)}return result(what,offset)},recursive_variable_chain_scan:function(result,read_only,encapsed){recursive_scan_loop:for(;this.token!=this.EOF;)switch(this.token){case"(":if(read_only)return result;result=this.node("call")(result,this.read_function_argument_list());break;case"[":var node=this.node("offsetlookup");this.next();var offset=!1;encapsed?(offset=this.read_encaps_var_offset(),this.expect("]")&&this.next()):"]"!==this.token?(offset=this.read_expr(),this.expect("]")&&this.next()):this.next(),result=node(result,offset);break;case this.tok.T_OBJECT_OPERATOR:var node=this.node("propertylookup"),what=null;switch(this.next().token){case this.tok.T_STRING:what=this.node("constref");var name=this.text();if(this.next(),what=what(name),this.token===this.tok.T_VARIABLE){var inner=this.node("variable"); -name=this.text().substring(1),this.next(),what=this.node("encapsed")([what,inner(name,!1)],"offset"),what.loc&&what.value[0].loc&&(what.loc.start=what.value[0].loc.start)}else if("{"===this.token){var expr=this.next().read_expr();this.expect("}")&&this.next(),what=this.node("encapsed")([what,expr],"offset"),what.loc&&what.value[0].loc&&(what.loc.start=what.value[0].loc.start)}break;case this.tok.T_VARIABLE:what=this.node("variable");var name=this.text().substring(1);this.next(),what=what(name,!1);break;case"$":this.next().expect(["{",this.tok.T_VARIABLE]),"{"===this.token?(what=this.next().read_expr(),this.expect("}")&&this.next()):what=this.read_expr();break;case"{":what=this.next().read_expr(),this.expect("}")&&this.next();break;default:this.error([this.tok.T_STRING,this.tok.T_VARIABLE]),what=this.node("constref");var name=this.text();this.next(),what=what(name)}result=node(result,what);break;default:break recursive_scan_loop}return result},read_encaps_var_offset:function(){var offset=this.node();if(this.token===this.tok.T_STRING){ -var text=this.text(),isDblQuote='"'===text[0];text=text.substring(1,text.length-1),this.next(),offset=offset("string",isDblQuote,this.resolve_special_chars(text))}else if(this.token===this.tok.T_NUM_STRING){var num=this.text();this.next(),offset=offset("number",num)}else if(this.token===this.tok.T_VARIABLE){var name=this.text().substring(1);this.next(),offset=offset("variable",name,!1)}else{this.expect([this.tok.T_STRING,this.tok.T_NUM_STRING,this.tok.T_VARIABLE]);var text=this.text();this.next(),offset=offset("string",!1,text)}return offset},read_reference_variable:function(encapsed,byref){for(var result=this.read_simple_variable(byref);this.token!=this.EOF;){var node=this.node();if("["==this.token){var offset=null;offset=encapsed?this.next().read_encaps_var_offset():"]"===this.next().token?null:this.read_dim_offset(),this.expect("]")&&this.next(),result=node("offsetlookup",result,offset)}else{if("{"!=this.token||encapsed)break;var offset=this.next().read_expr();this.expect("}")&&this.next(),result=node("offsetlookup",result,offset); -}}return result},read_simple_variable:function(byref){var result=this.node("variable");if(this.expect([this.tok.T_VARIABLE,"$"])&&this.token===this.tok.T_VARIABLE){var name=this.text().substring(1);this.next(),result=result(name,byref)}else switch("$"===this.token&&this.next(),this.token){case"{":var expr=this.next().read_expr();this.expect("}")&&this.next(),result=result(expr,byref);break;case"$":result=result(this.read_simple_variable(!1),byref);break;case this.tok.T_VARIABLE:var name=this.text().substring(1),node=this.node("variable");this.next(),result=result(node(name,!1),byref);break;default:this.error(["{","$",this.tok.T_VARIABLE]);var name=this.text();this.next(),result=result(name,byref)}return result}}},{}],116:[function(require,module,exports){module.exports={values:{101:"T_HALT_COMPILER",102:"T_USE",103:"T_ENCAPSED_AND_WHITESPACE",104:"T_OBJECT_OPERATOR",105:"T_STRING",106:"T_DOLLAR_OPEN_CURLY_BRACES",107:"T_STRING_VARNAME",108:"T_CURLY_OPEN",109:"T_NUM_STRING",110:"T_ISSET",111:"T_EMPTY",112:"T_INCLUDE", -113:"T_INCLUDE_ONCE",114:"T_EVAL",115:"T_REQUIRE",116:"T_REQUIRE_ONCE",117:"T_NAMESPACE",118:"T_NS_SEPARATOR",119:"T_AS",120:"T_IF",121:"T_ENDIF",122:"T_WHILE",123:"T_DO",124:"T_FOR",125:"T_SWITCH",126:"T_BREAK",127:"T_CONTINUE",128:"T_RETURN",129:"T_GLOBAL",130:"T_STATIC",131:"T_ECHO",132:"T_INLINE_HTML",133:"T_UNSET",134:"T_FOREACH",135:"T_DECLARE",136:"T_TRY",137:"T_THROW",138:"T_GOTO",139:"T_FINALLY",140:"T_CATCH",141:"T_ENDDECLARE",142:"T_LIST",143:"T_CLONE",144:"T_PLUS_EQUAL",145:"T_MINUS_EQUAL",146:"T_MUL_EQUAL",147:"T_DIV_EQUAL",148:"T_CONCAT_EQUAL",149:"T_MOD_EQUAL",150:"T_AND_EQUAL",151:"T_OR_EQUAL",152:"T_XOR_EQUAL",153:"T_SL_EQUAL",154:"T_SR_EQUAL",155:"T_INC",156:"T_DEC",157:"T_BOOLEAN_OR",158:"T_BOOLEAN_AND",159:"T_LOGICAL_OR",160:"T_LOGICAL_AND",161:"T_LOGICAL_XOR",162:"T_SL",163:"T_SR",164:"T_IS_IDENTICAL",165:"T_IS_NOT_IDENTICAL",166:"T_IS_EQUAL",167:"T_IS_NOT_EQUAL",168:"T_IS_SMALLER_OR_EQUAL",169:"T_IS_GREATER_OR_EQUAL",170:"T_INSTANCEOF",171:"T_INT_CAST",172:"T_DOUBLE_CAST",173:"T_STRING_CAST", -174:"T_ARRAY_CAST",175:"T_OBJECT_CAST",176:"T_BOOL_CAST",177:"T_UNSET_CAST",178:"T_EXIT",179:"T_PRINT",180:"T_YIELD",181:"T_YIELD_FROM",182:"T_FUNCTION",183:"T_DOUBLE_ARROW",184:"T_DOUBLE_COLON",185:"T_ARRAY",186:"T_CALLABLE",187:"T_CLASS",188:"T_ABSTRACT",189:"T_TRAIT",190:"T_FINAL",191:"T_EXTENDS",192:"T_INTERFACE",193:"T_IMPLEMENTS",194:"T_VAR",195:"T_PUBLIC",196:"T_PROTECTED",197:"T_PRIVATE",198:"T_CONST",199:"T_NEW",200:"T_INSTEADOF",201:"T_ELSEIF",202:"T_ELSE",203:"T_ENDSWITCH",204:"T_CASE",205:"T_DEFAULT",206:"T_ENDFOR",207:"T_ENDFOREACH",208:"T_ENDWHILE",209:"T_CONSTANT_ENCAPSED_STRING",210:"T_LNUMBER",211:"T_DNUMBER",212:"T_LINE",213:"T_FILE",214:"T_DIR",215:"T_TRAIT_C",216:"T_METHOD_C",217:"T_FUNC_C",218:"T_NS_C",219:"T_START_HEREDOC",220:"T_END_HEREDOC",221:"T_CLASS_C",222:"T_VARIABLE",223:"T_OPEN_TAG",224:"T_OPEN_TAG_WITH_ECHO",225:"T_CLOSE_TAG",226:"T_WHITESPACE",227:"T_COMMENT",228:"T_DOC_COMMENT",229:"T_ELLIPSIS",230:"T_COALESCE",231:"T_POW",232:"T_POW_EQUAL",233:"T_SPACESHIP"},names:{T_HALT_COMPILER:101, -T_USE:102,T_ENCAPSED_AND_WHITESPACE:103,T_OBJECT_OPERATOR:104,T_STRING:105,T_DOLLAR_OPEN_CURLY_BRACES:106,T_STRING_VARNAME:107,T_CURLY_OPEN:108,T_NUM_STRING:109,T_ISSET:110,T_EMPTY:111,T_INCLUDE:112,T_INCLUDE_ONCE:113,T_EVAL:114,T_REQUIRE:115,T_REQUIRE_ONCE:116,T_NAMESPACE:117,T_NS_SEPARATOR:118,T_AS:119,T_IF:120,T_ENDIF:121,T_WHILE:122,T_DO:123,T_FOR:124,T_SWITCH:125,T_BREAK:126,T_CONTINUE:127,T_RETURN:128,T_GLOBAL:129,T_STATIC:130,T_ECHO:131,T_INLINE_HTML:132,T_UNSET:133,T_FOREACH:134,T_DECLARE:135,T_TRY:136,T_THROW:137,T_GOTO:138,T_FINALLY:139,T_CATCH:140,T_ENDDECLARE:141,T_LIST:142,T_CLONE:143,T_PLUS_EQUAL:144,T_MINUS_EQUAL:145,T_MUL_EQUAL:146,T_DIV_EQUAL:147,T_CONCAT_EQUAL:148,T_MOD_EQUAL:149,T_AND_EQUAL:150,T_OR_EQUAL:151,T_XOR_EQUAL:152,T_SL_EQUAL:153,T_SR_EQUAL:154,T_INC:155,T_DEC:156,T_BOOLEAN_OR:157,T_BOOLEAN_AND:158,T_LOGICAL_OR:159,T_LOGICAL_AND:160,T_LOGICAL_XOR:161,T_SL:162,T_SR:163,T_IS_IDENTICAL:164,T_IS_NOT_IDENTICAL:165,T_IS_EQUAL:166,T_IS_NOT_EQUAL:167,T_IS_SMALLER_OR_EQUAL:168,T_IS_GREATER_OR_EQUAL:169, -T_INSTANCEOF:170,T_INT_CAST:171,T_DOUBLE_CAST:172,T_STRING_CAST:173,T_ARRAY_CAST:174,T_OBJECT_CAST:175,T_BOOL_CAST:176,T_UNSET_CAST:177,T_EXIT:178,T_PRINT:179,T_YIELD:180,T_YIELD_FROM:181,T_FUNCTION:182,T_DOUBLE_ARROW:183,T_DOUBLE_COLON:184,T_ARRAY:185,T_CALLABLE:186,T_CLASS:187,T_ABSTRACT:188,T_TRAIT:189,T_FINAL:190,T_EXTENDS:191,T_INTERFACE:192,T_IMPLEMENTS:193,T_VAR:194,T_PUBLIC:195,T_PROTECTED:196,T_PRIVATE:197,T_CONST:198,T_NEW:199,T_INSTEADOF:200,T_ELSEIF:201,T_ELSE:202,T_ENDSWITCH:203,T_CASE:204,T_DEFAULT:205,T_ENDFOR:206,T_ENDFOREACH:207,T_ENDWHILE:208,T_CONSTANT_ENCAPSED_STRING:209,T_LNUMBER:210,T_DNUMBER:211,T_LINE:212,T_FILE:213,T_DIR:214,T_TRAIT_C:215,T_METHOD_C:216,T_FUNC_C:217,T_NS_C:218,T_START_HEREDOC:219,T_END_HEREDOC:220,T_CLASS_C:221,T_VARIABLE:222,T_OPEN_TAG:223,T_OPEN_TAG_WITH_ECHO:224,T_CLOSE_TAG:225,T_WHITESPACE:226,T_COMMENT:227,T_DOC_COMMENT:228,T_ELLIPSIS:229,T_COALESCE:230,T_POW:231,T_POW_EQUAL:232,T_SPACESHIP:233}}},{}],"php-parser":[function(require,module,exports){function combine(src,to){ -for(var keys=Object.keys(src),i=keys.length;i--;){var k=keys[i],val=src[k];null===val?delete to[k]:"function"==typeof val?to[k]=val.bind(to):Array.isArray(val)?to[k]=Array.isArray(to[k])?to[k].concat(val):val:"object"==typeof val?to[k]="object"==typeof to[k]?combine(val,to[k]):val:to[k]=val}return to}var lexer=require("./lexer"),parser=require("./parser"),tokens=require("./tokens"),AST=require("./ast"),engine=function(options){return"function"==typeof this?new this(options):(this.tokens=tokens,this.lexer=new lexer(this),this.ast=new AST,this.parser=new parser(this.lexer,this.ast),void(options&&"object"==typeof options&&combine(options,this)))};engine.create=function(options){return new engine(options)},engine.parseEval=function(buffer,options){var self=new engine(options);return self.parseEval(buffer)},engine.prototype.parseEval=function(buffer){return this.lexer.mode_eval=!0,this.lexer.all_tokens=!1,this.parser.parse(buffer,"eval")},engine.parseCode=function(buffer,filename,options){"object"==typeof filename&&(options=filename, -filename="unknown");var self=new engine(options);return self.parseCode(buffer,filename)},engine.prototype.parseCode=function(buffer,filename){return this.lexer.mode_eval=!1,this.lexer.all_tokens=!1,this.parser.parse(buffer,filename)},engine.tokenGetAll=function(buffer,options){var self=new engine(options);return self.tokenGetAll(buffer)},engine.prototype.tokenGetAll=function(buffer){this.lexer.mode_eval=!1,this.lexer.all_tokens=!0;var EOF=this.lexer.EOF,names=this.tokens.values;this.lexer.setInput(buffer);for(var token=this.lexer.lex()||EOF,result=[];token!=EOF;){var entry=this.lexer.yytext;names.hasOwnProperty(token)&&(entry=[names[token],entry,this.lexer.yylloc.first_line]),result.push(entry),token=this.lexer.lex()||EOF}return result},module.exports=engine},{"./ast":2,"./lexer":91,"./parser":100,"./tokens":116}]},{},[]); +case this.tok.T_UNSET_CAST:return this.node("unset")(this.next().read_expr());case this.tok.T_EXIT:var result=this.node("exit"),status=null;return"("===this.next().token&&(")"!==this.next().token?(status=this.read_expr(),this.expect(")")&&this.next()):this.next()),result(status);case this.tok.T_PRINT:return this.node("print")(this.next().read_expr());case this.tok.T_YIELD:var result=this.node("yield"),value=null,key=null;return this.next().is("EXPR")&&(value=this.read_expr(),this.token===this.tok.T_DOUBLE_ARROW&&(key=value,value=this.next().read_expr())),result(value,key);case this.tok.T_YIELD_FROM:var result=this.node("yieldfrom"),expr=this.next().read_expr();return result(expr);case this.tok.T_FUNCTION:return this.read_function(!0);case this.tok.T_STATIC:var backup=[this.token,this.lexer.getState()];if(this.next().token===this.tok.T_FUNCTION)return this.read_function(!0,[0,1,0]);this.lexer.tokens.push(backup),this.next()}var expr;if(this.is("VARIABLE")){var result=this.node();switch(expr=this.read_variable(!1,!1,!1), +this.token){case"=":var right;return right="&"==this.next().token?this.next().token===this.tok.T_NEW?this.next().read_new_expr():this.read_variable(!1,!1,!0):this.read_expr(),result("assign",expr,right,"=");case this.tok.T_PLUS_EQUAL:return result("assign",expr,this.next().read_expr(),"+=");case this.tok.T_MINUS_EQUAL:return result("assign",expr,this.next().read_expr(),"-=");case this.tok.T_MUL_EQUAL:return result("assign",expr,this.next().read_expr(),"*=");case this.tok.T_POW_EQUAL:return result("assign",expr,this.next().read_expr(),"**=");case this.tok.T_DIV_EQUAL:return result("assign",expr,this.next().read_expr(),"/=");case this.tok.T_CONCAT_EQUAL:return result("assign",expr,this.next().read_expr(),".=");case this.tok.T_MOD_EQUAL:return result("assign",expr,this.next().read_expr(),"%=");case this.tok.T_AND_EQUAL:return result("assign",expr,this.next().read_expr(),"&=");case this.tok.T_OR_EQUAL:return result("assign",expr,this.next().read_expr(),"|=");case this.tok.T_XOR_EQUAL:return result("assign",expr,this.next().read_expr(),"^="); +case this.tok.T_SL_EQUAL:return result("assign",expr,this.next().read_expr(),"<<=");case this.tok.T_SR_EQUAL:return result("assign",expr,this.next().read_expr(),">>=");case this.tok.T_INC:return this.next(),result("post","+",expr);case this.tok.T_DEC:return this.next(),result("post","-",expr)}}else if(this.is("SCALAR"))for(expr=this.read_scalar();this.token!==this.EOF;)if(this.token===this.tok.T_OBJECT_OPERATOR)expr=this.recursive_variable_chain_scan(expr,!1);else if(this.token===this.tok.T_CURLY_OPEN||"["===this.token)expr=this.read_dereferencable(expr);else{if("("!==this.token)return expr;expr=this.node("call")(expr,this.read_function_argument_list())}else this.error("EXPR"),this.next();return expr},read_new_expr:function(){var result=this.node("new");if(this.token===this.tok.T_CLASS){var what=this.node("class"),propExtends=null,propImplements=null,body=null,args=[];return"("===this.next().token&&(args=this.read_function_argument_list()),this.token==this.tok.T_EXTENDS&&(propExtends=this.next().read_namespace_name()), +this.token==this.tok.T_IMPLEMENTS&&(propImplements=this.next().read_name_list()),this.expect("{")&&(body=this.next().read_class_body()),result(what(null,propExtends,propImplements,body,[0,0,0]),args)}var name=this.read_class_name_reference(),args=[];return"("===this.token&&(args=this.read_function_argument_list()),result(name,args)},read_class_name_reference:function(){if(this.token===this.tok.T_NS_SEPARATOR||this.token===this.tok.T_STRING||this.token===this.tok.T_NAMESPACE){var result=this.read_namespace_name();return this.token===this.tok.T_DOUBLE_COLON&&(result=this.read_static_getter(result)),result}return this.is("VARIABLE")?this.read_variable(!0,!1,!1):void this.expect([this.tok.T_STRING,"VARIABLE"])},read_assignment_list:function(){return this.read_list(this.read_assignment_list_element,",")},read_assignment_list_element:function(){if(","===this.token||")"===this.token)return null;var result=this.read_expr_item();return this.token===this.tok.T_DOUBLE_ARROW&&(result=["key",result,this.next().read_expr_item()]), +result}}},{}],105:[function(require,module,exports){module.exports={is_reference:function(){return"&"==this.token&&(this.next(),!0)},is_variadic:function(){return this.token===this.tok.T_ELLIPSIS&&(this.next(),!0)},read_function:function(closure,flag){var result=this.read_function_declaration(closure?1:flag?2:0,flag&&1===flag[1]);return flag&&1==flag[2]?(result.parseFlags(flag),this.expect(";")&&this.nextWithComments()):(this.expect("{")&&(result.body=this.read_code_block(!1),result.loc&&result.body.loc&&(result.loc.end=result.body.loc.end)),!closure&&flag&&result.parseFlags(flag)),result},read_function_declaration:function(type,isStatic){var nodeName="function";1===type?nodeName="closure":2===type&&(nodeName="method");var result=this.node(nodeName);this.expect(this.tok.T_FUNCTION)&&this.next();var isRef=this.is_reference(),name=!1,use=[],returnType=null,nullable=!1;1!==type&&this.expect(this.tok.T_STRING)&&(name=this.text(),this.next()),this.expect("(")&&this.next();var params=this.read_parameter_list();return this.expect(")")&&this.next(), +1===type&&this.token===this.tok.T_USE&&(this.next().expect("(")&&this.next(),use=this.read_list(this.read_lexical_var,","),this.expect(")")&&this.next()),":"===this.token&&("?"===this.next().token&&(nullable=!0,this.next()),returnType=this.read_type()),1===type?result(params,isRef,use,returnType,nullable,isStatic):result(name,params,isRef,returnType,nullable)},read_lexical_var:function(){var result=this.node("variable"),isRef=!1;"&"===this.token&&(isRef=!0,this.next()),this.expect(this.tok.T_VARIABLE);var name=this.text().substring(1);return this.next(),result(name,isRef,!1)},read_parameter_list:function(){var result=[];if(")"!=this.token)for(;this.token!=this.EOF;){if(result.push(this.read_parameter()),","!=this.token){if(")"==this.token)break;this.error([",",")"]);break}this.next()}return result},read_parameter:function(){var node=this.node("parameter"),name=null,value=null,type=null,nullable=!1;"?"===this.token&&(this.next(),nullable=!0),type=this.read_type(),nullable&&!type&&this.raiseError("Expecting a type definition combined with nullable operator"); +var isRef=this.is_reference(),isVariadic=this.is_variadic();return this.expect(this.tok.T_VARIABLE)&&(name=this.text().substring(1),this.next()),"="==this.token&&(value=this.next().read_expr()),node(name,type,value,isRef,isVariadic,nullable)},read_function_argument_list:function(){var result=[],wasVariadic=!1;if(this.expect("(")&&this.next(),")"!==this.token)for(;this.token!=this.EOF;){var argument=this.read_argument_list();if(argument&&(result.push(argument),"variadic"===argument.kind?wasVariadic=!0:wasVariadic&&this.raiseError("Unexpected argument after a variadic argument")),","!==this.token)break;this.next()}return this.expect(")")&&this.next(),result},read_argument_list:function(){return this.token===this.tok.T_ELLIPSIS?this.node("variadic")(this.next().read_expr()):this.read_expr()},read_type:function(){var result=this.node("identifier");switch(this.token){case this.tok.T_ARRAY:return this.next(),result(["","array"],!1);case this.tok.T_NAMESPACE:case this.tok.T_NS_SEPARATOR:case this.tok.T_STRING:return this.read_namespace_name(); +case this.tok.T_CALLABLE:return this.next(),result(["","callable"],!1);default:return null}}}},{}],106:[function(require,module,exports){module.exports={read_if:function(){var result=this.node("if"),body=null,alternate=null,shortForm=!1,test=null;if(test=this.read_if_expr(),":"===this.token){shortForm=!0,this.next(),body=this.node("block");for(var items=[];this.token!==this.EOF&&this.token!==this.tok.T_ENDIF;){if(this.token===this.tok.T_ELSEIF){alternate=this.next().read_elseif_short();break}if(this.token===this.tok.T_ELSE){alternate=this.next().read_else_short();break}items.push(this.read_inner_statement())}body=body(null,items),this.expect(this.tok.T_ENDIF)&&this.next(),this.expectEndOfStatement()}else body=this.read_statement(),this.ignoreComments(),this.token===this.tok.T_ELSEIF?alternate=this.next().read_if():this.token===this.tok.T_ELSE&&(alternate=this.next().read_statement());return result(test,body,alternate,shortForm)},read_if_expr:function(){this.expect("(")&&this.next();var result=this.read_expr();return this.expect(")")&&this.next(), +result},read_elseif_short:function(){var result=this.node("if"),alternate=null,test=null,body=null,items=[];for(test=this.read_if_expr(),this.expect(":")&&this.next(),body=this.node("block");this.token!=this.EOF&&this.token!==this.tok.T_ENDIF;){if(this.token===this.tok.T_ELSEIF){alternate=this.next().read_elseif_short();break}if(this.token===this.tok.T_ELSE){alternate=this.next().read_else_short();break}items.push(this.read_inner_statement())}return body=body(null,items),result(test,body,alternate,!0)},read_else_short:function(){this.expect(":")&&this.next();for(var body=this.node("block"),items=[];this.token!=this.EOF&&this.token!==this.tok.T_ENDIF;)items.push(this.read_inner_statement());return body(null,items)}}},{}],107:[function(require,module,exports){"use strict";module.exports={read_while:function(){var result=this.node("while"),test=null,body=null,shortForm=!1;return this.expect("(")&&this.next(),test=this.read_expr(),this.expect(")")&&this.next(),":"===this.token?(shortForm=!0,body=this.read_short_form(this.tok.T_ENDWHILE)):body=this.read_statement(), +result(test,body,shortForm)},read_do:function(){var result=this.node("do"),test=null,body=null;return body=this.read_statement(),this.ignoreComments().expect(this.tok.T_WHILE)&&(this.next().expect("(")&&this.next(),test=this.read_expr(),this.expect(")")&&this.next(),this.expect(";")&&this.next()),result(test,body)},read_for:function(){var result=this.node("for"),init=[],test=[],increment=[],body=null,shortForm=!1;return this.expect("(")&&this.next(),";"!==this.token?(init=this.read_list(this.read_expr,","),this.expect(";")&&this.next()):this.next(),";"!==this.token?(test=this.read_list(this.read_expr,","),this.expect(";")&&this.next()):this.next(),")"!==this.token?(increment=this.read_list(this.read_expr,","),this.expect(")")&&this.next()):this.next(),":"===this.token?(shortForm=!0,body=this.read_short_form(this.tok.T_ENDFOR)):body=this.read_statement(),result(init,test,increment,body,shortForm)},read_foreach:function(){var result=this.node("foreach"),source=null,key=null,value=null,body=null,shortForm=!1;return this.expect("(")&&this.next(), +source=this.read_expr(),this.ignoreComments().expect(this.tok.T_AS)&&(this.next(),value=this.read_foreach_variable(),this.token===this.tok.T_DOUBLE_ARROW&&(key=value,value=this.next().read_foreach_variable())),this.expect(")")&&this.next(),":"===this.token?(shortForm=!0,body=this.read_short_form(this.tok.T_ENDFOREACH)):body=this.read_statement(),result(source,key,value,body,shortForm)},read_foreach_variable:function(){if(this.token===this.tok.T_LIST){var result=this.node("list");this.next().expect("(")&&this.next();var assignList=this.read_assignment_list();return this.expect(")")&&this.next(),result(assignList)}return"["===this.token||this.token===this.tok.T_ARRAY?this.read_array():this.read_variable(!1,!1,!1)}}},{}],108:[function(require,module,exports){module.exports={read_start:function(){return this.token==this.tok.T_NAMESPACE?this.read_namespace():this.read_top_statement()}}},{}],109:[function(require,module,exports){"use strict";module.exports={read_namespace:function(){var result=this.node("namespace"); +if(this.expect(this.tok.T_NAMESPACE)&&this.next(),"{"==this.token){this.currentNamespace=[""];var body=this.nextWithComments().read_top_statements();return this.expect("}")&&this.nextWithComments(),result([""],body,!0)}var name=this.read_namespace_name();if(";"==this.token){this.currentNamespace=name;var body=this.nextWithComments().read_top_statements();return this.expect(this.EOF),result(name.name,body,!1)}if("{"==this.token){this.currentNamespace=name;var body=this.nextWithComments().read_top_statements();return this.expect("}")&&this.nextWithComments(),result(name.name,body,!0)}if("("===this.token)return name.resolution=this.ast.identifier.RELATIVE_NAME,name.name=name.name.substring(1),this.node("call")(name,this.read_function_argument_list());this.error(["{",";"]),this.currentNamespace=name;var body=this.read_top_statements();return this.expect(this.EOF),result(name,body,!1)},read_namespace_name:function(){var result=this.node("identifier"),relative=!1;return this.token===this.tok.T_NAMESPACE&&(this.next().expect(this.tok.T_NS_SEPARATOR)&&this.next(), +relative=!0),result(this.read_list(this.tok.T_STRING,this.tok.T_NS_SEPARATOR,!0),relative)},read_use_statement:function(){var result=this.node("usegroup"),type=null,items=[],name=null;return this.expect(this.tok.T_USE)&&this.next(),type=this.read_use_type(),items.push(this.read_use_declaration(!1)),","===this.token?items=items.concat(this.next().read_use_declarations(!1)):"{"===this.token&&(name=items[0].name,items=this.next().read_use_declarations(null===type),this.expect("}")&&this.next()),this.expect(";")&&this.nextWithComments(),result(name,type,items)},read_use_declaration:function(typed){var result=this.node("useitem"),type=null;typed&&(type=this.read_use_type());var name=this.read_namespace_name(),alias=this.read_use_alias();return result(name.name,alias,type)},read_use_declarations:function(typed){for(var result=[this.read_use_declaration(typed)];","===this.token;)result.push(this.next().read_use_declaration(typed));return result},read_use_alias:function(){var result=null;return this.token===this.tok.T_AS&&this.next().expect(this.tok.T_STRING)&&(result=this.text(), +this.next()),result},read_use_type:function(){return this.token===this.tok.T_FUNCTION?(this.next(),this.ast.useitem.TYPE_FUNCTION):this.token===this.tok.T_CONST?(this.next(),this.ast.useitem.TYPE_CONST):null}}},{}],110:[function(require,module,exports){var specialChar={"\\r":"\r","\\n":"\n","\\t":"\t","\\v":String.fromCharCode(11),"\\e":String.fromCharCode(27),"\\f":String.fromCharCode(12),"\\\\":"\\","\\$":"$",'\\"':'"',"\\'":"'"};module.exports={resolve_special_chars:function(text){return text.replace(/\\[rntvef"'\\\$]/g,function(seq){return specialChar[seq]})},read_scalar:function(){if(this.is("T_MAGIC_CONST"))return this.get_magic_constant();switch(this.token){case this.tok.T_CONSTANT_ENCAPSED_STRING:var value=this.node("string"),text=this.text(),isDoubleQuote='"'===text[0];return text=text.substring(1,text.length-1),this.next(),value=value(isDoubleQuote,this.resolve_special_chars(text)),this.token===this.tok.T_DOUBLE_COLON?this.read_static_getter(value):value;case this.tok.T_START_HEREDOC:if("ST_NOWDOC"===this.lexer.curCondition){ +var node=this.node("nowdoc"),value=this.next().text(),lastCh=value[value.length-1];return"\n"===lastCh?value="\r"===value[value.length-2]?value.substring(0,value.length-2):value.substring(0,value.length-1):"\r"===lastCh&&(value=value.substring(0,value.length-1)),this.expect(this.tok.T_ENCAPSED_AND_WHITESPACE)&&this.next(),node=node(value,this.lexer.heredoc_label),this.expect(this.tok.T_END_HEREDOC)&&this.next(),node}return this.next().read_encapsed_string(this.tok.T_END_HEREDOC);case'"':return this.next().read_encapsed_string('"');case'b"':case'B"':var node=this.node("cast"),what=this.next().read_encapsed_string('"');return node("binary",what);case this.tok.T_LNUMBER:case this.tok.T_DNUMBER:var result=this.node("number"),value=this.text();return this.next(),result=result(value);case this.tok.T_ARRAY:case"[":return this.read_array();default:var err=this.error("SCALAR");return this.next(),err}},read_dereferencable:function(expr){var result,node=this.node("offsetlookup");if("["===this.token){var offset=this.next().read_expr(); +this.expect("]")&&this.next(),result=node(expr,offset)}else if(this.token===this.tok.T_DOLLAR_OPEN_CURLY_BRACES){var offset=this.read_encapsed_string_item();result=node(expr,offset)}return result},read_encapsed_string_item:function(){var result=this.node();if(this.token===this.tok.T_ENCAPSED_AND_WHITESPACE){var text=this.text();this.next(),result=result("string",!1,this.resolve_special_chars(text))}else if(this.token===this.tok.T_DOLLAR_OPEN_CURLY_BRACES){var name=null;if(this.next().token===this.tok.T_STRING_VARNAME){var varName=this.text();if(name=this.node("variable"),this.next(),"["===this.token){name=name(varName,!1);var node=this.node("offsetlookup"),offset=this.next().read_expr();this.expect("]")&&this.next(),name=node(name,offset)}else name=varName}else name=this.read_expr();this.expect("}")&&this.next(),result=result("variable",name,!1,!0)}else if(this.token===this.tok.T_CURLY_OPEN)result=this.next().read_variable(!1,!1,!1),this.expect("}")&&this.next();else if(this.token===this.tok.T_VARIABLE){if(result=this.read_simple_variable(!1), +"["===this.token){var node=this.node("offsetlookup"),offset=this.next().read_encaps_var_offset();this.expect("]")&&this.next(),result=node(result,offset)}if(this.token===this.tok.T_OBJECT_OPERATOR){var node=this.node("propertylookup"),what=this.node("constref");this.next().expect(this.tok.T_STRING);var name=this.text();this.next(),result=node(result,what(name))}}else{this.expect(this.tok.T_ENCAPSED_AND_WHITESPACE);var value=this.text();this.next(),result=result("string",!1,value)}return result},read_encapsed_string:function(expect){var node=this.node("encapsed"),value=[],type=null;for(type="`"===expect?this.ast.encapsed.TYPE_SHELL:'"'===expect?this.ast.encapsed.TYPE_STRING:this.ast.encapsed.TYPE_HEREDOC;this.token!==expect&&this.token!==this.EOF;)value.push(this.read_encapsed_string_item());return this.expect(expect)&&this.next(),node=node(value,type),expect===this.tok.T_END_HEREDOC&&(node.label=this.lexer.heredoc_label),node},get_magic_constant:function(){var result=this.node("magic"),name=this.text();return this.next(), +result(name)}}},{}],111:[function(require,module,exports){module.exports={read_top_statements:function(){for(var result=[];this.token!==this.EOF&&"}"!==this.token;){var statement=this.read_top_statement();statement&&(Array.isArray(statement)?result=result.concat(statement):result.push(statement))}return result},read_top_statement:function(){switch(this.token){case this.tok.T_FUNCTION:return this.read_function(!1,!1);case this.tok.T_ABSTRACT:case this.tok.T_FINAL:var flag=this.read_class_scope();return this.token===this.tok.T_CLASS?this.read_class(flag):(this.error(this.tok.T_CLASS),this.next(),null);case this.tok.T_CLASS:return this.read_class([0,0,0]);case this.tok.T_INTERFACE:return this.read_interface();case this.tok.T_TRAIT:return this.read_trait();case this.tok.T_USE:return this.read_use_statement();case this.tok.T_CONST:return this.next().read_const_list();case this.tok.T_NAMESPACE:return this.read_namespace();case this.tok.T_HALT_COMPILER:var result=this.node("halt");return this.next().expect("(")&&this.next(), +this.expect(")")&&this.next(),this.expect(";"),this.lexer.done=!0,result(this.lexer._input.substring(this.lexer.offset));default:return this.read_statement()}},read_inner_statements:function(){for(var result=[];this.token!=this.EOF&&"}"!==this.token;){var statement=this.read_inner_statement();statement&&(Array.isArray(statement)?result=result.concat(statement):result.push(statement))}return result},read_const_list:function(){var result=this.read_list(function(){this.expect(this.tok.T_STRING);var result=this.node("constant"),name=this.text();return this.next().expect("=")?result(name,this.next().read_expr()):result(name,null)},",",!1);return this.expectEndOfStatement(),result},read_declare_list:function(){for(var result={};this.token!=this.EOF&&")"!==this.token;){this.expect(this.tok.T_STRING);var name=this.text().toLowerCase();if(this.next().expect("=")?result[name]=this.next().read_expr():result[name]=null,","!==this.token)break;this.next()}return result},read_inner_statement:function(){switch(this.token){case this.tok.T_FUNCTION: +return this.read_function(!1,!1);case this.tok.T_ABSTRACT:case this.tok.T_FINAL:var flag=this.read_class_scope();return this.token===this.tok.T_CLASS?this.read_class(flag):(this.error(this.tok.T_CLASS),this.next(),null);case this.tok.T_CLASS:return this.read_class([0,0,0]);case this.tok.T_INTERFACE:return this.read_interface();case this.tok.T_TRAIT:return this.read_trait();case this.tok.T_HALT_COMPILER:this.raiseError("__HALT_COMPILER() can only be used from the outermost scope");var node=this.node("halt");return this.next().expect("(")&&this.next(),this.expect(")")&&this.next(),node=node(this.lexer._input.substring(this.lexer.offset)),this.expect(";")&&this.next(),node;default:return this.read_statement()}},read_statement:function(){switch(this.token){case"{":return this.read_code_block(!1);case this.tok.T_IF:return this.next().read_if();case this.tok.T_SWITCH:return this.read_switch();case this.tok.T_FOR:return this.next().read_for();case this.tok.T_FOREACH:return this.next().read_foreach();case this.tok.T_WHILE: +return this.next().read_while();case this.tok.T_DO:return this.next().read_do();case this.tok.T_COMMENT:return this.read_comment();case this.tok.T_DOC_COMMENT:return this.read_doc_comment();case this.tok.T_RETURN:var result=this.node("return"),expr=null;return this.next().is("EOS")||(expr=this.read_expr()),this.expectEndOfStatement(),result(expr);case this.tok.T_BREAK:case this.tok.T_CONTINUE:var result=this.node(this.token===this.tok.T_CONTINUE?"continue":"break"),level=null;return this.next(),";"!==this.token&&this.token!==this.tok.T_CLOSE_TAG&&(level=this.read_expr()),this.expectEndOfStatement(),result(level);case this.tok.T_GLOBAL:var result=this.node("global"),items=this.next().read_list(this.read_simple_variable,",");return this.expectEndOfStatement(),result(items);case this.tok.T_STATIC:var current=[this.token,this.lexer.getState()],result=this.node("static");if(this.next().token===this.tok.T_DOUBLE_COLON){this.lexer.tokens.push(current);var expr=this.next().read_expr();return this.expect(";")&&this.nextWithComments(), +expr}if(this.token===this.tok.T_FUNCTION)return this.read_function(!0,[0,1,0]);var items=this.read_variable_declarations();return this.expectEndOfStatement(),result(items);case this.tok.T_ECHO:var result=this.node("echo"),args=this.next().read_list(this.read_expr,",");return this.expectEndOfStatement(),result(args);case this.tok.T_INLINE_HTML:var result=this.node("inline"),value=this.text();return this.next(),result(value);case this.tok.T_UNSET:var result=this.node("unset");this.next().expect("(")&&this.next();var items=this.read_list(this.read_variable,",");return this.expect(")")&&this.next(),this.expect(";")&&this.nextWithComments(),result(items);case this.tok.T_DECLARE:var what,mode,result=this.node("declare"),body=[];if(this.next().expect("(")&&this.next(),what=this.read_declare_list(),this.expect(")")&&this.next(),":"===this.token){for(this.nextWithComments();this.token!=this.EOF&&this.token!==this.tok.T_ENDDECLARE;)body.push(this.read_top_statement());this.expect(this.tok.T_ENDDECLARE)&&this.next(),this.expectEndOfStatement(), +mode=this.ast.declare.MODE_SHORT}else if("{"===this.token){for(this.nextWithComments();this.token!=this.EOF&&"}"!==this.token;)body.push(this.read_top_statement());this.expect("}")&&this.next(),mode=this.ast.declare.MODE_BLOCK}else{for(this.expect(";")&&this.nextWithComments();this.token!=this.EOF&&this.token!==this.tok.T_DECLARE;)body.push(this.read_top_statement());mode=this.ast.declare.MODE_NONE}return result(what,body,mode);case this.tok.T_TRY:return this.read_try();case this.tok.T_THROW:var result=this.node("throw"),expr=this.next().read_expr();return this.expectEndOfStatement(),result(expr);case";":case this.tok.T_CLOSE_TAG:return this.next(),null;case this.tok.T_STRING:var current=[this.token,this.lexer.getState()],label=this.text();if(":"===this.next().token){var result=this.node("label");return this.next(),result(label)}this.lexer.tokens.push(current);var expr=this.next().read_expr();return this.expect([";",this.tok.T_CLOSE_TAG])&&this.nextWithComments(),expr;case this.tok.T_GOTO:var result=this.node("goto"),label=null; +return this.next().expect(this.tok.T_STRING)&&(label=this.text(),this.next().expectEndOfStatement()),result(label);default:var expr=this.read_expr();return this.expectEndOfStatement(),expr}},read_code_block:function(top){var result=this.node("block");this.expect("{")&&this.nextWithComments();var body=top?this.read_top_statements():this.read_inner_statements();return this.expect("}")&&this.nextWithComments(),result(null,body)}}},{}],112:[function(require,module,exports){"use strict";module.exports={read_switch:function(){this.expect(this.tok.T_SWITCH)&&this.next();var test,body,shortForm,result=this.node("switch");return this.expect("(")&&this.next(),test=this.read_expr(),this.expect(")")&&this.next(),shortForm=":"===this.token,body=this.read_switch_case_list(),result(test,body,shortForm)},read_switch_case_list:function(){var expect=null,result=this.node("block"),items=[];for("{"===this.token?expect="}":":"===this.token?expect=this.tok.T_ENDSWITCH:this.expect(["{",":"]),";"===this.next().token&&this.next(),this.token===this.tok.T_CLOSE_TAG&&this.next();this.token!==this.EOF&&this.token!==expect;)items.push(this.read_case_list(expect)); +return this.expect(expect)&&this.next(),expect===this.tok.T_ENDSWITCH&&this.expectEndOfStatement(),result(null,items)},read_case_list:function(stopToken){var result=this.node("case"),test=null,body=null,items=[];for(this.token===this.tok.T_CASE?test=this.next().read_expr():this.token===this.tok.T_DEFAULT?this.next():this.expect([this.tok.T_CASE,this.tok.T_DEFAULT]),this.expect([":",";"])&&this.next(),body=this.node("block");this.token!=this.EOF&&this.token!==stopToken&&this.token!==this.tok.T_CASE&&this.token!==this.tok.T_DEFAULT;)items.push(this.read_inner_statement());return result(test,items.length>0?body(null,items):null)}}},{}],113:[function(require,module,exports){module.exports={read_try:function(){this.expect(this.tok.T_TRY);var body,result=this.node("try"),always=null,catches=[];for(body=this.next().read_statement();this.ignoreComments().token===this.tok.T_CATCH;){var item=this.node("catch"),what=[],variable=null;this.next().expect("(")&&this.next(),what=this.read_list(this.read_namespace_name,"|",!1), +variable=this.read_variable(!0,!1,!1),this.expect(")"),catches.push(item(this.next().read_statement(),what,variable))}return this.token===this.tok.T_FINALLY&&(always=this.next().read_statement()),result(body,catches,always)}}},{}],114:[function(require,module,exports){"use strict";module.exports={read_short_form:function(token){var body=this.node("block"),items=[];for(this.expect(":")&&this.next();this.token!=this.EOF&&this.token!==token;)items.push(this.read_inner_statement());return this.expect(token)&&this.next(),this.expectEndOfStatement(),body(null,items)},read_list:function(item,separator,preserveFirstSeparator){var result=[];if(this.token==separator&&(preserveFirstSeparator&&result.push(""),this.next()),"function"==typeof item){do if(result.push(item.apply(this,[])),this.token!=separator)break;while(this.next().token!=this.EOF)}else{if(!this.expect(item))return[];for(result.push(this.text());this.next().token!=this.EOF&&this.token==separator&&this.next().token==item;)result.push(this.text())}return result; +},read_name_list:function(){return this.read_list(this.read_namespace_name,",",!1)},read_variable_declarations:function(){return this.read_list(function(){var node=this.node("assign"),variable=this.node("variable");if(this.expect(this.tok.T_VARIABLE)){var name=this.text().substring(1);this.next(),variable=variable(name,!1,!1)}else variable=variable("#ERR",!1,!1);return"="===this.token?node(variable,this.next().read_expr()):variable},",")}}},{}],115:[function(require,module,exports){"use strict";module.exports={read_variable:function(read_only,encapsed,byref){var result;if(byref||"&"!==this.token||(byref=!0,this.next()),this.is([this.tok.T_VARIABLE,"$"]))result=this.read_reference_variable(encapsed,byref);else if(this.is([this.tok.T_NS_SEPARATOR,this.tok.T_STRING,this.tok.T_NAMESPACE])){result=this.node();var name=this.read_namespace_name();if(this.token!=this.tok.T_DOUBLE_COLON&&"("!=this.token){var literal=name.name.toLowerCase();result="true"===literal?result("boolean",!0):"false"===literal?result("boolean",!1):result("constref",name); +}else result=name}else this.token===this.tok.T_STATIC?(result=this.node("constref"),this.next(),result=result("static")):this.expect("VARIABLE");return this.token===this.tok.T_DOUBLE_COLON&&(result=this.read_static_getter(result,encapsed)),this.recursive_variable_chain_scan(result,read_only,encapsed)},read_static_getter:function(what,encapsed){var result=this.node("staticlookup"),offset=null;if(this.next().is([this.tok.T_VARIABLE,"$"]))offset=this.read_reference_variable(encapsed,!1);else if(this.token===this.tok.T_STRING||this.token===this.tok.T_CLASS){offset=this.node("constref");var name=this.text();this.next(),offset=offset(name)}else{this.error([this.tok.T_VARIABLE,this.tok.T_STRING]),offset=this.node("constref");var name=this.text();this.next(),offset=offset(name)}return result(what,offset)},recursive_variable_chain_scan:function(result,read_only,encapsed){recursive_scan_loop:for(;this.token!=this.EOF;)switch(this.token){case"(":if(read_only)return result;result=this.node("call")(result,this.read_function_argument_list()); +break;case"[":var node=this.node("offsetlookup");this.next();var offset=!1;encapsed?(offset=this.read_encaps_var_offset(),this.expect("]")&&this.next()):"]"!==this.token?(offset=this.read_expr(),this.expect("]")&&this.next()):this.next(),result=node(result,offset);break;case this.tok.T_OBJECT_OPERATOR:var node=this.node("propertylookup"),what=null;switch(this.next().token){case this.tok.T_STRING:what=this.node("constref");var name=this.text();if(this.next(),what=what(name),this.token===this.tok.T_VARIABLE){var inner=this.node("variable");name=this.text().substring(1),this.next(),what=this.node("encapsed")([what,inner(name,!1,!1)],"offset"),what.loc&&what.value[0].loc&&(what.loc.start=what.value[0].loc.start)}else if("{"===this.token){var expr=this.next().read_expr();this.expect("}")&&this.next(),what=this.node("encapsed")([what,expr],"offset"),what.loc&&what.value[0].loc&&(what.loc.start=what.value[0].loc.start)}break;case this.tok.T_VARIABLE:what=this.node("variable");var name=this.text().substring(1);this.next(), +what=what(name,!1,!1);break;case"$":this.next().expect(["{",this.tok.T_VARIABLE]),"{"===this.token?(what=this.next().read_expr(),this.expect("}")&&this.next()):what=this.read_expr();break;case"{":what=this.next().read_expr(),this.expect("}")&&this.next();break;default:this.error([this.tok.T_STRING,this.tok.T_VARIABLE]),what=this.node("constref");var name=this.text();this.next(),what=what(name)}result=node(result,what);break;default:break recursive_scan_loop}return result},read_encaps_var_offset:function(){var offset=this.node();if(this.token===this.tok.T_STRING){var text=this.text(),isDblQuote='"'===text[0];text=text.substring(1,text.length-1),this.next(),offset=offset("string",isDblQuote,this.resolve_special_chars(text))}else if(this.token===this.tok.T_NUM_STRING){var num=this.text();this.next(),offset=offset("number",num)}else if(this.token===this.tok.T_VARIABLE){var name=this.text().substring(1);this.next(),offset=offset("variable",name,!1,!1)}else{this.expect([this.tok.T_STRING,this.tok.T_NUM_STRING,this.tok.T_VARIABLE]); +var text=this.text();this.next(),offset=offset("string",!1,text)}return offset},read_reference_variable:function(encapsed,byref){for(var result=this.read_simple_variable(byref);this.token!=this.EOF;){var node=this.node();if("["==this.token){var offset=null;offset=encapsed?this.next().read_encaps_var_offset():"]"===this.next().token?null:this.read_dim_offset(),this.expect("]")&&this.next(),result=node("offsetlookup",result,offset)}else{if("{"!=this.token||encapsed)break;var offset=this.next().read_expr();this.expect("}")&&this.next(),result=node("offsetlookup",result,offset)}}return result},read_simple_variable:function(byref){var result=this.node("variable");if(this.expect([this.tok.T_VARIABLE,"$"])&&this.token===this.tok.T_VARIABLE){var name=this.text().substring(1);this.next(),result=result(name,byref,!1)}else switch("$"===this.token&&this.next(),this.token){case"{":var expr=this.next().read_expr();this.expect("}")&&this.next(),result=result(expr,byref,!0);break;case"$":result=result(this.read_simple_variable(!1),byref); +break;case this.tok.T_VARIABLE:var name=this.text().substring(1),node=this.node("variable");this.next(),result=result(node(name,!1,!1),byref,!1);break;default:this.error(["{","$",this.tok.T_VARIABLE]);var name=this.text();this.next(),result=result(name,byref,!1)}return result}}},{}],116:[function(require,module,exports){module.exports={values:{101:"T_HALT_COMPILER",102:"T_USE",103:"T_ENCAPSED_AND_WHITESPACE",104:"T_OBJECT_OPERATOR",105:"T_STRING",106:"T_DOLLAR_OPEN_CURLY_BRACES",107:"T_STRING_VARNAME",108:"T_CURLY_OPEN",109:"T_NUM_STRING",110:"T_ISSET",111:"T_EMPTY",112:"T_INCLUDE",113:"T_INCLUDE_ONCE",114:"T_EVAL",115:"T_REQUIRE",116:"T_REQUIRE_ONCE",117:"T_NAMESPACE",118:"T_NS_SEPARATOR",119:"T_AS",120:"T_IF",121:"T_ENDIF",122:"T_WHILE",123:"T_DO",124:"T_FOR",125:"T_SWITCH",126:"T_BREAK",127:"T_CONTINUE",128:"T_RETURN",129:"T_GLOBAL",130:"T_STATIC",131:"T_ECHO",132:"T_INLINE_HTML",133:"T_UNSET",134:"T_FOREACH",135:"T_DECLARE",136:"T_TRY",137:"T_THROW",138:"T_GOTO",139:"T_FINALLY",140:"T_CATCH",141:"T_ENDDECLARE", +142:"T_LIST",143:"T_CLONE",144:"T_PLUS_EQUAL",145:"T_MINUS_EQUAL",146:"T_MUL_EQUAL",147:"T_DIV_EQUAL",148:"T_CONCAT_EQUAL",149:"T_MOD_EQUAL",150:"T_AND_EQUAL",151:"T_OR_EQUAL",152:"T_XOR_EQUAL",153:"T_SL_EQUAL",154:"T_SR_EQUAL",155:"T_INC",156:"T_DEC",157:"T_BOOLEAN_OR",158:"T_BOOLEAN_AND",159:"T_LOGICAL_OR",160:"T_LOGICAL_AND",161:"T_LOGICAL_XOR",162:"T_SL",163:"T_SR",164:"T_IS_IDENTICAL",165:"T_IS_NOT_IDENTICAL",166:"T_IS_EQUAL",167:"T_IS_NOT_EQUAL",168:"T_IS_SMALLER_OR_EQUAL",169:"T_IS_GREATER_OR_EQUAL",170:"T_INSTANCEOF",171:"T_INT_CAST",172:"T_DOUBLE_CAST",173:"T_STRING_CAST",174:"T_ARRAY_CAST",175:"T_OBJECT_CAST",176:"T_BOOL_CAST",177:"T_UNSET_CAST",178:"T_EXIT",179:"T_PRINT",180:"T_YIELD",181:"T_YIELD_FROM",182:"T_FUNCTION",183:"T_DOUBLE_ARROW",184:"T_DOUBLE_COLON",185:"T_ARRAY",186:"T_CALLABLE",187:"T_CLASS",188:"T_ABSTRACT",189:"T_TRAIT",190:"T_FINAL",191:"T_EXTENDS",192:"T_INTERFACE",193:"T_IMPLEMENTS",194:"T_VAR",195:"T_PUBLIC",196:"T_PROTECTED",197:"T_PRIVATE",198:"T_CONST",199:"T_NEW",200:"T_INSTEADOF", +201:"T_ELSEIF",202:"T_ELSE",203:"T_ENDSWITCH",204:"T_CASE",205:"T_DEFAULT",206:"T_ENDFOR",207:"T_ENDFOREACH",208:"T_ENDWHILE",209:"T_CONSTANT_ENCAPSED_STRING",210:"T_LNUMBER",211:"T_DNUMBER",212:"T_LINE",213:"T_FILE",214:"T_DIR",215:"T_TRAIT_C",216:"T_METHOD_C",217:"T_FUNC_C",218:"T_NS_C",219:"T_START_HEREDOC",220:"T_END_HEREDOC",221:"T_CLASS_C",222:"T_VARIABLE",223:"T_OPEN_TAG",224:"T_OPEN_TAG_WITH_ECHO",225:"T_CLOSE_TAG",226:"T_WHITESPACE",227:"T_COMMENT",228:"T_DOC_COMMENT",229:"T_ELLIPSIS",230:"T_COALESCE",231:"T_POW",232:"T_POW_EQUAL",233:"T_SPACESHIP"},names:{T_HALT_COMPILER:101,T_USE:102,T_ENCAPSED_AND_WHITESPACE:103,T_OBJECT_OPERATOR:104,T_STRING:105,T_DOLLAR_OPEN_CURLY_BRACES:106,T_STRING_VARNAME:107,T_CURLY_OPEN:108,T_NUM_STRING:109,T_ISSET:110,T_EMPTY:111,T_INCLUDE:112,T_INCLUDE_ONCE:113,T_EVAL:114,T_REQUIRE:115,T_REQUIRE_ONCE:116,T_NAMESPACE:117,T_NS_SEPARATOR:118,T_AS:119,T_IF:120,T_ENDIF:121,T_WHILE:122,T_DO:123,T_FOR:124,T_SWITCH:125,T_BREAK:126,T_CONTINUE:127,T_RETURN:128,T_GLOBAL:129,T_STATIC:130, +T_ECHO:131,T_INLINE_HTML:132,T_UNSET:133,T_FOREACH:134,T_DECLARE:135,T_TRY:136,T_THROW:137,T_GOTO:138,T_FINALLY:139,T_CATCH:140,T_ENDDECLARE:141,T_LIST:142,T_CLONE:143,T_PLUS_EQUAL:144,T_MINUS_EQUAL:145,T_MUL_EQUAL:146,T_DIV_EQUAL:147,T_CONCAT_EQUAL:148,T_MOD_EQUAL:149,T_AND_EQUAL:150,T_OR_EQUAL:151,T_XOR_EQUAL:152,T_SL_EQUAL:153,T_SR_EQUAL:154,T_INC:155,T_DEC:156,T_BOOLEAN_OR:157,T_BOOLEAN_AND:158,T_LOGICAL_OR:159,T_LOGICAL_AND:160,T_LOGICAL_XOR:161,T_SL:162,T_SR:163,T_IS_IDENTICAL:164,T_IS_NOT_IDENTICAL:165,T_IS_EQUAL:166,T_IS_NOT_EQUAL:167,T_IS_SMALLER_OR_EQUAL:168,T_IS_GREATER_OR_EQUAL:169,T_INSTANCEOF:170,T_INT_CAST:171,T_DOUBLE_CAST:172,T_STRING_CAST:173,T_ARRAY_CAST:174,T_OBJECT_CAST:175,T_BOOL_CAST:176,T_UNSET_CAST:177,T_EXIT:178,T_PRINT:179,T_YIELD:180,T_YIELD_FROM:181,T_FUNCTION:182,T_DOUBLE_ARROW:183,T_DOUBLE_COLON:184,T_ARRAY:185,T_CALLABLE:186,T_CLASS:187,T_ABSTRACT:188,T_TRAIT:189,T_FINAL:190,T_EXTENDS:191,T_INTERFACE:192,T_IMPLEMENTS:193,T_VAR:194,T_PUBLIC:195,T_PROTECTED:196,T_PRIVATE:197,T_CONST:198, +T_NEW:199,T_INSTEADOF:200,T_ELSEIF:201,T_ELSE:202,T_ENDSWITCH:203,T_CASE:204,T_DEFAULT:205,T_ENDFOR:206,T_ENDFOREACH:207,T_ENDWHILE:208,T_CONSTANT_ENCAPSED_STRING:209,T_LNUMBER:210,T_DNUMBER:211,T_LINE:212,T_FILE:213,T_DIR:214,T_TRAIT_C:215,T_METHOD_C:216,T_FUNC_C:217,T_NS_C:218,T_START_HEREDOC:219,T_END_HEREDOC:220,T_CLASS_C:221,T_VARIABLE:222,T_OPEN_TAG:223,T_OPEN_TAG_WITH_ECHO:224,T_CLOSE_TAG:225,T_WHITESPACE:226,T_COMMENT:227,T_DOC_COMMENT:228,T_ELLIPSIS:229,T_COALESCE:230,T_POW:231,T_POW_EQUAL:232,T_SPACESHIP:233}}},{}],"php-parser":[function(require,module,exports){function combine(src,to){for(var keys=Object.keys(src),i=keys.length;i--;){var k=keys[i],val=src[k];null===val?delete to[k]:"function"==typeof val?to[k]=val.bind(to):Array.isArray(val)?to[k]=Array.isArray(to[k])?to[k].concat(val):val:"object"==typeof val?to[k]="object"==typeof to[k]?combine(val,to[k]):val:to[k]=val}return to}var lexer=require("./lexer"),parser=require("./parser"),tokens=require("./tokens"),AST=require("./ast"),engine=function(options){ +return"function"==typeof this?new this(options):(this.tokens=tokens,this.lexer=new lexer(this),this.ast=new AST,this.parser=new parser(this.lexer,this.ast),void(options&&"object"==typeof options&&combine(options,this)))};engine.create=function(options){return new engine(options)},engine.parseEval=function(buffer,options){var self=new engine(options);return self.parseEval(buffer)},engine.prototype.parseEval=function(buffer){return this.lexer.mode_eval=!0,this.lexer.all_tokens=!1,this.parser.parse(buffer,"eval")},engine.parseCode=function(buffer,filename,options){"object"==typeof filename&&(options=filename,filename="unknown");var self=new engine(options);return self.parseCode(buffer,filename)},engine.prototype.parseCode=function(buffer,filename){return this.lexer.mode_eval=!1,this.lexer.all_tokens=!1,this.parser.parse(buffer,filename)},engine.tokenGetAll=function(buffer,options){var self=new engine(options);return self.tokenGetAll(buffer)},engine.prototype.tokenGetAll=function(buffer){this.lexer.mode_eval=!1,this.lexer.all_tokens=!0; +var EOF=this.lexer.EOF,names=this.tokens.values;this.lexer.setInput(buffer);for(var token=this.lexer.lex()||EOF,result=[];token!=EOF;){var entry=this.lexer.yytext;names.hasOwnProperty(token)&&(entry=[names[token],entry,this.lexer.yylloc.first_line]),result.push(entry),token=this.lexer.lex()||EOF}return result},module.exports=engine},{"./ast":2,"./lexer":91,"./parser":100,"./tokens":116}]},{},[]); //# sourceMappingURL=php-parser.min.js.map \ No newline at end of file diff --git a/dist/php-parser.min.js.map b/dist/php-parser.min.js.map index be0cc0138..a8246692a 100644 --- a/dist/php-parser.min.js.map +++ b/dist/php-parser.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["php-parser.js"],"names":["require","e","t","n","r","s","o","u","a","i","f","Error","code","l","exports","call","length","1","module","defaultSetTimout","defaultClearTimeout","runTimeout","fun","cachedSetTimeout","setTimeout","this","runClearTimeout","marker","cachedClearTimeout","clearTimeout","cleanUpNextTick","draining","currentQueue","queue","concat","queueIndex","drainQueue","timeout","len","run","Item","array","noop","process","nextTick","args","Array","arguments","push","prototype","apply","title","browser","env","argv","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","binding","name","cwd","chdir","dir","umask","2","Location","Position","AST","withPositions","withSource","position","parser","lexer","yylloc","first_line","first_column","first_offset","prepare","kind","start","self","location","slice","src","_input","substring","offset","prev_offset","prev_line","prev_column","shift","node","result","Object","create","right","precedence","out","what","forEach","ctor","constructor","toLowerCase","./ast/array","./ast/assign","./ast/bin","./ast/block","./ast/boolean","./ast/break","./ast/call","./ast/case","./ast/cast","./ast/catch","./ast/class","./ast/classconstant","./ast/clone","./ast/closure","./ast/constant","./ast/constref","./ast/continue","./ast/declaration","./ast/declare","./ast/do","./ast/doc","./ast/echo","./ast/empty","./ast/encapsed","./ast/entry","./ast/error","./ast/eval","./ast/exit","./ast/expression","./ast/for","./ast/foreach","./ast/function","./ast/global","./ast/goto","./ast/halt","./ast/identifier","./ast/if","./ast/include","./ast/inline","./ast/interface","./ast/isset","./ast/label","./ast/list","./ast/literal","./ast/location","./ast/lookup","./ast/magic","./ast/method","./ast/namespace","./ast/new","./ast/node","./ast/nowdoc","./ast/number","./ast/offsetlookup","./ast/operation","./ast/parameter","./ast/parenthesis","./ast/position","./ast/post","./ast/pre","./ast/print","./ast/program","./ast/property","./ast/propertylookup","./ast/retif","./ast/return","./ast/silent","./ast/statement","./ast/static","./ast/staticlookup","./ast/string","./ast/switch","./ast/sys","./ast/throw","./ast/trait","./ast/traitalias","./ast/traitprecedence","./ast/traituse","./ast/try","./ast/unary","./ast/unset","./ast/usegroup","./ast/useitem","./ast/variable","./ast/variadic","./ast/while","./ast/yield","./ast/yieldfrom","3","Expr","KIND","extends","shortForm","items","./expression","4","Statement","Assign","left","operator","./statement","5","Operation","binOperatorsPrecedence","Bin","type","lLevel","rLevel","list","index","./operation","6","Block","children","7","Literal","Boolean","value","./literal","8","Node","Break","level","./node","9","Call","10","Case","test","body","11","Cast","12","Catch","variable","13","Declaration","Class","ext","impl","flags","isAnonymous","implements","parseFlags","./declaration","14","Constant","ClassConstant","./constant","15","Clone","16","Closure","byref","uses","nullable","17","18","ConstRef","identifier","19","Continue","20","IS_PUBLIC","IS_PROTECTED","IS_PRIVATE","isAbstract","isFinal","visibility","isStatic","21","Declare","mode","MODE_SHORT","MODE_BLOCK","MODE_NONE","./block","22","Do","23","Doc","isDoc","lines","24","Sys","Echo","./sys","25","Empty","26","Encapsed","TYPE_STRING","TYPE_SHELL","TYPE_HEREDOC","TYPE_OFFSET","27","Entry","key","28","message","token","line","expected","29","Eval","source","30","Exit","status","31","Expression","32","For","init","increment","33","Foreach","34","fn","_Function","35","Global","36","Goto","label","37","Halt","after","38","Identifier","isRelative","resolution","RELATIVE_NAME","UNQUALIFIED_NAME","FULL_QUALIFIED_NAME","QUALIFIED_NAME","join","39","If","alternate","40","Include","target","41","Inline","42","Interface","43","Isset","44","Label","45","List","46","47","end","48","Lookup","49","Magic","50","Method","./function","51","Namespace","withBrackets","./identifier","52","New","53","loc","54","Nowdoc","55","_Number","Number","56","OffsetLookup","./lookup","57","58","Parameter","isRef","isVariadic","variadic","59","Parenthesis","inner","60","column","61","Post","62","Pre","63","Print","64","Program","errors","65","Property","66","PropertyLookup","67","PRECEDENCE","RetIf","trueExpr","falseExpr","./bin","68","Return","expr","69","Silent","70","71","Static","72","StaticLookup","73","String","isDoubleQuote","74","Switch","75","76","Throw","77","Trait","78","TraitAlias","trait","method","as","79","TraitPrecedence","instead","80","TraitUse","traits","adaptations","81","Try","catches","always","82","Unary","83","Unset","84","UseGroup","85","UseItem","alias","TYPE_CONST","TYPE_FUNCTION","86","Variable","87","Variadic","88","While","89","Yield","90","YieldFrom","91","engine","tok","tokens","names","EOF","debug","all_tokens","comment_tokens","mode_eval","asp_tags","short_tags","yyprevcol","keywords","__class__","T_CLASS_C","__trait__","T_TRAIT_C","__function__","T_FUNC_C","__method__","T_METHOD_C","__line__","T_LINE","__file__","T_FILE","__dir__","T_DIR","__namespace__","T_NS_C","exit","T_EXIT","die","function","T_FUNCTION","const","T_CONST","return","T_RETURN","try","T_TRY","catch","T_CATCH","finally","T_FINALLY","throw","T_THROW","if","T_IF","elseif","T_ELSEIF","endif","T_ENDIF","else","T_ELSE","while","T_WHILE","endwhile","T_ENDWHILE","do","T_DO","for","T_FOR","endfor","T_ENDFOR","foreach","T_FOREACH","endforeach","T_ENDFOREACH","declare","T_DECLARE","enddeclare","T_ENDDECLARE","instanceof","T_INSTANCEOF","T_AS","switch","T_SWITCH","endswitch","T_ENDSWITCH","case","T_CASE","default","T_DEFAULT","break","T_BREAK","continue","T_CONTINUE","goto","T_GOTO","echo","T_ECHO","print","T_PRINT","class","T_CLASS","interface","T_INTERFACE","T_TRAIT","T_EXTENDS","T_IMPLEMENTS","new","T_NEW","clone","T_CLONE","var","T_VAR","eval","T_EVAL","include","T_INCLUDE","include_once","T_INCLUDE_ONCE","T_REQUIRE","require_once","T_REQUIRE_ONCE","namespace","T_NAMESPACE","use","T_USE","insteadof","T_INSTEADOF","global","T_GLOBAL","isset","T_ISSET","empty","T_EMPTY","__halt_compiler","T_HALT_COMPILER","static","T_STATIC","abstract","T_ABSTRACT","final","T_FINAL","private","T_PRIVATE","protected","T_PROTECTED","public","T_PUBLIC","unset","T_UNSET","T_LIST","T_ARRAY","callable","T_CALLABLE","or","T_LOGICAL_OR","and","T_LOGICAL_AND","xor","T_LOGICAL_XOR","castKeywords","int","T_INT_CAST","integer","real","T_DOUBLE_CAST","double","float","string","T_STRING_CAST","binary","T_ARRAY_CAST","object","T_OBJECT_CAST","bool","T_BOOL_CAST","boolean","T_UNSET_CAST","setInput","input","size","yylineno","yytext","last_line","last_column","conditionStack","done","begin","ch","unput","c","tryMatch","text","ahead","tryMatchCaseless","consume","getState","setState","state","appendToken","lex","next","T_WHITESPACE","T_COMMENT","T_DOC_COMMENT","T_OPEN_TAG","T_OPEN_TAG_WITH_ECHO","condition","curCondition","stateCb","popState","pop","tName","values","console","log","stack","k","./lexer/comments.js","./lexer/initial.js","./lexer/numbers.js","./lexer/property.js","./lexer/scripting.js","./lexer/strings.js","./lexer/tokens.js","./lexer/utils.js","92","aspTagMode","is_WHITESPACE","93","nextINITIAL","matchINITIAL","T_INLINE_HTML","94","arch","MAX_LENGTH_OF_LONG","long_min_digits","consume_NUM","hasPoint","is_HEX","consume_HNUM","consume_BNUM","is_NUM","consume_LNUM","T_DNUMBER","T_LNUMBER","_process","95","matchST_LOOKING_FOR_PROPERTY","T_OBJECT_OPERATOR","is_LABEL_START","consume_LABEL","T_STRING","matchST_LOOKING_FOR_VARNAME","T_STRING_VARNAME","matchST_VAR_OFFSET","T_NUM_STRING","T_VARIABLE","T_ENCAPSED_AND_WHITESPACE","is_TOKEN","96","matchST_IN_SCRIPTING","consume_TOKEN","T_CONSTANT_ENCAPSED_STRING","ST_DOUBLE_QUOTES","nextCH","T_CLOSE_TAG","97","is_HEREDOC","revert","is_TABSPACE","tChar","yyoffset","is_LABEL","yylabel","heredoc_label","T_START_HEREDOC","prefix","isDOC_MATCH","matchST_NOWDOC","T_END_HEREDOC","matchST_HEREDOC","T_DOLLAR_OPEN_CURLY_BRACES","consume_VARIABLE","T_CURLY_OPEN","matchST_BACKQUOTE","matchST_DOUBLE_QUOTES","98","id","T_YIELD_FROM","T_YIELD","tokenTerminals","$","-","nchar","T_DEC","T_MINUS_EQUAL","\\","T_NS_SEPARATOR","/","T_DIV_EQUAL",":","T_DOUBLE_COLON","(","initial","consume_TABSPACE","yylen","castToken","castId","=","T_DOUBLE_ARROW","T_IS_IDENTICAL","T_IS_EQUAL","+","T_INC","T_PLUS_EQUAL","!","T_IS_NOT_IDENTICAL","T_IS_NOT_EQUAL","?","T_COALESCE","<","T_SL_EQUAL","T_SL","T_SPACESHIP","T_IS_SMALLER_OR_EQUAL",">","T_IS_GREATER_OR_EQUAL","T_SR_EQUAL","T_SR","*","T_MUL_EQUAL","T_POW_EQUAL","T_POW",".","T_CONCAT_EQUAL","T_ELLIPSIS","%","T_MOD_EQUAL","&","T_AND_EQUAL","T_BOOLEAN_AND","|","T_OR_EQUAL","T_BOOLEAN_OR","^","T_XOR_EQUAL","99","charCodeAt","indexOf","100","isNumber","isNaN","parseFloat","isFinite","ast","prev","extractDoc","suppressErrors","entries","VARIABLE","SCALAR","T_MAGIC_CONST","T_MEMBER_FLAGS","EOS","EXPR","getTokenName","parse","filename","_errors","currentNamespace","innerList","program","childs","nextWithComments","read_start","undefined","isArray","raiseError","msgExpect","expect","err","SyntaxError","lineNumber","fileName","columnNumber","error","msg","symbol","expectEndOfStatement","ignoreStack","showlog","split","trim","found","ignoreComments","is","./parser/array.js","./parser/class.js","./parser/comment.js","./parser/expr.js","./parser/function.js","./parser/if.js","./parser/loops.js","./parser/main.js","./parser/namespace.js","./parser/scalar.js","./parser/statement.js","./parser/switch.js","./parser/try.js","./parser/utils.js","./parser/variable.js","101","ArrayExpr","ArrayEntry","read_array","read_array_pair_list","read_variable","read_expr","read_dim_offset","102","read_class","flag","propName","propExtends","propImplements","read_namespace_name","read_name_list","read_class_body","read_class_scope","read_member_flags","variables","read_variable_list","read_function","constants","read_constant_list","read_trait_use_statement","read_doc_comment","read_comment","read_list","read_variable_declaration","read_constant_declaration","asInterface","idx","val","read_interface","read_interface_body","read_function_declaration","read_trait","read_trait_use_alias","103","docSplit","104","read_expr_item","trueArg","recursive_variable_chain_scan","read_dereferencable","read_function_argument_list","read_encapsed_string","assign","isInner","assignList","read_assignment_list","hasItem","read_new_expr","arg","read_scalar","read_class_name_reference","read_static_getter","read_assignment_list_element","105","is_reference","is_variadic","closure","read_code_block","nodeName","returnType","params","read_parameter_list","read_lexical_var","read_type","read_parameter","wasVariadic","argument","read_argument_list","106","read_if","read_if_expr","read_elseif_short","read_else_short","read_inner_statement","read_statement","107","read_while","read_short_form","read_do","read_for","read_foreach","read_foreach_variable","108","read_namespace","read_top_statement","109","read_top_statements","relative","read_use_statement","read_use_type","read_use_declaration","read_use_declarations","typed","read_use_alias","useitem","110","specialChar","\\r","\\n","\\t","\\v","fromCharCode","\\e","\\f","\\\\","\\$","\\\"","\\'","resolve_special_chars","replace","seq","get_magic_constant","lastCh","read_encapsed_string_item","varName","read_simple_variable","read_encaps_var_offset","encapsed","111","statement","read_const_list","read_inner_statements","read_declare_list","read_switch","current","read_variable_declarations","read_try","top","112","read_switch_case_list","read_case_list","stopToken","113","item","114","separator","preserveFirstSeparator","115","read_only","read_reference_variable","literal","recursive_scan_loop","isDblQuote","num","116","117","118","119","120","121","122","123","124","125","126","127","128","129","130","131","132","133","134","135","136","137","138","139","140","141","142","143","144","145","146","147","148","149","150","151","152","153","154","155","156","157","158","159","160","161","162","163","164","165","166","167","168","169","170","171","172","173","174","175","176","177","178","179","180","181","182","183","184","185","186","187","188","189","190","191","192","193","194","195","196","197","198","199","200","201","202","203","204","205","206","207","208","209","210","211","212","213","214","215","216","217","218","219","220","221","222","223","224","225","226","227","228","229","230","231","232","233","php-parser","combine","to","keys","bind","options","parseEval","buffer","parseCode","tokenGetAll","entry","hasOwnProperty","./ast","./lexer","./parser","./tokens"],"mappings":"AAEAA,QAAQ,QAAUC,GAAEC,EAAEC,EAAEC,GAAG,QAASC,GAAEC,EAAEC,GAAG,IAAIJ,EAAEG,GAAG,CAAC,IAAIJ,EAAEI,GAAG,CAAC,GAAIE,GAAkB,kBAATR,UAAqBA,OAAQ,KAAIO,GAAGC,EAAE,MAAOA,GAAEF,GAAE,EAAI,IAAGG,EAAE,MAAOA,GAAEH,GAAE,EAAI,IAAII,GAAE,GAAIC,OAAM,uBAAuBL,EAAE,IAAK,MAAMI,GAAEE,KAAK,mBAAmBF,EAAE,GAAIG,GAAEV,EAAEG,IAAIQ,WAAYZ,GAAEI,GAAG,GAAGS,KAAKF,EAAEC,QAAQ,SAASb,GAAG,GAAIE,GAAED,EAAEI,GAAG,GAAGL,EAAG,OAAOI,GAAEF,EAAEA,EAAEF,IAAIY,EAAEA,EAAEC,QAAQb,EAAEC,EAAEC,EAAEC,GAAG,MAAOD,GAAEG,GAAGQ,QAAkD,IAAI,GAA1CL,GAAkB,kBAATT,UAAqBA,QAAgBM,EAAE,EAAEA,EAAEF,EAAEY,OAAOV,IAAID,EAAED,EAAEE,GAAI,OAAOD,KAAKY,GAAG,SAASjB,QAAQkB,OAAOJ,SAY/d,QAASK,oBACL,KAAM,IAAIR,OAAM,mCAEpB,QAASS,uBACL,KAAM,IAAIT,OAAM,qCAsBpB,QAASU,YAAWC,KAChB,GAAIC,mBAAqBC,WAErB,MAAOA,YAAWF,IAAK,EAG3B,KAAKC,mBAAqBJ,mBAAqBI,mBAAqBC,WAEhE,MADAD,kBAAmBC,WACZA,WAAWF,IAAK,EAE3B,KAEI,MAAOC,kBAAiBD,IAAK,GAC/B,MAAMrB,GACJ,IAEI,MAAOsB,kBAAiBR,KAAK,KAAMO,IAAK,GAC1C,MAAMrB,GAEJ,MAAOsB,kBAAiBR,KAAKU,KAAMH,IAAK,KAMpD,QAASI,iBAAgBC;AACrB,GAAIC,qBAAuBC,aAEvB,MAAOA,cAAaF,OAGxB,KAAKC,qBAAuBR,sBAAwBQ,qBAAuBC,aAEvE,MADAD,oBAAqBC,aACdA,aAAaF,OAExB,KAEI,MAAOC,oBAAmBD,QAC5B,MAAO1B,GACL,IAEI,MAAO2B,oBAAmBb,KAAK,KAAMY,QACvC,MAAO1B,GAGL,MAAO2B,oBAAmBb,KAAKU,KAAME,UAYjD,QAASG,mBACAC,UAAaC,eAGlBD,UAAW,EACPC,aAAahB,OACbiB,MAAQD,aAAaE,OAAOD,OAE5BE,YAAa,EAEbF,MAAMjB,QACNoB,cAIR,QAASA,cACL,IAAIL,SAAJ,CAGA,GAAIM,SAAUhB,WAAWS,gBACzBC,WAAW,CAGX,KADA,GAAIO,KAAML,MAAMjB,OACVsB,KAAK,CAGP,IAFAN,aAAeC,MACfA,WACSE,WAAaG,KACdN,cACAA,aAAaG,YAAYI,KAGjCJ,aAAa,EACbG,IAAML,MAAMjB,OAEhBgB,aAAe,KACfD,UAAW,EACXL,gBAAgBW,UAiBpB,QAASG,MAAKlB,IAAKmB,OACfhB,KAAKH,IAAMA,IACXG,KAAKgB,MAAQA,MAYjB,QAASC,SAhKT,GAOInB,kBACAK,mBARAe,QAAUzB,OAAOJ,YAgBpB,WACG,IAEQS,iBADsB,kBAAfC,YACYA,WAEAL;CAEzB,MAAOlB,GACLsB,iBAAmBJ,iBAEvB,IAEQS,mBADwB,kBAAjBC,cACcA,aAEAT,oBAE3B,MAAOnB,GACL2B,mBAAqBR,uBAuD7B,IAEIY,cAFAC,SACAF,UAAW,EAEXI,YAAa,CAyCjBQ,SAAQC,SAAW,SAAUtB,KACzB,GAAIuB,MAAO,GAAIC,OAAMC,UAAU/B,OAAS,EACxC,IAAI+B,UAAU/B,OAAS,EACnB,IAAK,GAAIP,GAAI,EAAGA,EAAIsC,UAAU/B,OAAQP,IAClCoC,KAAKpC,EAAI,GAAKsC,UAAUtC,EAGhCwB,OAAMe,KAAK,GAAIR,MAAKlB,IAAKuB,OACJ,IAAjBZ,MAAMjB,QAAiBe,UACvBV,WAAWe,aASnBI,KAAKS,UAAUV,IAAM,WACjBd,KAAKH,IAAI4B,MAAM,KAAMzB,KAAKgB,QAE9BE,QAAQQ,MAAQ,UAChBR,QAAQS,SAAU,EAClBT,QAAQU,OACRV,QAAQW,QACRX,QAAQY,QAAU,GAClBZ,QAAQa,YAIRb,QAAQc,GAAKf,KACbC,QAAQe,YAAchB,KACtBC,QAAQgB,KAAOjB,KACfC,QAAQiB,IAAMlB,KACdC,QAAQkB,eAAiBnB,KACzBC,QAAQmB,mBAAqBpB,KAC7BC,QAAQoB,KAAOrB,KAEfC,QAAQqB,QAAU,SAAUC,MACxB,KAAM,IAAItD,OAAM,qCAGpBgC,QAAQuB,IAAM,WAAc,MAAO,KACnCvB,QAAQwB,MAAQ,SAAUC,KACtB,KAAM,IAAIzD,OAAM,mCAEpBgC,QAAQ0B,MAAQ,WAAa,MAAO;OAE9BC,GAAG,SAAStE,QAAQkB,OAAOJ,SAOjC,GAAIyD,UAAWvE,QAAQ,kBACnBwE,SAAWxE,QAAQ,kBAmGnByE,IAAM,SAASC,cAAeC,YAChClD,KAAKiD,cAAgBA,cACrBjD,KAAKkD,WAAaA,WAUpBF,KAAIxB,UAAU2B,SAAW,SAASC,QAChC,MAAO,IAAIL,UACTK,OAAOC,MAAMC,OAAOC,WACpBH,OAAOC,MAAMC,OAAOE,aACpBJ,OAAOC,MAAMC,OAAOG,eAWxBT,IAAIxB,UAAUkC,QAAU,SAASC,KAAMP,QACrC,GAAIQ,OAAQ,MACR5D,KAAKiD,eAAiBjD,KAAKkD,cAC7BU,MAAQ5D,KAAKmD,SAASC,QAExB,IAAIS,MAAO7D,IAEX,OAAO,YACL,GAAI8D,UAAW,KACX1C,KAAOC,MAAMG,UAAUuC,MAAMzE,KAAKgC,UACtC,IAAIuC,KAAKZ,eAAiBY,KAAKX,WAAY,CACzC,GAAIc,KAAM,IACNH,MAAKX,aACPc,IAAMZ,OAAOC,MAAMY,OAAOC,UACxBN,MAAMO,OACNf,OAAOC,MAAMC,OAAOc,cAItBN,SADED,KAAKZ,cACI,GAAIH,UAASkB,IAAKJ,MAAO,GAAIb,UACtCK,OAAOC,MAAMC,OAAOe,UACpBjB,OAAOC,MAAMC,OAAOgB,YACpBlB,OAAOC,MAAMC,OAAOc,cAGX,GAAItB,UAASkB,IAAK,KAAM,MAGrC5C,KAAKG,KAAKuC,UAGPH,OACHA,KAAOvC,KAAKmD,QAGd,IAAIC,MAAOX,KAAKF,KAChB,IAAoB,kBAATa,MACT,KAAM,IAAItF,OAAM,mBAAmByE,KAAK;AAE1C,GAAIc,QAASC,OAAOC,OAAOH,KAAKhD,UAEhC,IADAgD,KAAK/C,MAAMgD,OAAQrD,MAED,QAAhBqD,OAAOd,MACPc,OAAOG,OAC4B,kBAA5BH,QAAOG,MAAMC,WACpB,CACA,GAAIC,KAAML,OAAOG,MAAMC,WAAWJ,OAC9BK,OACFL,OAASK,SAEN,IAAoB,UAAhBL,OAAOd,MAAoBc,OAAOM,KAAM,CACjD,GAAID,KAAML,OAAOI,WAAWJ,OAAOM,KAC/BD,OACFL,OAASK,KAGb,MAAOL,WAMTlG,QAAQ,eACRA,QAAQ,gBACRA,QAAQ,aACRA,QAAQ,eACRA,QAAQ,iBACRA,QAAQ,eACRA,QAAQ,cACRA,QAAQ,cACRA,QAAQ,cACRA,QAAQ,eACRA,QAAQ,eACRA,QAAQ,uBACRA,QAAQ,eACRA,QAAQ,iBACRA,QAAQ,kBACRA,QAAQ,kBACRA,QAAQ,kBACRA,QAAQ,qBACRA,QAAQ,iBACRA,QAAQ,YACRA,QAAQ,aACRA,QAAQ,cACRA,QAAQ,eACRA,QAAQ,kBACRA,QAAQ,eACRA,QAAQ,eACRA,QAAQ,cACRA,QAAQ,cACRA,QAAQ,oBACRA,QAAQ,aACRA,QAAQ,iBACRA,QAAQ,kBACRA,QAAQ,gBACRA,QAAQ,cACRA,QAAQ,cACRA,QAAQ,oBACRA,QAAQ,YACRA,QAAQ,iBACRA,QAAQ,gBACRA,QAAQ,mBACRA,QAAQ,eACRA,QAAQ,eACRA,QAAQ,cACRA,QAAQ,iBACRA,QAAQ,gBACRA,QAAQ,eACRA,QAAQ,gBACRA,QAAQ,mBACRA,QAAQ,aACRA,QAAQ,cACRA,QAAQ,gBACRA,QAAQ,gBACRA,QAAQ,sBACRA,QAAQ,mBACRA,QAAQ,mBACRA,QAAQ,qBACRA,QAAQ,cACRA,QAAQ,aACRA,QAAQ,eACRA,QAAQ,iBACRA,QAAQ,kBACRA,QAAQ,wBACRA,QAAQ,eACRA,QAAQ,gBACRA,QAAQ,gBACRA,QAAQ,mBACRA,QAAQ,gBACRA,QAAQ,sBACRA,QAAQ,gBACRA,QAAQ,gBACRA,QAAQ,aACRA,QAAQ,eACRA,QAAQ,eACRA,QAAQ,oBACRA,QAAQ,yBACRA,QAAQ,kBACRA,QAAQ,aACRA,QAAQ,eACRA,QAAQ,eACRA,QAAQ,kBACRA,QAAQ,iBACRA,QAAQ,kBACRA,QAAQ,kBACRA,QAAQ,eACRA,QAAQ,eACRA,QAAQ,oBACRyG,QAAQ,SAAUC;AAClB,GAAItB,MAAOsB,KAAKzD,UAAU0D,YAAY1C,KAAK2C,aAC3B,OAAZxB,KAAK,KAAYA,KAAOA,KAAKO,UAAU,IAC3ClB,IAAIxB,UAAUmC,MAAQsB,OAGxBxF,OAAOJ,QAAU2D,MAEdoC,cAAc,EAAEC,eAAe,EAAEC,YAAY,EAAEC,cAAc,EAAEC,gBAAgB,EAAEC,cAAc,EAAEC,aAAa,EAAEC,aAAa,GAAGC,aAAa,GAAGC,cAAc,GAAGC,cAAc,GAAGC,sBAAsB,GAAGC,cAAc,GAAGC,gBAAgB,GAAGC,iBAAiB,GAAGC,iBAAiB,GAAGC,iBAAiB,GAAGC,oBAAoB,GAAGC,gBAAgB,GAAGC,WAAW,GAAGC,YAAY,GAAGC,aAAa,GAAGC,cAAc,GAAGC,iBAAiB,GAAGC,cAAc,GAAGC,cAAc,GAAGC,aAAa,GAAGC,aAAa,GAAGC,mBAAmB,GAAGC,YAAY,GAAGC,gBAAgB,GAAGC,iBAAiB,GAAGC,eAAe,GAAGC,aAAa,GAAGC,aAAa,GAAGC,mBAAmB,GAAGC,WAAW,GAAGC,gBAAgB,GAAGC,eAAe,GAAGC,kBAAkB,GAAGC,cAAc,GAAGC,cAAc,GAAGC,aAAa,GAAGC,gBAAgB,GAAGC,iBAAiB,GAAGC,eAAe,GAAGC,cAAc,GAAGC,eAAe,GAAGC,kBAAkB,GAAGC,YAAY;AAAGC,aAAa,GAAGC,eAAe,GAAGC,eAAe,GAAGC,qBAAqB,GAAGC,kBAAkB,GAAGC,kBAAkB,GAAGC,oBAAoB,GAAGC,iBAAiB,GAAGC,aAAa,GAAGC,YAAY,GAAGC,cAAc,GAAGC,gBAAgB,GAAGC,iBAAiB,GAAGC,uBAAuB,GAAGC,cAAc,GAAGC,eAAe,GAAGC,eAAe,GAAGC,kBAAkB,GAAGC,eAAe,GAAGC,qBAAqB,GAAGC,eAAe,GAAGC,eAAe,GAAGC,YAAY,GAAGC,cAAc,GAAGC,cAAc,GAAGC,mBAAmB,GAAGC,wBAAwB,GAAGC,iBAAiB,GAAGC,YAAY,GAAGC,cAAc,GAAGC,cAAc,GAAGC,iBAAiB,GAAGC,gBAAgB,GAAGC,iBAAiB,GAAGC,iBAAiB,GAAGC,cAAc,GAAGC,cAAc,GAAGC,kBAAkB,KAAKC,GAAG,SAASrM,QAAQkB,OAAOJ,SAO9mD,GAAIwL,MAAOtM,QAAQ,gBACfuM,KAAO,QASPzJ,MAAQwJ,KAAKE,QAAQ,QAAS1J,OAAM2J,UAAWC,MAAOnH,UACxD+G,KAAKpJ,MAAMzB,MAAO8K,KAAMhH,WACxB9D,KAAKiL,MAAQA,MACbjL,KAAKgL,UAAYA,WAGnBvL,QAAOJ,QAAUgC,QAEd6J,eAAe,KAAKC,GAAG,SAAS5M,QAAQkB,OAAOJ;AAOlD,GAAI+L,WAAY7M,QAAQ,eACpBuM,KAAO,SAUPO,OAASD,UAAUL,QAAQ,QAASM,QAAOC,KAAM1G,MAAO2G,SAAUzH,UACpEsH,UAAU3J,MAAMzB,MAAO8K,KAAMhH,WAC7B9D,KAAKuL,SAAWA,SAChBvL,KAAKsL,KAAOA,KACZtL,KAAK4E,MAAQA,OAGfnF,QAAOJ,QAAUgM,SAEdG,cAAc,KAAKC,GAAG,SAASlN,QAAQkB,OAAOJ,SAMjD,YAEA,IAAIqM,WAAYnN,QAAQ,eACpBuM,KAAO,MAGPa,yBACD,OACA,QACA,QAEA,UACA,OACA,OACA,OACA,MACA,MACA,MACA,KAAM,KAAM,MAAO,MAAmB,QACtC,IAAK,KAAM,IAAK,OAChB,KAAM,OACN,IAAK,IAAK,MACV,IAAK,IAAK,MACV,MACA,eAmBCC,IAAMF,UAAUX,QAAQ,QAASa,KAAIC,KAAMP,KAAM1G,MAAOd,UAC1D4H,UAAUjK,MAAMzB,MAAO8K,KAAMhH,WAC7B9D,KAAK6L,KAAOA,KACZ7L,KAAKsL,KAAOA,KACZtL,KAAK4E,MAAQA,OAGfgH,KAAIpK,UAAUqD,WAAa,SAASL,MAClC,GAAIsH,QAASF,IAAI/G,WAAWL,KAAKqH,MAC7BE,OAASH,IAAI/G,WAAW7E,KAAK6L,KACjC,IAAIC,QAAUC,QAAUA,OAASD,OAI/B,MAFAtH,MAAKI,MAAQ5E,KAAKsL,KAClBtL,KAAKsL,KAAO9G,KACLxE,MAKX4L,IAAI/G,cACJ8G,uBAAuB3G,QAAQ,SAAUgH,KAAMC,OAC7CD,KAAKhH,QAAQ,SAAUuG,UACrBK,IAAI/G,WAAW0G,UAAYU,MAAQ;KAIvCxM,OAAOJ,QAAUuM,MAEdM,cAAc,KAAKC,GAAG,SAAS5N,QAAQkB,OAAOJ,SAOjD,GAAI+L,WAAY7M,QAAQ,eACpBuM,KAAO,QAQPsB,MAAQhB,UAAUL,QAAQ,QAASqB,OAAMzI,KAAM0I,SAAUvI,UAC3DsH,UAAU3J,MAAMzB,MAAO2D,MAAQmH,KAAMhH,WACrC9D,KAAKqM,SAAWA,UAGlB5M,QAAOJ,QAAU+M,QAEdZ,cAAc,KAAKc,GAAG,SAAS/N,QAAQkB,OAAOJ,SAOjD,GAAIkN,SAAUhO,QAAQ,aAClBuM,KAAO,UAOP0B,QAAUD,QAAQxB,QAAQ,QAASyB,SAAQC,MAAO3I,UACpDyI,QAAQ9K,MAAMzB,MAAO8K,KAAM2B,MAAO3I,YAGpCrE,QAAOJ,QAAUmN,UAEdE,YAAY,KAAKC,GAAG,SAASpO,QAAQkB,OAAOJ,SAM/C,YACA,IAAIuN,MAAOrO,QAAQ,UACfuM,KAAO,QAQP+B,MAAQD,KAAK7B,QAAQ,QAAS8B,OAAMC,MAAOhJ,UAC7C8I,KAAKnL,MAAMzB,MAAO8K,KAAMhH,WACxB9D,KAAK8M,MAAQA,OAGfrN,QAAOJ,QAAUwN,QAEdE,SAAS,KAAKC,GAAG,SAASzO,QAAQkB,OAAOJ,SAM5C,YAEA,IAAI+L,WAAY7M,QAAQ,eACpBuM,KAAO,OASPmC,KAAO7B,UAAUL,QAAQ,QAASkC,MAAKlI,KAAM3D,KAAM0C,UACrDsH,UAAU3J,MAAMzB,MAAO8K,KAAMhH,WAC7B9D,KAAK+E,KAAOA,KACZ/E,KAAKsB,UAAYF,MAGnB3B,QAAOJ,QAAU4N,OAEdzB,cAAc;GAAK0B,IAAI,SAAS3O,QAAQkB,OAAOJ,SAMlD,YACA,IAAIuN,MAAOrO,QAAQ,UACfuM,KAAO,OASPqC,KAAOP,KAAK7B,QAAQ,QAASoC,MAAKC,KAAMC,KAAMvJ,UAChD8I,KAAKnL,MAAMzB,MAAO8K,KAAMhH,WACxB9D,KAAKoN,KAAOA,KACZpN,KAAKqN,KAAOA,MAGd5N,QAAOJ,QAAU8N,OAEdJ,SAAS,KAAKO,IAAI,SAAS/O,QAAQkB,OAAOJ,SAM7C,YAEA,IAAIqM,WAAYnN,QAAQ,eACpBuM,KAAO,OASPyC,KAAO7B,UAAUX,QAAQ,QAASwC,MAAK1B,KAAM9G,KAAMjB,UACrD4H,UAAUjK,MAAMzB,MAAO8K,KAAMhH,WAC7B9D,KAAK6L,KAAOA,KACZ7L,KAAK+E,KAAOA,MAGdtF,QAAOJ,QAAUkO,OAEdrB,cAAc,KAAKsB,IAAI,SAASjP,QAAQkB,OAAOJ,SAMlD,YAEA,IAAI+L,WAAY7M,QAAQ,eACpBuM,KAAO,QAWP2C,MAAQrC,UAAUL,QAAQ,QAAS0C,OAAMJ,KAAMtI,KAAM2I,SAAU5J,UACjEsH,UAAU3J,MAAMzB,MAAO8K,KAAMhH,WAC7B9D,KAAKqN,KAAOA,KACZrN,KAAK+E,KAAOA,KACZ/E,KAAK0N,SAAWA,UAGlBjO,QAAOJ,QAAUoO,QAEdjC,cAAc,KAAKmC,IAAI,SAASpP,QAAQkB,OAAOJ,SAOlD,GAAIuO,aAAcrP,QAAQ,iBACtBuM,KAAO,QAcP+C,MAAQD,YAAY7C,QAAQ,QAAS8C,OAAMrL,KAAMsL,IAAKC,KAAMV,KAAMW,MAAOlK,UAC3E8J,YAAYnM,MAAMzB,MAAO8K,KAAMtI,KAAMsB;AACrC9D,KAAKiO,aAAczL,KACnBxC,KAAK+K,QAAU+C,IACf9N,KAAKkO,WAAaH,KAClB/N,KAAKqN,KAAOA,KACZrN,KAAKmO,WAAWH,QAGlBvO,QAAOJ,QAAUwO,QAEdO,gBAAgB,KAAKC,IAAI,SAAS9P,QAAQkB,OAAOJ,SAOpD,GAAIiP,UAAW/P,QAAQ,cACnBuM,KAAO,gBASPyD,cAAgBD,SAASvD,QAAQ,QAASwD,eAAc/L,KAAMiK,MAAOuB,MAAOlK,UAC9EwK,SAAS7M,MAAMzB,MAAOwC,KAAMiK,MAAO3I,WACnC9D,KAAK2D,KAAOmH,KACZ9K,KAAKmO,WAAWH,QAGlBvO,QAAOJ,QAAUkP,gBAEdC,aAAa,KAAKC,IAAI,SAASlQ,QAAQkB,OAAOJ,SAOjD,GAAI+L,WAAY7M,QAAQ,eACpBuM,KAAO,QAQP4D,MAAQtD,UAAUL,QAAQ,QAAS2D,OAAM3J,KAAMjB,UACjDsH,UAAU3J,MAAMzB,MAAO8K,KAAMhH,WAC7B9D,KAAK+E,KAAOA,MAGdtF,QAAOJ,QAAUqP,QAEdlD,cAAc,KAAKmD,IAAI,SAASpQ,QAAQkB,OAAOJ,SAMlD,YACA,IAAI+L,WAAY7M,QAAQ,eACpBuM,KAAO,UAaP8D,QAAUxD,UAAUL,QAAQ,QAAS6D,SAAQxN,KAAMyN,MAAOC,KAAMjD,KAAMkD,SAAUjL,UAClFsH,UAAU3J,MAAMzB,MAAO8K,KAAMhH,WAC7B9D,KAAK8O,KAAOA,KACZ9O,KAAKsB,UAAYF,KACjBpB,KAAK6O,MAAQA,MACb7O,KAAK6L,KAAOA,KACZ7L,KAAK+O,SAAWA,SAChB/O,KAAKqN,KAAO,MAGd5N,QAAOJ,QAAUuP;GAEdpD,cAAc,KAAKwD,IAAI,SAASzQ,QAAQkB,OAAOJ,SAOlD,GAAIuO,aAAcrP,QAAQ,iBACtBuM,KAAO,WAQPwD,SAAWV,YAAY7C,QAAQ,QAASuD,UAAS9L,KAAMiK,MAAO3I,UAChE8J,YAAYnM,MAAMzB,MAAO8K,KAAMtI,KAAMsB,WACrC9D,KAAKyM,MAAQA,OAGfhN,QAAOJ,QAAUiP,WAEdF,gBAAgB,KAAKa,IAAI,SAAS1Q,QAAQkB,OAAOJ,SAOpD,GAAIwL,MAAOtM,QAAQ,gBACfuM,KAAO,WAQPoE,SAAWrE,KAAKE,QAAQ,QAASmE,UAASC,WAAYrL,UACxD+G,KAAKpJ,MAAMzB,MAAO8K,KAAMhH,WACxB9D,KAAKwC,KAAO2M,YAGd1P,QAAOJ,QAAU6P,WAEdhE,eAAe,KAAKkE,IAAI,SAAS7Q,QAAQkB,OAAOJ,SAMnD,YACA,IAAIuN,MAAOrO,QAAQ,UACfuM,KAAO,WAQPuE,SAAWzC,KAAK7B,QAAQ,QAASsE,UAASvC,MAAOhJ,UACnD8I,KAAKnL,MAAMzB,MAAO8K,KAAMhH,WACxB9D,KAAK8M,MAAQA,OAGfrN,QAAOJ,QAAUgQ,WAEdtC,SAAS,KAAKuC,IAAI,SAAS/Q,QAAQkB,OAAOJ,SAO7C,GAAI+L,WAAY7M,QAAQ,eACpBuM,KAAO,cAEPyE,UAAgB,SAChBC,aAAgB,YAChBC,WAAgB,UAQhB7B,YAAcxC,UAAUL,QAAQ,QAAS6C,aAAYjK,KAAMnB,KAAMsB,UACnEsH,UAAU3J,MAAMzB,MAAO2D,MAAQmH,KAAMhH;AACrC9D,KAAKwC,KAAOA,MAQdoL,aAAYpM,UAAU2M,WAAa,SAASH,OAC1ChO,KAAK0P,WAA0B,IAAb1B,MAAM,GACxBhO,KAAK2P,QAAuB,IAAb3B,MAAM,GACH,UAAdhO,KAAK2D,OACU,IAAbqK,MAAM,GACRhO,KAAK4P,WAAaL,UACI,IAAbvB,MAAM,GACfhO,KAAK4P,WAAaJ,aACI,IAAbxB,MAAM,KACfhO,KAAK4P,WAAaH,YAEpBzP,KAAK6P,SAAwB,IAAb7B,MAAM,KAI1BvO,OAAOJ,QAAUuO,cAEdpC,cAAc,KAAKsE,IAAI,SAASvR,QAAQkB,OAAOJ,SAOlD,GAAI+M,OAAQ7N,QAAQ,WAChBuM,KAAO,UAUPiF,QAAU3D,MAAMrB,QAAQ,QAASgF,SAAQhL,KAAMsI,KAAM2C,KAAMlM,UAC7DsI,MAAM3K,MAAMzB,MAAO8K,KAAMuC,KAAMvJ,WAC/B9D,KAAK+E,KAAOA,KACZ/E,KAAKgQ,KAAOA,MAcdD,SAAQE,WAAa,QAYrBF,QAAQG,WAAa,QAerBH,QAAQI,UAAY,OAEpB1Q,OAAOJ,QAAU0Q,UAEdK,UAAU,IAAIC,IAAI,SAAS9R,QAAQkB,OAAOJ,SAM7C,YAEA,IAAI+L,WAAY7M,QAAQ,eACpBuM,KAAO,KASPwF,GAAKlF,UAAUL,QAAQ,QAASuF,IAAGlD,KAAMC,KAAMvJ,UACjDsH,UAAU3J,MAAMzB,MAAO8K,KAAMhH,WAC7B9D,KAAKoN,KAAOA,KACZpN,KAAKqN,KAAOA,MAGd5N,QAAOJ,QAAUiR,KAEd9E,cAAc,KAAK+E,IAAI,SAAShS,QAAQkB,OAAOJ,SAOlD,GAAIuN,MAAOrO,QAAQ,UACfuM,KAAO,MASP0F,IAAM5D,KAAK7B,QAAQ,QAASyF,KAAIC,MAAOC,MAAO5M;AAChD8I,KAAKnL,MAAMzB,MAAO8K,KAAMhH,WACxB9D,KAAKyQ,MAAQA,MACbzQ,KAAK0Q,MAAQA,OAGfjR,QAAOJ,QAAUmR,MAEdzD,SAAS,KAAK4D,IAAI,SAASpS,QAAQkB,OAAOJ,SAO7C,GAAIuR,KAAMrS,QAAQ,SACduM,KAAO,OAOP+F,KAAOD,IAAI7F,QAAQ,QAAS8F,MAAKzP,KAAM0C,UACzC8M,IAAInP,MAAMzB,MAAO8K,KAAM1J,KAAM0C,YAG/BrE,QAAOJ,QAAUwR,OAEdC,QAAQ,KAAKC,IAAI,SAASxS,QAAQkB,OAAOJ,SAO5C,GAAIuR,KAAMrS,QAAQ,SACduM,KAAO,QAOPkG,MAAQJ,IAAI7F,QAAQ,QAASiG,OAAM5P,KAAM0C,UAC3C8M,IAAInP,MAAMzB,MAAO8K,KAAM1J,KAAM0C,YAG/BrE,QAAOJ,QAAU2R,QAEdF,QAAQ,KAAKG,IAAI,SAAS1S,QAAQkB,OAAOJ,SAO5C,GAAIkN,SAAUhO,QAAQ,aAClBuM,KAAO,WASPoG,SAAW3E,QAAQxB,QAAQ,QAASmG,UAASzE,MAAOZ,KAAM/H,UAC5DyI,QAAQ9K,MAAMzB,MAAO8K,KAAM2B,MAAO3I,WAClC9D,KAAK6L,KAAOA,MAYdqF,UAASC,YAAc,SAUvBD,SAASE,WAAa,QAatBF,SAASG,aAAe,UAUxBH,SAASI,YAAc,SAGvB7R,OAAOJ,QAAU6R,WAEdxE,YAAY,KAAK6E,IAAI,SAAShT,QAAQkB,OAAOJ,SAOhD,GAAIuN,MAAOrO,QAAQ,UACfuM,KAAO,QASP0G,MAAQ5E,KAAK7B,QAAQ,QAASyG,OAAMC,IAAKhF,MAAO3I,UAClD8I,KAAKnL,MAAMzB,MAAO8K,KAAMhH;AACxB9D,KAAKyR,IAAMA,IACXzR,KAAKyM,MAAQA,OAGfhN,QAAOJ,QAAUmS,QAEdzE,SAAS,KAAK2E,IAAI,SAASnT,QAAQkB,OAAOJ,SAO7C,GAAIuN,MAAOrO,QAAQ,UACfuM,KAAO,QAYP5L,MAAQ0N,KAAK7B,QAAQ,QAAS7L,OAAMyS,QAASC,MAAOC,KAAMC,SAAUhO,UACtE8I,KAAKnL,MAAMzB,MAAO8K,KAAMhH,WACxB9D,KAAK2R,QAAUA,QACf3R,KAAK4R,MAAQA,MACb5R,KAAK6R,KAAOA,KACZ7R,KAAK8R,SAAWA,UAGlBrS,QAAOJ,QAAUH,QAEd6N,SAAS,KAAKgF,IAAI,SAASxT,QAAQkB,OAAOJ,SAO7C,GAAI+L,WAAY7M,QAAQ,eACpBuM,KAAO,OAQPkH,KAAO5G,UAAUL,QAAQ,QAASiH,MAAKC,OAAQnO,UACjDsH,UAAU3J,MAAMzB,MAAO8K,KAAMhH,WAC7B9D,KAAKiS,OAASA,QAGhBxS,QAAOJ,QAAU2S,OAEdxG,cAAc,KAAK0G,IAAI,SAAS3T,QAAQkB,OAAOJ,SAOlD,GAAI+L,WAAY7M,QAAQ,eACpBuM,KAAO,OAQPqH,KAAO/G,UAAUL,QAAQ,QAASoH,MAAKC,OAAQtO,UACjDsH,UAAU3J,MAAMzB,MAAO8K,KAAMhH,WAC7B9D,KAAKoS,OAASA,QAGhB3S,QAAOJ,QAAU8S,OAEd3G,cAAc,KAAK6G,IAAI,SAAS9T,QAAQkB,OAAOJ,SAOlD,GAAIuN,MAAOrO,QAAQ,UACfuM,KAAO,aAQPwH,WAAa1F,KAAK7B,QAAQ,QAASuH,YAAW3O,KAAMG,UACtD8I,KAAKnL,MAAMzB,MAAO2D,MAAQmH,KAAMhH;EAGlCrE,QAAOJ,QAAUiT,aAEdvF,SAAS,KAAKwF,IAAI,SAAShU,QAAQkB,OAAOJ,SAM7C,YAEA,IAAI+L,WAAY7M,QAAQ,eACpBuM,KAAO,MAaP0H,IAAMpH,UAAUL,QAAQ,QAASyH,KAAIC,KAAMrF,KAAMsF,UAAWrF,KAAMrC,UAAWlH,UAC/EsH,UAAU3J,MAAMzB,MAAO8K,KAAMhH,WAC7B9D,KAAKyS,KAAOA,KACZzS,KAAKoN,KAAOA,KACZpN,KAAK0S,UAAYA,UACjB1S,KAAKgL,UAAYA,UACjBhL,KAAKqN,KAAOA,MAGd5N,QAAOJ,QAAUmT,MAEdhH,cAAc,KAAKmH,IAAI,SAASpU,QAAQkB,OAAOJ,SAMlD,YAEA,IAAI+L,WAAY7M,QAAQ,eACpBuM,KAAO,UAaP8H,QAAUxH,UAAUL,QAAQ,QAAS6H,SAAQX,OAAQR,IAAKhF,MAAOY,KAAMrC,UAAWlH,UACpFsH,UAAU3J,MAAMzB,MAAO8K,KAAMhH,WAC7B9D,KAAKiS,OAASA,OACdjS,KAAKyR,IAAMA,IACXzR,KAAKyM,MAAQA,MACbzM,KAAKgL,UAAYA,UACjBhL,KAAKqN,KAAOA,MAGd5N,QAAOJ,QAAUuT,UAEdpH,cAAc,KAAKqH,IAAI,SAAStU,QAAQkB,OAAOJ,SAOlD,GAAIuO,aAAcrP,QAAQ,iBACtBuM,KAAgB,WAYhBgI,GAAKlF,YAAY7C,QAAQ,QAASgI,WAAUvQ,KAAMpB,KAAMyN,MAAOhD,KAAMkD,SAAUjL,UACjF8J,YAAYnM,MAAMzB,MAAO8K,KAAMtI,KAAMsB,WACrC9D,KAAKsB,UAAYF,KACjBpB,KAAK6O,MAAQA,MACb7O,KAAK6L,KAAOA;AACZ7L,KAAK+O,SAAWA,SAChB/O,KAAKqN,KAAO,MAEd5N,QAAOJ,QAAUyT,KAEd1E,gBAAgB,KAAK4E,IAAI,SAASzU,QAAQkB,OAAOJ,SAMpD,YACA,IAAI+L,WAAY7M,QAAQ,eACpBuM,KAAO,SAQPmI,OAAS7H,UAAUL,QAAQ,QAASkI,QAAOhI,MAAOnH,UACpDsH,UAAU3J,MAAMzB,MAAO8K,KAAMhH,WAC7B9D,KAAKiL,MAAQA,OAGfxL,QAAOJ,QAAU4T,SAEdzH,cAAc,KAAK0H,IAAI,SAAS3U,QAAQkB,OAAOJ,SAMlD,YAEA,IAAI+L,WAAY7M,QAAQ,eACpBuM,KAAO,OASPqI,KAAO/H,UAAUL,QAAQ,QAASoI,MAAKC,MAAOtP,UAChDsH,UAAU3J,MAAMzB,MAAO8K,KAAMhH,WAC7B9D,KAAKoT,MAAQA,OAGf3T,QAAOJ,QAAU8T,OAEd3H,cAAc,KAAK6H,IAAI,SAAS9U,QAAQkB,OAAOJ,SAMlD,YAEA,IAAI+L,WAAY7M,QAAQ,eACpBuM,KAAO,OASPwI,KAAOlI,UAAUL,QAAQ,QAASuI,MAAKC,MAAOzP,UAChDsH,UAAU3J,MAAMzB,MAAO8K,KAAMhH,WAC7B9D,KAAKuT,MAAQA,OAGf9T,QAAOJ,QAAUiU,OAEd9H,cAAc,KAAKgI,IAAI,SAASjV,QAAQkB,OAAOJ,SAOlD,GAAIuN,MAAOrO,QAAQ,UACfuM,KAAO,aASP2I,WAAa7G,KAAK7B,QAAQ,QAAS0I,YAAWjR,KAAMkR,WAAY5P,UAClE8I,KAAKnL,MAAMzB,MAAO8K,KAAMhH,WACpB4P,WACF1T,KAAK2T,WAAaF,WAAWG,cACJ,IAAhBpR,KAAKjD,OACdS,KAAK2T,WAAaF,WAAWI,iBACR,KAAZrR,KAAK,GACdxC,KAAK2T,WAAaF,WAAWK,oBAE7B9T,KAAK2T,WAAaF,WAAWM;AAE/B/T,KAAKwC,KAAOA,KAAKwR,KAAK,OAOxBP,YAAWI,iBAAmB,MAK9BJ,WAAWM,eAAiB,KAO5BN,WAAWK,oBAAsB,MAKjCL,WAAWG,cAAgB,KAG3BnU,OAAOJ,QAAUoU,aAEd1G,SAAS,KAAKkH,IAAI,SAAS1V,QAAQkB,OAAOJ,SAM7C,YAEA,IAAI+L,WAAY7M,QAAQ,eACpBuM,KAAO,KAWPoJ,GAAK9I,UAAUL,QAAQ,QAASmJ,IAAG9G,KAAMC,KAAM8G,UAAWnJ,UAAWlH,UACvEsH,UAAU3J,MAAMzB,MAAO8K,KAAMhH,WAC7B9D,KAAKoN,KAAOA,KACZpN,KAAKqN,KAAOA,KACZrN,KAAKmU,UAAYA,UACjBnU,KAAKgL,UAAYA,WAGnBvL,QAAOJ,QAAU6U,KAEd1I,cAAc,KAAK4I,IAAI,SAAS7V,QAAQkB,OAAOJ,SAOlD,GAAI+L,WAAY7M,QAAQ,eACpBuM,KAAO,UAUPuJ,QAAUjJ,UAAUL,QAAQ,QAASsJ,SAAQnS,KAAM3D,QAAS+V,OAAQxQ,UACtEsH,UAAU3J,MAAMzB,MAAO8K,KAAMhH,WAC7B9D,KAAKkC,KAAOA,KACZlC,KAAKzB,QAAUA,QACfyB,KAAKsU,OAASA,QAGhB7U,QAAOJ,QAAUgV,UAEd7I,cAAc,KAAK+I,IAAI,SAAShW,QAAQkB,OAAOJ,SAOlD,GAAIkN,SAAUhO,QAAQ,aAClBuM,KAAO,SAOP0J,OAASjI,QAAQxB,QAAQ,QAASyJ,QAAO/H,MAAO3I,UAClDyI,QAAQ9K,MAAMzB,MAAO8K,KAAM2B,MAAO3I,YAGpCrE,QAAOJ,QAAUmV;GAEd9H,YAAY,KAAK+H,IAAI,SAASlW,QAAQkB,OAAOJ,SAOhD,GAAIuO,aAAcrP,QAAQ,iBACtBuM,KAAO,YAUP4J,UAAY9G,YAAY7C,QAAQ,QAAS2J,WAAUlS,KAAMsL,IAAKT,KAAMvJ,UACtE8J,YAAYnM,MAAMzB,MAAO8K,KAAMtI,KAAMsB,WACrC9D,KAAK+K,QAAU+C,IACf9N,KAAKqN,KAAOA,MAGd5N,QAAOJ,QAAUqV,YAEdtG,gBAAgB,KAAKuG,IAAI,SAASpW,QAAQkB,OAAOJ,SAOpD,GAAIuR,KAAMrS,QAAQ,SACduM,KAAO,QAOP8J,MAAQhE,IAAI7F,QAAQ,QAAS6J,OAAMxT,KAAM0C,UAC3C8M,IAAInP,MAAMzB,MAAO8K,KAAM1J,KAAM0C,YAG/BrE,QAAOJ,QAAUuV,QAEd9D,QAAQ,KAAK+D,IAAI,SAAStW,QAAQkB,OAAOJ,SAM5C,YACA,IAAIuN,MAAOrO,QAAQ,UACfuM,KAAO,QAQPgK,MAAQlI,KAAK7B,QAAQ,QAAS+J,OAAMtS,KAAMsB,UAC5C8I,KAAKnL,MAAMzB,MAAO8K,KAAMhH,WACxB9D,KAAKwC,KAAOA,MAGd/C,QAAOJ,QAAUyV,QAEd/H,SAAS,KAAKgI,IAAI,SAASxW,QAAQkB,OAAOJ,SAO7C,GAAIuR,KAAMrS,QAAQ,SACduM,KAAO,OAOPkK,KAAOpE,IAAI7F,QAAQ,QAASiK,MAAK5T,KAAM0C,UACzC8M,IAAInP,MAAMzB,MAAO8K,KAAM1J,KAAM0C,YAG/BrE,QAAOJ,QAAU2V,OAEdlE,QAAQ,KAAKmE,IAAI,SAAS1W,QAAQkB,OAAOJ,SAO5C,GAAIwL,MAAOtM,QAAQ,gBACfuM,KAAO,UAQPyB,QAAU1B,KAAKE,QAAQ,QAASwB,SAAQ5I,KAAM8I,MAAO3I;AACvD+G,KAAKpJ,MAAMzB,MAAO2D,MAAQmH,KAAMhH,WAChC9D,KAAKyM,MAAQA,OAGfhN,QAAOJ,QAAUkN,UAEdrB,eAAe,KAAKgK,IAAI,SAAS3W,QAAQkB,OAAOJ,SAcnD,GAAIyD,UAAW,SAASmP,OAAQrO,MAAOuR,KACrCnV,KAAKiS,OAASA,OACdjS,KAAK4D,MAAQA,MACb5D,KAAKmV,IAAMA,IAGb1V,QAAOJ,QAAUyD,cAEXsS,IAAI,SAAS7W,QAAQkB,OAAOJ,SAOlC,GAAIwL,MAAOtM,QAAQ,gBACfuM,KAAO,SASPuK,OAASxK,KAAKE,QAAQ,QAASsK,QAAO1R,KAAMoB,KAAMZ,OAAQL,UAC5D+G,KAAKpJ,MAAMzB,MAAO2D,MAAQmH,KAAMhH,WAChC9D,KAAK+E,KAAOA,KACZ/E,KAAKmE,OAASA,QAGhB1E,QAAOJ,QAAUgW,SAEdnK,eAAe,KAAKoK,IAAI,SAAS/W,QAAQkB,OAAOJ,SAOnD,GAAIkN,SAAUhO,QAAQ,aAClBuM,KAAO,QAOPyK,MAAQhJ,QAAQxB,QAAQ,QAASwK,OAAM9I,MAAO3I,UAChDyI,QAAQ9K,MAAMzB,MAAO8K,KAAM2B,MAAO3I,YAGpCrE,QAAOJ,QAAUkW,QAEd7I,YAAY,KAAK8I,IAAI,SAASjX,QAAQkB,OAAOJ,SAOhD,GAAIyT,IAAKvU,QAAQ,cACbuM,KAAO,SAWP2K,OAAS3C,GAAG/H,QAAQ,QAAS0K,UAC/B3C,GAAGrR,MAAMzB,KAAMsB,WACftB,KAAK2D,KAAOmH,MAGdrL,QAAOJ,QAAUoW,SAEdC,aAAa,KAAKC,IAAI,SAASpX,QAAQkB,OAAOJ,SAOjD,GAAI+M,OAAQ7N,QAAQ,WAEhBuM,MADavM,QAAQ;AACd,aASPqX,UAAYxJ,MAAMrB,QAAQ,QAAS6K,WAAUpT,KAAM6J,SAAUwJ,aAAc/R,UAC7EsI,MAAM3K,MAAMzB,MAAO8K,KAAMuB,SAAUvI,WACnC9D,KAAKwC,KAAOA,KACZxC,KAAK6V,aAAeA,eAAgB,GAGtCpW,QAAOJ,QAAUuW,YAEdxF,UAAU,EAAE0F,eAAe,KAAKC,IAAI,SAASxX,QAAQkB,OAAOJ,SAM/D,YAEA,IAAI+L,WAAY7M,QAAQ,eACpBuM,KAAO,MASPkL,IAAM5K,UAAUL,QAAQ,QAASiL,KAAIjR,KAAM3D,KAAM0C,UACnDsH,UAAU3J,MAAMzB,MAAO8K,KAAMhH,WAC7B9D,KAAK+E,KAAOA,KACZ/E,KAAKsB,UAAYF,MAGnB3B,QAAOJ,QAAU2W,MAEdxK,cAAc,KAAKyK,IAAI,SAAS1X,QAAQkB,OAAOJ,SAalD,GAAIuN,MAAO,QAASA,MAAKjJ,KAAMG,UAC7B9D,KAAK2D,KAAOA,KACTG,WACD9D,KAAKkW,IAAMpS,UASf8I,MAAK7B,QAAU,SAAS7F,aAItB,MAHAA,aAAY1D,UAAYkD,OAAOC,OAAO3E,KAAKwB,WAC3C0D,YAAY6F,QAAU/K,KAAK+K,QAC3B7F,YAAY1D,UAAU0D,YAAcA,YAC7BA,aAGTzF,OAAOJ,QAAUuN,UAEXuJ,IAAI,SAAS5X,QAAQkB,OAAOJ,SAOlC,GAAIkN,SAAUhO,QAAQ,aAClBuM,KAAO,SASPsL,OAAS7J,QAAQxB,QAAQ,QAASqL,QAAO3J,MAAO2G,MAAOtP,UACzDyI,QAAQ9K,MAAMzB,MAAO8K,KAAM2B,MAAO3I;AAClC9D,KAAKoT,MAAQA,OAGf3T,QAAOJ,QAAU+W,SAEd1J,YAAY,KAAK2J,IAAI,SAAS9X,QAAQkB,OAAOJ,SAOhD,GAAIkN,SAAUhO,QAAQ,aAClBuM,KAAO,SAOPwL,QAAU/J,QAAQxB,QAAQ,QAASwL,QAAO9J,MAAO3I,UACnDyI,QAAQ9K,MAAMzB,MAAO8K,KAAM2B,MAAO3I,YAGpCrE,QAAOJ,QAAUiX,UAEd5J,YAAY,KAAK8J,IAAI,SAASjY,QAAQkB,OAAOJ,SAMhD,YACA,IAAIgW,QAAS9W,QAAQ,YACjBuM,KAAO,eAOP2L,aAAepB,OAAOtK,QAAQ,QAAS0L,cAAa1R,KAAMZ,OAAQL,UACpEuR,OAAO5T,MAAMzB,MAAO8K,KAAM/F,KAAMZ,OAAQL,YAG1CrE,QAAOJ,QAAUoX,eAEdC,WAAW,KAAKC,IAAI,SAASpY,QAAQkB,OAAOJ,SAM/C,YAEA,IAAIwL,MAAOtM,QAAQ,gBACfuM,KAAO,YAOPY,UAAYb,KAAKE,QAAQ,QAASW,WAAU/H,KAAMG,UACpD+G,KAAKpJ,MAAMzB,MAAO2D,MAAQmH,KAAMhH,YAGlCrE,QAAOJ,QAAUqM,YAEdR,eAAe,KAAK0L,IAAI,SAASrY,QAAQkB,OAAOJ,SAOnD,GAAIuO,aAAcrP,QAAQ,iBACtBuM,KAAO,YAYP+L,UAAYjJ,YAAY7C,QAAQ,QAAS8L,WAAUrU,KAAMqJ,KAAMY,MAAOqK,MAAOC,WAAYhI,SAAUjL,UACrG8J,YAAYnM,MAAMzB,MAAO8K,KAAMtI,KAAMsB;AACrC9D,KAAKyM,MAAQA,MACbzM,KAAK6L,KAAOA,KACZ7L,KAAK6O,MAAQiI,MACb9W,KAAKgX,SAAWD,WAChB/W,KAAK+O,SAAWA,UAGlBtP,QAAOJ,QAAUwX,YAEdzI,gBAAgB,KAAK6I,IAAI,SAAS1Y,QAAQkB,OAAOJ,SAMpD,YAEA,IAAIqM,WAAYnN,QAAQ,eACpBuM,KAAO,cAQPoM,YAAcxL,UAAUX,QAAQ,QAASmM,aAAYC,MAAOrT,UAC9D4H,UAAUjK,MAAMzB,MAAO8K,KAAMhH,WAC7B9D,KAAKmX,MAAQA,OAGf1X,QAAOJ,QAAU6X,cAEdhL,cAAc,KAAKkL,IAAI,SAAS7Y,QAAQkB,OAAOJ,SAclD,GAAI0D,UAAW,SAAS8O,KAAMwF,OAAQlT,QACpCnE,KAAK6R,KAAOA,KACZ7R,KAAKqX,OAASA,OACdrX,KAAKmE,OAASA,OAGhB1E,QAAOJ,QAAU0D,cAEXuU,IAAI,SAAS/Y,QAAQkB,OAAOJ,SAMlC,YAEA,IAAIqM,WAAYnN,QAAQ,eACpBuM,KAAO,OASPyM,KAAO7L,UAAUX,QAAQ,QAASwM,MAAK1L,KAAM9G,KAAMjB,UACrD4H,UAAUjK,MAAMzB,MAAO8K,KAAMhH,WAC7B9D,KAAK6L,KAAOA,KACZ7L,KAAK+E,KAAOA,MAGdtF,QAAOJ,QAAUkY,OAEdrL,cAAc,KAAKsL,IAAI,SAASjZ,QAAQkB,OAAOJ,SAMlD,YAEA,IAAIqM,WAAYnN,QAAQ,eACpBuM,KAAO,MASP2M,IAAM/L,UAAUX,QAAQ,QAAS0M,KAAI5L,KAAM9G,KAAMjB,UACnD4H,UAAUjK,MAAMzB,MAAO8K,KAAMhH;AAC7B9D,KAAK6L,KAAOA,KACZ7L,KAAK+E,KAAOA,MAGdtF,QAAOJ,QAAUoY,MAEdvL,cAAc,KAAKwL,IAAI,SAASnZ,QAAQkB,OAAOJ,SAOlD,GAAIuR,KAAMrS,QAAQ,SACduM,KAAO,QAOP6M,MAAQ/G,IAAI7F,QAAQ,QAAS4M,OAAMvW,KAAM0C,UAC3C8M,IAAInP,MAAMzB,MAAO8K,KAAM1J,KAAM0C,YAG/BrE,QAAOJ,QAAUsY,QAEd7G,QAAQ,KAAK8G,IAAI,SAASrZ,QAAQkB,OAAOJ,SAO5C,GAAI+M,OAAQ7N,QAAQ,WAChBuM,KAAO,UAQP+M,QAAUzL,MAAMrB,QAAQ,QAAS8M,SAAQxL,SAAUyL,OAAQhU,UAC7DsI,MAAM3K,MAAMzB,MAAO8K,KAAMuB,SAAUvI,WACnC9D,KAAK8X,OAASA,QAGhBrY,QAAOJ,QAAUwY,UAEdzH,UAAU,IAAI2H,IAAI,SAASxZ,QAAQkB,OAAOJ,SAO7C,GAAIuO,aAAcrP,QAAQ,iBACtBuM,KAAO,WAWPkN,SAAWpK,YAAY7C,QAAQ,QAASiN,UAASxV,KAAMiK,MAAOuB,MAAOlK,UACvE8J,YAAYnM,MAAMzB,MAAO8K,KAAMtI,KAAMsB,WACrC9D,KAAKyM,MAAQA,MACbzM,KAAKmO,WAAWH,QAGlBvO,QAAOJ,QAAU2Y,WAEd5J,gBAAgB,KAAK6J,IAAI,SAAS1Z,QAAQkB,OAAOJ,SAMpD,YACA,IAAIgW,QAAS9W,QAAQ,YACjBuM,KAAO,iBAOPoN,eAAiB7C,OAAOtK,QAAQ,QAASmN,gBAAenT,KAAMZ,OAAQL,UACxEuR,OAAO5T,MAAMzB,MAAO8K,KAAM/F,KAAMZ,OAAQL;EAG1CrE,QAAOJ,QAAU6Y,iBAEdxB,WAAW,KAAKyB,IAAI,SAAS5Z,QAAQkB,OAAOJ,SAM/C,YAEA,IAAI+L,WAAY7M,QAAQ,eACpBuM,KAAO,QACPc,IAAMrN,QAAQ,SACd6Z,WAAaxM,IAAI/G,WAAWiG,MAU5BuN,MAAQjN,UAAUL,QAAQ,QAASsN,OAAMjL,KAAMkL,SAAUC,UAAWzU,UACtEsH,UAAU3J,MAAMzB,MAAO8K,KAAMhH,WAC7B9D,KAAKoN,KAAOA,KACZpN,KAAKsY,SAAWA,SAChBtY,KAAKuY,UAAYA,WAMnBF,OAAM7W,UAAUqD,WAAa,SAASL,MACpC,GAAIO,MAAqB,QAAdP,KAAKb,KAAiBa,KAAKqH,KAAOrH,KAAKb,KAC9CmI,OAASF,IAAI/G,WAAWE,KAC5B,IAAI+G,QAAUsM,WAAatM,OAAQ,CACjC,GAAkB,QAAdtH,KAAKb,KAGP,MAFAa,MAAKI,MAAQ5E,KAAKoN,KAClBpN,KAAKoN,KAAO5I,KACLxE,IAEP,MAAM,IAAId,OAAM,SAAWsF,KAAKb,QAKtClE,OAAOJ,QAAUgZ,QAEdG,QAAQ,EAAEhN,cAAc,KAAKiN,IAAI,SAASla,QAAQkB,OAAOJ,SAM5D,YACA,IAAIuN,MAAOrO,QAAQ,UACfuM,KAAO,SAQP4N,OAAS9L,KAAK7B,QAAQ,QAAS2N,QAAOC,KAAM7U,UAC9C8I,KAAKnL,MAAMzB,MAAO8K,KAAMhH,WACxB9D,KAAK2Y,KAAOA,MAGdlZ,QAAOJ,QAAUqZ,SAEd3L,SAAS,KAAK6L,IAAI,SAASra,QAAQkB,OAAOJ,SAM7C,YAEA,IAAI+L,WAAY7M,QAAQ,eACpBuM,KAAO,SAQP+N,OAASzN,UAAUL,QAAQ,QAAS8N,QAAOF,KAAM7U;AACnDsH,UAAU3J,MAAMzB,MAAO8K,KAAMhH,WAC7B9D,KAAK2Y,KAAOA,MAGdlZ,QAAOJ,QAAUwZ,SAEdrN,cAAc,KAAKsN,IAAI,SAASva,QAAQkB,OAAOJ,SAOlD,GAAIuN,MAAOrO,QAAQ,UACfuM,KAAO,YAOPM,UAAYwB,KAAK7B,QAAQ,QAASK,WAAUzH,KAAMG,UACpD8I,KAAKnL,MAAMzB,MAAO2D,MAAQmH,KAAMhH,YAGlCrE,QAAOJ,QAAU+L,YAEd2B,SAAS,KAAKgM,IAAI,SAASxa,QAAQkB,OAAOJ,SAM7C,YACA,IAAI+L,WAAY7M,QAAQ,eACpBuM,KAAO,SAQPkO,OAAS5N,UAAUL,QAAQ,QAASiO,QAAO/N,MAAOnH,UACpDsH,UAAU3J,MAAMzB,MAAO8K,KAAMhH,WAC7B9D,KAAKiL,MAAQA,OAGfxL,QAAOJ,QAAU2Z,SAEdxN,cAAc,KAAKyN,IAAI,SAAS1a,QAAQkB,OAAOJ,SAMlD,YACA,IAAIgW,QAAS9W,QAAQ,YACjBuM,KAAO,eAOPoO,aAAe7D,OAAOtK,QAAQ,QAASmO,cAAanU,KAAMZ,OAAQL,UACpEuR,OAAO5T,MAAMzB,MAAO8K,KAAM/F,KAAMZ,OAAQL,YAG1CrE,QAAOJ,QAAU6Z,eAEdxC,WAAW,KAAKyC,IAAI,SAAS5a,QAAQkB,OAAOJ,SAO/C,GAAIkN,SAAUhO,QAAQ,aAClBuM,KAAO,SASPsO,OAAS7M,QAAQxB,QAAQ,QAASqO,QAAOC,cAAe5M,MAAO3I,UACjEyI,QAAQ9K,MAAMzB,MAAO8K,KAAM2B,MAAO3I;AAClC9D,KAAKqZ,cAAgBA,eAGvB5Z,QAAOJ,QAAU+Z,SAEd1M,YAAY,KAAK4M,IAAI,SAAS/a,QAAQkB,OAAOJ,SAMhD,YAEA,IAAI+L,WAAY7M,QAAQ,eACpBuM,KAAO,SAUPyO,OAASnO,UAAUL,QAAQ,QAASwO,QAAOnM,KAAMC,KAAMrC,UAAWlH,UACpEsH,UAAU3J,MAAMzB,MAAO8K,KAAMhH,WAC7B9D,KAAKoN,KAAOA,KACZpN,KAAKqN,KAAOA,KACZrN,KAAKgL,UAAYA,WAGnBvL,QAAOJ,QAAUka,SAEd/N,cAAc,KAAKgO,IAAI,SAASjb,QAAQkB,OAAOJ,SAOlD,GAAI+L,WAAY7M,QAAQ,eACpBuM,KAAO,MAQP8F,IAAMxF,UAAUL,QAAQ,QAAS6F,KAAIjN,KAAMvC,KAAM0C,UACnDsH,UAAU3J,MAAMzB,MAAO2D,MAAQmH,KAAMhH,WACrC9D,KAAKsB,UAAYF,MAGnB3B,QAAOJ,QAAUuR,MAEdpF,cAAc,KAAKiO,IAAI,SAASlb,QAAQkB,OAAOJ,SAMlD,YAEA,IAAI+L,WAAY7M,QAAQ,eACpBuM,KAAO,QAQP4O,MAAQtO,UAAUL,QAAQ,QAAS2O,OAAM3U,KAAMjB,UACjDsH,UAAU3J,MAAMzB,MAAO8K,KAAMhH,WAC7B9D,KAAK+E,KAAOA,MAGdtF,QAAOJ,QAAUqa,QAEdlO,cAAc,KAAKmO,IAAI,SAASpb,QAAQkB,OAAOJ,SAOlD,GAAIuO,aAAcrP,QAAQ,iBACtBuM,KAAO,QAWP8O,MAAQhM,YAAY7C,QAAQ,QAAS6O,OAAMpX,KAAMsL,IAAKC,KAAMV,KAAMvJ;AACpE8J,YAAYnM,MAAMzB,MAAO8K,KAAMtI,KAAMsB,WACrC9D,KAAK+K,QAAU+C,IACf9N,KAAKkO,WAAaH,KAClB/N,KAAKqN,KAAOA,MAGd5N,QAAOJ,QAAUua,QAEdxL,gBAAgB,KAAKyL,IAAI,SAAStb,QAAQkB,OAAOJ,SAOpD,GAAIuN,MAAOrO,QAAQ,UACfuM,KAAO,aAEPyE,UAAgB,SAChBC,aAAgB,YAChBC,WAAgB,UAWhBqK,WAAalN,KAAK7B,QAAQ,QAAS+O,YAAWC,MAAOC,OAAQC,GAAIjM,MAAOlK,UAC1E8I,KAAKnL,MAAMzB,MAAO8K,KAAMhH,WACxB9D,KAAK+Z,MAAQA,MACb/Z,KAAKga,OAASA,OACdha,KAAKia,GAAKA,GACNjM,MACe,IAAbA,MAAM,GACRhO,KAAK4P,WAAaL,UACI,IAAbvB,MAAM,GACfhO,KAAK4P,WAAaJ,aAElBxP,KAAK4P,WAAaH,WAGpBzP,KAAK4P,WAAa,MAItBnQ,QAAOJ,QAAUya,aAEd/M,SAAS,KAAKmN,IAAI,SAAS3b,QAAQkB,OAAOJ,SAO7C,GAAIuN,MAAOrO,QAAQ,UACfuM,KAAO,kBAUPqP,gBAAkBvN,KAAK7B,QAAQ,QAASoP,iBAAgBJ,MAAOC,OAAQI,QAAStW,UAClF8I,KAAKnL,MAAMzB,MAAO8K,KAAMhH,WACxB9D,KAAK+Z,MAAQA,MACb/Z,KAAKga,OAASA,OACdha,KAAKoa,QAAUA,SAGjB3a,QAAOJ,QAAU8a,kBAEdpN,SAAS,KAAKsN,IAAI,SAAS9b,QAAQkB,OAAOJ,SAO7C,GAAIuN,MAAOrO,QAAQ,UACfuM,KAAO,WASPwP,SAAW1N,KAAK7B,QAAQ,QAASuP,UAASC,OAAQC,YAAa1W;AACjE8I,KAAKnL,MAAMzB,MAAO8K,KAAMhH,WACxB9D,KAAKua,OAASA,OACdva,KAAKwa,YAAcA,aAGrB/a,QAAOJ,QAAUib,WAEdvN,SAAS,KAAK0N,IAAI,SAASlc,QAAQkB,OAAOJ,SAM7C,YAEA,IAAI+L,WAAY7M,QAAQ,eACpBuM,KAAO,MAUP4P,IAAMtP,UAAUL,QAAQ,QAAS2P,KAAIrN,KAAMsN,QAASC,OAAQ9W,UAC9DsH,UAAU3J,MAAMzB,MAAO8K,KAAMhH,WAC7B9D,KAAKqN,KAAOA,KACZrN,KAAK2a,QAAUA,QACf3a,KAAK4a,OAASA,QAGhBnb,QAAOJ,QAAUqb,MAEdlP,cAAc,KAAKqP,IAAI,SAAStc,QAAQkB,OAAOJ,SAMlD,YAEA,IAAIqM,WAAYnN,QAAQ,eACpBuM,KAAO,QASPgQ,MAAQpP,UAAUX,QAAQ,QAAS+P,OAAMjP,KAAM9G,KAAMjB,UACvD4H,UAAUjK,MAAMzB,MAAO8K,KAAMhH,WAC7B9D,KAAK6L,KAAOA,KACZ7L,KAAK+E,KAAOA,MAGd+V,OAAMtZ,UAAUqD,WAAa,SAASL,MACpC,MAAkB,QAAdA,KAAKb,MACP3D,KAAK+E,KAAOP,KAAK8G,KACjB9G,KAAK8G,KAAOtL,KACLwE,MACgB,UAAdA,KAAKb,MACd3D,KAAK+E,KAAOP,KAAK4I,KACjB5I,KAAK4I,KAAOpN,KACLwE,MAHF,QAOT/E,OAAOJ,QAAUyb,QAEd5O,cAAc,KAAK6O,IAAI,SAASxc,QAAQkB,OAAOJ,SAOlD,GAAIuR,KAAMrS,QAAQ,SACduM,KAAO,QAOPkQ,MAAQpK,IAAI7F,QAAQ,QAASiQ,OAAM5Z,KAAM0C,UAC3C8M,IAAInP,MAAMzB,MAAO8K,KAAM1J,KAAM0C;EAG/BrE,QAAOJ,QAAU2b,QAEdlK,QAAQ,KAAKmK,IAAI,SAAS1c,QAAQkB,OAAOJ,SAM5C,YACA,IAAI+L,WAAY7M,QAAQ,eACpBuM,KAAO,WAYPoQ,SAAW9P,UAAUL,QAAQ,QAASmQ,UAAS1Y,KAAMqJ,KAAMZ,MAAOnH,UACpEsH,UAAU3J,MAAMzB,MAAO8K,KAAMhH,WAC7B9D,KAAKwC,KAAOA,KACZxC,KAAK6L,KAAOA,KACZ7L,KAAKiL,MAAQA,OAGfxL,QAAOJ,QAAU6b,WAEd1P,cAAc,KAAK2P,IAAI,SAAS5c,QAAQkB,OAAOJ,SAMlD,YACA,IAAI+L,WAAY7M,QAAQ,eACpBuM,KAAO,UAYPsQ,QAAUhQ,UAAUL,QAAQ,QAASqQ,SAAQ5Y,KAAM6Y,MAAOxP,KAAM/H,UAClEsH,UAAU3J,MAAMzB,MAAO8K,KAAMhH,WAC7B9D,KAAKwC,KAAOA,KACZxC,KAAKqb,MAAQA,MACbrb,KAAK6L,KAAOA,MAQduP,SAAQE,WAAa,QAKrBF,QAAQG,cAAgB,WAGxB9b,OAAOJ,QAAU+b,UAEd5P,cAAc,KAAKgQ,IAAI,SAASjd,QAAQkB,OAAOJ,SAMlD,YACA,IAAIwL,MAAOtM,QAAQ,gBACfuM,KAAO,WAUP2Q,SAAW5Q,KAAKE,QAAQ,QAAS0Q,UAASjZ,KAAMqM,MAAO/K,UACzD+G,KAAKpJ,MAAMzB,MAAO8K,KAAMhH,WACxB9D,KAAKwC,KAAOA,KACZxC,KAAK6O,MAAQA,QAAS,GAGxBpP,QAAOJ,QAAUoc,WAEdvQ,eAAe,KAAKwQ,IAAI,SAASnd,QAAQkB,OAAOJ,SAMnD;AACA,GAAIwL,MAAOtM,QAAQ,gBACfuM,KAAO,WASP6Q,SAAW9Q,KAAKE,QAAQ,QAAS4Q,UAAS5W,KAAMjB,UAClD+G,KAAKpJ,MAAMzB,MAAO8K,KAAMhH,WACxB9D,KAAK+E,KAAOA,MAGdtF,QAAOJ,QAAUsc,WAEdzQ,eAAe,KAAK0Q,IAAI,SAASrd,QAAQkB,OAAOJ,SAMnD,YAEA,IAAI+L,WAAY7M,QAAQ,eACpBuM,KAAO,QAUP+Q,MAAQzQ,UAAUL,QAAQ,QAAS8Q,OAAMzO,KAAMC,KAAMrC,UAAWlH,UAClEsH,UAAU3J,MAAMzB,MAAO8K,KAAMhH,WAC7B9D,KAAKoN,KAAOA,KACZpN,KAAKqN,KAAOA,KACZrN,KAAKgL,UAAYA,WAGnBvL,QAAOJ,QAAUwc,QAEdrQ,cAAc,KAAKsQ,IAAI,SAASvd,QAAQkB,OAAOJ,SAMlD,YAEA,IAAIiT,YAAa/T,QAAQ,gBACrBuM,KAAO,QAUPiR,MAAQzJ,WAAWvH,QAAQ,QAASgR,OAAMtP,MAAOgF,IAAK3N,UACxDwO,WAAW7Q,MAAMzB,MAAO8K,KAAMhH,WAC9B9D,KAAKyM,MAAQA,MACbzM,KAAKyR,IAAMA,KAGbhS,QAAOJ,QAAU0c,QAEd7Q,eAAe,KAAK8Q,IAAI,SAASzd,QAAQkB,OAAOJ,SAMnD,YAEA,IAAIiT,YAAa/T,QAAQ,gBACrBuM,KAAO,YASPmR,UAAY3J,WAAWvH,QAAQ,QAASkR,WAAUxP,MAAO3I,UAC3DwO,WAAW7Q,MAAMzB,MAAO8K,KAAMhH,WAC9B9D,KAAKyM,MAAQA,OAGfhN,QAAOJ,QAAU4c;GAEd/Q,eAAe,KAAKgR,IAAI,SAAS3d,QAAQkB,OAAOJ,SAMnD,YAeA,IAAIgE,OAAQ,SAAS8Y,QACnBnc,KAAKmc,OAASA,OACdnc,KAAKoc,IAAMpc,KAAKmc,OAAOE,OAAOC,MAC9Btc,KAAKuc,IAAM,EACXvc,KAAKwc,OAAQ,EACbxc,KAAKyc,YAAa,EAClBzc,KAAK0c,gBAAiB,EACtB1c,KAAK2c,WAAY,EACjB3c,KAAK4c,UAAW,EAChB5c,KAAK6c,YAAa,EAClB7c,KAAK8c,UAAY,EACjB9c,KAAK+c,UACHC,UAAahd,KAAKoc,IAAIa,UACtBC,UAAald,KAAKoc,IAAIe,UACtBC,aAAgBpd,KAAKoc,IAAIiB,SACzBC,WAActd,KAAKoc,IAAImB,WACvBC,SAAYxd,KAAKoc,IAAIqB,OACrBC,SAAY1d,KAAKoc,IAAIuB,OACrBC,QAAW5d,KAAKoc,IAAIyB,MACpBC,cAAiB9d,KAAKoc,IAAI2B,OAC1BC,KAAQhe,KAAKoc,IAAI6B,OACjBC,IAAOle,KAAKoc,IAAI6B,OAChBE,SAAYne,KAAKoc,IAAIgC,WACrBC,MAASre,KAAKoc,IAAIkC,QAClBC,OAAUve,KAAKoc,IAAIoC,SACnBC,IAAOze,KAAKoc,IAAIsC,MAChBC,MAAS3e,KAAKoc,IAAIwC,QAClBC,QAAW7e,KAAKoc,IAAI0C,UACpBC,MAAS/e,KAAKoc,IAAI4C,QAClBC,GAAMjf,KAAKoc,IAAI8C,KACfC,OAAUnf,KAAKoc,IAAIgD,SACnBC,MAASrf,KAAKoc,IAAIkD,QAClBC,KAAQvf,KAAKoc,IAAIoD,OACjBC,MAASzf,KAAKoc,IAAIsD,QAClBC,SAAY3f,KAAKoc,IAAIwD,WACrBC,GAAM7f,KAAKoc,IAAI0D,KACfC,IAAO/f,KAAKoc,IAAI4D,MAChBC,OAAUjgB,KAAKoc,IAAI8D,SACnBC,QAAWngB,KAAKoc,IAAIgE,UACpBC,WAAcrgB,KAAKoc,IAAIkE,aACvBC,QAAWvgB,KAAKoc,IAAIoE;AACpBC,WAAczgB,KAAKoc,IAAIsE,aACvBC,WAAc3gB,KAAKoc,IAAIwE,aACvB3G,GAAMja,KAAKoc,IAAIyE,KACfC,OAAU9gB,KAAKoc,IAAI2E,SACnBC,UAAahhB,KAAKoc,IAAI6E,YACtBC,KAAQlhB,KAAKoc,IAAI+E,OACjBC,QAAWphB,KAAKoc,IAAIiF,UACpBC,MAASthB,KAAKoc,IAAImF,QAClBC,SAAYxhB,KAAKoc,IAAIqF,WACrBC,KAAQ1hB,KAAKoc,IAAIuF,OACjBC,KAAQ5hB,KAAKoc,IAAIyF,OACjBC,MAAS9hB,KAAKoc,IAAI2F,QAClBC,MAAShiB,KAAKoc,IAAI6F,QAClBC,UAAaliB,KAAKoc,IAAI+F,YACtBpI,MAAS/Z,KAAKoc,IAAIgG,QAClBrX,QAAW/K,KAAKoc,IAAIiG,UACpBnU,WAAclO,KAAKoc,IAAIkG,aACvBC,IAAOviB,KAAKoc,IAAIoG,MAChBC,MAASziB,KAAKoc,IAAIsG,QAClBC,IAAO3iB,KAAKoc,IAAIwG,MAChBC,KAAQ7iB,KAAKoc,IAAI0G,OACjBC,QAAW/iB,KAAKoc,IAAI4G,UACpBC,aAAgBjjB,KAAKoc,IAAI8G,eACzB3kB,QAAWyB,KAAKoc,IAAI+G,UACpBC,aAAgBpjB,KAAKoc,IAAIiH,eACzBC,UAAatjB,KAAKoc,IAAImH,YACtBC,IAAOxjB,KAAKoc,IAAIqH,MAChBC,UAAa1jB,KAAKoc,IAAIuH,YACtBC,OAAU5jB,KAAKoc,IAAIyH,SACnBC,MAAS9jB,KAAKoc,IAAI2H,QAClBC,MAAShkB,KAAKoc,IAAI6H,QAClBC,gBAAmBlkB,KAAKoc,IAAI+H,gBAC5BC,OAAUpkB,KAAKoc,IAAIiI,SACnBC,SAAYtkB,KAAKoc,IAAImI,WACrBC,MAASxkB,KAAKoc,IAAIqI,QAClBC,QAAW1kB,KAAKoc,IAAIuI,UACpBC,UAAa5kB,KAAKoc,IAAIyI,YACtBC,OAAU9kB,KAAKoc,IAAI2I,SACnBC,MAAShlB,KAAKoc,IAAI6I;AAClBjZ,KAAQhM,KAAKoc,IAAI8I,OACjBlkB,MAAShB,KAAKoc,IAAI+I,QAClBC,SAAYplB,KAAKoc,IAAIiJ,WACrBC,GAAMtlB,KAAKoc,IAAImJ,aACfC,IAAOxlB,KAAKoc,IAAIqJ,cAChBC,IAAO1lB,KAAKoc,IAAIuJ,eAElB3lB,KAAK4lB,cACHC,IAAO7lB,KAAKoc,IAAI0J,WAChBC,QAAW/lB,KAAKoc,IAAI0J,WACpBE,KAAQhmB,KAAKoc,IAAI6J,cACjBC,OAAUlmB,KAAKoc,IAAI6J,cACnBE,MAASnmB,KAAKoc,IAAI6J,cAClBG,OAAUpmB,KAAKoc,IAAIiK,cACnBC,OAAUtmB,KAAKoc,IAAIiK,cACnBrlB,MAAShB,KAAKoc,IAAImK,aAClBC,OAAUxmB,KAAKoc,IAAIqK,cACnBC,KAAQ1mB,KAAKoc,IAAIuK,YACjBC,QAAW5mB,KAAKoc,IAAIuK,YACpB3B,MAAShlB,KAAKoc,IAAIyK,cAOtBxjB,OAAM7B,UAAUslB,SAAW,SAASC,OAyBlC,MAxBA/mB,MAAKiE,OAAS8iB,MACd/mB,KAAKgnB,KAAOD,MAAMxnB,OAClBS,KAAKinB,SAAW,EAChBjnB,KAAKmE,OAAS,EACdnE,KAAK8c,UAAY,EACjB9c,KAAKknB,OAAS,GACdlnB,KAAKsD,QACHG,aAAc,EACdF,WAAY,EACZC,aAAc,EACdY,YAAa,EACbC,UAAW,EACXC,YAAa,EACb6iB,UAAW,EACXC,YAAa,GAEfpnB,KAAKqc,UACLrc,KAAKqnB,kBACLrnB,KAAKsnB,KAAOtnB,KAAKmE,QAAUnE,KAAKgnB,MAC3BhnB,KAAKyc,YAAczc,KAAK2c,UAC3B3c,KAAKunB,MAAM,mBAEXvnB,KAAKunB,MAAM,WAENvnB,MAOTqD,MAAM7B,UAAUulB,MAAQ,SAASC,MAC/B,GAAIQ,IAAKxnB,KAAKiE,OAAOjE,KAAKmE,OAC1B,OAAKqjB,KACLxnB,KAAKknB,QAAUM;AACfxnB,KAAKmE,SACO,OAAPqjB,IAA4C,OAA7BxnB,KAAKiE,OAAOjE,KAAKmE,UACnCnE,KAAKknB,QAAU,KACflnB,KAAKmE,UAEI,OAAPqjB,IAAsB,OAAPA,IACjBxnB,KAAKsD,OAAO6jB,YAAcnnB,KAAKinB,SAC/BjnB,KAAK8c,UAAY9c,KAAKsD,OAAO8jB,YAC7BpnB,KAAKsD,OAAO8jB,YAAc,GAE1BpnB,KAAKsD,OAAO8jB,cAEPI,IAdS,IAoBlBnkB,MAAM7B,UAAUimB,MAAQ,SAAST,MAC/B,GAAa,IAATA,KAEFhnB,KAAKmE,SAC4B,OAA7BnE,KAAKiE,OAAOjE,KAAKmE,SAAqD,OAAjCnE,KAAKiE,OAAOjE,KAAKmE,OAAS,KACjEnE,KAAKmE,SACL6iB,QAE+B,OAA7BhnB,KAAKiE,OAAOjE,KAAKmE,SAAiD,OAA7BnE,KAAKiE,OAAOjE,KAAKmE,SACxDnE,KAAKsD,OAAO6jB,YACZnnB,KAAKinB,WACLjnB,KAAKsD,OAAO8jB,YAAcpnB,KAAK8c,WAE/B9c,KAAKsD,OAAO8jB,cAEdpnB,KAAKknB,OAASlnB,KAAKknB,OAAOhjB,UAAU,EAAGlE,KAAKknB,OAAO3nB,OAASynB,UACvD,IAAIA,KAAO,EAEhB,GADAhnB,KAAKmE,QAAU6iB,KACXA,KAAOhnB,KAAKknB,OAAO3nB,OAAQ,CAC7BS,KAAKknB,OAASlnB,KAAKknB,OAAOhjB,UAAU,EAAGlE,KAAKknB,OAAO3nB,OAASynB,MAE5DhnB,KAAKsD,OAAO6jB,UAAYnnB,KAAKsD,OAAOC,WACpCvD,KAAKsD,OAAO8jB,YAAcpnB,KAAK8c,UAAY9c,KAAKsD,OAAOE,YACvD,KAAI,GAAIxE,GAAI,EAAGA,EAAIgB,KAAKknB,OAAO3nB,OAAQP,IAAK,CAC1C,GAAI0oB,GAAI1nB,KAAKknB,OAAOloB,EACV,QAAN0oB,GACFA,EAAI1nB,KAAKknB,SAASloB,GAClBgB,KAAK8c,UAAY9c,KAAKsD,OAAO8jB,YAC7BpnB,KAAKsD,OAAO6jB,YACZnnB,KAAKsD,OAAO8jB,YAAc;AAChB,OAANM,IACQ,OAANA,EACF1nB,KAAKsD,OAAO6jB,YAEZnnB,KAAKsD,OAAO8jB,gBAGD,OAANM,GACT1nB,KAAK8c,UAAY9c,KAAKsD,OAAO8jB,YAC7BpnB,KAAKsD,OAAO6jB,YACZnnB,KAAKsD,OAAO8jB,YAAc,GAE1BpnB,KAAKsD,OAAO8jB,cAGhBpnB,KAAKinB,SAAWjnB,KAAKsD,OAAO6jB,cAG5BnnB,MAAKknB,OAAS,GACdlnB,KAAKsD,OAAO6jB,UAAYnnB,KAAKinB,SAAWjnB,KAAKsD,OAAOC,WACpDvD,KAAKsD,OAAO8jB,YAAcpnB,KAAKsD,OAAOE,YAI1C,OAAOxD,OAITqD,MAAM7B,UAAUmmB,SAAW,SAASC,MAClC,MAAOA,QAAS5nB,KAAK6nB,MAAMD,KAAKroB,SAIlC8D,MAAM7B,UAAUsmB,iBAAmB,SAASF,MAC1C,MAAOA,QAAS5nB,KAAK6nB,MAAMD,KAAKroB,QAAQ4F,eAI1C9B,MAAM7B,UAAUqmB,MAAQ,SAASb,MAC/B,GAAIY,MAAO5nB,KAAKiE,OAAOC,UAAUlE,KAAKmE,OAAQnE,KAAKmE,OAAS6iB,KAI5D,OAH8B,OAA1BY,KAAKA,KAAKroB,OAAS,IAAuD,OAAxCS,KAAKiE,OAAOjE,KAAKmE,OAAS6iB,KAAO,KACrEY,MAAQ,MAEHA,MAITvkB,MAAM7B,UAAUumB,QAAU,SAASf,MACjC,IAAI,GAAIhoB,GAAI,EAAGA,EAAIgoB,KAAMhoB,IAAK,CAC5B,GAAIwoB,IAAKxnB,KAAKiE,OAAOjE,KAAKmE,OAC1B,KAAKqjB,GAAI,KACTxnB,MAAKknB,QAAUM,GACfxnB,KAAKmE,SACO,OAAPqjB,IAA4C,OAA7BxnB,KAAKiE,OAAOjE,KAAKmE,UACnCnE,KAAKknB,QAAU,KACflnB,KAAKmE,SACLnF,KAES,OAAPwoB,IAAsB,OAAPA,IACjBxnB,KAAKsD,OAAO6jB,YAAcnnB,KAAKinB;AAC/BjnB,KAAK8c,UAAY9c,KAAKsD,OAAO8jB,YAC7BpnB,KAAKsD,OAAO8jB,YAAc,GAE1BpnB,KAAKsD,OAAO8jB,cAGhB,MAAOpnB,OAMTqD,MAAM7B,UAAUwmB,SAAW,WACzB,OACEd,OAAQlnB,KAAKknB,OACb/iB,OAAQnE,KAAKmE,OACb8iB,SAAUjnB,KAAKinB,SACfnK,UAAW9c,KAAK8c,UAChBxZ,QACEG,aAAczD,KAAKsD,OAAOG,aAC1BF,WAAYvD,KAAKsD,OAAOC,WACxBC,aAAcxD,KAAKsD,OAAOE,aAC1B2jB,UAAWnnB,KAAKsD,OAAO6jB,UACvBC,YAAapnB,KAAKsD,OAAO8jB,eAQ/B/jB,MAAM7B,UAAUymB,SAAW,SAASC,OAMlC,MALAloB,MAAKknB,OAASgB,MAAMhB,OACpBlnB,KAAKmE,OAAS+jB,MAAM/jB,OACpBnE,KAAKinB,SAAWiB,MAAMjB,SACtBjnB,KAAK8c,UAAYoL,MAAMpL,UACvB9c,KAAKsD,OAAS4kB,MAAM5kB,OACbtD,MAITqD,MAAM7B,UAAU2mB,YAAc,SAAS1b,MAAOob,OAE5C,MADA7nB,MAAKqc,OAAO9a,MAAMkL,MAAOob,QAClB7nB,MAITqD,MAAM7B,UAAU4mB,IAAM,WACpBpoB,KAAKsD,OAAOc,YAAcpE,KAAKmE,OAC/BnE,KAAKsD,OAAOe,UAAYrE,KAAKsD,OAAO6jB,UACpCnnB,KAAKsD,OAAOgB,YAActE,KAAKsD,OAAO8jB,WACtC,IAAIxV,OAAQ5R,KAAKqoB,QAAUroB,KAAKooB,KAChC,KAAKpoB,KAAKyc,WAAY,CACpB,KACE7K,QAAU5R,KAAKoc,IAAIkM,eAEhBtoB,KAAK0c,iBACJ9K,QAAU5R,KAAKoc,IAAImM,WAChB3W,QAAU5R,KAAKoc,IAAIoM,gBAKxB5W,QAAU5R,KAAKoc,IAAIqM,YAGrB7W,MAAQ5R,KAAKqoB,QAAUroB,KAAKooB;AAE9B,IAAKpoB,KAAK2c,WAAa/K,OAAS5R,KAAKoc,IAAIsM,qBAEvC,MAAO1oB,MAAKoc,IAAIyF,OAWpB,MARK7hB,MAAKsD,OAAOc,cACfpE,KAAKsD,OAAOc,YAAcpE,KAAKsD,OAAOG,aACtCzD,KAAKsD,OAAOe,UAAYrE,KAAKsD,OAAOC,WACpCvD,KAAKsD,OAAOgB,YAActE,KAAKsD,OAAOE,cAKjCoO,OAITvO,MAAM7B,UAAU+lB,MAAQ,SAASoB,WAI/B,GAHA3oB,KAAKqnB,eAAe9lB,KAAKonB,WACzB3oB,KAAK4oB,aAAeD,UACpB3oB,KAAK6oB,QAAU7oB,KAAK,QAAU2oB,WACF,kBAAjB3oB,MAAK6oB,QACd,KAAM,IAAI3pB,OAAM,8BAA8BypB,UAAU,IAE1D,OAAO3oB,OAITqD,MAAM7B,UAAUsnB,SAAW,WACzB,GAAIpqB,GAAIsB,KAAKqnB,eAAe9nB,OAAS,EACjCopB,UAAajqB,EAAI,EAAKsB,KAAKqnB,eAAe0B,MAAQ/oB,KAAKqnB,eAAe,EAG1E,IAFArnB,KAAK4oB,aAAe5oB,KAAKqnB,eAAernB,KAAKqnB,eAAe9nB,OAAS,GACrES,KAAK6oB,QAAU7oB,KAAK,QAAUA,KAAK4oB,cACP,kBAAjB5oB,MAAK6oB,QACd,KAAM,IAAI3pB,OAAM,8BAA8Bc,KAAK4oB,aAAa,IAElE,OAAOD,YAITtlB,MAAM7B,UAAU6mB,KAAO,WACrB,GAAIzW,MAQJ,IAPK5R,KAAKiE,SACRjE,KAAKsnB,MAAO,GAEdtnB,KAAKsD,OAAOG,aAAezD,KAAKmE,OAChCnE,KAAKsD,OAAOC,WAAavD,KAAKsD,OAAO6jB;AACrCnnB,KAAKsD,OAAOE,aAAexD,KAAKsD,OAAO8jB,YACvCpnB,KAAKknB,OAAS,GACVlnB,KAAKsnB,KAIP,MAHAtnB,MAAKsD,OAAOc,YAAcpE,KAAKsD,OAAOG,aACtCzD,KAAKsD,OAAOe,UAAYrE,KAAKsD,OAAOC,WACpCvD,KAAKsD,OAAOgB,YAActE,KAAKsD,OAAOE,aAC/BxD,KAAKuc,GAgBd,IAdIvc,KAAKqc,OAAO9c,OAAS,GACvBqS,MAAQ5R,KAAKqc,OAAO9X,QACI,gBAAbqN,OAAM,GACf5R,KAAKioB,SAASrW,MAAM,IAEpB5R,KAAK+nB,QAAQnW,MAAM,IAErBA,MAAQA,MAAM,IAEdA,MAAQ5R,KAAK6oB,QAAQpnB,MAAMzB,SAEzBA,KAAKmE,QAAUnE,KAAKgnB,MAA+B,IAAvBhnB,KAAKqc,OAAO9c,SAC1CS,KAAKsnB,MAAO,GAEVtnB,KAAKwc,MAAO,CACd,GAAIwM,OAAQpX,KAEVoX,OADmB,gBAAVA,OACDhpB,KAAKmc,OAAOE,OAAO4M,OAAOD,OAE1B,IAAIA,MAAM,GAEpB,IAAIxqB,GAAI,GAAIU,OACV8pB,MACA,UAAYhpB,KAAKsD,OAAOC,WAAa,IAAMvD,KAAKsD,OAAOE,aACvD,WAAaxD,KAAKsD,OAAO6jB,UAAY,IAAMnnB,KAAKsD,OAAO8jB,YACvD,MAAMpnB,KAAKknB,OAAO,IAEpBgC,SAAQC,IAAI3qB,EAAE4qB,OAEhB,MAAOxX,SAMPrT,QAAQ,uBACRA,QAAQ,sBACRA,QAAQ,sBACRA,QAAQ,uBACRA,QAAQ,wBACRA,QAAQ,sBACRA,QAAQ,qBACRA,QAAQ,qBACRyG,QAAQ,SAAU8I;AAClB,IAAI,GAAIub,KAAKvb,KACXzK,MAAM7B,UAAU6nB,GAAKvb,IAAIub,KAI7B5pB,OAAOJ,QAAUgE,QAEdimB,sBAAsB,GAAGC,qBAAqB,GAAGC,qBAAqB,GAAGC,sBAAsB,GAAGC,uBAAuB,GAAGC,qBAAqB,GAAGC,oBAAoB,GAAGC,mBAAmB,KAAKC,IAAI,SAASvrB,QAAQkB,OAAOJ,SAOlO,YAEAI,QAAOJ,SAKLkpB,UAAW,WACT,KAAMvoB,KAAKmE,OAASnE,KAAKgnB,MAAM,CAC7B,GAAIQ,IAAKxnB,KAAK+mB,OACd,IAAW,OAAPS,IAAsB,OAAPA,GACjB,MAAOxnB,MAAKoc,IAAImM,SACX,IAAW,MAAPf,KAAexnB,KAAK+pB,YAA2C,MAA7B/pB,KAAKiE,OAAOjE,KAAKmE,QAE5D,MADAnE,MAAKynB,MAAM,GACJznB,KAAKoc,IAAImM,SACX,IAAW,MAAPf,IAAcxnB,KAAK+pB,YAA2C,MAA7B/pB,KAAKiE,OAAOjE,KAAKmE,QAE3D,MADAnE,MAAKynB,MAAM,GACJznB,KAAKoc,IAAImM,UAGpB,MAAOvoB,MAAKoc,IAAImM,WAKlBC,cAAe,WACb,GAAIhB,IAAKxnB,KAAK+mB,QACVnV,MAAQ5R,KAAKoc,IAAImM,SACrB,IAAW,MAAPf,GAAY,CAKd,GAJAA,GAAKxnB,KAAK+mB,QACN/mB,KAAKgqB,kBACPpY,MAAQ5R,KAAKoc,IAAIoM,eAER,MAAPhB,GACF,MAAO5V,MAEP5R,MAAKynB,MAAM,GAGf,KAAMznB,KAAKmE,OAASnE,KAAKgnB,MAEvB,GADAQ,GAAKxnB,KAAK+mB,QACC,MAAPS,IAA2C,MAA7BxnB,KAAKiE,OAAOjE,KAAKmE,QAAiB,CAClDnE,KAAK+mB,OACL,OAGJ,MAAOnV,cAILqY,IAAI,SAAS1rB,QAAQkB,OAAOJ;AAMlCI,OAAOJ,SACL6qB,YAAa,WAUX,MARElqB,MAAKqnB,eAAe9nB,OAAS,GAC+B,YAAzDS,KAAKqnB,eAAernB,KAAKqnB,eAAe9nB,OAAS,GAGpDS,KAAK8oB,WAEL9oB,KAAKunB,MAAM,mBAENvnB,MAETmqB,aAAc,WACZ,KAAMnqB,KAAKmE,OAASnE,KAAKgnB,MAAM,CAC7B,GAAIQ,IAAKxnB,KAAK+mB,OACd,IAAU,KAANS,GAEF,GADAA,GAAKxnB,KAAK6nB,MAAM,GACN,KAANL,GAAW,CACb,GAAIxnB,KAAK2nB,SAAS,MAAO,CACvB3nB,KAAKynB,MAAM,GAAGU,YAAYnoB,KAAKoc,IAAIsM,qBAAsB,GAAGwB,aAC5D,OACK,GAAIlqB,KAAK8nB,iBAAiB,UAC/BN,GAAKxnB,KAAKiE,OAAOjE,KAAKmE,OAAS,GACpB,MAAPqjB,IAAqB,OAAPA,IAAsB,OAAPA,IAAsB,OAAPA,IAAa,CAC3DxnB,KAAKynB,MAAM,GAAGU,YAAYnoB,KAAKoc,IAAIqM,WAAY,GAAGyB,aAClD,OAGJ,GAAIlqB,KAAK6c,WAAY,CACnB7c,KAAKynB,MAAM,GAAGU,YAAYnoB,KAAKoc,IAAIqM,WAAY,GAAGyB,aAClD,YAEG,IAAGlqB,KAAK4c,UAAkB,KAAN4K,GAAW,CACpC,GAAIxnB,KAAK2nB,SAAS,MAAO,CACvB3nB,KAAK+pB,YAAa,EAClB/pB,KAAKynB,MAAM,GAAGU,YAAYnoB,KAAKoc,IAAIsM,qBAAsB,GAAGwB,aAC5D,OAEAlqB,KAAK+pB,YAAa,EAClB/pB,KAAKynB,MAAM,GAAGU,YAAYnoB,KAAKoc,IAAIqM,WAAY,GAAGyB,aAClD,QAKR,MAAIlqB,MAAKknB,OAAO3nB,OAAS,GAChBS,KAAKoc,IAAIgO,qBAOhBC,IAAI,SAAS9rB,QAAQkB,OAAOJ,UAClC,SAAW6B;AAOX,YAGA,IAAoB,OAAhBA,QAAQopB,KACV,GACIC,oBAAqB,GACrBC,gBAAkB,0BAEtB,IACID,oBAAqB,GACrBC,gBAAkB,YAGxB/qB,QAAOJ,SACLorB,YAAa,WACX,GAAIjD,IAAKxnB,KAAKknB,OAAO,GACjBwD,SAA8B,MAAnB1qB,KAAKknB,OAAO,EAC3B,IAAW,MAAPM,GAGF,GAFAA,GAAKxnB,KAAK+mB,QAEC,MAAPS,IAAqB,MAAPA,GAAY,CAE5B,GADAxnB,KAAK+mB,QACD/mB,KAAK2qB,SACP,MAAO3qB,MAAK4qB,cAEZ5qB,MAAKynB,MAAM,OAER,IAAW,MAAPD,IAAqB,MAAPA,GAAY,CAEnC,GADAA,GAAKxnB,KAAK+mB,QACC,MAAPS,IAAqB,MAAPA,GAChB,MAAOxnB,MAAK6qB,cAEZ7qB,MAAKynB,MAAM,OAEHznB,MAAK8qB,UACf9qB,KAAKynB,MAAM,EAIf,MAAMznB,KAAKmE,OAASnE,KAAKgnB,MAEvB,GADAQ,GAAKxnB,KAAK+mB,SACL/mB,KAAK8qB,SAAU,CAClB,GAAW,MAAPtD,IAAekD,SAEZ,CAAA,GAAW,MAAPlD,IAAqB,MAAPA,GAAY,CAEnC,GADAA,GAAKxnB,KAAK+mB,QACC,MAAPS,IAAqB,MAAPA,GAAY,CAE5B,GADAA,GAAKxnB,KAAK+mB,QACN/mB,KAAK8qB,SAEP,MADA9qB,MAAK+qB,eACE/qB,KAAKoc,IAAI4O,SAEZxD,KAAIxnB,KAAKynB,MAAM,EACnB,OAEG,GAAIznB,KAAK8qB,SAEd,MADA9qB,MAAK+qB,eACE/qB,KAAKoc,IAAI4O,SAEZxD,KAAIxnB,KAAKynB,MAAM,EACnB,OAGFznB,KAAKynB,MAAM,EACX,OArBAiD,UAAW,EAyBjB,MAAIA,UACK1qB,KAAKoc,IAAI4O,UACPhrB,KAAKknB,OAAO3nB,OAASgrB,mBAAqB,EAC5CvqB,KAAKoc,IAAI6O,UAGdjrB,KAAKknB,OAAO3nB,OAASgrB,oBACnBvqB,KAAKknB,OAAO3nB,QAAUgrB,oBACnBvqB,KAAKknB,OAASsD,gBAGZxqB,KAAKoc,IAAI6O,UAEXjrB,KAAKoc,IAAI4O;EAIpBJ,aAAc,WACZ,KAAM5qB,KAAKmE,OAASnE,KAAKgnB,MAEvB,GADAhnB,KAAK+mB,SACA/mB,KAAK2qB,SAAU,CAClB3qB,KAAKynB,MAAM,EACX,OAGJ,MAAOznB,MAAKoc,IAAI6O,WAGlBF,aAAc,WACZ,KAAM/qB,KAAKmE,OAASnE,KAAKgnB,MAEvB,GADAhnB,KAAK+mB,SACA/mB,KAAK8qB,SAAU,CAClB9qB,KAAKynB,MAAM,EACX,OAGJ,MAAOznB,MAAKoc,IAAI6O,WAGlBJ,aAAc,WAEZ,IADA,GAAIrD,IACExnB,KAAKmE,OAASnE,KAAKgnB,MAEvB,GADAQ,GAAKxnB,KAAK+mB,QACC,MAAPS,IAAqB,MAAPA,GAAY,CACxBA,IAAIxnB,KAAKynB,MAAM,EACnB,OAGJ,MAAOznB,MAAKoc,IAAI6O,cAIjB3rB,KAAKU,KAAKzB,QAAQ,eAClB2sB,SAAW,IAAIC,IAAI,SAAS5sB,QAAQkB,OAAOJ,SAM9CI,OAAOJ,SACL+rB,6BAA8B,WAC5B,GAAI5D,IAAKxnB,KAAK+mB,OACd,IAAW,MAAPS,GAAY,CAEd,GADAA,GAAKxnB,KAAK+mB,QACC,MAAPS,GAEF,MAAOxnB,MAAKoc,IAAIiP,iBAEd7D,KAAIxnB,KAAKynB,MAAM,OACd,IAAIznB,KAAKsrB,iBAId,MAFAtrB,MAAKurB,gBACLvrB,KAAK8oB,WACE9oB,KAAKoc,IAAIoP,QAKlB,OAFAxrB,MAAK8oB,WACDtB,IAAIxnB,KAAKynB,MAAM,IACZ,GAETgE,4BAA6B,WAC3B,GAAIjE,IAAKxnB,KAAK+mB,OACd,OAAI/mB,MAAKsrB,kBACPtrB,KAAKurB,gBACL/D,GAAKxnB,KAAK+mB,QACV/mB,KAAK8oB,WACM,MAAPtB,IAAqB,MAAPA,IAChBxnB,KAAKunB,MAAM,mBACXvnB,KAAKynB,MAAM,GACJznB,KAAKoc,IAAIsP,mBAEhB1rB,KAAKynB,MAAMznB,KAAKknB,OAAO3nB;CAChB,KAGLioB,IAAIxnB,KAAKynB,MAAM,GACnBznB,KAAK8oB,WACL9oB,KAAKunB,MAAM,oBAEJ,IAGXoE,mBAAoB,WAClB,GAAInE,IAAKxnB,KAAK+mB,OACd,IAAI/mB,KAAK8qB,SAEP,MADA9qB,MAAKyqB,cACEzqB,KAAKoc,IAAIwP,YACX,IAAW,MAAPpE,GAET,MADAxnB,MAAK8oB,WACE,GACF,IAAW,MAAPtB,GAAY,CAErB,GADAxnB,KAAK+mB,QACD/mB,KAAKsrB,iBAEP,MADAtrB,MAAKurB,gBACEvrB,KAAKoc,IAAIyP,UAEhB,MAAM,IAAI3sB,OAAM,uBAEb,GAAIc,KAAKsrB,iBAEd,MADAtrB,MAAKurB,gBACEvrB,KAAKoc,IAAIoP,QACX,IAAIxrB,KAAKgqB,iBAA0B,OAAPxC,IAAsB,MAAPA,IAAsB,MAAPA,GAC/D,MAAOxnB,MAAKoc,IAAI0P,yBACX,IAAW,MAAPtE,IAAqB,MAAPA,IAAqB,MAAPA,IAAqB,MAAPA,IAAqB,MAAPA,IAAcxnB,KAAK+rB,WACpF,MAAOvE,GAEP,MAAM,IAAItoB,OAAM,8BAKhB8sB,IAAI,SAASztB,QAAQkB,OAAOJ,SAMlCI,OAAOJ,SACL4sB,qBAAsB,WACpB,GAAIzE,IAAKxnB,KAAK+mB,OACd,QAAOS,IACL,IAAK,IACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,OACH,MAAOxnB,MAAKsoB,cACd,KAAK,IACH,MAAOtoB,MAAKuoB,WACd,KAAK,IACH,MAAiC,MAA7BvoB,KAAKiE,OAAOjE,KAAKmE,QACZnE,KAAKuoB,YAC0B,MAA7BvoB,KAAKiE,OAAOjE,KAAKmE,SAC1BnE,KAAK+mB,QACE/mB,KAAKwoB,iBAEPxoB,KAAKksB;AACd,IAAK,IACH,MAAOlsB,MAAKmsB,4BACd,KAAK,IACH,MAAOnsB,MAAKosB,kBACd,KAAK,IAEH,MADApsB,MAAKunB,MAAM,gBACJ,GACT,KAAK,IACH,IAAKvnB,KAAK+pB,YAAc/pB,KAAK2nB,SAAS,KAAM,CAC1C3nB,KAAK+mB,OACL,IAAIsF,QAASrsB,KAAKiE,OAAOjE,KAAKmE,OAK9B,OAJe,OAAXkoB,QAA8B,OAAXA,QAAiBrsB,KAAK+mB,QACzC/mB,KAAKqnB,eAAe9nB,OAAS,GAC/BS,KAAKunB,MAAM,WAENvnB,KAAKoc,IAAIkQ,YAElB,MAAOtsB,MAAKksB,eACd,KAAK,IACH,MAAIlsB,MAAK+pB,YAA2C,MAA7B/pB,KAAKiE,OAAOjE,KAAKmE,SACtCnE,KAAK+mB,QACLS,GAAKxnB,KAAKiE,OAAOjE,KAAKmE,QACX,OAAPqjB,IAAsB,OAAPA,IACjBxnB,KAAK+mB,QAEP/mB,KAAK+pB,YAAa,EACd/pB,KAAKqnB,eAAe9nB,OAAS,GAC/BS,KAAKunB,MAAM,WAENvnB,KAAKoc,IAAIkQ,aAEXtsB,KAAKksB,eACd,KAAK,IAEH,MADAlsB,MAAKunB,MAAM,mBACJ,GACT,KAAK,IAKH,MAJIvnB,MAAKqnB,eAAe9nB,OAAS,GAE/BS,KAAK8oB,WAEA,GACT,SACE,GAAW,MAAPtB,GAAY,CAEd,GADAA,GAAKxnB,KAAK+mB,QACN/mB,KAAK8qB,SACP,MAAO9qB,MAAKyqB,aAERjD,KAAIxnB,KAAKynB,MAAM,GAGvB,GAAIznB,KAAK8qB,SACP,MAAO9qB,MAAKyqB,aACP,IAAIzqB,KAAKsrB,iBACd,MAAOtrB,MAAKurB,gBAAgBC,UACvB,IAAGxrB,KAAK+rB,WACb,MAAO/rB,MAAKksB,gBAGlB,KAAM,IAAIhtB,OACR,0BAA4BsoB,GAAK,aAAexnB,KAAKinB,SAAW,YAAcjnB,KAAKmE,OAAS;EAIhGmkB,aAAc,WACZ,KAAMtoB,KAAKmE,OAASnE,KAAKgnB,MAAM,CAC7B,GAAIQ,IAAKxnB,KAAK+mB,OACd,IAAW,MAAPS,IAAqB,OAAPA,IAAsB,OAAPA,IAAsB,OAAPA,GAAhD,CAGAxnB,KAAKynB,MAAM,EACX,QAEF,MAAOznB,MAAKoc,IAAIkM,oBAIdiE,IAAI,SAAShuB,QAAQkB,OAAOJ,SAMlCI,OAAOJ,SACL8sB,2BAA4B,WAE1B,IADA,GAAI3E,IACExnB,KAAKmE,OAASnE,KAAKgnB,MAEvB,GADAQ,GAAKxnB,KAAK+mB,QACA,MAANS,GACFxnB,KAAK+mB,YACA,IAAU,KAANS,GACT,KAGJ,OAAOxnB,MAAKoc,IAAI+P,4BAGlBK,WAAY,WACV,GAAIC,QAASzsB,KAAKmE,MAClB,IACmC,MAAjCnE,KAAKiE,OAAOjE,KAAKmE,OAAS,IACM,MAA7BnE,KAAKiE,OAAOjE,KAAKmE,SACgB,MAAjCnE,KAAKiE,OAAOjE,KAAKmE,OAAS,GAC7B,CAIA,GAHAnE,KAAKmE,QAAU,EAGXnE,KAAK0sB,cACP,KAAM1sB,KAAKmE,OAASnE,KAAKgnB,OACvBhnB,KAAKmE,SACAnE,KAAK0sB,iBAOd,GAAIC,OAAQ3sB,KAAKiE,OAAOjE,KAAKmE,OAAS,EAQtC,IAPc,MAAVwoB,OAA4B,MAAVA,MACpB3sB,KAAKmE,SAELwoB,MAAQ,KAIN3sB,KAAKsrB,iBAAkB,CAEzB,IADA,GAAIsB,UAAW5sB,KAAKmE,OAAS,EACvBnE,KAAKmE,OAASnE,KAAKgnB,OACvBhnB,KAAKmE,SACAnE,KAAK6sB,cAIZ,GAAIC,SAAU9sB,KAAKiE,OAAOC,UAAU0oB,SAAU5sB,KAAKmE,OAAS,EAC5D,MAAKwoB,OAASA,QAAU3sB,KAAKiE,OAAOjE,KAAKmE,OAAS,MAC5CwoB,OAAO3sB,KAAKmE,SAEqB,OAAjCnE,KAAKiE,OAAOjE,KAAKmE,OAAS,IAAgD,OAAjCnE,KAAKiE,OAAOjE,KAAKmE,OAAS,IAWrE,MATAnE,MAAK+sB,cAAgBD;AACrBF,SAAW5sB,KAAKmE,OAASsoB,OACzBzsB,KAAKmE,OAASsoB,OACdzsB,KAAK+nB,QAAQ6E,UACC,MAAVD,MACF3sB,KAAKunB,MAAM,aAEXvnB,KAAKunB,MAAM,cAENvnB,KAAKoc,IAAI4Q,iBAMxB,MADAhtB,MAAKmE,OAASsoB,QACP,GAETL,iBAAkB,WAEhB,IADA,GAAI5E,IACExnB,KAAKmE,OAASnE,KAAKgnB,MAEvB,GADAQ,GAAKxnB,KAAK+mB,QACA,MAANS,GACFxnB,KAAK+mB,YACA,CAAA,GAAU,KAANS,GACT,KACK,IAAU,KAANA,GAAW,CAEpB,GADAA,GAAKxnB,KAAK+mB,QACC,KAANS,IAAaxnB,KAAKsrB,iBAAkB,CACvCtrB,KAAKynB,MAAM,EACX,OAEFznB,KAAKynB,MAAM,OACN,IAAU,KAAND,GAAW,CAEpB,GADAA,GAAKxnB,KAAK+mB,QACA,KAANS,GAAW,CACbxnB,KAAKynB,MAAM,EACX,OAEFznB,KAAKynB,MAAM,IAGf,GAAU,KAAND,GACF,MAAOxnB,MAAKoc,IAAI+P,0BAEhB,IAAIc,QAAS,CAYb,OAXuB,MAAnBjtB,KAAKknB,OAAO,IAAiC,MAAnBlnB,KAAKknB,OAAO,KACxC+F,OAAS,GAEPjtB,KAAKknB,OAAO3nB,OAAS,GACvBS,KAAKmoB,YACHnoB,KAAKoc,IAAI0P,0BACT9rB,KAAKknB,OAAO3nB,OAAS0tB,QAGzBjtB,KAAKynB,MAAMznB,KAAKknB,OAAO3nB,OAAS0tB,QAChCjtB,KAAKunB,MAAM,oBACJvnB,KAAKknB,QAKhBgG,YAAa,WAEX,GAAIltB,KAAKiE,OAAOC,UAAUlE,KAAKmE,OAAS,EAAGnE,KAAKmE,OAAS,EAAInE,KAAK+sB,cAAcxtB,UAAYS,KAAK+sB,cAAe,CAC9G,GAAIvF,IAAKxnB,KAAKiE,OAAOjE,KAAKmE,OAAS,EAAInE,KAAK+sB,cAAcxtB,OAC1D,IAAW,OAAPioB,IAAsB,OAAPA,IAAsB,MAAPA,GAChC,OAAO;CAGX,OAAO,GAGT2F,eAAgB,WAEd,GAAIntB,KAAKktB,cAIP,MAFAltB,MAAK+nB,QAAQ/nB,KAAK+sB,cAAcxtB,QAChCS,KAAK8oB,WACE9oB,KAAKoc,IAAIgR,aAIlB,KADA,GAAI5F,IAAKxnB,KAAKiE,OAAOjE,KAAKmE,OAAS,GAC7BnE,KAAKmE,OAASnE,KAAKgnB,MACvB,GAAW,OAAPQ,IAAsB,OAAPA,IAEjB,GADAA,GAAKxnB,KAAK+mB,QACN/mB,KAAKktB,cAKP,MAJAltB,MAAKynB,MAAM,GAAGqB,WACd9oB,KAAKmoB,YACHnoB,KAAKoc,IAAIgR,cAAeptB,KAAK+sB,cAAcxtB,QAEtCS,KAAKoc,IAAI0P,8BAGlBtE,IAAKxnB,KAAK+mB,OAId,OAAO/mB,MAAKoc,IAAI0P,2BAGlBuB,gBAAiB,WAEf,GAAI7F,IAAKxnB,KAAK+mB,OACd,IAAI/mB,KAAKktB,cAGP,MAFAltB,MAAK+nB,QAAQ/nB,KAAK+sB,cAAcxtB,OAAS,GACzCS,KAAK8oB,WACE9oB,KAAKoc,IAAIgR,aAGlB,MAAMptB,KAAKmE,OAASnE,KAAKgnB,MASvB,GAPW,OAAPQ,KACFA,GAAKxnB,KAAK+mB,QACC,OAAPS,IAAsB,OAAPA,KACjBA,GAAKxnB,KAAK+mB,UAIH,OAAPS,IAAsB,OAAPA,IAEjB,GADAA,GAAKxnB,KAAK+mB,QACN/mB,KAAKktB,cAKP,MAJAltB,MAAKynB,MAAM,GAAGqB,WACd9oB,KAAKmoB,YACHnoB,KAAKoc,IAAIgR,cAAeptB,KAAK+sB,cAAcxtB,QAEtCS,KAAKoc,IAAI0P,8BAEb,IAAW,MAAPtE,GAAY,CAErB,GADAA,GAAKxnB,KAAK+mB,QACC,MAAPS,GAGF,MADAxnB,MAAKunB,MAAM,0BACPvnB,KAAKknB,OAAO3nB,OAAS,GACvBS,KAAKmoB,YAAYnoB,KAAKoc,IAAIkR,2BAA4B;AACtDttB,KAAKynB,MAAM,GACJznB,KAAKoc,IAAI0P,2BAET9rB,KAAKoc,IAAIkR,0BAEb,IAAIttB,KAAKsrB,iBAAkB,CAEhC,GAAIsB,UAAW5sB,KAAKmE,OAChBkkB,KAAOroB,KAAKutB,kBAChB,OAAIvtB,MAAKknB,OAAO3nB,OAASS,KAAKmE,OAASyoB,SAAW,GAChD5sB,KAAKmoB,YAAYE,KAAMroB,KAAKmE,OAASyoB,SAAW,GAChD5sB,KAAKynB,MAAMznB,KAAKmE,OAASyoB,SAAW,GAC7B5sB,KAAKoc,IAAI0P,2BAETzD,UAIN,IAAW,MAAPb,IAET,GADAA,GAAKxnB,KAAK+mB,QACC,MAAPS,GAGF,MADAxnB,MAAKunB,MAAM,mBACPvnB,KAAKknB,OAAO3nB,OAAS,GACvBS,KAAKmoB,YAAYnoB,KAAKoc,IAAIoR,aAAc,GACxCxtB,KAAKynB,MAAM,GACJznB,KAAKoc,IAAI0P,4BAEhB9rB,KAAKynB,MAAM,GACJznB,KAAKoc,IAAIoR,kBAIpBhG,IAAKxnB,KAAK+mB,OAKd,OAAO/mB,MAAKoc,IAAI0P,2BAGlByB,iBAAkB,WAGhB,GAFAvtB,KAAKurB,gBACL/D,GAAKxnB,KAAK+mB,QACA,KAANS,GAGF,MAFAxnB,MAAKynB,MAAM,GACXznB,KAAKunB,MAAM,iBACJvnB,KAAKoc,IAAIyP,UACX,IAAW,MAAPrE,GAAY,CACrB,GAAqB,MAAjBxnB,KAAK+mB,QAMP,MALA/mB,MAAK+mB,QACD/mB,KAAKsrB,kBACPtrB,KAAKunB,MAAM,2BAEbvnB,KAAKynB,MAAM,GACJznB,KAAKoc,IAAIyP,UAEhB7rB,MAAKynB,MAAM,OAGbznB,MAAKynB,MAAM,EAEZ,OAAOznB,MAAKoc,IAAIyP,YAGnB4B,kBAAmB,WAEjB,GAAIjG,IAAKxnB,KAAK+mB;AACd,GAAW,MAAPS,GAAY,CAEd,GADAA,GAAKxnB,KAAK+mB,QACC,MAAPS,GAEF,MADAxnB,MAAKunB,MAAM,0BACJvnB,KAAKoc,IAAIkR,0BACX,IAAIttB,KAAKsrB,iBAAkB,CAChC,GAAIlP,KAAMpc,KAAKutB,kBACf,OAAOnR,UAEJ,IAAW,MAAPoL,IACT,GAAiC,MAA7BxnB,KAAKiE,OAAOjE,KAAKmE,QAEnB,MADAnE,MAAKunB,MAAM,mBACJvnB,KAAKoc,IAAIoR,iBAEb,IAAW,MAAPhG,GAET,MADAxnB,MAAK8oB,WACE,GAIT,MAAM9oB,KAAKmE,OAASnE,KAAKgnB,MAAM,CAC7B,GAAW,OAAPQ,GACFxnB,KAAK+mB,YACA,CAAA,GAAW,MAAPS,GAAY,CACrBxnB,KAAKynB,MAAM,GACXznB,KAAK8oB,WACL9oB,KAAKmoB,YAAY,IAAK,EACtB,OACK,GAAW,MAAPX,GAAY,CAErB,GADAA,GAAKxnB,KAAK+mB,QACC,MAAPS,GAEF,MADAxnB,MAAKunB,MAAM,0BACPvnB,KAAKknB,OAAO3nB,OAAS,GACvBS,KAAKmoB,YAAYnoB,KAAKoc,IAAIkR,2BAA4B,GACtDttB,KAAKynB,MAAM,GACJznB,KAAKoc,IAAI0P,2BAET9rB,KAAKoc,IAAIkR,0BAEb,IAAIttB,KAAKsrB,iBAAkB,CAEhC,GAAIsB,UAAW5sB,KAAKmE,OAChBkkB,KAAOroB,KAAKutB,kBAChB,OAAIvtB,MAAKknB,OAAO3nB,OAASS,KAAKmE,OAASyoB,SAAW,GAChD5sB,KAAKmoB,YAAYE,KAAMroB,KAAKmE,OAASyoB,SAAW,GAChD5sB,KAAKynB,MAAMznB,KAAKmE,OAASyoB,SAAW,GAC7B5sB,KAAKoc,IAAI0P,2BAETzD,KAGXroB,KAAKynB,MAAM,OACN,IAAW,MAAPD,GAAY,CAErB,GADAA,GAAKxnB,KAAK+mB;AACC,MAAPS,GAGF,MADAxnB,MAAKunB,MAAM,mBACPvnB,KAAKknB,OAAO3nB,OAAS,GACvBS,KAAKmoB,YAAYnoB,KAAKoc,IAAIoR,aAAc,GACxCxtB,KAAKynB,MAAM,GACJznB,KAAKoc,IAAI0P,4BAEhB9rB,KAAKynB,MAAM,GACJznB,KAAKoc,IAAIoR,aAGpBxtB,MAAKynB,MAAM,IAEbD,GAAKxnB,KAAK+mB,QAEZ,MAAO/mB,MAAKoc,IAAI0P,2BAIlB4B,sBAAuB,WAErB,GAAIlG,IAAKxnB,KAAK+mB,OACd,IAAW,MAAPS,GAAY,CAEd,GADAA,GAAKxnB,KAAK+mB,QACC,MAAPS,GAEF,MADAxnB,MAAKunB,MAAM,0BACJvnB,KAAKoc,IAAIkR,0BACX,IAAIttB,KAAKsrB,iBAAkB,CAChC,GAAIlP,KAAMpc,KAAKutB,kBACf,OAAOnR,UAEJ,IAAW,MAAPoL,IACT,GAAiC,MAA7BxnB,KAAKiE,OAAOjE,KAAKmE,QAEnB,MADAnE,MAAKunB,MAAM,mBACJvnB,KAAKoc,IAAIoR,iBAEb,IAAW,MAAPhG,GAET,MADAxnB,MAAK8oB,WACE,GAIT,MAAM9oB,KAAKmE,OAASnE,KAAKgnB,MAAM,CAC7B,GAAW,OAAPQ,GACFxnB,KAAK+mB,YACA,CAAA,GAAW,MAAPS,GAAY,CACrBxnB,KAAKynB,MAAM,GACXznB,KAAK8oB,WACL9oB,KAAKmoB,YAAY,IAAK,EACtB,OACK,GAAW,MAAPX,GAAY,CAErB,GADAA,GAAKxnB,KAAK+mB,QACC,MAAPS,GAEF,MADAxnB,MAAKunB,MAAM,0BACPvnB,KAAKknB,OAAO3nB,OAAS,GACvBS,KAAKmoB,YAAYnoB,KAAKoc,IAAIkR,2BAA4B,GACtDttB,KAAKynB,MAAM,GACJznB,KAAKoc,IAAI0P,2BAET9rB,KAAKoc,IAAIkR;AAEb,GAAIttB,KAAKsrB,iBAAkB,CAEhC,GAAIsB,UAAW5sB,KAAKmE,OAChBkkB,KAAOroB,KAAKutB,kBAChB,OAAIvtB,MAAKknB,OAAO3nB,OAASS,KAAKmE,OAASyoB,SAAW,GAChD5sB,KAAKmoB,YAAYE,KAAMroB,KAAKmE,OAASyoB,SAAW,GAChD5sB,KAAKynB,MAAMznB,KAAKmE,OAASyoB,SAAW,GAC7B5sB,KAAKoc,IAAI0P,2BAETzD,KAGXroB,KAAKynB,MAAM,OACN,IAAW,MAAPD,GAAY,CAErB,GADAA,GAAKxnB,KAAK+mB,QACC,MAAPS,GAGF,MADAxnB,MAAKunB,MAAM,mBACPvnB,KAAKknB,OAAO3nB,OAAS,GACvBS,KAAKmoB,YAAYnoB,KAAKoc,IAAIoR,aAAc,GACxCxtB,KAAKynB,MAAM,GACJznB,KAAKoc,IAAI0P,4BAGhB9rB,KAAKynB,MAAM,GACJznB,KAAKoc,IAAIoR,aAGhBhG,KAAIxnB,KAAKynB,MAAM,IAErBD,GAAKxnB,KAAK+mB,QAEZ,MAAO/mB,MAAKoc,IAAI0P,iCAId6B,IAAI,SAASpvB,QAAQkB,OAAOJ,SAMlCI,OAAOJ,SACLmsB,SAAU,WACR,GAAI5Z,OAAQ5R,KAAKknB,OAAO/hB,cACpByoB,GAAK5tB,KAAK+c,SAASnL,MACvB,KAAKgc,GACH,GAAc,UAAVhc,MACE5R,KAAK2nB,SAAS,UAChB3nB,KAAK+nB,QAAQ,GACb6F,GAAK5tB,KAAKoc,IAAIyR,cAEdD,GAAK5tB,KAAKoc,IAAI0R,YAIhB,IADAF,GAAK5tB,KAAKoc,IAAIoP,SACA,MAAV5Z,OAA2B,MAAVA,MAAe,CAClC,GAAI4V,IAAKxnB,KAAK+mB,MAAM,EACpB,IAAW,MAAPS,GACF,MAAOxnB,MAAKosB,kBACP,IAAW,MAAP5E,GACT,MAAOxnB,MAAKmsB,4BACH3E,KACTxnB,KAAKynB,MAAM,GAKnB,MAAOmG;EAGT1B,cAAe,WACb,GAAI1E,IAAKxnB,KAAKiE,OAAOjE,KAAKmE,OAAS,GAC/B2O,GAAK9S,KAAK+tB,eAAevG,GAC7B,OAAI1U,IACKA,GAAGrR,MAAMzB,SAETA,KAAKknB,QAIhB6G,gBACEC,EAAK,WAEH,MADAhuB,MAAKmE,SACDnE,KAAKsrB,kBACPtrB,KAAKmE,SACLnE,KAAKurB,gBACEvrB,KAAKoc,IAAIyP,aAEhB7rB,KAAKmE,SACE,MAGX8pB,IAAK,WACH,GAAIC,OAAQluB,KAAKiE,OAAOjE,KAAKmE,OAC7B,OAAc,MAAV+pB,OACFluB,KAAKunB,MAAM,2BAA2BR,QAC/B/mB,KAAKoc,IAAIiP,mBACG,MAAV6C,OACTluB,KAAK+mB,QACE/mB,KAAKoc,IAAI+R,OACG,MAAVD,OACTluB,KAAK+mB,QACE/mB,KAAKoc,IAAIgS,eAEX,KAETC,KAAM,WACJ,MAAOruB,MAAKoc,IAAIkS,gBAElBC,IAAK,WACH,MAAiC,MAA7BvuB,KAAKiE,OAAOjE,KAAKmE,SACnBnE,KAAK+mB,QACE/mB,KAAKoc,IAAIoS,aAEX,KAETC,IAAK,WACH,MAAiC,MAA7BzuB,KAAKiE,OAAOjE,KAAKmE,SACnBnE,KAAK+mB,QACE/mB,KAAKoc,IAAIsS,gBAET,KAGXC,IAAK,WACH,GAAIC,SAAU5uB,KAAKmE,MAKnB,IAJAnE,KAAK+mB,QACD/mB,KAAK0sB,eACP1sB,KAAK6uB,mBAAmB9H,QAEtB/mB,KAAKsrB,iBAAkB,CACzB,GAAIwD,OAAQ9uB,KAAKknB,OAAO3nB,MACxBS,MAAKurB,eACL,IAAIwD,WAAY/uB,KAAKknB,OAAOhjB,UAAU4qB,MAAQ,GAAG3pB,cAC7C6pB,OAAShvB,KAAK4lB,aAAamJ;AAC/B,GAAIC,SACFhvB,KAAK+mB,QACD/mB,KAAK0sB,eACP1sB,KAAK6uB,mBAAmB9H,QAEW,MAAjC/mB,KAAKiE,OAAOjE,KAAKmE,OAAS,IAC5B,MAAO6qB,QAMb,MADAhvB,MAAKynB,MAAMznB,KAAKmE,OAASyqB,SAClB,KAETK,IAAK,WACH,GAAIf,OAAQluB,KAAKiE,OAAOjE,KAAKmE,OAC7B,OAAc,MAAV+pB,OACFluB,KAAK+mB,QACE/mB,KAAKoc,IAAI8S,gBACG,MAAVhB,MAC4B,MAAjCluB,KAAKiE,OAAOjE,KAAKmE,OAAS,IAC5BnE,KAAK+nB,QAAQ,GACN/nB,KAAKoc,IAAI+S,iBAEhBnvB,KAAK+mB,QACE/mB,KAAKoc,IAAIgT,YAGb,KAETC,IAAK,WACH,GAAInB,OAAQluB,KAAKiE,OAAOjE,KAAKmE,OAC7B,OAAc,MAAV+pB,OACFluB,KAAK+mB,QACE/mB,KAAKoc,IAAIkT,OACG,MAAVpB,OACTluB,KAAK+mB,QACE/mB,KAAKoc,IAAImT,cAEX,KAETC,IAAK,WACH,MAAiC,MAA7BxvB,KAAKiE,OAAOjE,KAAKmE,QACkB,MAAjCnE,KAAKiE,OAAOjE,KAAKmE,OAAS,IAC5BnE,KAAK+nB,QAAQ,GACN/nB,KAAKoc,IAAIqT,qBAEhBzvB,KAAK+mB,QACE/mB,KAAKoc,IAAIsT,gBAGb,KAETC,IAAK,WACH,MAAiC,MAA7B3vB,KAAKiE,OAAOjE,KAAKmE,SACnBnE,KAAK+mB,QACE/mB,KAAKoc,IAAIwT,YAEX,KAETC,IAAK,WACH,GAAI3B,OAAQluB,KAAKiE,OAAOjE,KAAKmE,OAC7B,OAAc,MAAV+pB,OACFA,MAAQluB,KAAKiE,OAAOjE,KAAKmE,OAAS,GACpB,MAAV+pB,OACFluB,KAAK+nB,QAAQ,GACN/nB,KAAKoc,IAAI0T,YACG,MAAV5B,OACLluB,KAAKwsB,aACAxsB,KAAKoc,IAAI4Q,iBAGpBhtB,KAAK+mB;AACE/mB,KAAKoc,IAAI2T,OACG,MAAV7B,OACTluB,KAAK+mB,QAC4B,MAA7B/mB,KAAKiE,OAAOjE,KAAKmE,SACnBnE,KAAK+mB,QACE/mB,KAAKoc,IAAI4T,aAEThwB,KAAKoc,IAAI6T,uBAEC,MAAV/B,OACTluB,KAAK+mB,QACE/mB,KAAKoc,IAAIsT,gBAEX,KAETQ,IAAK,WACH,GAAIhC,OAAQluB,KAAKiE,OAAOjE,KAAKmE,OAC7B,OAAc,MAAV+pB,OACFluB,KAAK+mB,QACE/mB,KAAKoc,IAAI+T,uBACG,MAAVjC,OACTA,MAAQluB,KAAKiE,OAAOjE,KAAKmE,OAAS,GACpB,MAAV+pB,OACFluB,KAAK+nB,QAAQ,GACN/nB,KAAKoc,IAAIgU,aAEhBpwB,KAAK+mB,QACE/mB,KAAKoc,IAAIiU,OAGb,KAETC,IAAK,WACH,GAAIpC,OAAQluB,KAAKiE,OAAOjE,KAAKmE,OAC7B,OAAc,MAAV+pB,OACFluB,KAAK+mB,QACE/mB,KAAKoc,IAAImU,aACE,MAAVrC,OACRluB,KAAK+mB,QAC4B,MAA7B/mB,KAAKiE,OAAOjE,KAAKmE,SACnBnE,KAAK+mB,QACE/mB,KAAKoc,IAAIoU,aAETxwB,KAAKoc,IAAIqU,OAGb,KAETC,IAAK,WACH,GAAIxC,OAAQluB,KAAKiE,OAAOjE,KAAKmE,OAC7B,OAAc,MAAV+pB,OACFluB,KAAK+mB,QACE/mB,KAAKoc,IAAIuU,gBACG,MAAVzC,OAAkD,MAAjCluB,KAAKiE,OAAOjE,KAAKmE,OAAS,IACpDnE,KAAK+nB,QAAQ,GACN/nB,KAAKoc,IAAIwU,YAEX,KAETC,IAAK,WACH,MAAiC,MAA7B7wB,KAAKiE,OAAOjE,KAAKmE,SACnBnE,KAAK+mB,QACE/mB,KAAKoc,IAAI0U,aAEX,KAETC,IAAK,WACH,GAAI7C,OAAQluB,KAAKiE,OAAOjE,KAAKmE,OAC7B,OAAc,MAAV+pB,OACFluB,KAAK+mB;AACE/mB,KAAKoc,IAAI4U,aACG,MAAV9C,OACTluB,KAAK+mB,QACE/mB,KAAKoc,IAAI6U,eAEX,KAETC,IAAK,WACH,GAAIhD,OAAQluB,KAAKiE,OAAOjE,KAAKmE,OAC7B,OAAc,MAAV+pB,OACFluB,KAAK+mB,QACE/mB,KAAKoc,IAAI+U,YACG,MAAVjD,OACTluB,KAAK+mB,QACE/mB,KAAKoc,IAAIgV,cAEX,KAETC,IAAK,WACH,MAAiC,MAA7BrxB,KAAKiE,OAAOjE,KAAKmE,SACnBnE,KAAK+mB,QACE/mB,KAAKoc,IAAIkV,aAEX,YAKPC,IAAI,SAAShzB,QAAQkB,OAAOJ,SAMjC,GAAIgd,QAAS,4BAEd5c,QAAOJ,SAGLyrB,OAAQ,WACN,GAAItD,IAAKxnB,KAAKiE,OAAOutB,WAAWxxB,KAAKmE,OAAS,EAC9C,OAAOqjB,IAAK,IAAMA,GAAK,IAIzBqF,SAAU,WACR,GAAIrF,IAAKxnB,KAAKiE,OAAOutB,WAAWxxB,KAAKmE,OAAS,EAC9C,OAAQqjB,IAAK,IAAMA,GAAK,KAClBA,GAAK,IAAMA,GAAK,IACV,KAAPA,IACCA,GAAK,IAAMA,GAAK,IACjBA,GAAK,KAKZ8D,eAAgB,WACd,GAAI9D,IAAKxnB,KAAKiE,OAAOutB,WAAWxxB,KAAKmE,OAAS,EAC9C,OAAQqjB,IAAK,IAAMA,GAAK,KAClBA,GAAK,IAAMA,GAAK,IACV,KAAPA,IACCA,GAAK,KAMb+D,cAAe,WACb,KAAMvrB,KAAKmE,OAASnE,KAAKgnB,MAEvB,GADAhnB,KAAK+mB,SACA/mB,KAAK6sB,WAAY,CACpB7sB,KAAKynB,MAAM,EACX,OAGJ,MAAOznB,OAIT+rB,SAAU,WACR,GAAIvE,IAAKxnB,KAAKiE,OAAOjE,KAAKmE,OAAS,EACnC,OAAOkY,QAAOoV,QAAQjK,OAAQ,GAGhCwC,cAAe,WACb,GAAIxC,IAAKxnB,KAAKiE,OAAOjE,KAAKmE,OAAS;AACnC,MAAc,MAAPqjB,IAAqB,OAAPA,IAAsB,OAAPA,IAAsB,OAAPA,IAGrDkF,YAAa,WACX,GAAIlF,IAAKxnB,KAAKiE,OAAOjE,KAAKmE,OAAS,EACnC,OAAc,MAAPqjB,IAAqB,OAAPA,IAGvBqH,iBAAkB,WAChB,KAAM7uB,KAAKmE,OAASnE,KAAKgnB,MAEvB,GADAhnB,KAAK+mB,SACA/mB,KAAK0sB,cAAe,CACvB1sB,KAAKynB,MAAM,EACX,OAGJ,MAAOznB,OAGT2qB,OAAQ,WACN,GAAInD,IAAKxnB,KAAKiE,OAAOutB,WAAWxxB,KAAKmE,OAAS,EAC9C,OAAQqjB,IAAK,IAAMA,GAAK,IAAQA,GAAK,IAAMA,GAAK,IAAQA,GAAK,IAAMA,GAAK,WAItEkK,KAAK,SAASnzB,QAAQkB,OAAOJ,SAUnC,QAASsyB,UAASjzB,GAChB,MAAY,KAALA,GAAiB,KAALA,IAAakzB,MAAMC,WAAWnzB,KAAOozB,SAASpzB,GAcnE,GAAI0E,QAAS,SAASC,MAAO0uB,KAC3B/xB,KAAKqD,MAAQA,MACbrD,KAAK+xB,IAAMA,IACX/xB,KAAKoc,IAAM/Y,MAAM+Y,IACjBpc,KAAKuc,IAAMlZ,MAAMkZ,IACjBvc,KAAK4R,MAAQ,KACb5R,KAAKgyB,KAAO,KACZhyB,KAAKwc,OAAQ,EACbxc,KAAKiyB,YAAa,EAClBjyB,KAAKkyB,gBAAiB,EACtBlyB,KAAKmyB,SACHC,UACEpyB,KAAKoc,IAAIyP,WACT,IAAK,IACL7rB,KAAKoc,IAAIkS,eACTtuB,KAAKoc,IAAIoP,SACTxrB,KAAKoc,IAAImH,YACTvjB,KAAKoc,IAAIiI,UAEXgO,QACEryB,KAAKoc,IAAI+P,2BACTnsB,KAAKoc,IAAI4Q,gBACThtB,KAAKoc,IAAI6O,UACTjrB,KAAKoc,IAAI4O,UACThrB,KAAKoc,IAAI+I,QAAQ,IACjBnlB,KAAKoc,IAAIa,UACTjd,KAAKoc,IAAIe,UACTnd,KAAKoc,IAAIiB,SACTrd,KAAKoc,IAAImB,WACTvd,KAAKoc,IAAIqB,OACTzd,KAAKoc,IAAIuB,OACT3d,KAAKoc,IAAIyB,MACT7d,KAAKoc,IAAI2B,OACT,IACA,KACA,KACA,IACA/d,KAAKoc,IAAIkS;AAEXgE,eACItyB,KAAKoc,IAAIa,UACTjd,KAAKoc,IAAIe,UACTnd,KAAKoc,IAAIiB,SACTrd,KAAKoc,IAAImB,WACTvd,KAAKoc,IAAIqB,OACTzd,KAAKoc,IAAIuB,OACT3d,KAAKoc,IAAIyB,MACT7d,KAAKoc,IAAI2B,QAEbwU,gBACEvyB,KAAKoc,IAAI2I,SACT/kB,KAAKoc,IAAIuI,UACT3kB,KAAKoc,IAAIyI,YACT7kB,KAAKoc,IAAIiI,SACTrkB,KAAKoc,IAAImI,WACTvkB,KAAKoc,IAAIqI,SAEX+N,KACE,IACAxyB,KAAKoc,IAAIkQ,YACTtsB,KAAKuc,IACLvc,KAAKoc,IAAIgO,eAEXqI,MACE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IACxBzyB,KAAKoc,IAAI8I,OACTllB,KAAKoc,IAAIsG,QACT1iB,KAAKoc,IAAIkT,MACTtvB,KAAKoc,IAAI+R,MACTnuB,KAAKoc,IAAIoG,MACTxiB,KAAKoc,IAAI2H,QACT/jB,KAAKoc,IAAI6H,QACTjkB,KAAKoc,IAAI4G,UACThjB,KAAKoc,IAAI8G,eACTljB,KAAKoc,IAAI+G,UACTnjB,KAAKoc,IAAIiH,eACTrjB,KAAKoc,IAAI0G,OACT9iB,KAAKoc,IAAI0J,WACT9lB,KAAKoc,IAAI6J,cACTjmB,KAAKoc,IAAIiK,cACTrmB,KAAKoc,IAAImK,aACTvmB,KAAKoc,IAAIqK,cACTzmB,KAAKoc,IAAIuK,YACT3mB,KAAKoc,IAAIyK,aACT7mB,KAAKoc,IAAI6B,OACTje,KAAKoc,IAAI2F,QACT/hB,KAAKoc,IAAI0R,QACT9tB,KAAKoc,IAAIiI,SACTrkB,KAAKoc,IAAIgC,WAETpe,KAAKoc,IAAIyP,WACT,IACA7rB,KAAKoc,IAAIkS,eACTtuB,KAAKoc,IAAIoP,SAETxrB,KAAKoc,IAAIoP,SACTxrB,KAAKoc,IAAI+P,2BACTnsB,KAAKoc,IAAI4Q,gBACThtB,KAAKoc,IAAI6O,UACTjrB,KAAKoc,IAAI4O,UACThrB,KAAKoc,IAAI+I,QAAQ,IACjBnlB,KAAKoc,IAAIa,UACTjd,KAAKoc,IAAIe,UACTnd,KAAKoc,IAAIiB,SACTrd,KAAKoc,IAAImB,WACTvd,KAAKoc,IAAIqB,OACTzd,KAAKoc,IAAIuB,OACT3d,KAAKoc,IAAIyB,MACT7d,KAAKoc,IAAI2B;EAQf3a,QAAO5B,UAAUkxB,aAAe,SAAS9gB,OACvC,MAAK+f,UAAS/f,OAGRA,OAAS5R,KAAKuc,IAAY,wBACvBvc,KAAKqD,MAAM8Y,OAAOE,OAAO4M,OAAOrX,OAHhC,IAAMA,MAAQ,KAUzBxO,OAAO5B,UAAUmxB,MAAQ,SAASxzB,KAAMyzB,UACtC5yB,KAAK6yB,WACL7yB,KAAK4yB,SAAWA,UAAY,OAC5B5yB,KAAK8yB,kBAAoB,IACzB9yB,KAAKqD,MAAMyjB,SAAS3nB,MACpBa,KAAKqD,MAAMqZ,eAAiB1c,KAAKiyB,WACjCjyB,KAAKT,OAASS,KAAKqD,MAAMY,OAAO1E,OAChCS,KAAK+yB,WAAY,CACjB,IAAIC,SAAUhzB,KAAK+xB,IAAIruB,QAAQ,UAAW1D,MACtCizB,SAEJ,KADAjzB,KAAKkzB,mBACClzB,KAAK4R,OAAS5R,KAAKuc,KAAK,CAC5B,GAAI/X,MAAOxE,KAAKmzB,YACH,QAAT3uB,MAA0B4uB,SAAT5uB,OACfnD,MAAMgyB,QAAQ7uB,MAChByuB,OAASA,OAAOxyB,OAAO+D,MAEvByuB,OAAO1xB,KAAKiD,OAIlB,MAAOwuB,SAAQC,OAAQjzB,KAAK6yB,UAM9BzvB,OAAO5B,UAAU8xB,WAAa,SAAS3hB,QAAS4hB,UAAWC,OAAQ5hB,OAEjE,GADAD,SAAW,YAAc3R,KAAKqD,MAAMC,OAAOC,YACtCvD,KAAKkyB,eAAgB,CACxB,GAAIuB,KAAM,GAAIC,aACZ/hB,QAAS3R,KAAK4yB,SAAU5yB,KAAKqD,MAAMC,OAAOC,WAK5C,MAHAkwB,KAAIE,WAAa3zB,KAAKqD,MAAMC,OAAOC,WACnCkwB,IAAIG,SAAW5zB,KAAK4yB,SACpBa,IAAII,aAAe7zB,KAAKqD,MAAMC,OAAOE,aAC/BiwB,IAGR,GAAIjvB,MAAOxE,KAAK+xB,IAAIruB,QAAQ,QAAS1D,MACnC2R,QAASC,MAAO5R,KAAKqD,MAAMC,OAAOC,WAAYiwB;AAGhD,MADAxzB,MAAK6yB,QAAQtxB,KAAKiD,MACXA,MAMTpB,OAAO5B,UAAUsyB,MAAQ,SAASN,QAChC,GAAIO,KAAM,4BAEV,IADAniB,MAAQ5R,KAAK0yB,aAAa1yB,KAAK4R,OAC3B5R,KAAK4R,QAAU5R,KAAKuc,IAAK,CAC3B,GAAIoV,SAAS3xB,KAAK4R,OAAQ,CACxB,GAAIoiB,QAASh0B,KAAK4nB,MACdoM,QAAOz0B,OAAS,KAClBy0B,OAASA,OAAO9vB,UAAU,EAAG,GAAK,OAEpC0N,MAAQ,IAAKoiB,OAAO,MAAOpiB,MAAM,IAEnCmiB,KAAO,gBAAkBniB,MAE3B,GAAI2hB,WAAY,EAQhB,OAPIC,UAAWnyB,MAAMgyB,QAAQG,WACvB7B,SAAS6B,SAA6B,IAAlBA,OAAOj0B,UAC7Bg0B,UAAY,eAAiBvzB,KAAK0yB,aAAac,SAEjDO,KAAOR,WAETvzB,KAAK4R,QAAU5R,KAAKuc,IACbvc,KAAKszB,WACVS,IACAR,UACAC,OACA5hB,QAOJxO,OAAO5B,UAAUgD,KAAO,SAAShC,MAC/B,MAAOxC,MAAK+xB,IAAIruB,QAAQlB,KAAMxC,OAOhCoD,OAAO5B,UAAUyyB,qBAAuB,WACtC,GAAmB,MAAfj0B,KAAK4R,MACP5R,KAAKkzB,mBACDlzB,KAAK4R,QAAU5R,KAAKoc,IAAIkQ,aAE1BtsB,KAAKkzB,uBAEF,IAAIlzB,KAAK4R,QAAU5R,KAAKoc,IAAIkQ,YACjCtsB,KAAKkzB,uBACA,IAAIlzB,KAAK4R,QAAU5R,KAAKoc,IAAIgO,eAAiBpqB,KAAK4R,QAAU5R,KAAKuc,IAEtE,MADAvc,MAAK8zB,MAAM,MACJ,CAET,QAAO,EAIT,IAAII,cAAe,cAAe,wBAAyB;AAC3D9wB,OAAO5B,UAAU2yB,QAAU,WAGzB,IAAK,GADDtiB,MADAuX,OAAQ,GAAKlqB,QAASkqB,MAAMgL,MAAM,MAE7BjwB,OAAS,EAAGA,OAASilB,MAAM7pB,OAAQ4E,SAAW,CACrD0N,KAAOuX,MAAMjlB,QAAQkwB,MAErB,KAAI,GADAC,QAAQ,EACJt1B,EAAI,EAAGA,EAAIk1B,YAAY30B,OAAQP,IACrC,GAAI6S,KAAK3N,UAAU,EAAG,EAAIgwB,YAAYl1B,GAAGO,UAAY20B,YAAYl1B,GAAI,CACnEs1B,OAAQ,CACR,OAGJ,IAAKA,MACH,MAYJ,MARApL,SAAQC,IACN,QACEnpB,KAAKqD,MAAMC,OAAOC,WAClB,MACAvD,KAAK0yB,aAAa1yB,KAAK4R,OACvB,IAAM5R,KAAKqD,MAAM6jB,OAAS,SAChBrV,MAEP7R,MAgBToD,OAAO5B,UAAUgyB,OAAS,SAAS5hB,OACjC,GAAIvQ,MAAMgyB,QAAQzhB,QAChB,GAAIA,MAAM6f,QAAQzxB,KAAK4R,UAAW,EAEhC,MADA5R,MAAK8zB,MAAMliB,QACJ,MAEJ,IAAI5R,KAAK4R,OAASA,MAEvB,MADA5R,MAAK8zB,MAAMliB,QACJ,CAET,QAAO,GAOTxO,OAAO5B,UAAUomB,KAAO,WACtB,MAAO5nB,MAAKqD,MAAM6jB,QAIpB9jB,OAAO5B,UAAU6mB,KAAO,WAStB,MARIroB,MAAKwc,OACPxc,KAAKm0B,UACLn0B,KAAKwc,OAAQ,EACbxc,KAAKkzB,mBAAmBqB,iBACxBv0B,KAAKwc,OAAQ,GAEbxc,KAAKkzB,mBAAmBqB,iBAEnBv0B,MAIToD,OAAO5B,UAAU+yB,eAAiB,WAEhC,IADIv0B,KAAKwc,OAAOxc,KAAKm0B,UACfn0B,KAAK4R,QAAU5R,KAAKoc,IAAImM,WAAavoB,KAAK4R,QAAU5R,KAAKoc,IAAIoM,eAEjExoB,KAAKkzB;AAEP,MAAOlzB,OAIToD,OAAO5B,UAAU0xB,iBAAmB,WAQlC,MAPAlzB,MAAKgyB,MACHhyB,KAAKqD,MAAMC,OAAOC,WAClBvD,KAAKqD,MAAMC,OAAOE,aAClBxD,KAAKqD,MAAMc,QAEbnE,KAAK4R,MAAQ5R,KAAKqD,MAAM+kB,OAASpoB,KAAKuc,IAClCvc,KAAKwc,OAAOxc,KAAKm0B,UACdn0B,MAMToD,OAAO5B,UAAUgzB,GAAK,SAAS3oB,MAC7B,MAAIxK,OAAMgyB,QAAQxnB,MACTA,KAAK4lB,QAAQzxB,KAAK4R,UAAW,EAE7B5R,KAAKmyB,QAAQtmB,MAAM4lB,QAAQzxB,KAAK4R,SAAU,IAMnDrT,QAAQ,qBACRA,QAAQ,qBACRA,QAAQ,uBACRA,QAAQ,oBACRA,QAAQ,wBACRA,QAAQ,kBACRA,QAAQ,qBACRA,QAAQ,oBACRA,QAAQ,yBACRA,QAAQ,sBACRA,QAAQ,yBACRA,QAAQ,sBACRA,QAAQ,mBACRA,QAAQ,qBACRA,QAAQ,yBACRyG,QAAQ,SAAU8I,KAClB,IAAI,GAAIub,KAAKvb,KACX1K,OAAO5B,UAAU6nB,GAAKvb,IAAIub,KAI9B5pB,OAAOJ,QAAU+D,SAEdqxB,oBAAoB,IAAIC,oBAAoB,IAAIC,sBAAsB,IAAIC,mBAAmB,IAAIC,uBAAuB;AAAIC,iBAAiB,IAAIC,oBAAoB,IAAIC,mBAAmB,IAAIC,wBAAwB,IAAIC,qBAAqB,IAAIC,wBAAwB,IAAIC,qBAAqB,IAAIC,kBAAkB,IAAIC,oBAAoB,IAAIC,uBAAuB,MAAMC,KAAK,SAASj3B,QAAQkB,OAAOJ,SAMrZ,GAAIo2B,WAAY,QACZC,WAAa,OAEjBj2B,QAAOJ,SAQLs2B,WAAY,WACV,GAAInC,QAAS,KACTxoB,WAAY,EACZC,SACAxG,OAASzE,KAAKwE,KAAKixB,UAUvB,IARIz1B,KAAK4R,QAAU5R,KAAKoc,IAAI+I,SAC1BnlB,KAAKqoB,OAAOmL,OAAO,KACnBA,OAAS,MAETxoB,WAAY,EACZwoB,OAAS,KAGPxzB,KAAKqoB,OAAOzW,OAAS4hB,OACvB,KAAMxzB,KAAK4R,OAAS5R,KAAKuc,MACvBtR,MAAM1J,KAAKvB,KAAK41B,wBACE,KAAd51B,KAAK4R,SACP5R,KAAKqoB,OACDroB,KAAK4R,QAAU4hB,UAQzB,MAFAxzB,MAAKwzB,OAAOA,QACZxzB,KAAKqoB,OACE5jB,OAAOuG,UAAWC,QAe3B2qB,qBAAsB,WACpB,GAAInxB,QAASzE,KAAKwE,KAAKkxB,YACnBjkB,IAAM,KACNhF,MAAQ,IACZ,IAAmB,MAAfzM,KAAK4R,MACPnF,MAAQzM,KAAKqoB,OAAOwN,eAAc,GAAM,GAAO,OAC1C,CACL,GAAIld,MAAO3Y,KAAK81B,WACZ91B,MAAK4R,QAAU5R,KAAKoc,IAAI8S,gBAC1Bzd,IAAMkH,KAEJlM,MADwB,MAAtBzM,KAAKqoB,OAAOzW,MACN5R,KAAKqoB,OAAOwN,eAAc,GAAM,GAAO,GAEvC71B,KAAK81B,aAGfrpB,MAAQkM;CAGZ,MAAOlU,QAAOgN,IAAKhF,QAOrBspB,gBAAiB,WACf,MAAkB,KAAd/1B,KAAK4R,OACF5R,KAAK81B,mBAIVE,KAAK,SAASz3B,QAAQkB,OAAOJ,SAOnCI,OAAOJ,SAOL42B,WAAY,SAASC,MACnB,GAAIzxB,QAASzE,KAAKwE,KAAK,QACvBxE,MAAKwzB,OAAOxzB,KAAKoc,IAAI6F,SACrBjiB,KAAKqoB,OAAOmL,OAAOxzB,KAAKoc,IAAIoP,SAC5B,IAGIne,MAHA8oB,SAAWn2B,KAAK4nB,OAChBwO,YAAc,KACdC,eAAiB,IAWrB,OARIr2B,MAAKqoB,OAAOzW,OAAS5R,KAAKoc,IAAIiG,YAChC+T,YAAcp2B,KAAKqoB,OAAOiO,uBAExBt2B,KAAK4R,OAAS5R,KAAKoc,IAAIkG,eACzB+T,eAAiBr2B,KAAKqoB,OAAOkO,kBAE/Bv2B,KAAKwzB,OAAO,KACZnmB,KAAOrN,KAAKkzB,mBAAmBsD,kBACxB/xB,OACL0xB,SACCC,YACAC,eACAhpB,KACA6oB,OASJO,iBAAkB,WACjB,GAAIhyB,QAASzE,KAAK4R,KAClB,OAAInN,SAAUzE,KAAKoc,IAAIqI,SACrBzkB,KAAKqoB,QACG,EAAG,EAAG,IACL5jB,QAAUzE,KAAKoc,IAAImI,YAC5BvkB,KAAKqoB,QACG,EAAG,EAAG,KAER,EAAG,EAAG,IAQfmO,gBAAiB,WAGhB,IAFA,GAAI/xB,WAEEzE,KAAK4R,QAAU5R,KAAKuc,KAAsB,MAAfvc,KAAK4R,OAEpC,GAAI5R,KAAK4R,QAAU5R,KAAKoc,IAAImM,UAK5B,GAAIvoB,KAAK4R,QAAU5R,KAAKoc,IAAIoM,cAM5B,GAAIxoB,KAAK4R,QAAU5R,KAAKoc,IAAIqH,MAA5B,CAQA,GAAIzV,OAAQhO,KAAK02B,mBAAkB;AAGnC,GAAI12B,KAAK4R,QAAU5R,KAAKoc,IAAIkC,QAc5B,GALIte,KAAK4R,QAAU5R,KAAKoc,IAAIwG,QAC1B5iB,KAAKqoB,OAAOmL,OAAOxzB,KAAKoc,IAAIyP,YAC5B7d,MAAM,GAAKA,MAAM,GAAK,GAGpBhO,KAAK4R,QAAU5R,KAAKoc,IAAIyP,WAAY,CAGtC,GAAI8K,WAAY32B,KAAK42B,mBAAmB5oB,MACxChO,MAAKwzB,OAAO,KACZxzB,KAAKkzB,mBACLzuB,OAASA,OAAOhE,OAAOk2B,eAEd32B,MAAK4R,QAAU5R,KAAKoc,IAAIgC,WAGjC3Z,OAAOlD,KAAKvB,KAAK62B,eAAc,EAAO7oB,SAKtChO,KAAK8zB,OACH9zB,KAAKoc,IAAIkC,QACTte,KAAKoc,IAAIyP,WACT7rB,KAAKoc,IAAIgC,aAGXpe,KAAKqoB,YApCP,CACE,GAAIyO,WAAY92B,KAAK+2B,mBAAmB/oB,MACxChO,MAAKwzB,OAAO,KACZxzB,KAAKkzB,mBACLzuB,OAASA,OAAOhE,OAAOq2B,gBAdvBryB,QAASA,OAAOhE,OACdT,KAAKqoB,OAAO2O,gCAPdvyB,QAAOlD,KAAKvB,KAAKi3B,wBALjBxyB,QAAOlD,KAAKvB,KAAKk3B,eA+DrB,OAFAl3B,MAAKwzB,OAAO,KACZxzB,KAAKkzB,mBACEzuB,QAQRmyB,mBAAoB,SAAS5oB,OAC5B,MAAOhO,MAAKm3B,UAQV,QAASC,6BACP,GAAI3yB,QAASzE,KAAKwE,KAAK,WACvBxE,MAAKwzB,OAAOxzB,KAAKoc,IAAIyP,WACrB,IAAIrpB,MAAOxC,KAAK4nB,OAAO1jB,UAAU,EAEjC,OADAlE,MAAKqoB,OACc,MAAfroB,KAAK4R,OAAgC,MAAf5R,KAAK4R,MACtBnN,OAAOjC,KAAM,KAAMwL,OACH,MAAfhO,KAAK4R,MAENnN,OAAOjC,KAAMxC,KAAKqoB,OAAOyN,YAAa9nB,QAE7ChO,KAAKwzB,QAAQ,IAAK,IAAK;AAChB/uB,OAAOjC,KAAM,KAAMwL,SAE3B,MASN+oB,mBAAoB,SAAS/oB,OAI5B,MAHIhO,MAAKwzB,OAAOxzB,KAAKoc,IAAIkC,UACvBte,KAAKqoB,OAEAroB,KAAKm3B,UASR,QAASE,6BACP,GAAI5yB,QAASzE,KAAKwE,KAAK,iBAAkBhC,KAAO,KAAMiK,MAAQ,IAQ9D,OAPIzM,MAAKwzB,OAAOxzB,KAAKoc,IAAIoP,YACvBhpB,KAAOxC,KAAK4nB,OACZ5nB,KAAKqoB,QAEHroB,KAAKwzB,OAAO,OACd/mB,MAASzM,KAAKqoB,OAAOyN,aAEhBrxB,OAAOjC,KAAMiK,MAAOuB,QAC1B,MAWR0oB,kBAAmB,SAASY,aAC3B,GAAI7yB,UAAU,GAAI,GAAI,EACtB,IAAIzE,KAAKw0B,GAAG,kBAAmB,CAC7B,GAAI+C,KAAM,EAAGC,IAAM,CACnB,GAAG,CACD,OAAOx3B,KAAK4R,OACV,IAAK5R,MAAKoc,IAAI2I,SAAcwS,IAAM,EAAGC,IAAM,CAAG,MAC9C,KAAKx3B,MAAKoc,IAAIyI,YAAc0S,IAAM,EAAGC,IAAM,CAAG,MAC9C,KAAKx3B,MAAKoc,IAAIuI,UAAc4S,IAAM,EAAGC,IAAM,CAAG,MAC9C,KAAKx3B,MAAKoc,IAAIiI,SAAckT,IAAM,EAAGC,IAAM,CAAG,MAC9C,KAAKx3B,MAAKoc,IAAImI,WAAcgT,IAAM,EAAGC,IAAM,CAAG,MAC9C,KAAKx3B,MAAKoc,IAAIqI,QAAc8S,IAAM,EAAGC,IAAM,EAEzCF,cACS,GAAPC,KAAmB,GAAPC,KAEdx3B,KAAKwzB,QAAQxzB,KAAKoc,IAAI2I,SAAU/kB,KAAKoc,IAAIyI,cACzC2S,KAAM,GACU,GAAPD,KAAmB,GAAPC,MAErBx3B,KAAK8zB,QACL0D,KAAM,IAGN/yB,OAAO8yB,QAAS,EAElBv3B,KAAK8zB,QACI0D,OAAQ,IACjB/yB,OAAO8yB,KAAOC,WAEVx3B,KAAKqoB,OAAOmM,GAAG,mBAMzB,MAHI/vB,QAAO,KAAM,IAAIA,OAAO,GAAK,GAC7BA,OAAO,KAAM,IAAIA,OAAO,GAAK;AAC7BA,OAAO,KAAM,IAAIA,OAAO,GAAK,GAC1BA,QAQRgzB,eAAgB,WACf,GAAIhzB,QAASzE,KAAKwE,KAAK,aAAchC,KAAO,KAAM6K,KAAO,KAAM+oB,YAAc,IAc7E,OAbIp2B,MAAKwzB,OAAOxzB,KAAKoc,IAAI+F,cACvBniB,KAAKqoB,OAEHroB,KAAKwzB,OAAOxzB,KAAKoc,IAAIoP,YACvBhpB,KAAOxC,KAAK4nB,OACZ5nB,KAAKqoB,QAEHroB,KAAK4R,QAAU5R,KAAKoc,IAAIiG,YAC1B+T,YAAcp2B,KAAKqoB,OAAOkO,kBAExBv2B,KAAKwzB,OAAO,OACdnmB,KAAOrN,KAAKqoB,OAAOqP,uBAEdjzB,OAAOjC,KAAM4zB,YAAa/oB,OAQlCqqB,oBAAqB,WAGpB,IAFA,GAAIjzB,WAEEzE,KAAK4R,QAAU5R,KAAKuc,KAAsB,MAAfvc,KAAK4R,OAEpC,GAAI5R,KAAK4R,QAAU5R,KAAKoc,IAAImM,UAK5B,GAAIvoB,KAAK4R,QAAU5R,KAAKoc,IAAIoM,cAA5B,CAMA,GAAIxa,OAAQhO,KAAK02B,mBAAkB,EAGnC,IAAI12B,KAAK4R,OAAS5R,KAAKoc,IAAIkC,QAAS,CAClC,GAAIwY,WAAY92B,KAAK+2B,mBAAmB/oB,MACpChO,MAAKwzB,OAAO,MACdxzB,KAAKkzB,mBAEPzuB,OAASA,OAAOhE,OAAOq2B,eAIpB,IAAI92B,KAAK4R,QAAU5R,KAAKoc,IAAIgC,WAAY,CAC3C,GAAIpE,QAASha,KAAK23B,0BAA0B,EAAG3pB,MAC/CgM,QAAO7L,WAAWH,OAClBvJ,OAAOlD,KAAKyY,QACRha,KAAKwzB,OAAO,MACdxzB,KAAKkzB,uBAIPlzB,MAAK8zB,OACH9zB,KAAKoc,IAAIkC,QACTte,KAAKoc,IAAIgC,aAEXpe,KAAKqoB,WA9BL5jB,QAAOlD,KAAKvB,KAAKi3B,wBALjBxyB,QAAOlD,KAAKvB,KAAKk3B;AAyCrB,MAHIl3B,MAAKwzB,OAAO,MACdxzB,KAAKqoB,OAEA5jB,QAQRmzB,WAAY,SAAS1B,MACpB,GAAIzxB,QAASzE,KAAKwE,KAAK,SACrB2xB,SAAW,KACXC,YAAc,KACdC,eAAiB,KACjBhpB,KAAO,IAgBT,OAfIrN,MAAKwzB,OAAOxzB,KAAKoc,IAAIgG,UACvBpiB,KAAKqoB,OAEHroB,KAAKwzB,OAAOxzB,KAAKoc,IAAIoP,YACvB2K,SAAWn2B,KAAK4nB,QAEd5nB,KAAKqoB,OAAOzW,OAAS5R,KAAKoc,IAAIiG,YAChC+T,YAAcp2B,KAAKqoB,OAAOiO,uBAExBt2B,KAAK4R,OAAS5R,KAAKoc,IAAIkG,eACzB+T,eAAiBr2B,KAAKqoB,OAAOkO,kBAE3Bv2B,KAAKwzB,OAAO,OACdnmB,KAAOrN,KAAKqoB,OAAOmO,mBAEd/xB,OACL0xB,SACAC,YACAC,eACAhpB,OASH2pB,yBAA0B,WAKzB,IAHA,GAAIxyB,MAAOxE,KAAKwE,KAAK,YACjB+V,QAAUva,KAAKs2B,uBACf9b,YAAc,KACG,MAAfxa,KAAK4R,OACT2I,OAAOhZ,KACLvB,KAAKqoB,OAAOiO,sBAGhB,IAAmB,MAAft2B,KAAK4R,MAAe,CAGtB,IAFA4I,eAEMxa,KAAKqoB,OAAOzW,QAAU5R,KAAKuc,KACZ,MAAfvc,KAAK4R,OACT4I,YAAYjZ,KAAKvB,KAAK63B,wBACtB73B,KAAKwzB,OAAO,IAEVxzB,MAAKwzB,OAAO,MACdxzB,KAAKkzB,uBAGHlzB,MAAKwzB,OAAO,MACdxzB,KAAKkzB,kBAGT,OAAO1uB,MAAK+V,OAAQC,cAQrBqd,qBAAsB;AACrB,GAAIrzB,MAAOxE,KAAKwE,OACZuV,MAAQ,KACRC,OAASha,KAAKs2B,qBAclB,IAZIt2B,KAAK4R,QAAU5R,KAAKoc,IAAIsS,eACtB1uB,KAAKqoB,OAAOmL,OAAOxzB,KAAKoc,IAAIoP,YAC9BzR,MAAQC,OACRA,OAASha,KAAK4nB,OACd5nB,KAAKqoB,QAIPrO,OAASA,OAAOxX,KAIdxC,KAAK4R,QAAU5R,KAAKoc,IAAIuH,YAC1B,MAAOnf,MACL,kBACAuV,MAAOC,OACPha,KAAKqoB,OAAOkO,iBAKX,IAAIv2B,KAAK4R,QAAU5R,KAAKoc,IAAIyE,KAAM,CACrC,GAAI7S,QAAQ,EACRqN,MAAQ,IAaZ,OAZIrb,MAAKqoB,OAAOmM,GAAG,oBACjBxmB,MAAQhO,KAAK02B,qBAGX12B,KAAK4R,QAAU5R,KAAKoc,IAAIoP,UAC1BnQ,MAAQrb,KAAK4nB,OACb5nB,KAAKqoB,QACIra,SAAU,GAEnBhO,KAAKwzB,OAAOxzB,KAAKoc,IAAIoP,UAGhBhnB,KAAK,aAAcuV,MAAOC,OAAQqB,MAAOrN,OAKlD,MADAhO,MAAKwzB,QAAQxzB,KAAKoc,IAAIyE,KAAM7gB,KAAKoc,IAAIuH,cAC9Bnf,KAAK,aAAcuV,MAAOC,OAAQ,KAAM,aAI7C8d,KAAK,SAASv5B,QAAQkB,OAAOJ,SAOnC,GAAI04B,UAAW,8BAEft4B,QAAOJ,SAIL63B,aAAc,WACZ,GAAIzyB,QAASzE,KAAKwE,KAAK,OACnBkM,QACJ,GAAG,CACD,GAAImB,MAAO7R,KAAK4nB,MACA,OAAZ/V,KAAK,GACPA,KAAOA,KAAK3N,UAAU,IAEtB2N,KAAOA,KAAK3N,UAAU,GACkB,OAApC2N,KAAK3N,UAAU2N,KAAKtS,OAAS,KAC/BsS,KAAOA,KAAK3N,UAAU,EAAG2N,KAAKtS,OAAS,KAG3CmR,MAAMnP,KAAKsQ,KAAKwiB;OACVr0B,KAAKkzB,mBAAmBthB,QAAU5R,KAAKoc,IAAImM,UACnD,OAAO9jB,SAAO,EAAOiM,QAKvBumB,iBAAkB,WAChB,GAAIxyB,QAASzE,KAAKwE,KAAK,OACnBojB,KAAO5nB,KAAK4nB,MAChBA,MAAOA,KAAK1jB,UAAU,EAAG0jB,KAAKroB,OAAS,EACvC,IAAImR,SACJkX,MAAOA,KAAKwM,MAAM2D,SAClB,KAAI,GAAI/4B,GAAI,EAAGA,EAAI4oB,KAAKroB,OAAQP,GAAK,EACnC0R,MAAMnP,KAAKqmB,KAAK5oB,GAAGq1B,OAGrB,OADAr0B,MAAKkzB,mBACEzuB,QAAO,EAAMiM,cAIlBsnB,KAAK,SAASz5B,QAAQkB,OAAOJ,SAMnC,YAEAI,QAAOJ,SAELy2B,UAAW,WACT,GAAIrxB,QAASzE,KAAKwE,OACdmU,KAAO3Y,KAAKi4B,gBAEhB,IAAmB,MAAfj4B,KAAK4R,MACP,MAAOnN,QAAO,MAAO,IAAKkU,KAAM3Y,KAAKqoB,OAAOyN,YAC9C,IAAmB,MAAf91B,KAAK4R,MACP,MAAOnN,QAAO,MAAO,IAAKkU,KAAM3Y,KAAKqoB,OAAOyN,YAC9C,IAAmB,MAAf91B,KAAK4R,MACP,MAAOnN,QAAO,MAAO,IAAKkU,KAAM3Y,KAAKqoB,OAAOyN,YAC9C,IAAmB,MAAf91B,KAAK4R,MACP,MAAOnN,QAAO,MAAO,IAAKkU,KAAM3Y,KAAKqoB,OAAOyN,YAC9C,IAAmB,MAAf91B,KAAK4R,MACP,MAAOnN,QAAO,MAAO,IAAKkU,KAAM3Y,KAAKqoB,OAAOyN,YAC9C,IAAmB,MAAf91B,KAAK4R,MACP,MAAOnN,QAAO,MAAO,IAAKkU,KAAM3Y,KAAKqoB,OAAOyN,YAC9C,IAAmB,MAAf91B,KAAK4R,MACP,MAAOnN,QAAO,MAAO,IAAKkU,KAAM3Y,KAAKqoB,OAAOyN,YAC9C,IAAmB,MAAf91B,KAAK4R,MACP,MAAOnN,QAAO,MAAO,IAAKkU,KAAM3Y,KAAKqoB,OAAOyN;AAC9C,GAAmB,MAAf91B,KAAK4R,MACP,MAAOnN,QAAO,MAAO,IAAKkU,KAAM3Y,KAAKqoB,OAAOyN,YAC9C,IAAI91B,KAAK4R,QAAU5R,KAAKoc,IAAIqU,MAC1B,MAAOhsB,QAAO,MAAO,KAAMkU,KAAM3Y,KAAKqoB,OAAOyN,YAC/C,IAAI91B,KAAK4R,QAAU5R,KAAKoc,IAAI2T,KAC1B,MAAOtrB,QAAO,MAAO,KAAMkU,KAAM3Y,KAAKqoB,OAAOyN,YAC/C,IAAI91B,KAAK4R,QAAU5R,KAAKoc,IAAIiU,KAC1B,MAAO5rB,QAAO,MAAO,KAAMkU,KAAM3Y,KAAKqoB,OAAOyN,YAE/C,IAAI91B,KAAK4R,QAAU5R,KAAKoc,IAAIgV,aAC1B,MAAO3sB,QAAO,MAAO,KAAMkU,KAAM3Y,KAAKqoB,OAAOyN,YAC/C,IAAI91B,KAAK4R,QAAU5R,KAAKoc,IAAImJ,aAC1B,MAAO9gB,QAAO,MAAO,KAAMkU,KAAM3Y,KAAKqoB,OAAOyN,YAC/C,IAAI91B,KAAK4R,QAAU5R,KAAKoc,IAAI6U,cAC1B,MAAOxsB,QAAO,MAAO,KAAMkU,KAAM3Y,KAAKqoB,OAAOyN,YAC/C,IAAI91B,KAAK4R,QAAU5R,KAAKoc,IAAIqJ,cAC1B,MAAOhhB,QAAO,MAAO,MAAOkU,KAAM3Y,KAAKqoB,OAAOyN,YAChD,IAAI91B,KAAK4R,QAAU5R,KAAKoc,IAAIuJ,cAC1B,MAAOlhB,QAAO,MAAO,MAAOkU,KAAM3Y,KAAKqoB,OAAOyN,YAChD,IAAI91B,KAAK4R,QAAU5R,KAAKoc,IAAI+S,eAC1B,MAAO1qB,QAAO,MAAO,MAAOkU,KAAM3Y,KAAKqoB,OAAOyN,YAChD,IAAI91B,KAAK4R,QAAU5R,KAAKoc,IAAIqT,mBAC1B,MAAOhrB,QAAO,MAAO,MAAOkU,KAAM3Y,KAAKqoB,OAAOyN,YAChD,IAAI91B,KAAK4R,QAAU5R,KAAKoc,IAAIgT,WAC1B,MAAO3qB,QAAO,MAAO,KAAMkU,KAAM3Y,KAAKqoB,OAAOyN;AAC/C,GAAI91B,KAAK4R,QAAU5R,KAAKoc,IAAIsT,eAC1B,MAAOjrB,QAAO,MAAO,KAAMkU,KAAM3Y,KAAKqoB,OAAOyN,YAC/C,IAAmB,MAAf91B,KAAK4R,MACP,MAAOnN,QAAO,MAAO,IAAKkU,KAAM3Y,KAAKqoB,OAAOyN,YAC9C,IAAmB,MAAf91B,KAAK4R,MACP,MAAOnN,QAAO,MAAO,IAAKkU,KAAM3Y,KAAKqoB,OAAOyN,YAC9C,IAAI91B,KAAK4R,QAAU5R,KAAKoc,IAAI6T,sBAC1B,MAAOxrB,QAAO,MAAO,KAAMkU,KAAM3Y,KAAKqoB,OAAOyN,YAC/C,IAAI91B,KAAK4R,QAAU5R,KAAKoc,IAAI+T,sBAC1B,MAAO1rB,QAAO,MAAO,KAAMkU,KAAM3Y,KAAKqoB,OAAOyN,YAC/C,IAAI91B,KAAK4R,QAAU5R,KAAKoc,IAAI4T,YAC1B,MAAOvrB,QAAO,MAAO,MAAOkU,KAAM3Y,KAAKqoB,OAAOyN,YAChD,IAAI91B,KAAK4R,QAAU5R,KAAKoc,IAAIwE,aAC1B,MAAOnc,QAAO,MAAO,aAAckU,KAAM3Y,KAAKqoB,OAAOyN,YAIvD,IAAI91B,KAAK4R,QAAU5R,KAAKoc,IAAIwT,WAC1B,MAAOnrB,QAAO,MAAO,KAAMkU,KAAM3Y,KAAKqoB,OAAOyN,YAI/C,IAAmB,MAAf91B,KAAK4R,MAAe,CACtB,GAAIsmB,SAAU,IAKd,OAJ0B,MAAtBl4B,KAAKqoB,OAAOzW,QACdsmB,QAAUl4B,KAAK81B,aAEjB91B,KAAKwzB,OAAO,MAAQxzB,KAAKqoB,OAClB5jB,OAAO,QAASkU,KAAMuf,QAASl4B,KAAK81B,aAG7C,MAAOnd,OASRsf,eAAgB,WAEf,GAAmB,MAAfj4B,KAAK4R,MACP,MAAO5R,MAAKwE,KAAK,UAAUxE,KAAKqoB,OAAOyN,YACzC,IAAmB,MAAf91B,KAAK4R,MACP,MAAO5R,MAAKwE,KAAK,SAAS,IAAKxE,KAAKqoB,OAAOyN;AAC7C,GAAmB,MAAf91B,KAAK4R,MACP,MAAO5R,MAAKwE,KAAK,SAAS,IAAKxE,KAAKqoB,OAAOyN,YAC7C,IAAmB,MAAf91B,KAAK4R,MACP,MAAO5R,MAAKwE,KAAK,SAAS,IAAKxE,KAAKqoB,OAAOyN,YAE7C,IAAmB,MAAf91B,KAAK4R,MAAe,CACtB,GAAInN,QAASzE,KAAKwE,MAElB,OADAxE,MAAKqoB,OAEHroB,KAAK4R,QAAU5R,KAAKoc,IAAI6O,WACxBjrB,KAAK4R,QAAU5R,KAAKoc,IAAI4O,WAGxBvmB,OAASA,OAAO,SAAU,IAAMzE,KAAK4nB,QACrC5nB,KAAKqoB,OACE5jB,QAEAA,OAAO,QAAS,IAAKzE,KAAK81B,aAIrC,GAAmB,MAAf91B,KAAK4R,MAAe,CACtB,GAAIpN,MAAOxE,KAAKwE,KAAK,eACjBmU,KAAO3Y,KAAKqoB,OAAOyN,WAIvB,OAHA91B,MAAKwzB,OAAO,MAAQxzB,KAAKqoB,OACzB1P,KAAOnU,KAAKmU,MAER3Y,KAAK4R,QAAU5R,KAAKoc,IAAIiP,kBACnBrrB,KAAKm4B,8BAA8Bxf,MAAM,GACvC3Y,KAAK4R,QAAU5R,KAAKoc,IAAIoR,cAA+B,MAAfxtB,KAAK4R,MAC/C5R,KAAKo4B,oBAAoBzf,MACR,MAAf3Y,KAAK4R,MAEP5R,KAAKwE,KAAK,QACfmU,KAAM3Y,KAAKq4B,+BAGN1f,KAIX,GAAmB,MAAf3Y,KAAK4R,MAEP,MAAO5R,MAAKqoB,OAAOiQ,qBAAqB,IAG1C,IAAIt4B,KAAK4R,QAAU5R,KAAKoc,IAAI8I,OAAQ,CAClC,GAAIzgB,QAASzE,KAAKwE,KAAK,QAAS+zB,OAAS,KACrCC,QAAUx4B,KAAK+yB,SACdyF,WACHD,OAASv4B,KAAKwE,KAAK,WAEjBxE,KAAKqoB,OAAOmL,OAAO,MACrBxzB,KAAKqoB,OAGFroB,KAAK+yB,YAAW/yB,KAAK+yB,WAAY;AAKtC,IAAI,GAJA0F,YAAaz4B,KAAK04B,uBAGlBC,SAAU,EACN35B,EAAI,EAAGA,EAAIy5B,WAAWl5B,OAAQP,IACpC,GAAsB,OAAlBy5B,WAAWz5B,GAAa,CAC1B25B,SAAU,CACV,OAYJ,MATKA,UACH34B,KAAKszB,WACH,gDAAkDtzB,KAAKqD,MAAMC,OAAOC,YAGpEvD,KAAKwzB,OAAO,MACdxzB,KAAKqoB,OAGFmQ,QAaI/zB,OAAOg0B,aAZdz4B,KAAK+yB,WAAY,EACb/yB,KAAKwzB,OAAO,KACP+E,OACL9zB,OAAOg0B,YACPz4B,KAAKqoB,OAAOyN,YACZ,KAIKrxB,OAAOg0B,aAOpB,GAAIz4B,KAAK4R,QAAU5R,KAAKoc,IAAIsG,QAC1B,MAAO1iB,MAAKwE,KAAK,SACfxE,KAAKqoB,OAAOyN,YAGhB,QAAO91B,KAAK4R,OAEV,IAAK5R,MAAKoc,IAAIkT,MACZ,MAAOtvB,MAAKwE,KAAK,OACf,IAAKxE,KAAKqoB,OAAOwN,eAAc,GAAO,GAAO,GAGjD,KAAK71B,MAAKoc,IAAI+R,MACZ,MAAOnuB,MAAKwE,KAAK,OACf,IAAKxE,KAAKqoB,OAAOwN,eAAc,GAAO,GAAO,GAGjD,KAAK71B,MAAKoc,IAAIoG,MACZ,MAAOxiB,MAAKqoB,OAAOuQ,eAErB,KAAK54B,MAAKoc,IAAI2H,QACZ,GAAItf,QAASzE,KAAKwE,KAAK,QACnBxE,MAAKqoB,OAAOmL,OAAO,MACrBxzB,KAAKqoB,MAEP,IAAIjnB,MAAOpB,KAAKm3B,UAAUn3B,KAAK81B,UAAW,IAI1C,OAHI91B,MAAKwzB,OAAO,MACdxzB,KAAKqoB,OAEA5jB,OAAOrD,KAEhB,KAAKpB,MAAKoc,IAAI6H,QACZ,GAAIxf,QAASzE,KAAKwE,KAAK,QACnBxE,MAAKqoB,OAAOmL,OAAO,MACrBxzB,KAAKqoB,MAEP,IAAIwQ,KAAM74B,KAAK81B;AAIf,MAHI91B,MAAKwzB,OAAO,MACdxzB,KAAKqoB,OAEA5jB,QAAQo0B,KAEjB,KAAK74B,MAAKoc,IAAI4G,UACZ,MAAOhjB,MAAKwE,KAAK,YACf,GAAO,EACPxE,KAAKqoB,OAAOyN,YAGhB,KAAK91B,MAAKoc,IAAI8G,eACZ,MAAOljB,MAAKwE,KAAK,YACf,GAAM,EACNxE,KAAKqoB,OAAOyN,YAGhB,KAAK91B,MAAKoc,IAAI+G,UACZ,MAAOnjB,MAAKwE,KAAK,YACf,GAAO,EACPxE,KAAKqoB,OAAOyN,YAGhB,KAAK91B,MAAKoc,IAAIiH,eACZ,MAAOrjB,MAAKwE,KAAK,YACf,GAAM,EACNxE,KAAKqoB,OAAOyN,YAGhB,KAAK91B,MAAKoc,IAAI0G,OACZ,GAAIre,QAASzE,KAAKwE,KAAK,OACnBxE,MAAKqoB,OAAOmL,OAAO,MACrBxzB,KAAKqoB,MAEP,IAAI1P,MAAO3Y,KAAK81B,WAIhB,OAHI91B,MAAKwzB,OAAO,MACdxzB,KAAKqoB,OAEA5jB,OAAOkU,KAEhB,KAAK3Y,MAAKoc,IAAI0J,WACZ,MAAO9lB,MAAKwE,KAAK,QAAQ,MAAOxE,KAAKqoB,OAAOyN,YAE9C,KAAK91B,MAAKoc,IAAI6J,cACZ,MAAOjmB,MAAKwE,KAAK,QAAQ,SAAUxE,KAAKqoB,OAAOyN,YAEjD,KAAK91B,MAAKoc,IAAIiK,cACZ,MAAOrmB,MAAKwE,KAAK,QAAQ,SAAUxE,KAAKqoB,OAAOyN,YAEjD,KAAK91B,MAAKoc,IAAImK,aACZ,MAAOvmB,MAAKwE,KAAK,QAAQ,QAASxE,KAAKqoB,OAAOyN,YAEhD,KAAK91B,MAAKoc,IAAIqK,cACZ,MAAOzmB,MAAKwE,KAAK,QAAQ,SAAUxE,KAAKqoB,OAAOyN,YAEjD,KAAK91B,MAAKoc,IAAIuK,YACZ,MAAO3mB,MAAKwE,KAAK,QAAQ,UAAWxE,KAAKqoB,OAAOyN;AAElD,IAAK91B,MAAKoc,IAAIyK,aACZ,MAAO7mB,MAAKwE,KAAK,SACfxE,KAAKqoB,OAAOyN,YAGhB,KAAK91B,MAAKoc,IAAI6B,OACZ,GAAIxZ,QAASzE,KAAKwE,KAAK,QACnB4N,OAAS,IAWb,OAV2B,MAAtBpS,KAAKqoB,OAAOzW,QACW,MAAtB5R,KAAKqoB,OAAOzW,OACdQ,OAASpS,KAAK81B,YACV91B,KAAKwzB,OAAO,MACdxzB,KAAKqoB,QAGProB,KAAKqoB,QAGF5jB,OAAO2N,OAEhB,KAAKpS,MAAKoc,IAAI2F,QACZ,MAAO/hB,MAAKwE,KAAK,SACfxE,KAAKqoB,OAAOyN,YAIhB,KAAK91B,MAAKoc,IAAI0R,QACZ,GAAIrpB,QAASzE,KAAKwE,KAAK,SAAUiI,MAAQ,KAAMgF,IAAM,IAUrD,OATIzR,MAAKqoB,OAAOmM,GAAG,UAEjB/nB,MAAQzM,KAAK81B,YACT91B,KAAK4R,QAAU5R,KAAKoc,IAAI8S,iBAE1Bzd,IAAMhF,MACNA,MAAQzM,KAAKqoB,OAAOyN,cAGjBrxB,OAAOgI,MAAOgF,IAGvB,KAAKzR,MAAKoc,IAAIyR,aACZ,GAAIppB,QAASzE,KAAKwE,KAAK,aACnBmU,KAAO3Y,KAAKqoB,OAAOyN,WACvB,OAAOrxB,QAAOkU,KAEhB,KAAK3Y,MAAKoc,IAAIgC,WAEZ,MAAOpe,MAAK62B,eAAc,GAK9B,GAAIle,KACJ,IAAI3Y,KAAKw0B,GAAG,YAAa,CACvB,GAAI/vB,QAASzE,KAAKwE,MAGlB,QAFAmU,KAAO3Y,KAAK61B,eAAc,GAAO,GAAO,GAEjC71B,KAAK4R,OACV,IAAK,IACH,GAAIhN,MAUJ,OAPIA,OAFqB,KAArB5E,KAAKqoB,OAAOzW,MACV5R,KAAKqoB,OAAOzW,QAAU5R,KAAKoc,IAAIoG,MACzBxiB,KAAKqoB,OAAOuQ,gBAEZ54B,KAAK61B,eAAc,GAAO,GAAO,GAGnC71B,KAAK81B,YAERrxB,OAAO,SAAUkU,KAAM/T,MAAO;AAGvC,IAAK5E,MAAKoc,IAAImT,aACZ,MAAO9qB,QAAO,SAAUkU,KAAM3Y,KAAKqoB,OAAOyN,YAAa,KAEzD,KAAK91B,MAAKoc,IAAIgS,cACZ,MAAO3pB,QAAO,SAAUkU,KAAM3Y,KAAKqoB,OAAOyN,YAAa,KAEzD,KAAK91B,MAAKoc,IAAImU,YACZ,MAAO9rB,QAAO,SAAUkU,KAAM3Y,KAAKqoB,OAAOyN,YAAa,KAEzD,KAAK91B,MAAKoc,IAAIoU,YACZ,MAAO/rB,QAAO,SAAUkU,KAAM3Y,KAAKqoB,OAAOyN,YAAa,MAEzD,KAAK91B,MAAKoc,IAAIoS,YACZ,MAAO/pB,QAAO,SAAUkU,KAAM3Y,KAAKqoB,OAAOyN,YAAa,KAEzD,KAAK91B,MAAKoc,IAAIuU,eACZ,MAAOlsB,QAAO,SAAUkU,KAAM3Y,KAAKqoB,OAAOyN,YAAa,KAEzD,KAAK91B,MAAKoc,IAAI0U,YACZ,MAAOrsB,QAAO,SAAUkU,KAAM3Y,KAAKqoB,OAAOyN,YAAa,KAEzD,KAAK91B,MAAKoc,IAAI4U,YACZ,MAAOvsB,QAAO,SAAUkU,KAAM3Y,KAAKqoB,OAAOyN,YAAa,KAEzD,KAAK91B,MAAKoc,IAAI+U,WACZ,MAAO1sB,QAAO,SAAUkU,KAAM3Y,KAAKqoB,OAAOyN,YAAa,KAEzD,KAAK91B,MAAKoc,IAAIkV,YACZ,MAAO7sB,QAAO,SAAUkU,KAAM3Y,KAAKqoB,OAAOyN,YAAa,KAEzD,KAAK91B,MAAKoc,IAAI0T,WACZ,MAAOrrB,QAAO,SAAUkU,KAAM3Y,KAAKqoB,OAAOyN,YAAa,MAEzD,KAAK91B,MAAKoc,IAAIgU,WACZ,MAAO3rB,QAAO,SAASkU,KAAM3Y,KAAKqoB,OAAOyN,YAAa,MAExD,KAAK91B,MAAKoc,IAAIkT;AAEZ,MADAtvB,MAAKqoB,OACE5jB,OAAO,OAAQ,IAAKkU,KAC7B,KAAK3Y,MAAKoc,IAAI+R,MAEZ,MADAnuB,MAAKqoB,OACE5jB,OAAO,OAAQ,IAAKkU,WAE1B,IAAI3Y,KAAKw0B,GAAG,UAGjB,IAFA7b,KAAO3Y,KAAK84B,cAEN94B,KAAK4R,QAAU5R,KAAKuc,KACxB,GAAIvc,KAAK4R,QAAU5R,KAAKoc,IAAIiP,kBAC1B1S,KAAO3Y,KAAKm4B,8BAA8Bxf,MAAM,OAC3C,IAAI3Y,KAAK4R,QAAU5R,KAAKoc,IAAIoR,cAA+B,MAAfxtB,KAAK4R,MACtD+G,KAAO3Y,KAAKo4B,oBAAoBzf,UAC3B,CAAA,GAAmB,MAAf3Y,KAAK4R,MAId,MAAO+G,KAFPA,MAAO3Y,KAAKwE,KAAK,QAAQmU,KAAM3Y,KAAKq4B,mCAMxCr4B,MAAK8zB,MAAM,QACX9zB,KAAKqoB,MAIP,OAAO1P,OASRigB,cAAe,WACd,GAAIn0B,QAASzE,KAAKwE,KAAK,MACvB,IAAIxE,KAAK4R,QAAU5R,KAAKoc,IAAI6F,QAAS,CACnC,GAAIld,MAAO/E,KAAKwE,KAAK,SAEjB4xB,YAAc,KAAMC,eAAiB,KAAMhpB,KAAO,KAAMjM,OAa5D,OAZ0B,MAAtBpB,KAAKqoB,OAAOzW,QACdxQ,KAAOpB,KAAKq4B,+BAEVr4B,KAAK4R,OAAS5R,KAAKoc,IAAIiG,YACzB+T,YAAcp2B,KAAKqoB,OAAOiO,uBAExBt2B,KAAK4R,OAAS5R,KAAKoc,IAAIkG,eACzB+T,eAAiBr2B,KAAKqoB,OAAOkO,kBAE3Bv2B,KAAKwzB,OAAO,OACdnmB,KAAOrN,KAAKqoB,OAAOmO,mBAEd/xB,OACLM,KACE,KACCqxB,YACAC,eACAhpB,MACC,EAAG,EAAG,IACPjM;CAIL,GAAIoB,MAAOxC,KAAK+4B,4BACZ33B,OAIJ,OAHmB,MAAfpB,KAAK4R,QACPxQ,KAAOpB,KAAKq4B,+BAEP5zB,OAAOjC,KAAMpB,OASvB23B,0BAA2B,WAC1B,GACE/4B,KAAK4R,QAAU5R,KAAKoc,IAAIkS,gBACxBtuB,KAAK4R,QAAU5R,KAAKoc,IAAIoP,UACxBxrB,KAAK4R,QAAU5R,KAAKoc,IAAImH,YACxB,CACA,GAAI9e,QAASzE,KAAKs2B,qBAIlB,OAHIt2B,MAAK4R,QAAU5R,KAAKoc,IAAIsS,iBAC1BjqB,OAASzE,KAAKg5B,mBAAmBv0B,SAE5BA,OACF,MAAIzE,MAAKw0B,GAAG,YACVx0B,KAAK61B,eAAc,GAAM,GAAO,OAEvC71B,MAAKwzB,QAAQxzB,KAAKoc,IAAIoP,SAAU,cAQnCkN,qBAAsB,WACrB,MAAO14B,MAAKm3B,UACVn3B,KAAKi5B,6BAA8B,MAStCA,6BAA8B,WAC7B,GAAmB,MAAfj5B,KAAK4R,OAAgC,MAAf5R,KAAK4R,MAAe,MAAO,KACrD,IAAInN,QAASzE,KAAKi4B,gBAQlB,OAPIj4B,MAAK4R,QAAU5R,KAAKoc,IAAI8S,iBAC1BzqB,QACE,MACAA,OACAzE,KAAKqoB,OAAO4P,mBAGTxzB,cAILy0B,KAAK,SAAS36B,QAAQkB,OAAOJ,SAOnCI,OAAOJ,SAIL85B,aAAc,WACZ,MAAkB,KAAdn5B,KAAK4R,QACP5R,KAAKqoB,QACE,IAOV+Q,YAAa,WACZ,MAAIp5B,MAAK4R,QAAU5R,KAAKoc,IAAIwU,aAC1B5wB,KAAKqoB;CACE,IAUVwO,cAAe,SAASwC,QAASnD,MAChC,GAAIzxB,QAASzE,KAAK23B,0BAChB0B,QAAU,EAAKnD,KAAO,EAAI,EAmB5B,OAjBIA,OAAmB,GAAXA,KAAK,IAEfzxB,OAAO0J,WAAW+nB,MACdl2B,KAAKwzB,OAAO,MACdxzB,KAAKkzB,qBAGHlzB,KAAKwzB,OAAO,OACd/uB,OAAO4I,KAAOrN,KAAKs5B,iBAAgB,GAC/B70B,OAAOyR,KAAOzR,OAAO4I,KAAK6I,MAC5BzR,OAAOyR,IAAIf,IAAM1Q,OAAO4I,KAAK6I,IAAIf,MAGjC+gB,MACFzxB,OAAO0J,WAAW+nB,OAGfzxB,QAQRkzB,0BAA2B,SAAS9rB,MACnC,GAAI0tB,UAAW,UACF,KAAT1tB,KACF0tB,SAAW,UACO,IAAT1tB,OACT0tB,SAAW,SAEb,IAAI90B,QAASzE,KAAKwE,KAAK+0B,SACnBv5B,MAAKwzB,OAAOxzB,KAAKoc,IAAIgC,aACvBpe,KAAKqoB,MAEP,IAAIvR,OAAQ9W,KAAKm5B,eACb32B,MAAO,EAAOghB,OAAUgW,WAAa,KAAMzqB,UAAW,CAC7C,KAATlD,MACE7L,KAAKwzB,OAAOxzB,KAAKoc,IAAIoP,YACvBhpB,KAAOxC,KAAK4nB,OACZ5nB,KAAKqoB,QAGLroB,KAAKwzB,OAAO,MAAMxzB,KAAKqoB,MAC3B,IAAIoR,QAASz5B,KAAK05B,qBAclB,OAbI15B,MAAKwzB,OAAO,MAAMxzB,KAAKqoB,OACd,IAATxc,MAAc7L,KAAK4R,QAAU5R,KAAKoc,IAAIqH,QACpCzjB,KAAKqoB,OAAOmL,OAAO,MAAMxzB,KAAKqoB,OAClC7E,IAAMxjB,KAAKm3B,UAAUn3B,KAAK25B,iBAAkB,KACxC35B,KAAKwzB,OAAO,MAAMxzB,KAAKqoB,QAEV,MAAfroB,KAAK4R,QACmB,MAAtB5R,KAAKqoB,OAAOzW,QACd7C,UAAW,EACX/O,KAAKqoB;AAEPmR,WAAax5B,KAAK45B,aAEP,IAAT/tB,KAEKpH,OAAOg1B,OAAQ3iB,MAAO0M,IAAKgW,WAAYzqB,UAEzCtK,OAAOjC,KAAMi3B,OAAQ3iB,MAAO0iB,WAAYzqB,WAOhD4qB,iBAAkB,WACjB,GAAIl1B,QAASzE,KAAKwE,KAAK,YACnBsS,OAAQ,CACO,OAAf9W,KAAK4R,QACPkF,OAAQ,EACR9W,KAAKqoB,QAEProB,KAAKwzB,OAAOxzB,KAAKoc,IAAIyP,WACrB,IAAIrpB,MAAOxC,KAAK4nB,OAAO1jB,UAAU,EAEjC,OADAlE,MAAKqoB,OACE5jB,OAAOjC,KAAMsU,QAQrB4iB,oBAAqB,WACpB,GAAIj1B,UACJ,IAAkB,KAAdzE,KAAK4R,MACP,KAAM5R,KAAK4R,OAAS5R,KAAKuc,KAAK,CAE5B,GADA9X,OAAOlD,KAAKvB,KAAK65B,kBACC,KAAd75B,KAAK4R,MAEF,CAAA,GAAkB,KAAd5R,KAAK4R,MACd,KAEA5R,MAAK8zB,OAAO,IAAK,KACjB,OALA9zB,KAAKqoB,OASX,MAAO5jB,SAQRo1B,eAAgB,WACf,GAAIr1B,MAAOxE,KAAKwE,KAAK,aACnBhC,KAAO,KACPiK,MAAQ,KACRZ,KAAO,KACPkD,UAAW,CACM,OAAf/O,KAAK4R,QACP5R,KAAKqoB,OACLtZ,UAAW,GAEblD,KAAO7L,KAAK45B,YACR7qB,WAAalD,MACf7L,KAAKszB,WAAW,8DAElB,IAAIxc,OAAQ9W,KAAKm5B,eACbpiB,WAAa/W,KAAKo5B,aAQtB,OAPIp5B,MAAKwzB,OAAOxzB,KAAKoc,IAAIyP,cACvBrpB,KAAOxC,KAAK4nB,OAAO1jB,UAAU,GAC7BlE,KAAKqoB,QAEW,KAAdroB,KAAK4R,QACPnF,MAAQzM,KAAKqoB,OAAOyN;AAEftxB,KAAKhC,KAAMqJ,KAAMY,MAAOqK,MAAOC,WAAYhI,WAQnDspB,4BAA6B,WAC5B,GAAI5zB,WACAq1B,aAAc,CAElB,IADA95B,KAAKwzB,OAAO,MAAQxzB,KAAKqoB,OACN,MAAfroB,KAAK4R,MACP,KAAM5R,KAAK4R,OAAS5R,KAAKuc,KAAK,CAC5B,GAAIwd,UAAW/5B,KAAKg6B,oBASpB,IARID,WACFt1B,OAAOlD,KAAKw4B,UACU,aAAlBA,SAASp2B,KACXm2B,aAAc,EACLA,aACT95B,KAAKszB,WAAW,kDAGD,MAAftzB,KAAK4R,MAEF,KADL5R,MAAKqoB,OAKX,MADAroB,MAAKwzB,OAAO,MAAQxzB,KAAKqoB,OAClB5jB,QAORu1B,mBAAoB,WACnB,MAAIh6B,MAAK4R,QAAU5R,KAAKoc,IAAIwU,WACnB5wB,KAAKwE,KAAK,YAAYxE,KAAKqoB,OAAOyN,aAEpC91B,KAAK81B,aAQb8D,UAAW,WACV,GAAIn1B,QAASzE,KAAKwE,KAAK,aACvB,QAAOxE,KAAK4R,OACV,IAAK5R,MAAKoc,IAAI+I,QAEZ,MADAnlB,MAAKqoB,OACE5jB,QAAQ,GAAI,UAAU,EAC/B,KAAKzE,MAAKoc,IAAImH,YACd,IAAKvjB,MAAKoc,IAAIkS,eACd,IAAKtuB,MAAKoc,IAAIoP,SACZ,MAAOxrB,MAAKs2B,qBACd,KAAKt2B,MAAKoc,IAAIiJ,WAEZ,MADArlB,MAAKqoB,OACE5jB,QAAQ,GAAI,aAAa,EAClC,SACE,MAAO,cAKTw1B,KAAK,SAAS17B,QAAQkB,OAAOJ,SAOnCI,OAAOJ,SAQL66B,QAAS;AACP,GAAIz1B,QAASzE,KAAKwE,KAAK,MACrB6I,KAAO,KACP8G,UAAY,KACZnJ,WAAY,EACZoC,KAAO,IAGT,IAFAA,KAAOpN,KAAKm6B,eAEO,MAAfn6B,KAAK4R,MAAe,CACtB5G,WAAY,EACZhL,KAAKqoB,OACLhb,KAAOrN,KAAKwE,KAAK,QAEjB,KADA,GAAIyG,UACEjL,KAAK4R,QAAU5R,KAAKuc,KAAOvc,KAAK4R,QAAU5R,KAAKoc,IAAIkD,SAAS,CAChE,GAAItf,KAAK4R,QAAU5R,KAAKoc,IAAIgD,SAAU,CACpCjL,UAAYnU,KAAKqoB,OAAO+R,mBACxB,OACK,GAAIp6B,KAAK4R,QAAU5R,KAAKoc,IAAIoD,OAAQ,CACzCrL,UAAYnU,KAAKqoB,OAAOgS,iBACxB,OAEFpvB,MAAM1J,KAAKvB,KAAKs6B,wBAElBjtB,KAAOA,KAAK,KAAMpC,OAClBjL,KAAKwzB,OAAOxzB,KAAKoc,IAAIkD,UAAYtf,KAAKqoB,OACtCroB,KAAKi0B,2BAEL5mB,MAAOrN,KAAKu6B,iBAIZv6B,KAAKu0B,iBACDv0B,KAAK4R,QAAU5R,KAAKoc,IAAIgD,SAC1BjL,UAAYnU,KAAKqoB,OAAO6R,UACfl6B,KAAK4R,QAAU5R,KAAKoc,IAAIoD,SACjCrL,UAAYnU,KAAKqoB,OAAOkS,iBAG5B,OAAO91B,QAAO2I,KAAMC,KAAM8G,UAAWnJ,YAKvCmvB,aAAc,WACZn6B,KAAKwzB,OAAO,MAAQxzB,KAAKqoB,MACzB,IAAI5jB,QAASzE,KAAK81B,WAElB,OADA91B,MAAKwzB,OAAO,MAAQxzB,KAAKqoB,OAClB5jB,QAKT21B,kBAAmB,WACjB,GAAI31B,QAASzE,KAAKwE,KAAK,MACrB2P,UAAY,KACZ/G,KAAO,KACPC,KAAO,KACPpC,QAIF,KAHAmC,KAAOpN,KAAKm6B;AACRn6B,KAAKwzB,OAAO,MAAMxzB,KAAKqoB,OAC3Bhb,KAAOrN,KAAKwE,KAAK,SACXxE,KAAK4R,OAAS5R,KAAKuc,KAAOvc,KAAK4R,QAAU5R,KAAKoc,IAAIkD,SAAS,CAC/D,GAAItf,KAAK4R,QAAU5R,KAAKoc,IAAIgD,SAAU,CACpCjL,UAAYnU,KAAKqoB,OAAO+R,mBACxB,OACK,GAAIp6B,KAAK4R,QAAU5R,KAAKoc,IAAIoD,OAAQ,CACzCrL,UAAYnU,KAAKqoB,OAAOgS,iBACxB,OAEFpvB,MAAM1J,KAAKvB,KAAKs6B,wBAGlB,MADAjtB,MAAOA,KAAK,KAAMpC,OACXxG,OAAO2I,KAAMC,KAAM8G,WAAW,IAKvCkmB,gBAAiB,WACXr6B,KAAKwzB,OAAO,MAAMxzB,KAAKqoB,MAE3B,KADA,GAAIhb,MAAOrN,KAAKwE,KAAK,SAAUyG,SACzBjL,KAAK4R,OAAS5R,KAAKuc,KAAOvc,KAAK4R,QAAU5R,KAAKoc,IAAIkD,SACtDrU,MAAM1J,KAAKvB,KAAKs6B,uBAElB,OAAOjtB,MAAK,KAAMpC,cAIhBuvB,KAAK,SAASj8B,QAAQkB,OAAOJ,SAMnC,YACAI,QAAOJ,SASLo7B,WAAY,WACV,GAAIh2B,QAASzE,KAAKwE,KAAK,SACrB4I,KAAO,KACPC,KAAO,KACPrC,WAAY,CAWd,OATIhL,MAAKwzB,OAAO,MAAMxzB,KAAKqoB,OAC3Bjb,KAAOpN,KAAK81B,YACR91B,KAAKwzB,OAAO,MAAMxzB,KAAKqoB,OACR,MAAfroB,KAAK4R,OACP5G,WAAY,EACZqC,KAAOrN,KAAK06B,gBAAgB16B,KAAKoc,IAAIwD,aAErCvS,KAAOrN,KAAKu6B,iBAEP91B,OAAO2I,KAAMC,KAAMrC,YAU3B2vB,QAAS,WACR,GAAIl2B,QAASzE,KAAKwE,KAAK,MACrB4I,KAAO,KACPC,KAAO;AAST,MAPAA,MAAOrN,KAAKu6B,iBACRv6B,KAAKu0B,iBAAiBf,OAAOxzB,KAAKoc,IAAIsD,WACpC1f,KAAKqoB,OAAOmL,OAAO,MAAMxzB,KAAKqoB,OAClCjb,KAAQpN,KAAK81B,YACT91B,KAAKwzB,OAAO,MAAMxzB,KAAKqoB,OACvBroB,KAAKwzB,OAAO,MAAMxzB,KAAKqoB,QAEtB5jB,OAAO2I,KAAMC,OAYrButB,SAAU,WACT,GAAIn2B,QAASzE,KAAKwE,KAAK,OACrBiO,QACArF,QACAsF,aACArF,KAAO,KACPrC,WAAY,CA0Bd,OAzBIhL,MAAKwzB,OAAO,MAAMxzB,KAAKqoB,OACR,MAAfroB,KAAK4R,OACPa,KAAOzS,KAAKm3B,UAAUn3B,KAAK81B,UAAW,KAClC91B,KAAKwzB,OAAO,MAAMxzB,KAAKqoB,QAE3BroB,KAAKqoB,OAEY,MAAfroB,KAAK4R,OACPxE,KAAOpN,KAAKm3B,UAAUn3B,KAAK81B,UAAW,KAClC91B,KAAKwzB,OAAO,MAAMxzB,KAAKqoB,QAE3BroB,KAAKqoB,OAEY,MAAfroB,KAAK4R,OACPc,UAAY1S,KAAKm3B,UAAUn3B,KAAK81B,UAAW,KACvC91B,KAAKwzB,OAAO,MAAMxzB,KAAKqoB,QAE3BroB,KAAKqoB,OAEY,MAAfroB,KAAK4R,OACP5G,WAAY,EACZqC,KAAOrN,KAAK06B,gBAAgB16B,KAAKoc,IAAI8D,WAErC7S,KAAOrN,KAAKu6B,iBAEP91B,OAAOgO,KAAMrF,KAAMsF,UAAWrF,KAAMrC,YAU5C6vB,aAAc,WACb,GAAIp2B,QAASzE,KAAKwE,KAAK,WACrByN,OAAS,KACTR,IAAM,KACNhF,MAAQ,KACRY,KAAO,KACPrC,WAAY,CAoBd,OAnBIhL,MAAKwzB,OAAO,MAAMxzB,KAAKqoB,OAC3BpW,OAASjS,KAAK81B,YACV91B,KAAKu0B,iBAAiBf,OAAOxzB,KAAKoc,IAAIyE,QACxC7gB,KAAKqoB;AACL5b,MAAQzM,KAAK86B,wBACT96B,KAAK4R,QAAU5R,KAAKoc,IAAI8S,iBAC1Bzd,IAAMhF,MACNA,MAAQzM,KAAKqoB,OAAOyS,0BAIpB96B,KAAKwzB,OAAO,MAAMxzB,KAAKqoB,OAER,MAAfroB,KAAK4R,OACP5G,WAAY,EACZqC,KAAOrN,KAAK06B,gBAAgB16B,KAAKoc,IAAIkE,eAErCjT,KAAOrN,KAAKu6B,iBAEP91B,OAAOwN,OAAQR,IAAKhF,MAAOY,KAAMrC,YAYzC8vB,sBAAuB,WACpB,GAAI96B,KAAK4R,QAAU5R,KAAKoc,IAAI8I,OAAQ,CAClC,GAAIzgB,QAASzE,KAAKwE,KAAK,OACnBxE,MAAKqoB,OAAOmL,OAAO,MAAMxzB,KAAKqoB,MAClC,IAAIoQ,YAAaz4B,KAAK04B,sBAEtB,OADI14B,MAAKwzB,OAAO,MAAMxzB,KAAKqoB,OACpB5jB,OAAOg0B,YACT,MAAmB,MAAfz4B,KAAK4R,OAAiB5R,KAAK4R,QAAU5R,KAAKoc,IAAI+I,QAChDnlB,KAAK21B,aAEL31B,KAAK61B,eAAc,GAAO,GAAO,UAK1CkF,KAAK,SAASx8B,QAAQkB,OAAOJ,SAOnCI,OAAOJ,SAML8zB,WAAY,WACV,MAAInzB,MAAK4R,OAAS5R,KAAKoc,IAAImH,YAClBvjB,KAAKg7B,iBAELh7B,KAAKi7B,4BAKZC,KAAK,SAAS38B,QAAQkB,OAAOJ,SAMnC,YAEAI,QAAOJ,SAYL27B,eAAgB,WACd,GAAIv2B,QAASzE,KAAKwE,KAAK,YAEvB,IADAxE,KAAKwzB,OAAOxzB,KAAKoc,IAAImH,cAAgBvjB,KAAKqoB,OACxB,KAAdroB,KAAK4R,MAAc,CACrB5R,KAAK8yB,kBAAoB;AACzB,GAAIzlB,MAAQrN,KAAKkzB,mBAAmBiI,qBAEpC,OADAn7B,MAAKwzB,OAAO,MAAQxzB,KAAKkzB,mBAClBzuB,QAAQ,IAAK4I,MAAM,GAE1B,GAAI7K,MAAOxC,KAAKs2B,qBAChB,IAAkB,KAAdt2B,KAAK4R,MAAc,CACrB5R,KAAK8yB,iBAAmBtwB,IACxB,IAAI6K,MAAOrN,KAAKkzB,mBAAmBiI,qBAEnC,OADAn7B,MAAKwzB,OAAOxzB,KAAKuc,KACV9X,OAAOjC,KAAKA,KAAM6K,MAAM,GAC1B,GAAkB,KAAdrN,KAAK4R,MAAc,CAC5B5R,KAAK8yB,iBAAmBtwB,IACxB,IAAI6K,MAAQrN,KAAKkzB,mBAAmBiI,qBAEpC,OADAn7B,MAAKwzB,OAAO,MAAQxzB,KAAKkzB,mBAClBzuB,OAAOjC,KAAKA,KAAM6K,MAAM,GAC1B,GAAmB,MAAfrN,KAAK4R,MAId,MAFApP,MAAKmR,WAAa3T,KAAK+xB,IAAI5iB,WAAWyE,cACtCpR,KAAKA,KAAOA,KAAKA,KAAK0B,UAAU,GACzBlE,KAAKwE,KAAK,QACfhC,KAAMxC,KAAKq4B,8BAGbr4B,MAAK8zB,OAAO,IAAK,MAEjB9zB,KAAK8yB,iBAAmBtwB,IACxB,IAAI6K,MAAOrN,KAAKm7B,qBAEhB,OADAn7B,MAAKwzB,OAAOxzB,KAAKuc,KACV9X,OAAOjC,KAAM6K,MAAM,IAY/BipB,oBAAqB,WACpB,GAAI7xB,QAASzE,KAAKwE,KAAK,cAAe42B,UAAW,CAKjD,OAJIp7B,MAAK4R,QAAU5R,KAAKoc,IAAImH,cAC1BvjB,KAAKqoB,OAAOmL,OAAOxzB,KAAKoc,IAAIkS,iBAAmBtuB,KAAKqoB,OACpD+S,UAAW,GAEN32B,OACLzE,KAAKm3B,UAAUn3B,KAAKoc,IAAIoP,SAAUxrB,KAAKoc,IAAIkS,gBAAgB,GAC3D8M;EAeHC,mBAAoB,WACnB,GAAI52B,QAASzE,KAAKwE,KAAK,YACrBqH,KAAO,KACPZ,SACAzI,KAAO,IAaT,OAXAxC,MAAKwzB,OAAOxzB,KAAKoc,IAAIqH,QAAUzjB,KAAKqoB,OACpCxc,KAAO7L,KAAKs7B,gBACZrwB,MAAM1J,KAAKvB,KAAKu7B,sBAAqB,IAClB,MAAfv7B,KAAK4R,MACP3G,MAAQA,MAAMxK,OAAOT,KAAKqoB,OAAOmT,uBAAsB,IAC/B,MAAfx7B,KAAK4R,QACdpP,KAAOyI,MAAM,GAAGzI,KAChByI,MAAQjL,KAAKqoB,OAAOmT,sBAA+B,OAAT3vB,MAC1C7L,KAAKwzB,OAAO,MAAQxzB,KAAKqoB,QAE3BroB,KAAKwzB,OAAO,MAAQxzB,KAAKkzB,mBAClBzuB,OAAOjC,KAAMqJ,KAAMZ,QAU3BswB,qBAAsB,SAASE,OAC9B,GAAIh3B,QAASzE,KAAKwE,KAAK,WAAYqH,KAAO,IACtC4vB,SAAO5vB,KAAO7L,KAAKs7B,gBACvB,IAAI94B,MAAOxC,KAAKs2B,sBACZjb,MAAQrb,KAAK07B,gBACjB,OAAOj3B,QAAOjC,KAAKA,KAAM6Y,MAAOxP,OAUjC2vB,sBAAuB,SAASC,OAE/B,IADA,GAAIh3B,SAAUzE,KAAKu7B,qBAAqBE,QACnB,MAAfz7B,KAAK4R,OACTnN,OAAOlD,KAAKvB,KAAKqoB,OAAOkT,qBAAqBE,OAE/C,OAAOh3B,SASRi3B,eAAgB,WACf,GAAIj3B,QAAS,IAOb,OANIzE,MAAK4R,QAAU5R,KAAKoc,IAAIyE,MACtB7gB,KAAKqoB,OAAOmL,OAAOxzB,KAAKoc,IAAIoP,YAC9B/mB,OAASzE,KAAK4nB,OACd5nB,KAAKqoB,QAGF5jB,QAUR62B,cAAe;AACd,MAAIt7B,MAAK4R,QAAU5R,KAAKoc,IAAIgC,YAC1Bpe,KAAKqoB,OACEroB,KAAK+xB,IAAI4J,QAAQpgB,eACfvb,KAAK4R,QAAU5R,KAAKoc,IAAIkC,SACjCte,KAAKqoB,OACEroB,KAAK+xB,IAAI4J,QAAQrgB,YAEnB,YAILsgB,KAAK,SAASr9B,QAAQkB,OAAOJ,SAOnC,GAAIw8B,cACFC,MAAO,KACPC,MAAO,KACPC,MAAO,KACPC,MAAO7iB,OAAO8iB,aAAa,IAC3BC,MAAO/iB,OAAO8iB,aAAa,IAC3BE,MAAOhjB,OAAO8iB,aAAa,IAC3BG,OAAQ,KACRC,MAAO,IACPC,MAAO,IACPC,MAAQ,IAGV/8B,QAAOJ,SAILo9B,sBAAuB,SAAS7U,MAC9B,MAAOA,MAAK8U,QACV,oBACA,SAASC,KACP,MAAOd,aAAYc,QAczB7D,YAAa,WACX,GAAI94B,KAAKw0B,GAAG,iBACV,MAAOx0B,MAAK48B,oBAEZ,QAAO58B,KAAK4R,OAGV,IAAK5R,MAAKoc,IAAI+P,2BACZ,GAAI1f,OAAQzM,KAAKwE,KAAK,UAClBojB,KAAO5nB,KAAK4nB,OACZvO,cAA4B,MAAZuO,KAAK,EAIzB,OAHAA,MAAOA,KAAK1jB,UAAU,EAAG0jB,KAAKroB,OAAS,GACvCS,KAAKqoB,OACL5b,MAAQA,MAAM4M,cAAerZ,KAAKy8B,sBAAsB7U,OACpD5nB,KAAK4R,QAAU5R,KAAKoc,IAAIsS,eAEnB1uB,KAAKg5B,mBAAmBvsB,OAGxBA,KAEX,KAAKzM,MAAKoc,IAAI4Q,gBACZ,GAAgC,cAA5BhtB,KAAKqD,MAAMulB,aAA8B,CAC3C,GAAIpkB,MAAOxE,KAAKwE,KAAK,UACjBiI,MAAQzM,KAAKqoB,OAAOT,OAEpBiV,OAASpwB,MAAMA,MAAMlN,OAAO;AAgBhC,MAfe,OAAXs9B,OAGApwB,MAF4B,OAA1BA,MAAMA,MAAMlN,OAAO,GAEbkN,MAAMvI,UAAU,EAAGuI,MAAMlN,OAAS,GAGlCkN,MAAMvI,UAAU,EAAGuI,MAAMlN,OAAS,GAExB,OAAXs9B,SAETpwB,MAAQA,MAAMvI,UAAU,EAAGuI,MAAMlN,OAAS,IAE5CS,KAAKwzB,OAAOxzB,KAAKoc,IAAI0P,4BAA8B9rB,KAAKqoB,OACxD7jB,KAAOA,KAAKiI,MAAOzM,KAAKqD,MAAM0pB,eAC9B/sB,KAAKwzB,OAAOxzB,KAAKoc,IAAIgR,gBAAkBptB,KAAKqoB,OACrC7jB,KAEP,MAAOxE,MAAKqoB,OAAOiQ,qBACjBt4B,KAAKoc,IAAIgR,cAIf,KAAK,IACH,MAAOptB,MAAKqoB,OAAOiQ,qBAAqB,IAE1C,KAAK,KACL,IAAK,KACH,GAAI9zB,MAAOxE,KAAKwE,KAAK,QACjBO,KAAO/E,KAAKqoB,OAAOiQ,qBAAqB,IAC5C,OAAO9zB,MAAK,SAAUO,KAGxB,KAAK/E,MAAKoc,IAAI6O,UACd,IAAKjrB,MAAKoc,IAAI4O,UACZ,GAAIvmB,QAASzE,KAAKwE,KAAK,UACnBiI,MAAQzM,KAAK4nB,MAGjB,OAFA5nB,MAAKqoB,OACL5jB,OAASA,OAAOgI,MAIlB,KAAKzM,MAAKoc,IAAI+I,QACd,IAAK,IACH,MAAOnlB,MAAK21B,YACd,SACE,GAAIlC,KAAMzzB,KAAK8zB,MAAM,SAGrB,OADA9zB,MAAKqoB,OACEoL,MAOd2E,oBAAqB,SAASzf,MAC7B,GAAIlU,QACAD,KAAOxE,KAAKwE,KAAK,eACrB,IAAmB,MAAfxE,KAAK4R,MAAe,CACtB,GAAIzN,QAASnE,KAAKqoB,OAAOyN,WACrB91B,MAAKwzB,OAAO,MAAMxzB,KAAKqoB,OAC3B5jB,OAASD,KAAKmU,KAAMxU,YACf,IAAInE,KAAK4R,QAAU5R,KAAKoc,IAAIkR,2BAA4B;AAC7D,GAAInpB,QAASnE,KAAK88B,2BAClBr4B,QAASD,KAAKmU,KAAMxU,QAEtB,MAAOM,SAiBRq4B,0BAA2B,WAC1B,GAAIr4B,QAASzE,KAAKwE,MAIlB,IAAIxE,KAAK4R,QAAU5R,KAAKoc,IAAI0P,0BAA2B,CACrD,GAAIlE,MAAO5nB,KAAK4nB,MAChB5nB,MAAKqoB,OACL5jB,OAASA,OACP,UAAU,EAAOzE,KAAKy8B,sBAAsB7U,WAM3C,IAAI5nB,KAAK4R,QAAU5R,KAAKoc,IAAIkR,2BAA4B,CAC3D,GAAI9qB,MAAO,IACX,IAAIxC,KAAKqoB,OAAOzW,QAAU5R,KAAKoc,IAAIsP,iBAAkB,CACnD,GAAIqR,SAAU/8B,KAAK4nB,MAMnB,IALAplB,KAAOxC,KAAKwE,KAAK,YACjBxE,KAAKqoB,OACL7lB,KAAOA,KAAKu6B,SAAS,GAGF,MAAf/8B,KAAK4R,MAAe,CACtB,GAAIpN,MAAOxE,KAAKwE,KAAK,gBACjBL,OAASnE,KAAKqoB,OAAOyN,WACzB91B,MAAKwzB,OAAO,MAAQxzB,KAAKqoB,OACzB7lB,KAAOgC,KAAKhC,KAAM2B,aAGpB3B,MAAOxC,KAAK81B,WAEd91B,MAAKwzB,OAAO,MAAQxzB,KAAKqoB,OACzB5jB,OAASA,OAAO,WAAYjC,MAAM,OAK/B,IAAIxC,KAAK4R,QAAU5R,KAAKoc,IAAIoR,aAC/B/oB,OAASzE,KAAKqoB,OAAOwN,eAAc,GAAO,GAAO,GACjD71B,KAAKwzB,OAAO,MAAQxzB,KAAKqoB,WAKtB,IAAIroB,KAAK4R,QAAU5R,KAAKoc,IAAIyP,WAAY,CAI3C,GAHApnB,OAASzE,KAAKg9B,sBAAqB,GAGhB,MAAfh9B,KAAK4R,MAAe,CACtB,GAAIpN,MAAOxE,KAAKwE,KAAK,gBACjBL,OAASnE,KAAKqoB,OAAO4U,wBACzBj9B,MAAKwzB,OAAO,MAAQxzB,KAAKqoB;AACzB5jB,OAASD,KAAKC,OAAQN,QAIxB,GAAInE,KAAK4R,QAAU5R,KAAKoc,IAAIiP,kBAAmB,CAC7C,GAAI7mB,MAAOxE,KAAKwE,KAAK,kBACjBO,KAAO/E,KAAKwE,KAAK,WACrBxE,MAAKqoB,OAAOmL,OAAOxzB,KAAKoc,IAAIoP,SAC5B,IAAIhpB,MAAOxC,KAAK4nB,MAChB5nB,MAAKqoB,OACL5jB,OAASD,KAAKC,OAAQM,KAAKvC,YAIxB,CACLxC,KAAKwzB,OAAOxzB,KAAKoc,IAAI0P,0BACrB,IAAIrf,OAAQzM,KAAK4nB,MACjB5nB,MAAKqoB,OAEL5jB,OAASA,OAAO,UAAU,EAAOgI,OAGnC,MAAOhI,SAKR6zB,qBAAsB,SAAS9E,QAC9B,GAAIhvB,MAAOxE,KAAKwE,KAAK,YAAaiI,SAAYZ,KAAO,IAWrD,KAREA,KADa,MAAX2nB,OACKxzB,KAAK+xB,IAAImL,SAAS9rB,WACL,MAAXoiB,OACFxzB,KAAK+xB,IAAImL,SAAS/rB,YAElBnR,KAAK+xB,IAAImL,SAAS7rB,aAIrBrR,KAAK4R,QAAU4hB,QAAUxzB,KAAK4R,QAAU5R,KAAKuc,KACjD9P,MAAMlL,KAAKvB,KAAK88B,4BASlB,OANA98B,MAAKwzB,OAAOA,SAAWxzB,KAAKqoB,OAC5B7jB,KAAOA,KAAKiI,MAAOZ,MAEf2nB,SAAWxzB,KAAKoc,IAAIgR,gBACtB5oB,KAAK4O,MAAQpT,KAAKqD,MAAM0pB,eAEnBvoB,MAKRo4B,mBAAoB,WACnB,GAAIn4B,QAASzE,KAAKwE,KAAK,SACnBhC,KAAOxC,KAAK4nB,MAEhB,OADA5nB,MAAKqoB,OACE5jB,OAAOjC,aAIZ26B,KAAK,SAAS5+B,QAAQkB,OAAOJ,SAMnCI,OAAOJ,SAOL87B,oBAAqB,WAEnB,IADA,GAAI12B,WACEzE,KAAK4R,QAAU5R,KAAKuc,KAAsB,MAAfvc,KAAK4R,OAAe;AACnD,GAAIwrB,WAAYp9B,KAAKi7B,oBACjBmC,aACE/7B,MAAMgyB,QAAQ+J,WAChB34B,OAASA,OAAOhE,OAAO28B,WAEvB34B,OAAOlD,KAAK67B,YAIlB,MAAO34B,SAYRw2B,mBAAoB,WACnB,OAAOj7B,KAAK4R,OACV,IAAK5R,MAAKoc,IAAIgC,WACZ,MAAOpe,MAAK62B,eAAc,GAAO,EAEnC,KAAK72B,MAAKoc,IAAImI,WACd,IAAKvkB,MAAKoc,IAAIqI,QACZ,GAAIyR,MAAOl2B,KAAKy2B,kBAChB,OAAIz2B,MAAK4R,QAAU5R,KAAKoc,IAAI6F,QACnBjiB,KAAKi2B,WAAWC,OAEvBl2B,KAAK8zB,MAAM9zB,KAAKoc,IAAI6F,SACpBjiB,KAAKqoB,OACE,KAEX,KAAKroB,MAAKoc,IAAI6F,QACZ,MAAOjiB,MAAKi2B,YAAY,EAAG,EAAG,GAChC,KAAKj2B,MAAKoc,IAAI+F,YACZ,MAAOniB,MAAKy3B,gBACd,KAAKz3B,MAAKoc,IAAIgG,QACZ,MAAOpiB,MAAK43B,YACd,KAAK53B,MAAKoc,IAAIqH,MACZ,MAAOzjB,MAAKq7B,oBACd,KAAKr7B,MAAKoc,IAAIkC,QACZ,MAAOte,MAAKqoB,OAAOgV,iBACrB,KAAKr9B,MAAKoc,IAAImH,YACZ,MAAOvjB,MAAKg7B,gBACd,KAAKh7B,MAAKoc,IAAI+H,gBACZ,GAAI1f,QAASzE,KAAKwE,KAAK,OAKvB,OAJIxE,MAAKqoB,OAAOmL,OAAO,MAAMxzB,KAAKqoB,OAC9BroB,KAAKwzB,OAAO,MAAMxzB,KAAKqoB,OAC3BroB,KAAKwzB,OAAO,KACZxzB,KAAKqD,MAAMikB,MAAO,EACX7iB,OAAOzE,KAAKqD,MAAMY,OAAOC,UAC9BlE,KAAKqD,MAAMc,QAEf,SACE,MAAOnE,MAAKu6B;GASjB+C,sBAAuB,WAEtB,IADA,GAAI74B,WACEzE,KAAK4R,OAAS5R,KAAKuc,KAAsB,MAAfvc,KAAK4R,OAAe,CAClD,GAAIwrB,WAAYp9B,KAAKs6B,sBACjB8C,aACE/7B,MAAMgyB,QAAQ+J,WAChB34B,OAASA,OAAOhE,OAAO28B,WAEvB34B,OAAOlD,KAAK67B,YAIlB,MAAO34B,SAQR44B,gBAAiB,WAChB,GAAI54B,QAASzE,KAAKm3B,UAAU,WAC1Bn3B,KAAKwzB,OAAOxzB,KAAKoc,IAAIoP,SACrB,IAAI/mB,QAASzE,KAAKwE,KAAK,YACnBhC,KAAOxC,KAAK4nB,MAChB,OAAI5nB,MAAKqoB,OAAOmL,OAAO,KACd/uB,OAAOjC,KAAMxC,KAAKqoB,OAAOyN,aAGzBrxB,OAAOjC,KAAM,OAErB,KAAK,EAER,OADAxC,MAAKi0B,uBACExvB,QASR84B,kBAAmB,WAElB,IADA,GAAI94B,WACEzE,KAAK4R,OAAS5R,KAAKuc,KAAsB,MAAfvc,KAAK4R,OAAe,CAClD5R,KAAKwzB,OAAOxzB,KAAKoc,IAAIoP,SACrB,IAAIhpB,MAAOxC,KAAK4nB,OAAOziB,aAMvB,IALInF,KAAKqoB,OAAOmL,OAAO,KACrB/uB,OAAOjC,MAAQxC,KAAKqoB,OAAOyN,YAE3BrxB,OAAOjC,MAAQ,KAEE,MAAfxC,KAAK4R,MAAe,KACxB5R,MAAKqoB,OAEP,MAAO5jB,SAQR61B,qBAAsB,WACrB,OAAOt6B,KAAK4R,OACV,IAAK5R,MAAKoc,IAAIgC,WACZ,MAAOpe,MAAK62B,eAAc,GAAO,EAEnC,KAAK72B,MAAKoc,IAAImI,WACd,IAAKvkB,MAAKoc,IAAIqI,QACZ,GAAIyR,MAAOl2B,KAAKy2B,kBAChB,OAAIz2B,MAAK4R,QAAU5R,KAAKoc,IAAI6F,QACnBjiB,KAAKi2B,WAAWC,OAEvBl2B,KAAK8zB,MAAM9zB,KAAKoc,IAAI6F;AAEpBjiB,KAAKqoB,OACE,KAEX,KAAKroB,MAAKoc,IAAI6F,QACZ,MAAOjiB,MAAKi2B,YAAY,EAAG,EAAG,GAChC,KAAKj2B,MAAKoc,IAAI+F,YACZ,MAAOniB,MAAKy3B,gBACd,KAAKz3B,MAAKoc,IAAIgG,QACZ,MAAOpiB,MAAK43B,YACd,KAAK53B,MAAKoc,IAAI+H,gBACZnkB,KAAKszB,WACH,8DAGF,IAAI9uB,MAAOxE,KAAKwE,KAAK,OAOrB,OANAxE,MAAKqoB,OAAOmL,OAAO,MAAQxzB,KAAKqoB,OAChCroB,KAAKwzB,OAAO,MAAQxzB,KAAKqoB,OACzB7jB,KAAOA,KAAKxE,KAAKqD,MAAMY,OAAOC,UAC5BlE,KAAKqD,MAAMc,SAEbnE,KAAKwzB,OAAO,MAAQxzB,KAAKqoB,OAClB7jB,IACT,SACE,MAAOxE,MAAKu6B,mBAMjBA,eAAgB,WAEf,OAAOv6B,KAAK4R,OAEV,IAAK,IAAK,MAAO5R,MAAKs5B,iBAAgB,EAEtC,KAAKt5B,MAAKoc,IAAI8C,KAAM,MAAOlf,MAAKqoB,OAAO6R,SAEvC,KAAKl6B,MAAKoc,IAAI2E,SAAU,MAAO/gB,MAAKw9B,aAEpC,KAAKx9B,MAAKoc,IAAI4D,MAAO,MAAOhgB,MAAKqoB,OAAOuS,UAExC,KAAK56B,MAAKoc,IAAIgE,UAAW,MAAOpgB,MAAKqoB,OAAOwS,cAE5C,KAAK76B,MAAKoc,IAAIsD,QAAS,MAAO1f,MAAKqoB,OAAOoS,YAE1C,KAAKz6B,MAAKoc,IAAI0D,KAAM,MAAO9f,MAAKqoB,OAAOsS,SAEvC,KAAK36B,MAAKoc,IAAImM,UAAW,MAAOvoB,MAAKk3B,cAErC,KAAKl3B,MAAKoc,IAAIoM,cAAe,MAAOxoB,MAAKi3B,kBAEzC,KAAKj3B,MAAKoc,IAAIoC;AACZ,GAAI/Z,QAASzE,KAAKwE,KAAK,UAAWmU,KAAO,IAKzC,OAJK3Y,MAAKqoB,OAAOmM,GAAG,SAClB7b,KAAO3Y,KAAK81B,aAEd91B,KAAKi0B,uBACExvB,OAAOkU,KAGhB,KAAK3Y,MAAKoc,IAAImF,QACd,IAAKvhB,MAAKoc,IAAIqF,WACZ,GAAIhd,QAASzE,KAAKwE,KAChBxE,KAAK4R,QAAU5R,KAAKoc,IAAIqF,WAAa,WAAa,SACjD3U,MAAQ,IAMX,OALA9M,MAAKqoB,OACc,MAAfroB,KAAK4R,OAAiB5R,KAAK4R,QAAU5R,KAAKoc,IAAIkQ,cAChDxf,MAAQ9M,KAAK81B,aAEf91B,KAAKi0B,uBACExvB,OAAOqI,MAEhB,KAAK9M,MAAKoc,IAAIyH,SACZ,GAAIpf,QAASzE,KAAKwE,KAAK,UACnByG,MAAQjL,KAAKqoB,OAAO8O,UAAUn3B,KAAKg9B,qBAAsB,IAE7D,OADAh9B,MAAKi0B,uBACExvB,OAAOwG,MAEhB,KAAKjL,MAAKoc,IAAIiI,SACZ,GAAIoZ,UAAWz9B,KAAK4R,MAAO5R,KAAKqD,MAAM2kB,YAClCvjB,OAASzE,KAAKwE,KAAK,SACvB,IAAIxE,KAAKqoB,OAAOzW,QAAU5R,KAAKoc,IAAIsS,eAAgB,CAEjD1uB,KAAKqD,MAAMgZ,OAAO9a,KAAKk8B,QACvB,IAAI9kB,MAAO3Y,KAAKqoB,OAAOyN,WAEvB,OADA91B,MAAKwzB,OAAO,MAAQxzB,KAAKkzB,mBAClBva,KAET,GAAI1N,OAAQjL,KAAK09B,4BAEjB,OADA19B,MAAKi0B,uBACExvB,OAAOwG,MAEhB,KAAKjL,MAAKoc,IAAIyF,OACZ,GAAIpd,QAASzE,KAAKwE,KAAK,QACnBpD,KAAOpB,KAAKqoB,OAAO8O,UAAUn3B,KAAK81B,UAAW,IAEjD,OADA91B,MAAKi0B;AACExvB,OAAOrD,KAEhB,KAAKpB,MAAKoc,IAAIgO,cACZ,GAAI3lB,QAASzE,KAAKwE,KAAK,UAAWiI,MAAQzM,KAAK4nB,MAE/C,OADA5nB,MAAKqoB,OACE5jB,OAAOgI,MAEhB,KAAKzM,MAAKoc,IAAI6I,QACZ,GAAIxgB,QAASzE,KAAKwE,KAAK,QACvBxE,MAAKqoB,OAAOmL,OAAO,MAAQxzB,KAAKqoB,MAChC,IAAIpd,OAAQjL,KAAKm3B,UAAUn3B,KAAK61B,cAAe,IAG/C,OAFA71B,MAAKwzB,OAAO,MAAQxzB,KAAKqoB,OACzBroB,KAAKwzB,OAAO,MAAQxzB,KAAKkzB,mBAClBzuB,OAAOwG,MAEhB,KAAKjL,MAAKoc,IAAIoE,UACZ,GACEzb,MAEAiL,KAHEvL,OAASzE,KAAKwE,KAAK,WAErB6I,OAKF,IAHArN,KAAKqoB,OAAOmL,OAAO,MAAQxzB,KAAKqoB,OAChCtjB,KAAO/E,KAAKu9B,oBACZv9B,KAAKwzB,OAAO,MAAQxzB,KAAKqoB,OACN,MAAfroB,KAAK4R,MAAe,CAEtB,IADA5R,KAAKkzB,mBACClzB,KAAK4R,OAAS5R,KAAKuc,KAAOvc,KAAK4R,QAAU5R,KAAKoc,IAAIsE,cAEtDrT,KAAK9L,KAAKvB,KAAKi7B,qBAEjBj7B,MAAKwzB,OAAOxzB,KAAKoc,IAAIsE,eAAiB1gB,KAAKqoB,OAC3CroB,KAAKi0B,uBACLjkB,KAAOhQ,KAAK+xB,IAAIxR,QAAQtQ,eACnB,IAAmB,MAAfjQ,KAAK4R,MAAe,CAE7B,IADA5R,KAAKkzB,mBACClzB,KAAK4R,OAAS5R,KAAKuc,KAAsB,MAAfvc,KAAK4R,OAEnCvE,KAAK9L,KAAKvB,KAAKi7B,qBAEjBj7B,MAAKwzB,OAAO,MAAQxzB,KAAKqoB,OACzBrY,KAAOhQ,KAAK+xB,IAAIxR,QAAQrQ,eACnB,CAEL,IADAlQ,KAAKwzB,OAAO,MAAQxzB,KAAKkzB,mBACnBlzB,KAAK4R,OAAS5R,KAAKuc,KAAOvc,KAAK4R,QAAU5R,KAAKoc,IAAIoE,WAEtDnT,KAAK9L,KAAKvB,KAAKi7B;AAEjBjrB,KAAOhQ,KAAK+xB,IAAIxR,QAAQpQ,UAE1B,MAAO1L,QAAOM,KAAMsI,KAAM2C,KAE5B,KAAKhQ,MAAKoc,IAAIsC,MACZ,MAAO1e,MAAK29B,UAEd,KAAK39B,MAAKoc,IAAI4C,QACZ,GAAIva,QAASzE,KAAKwE,KAAK,SACnBmU,KAAO3Y,KAAKqoB,OAAOyN,WAEvB,OADA91B,MAAKi0B,uBACExvB,OAAOkU,KAEhB,KAAK,IACL,IAAK3Y,MAAKoc,IAAIkQ,YAEZ,MADAtsB,MAAKqoB,OACE,IAET,KAAKroB,MAAKoc,IAAIoP,SACZ,GAAIiS,UAAWz9B,KAAK4R,MAAO5R,KAAKqD,MAAM2kB,YAClC5U,MAAQpT,KAAK4nB,MACjB,IAA0B,MAAtB5nB,KAAKqoB,OAAOzW,MAAe,CAC7B,GAAInN,QAASzE,KAAKwE,KAAK,QAEvB,OADAxE,MAAKqoB,OACE5jB,OAAO2O,OAGdpT,KAAKqD,MAAMgZ,OAAO9a,KAAKk8B,QACvB,IAAI9kB,MAAO3Y,KAAKqoB,OAAOyN,WAEvB,OADA91B,MAAKwzB,QAAQ,IAAKxzB,KAAKoc,IAAIkQ,eAAiBtsB,KAAKkzB,mBAC1Cva,IAGX,KAAK3Y,MAAKoc,IAAIuF,OACZ,GAAIld,QAASzE,KAAKwE,KAAK,QAAS4O,MAAQ,IAKxC,OAJIpT,MAAKqoB,OAAOmL,OAAOxzB,KAAKoc,IAAIoP,YAC9BpY,MAAQpT,KAAK4nB,OACb5nB,KAAKqoB,OAAO4L,wBAEPxvB,OAAO2O,MAEhB,SACE,GAAIuF,MAAO3Y,KAAK81B,WAEhB,OADA91B,MAAKi0B,uBACEtb,OAQZ2gB,gBAAiB,SAASsE,KACzB,GAAIn5B,QAASzE,KAAKwE,KAAK,QACvBxE,MAAKwzB,OAAO,MAAQxzB,KAAKkzB,kBACzB,IAAI7lB,MAAOuwB,IACT59B,KAAKm7B,sBACHn7B,KAAKs9B;AAGT,MADAt9B,MAAKwzB,OAAO,MAAQxzB,KAAKkzB,mBAClBzuB,OAAO,KAAM4I,aAIlBwwB,KAAK,SAASt/B,QAAQkB,OAAOJ,SAMnC,YAEAI,QAAOJ,SASLm+B,YAAa,WACXx9B,KAAKwzB,OAAOxzB,KAAKoc,IAAI2E,WAAa/gB,KAAKqoB,MACvC,IAAkCjb,MAAMC,KAAMrC,UAA1CvG,OAASzE,KAAKwE,KAAK,SAMvB,OALAxE,MAAKwzB,OAAO,MAAQxzB,KAAKqoB,OACzBjb,KAAOpN,KAAK81B,YACZ91B,KAAKwzB,OAAO,MAAQxzB,KAAKqoB,OACzBrd,UAA4B,MAAfhL,KAAK4R,MAClBvE,KAAOrN,KAAK89B,wBACLr5B,OAAO2I,KAAMC,KAAMrC,YAQ3B8yB,sBAAuB,WAEtB,GAAItK,QAAS,KACX/uB,OAASzE,KAAKwE,KAAK,SACnByG,QAkBF,KAjBmB,MAAfjL,KAAK4R,MACP4hB,OAAS,IACe,MAAfxzB,KAAK4R,MACd4hB,OAASxzB,KAAKoc,IAAI6E,YAElBjhB,KAAKwzB,QAAQ,IAAK,MAIM,MAAtBxzB,KAAKqoB,OAAOzW,OACd5R,KAAKqoB,OAGHroB,KAAK4R,QAAU5R,KAAKoc,IAAIkQ,aAC1BtsB,KAAKqoB,OAGDroB,KAAK4R,QAAU5R,KAAKuc,KAAOvc,KAAK4R,QAAU4hB,QAC9CvoB,MAAM1J,KAAMvB,KAAK+9B,eAAevK,QAOlC,OAJAxzB,MAAKwzB,OAAOA,SAAWxzB,KAAKqoB,OACxBmL,SAAWxzB,KAAKoc,IAAI6E,aACtBjhB,KAAKi0B,uBAEAxvB,OAAO,KAAMwG,QAOrB8yB,eAAgB,SAASC,WACxB,GAAIv5B,QAASzE,KAAKwE,KAAK,QAAS4I,KAAO,KAAMC,KAAO,KAAMpC,QAW1D,KAVIjL,KAAK4R,QAAU5R,KAAKoc,IAAI+E,OAC1B/T,KAAOpN,KAAKqoB,OAAOyN,YACV91B,KAAK4R,QAAU5R,KAAKoc,IAAIiF,UAEjCrhB,KAAKqoB,OAELroB,KAAKwzB,QAAQxzB,KAAKoc,IAAI+E,OAAQnhB,KAAKoc,IAAIiF;AAEzCrhB,KAAKwzB,QAAQ,IAAK,OAASxzB,KAAKqoB,OAChChb,KAAOrN,KAAKwE,KAAK,SAEfxE,KAAK4R,OAAS5R,KAAKuc,KAChBvc,KAAK4R,QAAUosB,WACfh+B,KAAK4R,QAAU5R,KAAKoc,IAAI+E,QACxBnhB,KAAK4R,QAAU5R,KAAKoc,IAAIiF,WAE3BpW,MAAM1J,KAAKvB,KAAKs6B,uBAElB,OAAO71B,QACL2I,KAAMnC,MAAM1L,OAAS,EAAI8N,KAAK,KAAMpC,OAAS,aAK7CgzB,KAAK,SAAS1/B,QAAQkB,OAAOJ,SAMnCI,OAAOJ,SAYLs+B,SAAU,WACR39B,KAAKwzB,OAAOxzB,KAAKoc,IAAIsC,MACrB,IAEErR,MAFE5I,OAASzE,KAAKwE,KAAK,OACrBoW,OAAS,KAETD,UAIF,KAFAtN,KAAOrN,KAAKqoB,OAAOkS,iBAEbv6B,KAAKu0B,iBAAiB3iB,QAAU5R,KAAKoc,IAAIwC,SAAS,CACtD,GAAIsf,MAAOl+B,KAAKwE,KAAK,SAAUO,QAAW2I,SAAW,IACrD1N,MAAKqoB,OAAOmL,OAAO,MAAQxzB,KAAKqoB,OAChCtjB,KAAO/E,KAAKm3B,UACVn3B,KAAKs2B,oBAAqB,KAAK,GAEjC5oB,SAAW1N,KAAK61B,eAAc,GAAM,GAAO,GAC3C71B,KAAKwzB,OAAO,KACZ7Y,QAAQpZ,KACN28B,KAAKl+B,KAAKqoB,OAAOkS,iBAAkBx1B,KAAM2I,WAM7C,MAHI1N,MAAK4R,QAAU5R,KAAKoc,IAAI0C,YAC1BlE,OAAS5a,KAAKqoB,OAAOkS,kBAEhB91B,OAAO4I,KAAMsN,QAASC,eAI3BujB,KAAK,SAAS5/B,QAAQkB,OAAOJ,SAOnC,YAEAI,QAAOJ,SAMLq7B,gBAAiB,SAAS9oB,OACxB,GAAIvE,MAAOrN,KAAKwE,KAAK,SAAUyG,QAE/B,KADIjL,KAAKwzB,OAAO,MAAMxzB,KAAKqoB,OACrBroB,KAAK4R,OAAS5R,KAAKuc,KAAOvc,KAAK4R,QAAUA,OAC7C3G,MAAM1J,KAAKvB,KAAKs6B;AAIlB,MAFIt6B,MAAKwzB,OAAO5hB,QAAQ5R,KAAKqoB,OAC7BroB,KAAKi0B,uBACE5mB,KAAK,KAAMpC,QASnBksB,UAAW,SAAS+G,KAAME,UAAWC,wBACpC,GAAI55B,UAOJ,IALIzE,KAAK4R,OAASwsB,YACZC,wBAAwB55B,OAAOlD,KAAK,IACxCvB,KAAKqoB,QAGe,kBAAX,OACT,EAEE,IADA5jB,OAAOlD,KAAK28B,KAAKz8B,MAAMzB,UACnBA,KAAK4R,OAASwsB,UAChB,YAEIp+B,KAAKqoB,OAAOzW,OAAS5R,KAAKuc,SAC7B,CACL,IAAIvc,KAAKwzB,OAAO0K,MAGd,QAEF,KAJEz5B,OAAOlD,KAAKvB,KAAK4nB,QAIZ5nB,KAAKqoB,OAAOzW,OAAS5R,KAAKuc,KAC3Bvc,KAAK4R,OAASwsB,WAEdp+B,KAAKqoB,OAAOzW,OAASssB,MACzBz5B,OAAOlD,KAAKvB,KAAK4nB,QAGrB,MAAOnjB,SAkBR8xB,eAAgB,WACf,MAAOv2B,MAAKm3B,UACVn3B,KAAKs2B,oBAAqB,KAAK,IAmBlCoH,2BAA4B,WAC3B,MAAO19B,MAAKm3B,UAAU,WACpB,GAAI3yB,MAAOxE,KAAKwE,KAAK,UAEnBkJ,SAAW1N,KAAKwE,KAAK,WAEvB,IAAIxE,KAAKwzB,OAAOxzB,KAAKoc,IAAIyP,YAAa,CACpC,GAAIrpB,MAAOxC,KAAK4nB,OAAO1jB,UAAU,EACjClE,MAAKqoB,OACL3a,SAAWA,SAASlL,MAAM,OAE1BkL,UAAWA,SAAS,QAAQ,EAE9B,OAAmB,MAAf1N,KAAK4R,MACApN,KAAKkJ,SAAU1N,KAAKqoB,OAAOyN,aAE3BpoB,UAER,YAKD4wB,KAAK,SAAS//B,QAAQkB,OAAOJ;AAMnC,YACAI,QAAOJ,SAiBLw2B,cAAe,SAAS0I,UAAWrB,SAAUruB,OAC3C,GAAIpK,OASJ,IANKoK,OAAwB,MAAf7O,KAAK4R,QACjB/C,OAAQ,EACR7O,KAAKqoB,QAIHroB,KAAKw0B,IAAIx0B,KAAKoc,IAAIyP,WAAY,MAChCpnB,OAASzE,KAAKw+B,wBAAwBtB,SAAUruB,WAC3C,IAAI7O,KAAKw0B,IAAIx0B,KAAKoc,IAAIkS,eAAgBtuB,KAAKoc,IAAIoP,SAAUxrB,KAAKoc,IAAImH,cAAe,CACtF9e,OAASzE,KAAKwE,MACd,IAAIhC,MAAOxC,KAAKs2B,qBAChB,IACEt2B,KAAK4R,OAAS5R,KAAKoc,IAAIsS,gBACN,KAAd1uB,KAAK4R,MACR,CAEA,GAAI6sB,SAAUj8B,KAAKA,KAAK2C,aAEtBV,QADc,SAAZg6B,QACOh6B,OAAO,WAAW,GACN,UAAZg6B,QACAh6B,OAAO,WAAW,GAGlBA,OAAO,WAAYjC,UAG9BiC,QAASjC,SAEFxC,MAAK4R,QAAU5R,KAAKoc,IAAIiI,UACjC5f,OAASzE,KAAKwE,KAAK,YACnBxE,KAAKqoB,OACL5jB,OAASA,OAAO,WAEhBzE,KAAKwzB,OAAO,WAQd,OAJIxzB,MAAK4R,QAAU5R,KAAKoc,IAAIsS,iBAC1BjqB,OAASzE,KAAKg5B,mBAAmBv0B,OAAQy4B,WAGpCl9B,KAAKm4B,8BAA8B1zB,OAAQ85B,UAAWrB,WAI9DlE,mBAAoB,SAASj0B,KAAMm4B,UAClC,GAAIz4B,QAASzE,KAAKwE,KAAK,gBACnBL,OAAS,IACb,IAAInE,KAAKqoB,OAAOmM,IAAIx0B,KAAKoc,IAAIyP,WAAY,MACvC1nB,OAASnE,KAAKw+B,wBAAwBtB,UAAU,OAC3C,IACLl9B,KAAK4R,QAAU5R,KAAKoc,IAAIoP,UACrBxrB,KAAK4R,QAAU5R,KAAKoc,IAAI6F,QAC3B;AACA9d,OAASnE,KAAKwE,KAAK,WACnB,IAAIhC,MAAOxC,KAAK4nB,MAChB5nB,MAAKqoB,OACLlkB,OAASA,OAAO3B,UACX,CACLxC,KAAK8zB,OAAO9zB,KAAKoc,IAAIyP,WAAY7rB,KAAKoc,IAAIoP,WAE1CrnB,OAASnE,KAAKwE,KAAK,WACnB,IAAIhC,MAAOxC,KAAK4nB,MAChB5nB,MAAKqoB,OACLlkB,OAASA,OAAO3B,MAElB,MAAOiC,QAAOM,KAAMZ,SAGrBg0B,8BAA+B,SAAS1zB,OAAQ85B,UAAWrB,UAC1DwB,oBACA,KAAM1+B,KAAK4R,OAAS5R,KAAKuc,KACvB,OAAOvc,KAAK4R,OACV,IAAK,IACH,GAAI2sB,UAEF,MAAO95B,OAEPA,QAASzE,KAAKwE,KAAK,QACjBC,OAASzE,KAAKq4B,8BAGlB,MACF,KAAK,IACH,GAAI7zB,MAAOxE,KAAKwE,KAAK,eACrBxE,MAAKqoB,MACL,IAAIlkB,SAAS,CACT+4B,WACF/4B,OAASnE,KAAKi9B,yBACdj9B,KAAKwzB,OAAO,MAAQxzB,KAAKqoB,QAGN,MAAfroB,KAAK4R,OACPzN,OAASnE,KAAK81B,YACd91B,KAAKwzB,OAAO,MAAQxzB,KAAKqoB,QAEzBroB,KAAKqoB,OAGT5jB,OAASD,KAAKC,OAAQN,OACtB,MACF,KAAKnE,MAAKoc,IAAIiP,kBACZ,GAAI7mB,MAAOxE,KAAKwE,KAAK,kBACjBO,KAAO,IACX,QAAO/E,KAAKqoB,OAAOzW,OACjB,IAAK5R,MAAKoc,IAAIoP,SACZzmB,KAAO/E,KAAKwE,KAAK,WACjB,IAAIhC,MAAOxC,KAAK4nB,MAGhB,IAFA5nB,KAAKqoB,OACLtjB,KAAOA,KAAKvC,MACRxC,KAAK4R,QAAU5R,KAAKoc,IAAIyP,WAAY,CACtC,GAAI1U,OAAQnX,KAAKwE,KAAK;AACtBhC,KAAOxC,KAAK4nB,OAAO1jB,UAAU,GAC7BlE,KAAKqoB,OACLtjB,KAAO/E,KAAKwE,KAAK,aACdO,KAAMoS,MAAM3U,MAAM,IACnB,UAEEuC,KAAKmR,KAAOnR,KAAK0H,MAAM,GAAGyJ,MAC5BnR,KAAKmR,IAAItS,MAAQmB,KAAK0H,MAAM,GAAGyJ,IAAItS,WAEhC,IAAmB,MAAf5D,KAAK4R,MAAe,CAC7B,GAAI+G,MAAO3Y,KAAKqoB,OAAOyN,WACvB91B,MAAKwzB,OAAO,MAAQxzB,KAAKqoB,OACzBtjB,KAAO/E,KAAKwE,KAAK,aACdO,KAAM4T,MACP,UAEE5T,KAAKmR,KAAOnR,KAAK0H,MAAM,GAAGyJ,MAC5BnR,KAAKmR,IAAItS,MAAQmB,KAAK0H,MAAM,GAAGyJ,IAAItS,OAGvC,KACF,KAAK5D,MAAKoc,IAAIyP,WACZ9mB,KAAO/E,KAAKwE,KAAK,WACjB,IAAIhC,MAAOxC,KAAK4nB,OAAO1jB,UAAU,EACjClE,MAAKqoB,OACLtjB,KAAOA,KAAKvC,MAAM,EAClB,MACF,KAAK,IACHxC,KAAKqoB,OAAOmL,QAAQ,IAAKxzB,KAAKoc,IAAIyP,aACf,MAAf7rB,KAAK4R,OAEP7M,KAAO/E,KAAKqoB,OAAOyN,YACnB91B,KAAKwzB,OAAO,MAAQxzB,KAAKqoB,QAGzBtjB,KAAO/E,KAAK81B,WAEd,MACF,KAAK,IACH/wB,KAAO/E,KAAKqoB,OAAOyN,YACnB91B,KAAKwzB,OAAO,MAAQxzB,KAAKqoB,MACzB,MACF,SACEroB,KAAK8zB,OAAO9zB,KAAKoc,IAAIoP,SAAUxrB,KAAKoc,IAAIyP,aAExC9mB,KAAO/E,KAAKwE,KAAK,WACjB,IAAIhC,MAAOxC,KAAK4nB,MAChB5nB,MAAKqoB,OACLtjB,KAAOA,KAAKvC,MAGhBiC,OAASD,KAAKC,OAAQM,KACtB,MACF,SACE,KAAM25B,qBAGZ,MAAOj6B,SAKRw4B,uBAAwB,WACvB,GAAI94B,QAASnE,KAAKwE,MAClB,IAAIxE,KAAK4R,QAAU5R,KAAKoc,IAAIoP,SAAU;AACpC,GAAI5D,MAAO5nB,KAAK4nB,OACZ+W,WAAyB,MAAZ/W,KAAK,EACtBA,MAAOA,KAAK1jB,UAAU,EAAG0jB,KAAKroB,OAAS,GACvCS,KAAKqoB,OACLlkB,OAASA,OACP,SAAUw6B,WAAY3+B,KAAKy8B,sBAAsB7U,WAE9C,IAAI5nB,KAAK4R,QAAU5R,KAAKoc,IAAIwP,aAAc,CAC/C,GAAIgT,KAAM5+B,KAAK4nB,MACf5nB,MAAKqoB,OACLlkB,OAASA,OAAO,SAAUy6B,SACrB,IAAI5+B,KAAK4R,QAAU5R,KAAKoc,IAAIyP,WAAY,CAC7C,GAAIrpB,MAAOxC,KAAK4nB,OAAO1jB,UAAU,EACjClE,MAAKqoB,OACLlkB,OAASA,OAAO,WAAY3B,MAAM,OAC7B,CACLxC,KAAKwzB,QACHxzB,KAAKoc,IAAIoP,SACTxrB,KAAKoc,IAAIwP,aACT5rB,KAAKoc,IAAIyP,YAGX,IAAIjE,MAAO5nB,KAAK4nB,MAChB5nB,MAAKqoB,OACLlkB,OAASA,OAAO,UAAU,EAAOyjB,MAEnC,MAAOzjB,SAaRq6B,wBAAyB,SAAStB,SAAUruB,OAE3C,IADA,GAAIpK,QAASzE,KAAKg9B,qBAAqBnuB,OACjC7O,KAAK4R,OAAS5R,KAAKuc,KAAK,CAC5B,GAAI/X,MAAOxE,KAAKwE,MAChB,IAAkB,KAAdxE,KAAK4R,MAAc,CACrB,GAAIzN,QAAS,IAEXA,QADE+4B,SACOl9B,KAAKqoB,OAAO4U,yBAEU,MAAtBj9B,KAAKqoB,OAAOzW,MAAgB,KAAO5R,KAAK+1B,kBAEnD/1B,KAAKwzB,OAAO,MAAQxzB,KAAKqoB,OACzB5jB,OAASD,KAAK,eAAgBC,OAAQN,YACjC,CAAA,GAAkB,KAAdnE,KAAK4R,OAAiBsrB,SAI1B,KAHL,IAAI/4B,QAASnE,KAAKqoB,OAAOyN,WACzB91B,MAAKwzB,OAAO,MAAQxzB,KAAKqoB,OACzB5jB,OAASD,KAAK,eAAgBC,OAAQN;EAG1C,MAAOM,SAORu4B,qBAAsB,SAASnuB,OAC9B,GAAIpK,QAASzE,KAAKwE,KAAK,WACvB,IAAIxE,KAAKwzB,QAAQxzB,KAAKoc,IAAIyP,WAAY,OAAS7rB,KAAK4R,QAAU5R,KAAKoc,IAAIyP,WAAY,CAEjF,GAAIrpB,MAAOxC,KAAK4nB,OAAO1jB,UAAU,EACjClE,MAAKqoB,OACL5jB,OAASA,OAAOjC,KAAMqM,WAItB,QAFmB,MAAf7O,KAAK4R,OAAe5R,KAAKqoB,OAEtBroB,KAAK4R,OACV,IAAK,IACH,GAAI+G,MAAO3Y,KAAKqoB,OAAOyN,WACvB91B,MAAKwzB,OAAO,MAAQxzB,KAAKqoB,OACzB5jB,OAASA,OAAOkU,KAAM9J,MACtB,MACF,KAAK,IACHpK,OAASA,OAAOzE,KAAKg9B,sBAAqB,GAAQnuB,MAClD,MACF,KAAK7O,MAAKoc,IAAIyP,WACZ,GAAIrpB,MAAOxC,KAAK4nB,OAAO1jB,UAAU,GAC7BM,KAAOxE,KAAKwE,KAAK,WACrBxE,MAAKqoB,OACL5jB,OAASA,OAAOD,KAAKhC,MAAM,GAAQqM,MACnC,MACF,SACE7O,KAAK8zB,OAAO,IAAK,IAAK9zB,KAAKoc,IAAIyP,YAE/B,IAAIrpB,MAAOxC,KAAK4nB,MAChB5nB,MAAKqoB,OACL5jB,OAASA,OAAOjC,KAAMqM,OAG5B,MAAOpK,eAILo6B,KAAK,SAAStgC,QAAQkB,OAAOJ,SAQnCI,OAAOJ,SACL4pB,QACEuM,IAAK,kBACLQ,IAAK,QACL8B,IAAK,4BACLE,IAAK,oBACLkB,IAAK,WACLe,IAAK,6BACLO,IAAK,mBACLO,IAAK,eACLG,IAAK,eACLU,IAAK,UACLuB,IAAK,UACLU,IAAK;AACLI,IAAK,iBACLE,IAAK,SACLG,IAAK,YACLO,IAAK,iBACLC,IAAK,cACLC,IAAK,iBACLC,IAAK,OACLC,IAAK,OACLC,IAAK,UACLC,IAAK,UACLC,IAAK,OACLC,IAAK,QACLC,IAAK,WACLC,IAAK,UACLC,IAAK,aACLC,IAAK,WACLC,IAAK,WACLC,IAAK,WACLC,IAAK,SACLC,IAAK,gBACLC,IAAK,UACLC,IAAK,YACLC,IAAK,YACLC,IAAK,QACLC,IAAK,UACLC,IAAK,SACLC,IAAK,YACLC,IAAK,UACLC,IAAK,eACLC,IAAK,SACLC,IAAK,UACLC,IAAK,eACLC,IAAK,gBACLC,IAAK,cACLC,IAAK,cACLC,IAAK,iBACLC,IAAK,cACLC,IAAK,cACLC,IAAK,aACLC,IAAK,cACLC,IAAK,aACLC,IAAK,aACLC,IAAK,QACLC,IAAK,QACLC,IAAK,eACLC,IAAK,gBACLC,IAAK,eACLC,IAAK,gBACLC,IAAK,gBACLC,IAAK,OACLC,IAAK,OACLC,IAAK,iBACLC,IAAK,qBACLC,IAAK,aACLC,IAAK,iBACLC,IAAK,wBACLC,IAAK,wBACLC,IAAK,eACLC,IAAK,aACLC,IAAK,gBACLC,IAAK;AACLC,IAAK,eACLC,IAAK,gBACLC,IAAK,cACLC,IAAK,eACLC,IAAK,SACLC,IAAK,UACLC,IAAK,UACLC,IAAK,eACLC,IAAK,aACLC,IAAK,iBACLC,IAAK,iBACLC,IAAK,UACLC,IAAK,aACLC,IAAK,UACLC,IAAK,aACLC,IAAK,UACLC,IAAK,UACLC,IAAK,YACLC,IAAK,cACLC,IAAK,eACLC,IAAK,QACLC,IAAK,WACLC,IAAK,cACLC,IAAK,YACLC,IAAK,UACLC,IAAK,QACLC,IAAK,cACLC,IAAK,WACLC,IAAK,SACLC,IAAK,cACLC,IAAK,SACLC,IAAK,YACLC,IAAK,WACLC,IAAK,eACLC,IAAK,aACLC,IAAK,6BACLC,IAAK,YACLC,IAAK,YACLC,IAAK,SACLC,IAAK,SACLC,IAAK,QACLC,IAAK,YACLC,IAAK,aACLC,IAAK,WACLC,IAAK,SACLC,IAAK,kBACLC,IAAK,gBACLC,IAAK,YACLC,IAAK,aACLC,IAAK,aACLC,IAAK,uBACLC,IAAK,cACLC,IAAK,eACLC,IAAK,YACLC,IAAK,gBACLC,IAAK,aACLC,IAAK,aACLC,IAAK,QACLC,IAAK,cACLC,IAAK,eAEP5pB,OACE6H,gBAAiB;AACjBV,MAAO,IACPqI,0BAA2B,IAC3BT,kBAAmB,IACnBG,SAAU,IACV8B,2BAA4B,IAC5B5B,iBAAkB,IAClB8B,aAAc,IACd5B,aAAc,IACd7H,QAAS,IACTE,QAAS,IACTjB,UAAW,IACXE,eAAgB,IAChBJ,OAAQ,IACRK,UAAW,IACXE,eAAgB,IAChBE,YAAa,IACb+K,eAAgB,IAChBzN,KAAM,IACN3B,KAAM,IACNI,QAAS,IACTI,QAAS,IACTI,KAAM,IACNE,MAAO,IACPe,SAAU,IACVQ,QAAS,IACTE,WAAY,IACZjD,SAAU,IACVqF,SAAU,IACVQ,SAAU,IACVxC,OAAQ,IACRuI,cAAe,IACfnF,QAAS,IACT7E,UAAW,IACXI,UAAW,IACX9B,MAAO,IACPM,QAAS,IACT2C,OAAQ,IACR7C,UAAW,IACXF,QAAS,IACT8B,aAAc,IACdwE,OAAQ,IACRxC,QAAS,IACT6M,aAAc,IACdnB,cAAe,IACfmC,YAAa,IACb/B,YAAa,IACbmC,eAAgB,IAChBG,YAAa,IACbE,YAAa,IACbG,WAAY,IACZG,YAAa,IACbxB,WAAY,IACZM,WAAY,IACZd,MAAO,IACPnB,MAAO,IACPiD,aAAc,IACdH,cAAe,IACf1L,aAAc,IACdE,cAAe,IACfE,cAAe,IACfoK,KAAM,IACNM,KAAM,IACNlB,eAAgB,IAChBM,mBAAoB,IACpBL,WAAY,IACZM,eAAgB,IAChBO,sBAAuB,IACvBE,sBAAuB;AACvBvP,aAAc,IACdkF,WAAY,IACZG,cAAe,IACfI,cAAe,IACfE,aAAc,IACdE,cAAe,IACfE,YAAa,IACbE,aAAc,IACd5I,OAAQ,IACR8D,QAAS,IACT+L,QAAS,IACTD,aAAc,IACdzP,WAAY,IACZ8Q,eAAgB,IAChBR,eAAgB,IAChBvJ,QAAS,IACTE,WAAY,IACZpD,QAAS,IACTsC,WAAY,IACZnC,QAAS,IACTqC,QAAS,IACTpC,UAAW,IACXF,YAAa,IACbG,aAAc,IACdM,MAAO,IACPmC,SAAU,IACVF,YAAa,IACbF,UAAW,IACXrG,QAAS,IACTkE,MAAO,IACPmB,YAAa,IACbvE,SAAU,IACVI,OAAQ,IACRyB,YAAa,IACbE,OAAQ,IACRE,UAAW,IACXnB,SAAU,IACVI,aAAc,IACdV,WAAY,IACZuM,2BAA4B,IAC5BlB,UAAW,IACXD,UAAW,IACXvN,OAAQ,IACRE,OAAQ,IACRE,MAAO,IACPV,UAAW,IACXI,WAAY,IACZF,SAAU,IACVU,OAAQ,IACRiP,gBAAiB,IACjBI,cAAe,IACfnQ,UAAW,IACX4O,WAAY,IACZpD,WAAY,IACZC,qBAAsB,IACtB4D,YAAa,IACbhE,aAAc,IACdC,UAAW,IACXC,cAAe,IACfoI,WAAY,IACZhB,WAAY,IACZa,MAAO,IACPD,YAAa,IACbR,YAAa,WAIXmW,cAAc,SAAS5nC,QAAQkB,OAAOJ,SAe5C,QAAS+mC,SAAQpiC,IAAKqiC;AAGpB,IAFA,GAAIC,MAAO5hC,OAAO4hC,KAAKtiC,KACnBhF,EAAIsnC,KAAK/mC,OACNP,KAAK,CACV,GAAIqqB,GAAIid,KAAKtnC,GACTw4B,IAAMxzB,IAAIqlB,EACF,QAARmO,UACK6O,IAAGhd,GACc,kBAARmO,KAChB6O,GAAGhd,GAAKmO,IAAI+O,KAAKF,IACRhlC,MAAMgyB,QAAQmE,KACvB6O,GAAGhd,GAAKhoB,MAAMgyB,QAAQgT,GAAGhd,IAAMgd,GAAGhd,GAAG5oB,OAAO+2B,KAAOA,IAC3B,gBAARA,KAChB6O,GAAGhd,GAAsB,gBAAVgd,IAAGhd,GAAkB+c,QAAQ5O,IAAK6O,GAAGhd,IAAMmO,IAE1D6O,GAAGhd,GAAKmO,IAGZ,MAAO6O,IA1BT,GAAIhjC,OAAQ9E,QAAQ,WAChB6E,OAAS7E,QAAQ,YACjB8d,OAAS9d,QAAQ,YACjByE,IAAMzE,QAAQ,SA2Dd4d,OAAS,SAASqqB,SACpB,MAAoB,kBAATxmC,MACF,GAAIA,MAAKwmC,UAElBxmC,KAAKqc,OAASA,OACdrc,KAAKqD,MAAQ,GAAIA,OAAMrD,MACvBA,KAAK+xB,IAAM,GAAI/uB,KACfhD,KAAKoD,OAAS,GAAIA,QAAOpD,KAAKqD,MAAOrD,KAAK+xB,UACtCyU,SAA8B,gBAAZA,UACpBJ,QAAQI,QAASxmC,QAUrBmc,QAAOxX,OAAS,SAAS6hC,SACvB,MAAO,IAAIrqB,QAAOqqB,UAOpBrqB,OAAOsqB,UAAY,SAASC,OAAQF,SAClC,GAAI3iC,MAAO,GAAIsY,QAAOqqB,QACtB,OAAO3iC,MAAK4iC,UAAUC,SAQxBvqB,OAAO3a,UAAUilC,UAAY,SAASC,QAGpC,MAFA1mC,MAAKqD,MAAMsZ,WAAY,EACvB3c,KAAKqD,MAAMoZ,YAAa,EACjBzc,KAAKoD,OAAOuvB,MAAM+T,OAAQ,SAOnCvqB,OAAOwqB,UAAY,SAASD,OAAQ9T,SAAU4T,SACpB,gBAAb5T,YAET4T,QAAU5T;AACVA,SAAW,UAEb,IAAI/uB,MAAO,GAAIsY,QAAOqqB,QACtB,OAAO3iC,MAAK8iC,UAAUD,OAAQ9T,WAuBhCzW,OAAO3a,UAAUmlC,UAAY,SAASD,OAAQ9T,UAG5C,MAFA5yB,MAAKqD,MAAMsZ,WAAY,EACvB3c,KAAKqD,MAAMoZ,YAAa,EACjBzc,KAAKoD,OAAOuvB,MAAM+T,OAAQ9T,WAOnCzW,OAAOyqB,YAAc,SAASF,OAAQF,SACpC,GAAI3iC,MAAO,GAAIsY,QAAOqqB,QACtB,OAAO3iC,MAAK+iC,YAAYF,SAS1BvqB,OAAO3a,UAAUolC,YAAc,SAASF,QACtC1mC,KAAKqD,MAAMsZ,WAAY,EACvB3c,KAAKqD,MAAMoZ,YAAa,CACxB,IAAIF,KAAMvc,KAAKqD,MAAMkZ,IACjBD,MAAQtc,KAAKqc,OAAO4M,MACxBjpB,MAAKqD,MAAMyjB,SAAS4f,OAGpB,KAFA,GAAI90B,OAAQ5R,KAAKqD,MAAM+kB,OAAS7L,IAC5B9X,UACEmN,OAAS2K,KAAK,CAClB,GAAIsqB,OAAQ7mC,KAAKqD,MAAM6jB,MACnB5K,OAAMwqB,eAAel1B,SACvBi1B,OAASvqB,MAAM1K,OAAQi1B,MAAO7mC,KAAKqD,MAAMC,OAAOC,aAElDkB,OAAOlD,KAAKslC,OACZj1B,MAAQ5R,KAAKqD,MAAM+kB,OAAS7L,IAE9B,MAAO9X,SAIThF,OAAOJ,QAAU8c,SAEd4qB,QAAQ,EAAEC,UAAU,GAAGC,WAAW,IAAIC,WAAW","file":"php-parser.min.js"} \ No newline at end of file +{"version":3,"sources":["php-parser.js"],"names":["require","e","t","n","r","s","o","u","a","i","f","Error","code","l","exports","call","length","1","module","defaultSetTimout","defaultClearTimeout","runTimeout","fun","cachedSetTimeout","setTimeout","this","runClearTimeout","marker","cachedClearTimeout","clearTimeout","cleanUpNextTick","draining","currentQueue","queue","concat","queueIndex","drainQueue","timeout","len","run","Item","array","noop","process","nextTick","args","Array","arguments","push","prototype","apply","title","browser","env","argv","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","binding","name","cwd","chdir","dir","umask","2","Location","Position","AST","withPositions","withSource","position","parser","lexer","yylloc","first_line","first_column","first_offset","prepare","kind","start","self","location","slice","src","_input","substring","offset","prev_offset","prev_line","prev_column","shift","node","result","Object","create","right","precedence","out","what","forEach","ctor","constructor","toLowerCase","./ast/array","./ast/assign","./ast/bin","./ast/block","./ast/boolean","./ast/break","./ast/call","./ast/case","./ast/cast","./ast/catch","./ast/class","./ast/classconstant","./ast/clone","./ast/closure","./ast/constant","./ast/constref","./ast/continue","./ast/declaration","./ast/declare","./ast/do","./ast/doc","./ast/echo","./ast/empty","./ast/encapsed","./ast/entry","./ast/error","./ast/eval","./ast/exit","./ast/expression","./ast/for","./ast/foreach","./ast/function","./ast/global","./ast/goto","./ast/halt","./ast/identifier","./ast/if","./ast/include","./ast/inline","./ast/interface","./ast/isset","./ast/label","./ast/list","./ast/literal","./ast/location","./ast/lookup","./ast/magic","./ast/method","./ast/namespace","./ast/new","./ast/node","./ast/nowdoc","./ast/number","./ast/offsetlookup","./ast/operation","./ast/parameter","./ast/parenthesis","./ast/position","./ast/post","./ast/pre","./ast/print","./ast/program","./ast/property","./ast/propertylookup","./ast/retif","./ast/return","./ast/silent","./ast/statement","./ast/static","./ast/staticlookup","./ast/string","./ast/switch","./ast/sys","./ast/throw","./ast/trait","./ast/traitalias","./ast/traitprecedence","./ast/traituse","./ast/try","./ast/unary","./ast/unset","./ast/usegroup","./ast/useitem","./ast/variable","./ast/variadic","./ast/while","./ast/yield","./ast/yieldfrom","3","Expr","KIND","extends","shortForm","items","./expression","4","Statement","Assign","left","operator","./statement","5","Operation","binOperatorsPrecedence","Bin","type","lLevel","rLevel","list","index","./operation","6","Block","children","7","Literal","Boolean","value","./literal","8","Node","Break","level","./node","9","Call","10","Case","test","body","11","Cast","12","Catch","variable","13","Declaration","Class","ext","impl","flags","isAnonymous","implements","parseFlags","./declaration","14","Constant","ClassConstant","./constant","15","Clone","16","Closure","byref","uses","nullable","isStatic","17","18","ConstRef","identifier","19","Continue","20","IS_PUBLIC","IS_PROTECTED","IS_PRIVATE","isAbstract","isFinal","visibility","21","Declare","mode","MODE_SHORT","MODE_BLOCK","MODE_NONE","./block","22","Do","23","Doc","isDoc","lines","24","Sys","Echo","./sys","25","Empty","26","Encapsed","TYPE_STRING","TYPE_SHELL","TYPE_HEREDOC","TYPE_OFFSET","27","Entry","key","28","message","token","line","expected","29","Eval","source","30","Exit","status","31","Expression","32","For","init","increment","33","Foreach","34","fn","_Function","35","Global","36","Goto","label","37","Halt","after","38","Identifier","isRelative","resolution","RELATIVE_NAME","UNQUALIFIED_NAME","FULL_QUALIFIED_NAME","QUALIFIED_NAME","join","39","If","alternate","40","Include","target","41","Inline","42","Interface","43","Isset","44","Label","45","List","46","47","end","48","Lookup","49","Magic","50","Method","./function","51","Namespace","withBrackets","./identifier","52","New","53","loc","54","Nowdoc","55","_Number","Number","56","OffsetLookup","./lookup","57","58","Parameter","isRef","isVariadic","variadic","59","Parenthesis","inner","60","column","61","Post","62","Pre","63","Print","64","Program","errors","65","Property","66","PropertyLookup","67","PRECEDENCE","RetIf","trueExpr","falseExpr","./bin","68","Return","expr","69","Silent","70","71","Static","72","StaticLookup","73","String","isDoubleQuote","74","Switch","75","76","Throw","77","Trait","78","TraitAlias","trait","method","as","79","TraitPrecedence","instead","80","TraitUse","traits","adaptations","81","Try","catches","always","82","Unary","83","Unset","84","UseGroup","85","UseItem","alias","TYPE_CONST","TYPE_FUNCTION","86","Variable","curly","87","Variadic","88","While","89","Yield","90","YieldFrom","91","engine","tok","tokens","names","EOF","debug","all_tokens","comment_tokens","mode_eval","asp_tags","short_tags","yyprevcol","keywords","__class__","T_CLASS_C","__trait__","T_TRAIT_C","__function__","T_FUNC_C","__method__","T_METHOD_C","__line__","T_LINE","__file__","T_FILE","__dir__","T_DIR","__namespace__","T_NS_C","exit","T_EXIT","die","function","T_FUNCTION","const","T_CONST","return","T_RETURN","try","T_TRY","catch","T_CATCH","finally","T_FINALLY","throw","T_THROW","if","T_IF","elseif","T_ELSEIF","endif","T_ENDIF","else","T_ELSE","while","T_WHILE","endwhile","T_ENDWHILE","do","T_DO","for","T_FOR","endfor","T_ENDFOR","foreach","T_FOREACH","endforeach","T_ENDFOREACH","declare","T_DECLARE","enddeclare","T_ENDDECLARE","instanceof","T_INSTANCEOF","T_AS","switch","T_SWITCH","endswitch","T_ENDSWITCH","case","T_CASE","default","T_DEFAULT","break","T_BREAK","continue","T_CONTINUE","goto","T_GOTO","echo","T_ECHO","print","T_PRINT","class","T_CLASS","interface","T_INTERFACE","T_TRAIT","T_EXTENDS","T_IMPLEMENTS","new","T_NEW","clone","T_CLONE","var","T_VAR","eval","T_EVAL","include","T_INCLUDE","include_once","T_INCLUDE_ONCE","T_REQUIRE","require_once","T_REQUIRE_ONCE","namespace","T_NAMESPACE","use","T_USE","insteadof","T_INSTEADOF","global","T_GLOBAL","isset","T_ISSET","empty","T_EMPTY","__halt_compiler","T_HALT_COMPILER","static","T_STATIC","abstract","T_ABSTRACT","final","T_FINAL","private","T_PRIVATE","protected","T_PROTECTED","public","T_PUBLIC","unset","T_UNSET","T_LIST","T_ARRAY","callable","T_CALLABLE","or","T_LOGICAL_OR","and","T_LOGICAL_AND","xor","T_LOGICAL_XOR","castKeywords","int","T_INT_CAST","integer","real","T_DOUBLE_CAST","double","float","string","T_STRING_CAST","binary","T_ARRAY_CAST","object","T_OBJECT_CAST","bool","T_BOOL_CAST","boolean","T_UNSET_CAST","setInput","input","size","yylineno","yytext","last_line","last_column","conditionStack","done","begin","ch","unput","c","tryMatch","text","ahead","tryMatchCaseless","consume","getState","setState","state","appendToken","lex","next","T_WHITESPACE","T_COMMENT","T_DOC_COMMENT","T_OPEN_TAG","T_OPEN_TAG_WITH_ECHO","condition","curCondition","stateCb","popState","pop","tName","values","console","log","stack","k","./lexer/comments.js","./lexer/initial.js","./lexer/numbers.js","./lexer/property.js","./lexer/scripting.js","./lexer/strings.js","./lexer/tokens.js","./lexer/utils.js","92","aspTagMode","is_WHITESPACE","93","nextINITIAL","matchINITIAL","T_INLINE_HTML","94","arch","MAX_LENGTH_OF_LONG","long_min_digits","consume_NUM","hasPoint","is_HEX","consume_HNUM","consume_BNUM","is_NUM","consume_LNUM","T_DNUMBER","T_LNUMBER","_process","95","matchST_LOOKING_FOR_PROPERTY","T_OBJECT_OPERATOR","is_LABEL_START","consume_LABEL","T_STRING","matchST_LOOKING_FOR_VARNAME","T_STRING_VARNAME","matchST_VAR_OFFSET","T_NUM_STRING","T_VARIABLE","T_ENCAPSED_AND_WHITESPACE","is_TOKEN","96","matchST_IN_SCRIPTING","consume_TOKEN","T_CONSTANT_ENCAPSED_STRING","ST_DOUBLE_QUOTES","nextCH","T_CLOSE_TAG","97","is_HEREDOC","revert","is_TABSPACE","tChar","yyoffset","is_LABEL","yylabel","heredoc_label","T_START_HEREDOC","prefix","isDOC_MATCH","matchST_NOWDOC","T_END_HEREDOC","matchST_HEREDOC","T_DOLLAR_OPEN_CURLY_BRACES","consume_VARIABLE","T_CURLY_OPEN","matchST_BACKQUOTE","matchST_DOUBLE_QUOTES","98","id","T_YIELD_FROM","T_YIELD","tokenTerminals","$","-","nchar","T_DEC","T_MINUS_EQUAL","\\","T_NS_SEPARATOR","/","T_DIV_EQUAL",":","T_DOUBLE_COLON","(","initial","consume_TABSPACE","yylen","castToken","castId","=","T_DOUBLE_ARROW","T_IS_IDENTICAL","T_IS_EQUAL","+","T_INC","T_PLUS_EQUAL","!","T_IS_NOT_IDENTICAL","T_IS_NOT_EQUAL","?","T_COALESCE","<","T_SL_EQUAL","T_SL","T_SPACESHIP","T_IS_SMALLER_OR_EQUAL",">","T_IS_GREATER_OR_EQUAL","T_SR_EQUAL","T_SR","*","T_MUL_EQUAL","T_POW_EQUAL","T_POW",".","T_CONCAT_EQUAL","T_ELLIPSIS","%","T_MOD_EQUAL","&","T_AND_EQUAL","T_BOOLEAN_AND","|","T_OR_EQUAL","T_BOOLEAN_OR","^","T_XOR_EQUAL","99","charCodeAt","indexOf","100","isNumber","isNaN","parseFloat","isFinite","ast","prev","extractDoc","suppressErrors","entries","VARIABLE","SCALAR","T_MAGIC_CONST","T_MEMBER_FLAGS","EOS","EXPR","getTokenName","parse","filename","_errors","currentNamespace","innerList","program","childs","nextWithComments","read_start","undefined","isArray","raiseError","msgExpect","expect","err","SyntaxError","lineNumber","fileName","columnNumber","error","msg","symbol","expectEndOfStatement","ignoreStack","showlog","split","trim","found","ignoreComments","is","./parser/array.js","./parser/class.js","./parser/comment.js","./parser/expr.js","./parser/function.js","./parser/if.js","./parser/loops.js","./parser/main.js","./parser/namespace.js","./parser/scalar.js","./parser/statement.js","./parser/switch.js","./parser/try.js","./parser/utils.js","./parser/variable.js","101","ArrayExpr","ArrayEntry","read_array","read_array_pair_list","read_variable","read_expr","read_dim_offset","102","read_class","flag","propName","propExtends","propImplements","read_namespace_name","read_name_list","read_class_body","read_class_scope","read_member_flags","variables","read_variable_list","read_function","constants","read_constant_list","read_trait_use_statement","read_doc_comment","read_comment","read_list","read_variable_declaration","read_constant_declaration","asInterface","idx","val","read_interface","read_interface_body","read_function_declaration","read_trait","read_trait_use_alias","103","docSplit","104","read_expr_item","trueArg","recursive_variable_chain_scan","read_dereferencable","read_function_argument_list","read_encapsed_string","assign","isInner","assignList","read_assignment_list","hasItem","read_new_expr","arg","backup","read_scalar","read_class_name_reference","read_static_getter","read_assignment_list_element","105","is_reference","is_variadic","closure","read_code_block","nodeName","returnType","params","read_parameter_list","read_lexical_var","read_type","read_parameter","wasVariadic","argument","read_argument_list","106","read_if","read_if_expr","read_elseif_short","read_else_short","read_inner_statement","read_statement","107","read_while","read_short_form","read_do","read_for","read_foreach","read_foreach_variable","108","read_namespace","read_top_statement","109","read_top_statements","relative","read_use_statement","read_use_type","read_use_declaration","read_use_declarations","typed","read_use_alias","useitem","110","specialChar","\\r","\\n","\\t","\\v","fromCharCode","\\e","\\f","\\\\","\\$","\\\"","\\'","resolve_special_chars","replace","seq","get_magic_constant","lastCh","read_encapsed_string_item","varName","read_simple_variable","read_encaps_var_offset","encapsed","111","statement","read_const_list","read_inner_statements","read_declare_list","read_switch","current","read_variable_declarations","read_try","top","112","read_switch_case_list","read_case_list","stopToken","113","item","114","separator","preserveFirstSeparator","115","read_only","read_reference_variable","literal","recursive_scan_loop","isDblQuote","num","116","117","118","119","120","121","122","123","124","125","126","127","128","129","130","131","132","133","134","135","136","137","138","139","140","141","142","143","144","145","146","147","148","149","150","151","152","153","154","155","156","157","158","159","160","161","162","163","164","165","166","167","168","169","170","171","172","173","174","175","176","177","178","179","180","181","182","183","184","185","186","187","188","189","190","191","192","193","194","195","196","197","198","199","200","201","202","203","204","205","206","207","208","209","210","211","212","213","214","215","216","217","218","219","220","221","222","223","224","225","226","227","228","229","230","231","232","233","php-parser","combine","to","keys","bind","options","parseEval","buffer","parseCode","tokenGetAll","entry","hasOwnProperty","./ast","./lexer","./parser","./tokens"],"mappings":"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","file":"php-parser.min.js"} \ No newline at end of file diff --git a/package.json b/package.json index 99273a4f3..837d1efaf 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "php-parser", - "version": "2.0.3", + "version": "2.0.4", "description": "Parse PHP code and returns its AST", "main": "src/index.js", "scripts": {