it-tools/public/plurimath/plurimath-opal.js
ShareVB e5907ffdaa fix: use Plurimath as asset
Plurimath opal cannot be minified, esbuilded and bundled without causing unexpected exceptions
So copy js in public folder and import plurimath from here
2025-01-01 15:33:48 +01:00

2 lines
No EOL
2.7 MiB
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

(function(e){var t,r,n,a,s,i,o,l;if("undefined"!=typeof globalThis?e=globalThis:"undefined"!=typeof global?e=global:"undefined"!=typeof window&&(e=window),null==e.console&&(e.console={}),"log"in(t="object"==typeof e.console?e.console:{})||(t.log=function(){}),"warn"in t||(t.warn=t.log),void 0!==e.Opal)return t.warn("Opal already loaded. Loading twice can cause troubles, please fix your setup."),e.Opal;var $=e.Opal={};$.global=e,$.config={missing_require_severity:"error",unsupported_features_severity:"warning",experimental_features_severity:"warning",enable_stack_trace:!0};var u=Function.prototype.call,c=Function.prototype.bind,_=Object.hasOwn||u.bind(Object.prototype.hasOwnProperty),p=Object.setPrototypeOf,m=u.bind(Array.prototype.slice),d=u.bind(Array.prototype.splice),f=4;function h(){return f+=2}$.uid=h,$.id=function(e){return e.$$is_number?2*e+1:(null==e.$$id&&y(e,"$$id",h()),e.$$id)};var g=$.gvars={};function b(e,t){if(e||(e=$.Exception||Error),!l||!l.$raise)throw e.$new?e.$new(t):new e(t);arguments.length>2?l.$raise(e.$new.apply(e,m(arguments,1))):l.$raise(e,t)}$.exit=function(e){g.DEBUG&&t.log("Exited with status "+e)},$.exceptions=[],$.pop_exception=function(e){var t=$.exceptions.pop();t===e||(g["!"]=t||r)};var v={value:void 0,enumerable:!1,configurable:!0,writable:!0};function y(e,t,r){"string"==typeof e?e[t]=r:(v.value=r,Object.defineProperty(e,t,v))}$.prop=y,$.defineProperty=$.prop,$.slice=m;var x=$.truthy=function(e){return!(!1===e||r===e||null==e||e instanceof Boolean&&!0!==e.valueOf())};function w(e){var t,r,n;for(t=0,r=$.tracers_for_class.length;t<r;t++)(n=$.tracers_for_class[t]).trace_object=e,n.block.$call(n)}function k(e,t){if(e.$$autoload[t].loaded){if(e.$$autoload[t].loaded&&!e.$$autoload[t].required&&e.$$autoload[t].exception)throw e.$$autoload[t].exception}else{e.$$autoload[t].loaded=!0;try{$.Kernel.$require(e.$$autoload[t].path)}catch(r){throw e.$$autoload[t].exception=r,r}if(e.$$autoload[t].required=!0,null!=e.$$const[t])return e.$$autoload[t].success=!0,e.$$const[t]}}function U(e,t){if(e){if(null!=e.$$const[t])return e.$$const[t];if(e.$$autoload&&e.$$autoload[t])return k(e,t)}}function E(e,t){var r,n,a;if(null!=e)for(r=0,n=(a=P(e)).length;r<n;r++){if(a[r].$$const&&_(a[r].$$const,t))return a[r].$$const[t];if(a[r].$$autoload&&a[r].$$autoload[t])return k(a[r],t)}}function M(e,t){return(e||a).$const_missing(t)}function q(e,t,n){var s=!0;return null!=e&&"::"!==e||(e=a),n.$$is_a_module&&(null!=n.$$name&&n.$$name!==r||(n.$$name=t),null==n.$$base_module&&(n.$$base_module=e)),e.$$const=e.$$const||Object.create(null),(t in e.$$const||"$$autoload"in e&&t in e.$$autoload)&&(s=!1),e.$$const[t]=n,e.$$=e.$$const,$.const_cache_version++,e===a&&($[t]=n),y(e,t,n),s&&e.$const_added&&!e.$const_added.$$pristine&&e.$const_added(t),n}function S(e){return null!=e&&(e.$$bridge?e:!!e.$$super&&S(e.$$super))}function O(e,t,n){var a,s;if(a=(s=S(t))?function(){var e=new(c.apply(s.$$constructor,G(null,arguments)));return p(e,a.$$prototype),e}:function(){},e&&e!==r&&y(a,"displayName","::"+e),y(a,"$$name",e),y(a,"$$constructor",a),y(a,"$$prototype",a.prototype),y(a,"$$const",{}),y(a,"$$is_class",!0),y(a,"$$is_a_module",!0),y(a,"$$super",t),y(a,"$$cvars",{}),y(a,"$$own_included_modules",[]),y(a,"$$own_prepended_modules",[]),y(a,"$$ancestors",[]),y(a,"$$ancestors_cache_version",null),y(a,"$$subclasses",[]),y(a,"$$cloned_from",[]),y(a.$$prototype,"$$class",a),$.Class&&p(a,$.Class.prototype),null!=t){if(p(a.$$prototype,t.$$prototype),!0!==n)if("undefined"!=typeof WeakRef){var i,o,l=[];for(i=0;i<t.$$subclasses.length;i++)void 0!==(o=t.$$subclasses[i]).deref()&&l.push(o);l.push(new WeakRef(a)),t.$$subclasses=l}else t.$$subclasses.push(a);t.$$meta&&$.build_class_singleton_class(a)}return a}function A(e){var t=function(){},r=t;return e&&y(t,"displayName",e+".constructor"),y(r,"$$name",e),y(r,"$$prototype",t.prototype),y(r,"$$const",{}),y(r,"$$is_module",!0),y(r,"$$is_a_module",!0),y(r,"$$cvars",{}),y(r,"$$iclasses",[]),y(r,"$$own_included_modules",[]),y(r,"$$own_prepended_modules",[]),y(r,"$$ancestors",[r]),y(r,"$$ancestors_cache_version",null),y(r,"$$cloned_from",[]),p(r,$.Module.prototype),r}function T(e,t){e.hasOwnProperty("$$meta")?e.$$meta=t:y(e,"$$meta",t),e.$$frozen?e.$$meta.$freeze():p(e,t.$$prototype)}function N(e){return e.hasOwnProperty("$$iclass")&&e.hasOwnProperty("$$root")}function z(e){var t=R(e);return e.$$is_module&&e.$$iclasses.push(t),t}function R(e){var t={},r=e.$$prototype;r.hasOwnProperty("$$dummy")&&(r=r.$$define_methods_on);var n,a=Object.getOwnPropertyNames(r),s=a.length;for(n=0;n<s;n++){var i=a[n];y(t,i,r[i])}return y(t,"$$iclass",!0),y(t,"$$module",e),t}function I(e){var t=e.length,r=e[0];if(y(r,"$$root",!0),1===t)return{first:r,last:r};for(var n=r,a=1;a<t;a++){var s=e[a];p(n,s),n=s}return{first:e[0],last:e[t-1]}}function C(e){if(!e.hasOwnProperty("$$dummy"))return e.hasOwnProperty("$$iclass")?e.$$module:e.hasOwnProperty("$$class")?e.$$class:void 0}function P(e){if(!e)return[];if(e.$$ancestors_cache_version===$.const_cache_version)return e.$$ancestors;var t,r,n,a=[];for(t=0,r=function(e){return e.$$own_prepended_modules.concat([e]).concat(e.$$own_included_modules)}(e),n=r.length;t<n;t++)a.push(r[t]);if(e.$$super)for(t=0,n=(r=P(e.$$super)).length;t<n;t++)a.push(r[t]);return e.$$ancestors_cache_version=$.const_cache_version,e.$$ancestors=a,a}function L(e){return e.hasOwnProperty("$$meta")&&null!==e.$$meta?P(e.$$meta):P(e.$$class)}function F(e,t,r){try{e(t)}catch(e){if(e===r)return r.$v;throw e}}function D(e,t){"number"==typeof t?e.$$arity=t:"object"==typeof t&&Object.assign(e,t)}$.falsy=function(e){return!x(e)},$.type_error=function(e,t,r,n){e=e.$$class,n&&r?(n=n.$$class,b($.TypeError,"can't convert "+e+" into "+t+" ("+e+"#"+r+" gives "+n+")")):b($.TypeError,"no implicit conversion of "+e+" into "+t)},$.coerce_to=function(e,t,r,n){var a;return"to_int"===r&&t===$.Integer&&e.$$is_number?e<0?Math.ceil(e):Math.floor(e):"to_str"===r&&t===$.String&&e.$$is_string||$.is_a(e,t)?e:e["$respond_to?"].$$pristine&&e.$method_missing.$$pristine?((null==(a=e[B(r)])||a.$$stub)&&$.type_error(e,t),a.apply(e,n)):(e["$respond_to?"](r)||$.type_error(e,t),null==n&&(n=[]),$.send(e,r,n))},$.respond_to=function(e,t,r){if(null==e||!e.$$class)return!1;r=!!r;var n=e[t];return e["$respond_to?"].$$pristine?"function"==typeof n&&!n.$$stub||(e["$respond_to_missing?"].$$pristine?void 0:$.send(e,e["$respond_to_missing?"],[t.substr(1),r])):$.send(e,e["$respond_to?"],[t.substr(1),r])},$.trace_class=!1,$.tracers_for_class=[],$.const_get_local=function(e,t,r){var n;if(null!=e)return"::"===e&&(e=a),e.$$is_module||e.$$is_class||b($.TypeError,e.toString()+" is not a class/module"),null!=(n=U(e,t))||r?n:M(e,t)},$.const_get_qualified=function(e,t,r){var n,s,i,o=$.const_cache_version;return null==t?null!=(n=U(a,e))?n:$.const_get_qualified(a,e,r):null!=e?("::"===e&&(e=a),e.$$is_module||e.$$is_class||b($.TypeError,e.toString()+" is not a class/module"),null==(s=e.$$const_cache)&&(y(e,"$$const_cache",Object.create(null)),s=e.$$const_cache),null==(i=s[t])||i[0]!==o?(null!=(n=U(e,t))||(n=E(e,t)),s[t]=[o,n]):n=i[1],null!=n||r?n:M(e,t)):void 0},$.const_cache_version=1,$.const_get_relative=function(e,t,r){var n,s,i,o=e[0],l=$.const_cache_version;return null==(s=e.$$const_cache)&&(y(e,"$$const_cache",Object.create(null)),s=e.$$const_cache),null==(i=s[t])||i[0]!==l?(null!=(n=U(o,t))||null!=(n=function(e,t){var r,n,a;if(0!==e.length)for(r=0,n=e.length;r<n;r++){if(null!=(a=e[r].$$const[t]))return a;if(e[r].$$autoload&&e[r].$$autoload[t])return k(e[r],t)}}(e,t))||null!=(n=E(o,t))||(n=function(e,t){if(null==e||e.$$is_module)return E(a,t)}(o,t)),s[t]=[l,n]):n=i[1],null!=n||r?n:M(o,t)},$.const_set=q,$.constants=function(e,t){null==t&&(t=!0);var r,n,s,i,o=[e],l={};for(t&&(o=o.concat(P(e))),t&&e.$$is_module&&(o=o.concat([$.Object]).concat(P($.Object))),n=0,s=o.length;n<s&&(r=o[n],e===a||r!=a);n++){for(i in r.$$const)l[i]=!0;if(r.$$autoload)for(i in r.$$autoload)l[i]=!0}return Object.keys(l)},$.const_remove=function(e,t){if($.const_cache_version++,null!=e.$$const[t]){var n=e.$$const[t];return delete e.$$const[t],n}if(e.$$autoload&&e.$$autoload[t])return delete e.$$autoload[t],r;b($.NameError,"constant "+e+"::"+e.$name()+" not defined")},$.const_get_relative_factory=function(e){return function(t,r){return $.$$(e,t,r)}},$.$$=$.const_get_relative,$.$$$=$.const_get_qualified,$.$r=$.const_get_relative_factory,$.allocate_class=O,$.klass=function(e,t,r){var n;null==e||"::"==e?e=a:e.$$is_class||e.$$is_module||(e=e.$$class),null==t||t.hasOwnProperty&&(!t.hasOwnProperty||t.hasOwnProperty("$$is_class"))||(t.constructor&&"Function"==t.constructor.name?(n=t,t=a):b($.TypeError,"superclass must be a Class ("+(t.constructor&&(t.constructor.name||t.constructor.$$name)||typeof t)+" given)"));var s=function(e,t){var r=U(e,t);if(r)return r.$$is_class||b($.TypeError,t+" is not a class"),r}(e,r);return null!=s?t&&function(e,t){e.$$super!==t&&b($.TypeError,"superclass mismatch for class "+e.$$name)}(s,t):(null==t&&(t=a),q(e,r,s=O(r,t)),t.$inherited&&t.$inherited(s),n&&$.bridge(n,s)),$.trace_class&&w(s),s},$.allocate_module=A,$.module=function(e,t){var r;return null==e||"::"==e?e=a:e.$$is_class||e.$$is_module||(e=e.$$class),r=function(e,t){var r=U(e,t);return null==r&&e===a&&(r=E(a,t)),r&&(r.$$is_module||r===a||b($.TypeError,t+" is not a module")),r}(e,t),null==r&&q(e,t,r=A(t)),$.trace_class&&w(r),r},$.get_singleton_class=function(e){return e.$$is_number&&b($.TypeError,"can't define singleton"),e.$$meta?e.$$meta:e.hasOwnProperty("$$is_class")?$.build_class_singleton_class(e):e.hasOwnProperty("$$is_module")?$.build_module_singleton_class(e):$.build_object_singleton_class(e)},$.build_class_singleton_class=function(e){if(e.$$meta)return e.$$meta;var t=O(null,e===n?i:$.get_singleton_class(e.$$super),!0);return y(t,"$$is_singleton",!0),y(t,"$$singleton_of",e),T(e,t),y(e,"$$class",$.Class),t},$.build_module_singleton_class=function(e){if(e.$$meta)return e.$$meta;var t=O(null,$.Module,!0);return y(t,"$$is_singleton",!0),y(t,"$$singleton_of",e),T(e,t),y(e,"$$class",$.Module),t},$.build_object_singleton_class=function(e){var t=e.$$class,n=O(r,t,!0);return y(n,"$$is_singleton",!0),y(n,"$$singleton_of",e),delete n.$$prototype.$$class,T(e,n),n},$.is_method=function(e){return"$"===e[0]&&"$"!==e[1]},$.instance_methods=function(e){for(var t=Object.create(null),r=[],n=P(e),a=0,s=n.length;a<s;a++){var i=n[a].$$prototype;i.hasOwnProperty("$$dummy")&&(i=i.$$define_methods_on);for(var o=Object.getOwnPropertyNames(i),l=0,u=o.length;l<u;l++){var c=o[l];if(!t[c]){if($.is_method(c))if(!i[c].$$stub){var _=c.slice(1);r.push(_)}t[c]=!0}}}return r},$.own_instance_methods=function(e){var t=[],r=e.$$prototype;r.hasOwnProperty("$$dummy")&&(r=r.$$define_methods_on);for(var n=Object.getOwnPropertyNames(r),a=0,s=n.length;a<s;a++){var i=n[a];if($.is_method(i))if(!r[i].$$stub){var o=i.slice(1);t.push(o)}}return t},$.methods=function(e){return $.instance_methods(e.$$meta||e.$$class)},$.own_methods=function(e){return e.$$meta?$.own_instance_methods(e.$$meta):[]},$.receiver_methods=function(e){var t=$.get_singleton_class(e),r=$.own_instance_methods(t),n=$.own_instance_methods(t.$$super);return r.concat(n)},$.class_variables=function(e){var t,r=P(e),n={};for(t=r.length-1;t>=0;t--){var a=r[t];for(var s in a.$$cvars)n[s]=a.$$cvars[s]}return n},$.class_variable_set=function(e,t,r){var n,a=P(e);for(n=a.length-2;n>=0;n--){var s=a[n];if(_(s.$$cvars,t))return s.$$cvars[t]=r,r}return e.$$cvars[t]=r,r},$.class_variable_get=function(e,t,n){if(_(e.$$cvars,t))return e.$$cvars[t];var a,s=P(e),i=s.length;for(a=0;a<i;a++){var o=s[a];if(_(o.$$cvars,t))return o.$$cvars[t]}return n||b($.NameError,"uninitialized class variable "+t+" in "+e.$name()),r},$.append_features=function(e,t){var r=P(e),n=[];-1!==r.indexOf(t)&&b($.ArgumentError,"cyclic include detected");for(var a=0,s=r.length;a<s;a++){var i=z(r[a]);y(i,"$$included",!0),n.push(i)}var o,l,u=P(t),c=I(n);if(-1===u.indexOf(e))o=t.$$prototype,l=Object.getPrototypeOf(t.$$prototype);else{for(var _=t.$$prototype,m=Object.getPrototypeOf(_);null!=m&&(m.$$module!==e||!N(m));)_=m,m=Object.getPrototypeOf(m);if(m){for(var d=Object.getPrototypeOf(m);d.hasOwnProperty("$$iclass")&&!N(d);)d=Object.getPrototypeOf(d);o=_,l=d}else o=t.$$prototype,l=Object.getPrototypeOf(t.$$prototype)}p(o,c.first),p(c.last,l),t.$$own_included_modules=function(e){for(var t,r=[],n=Object.getPrototypeOf(e.$$prototype);n&&!n.hasOwnProperty("$$class");)(t=C(n))&&r.push(t),n=Object.getPrototypeOf(n);return r}(t),$.const_cache_version++},$.prepend_features=function(e,t){var r=P(e),n=[];-1!==r.indexOf(t)&&b($.ArgumentError,"cyclic prepend detected");for(var a=0,s=r.length;a<s;a++){var i=z(r[a]);y(i,"$$prepended",!0),n.push(i)}var o,l,u,c=I(n),_=t.$$prototype,m=Object.getPrototypeOf(_);if(_.hasOwnProperty("$$dummy")?o=_.$$define_methods_on:(o=R(t),function(e){for(var t=e.$$prototype,r=Object.getOwnPropertyNames(t),n=0;n<r.length;n++){var a=r[n];$.is_method(a)&&delete t[a]}}(t),y(_,"$$dummy",!0),y(_,"$$define_methods_on",o),p(_,o),p(o,m)),-1===P(t).indexOf(e))for(l=_,u=Object.getPrototypeOf(_);null!=u&&!u.hasOwnProperty("$$root")&&u!==o&&u.hasOwnProperty("$$iclass");)u=Object.getPrototypeOf(u);else b($.RuntimeError,"Prepending a module multiple times is not supported");p(l,c.first),p(c.last,u),t.$$own_prepended_modules=function(e){var t,r=[],n=Object.getPrototypeOf(e.$$prototype);if(e.$$prototype.hasOwnProperty("$$dummy"))for(;n&&n!==e.$$prototype.$$define_methods_on;)(t=C(n))&&r.push(t),n=Object.getPrototypeOf(n);return r}(t),$.const_cache_version++},$.bridge=function(e,t){e.hasOwnProperty("$$bridge")&&b($.ArgumentError,"already bridged"),y(e,"$$bridge",t),p(e.prototype,(t.$$super||$.Object).$$prototype),y(t,"$$prototype",e.prototype),y(t.$$prototype,"$$class",t),y(t,"$$constructor",e),y(t,"$$bridge",!0)},$.ancestors=P,$.included_modules=function(e){for(var t=[],r=null,n=Object.getPrototypeOf(e.$$prototype);n&&Object.getPrototypeOf(n);n=Object.getPrototypeOf(n))(r=C(n))&&r.$$is_module&&n.$$iclass&&n.$$included&&t.push(r);return t},$.add_stubs=function(e){for(var t,r,n=$.BasicObject.$$prototype,a=0,s=(e=e.split(",")).length;a<s;a++)(null==(r=n[t=B(e[a])])||r.$$stub)&&$.add_stub_for(n,t)},$.add_stub_for=function(e,t){y(e,t,$.stub_for(t))},$.stub_for=function(e){function t(){return this.$method_missing.$$p=t.$$p,t.$$p=null,this.$method_missing.apply(this,G(e.slice(1),arguments))}return t.$$stub=!0,t},$.ac=function(e,t,r,n){var a="";r.$$is_a_module?a+=r.$$name+".":a+=r.$$class.$$name+"#",a+=n,b($.ArgumentError,"["+a+"] wrong number of arguments (given "+e+", expected "+t+")")},$.block_ac=function(e,t,r){var n="`block in "+r+"'";b($.ArgumentError,n+": wrong number of arguments (given "+e+", expected "+t+")")},$.find_super=function(e,t,r,n,a){var s,i,o,l,u,c=B(t),_=-1;for(s=L(e),l=r.$$owner,u=0;u<s.length;u++)if((i=s[u])===l||-1!==i.$$cloned_from.indexOf(l)){_=u;break}for(u=_+1;u<s.length;u++){var p=(i=s[u]).$$prototype;if(p.hasOwnProperty("$$dummy")&&(p=p.$$define_methods_on),p.hasOwnProperty(c)){o=p[c];break}}return!n&&o&&o.$$stub&&e.$method_missing.$$pristine&&b($.NoMethodError,"super: no superclass method `"+t+"' for "+e,t),o.$$stub&&!a?null:o},$.find_block_super=function(e,t,r,n,a){var s=t;return r||b($.RuntimeError,"super called outside of method"),a&&r.$$define_meth&&b($.RuntimeError,"implicit argument passing of super from method defined by define_method() is not supported. Specify all arguments explicitly"),r.$$def&&(s=r.$$jsid),$.find_super(e,s,r,n)},$.find_super_dispatcher=$.find_super,$.find_iter_super_dispatcher=$.find_block_super,$.yield1=function(e,t){"function"!=typeof e&&b($.LocalJumpError,"no block given");var r=e.$$has_top_level_mlhs_arg,n=e.$$has_trailing_comma_in_args,a=e.$$is_lambda&&e.$$ret;return(e.length>1||(r||n)&&1===e.length)&&(t=$.to_ary(t)),(e.length>1||n&&1===e.length)&&t.$$is_array?a?F(e.apply.bind(e,null),t,e.$$ret):e.apply(null,t):a?F(e,t,e.$$ret):e(t)},$.yieldX=function(e,t){return"function"!=typeof e&&b($.LocalJumpError,"no block given"),e.length>1&&1===t.length&&t[0].$$is_array&&(t=t[0]),e.$$is_lambda&&e.$$ret?F(e.apply.bind(e,null),t,e.$$ret):e.apply(null,t)},$.rescue=function(e,t){for(var r=0;r<t.length;r++){var n=t[r];if(n.$$is_array){var a=$.rescue(e,n);if(a)return a}else if(n===$.JS.Error||n["$==="](e))return n}return null},$.is_a=function(e,t){return null!=t&&e.$$meta===t||e.$$class===t||(e.$$is_number&&t.$$is_number_class?!t.$$is_integer_class||e%1==0:-1!==P(e.$$is_class?$.get_singleton_class(e):e.$$meta||e.$$class).indexOf(t))},$.to_hash=function(e){if(e.$$is_hash)return e;if(e["$respond_to?"]("to_hash",!0)){var t=e.$to_hash();if(t.$$is_hash)return t;b($.TypeError,"Can't convert "+e.$$class+" to Hash ("+e.$$class+"#to_hash gives "+t.$$class+")")}else b($.TypeError,"no implicit conversion of "+e.$$class+" into Hash")},$.to_ary=function(e){if(e.$$is_array)return e;if(!e["$respond_to?"]("to_ary",!0))return[e];var t=e.$to_ary();return t===r?[e]:t.$$is_array?t:void b($.TypeError,"Can't convert "+e.$$class+" to Array ("+e.$$class+"#to_ary gives "+t.$$class+")")},$.to_a=function(e){if(e.$$is_array)return e.slice();if(!e["$respond_to?"]("to_a",!0))return[e];var t=e.$to_a();return t===r?[e]:t.$$is_array?t:void b($.TypeError,"Can't convert "+e.$$class+" to Array ("+e.$$class+"#to_a gives "+t.$$class+")")},$.extract_kwargs=function(e){var t=e[e.length-1];if(null!=t&&$.respond_to(t,"$to_hash",!0))return d(e,e.length-1),t},$.kwrestargs=function(e,t){var r=new Map;return $.hash_each(e,!1,(function(e,n){return t[e]||$.hash_put(r,e,n),[!1,!1]})),r};var j=new Map;function B(e){var t=j.get(e);return t||(t="$"+e,j.set(e,t)),t}function G(e,t){return t.$$is_array||(t=m(t)),[e].concat(t)}function H(e,t){if(e.$$is_module)for(var r=0,n=e.$$iclasses,a=n.length;r<a;r++){delete n[r][t]}}function Y(e){return"function"==typeof e&&!e.$$stub}function V(e,t){var r=e.get(t);if(void 0!==r)return e.delete(t),r}$.jsid=B,$.send=function(e,t,r,n,a){var s;return"function"==typeof t?(s=t,t=null):"string"==typeof t?s=e[B(t)]:b($.NameError,"Passed method should be a string or a function"),$.send2(e,s,t,r,n,a)},$.send2=function(e,t,r,n,a,s){return null==t&&null!=r&&e.$method_missing&&(t=e.$method_missing,n=G(r,n)),D(a,s),"function"==typeof a&&(t.$$p=a),t.apply(e,n)},$.refined_send=function(e,t,r,n,a,s){var i,o,l,u,c,_,p,m,d,f;for(u=L(t),i=0;i<u.length;i++)for(c=$.id(u[i]),o=0;o<e.length;o++)for(l=(_=e[o]).length-1;l>=0;l--)if(void 0!==(p=_[l]).$$refine_modules&&void 0!==(m=p.$$refine_modules)[c]&&void 0!==(d=m[c]).$$prototype[B(r)])return f=d.$$prototype[B(r)],$.send2(t,f,r,n,a,s);return $.send(t,r,n,a,s)},$.lambda=function(e,t){return e.$$is_lambda=!0,D(e,t),e},$.def=function(e,t,r,n){return D(r,n),e===$.top?$.defn($.Object,t,r):!e.$$eval&&e.$$is_a_module?$.defn(e,t,r):$.defs(e,t,r)},$.defn=function(e,t,r){K(e),r.displayName=t,r.$$owner=e;var n=t.substr(1),a=e.$$prototype;if(a.hasOwnProperty("$$dummy")&&(a=a.$$define_methods_on),y(a,t,r),e.$$is_module){e.$$module_function&&$.defs(e,t,r);for(var s=0,i=e.$$iclasses,o=i.length;s<o;s++){y(i[s],t,r)}}var l=e.$$singleton_of;return!e.$method_added||e.$method_added.$$stub||l?l&&l.$singleton_method_added&&!l.$singleton_method_added.$$stub&&l.$singleton_method_added(n):e.$method_added(n),n},$.defs=function(e,t,r,n){return D(r,n),(e.$$is_string||e.$$is_number)&&b($.TypeError,"can't define singleton"),$.defn($.get_singleton_class(e),t,r)},$.rdef=function(e,t){_(e.$$prototype,t)||b($.NameError,"method '"+t.substr(1)+"' not defined in "+e.$name()),delete e.$$prototype[t],H(e,t),e.$$is_singleton?e.$$prototype.$singleton_method_removed&&!e.$$prototype.$singleton_method_removed.$$stub&&e.$$prototype.$singleton_method_removed(t.substr(1)):e.$method_removed&&!e.$method_removed.$$stub&&e.$method_removed(t.substr(1))},$.udef=function(e,t){e.$$prototype[t]&&!e.$$prototype[t].$$stub||b($.NameError,"method '"+t.substr(1)+"' not defined in "+e.$name()),$.add_stub_for(e.$$prototype,t),H(e,t),e.$$is_singleton?e.$$prototype.$singleton_method_undefined&&!e.$$prototype.$singleton_method_undefined.$$stub&&e.$$prototype.$singleton_method_undefined(t.substr(1)):e.$method_undefined&&!e.$method_undefined.$$stub&&e.$method_undefined(t.substr(1))},$.alias=function(e,t,r){var n,a,s=B(t),i=B(r);if(void 0===e.$$prototype&&(e=$.Object),n=e.$$prototype[i],e.$$eval)return $.alias($.get_singleton_class(e),t,r);if(!Y(n)){for(var o=e.$$super;"function"!=typeof n&&o;)n=o[i],o=o.$$super;!Y(n)&&e.$$is_module&&(n=$.Object.$$prototype[i]),Y(n)||b($.NameError,"undefined method `"+r+"' for class `"+e.$name()+"'")}return n.$$alias_of&&(n=n.$$alias_of),(a=$.wrap_method_body(n)).displayName=t,a.$$alias_of=n,a.$$alias_name=t,$.defn(e,s,a),e},$.wrap_method_body=function(e){var t=function(){var r=t.$$p;return t.$$p=null,$.send(this,e,arguments,r)};try{Object.defineProperty(t,"length",{value:e.length})}catch(e){}return t.$$arity=null==e.$$arity?e.length:e.$$arity,t.$$parameters=e.$$parameters,t.$$source_location=e.$$source_location,t},$.alias_gvar=function(e,t){return Object.defineProperty(g,e,{configurable:!0,enumerable:!0,get:function(){return g[t]},set:function(e){g[t]=e}}),r},$.alias_native=function(e,t,r){var n=B(t),a=e.$$prototype[r];return("function"!=typeof a||a.$$stub)&&b($.NameError,"undefined native method `"+r+"' for class `"+e.$name()+"'"),$.defn(e,n,a),e},$.hash_init=function(e){t.warn("DEPRECATION: Opal.hash_init is deprecated and is now a no-op.")},$.hash_clone=function(e,t){return t.$$none=e.$$none,t.$$proc=e.$$proc,$.hash_each(e,t,(function(e,r){return $.hash_put(t,e,r),[!1,t]}))},$.hash_put=function(e,t,r){var n=typeof t;if("string"===n||"symbol"===n||"number"===n||"boolean"===n||"bigint"===n)e.set(t,r);else if(t.$$is_string)e.set(t.valueOf(),r);else{e.$$keys||(e.$$keys=new Map);var a=t.$$is_string?t.valueOf():e.$$by_identity?$.id(t):t.$hash(),s=e.$$keys;if(!s.has(a))return s.set(a,[t]),void e.set(t,r);for(var i,o=s.get(a),l=0;l<o.length;l++)if(t===(i=o[l])||t["$eql?"](i))return void e.set(i,r);o.push(t),e.set(t,r)}},$.hash_get=function(e,t){var r=typeof t;if("string"===r||"symbol"===r||"number"===r||"boolean"===r||"bigint"===r)return e.get(t);if(e.$$keys){var n,a=t.$$is_string?t.valueOf():e.$$by_identity?$.id(t):t.$hash(),s=e.$$keys.get(a);if(void 0!==s){for(var i=0;i<s.length;i++)if(t===(n=s[i])||t["$eql?"](n))return e.get(n)}else if(t.$$is_string)return e.get(a)}else if(t.$$is_string)return e.get(t.valueOf())},$.hash_delete=function(e,t){var r=typeof t;if("string"===r||"symbol"===r||"number"===r||"boolean"===r||"bigint"===r)return V(e,t);if(e.$$keys){var n,a=t.$$is_string?t.valueOf():e.$$by_identity?$.id(t):t.$hash(),s=e.$$keys.get(a);if(void 0!==s){for(var i=0;i<s.length;i++)if(t===(n=s[i])||t["$eql?"](n))return s.splice(i,1),0===s.length&&e.$$keys.delete(a),V(e,n)}else if(t.$$is_string)return V(e,a)}else if(t.$$is_string)return V(e,t.valueOf())},$.hash_rehash=function(e){var t=e.$$keys;return t&&t.clear(),$.hash_each(e,!1,(function(r,n){var a=typeof r;if("string"===a||"symbol"===a||"number"===a||"boolean"===a||"bigint"===a)return[!1,!1];var s=r.$$is_string?r.valueOf():e.$$by_identity?$.id(r):r.$hash();if(t||(e.$$keys=t=new Map),!t.has(s))return t.set(s,[r]),[!1,!1];for(var i,o=t.get(s),l=1===o.length?o:m(o),u=0;u<l.length;u++)(r===(i=l[u])||r["$eql?"](i))&&(o.splice(o.indexOf(i),1),e.delete(i));return o.push(r),[!1,!1]})),e},$.hash=function(){var e,t,r,n,a,s,i=arguments.length;if(1===i&&arguments[0].$$is_hash)return arguments[0];if(t=new Map,1===i){if(e=arguments[0],arguments[0].$$is_array){for(n=e.length,r=0;r<n;r++)2!==e[r].length&&b($.ArgumentError,"value not of length 2: "+e[r].$inspect()),a=e[r][0],s=e[r][1],$.hash_put(t,a,s);return t}for(a in e=arguments[0])_(e,a)&&(s=e[a],$.hash_put(t,a,s));return t}for(i%2!=0&&b($.ArgumentError,"odd number of arguments for Hash"),r=0;r<i;r+=2)a=arguments[r],s=arguments[r+1],$.hash_put(t,a,s);return t},$.hash2=function(e,r){t.warn("DEPRECATION: `Opal.hash2` is deprecated and will be removed in Opal 2.0. Use `new Map()` with an array of key/value pairs instead.");for(var n=new Map,a=0,s=e.length;a<s;a++)n.set(e[a],r[e[a]]);return n},$.hash_each=function(e,t,r){for(var n,a,s=0,i=Array.from(e.entries()),o=i.length;s<o;s++)if((n=r((a=i[s])[0],a[1]))[0])return n[1];return n?n[1]:t},$.range=function(e,t,r){var n=new $.Range;return n.begin=e,n.end=t,n.excl=r,n};var X=["constructor","displayName","__count__","__noSuchMethod__","__parent__","__proto__","hasOwnProperty","valueOf"];function K(e){e.$$frozen&&b($.FrozenError,"can't modify frozen "+e.$class()+": "+e,new Map([["receiver",e]]))}function W(e,t){var r,n,a,s=Object.getOwnPropertyNames(e),i=s.length;for(r=0;r<i;r++)"$"!==(n=s[r])[0]&&(a=Object.getOwnPropertyDescriptor(e,n))&&a.enumerable&&t(n,a)}function Q(e,t){return"number"==typeof e&&"number"==typeof t}function J(e,t){return"number"==typeof e&&"number"==typeof t||"string"==typeof e&&"string"==typeof t}function Z(e){return function(){return e}}$.ivar=function(e){return-1!==X.indexOf(e)&&(e+="$"),e},$.deny_frozen_access=K,$.freeze=function(e){return y(e,"$$frozen",!0),e.hasOwnProperty("$$id")||y(e,"$$id",h()),e.hasOwnProperty("$$meta")?e.$$meta.$freeze():y(e,"$$meta",null),e.hasOwnProperty("$$comparable")||y(e,"$$comparable",null),Object.seal(e),e},$.each_ivar=W,$.freeze_props=function(e){var t={get:null,set:function(t){K(e)},enumerable:!0};W(e,(function(r,n){n.writable&&(t.get=Z(n.value),Object.defineProperty(e,r,t))}))},$.escape_regexp=function(e){return $.escape_metacharacters(e.replace(/([-[\]\/{}()*+?.^$\\| ])/g,"\\$1"))},$.escape_metacharacters=function(e){return e.replace(/[\n]/g,"\\n").replace(/[\r]/g,"\\r").replace(/[\f]/g,"\\f").replace(/[\t]/g,"\\t")},$.global_regexp=function(e){return e.global?e:(null==e.$$g?e.$$g=new RegExp(e.source,"g"+e.flags):e.$$g.lastIndex=null,e.$$g)},$.transform_regexp=function(e,r){return $.Opal.RegexpTranspiler||t.warn("ERROR: RegexpTranspiler has not been loaded, yet we try to create a dynamic regexp"),$.Opal.RegexpTranspiler.$transform_regexp(e,r)},$.regexp=function(e,t){var r;null==t&&(t="");for(var n=t.includes("i"),a=0,s=e.length;a<s;a++)(r=e[a])instanceof RegExp&&(r.ignoreCase!==n&&$.Kernel.$warn("ignore case doesn't match for "+r.source.$inspect(),new Map([["uplevel",1]])),r=null!=r.$$source?r.$$source:r.source),""===r&&(r="(?:"+r+")"),e[a]=r;e=e.join(""),e=$.escape_metacharacters(e);var i=$.transform_regexp(e,t),o=new RegExp(i[0],i[1]);return e!=i[0]&&(o.$$source=e),t!=i[1]&&(o.$$options=t),o},$.annotate_regexp=function(e,t,r){return e.$$source=t,e.$$options=r,e},$.empty_regexp=function(e){return $.annotate_regexp(new RegExp(/(?:)/,e),"")},$.modules={},$.loaded_features=["corelib/runtime"],$.current_dir=".",$.require_table={"corelib/runtime":!0},$.normalize=function(e){var t,r,n=[];"."!==$.current_dir&&(e=$.current_dir.replace(/\/*$/,"/")+e);for(var a=0,s=(t=(e=(e=e.replace(/^\.\//,"")).replace(/\.(rb|opal|js)$/,"")).split("/")).length;a<s;a++)""!==(r=t[a])&&(".."===r?n.pop():n.push(r));return n.join("/")},$.loaded=function(e){var t,r,n;for(t=0,r=e.length;t<r;t++)n=$.normalize(e[t]),$.require_table[n]||($.loaded_features.push(n),$.require_table[n]=!0)},$.load_normalized=function(e){$.loaded([e]);var r=$.modules[e];if(r){var n=r($);if("undefined"!=typeof Promise&&n instanceof Promise)return n.then(Z(!0))}else{var a=$.config.missing_require_severity,s="cannot load such file -- "+e;"error"===a?b($.LoadError,s):"warning"===a&&t.warn("WARNING: LoadError: "+s)}return!0},$.load=function(e){return e=$.normalize(e),$.load_normalized(e)},$.require=function(e){return e=$.normalize(e),!$.require_table[e]&&$.load_normalized(e)},$.encodings=Object.create(null),$.set_encoding=function(e,t,r){void 0===r&&(r="encoding"),"string"!=typeof e&&!0!==e.$$frozen||b($.FrozenError,"can't modify frozen String");var n=$.find_encoding(t);return n===e[r]||(e[r]=n),e},$.find_encoding=function(e){var t=$.encodings,r=t[e]||t[e.toUpperCase()];return r||b($.ArgumentError,"unknown encoding name - "+e),r},$.enc=function(e,t){var r=new String(e);return(r=$.set_encoding(r,t)).internal_encoding=r.encoding,r},$.binary=function(e){var t=new String(e);return $.set_encoding(t,"binary","internal_encoding")},$.last_promise=null,$.promise_unhandled_exception=!1,$.queue=function(e){if($.last_promise)return $.last_promise=$.last_promise.then((function(){if(!$.promise_unhandled_exception)return e($)})).catch((function(e){$.respond_to(e,"$full_message")&&(e=e.$full_message()),t.error(e),$.promise_unhandled_exception=!0,$.exit(1)})),$.last_promise;var r=e($);return"function"==typeof Promise&&"object"==typeof r&&r instanceof Promise&&($.last_promise=r),r},$.rb_plus=function(e,t){return Q(e,t)?e+t:e["$+"](t)},$.rb_minus=function(e,t){return Q(e,t)?e-t:e["$-"](t)},$.rb_times=function(e,t){return Q(e,t)?e*t:e["$*"](t)},$.rb_divide=function(e,t){return Q(e,t)?e/t:e["$/"](t)},$.rb_lt=function(e,t){return Q(e,t)?e<t:e["$<"](t)},$.rb_gt=function(e,t){return Q(e,t)?e>t:e["$>"](t)},$.rb_le=function(e,t){return Q(e,t)?e<=t:e["$<="](t)},$.rb_ge=function(e,t){return Q(e,t)?e>=t:e["$>="](t)},$.eqeq=function(e,t){return J(e,t)?e===t:x(e["$=="](t))},$.eqeqeq=function(e,t){return J(e,t)?e===t:x(e["$==="](t))},$.neqeq=function(e,t){return J(e,t)?e!==t:x(e["$!="](t))},$.not=function(e){return null==e||!1===e||r===e||!0!==e&&!e["$!"].$$pristine&&x(e["$!"]())},$.return_val=Z,$.return_self=function(){return this},$.return_ivar=function(e){return function(){return null==this[e]?r:this[e]}},$.assign_ivar=function(e){return function(t){return K(this),this[e]=t}},$.assign_ivar_val=function(e,t){return function(){return K(this),this[e]=t}},$.ensure_kwargs=function(e){return null==e?new Map:e.$$is_hash?e:void b($.ArgumentError,"expected kwargs")},$.get_kwarg=function(e,t){var r=$.hash_get(e,t);return void 0===r&&b($.ArgumentError,"missing keyword: "+t),r},$.large_array_unpack=function(e){var t,n=e.split(","),a=n.length;for(t=0;t<a;t++)switch(n[t][0]){case void 0:n[t]=r;break;case"-":case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":n[t]=+n[t]}return n},$.opal32_init=Z(1332765036),$.opal32_add=function(e,t){var r,n;return e=(r=e^=t)<<(n=1)|r>>>32-n},$.BasicObject=n=O("BasicObject",null),$.Object=a=O("Object",$.BasicObject),$.Module=s=O("Module",$.Object),$.Class=i=O("Class",$.Module),$.Opal=o=A("Opal"),$.Kernel=l=A("Kernel"),p($.BasicObject,$.Class.$$prototype),p($.Object,$.Class.$$prototype),p($.Module,$.Class.$$prototype),p($.Class,$.Class.$$prototype),n.$$const.BasicObject=n,q(a,"BasicObject",n),q(a,"Object",a),q(a,"Module",s),q(a,"Class",i),q(a,"Opal",o),q(a,"Kernel",l),n.$$class=i,a.$$class=i,s.$$class=i,i.$$class=i,o.$$class=s,l.$$class=s,y(a.$$prototype,"toString",(function(){var e=this.$to_s();return e.$$is_string&&"object"==typeof e?e.valueOf():e})),y(a.$$prototype,"$require",$.require),$.top=new a,$.top.$to_s=$.top.$inspect=Z("main"),$.top.$define_method=function e(){var t=e.$$p;return e.$$p=null,$.send(a,"define_method",arguments,t)},$.NilClass=O("NilClass",$.Object),q(a,"NilClass",$.NilClass),(r=$.nil=new $.NilClass).$$id=4,r.call=r.apply=function(){b($.LocalJumpError,"no block given")},r.$$frozen=!0,r.$$comparable=!1,Object.seal(r),$.thrower=function(e){return{$thrower_type:e,$throw:function(t,n){throw null==t&&(t=r),this.is_orphan&&!n&&b($.LocalJumpError,"unexpected "+e,t,e.$to_sym()),this.$v=t,this},is_orphan:!1}},Object.defineProperty(g,"@",{enumerable:!0,configurable:!0,get:function(){return x(g["!"])?g["!"].$backtrace():r},set:function(e){x(g["!"])?g["!"].$set_backtrace(e):b($.ArgumentError,"$! not set")}}),$.t_eval_return=$.thrower("return"),TypeError.$$super=Error,$.file_sources={}}).call(this),Opal.loaded(["corelib/runtime.js"]),Opal.modules["corelib/helpers"]=function(e){var t=e.type_error,r=e.coerce_to,n=e.module,a=e.defs,s=e.slice,i=e.eqeqeq,o=e.Kernel,l=e.truthy,$=e.Opal,u=e.nil,c=e.$$$;return e.add_stubs("===,raise,respond_to?,nil?,__send__,<=>,class,coerce_to!,new,to_s,__id__"),function(_){var p=n("::","Opal");a(p,"$bridge",(function(t,r){return e.bridge(t,r)})),a(p,"$coerce_to!",(function(e,n,a,l){var $,u;return $=s(arguments,3),u=r(e,n,a,$),i(n,u)||o.$raise(t(e,n,a,u)),u}),-4),a(p,"$coerce_to?",(function(e,n,a,$){var c,_=u;return c=s(arguments,3),l(e["$respond_to?"](a))?(_=r(e,n,a,c),l(_["$nil?"]())?u:(i(n,_)||o.$raise(t(e,n,a,_)),_)):u}),-4),a(p,"$try_convert",(function(e,t,r){return i(t,e)?e:l(e["$respond_to?"](r))?e.$__send__(r):u})),a(p,"$compare",(function(e,t){var r;return r=e["$<=>"](t),l(r===u)&&o.$raise(c("ArgumentError"),"comparison of "+e.$class()+" with "+t.$class()+" failed"),r})),a(p,"$destructure",(function(e){if(1==e.length)return e[0];if(e.$$is_array)return e;for(var t=new Array(e.length),r=0,n=t.length;r<n;r++)t[r]=e[r];return t})),a(p,"$respond_to?",(function(e,t,r){return null==r&&(r=!1),!(null==e||!e.$$class)&&e["$respond_to?"](t,r)}),-3),a(p,"$instance_variable_name!",(function(e){return e=$["$coerce_to!"](e,c("String"),"to_str"),l(/^@[a-zA-Z_][a-zA-Z0-9_]*?$/.test(e))||o.$raise(c("NameError").$new("'"+e+"' is not allowed as an instance variable name",e)),e})),a(p,"$class_variable_name!",(function(e){return e=$["$coerce_to!"](e,c("String"),"to_str"),l(e.length<3||"@@"!==e.slice(0,2))&&o.$raise(c("NameError").$new("`"+e+"' is not allowed as a class variable name",e)),e})),a(p,"$const_name?",(function(e){return"string"!=typeof e&&(e=$["$coerce_to!"](e,c("String"),"to_str")),e[0]===e[0].toUpperCase()})),a(p,"$const_name!",(function(e){return l(c("::","String","skip_raise")?"constant":u)&&(e=$["$coerce_to!"](e,c("String"),"to_str")),e&&e[0]==e[0].toUpperCase()||this.$raise(c("NameError"),"wrong constant name "+e),e})),a(p,"$pristine",(function(t,r){for(var n,a,i,o=(n=s(arguments,1)).length-1;o>=0;o--)a=n[o],(i=t.$$prototype[e.jsid(a)])&&!i.$$stub&&(i.$$pristine=!0);return u}),-2);var m=[];return a(p,"$inspect",(function(t){var r=!1;return function(){try{try{return null===t?"null":void 0===t?"undefined":void 0===t.$$class?Object.prototype.toString.apply(t):"function"!=typeof t.$inspect||t.$inspect.$$stub||-1!==m.indexOf(t.$__id__())?"#<"+t.$$class+":0x"+t.$__id__().$to_s(16)+">":(m.push(t.$__id__()),r=!0,t.$inspect())}catch(r){if(!e.rescue(r,[c("Exception")]))throw r;r;try{return"#<"+t.$$class+":0x"+t.$__id__().$to_s(16)+">"}finally{e.pop_exception(r)}}}finally{r&&m.pop()}}()}),-1)}()},Opal.modules["corelib/module"]=function(e){var t=e.truthy,r=e.coerce_to,n=e.const_set,a=e.Object,s=e.return_ivar,i=e.assign_ivar,o=e.ivar,l=e.deny_frozen_access,$=e.freeze,u=e.prop,c=e.jsid,_=e.each_ivar,p=e.klass,m=e.Opal,d=e.Kernel,f=e.defs,h=e.send,g=e.def,b=e.eqeqeq,v=e.Module,y=e.rb_lt,x=e.rb_gt,w=e.slice,k=e.to_a,U=e.return_val,E=e.eqeq,M=e.not,q=e.rb_le,S=e.range,O=e.send2,A=e.find_super,T=e.alias,N=e.nil,z=e.$$$;return e.add_stubs("try_convert,raise,class,module_eval,to_proc,===,equal?,<,>,nil?,attr_reader,attr_writer,warn,attr_accessor,const_name?,class_variable_name!,pristine,const_name!,=~,new,inject,split,const_get,==,start_with?,!~,owner,!,<=,frozen?,append_features,included,name,cover?,size,merge,compile,proc,any?,prepend_features,prepended,to_s,__id__,constants,include?,copy_class_variables,copy_constants,copy_singleton_methods,class_exec,module_exec,inspect"),function(R,I,C){var P=p("::",null,"Module"),L=[P].concat(C),F=e.$r(L);function D(e){if(e.$$is_string)return e;var t=m.$try_convert(e,z("String"),"to_str");if(t.$$is_string)return t;t===N?d.$raise(z("TypeError"),e+" is not a symbol nor a string"):d.$raise(z("TypeError"),"can't convert "+e.$class()+" to String ("+e.$class()+"#to_str gives "+t.$class())}f(P,"$allocate",(function(){var t=e.allocate_module(N,(function(){}));return this!==e.Module&&Object.setPrototypeOf(t,this.$$prototype),t})),g(P,"$initialize",(function e(){var t=e.$$p||N;return e.$$p=null,t!==N?h(this,"module_eval",[],t.$to_proc()):N})),g(P,"$===",(function(r){return!t(null==r)&&e.is_a(r,this)})),g(P,"$<",(function(t){var r,n,a,s=this;if(b(v,t)||d.$raise(z("TypeError"),"compared with non class/module"),s===t)return!1;for(n=0,a=(r=e.ancestors(s)).length;n<a;n++)if(r[n]===t)return!0;for(n=0,a=(r=e.ancestors(t)).length;n<a;n++)if(r[n]===s)return!1;return N})),g(P,"$<=",(function(e){var r;return t(r=this["$equal?"](e))?r:y(this,e)})),g(P,"$>",(function(e){return b(v,e)||d.$raise(z("TypeError"),"compared with non class/module"),y(e,this)})),g(P,"$>=",(function(e){var r;return t(r=this["$equal?"](e))?r:x(this,e)})),g(P,"$<=>",(function(e){var r=N;return this===e?0:b(v,e)?(r=y(this,e),t(r["$nil?"]())?N:t(r)?-1:1):N})),g(P,"$alias_method",(function(t,n){var a=this;return l(a),t=r(t,z("String"),"to_str"),n=r(n,z("String"),"to_str"),e.alias(a,t,n),a})),g(P,"$alias_native",(function(t,r){var n=this;return null==r&&(r=t),l(n),e.alias_native(n,t,r),n}),-2),g(P,"$ancestors",(function(){return e.ancestors(this)})),g(P,"$append_features",(function(t){return l(t),e.append_features(this,t),this})),g(P,"$attr_accessor",(function(e){var t,r;return t=w(arguments),h(this,"attr_reader",k(r=t)),h(this,"attr_writer",k(r))}),-1),g(P,"$attr",(function(e){var t,r=this;return 2!=(t=w(arguments)).length||!0!==t[1]&&!1!==t[1]?h(r,"attr_reader",k(t)):(r.$warn("optional boolean argument is obsoleted",new Map([["uplevel",1]])),t[1]?r.$attr_accessor(t[0]):r.$attr_reader(t[0]),N)}),-1),g(P,"$attr_reader",(function(t){var r,n=this;r=w(arguments),l(n);for(var a=n.$$prototype,i=r.length-1;i>=0;i--){var $=r[i],u=c($),_=o($),p=s(_);e.prop(a,_,N),p.$$parameters=[],p.$$arity=0,e.defn(n,u,p)}return N}),-1),g(P,"$attr_writer",(function(t){var r,n=this;r=w(arguments),l(n);for(var a=n.$$prototype,s=r.length-1;s>=0;s--){var $=r[s],u=c($+"="),_=o($),p=i(_);p.$$parameters=[["req"]],p.$$arity=1,e.prop(a,_,N),e.defn(n,u,p)}return N}),-1),g(P,"$autoload",(function(t,r){var n=this;return l(n),F("Opal")["$const_name?"](t)||d.$raise(z("NameError"),"autoload must be constant name: "+t),""==r&&d.$raise(z("ArgumentError"),"empty file name"),n.$$const.hasOwnProperty(t)||(n.$$autoload||(n.$$autoload={}),e.const_cache_version++,n.$$autoload[t]={path:r,loaded:!1,required:!1,success:!1,exception:!1},n.$const_added&&!n.$const_added.$$pristine&&n.$const_added(t)),N})),g(P,"$autoload?",(function(e){var t=this;if(t.$$autoload&&t.$$autoload[e]&&!t.$$autoload[e].required&&!t.$$autoload[e].success)return t.$$autoload[e].path;for(var r=t.$ancestors(),n=0,a=r.length;n<a;n++)if(r[n].$$autoload&&r[n].$$autoload[e]&&!r[n].$$autoload[e].required&&!r[n].$$autoload[e].success)return r[n].$$autoload[e].path;return N})),g(P,"$class_variables",(function(){return Object.keys(e.class_variables(this))})),g(P,"$class_variable_get",(function(t){return t=m["$class_variable_name!"](t),e.class_variable_get(this,t,!1)})),g(P,"$class_variable_set",(function(t,r){return l(this),t=m["$class_variable_name!"](t),e.class_variable_set(this,t,r)})),g(P,"$class_variable_defined?",(function(t){return t=m["$class_variable_name!"](t),e.class_variables(this).hasOwnProperty(t)})),g(P,"$const_added",U(N)),m.$pristine(P,"const_added"),g(P,"$remove_class_variable",(function(t){var r=this;if(l(r),t=m["$class_variable_name!"](t),e.hasOwnProperty.call(r.$$cvars,t)){var n=r.$$cvars[t];return delete r.$$cvars[t],n}d.$raise(z("NameError"),"cannot remove "+t+" for "+r)})),g(P,"$constants",(function(t){return null==t&&(t=!0),e.constants(this,t)}),-1),f(P,"$constants",(function(t){if(null==t){var r,n,s,i=(this.$$nesting||[]).concat(a),o={};for(n=0,s=i.length;n<s;n++)for(r in i[n].$$const)o[r]=!0;return Object.keys(o)}return e.constants(this,t)}),-1),f(P,"$nesting",(function(){return this.$$nesting||[]})),g(P,"$const_defined?",(function(r,n){var s=this;null==n&&(n=!0),r=F("Opal")["$const_name!"](r),t(r["$=~"](z(m,"CONST_NAME_REGEXP")))||d.$raise(z("NameError").$new("wrong constant name "+r,r));var i,o,l,$=[s];for(n&&($=$.concat(e.ancestors(s)),s.$$is_module&&($=$.concat([a]).concat(e.ancestors(a)))),o=0,l=$.length;o<l;o++){if(null!=(i=$[o]).$$const[r])return!0;if(i.$$autoload&&i.$$autoload[r]&&!i.$$autoload[r].required&&!i.$$autoload[r].success)return!0}return!1}),-2),g(P,"$const_get",(function(r,n){var a=this;return null==n&&(n=!0),0===(r=F("Opal")["$const_name!"](r)).indexOf("::")&&"::"!==r&&(r=r.slice(2)),t(-1!=r.indexOf("::")&&"::"!=r)?h(r.$split("::"),"inject",[a],(function(e,t){return null==e&&(e=N),null==t&&(t=N),e.$const_get(t)})):(t(r["$=~"](z(m,"CONST_NAME_REGEXP")))||d.$raise(z("NameError").$new("wrong constant name "+r,r)),n?e.$$([a],r):e.const_get_local(a,r))}),-2),g(P,"$const_missing",(function(e){var t;return t=E(this,a)?e:this+"::"+e,d.$raise(z("NameError").$new("uninitialized constant "+t,e))})),g(P,"$const_set",(function(e,r){return l(this),e=m["$const_name!"](e),(t(e["$!~"](z(m,"CONST_NAME_REGEXP")))||t(e["$start_with?"]("::")))&&d.$raise(z("NameError").$new("wrong constant name "+e,e)),n(this,e,r),r})),g(P,"$public_constant",U(N)),g(P,"$define_method",(function r(n,a){var s=r.$$p||N,i=this,o=N,$=N,u=N;if(r.$$p=null,l(i),void 0===a&&s===N&&d.$raise(z("ArgumentError"),"tried to create a Proc object without a block"),n=D(n),t(void 0!==a)&&(s=b(z("Proc"),o=a)?a:b(z("Method"),o)?a.$to_proc().$$unbound:b(z("UnboundMethod"),o)?e.wrap_method_body(a.$$method):d.$raise(z("TypeError"),"wrong argument type "+a.$class()+" (expected Proc/Method/UnboundMethod)"),t(!a.$$is_proc)&&($=a.$owner(),t($.$$is_class)&&M(q(i,$))&&(u=t($.$$is_singleton)?"can't bind singleton method to a different class":"bind argument must be a subclass of "+$,d.$raise(z("TypeError"),u)))),"undefined"!=typeof Proxy){Object.create(null);s.$$proxy_target=s,s=new Proxy(s,{apply:function(e,t,r){var a=e.$$jsid,s=e.$$is_lambda;e.$$jsid=n,e.$$is_lambda=!0;try{return e.apply(t,r)}catch(t){if(t===e.$$brk||t===e.$$ret)return t.$v;throw t}finally{e.$$jsid=a,e.$$is_lambda=s}}})}return s.$$jsid=n,s.$$s=null,s.$$def=s,s.$$define_meth=!0,e.defn(i,c(n),s)}),-2),g(P,"$freeze",(function(){var e=this;return t(e["$frozen?"]())?e:(e.hasOwnProperty("$$base_module")||u(e,"$$base_module",null),$(e))})),g(P,"$remove_method",(function(t){var r,n=this;r=w(arguments);for(var a=0;a<r.length;a++){var s=D(r[a]);l(n),e.rdef(n,"$"+s)}return n}),-1),g(P,"$singleton_class?",(function(){return!!this.$$is_singleton})),g(P,"$include",(function(e){for(var t,r=this,n=(t=w(arguments)).length-1;n>=0;n--){var a=t[n];a.$$is_module||d.$raise(z("TypeError"),"wrong argument type "+a.$class()+" (expected Module)"),a.$append_features(r),a.$included(r)}return r}),-1),g(P,"$included_modules",(function(){return e.included_modules(this)})),g(P,"$include?",(function(t){t.$$is_module||d.$raise(z("TypeError"),"wrong argument type "+t.$class()+" (expected Module)");var r,n,a,s=e.ancestors(this);for(r=0,n=s.length;r<n;r++)if((a=s[r])===t&&a!==this)return!0;return!1})),g(P,"$instance_method",(function(e){var t=this,r=t.$$prototype[c(e)];return r&&!r.$$stub||d.$raise(z("NameError").$new("undefined method `"+e+"' for class `"+t.$name()+"'",e)),z("UnboundMethod").$new(t,r.$$owner||t,r,e)})),g(P,"$instance_methods",(function(r){return null==r&&(r=!0),t(r)?e.instance_methods(this):e.own_instance_methods(this)}),-1),g(P,"$included",U(N)),g(P,"$extended",U(N)),g(P,"$extend_object",(function(e){return l(e),N})),g(P,"$method_added",(function(e){return w(arguments),N}),-1),g(P,"$method_removed",(function(e){return w(arguments),N}),-1),g(P,"$method_undefined",(function(e){return w(arguments),N}),-1),g(P,"$module_eval",(function r(n){var a,s,i=r.$$p||N,o=this,l=N,$=N,u=N,c=N,_=N,p=N;r.$$p=null,a=w(arguments),t(i["$nil?"]())&&t(!!e.compile)?(t(S(1,3,!1)["$cover?"](a.$size()))||d.$raise(z("ArgumentError"),"wrong number of arguments (0 for 1..3)"),l=null==(s=[].concat(k(a)))[0]?N:s[0],$=null==s[1]?N:s[1],null==s[2]?N:s[2],u=new Map([["file",t(c=$)?c:"(eval)"],["eval",!0]]),_=new Map([["arity_check",!1]]).$merge(u),p=m.$compile(l,_),i=h(d,"proc",[],(function t(){var r=null==t.$$s?this:t.$$s;return new Function("Opal,self","return "+p)(e,r)}),{$$s:o})):t(a["$any?"]())&&d.$raise(z("ArgumentError"),"wrong number of arguments ("+a.$size()+" for 0)\n\n NOTE:If you want to enable passing a String argument please add \"require 'opal-parser'\" to your script\n");var f,g=i.$$s;return i.$$s=null,f=i.apply(o,[o]),i.$$s=g,f}),-1),g(P,"$module_exec",(function e(t){var r,n=e.$$p||N;e.$$p=null,r=w(arguments),n===N&&d.$raise(z("LocalJumpError"),"no block given");var a,s=n.$$s;return n.$$s=null,a=n.apply(this,r),n.$$s=s,a}),-1),g(P,"$method_defined?",(function(e){var t=this.$$prototype[c(e)];return!!t&&!t.$$stub})),g(P,"$module_function",(function(t){var r,n=this;if(r=w(arguments),l(n),0===r.length)return n.$$module_function=!0,N;for(var a=0,s=r.length;a<s;a++){var i=r[a],o=c(i),$=n.$$prototype[o];e.defs(n,o,$)}return 1===r.length?r[0]:r}),-1),g(P,"$name",(function(){var e=this;if(e.$$full_name)return e.$$full_name;for(var t=[],r=e;r;){if(r.$$name===N||null==r.$$name)return N;if(t.unshift(r.$$name),(r=r.$$base_module)===a)break}return 0===t.length?N:e.$$full_name=t.join("::")})),g(P,"$prepend",(function(e){var t,r=this;0===(t=w(arguments)).length&&d.$raise(z("ArgumentError"),"wrong number of arguments (given 0, expected 1+)");for(var n=t.length-1;n>=0;n--){var a=t[n];a.$$is_module||d.$raise(z("TypeError"),"wrong argument type "+a.$class()+" (expected Module)"),a.$prepend_features(r),a.$prepended(r)}return r}),-1),g(P,"$prepend_features",(function(t){var r=this;return l(t),r.$$is_module||d.$raise(z("TypeError"),"wrong argument type "+r.$class()+" (expected Module)"),e.prepend_features(r,t),r})),g(P,"$prepended",U(N)),g(P,"$remove_const",(function(t){return l(this),e.const_remove(this,t)})),g(P,"$to_s",(function(){var r,n=this;return t(r=e.Module.$name.call(n))?r:"#<"+(n.$$is_module?"Module":"Class")+":0x"+n.$__id__().$to_s(16)+">"})),g(P,"$undef_method",(function(t){var r,n=this;r=w(arguments);for(var a=0;a<r.length;a++){var s=D(r[a]);l(n),e.udef(n,"$"+s)}return n}),-1),g(P,"$instance_variables",(function(){var t=N;e.Module.$$nesting=L,t=this.$constants();var r=[];return _(this,(function(e){"constructor"===e||t["$include?"](e)||r.push("@"+e)})),r})),g(P,"$initialize_copy",(function(t){var r=this;return function(t,r){var n,a=e.own_instance_methods(t);for(n=0;n<a.length;n++){var s=a[n],i=c(s),o=t.$$prototype[i],l=e.wrap_method_body(o);l.$$jsid=s,e.defn(r,i,l)}}(t,r),function(t,r){for(var n=t.$$own_included_modules,a=n.length-1;a>=0;a--)e.append_features(n[a],r)}(t,r),function(t,r){for(var n=t.$$own_prepended_modules,a=n.length-1;a>=0;a--)e.prepend_features(n[a],r)}(t,r),r.$$cloned_from=t.$$cloned_from.concat(t),r.$copy_class_variables(t),r.$copy_constants(t)})),g(P,"$initialize_dup",(function e(t){var r=e.$$p||N,n=this;return e.$$p=null,O(n,A(n,"initialize_dup",e,!1,!0),"initialize_dup",[t],r),n.$copy_singleton_methods(t)})),g(P,"$copy_class_variables",(function(e){for(var t in e.$$cvars)this.$$cvars[t]=e.$$cvars[t]})),g(P,"$copy_constants",(function(e){var t,r=e.$$const;for(t in r)n(this,t,r[t])})),g(P,"$refine",(function t(r){var n,a,s,i=t.$$p||N,o=this,l=N;return t.$$p=null,a=(n=[o,N,N])[0],l=n[1],n[2],s=e.id(r),void 0===o.$$refine_modules&&(o.$$refine_modules=Object.create(null)),(l=void 0===o.$$refine_modules[s]?o.$$refine_modules[s]=z("Refinement").$new():o.$$refine_modules[s]).refinement_module=a,l.refined_class=r,h(l,"class_exec",[],i.$to_proc()),l})),g(P,"$refinements",(function(){var e=this.$$refine_modules,t=new Map;if(void 0===e)return t;for(var r in e)t["$[]="](e[r].refined_class,e[r]);return t})),g(P,"$using",(function(e){return d.$raise("Module#using is not permitted in methods")})),T(P,"class_eval","module_eval"),T(P,"class_exec","module_exec"),T(P,"inspect","to_s")}(0,0,[]),function(e,r){var n=p("::",r,"Refinement"),a=n.$$prototype;return a.refinement_module=a.refined_class=N,n.$attr_reader("refined_class"),g(n,"$inspect",(function e(){var r=e.$$p||N,n=this;return e.$$p=null,t(n.refinement_module)?"#<refinement:"+n.refined_class.$inspect()+"@"+n.refinement_module.$inspect()+">":O(n,A(n,"inspect",e,!1,!0),"inspect",[],r)}))}(0,v)},Opal.modules["corelib/class"]=function(e){var t=e.klass,r=e.send,n=e.defs,a=e.def,s=e.ensure_kwargs,i=e.hash_get,o=e.eqeq,l=e.truthy,$=e.rb_plus,u=e.return_val,c=e.slice,_=e.send2,p=e.find_super,m=e.Kernel,d=e.alias,f=e.top,h=e.nil,g=e.$$$;return e.add_stubs("require,class_eval,to_proc,==,nil?,raise,class,copy_instance_variables,copy_singleton_methods,initialize_clone,frozen?,freeze,initialize_dup,+,subclasses,flatten,map,allocate,name,to_s"),f.$require("corelib/module"),function(f,b,v){var y=t("::",null,"Class"),x=[y].concat(v),w=e.$r(x);return n(y,"$new",(function t(n){var a=t.$$p||h;if(t.$$p=null,null==n&&(n=w("Object")),!n.$$is_class)throw e.TypeError.$new("superclass must be a Class");var s=e.allocate_class(h,n);return n.$inherited(s),a!==h&&r(s,"class_eval",[],a.$to_proc()),s}),-1),a(y,"$allocate",(function(){var t=new this.$$constructor;return t.$$id=e.uid(),t})),a(y,"$clone",(function(t){var r,n=this,a=h;return t=s(t),null==(r=i(t,"freeze"))&&(r=h),l(r["$nil?"]())||o(r,!0)||o(r,!1)||n.$raise(w("ArgumentError"),"unexpected value for freeze: "+r.$class()),(a=e.allocate_class(h,n.$$super)).$copy_instance_variables(n),a.$copy_singleton_methods(n),a.$initialize_clone(n,new Map([["freeze",r]])),(o(r,!0)||l(r["$nil?"]())&&l(n["$frozen?"]()))&&a.$freeze(),a}),-1),a(y,"$dup",(function(){var t=this,r=h;return(r=e.allocate_class(h,t.$$super)).$copy_instance_variables(t),r.$initialize_dup(t),r})),a(y,"$descendants",(function(){return $(this.$subclasses(),r(this.$subclasses(),"map",[],"descendants".$to_proc()).$flatten())})),a(y,"$inherited",u(h)),a(y,"$new",(function t(r){var n,a=t.$$p||h;t.$$p=null,n=c(arguments);var s=this.$allocate();return e.send(s,s.$initialize,n,a),s}),-1),a(y,"$subclasses",(function(){var e=this;if("undefined"!=typeof WeakRef){var t,r,n=[];for(t=0;t<e.$$subclasses.length;t++)void 0!==(r=e.$$subclasses[t].deref())&&n.push(r);return n}return e.$$subclasses})),a(y,"$superclass",(function(){return this.$$super||h})),a(y,"$to_s",(function t(){var r=this;t.$$p=null;var n=r.$$singleton_of;return n&&n.$$is_a_module?"#<Class:"+n.$name()+">":n?"#<Class:#<"+n.$$class.$name()+":0x"+e.id(n).$to_s(16)+">>":_(r,p(r,"to_s",t,!1,!0),"to_s",[],null)})),a(y,"$attached_object",(function(){var e=this;if(null!=e.$$singleton_of)return e.$$singleton_of;m.$raise(g("TypeError"),"`"+e+"' is not a singleton class")})),d(y,"inspect","to_s")}(0,0,[])},Opal.modules["corelib/basic_object"]=function(e){var t=e.klass,r=e.slice,n=e.def,a=e.alias,s=e.return_val,i=e.Opal,o=e.truthy,l=e.range,$=e.Kernel,u=e.to_a,c=e.send,_=e.eqeq,p=e.rb_ge,m=e.nil,d=e.$$$;return e.add_stubs("==,raise,inspect,pristine,!,nil?,cover?,size,merge,compile,proc,[],first,>=,length,instance_variable_get,any?,new,caller"),function(f,h){var g=t("::",null,"BasicObject");return n(g,"$initialize",(function(e){return r(arguments),m}),-1),n(g,"$==",(function(e){return this===e})),n(g,"$eql?",(function(e){return this["$=="](e)})),a(g,"equal?","=="),n(g,"$__id__",(function(){var t=this;return null!=t.$$id||e.prop(t,"$$id",e.uid()),t.$$id})),n(g,"$__send__",(function t(n,a){var s,i=t.$$p||m,o=this;t.$$p=null,s=r(arguments,1),n.$$is_string||o.$raise(d("TypeError"),o.$inspect()+" is not a symbol nor a string");var l=o[e.jsid(n)];return l?(i!==m&&(l.$$p=i),l.apply(o,s)):(i!==m&&(o.$method_missing.$$p=i),o.$method_missing.apply(o,[n].concat(s)))}),-2),n(g,"$!",s(!1)),i.$pristine("!"),n(g,"$!=",(function(e){return this["$=="](e)["$!"]()})),n(g,"$instance_eval",(function t(n){var a,s,f=t.$$p||m,h=this,g=m,b=m,v=m,y=m,x=m,w=m;if(t.$$p=null,a=r(arguments),o(f["$nil?"]())&&o(!!e.compile))o(l(1,3,!1)["$cover?"](a.$size()))||$.$raise(d("ArgumentError"),"wrong number of arguments (0 for 1..3)"),g=null==(s=[].concat(u(a)))[0]?m:s[0],b=null==s[1]?m:s[1],null==s[2]?m:s[2],v=new Map([["file",o(y=b)?y:"(eval)"],["eval",!0]]),x=new Map([["arity_check",!1]]).$merge(v),w=i.$compile(g,x),f=c($,"proc",[],(function t(){var r=null==t.$$s?this:t.$$s;return new Function("Opal,self","return "+w)(e,r)}),{$$s:h});else{if(o(f["$nil?"]())&&o(p(a.$length(),1))&&_(a.$first()["$[]"](0),"@"))return h.$instance_variable_get(a.$first());o(a["$any?"]())&&$.$raise(d("ArgumentError"),"wrong number of arguments ("+a.$size()+" for 0)")}var k,U=f.$$s;if(f.$$s=null,h.$$is_a_module){h.$$eval=!0;try{k=f.call(h,h)}finally{h.$$eval=!1}}else k=f.call(h,h);return f.$$s=U,k}),-1),n(g,"$instance_exec",(function e(t){var n,a=e.$$p||m,s=this;e.$$p=null,n=r(arguments),o(a)||$.$raise(d("ArgumentError"),"no block given");var i,l=a.$$s;if(a.$$s=null,s.$$is_a_module){s.$$eval=!0;try{i=a.apply(s,n)}finally{s.$$eval=!1}}else i=a.apply(s,n);return a.$$s=l,i}),-1),n(g,"$singleton_method_added",(function(e){return r(arguments),m}),-1),n(g,"$singleton_method_removed",(function(e){return r(arguments),m}),-1),n(g,"$singleton_method_undefined",(function(e){return r(arguments),m}),-1),n(g,"$method_missing",(function e(t,n){var a,s;return e.$$p=null,a=r(arguments,1),s=i.$inspect(this),$.$raise(d("NoMethodError").$new("undefined method `"+t+"' for "+s,t,a),m,$.$caller(1))}),-2),i.$pristine(g,"method_missing"),n(g,"$respond_to_missing?",(function(e,t){return null==t&&(t=!1),!1}),-2)}()},Opal.modules["corelib/kernel"]=function(e){var t=e.truthy,r=e.coerce_to,n=e.respond_to,a=e.Opal,s=e.deny_frozen_access,i=e.freeze,o=e.freeze_props,l=e.jsid,$=e.each_ivar,u=e.module,c=e.return_val,_=e.def,p=e.Kernel,m=e.gvars,d=e.slice,f=e.send,h=e.to_a,g=e.ensure_kwargs,b=e.hash_get,v=e.eqeq,y=e.rb_plus,x=e.extract_kwargs,w=e.eqeqeq,k=e.return_self,U=e.rb_le,E=e.rb_lt,M=e.Object,q=e.alias,S=e.klass,O=e.nil,A=e.$$$;return e.add_stubs("!,=~,==,object_id,raise,new,class,coerce_to?,<<,map,caller,nil?,allocate,copy_instance_variables,copy_singleton_methods,initialize_clone,frozen?,freeze,initialize_copy,define_method,singleton_class,to_proc,initialize_dup,for,empty?,pop,call,append_features,extend_object,extended,gets,__id__,include?,each,instance_variables,instance_variable_get,inspect,+,to_s,instance_variable_name!,respond_to?,to_int,to_i,Integer,coerce_to!,===,enum_for,result,shift,write,format,puts,<=,length,[],print,readline,<,first,split,to_str,exception,rand,respond_to_missing?,pristine,try_convert!,expand_path,join,start_with?,new_seed,srand,tag,value,open,is_a?,__send__,yield_self,include"),function(S,T){var N=u("::","Kernel"),z=[N].concat(T),R=e.$r(z);_(N,"$=~",c(!1)),_(N,"$!~",(function(e){return this["$=~"](e)["$!"]()})),_(N,"$===",(function(e){var r;return t(r=this.$object_id()["$=="](e.$object_id()))?r:this["$=="](e)})),_(N,"$<=>",(function(e){this.$$comparable=!0;var t=this["$=="](e);return t&&t!==O?0:O})),_(N,"$method",(function(e){var t=this,r=t[l(e)];return r&&!r.$$stub||p.$raise(A("NameError").$new("undefined method `"+e+"' for class `"+t.$class()+"'",e)),A("Method").$new(t,r.$$owner||t.$class(),r,e)})),_(N,"$methods",(function(r){return null==r&&(r=!0),t(r)?e.methods(this):e.own_methods(this)}),-1),_(N,"$public_methods",(function(r){return null==r&&(r=!0),t(r)?e.methods(this):e.receiver_methods(this)}),-1),_(N,"$Array",(function(e){var t;return e===O?[]:e.$$is_array?e:(t=a["$coerce_to?"](e,A("Array"),"to_ary"))!==O||(t=a["$coerce_to?"](e,A("Array"),"to_a"))!==O?t:[e]})),_(N,"$at_exit",(function e(){var r,n=e.$$p||O;return null==m.__at_exit__&&(m.__at_exit__=O),e.$$p=null,m.__at_exit__=t(r=m.__at_exit__)?r:[],m.__at_exit__["$<<"](n),n})),_(N,"$caller",(function(e,t){var r,n;null==e&&(e=1),null==t&&(t=O),n=[];for(var a=e+1,s=(r=(new Error).$backtrace()).length;a<s;a++)r[a].match(/runtime\.js/)||n.push(r[a]);return t!=O&&(n=n.slice(0,t)),n}),-1),_(N,"$caller_locations",(function(e){var t;return t=d(arguments),f(f(this,"caller",h(t)),"map",[],(function(e){return null==e&&(e=O),A(A(A("Thread"),"Backtrace"),"Location").$new(e)}))}),-1),_(N,"$class",(function(){return this.$$class})),_(N,"$copy_instance_variables",(function(e){var t,r,n,a=Object.keys(e);for(t=0,r=a.length;t<r;t++)"$"!==(n=a[t]).charAt(0)&&e.hasOwnProperty(n)&&(this[n]=e[n])})),_(N,"$copy_singleton_methods",(function(t){var r,n,a,s;if(t.hasOwnProperty("$$meta")&&null!==t.$$meta){var i=e.get_singleton_class(t),o=e.get_singleton_class(this);for(r=0,s=(a=Object.getOwnPropertyNames(i.$$prototype)).length;r<s;r++)n=a[r],e.is_method(n)&&(o.$$prototype[n]=i.$$prototype[n]);o.$$const=Object.assign({},i.$$const),Object.setPrototypeOf(o.$$prototype,Object.getPrototypeOf(i.$$prototype))}for(r=0,s=(a=Object.getOwnPropertyNames(t)).length;r<s;r++)"$"===(n=a[r]).charAt(0)&&"$"!==n.charAt(1)&&t.hasOwnProperty(n)&&(this[n]=t[n])})),_(N,"$clone",(function(e){var r,n=this,a=O;return e=g(e),null==(r=b(e,"freeze"))&&(r=O),t(r["$nil?"]())||v(r,!0)||v(r,!1)||n.$raise(R("ArgumentError"),"unexpected value for freeze: "+r.$class()),(a=n.$class().$allocate()).$copy_instance_variables(n),a.$copy_singleton_methods(n),a.$initialize_clone(n,new Map([["freeze",r]])),(v(r,!0)||t(r["$nil?"]())&&t(n["$frozen?"]()))&&a.$freeze(),a}),-1),_(N,"$initialize_clone",(function(e,t){return t=g(t),null==b(t,"freeze")&&O,this.$initialize_copy(e),this}),-2),_(N,"$define_singleton_method",(function e(t,r){var n=e.$$p||O;return e.$$p=null,f(this.$singleton_class(),"define_method",[t,r],n.$to_proc())}),-2),_(N,"$dup",(function(){var e=this,t=O;return(t=e.$class().$allocate()).$copy_instance_variables(e),t.$initialize_dup(e),t})),_(N,"$initialize_dup",(function(e){return this.$initialize_copy(e)})),_(N,"$enum_for",(function e(t,r){var n,a,s,i=e.$$p||O,o=this;return e.$$p=null,(n=d(arguments)).length>0&&(a=n.shift()),null==a&&(a="each"),s=n,f(A("Enumerator"),"for",[o,a].concat(h(s)),i.$to_proc())}),-1),_(N,"$equal?",(function(e){return this===e})),_(N,"$exit",(function(n){var a;for(null==m.__at_exit__&&(m.__at_exit__=O),null==n&&(n=!0),m.__at_exit__=t(a=m.__at_exit__)?a:[];!t(m.__at_exit__["$empty?"]());)m.__at_exit__.$pop().$call();return n=n.$$is_boolean?n?0:1:r(n,A("Integer"),"to_int"),e.exit(n),O}),-1),_(N,"$extend",(function(e){var t,r=this;0==(t=d(arguments)).length&&r.$raise(A("ArgumentError"),"wrong number of arguments (given 0, expected 1+)"),s(r);for(var n=r.$singleton_class(),a=t.length-1;a>=0;a--){var i=t[a];i.$$is_module||p.$raise(A("TypeError"),"wrong argument type "+i.$class()+" (expected Module)"),i.$append_features(n),i.$extend_object(r),i.$extended(r)}return r}),-1),_(N,"$freeze",(function(){var e=this;return t(e["$frozen?"]())?e:"object"==typeof e?(o(e),i(e)):e})),_(N,"$frozen?",(function(){switch(typeof this){case"string":case"symbol":case"number":case"boolean":return!0;case"object":return this.$$frozen||!1;default:return!1}})),_(N,"$gets",(function(e){var t;return null==m.stdin&&(m.stdin=O),t=d(arguments),f(m.stdin,"gets",h(t))}),-1),_(N,"$hash",(function(){return this.$__id__()})),_(N,"$initialize_copy",c(O));var I=[];_(N,"$inspect",(function(){var r=this,n=O,a=O,s=O;return function(){try{try{return n="",a=r.$__id__(),t(I["$include?"](a))?n=" ...":(I["$<<"](a),s=!0,f(r.$instance_variables(),"each",[],(function e(t){var r,a;return null==t&&(t=O),r=(null==e.$$s?this:e.$$s).$instance_variable_get(t),a=R("Opal").$inspect(r),n=y(n," "+t+"="+a)}),{$$s:r})),"#<"+r.$class()+":0x"+a.$to_s(16)+n+">"}catch(t){if(!e.rescue(t,[R("StandardError")]))throw t;t;try{return"#<"+r.$class()+":0x"+a.$to_s(16)+">"}finally{e.pop_exception(t)}}}finally{t(s)&&I.$pop()}}()})),_(N,"$instance_of?",(function(e){return e.$$is_class||e.$$is_module||p.$raise(A("TypeError"),"class or module required"),this.$$class===e})),_(N,"$instance_variable_defined?",(function(t){return t=a["$instance_variable_name!"](t),e.hasOwnProperty.call(this,t.substr(1))})),_(N,"$instance_variable_get",(function(t){t=a["$instance_variable_name!"](t);var r=this[e.ivar(t.substr(1))];return null==r?O:r})),_(N,"$instance_variable_set",(function(t,r){return s(this),t=a["$instance_variable_name!"](t),this[e.ivar(t.substr(1))]=r})),_(N,"$remove_instance_variable",(function(t){var r=this;t=a["$instance_variable_name!"](t);var n,s=e.ivar(t.substr(1));return r.hasOwnProperty(s)?(n=r[s],delete r[s],n):p.$raise(A("NameError"),"instance variable "+t+" not defined")})),_(N,"$instance_variables",(function(){var e=[];return $(this,(function(t){"$"===t.substr(-1)&&(t=t.slice(0,t.length-1)),e.push("@"+t)})),e})),_(N,"$Integer",(function(n,a,s){var i,o,l,$,u,c,_;if(i=d(arguments,1),o=x(i),o=g(o),i.length>0&&(l=i.shift()),null==($=b(o,"exception"))&&($=!0),$=t($),!n.$$is_string){if(void 0!==l){if(!$)return O;p.$raise(A("ArgumentError"),"base specified for non string value")}if(n===O){if(!$)return O;p.$raise(A("TypeError"),"can't convert nil into Integer")}if(n.$$is_number){if(n===1/0||n===-1/0||isNaN(n)){if(!$)return O;p.$raise(A("FloatDomainError"),n)}return Math.floor(n)}if(n["$respond_to?"]("to_int")&&(u=n.$to_int(),e.is_a(u,A("Integer"))))return u;if(n["$respond_to?"]("to_i")&&(u=n.$to_i(),e.is_a(u,A("Integer"))))return u;if(!$)return O;p.$raise(A("TypeError"),"can't convert "+n.$class()+" into Integer")}if("0"===n)return 0;if(void 0===l)l=0;else if(1===(l=r(l,A("Integer"),"to_int"))||l<0||l>36){if(!$)return O;p.$raise(A("ArgumentError"),"invalid radix "+l)}if(c=(c=(c=n.toLowerCase()).replace(/(\d)_(?=\d)/g,"$1")).replace(/^(\s*[+-]?)(0[bodx]?)/,(function(e,t,r){switch(r){case"0b":if(0===l||2===l)return l=2,t;case"0":case"0o":if(0===l||8===l)return l=8,t;case"0d":if(0===l||10===l)return l=10,t;case"0x":if(0===l||16===l)return l=16,t}if(!$)return O;p.$raise(A("ArgumentError"),'invalid value for Integer(): "'+n+'"')})),_="0-"+((l=0===l?10:l)<=10?l-1:"9a-"+String.fromCharCode(l-11+97)),!new RegExp("^\\s*[+-]?["+_+"]+\\s*$").test(c)){if(!$)return O;p.$raise(A("ArgumentError"),'invalid value for Integer(): "'+n+'"')}if(u=parseInt(c,l),isNaN(u)){if(!$)return O;p.$raise(A("ArgumentError"),'invalid value for Integer(): "'+n+'"')}return u}),-2),_(N,"$Float",(function(e,n){var s,i;if(n=g(n),null==(s=b(n,"exception"))&&(s=!0),s=t(s),e===O){if(!s)return O;p.$raise(A("TypeError"),"can't convert nil into Float")}if(e.$$is_string){if(i=(i=e.toString()).replace(/(\d)_(?=\d)/g,"$1"),/^\s*[-+]?0[xX][0-9a-fA-F]+\s*$/.test(i))return p.$Integer(i);if(!/^\s*[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?\s*$/.test(i)){if(!s)return O;p.$raise(A("ArgumentError"),'invalid value for Float(): "'+e+'"')}return parseFloat(i)}return s?a["$coerce_to!"](e,A("Float"),"to_f"):r(e,A("Float"),"to_f")}),-2),_(N,"$Hash",(function(e){return t(e["$nil?"]())||v(e,[])?new Map:w(A("Hash"),e)?e:a["$coerce_to!"](e,A("Hash"),"to_hash")})),_(N,"$is_a?",(function(t){return t.$$is_class||t.$$is_module||p.$raise(A("TypeError"),"class or module required"),e.is_a(this,t)})),_(N,"$itself",k),_(N,"$lambda",(function t(){var r=t.$$p||O;return t.$$p=null,e.lambda(r)})),_(N,"$load",(function(t){return t=a["$coerce_to!"](t,A("String"),"to_str"),e.load(t)})),_(N,"$loop",(function r(){var n=r.$$p||O,a=O;if(r.$$p=null,n===O)return f(this,"enum_for",["loop"],(function(){return A(A("Float"),"INFINITY")}));for(;t(!0);)try{e.yieldX(n,[])}catch(t){if(!e.rescue(t,[A("StopIteration")]))throw t;a=t;try{return a.$result()}finally{e.pop_exception(t)}}return this})),_(N,"$nil?",c(!1)),_(N,"$printf",(function(e){var r,n;return null==m.stdout&&(m.stdout=O),r=d(arguments),t((n=r)["$empty?"]())||(t(n[0].$$is_string)?m.stdout:n.$shift()).$write(f(this,"format",h(n))),O}),-1),_(N,"$proc",(function e(){var r=e.$$p||O;return e.$$p=null,t(r)||p.$raise(A("ArgumentError"),"tried to create Proc object without a block"),r.$$is_lambda=!1,r})),_(N,"$puts",(function(e){var t;return null==m.stdout&&(m.stdout=O),t=d(arguments),f(m.stdout,"puts",h(t))}),-1),_(N,"$p",(function(e){var r,n;return r=d(arguments),f(n=r,"each",[],(function(e){return null==m.stdout&&(m.stdout=O),null==e&&(e=O),m.stdout.$puts(e.$inspect())})),t(U(n.$length(),1))?n["$[]"](0):n}),-1),_(N,"$print",(function(e){var t;return null==m.stdout&&(m.stdout=O),t=d(arguments),f(m.stdout,"print",h(t))}),-1),_(N,"$readline",(function(e){var t;return null==m.stdin&&(m.stdin=O),t=d(arguments),f(m.stdin,"readline",h(t))}),-1),_(N,"$warn",(function(e,r){var n,s,i,o,l,$,u=O;return null==m.VERBOSE&&(m.VERBOSE=O),null==m.stderr&&(m.stderr=O),n=d(arguments),s=x(n),s=g(s),i=n,null==(o=b(s,"uplevel"))&&(o=O),t(o)&&(o=a["$coerce_to!"](o,A("Integer"),"to_str"),t(E(o,0))&&p.$raise(A("ArgumentError"),"negative level ("+o+")"),l=($=this.$caller(y(o,1),1).$first())===O||null==$?O:$.$split(":in `"),u=l===O||null==l?O:l.$first(),t(u)&&(u+=": "),i=f(i,"map",[],(function(e){return null==e&&(e=O),u+"warning: "+e}))),t(m.VERBOSE["$nil?"]())||t(i["$empty?"]())?O:f(m.stderr,"puts",h(i))}),-1),_(N,"$raise",(function(t,r,a){if(null==m["!"]&&(m["!"]=O),null==r&&(r=O),null==a&&(a=O),null==t&&m["!"]!==O)throw m["!"];throw null==t?t=A("RuntimeError").$new(""):n(t,"$to_str")?t=A("RuntimeError").$new(t.$to_str()):t.$$is_class&&n(t,"$exception")?t=t.$exception(r):t.$$is_exception||(t=A("TypeError").$new("exception class/object expected")),a!==O&&t.$set_backtrace(a),m["!"]!==O&&e.exceptions.push(m["!"]),m["!"]=t,t}),-1),_(N,"$rand",(function(e){return void 0===e?A(A("Random"),"DEFAULT").$rand():(e.$$is_number&&(e<0&&(e=Math.abs(e)),e%1!=0&&(e=e.$to_i()),0===e&&(e=void 0)),A(A("Random"),"DEFAULT").$rand(e))}),-1),_(N,"$respond_to?",(function(e,t){var r=this;null==t&&(t=!1);var n=r[l(e)];return"function"==typeof n&&!n.$$stub||!0!==r["$respond_to_missing?"].$$pristine&&r["$respond_to_missing?"](e,t)}),-2),_(N,"$respond_to_missing?",(function(e,t){return null==t&&(t=!1),!1}),-2),a.$pristine(N,"respond_to?","respond_to_missing?"),_(N,"$require",(function(t){return"string"!=typeof t&&e.String&&e.Array&&(t=a["$coerce_to!"](t,A("String"),"to_str")),e.require(t)})),_(N,"$require_relative",(function(t){return a["$try_convert!"](t,A("String"),"to_str"),t=A("File").$expand_path(A("File").$join(e.current_file,"..",t)),e.require(t)})),_(N,"$require_tree",(function(t,r){var n;r=g(r),null==(n=b(r,"autoload"))&&(n=!1);var a=[];for(var s in t=A("File").$expand_path(t),"."===(t=e.normalize(t))&&(t=""),e.modules)s["$start_with?"](t)&&(n?a.push([s,!0]):a.push([s,e.require(s)]));return a}),-2),_(N,"$singleton_class",(function(){return e.get_singleton_class(this)})),_(N,"$sleep",(function(t){null==t&&(t=O),t===O&&p.$raise(A("TypeError"),"can't convert NilClass into time interval"),t.$$is_number||p.$raise(A("TypeError"),"can't convert "+t.$class()+" into time interval"),t<0&&p.$raise(A("ArgumentError"),"time interval must be positive");for(var r=e.global.performance?function(){return performance.now()}:function(){return new Date},n=r();r()-n<=1e3*t;);return Math.round(t)}),-1),_(N,"$srand",(function(e){return null==e&&(e=R("Random").$new_seed()),A("Random").$srand(e)}),-1),_(N,"$String",(function(e){var r;return t(r=a["$coerce_to?"](e,A("String"),"to_str"))?r:a["$coerce_to!"](e,A("String"),"to_s")})),_(N,"$tap",(function t(){var r=t.$$p||O;return t.$$p=null,e.yield1(r,this),this})),_(N,"$to_proc",k),_(N,"$to_s",(function(){return"#<"+this.$class()+":0x"+this.$__id__().$to_s(16)+">"})),_(N,"$catch",(function r(n){var a=r.$$p||O,s=O,i=O;r.$$p=null,null==n&&(n=O);try{return n=t(s=n)?s:M.$new(),e.yield1(a,n)}catch(t){if(!e.rescue(t,[A("UncaughtThrowError")]))throw t;i=t;try{return v(i.$tag(),n)?i.$value():p.$raise()}finally{e.pop_exception(t)}}}),-1),_(N,"$throw",(function(e,t){return null==t&&(t=O),p.$raise(A("UncaughtThrowError").$new(e,t))}),-2),_(N,"$open",(function e(t){var r,n=e.$$p||O;return e.$$p=null,r=d(arguments),f(A("File"),"open",h(r),n.$to_proc())}),-1),_(N,"$yield_self",(function t(){var r=t.$$p||O;return t.$$p=null,r===O?f(this,"enum_for",["yield_self"],c(1)):e.yield1(r,this)})),q(N,"fail","raise"),q(N,"kind_of?","is_a?"),q(N,"object_id","__id__"),q(N,"public_send","__send__"),q(N,"send","__send__"),q(N,"then","yield_self"),q(N,"to_enum","enum_for")}(0,[]),function(e,t){var r=S("::",null,"Object");return delete M.$$prototype.$require,r.$include(p)}()},Opal.modules["corelib/main"]=function(e){var t=e.return_val,r=e.def,n=e.Object,a=e.slice,s=e.Kernel,i=e.top;e.nil;return e.add_stubs("include,raise"),function(i,o){return r(i,"$to_s",t("main")),r(i,"$include",(function(e){return n.$include(e)})),r(i,"$autoload",(function(t){var r;return r=a(arguments),e.Object.$autoload.apply(e.Object,r)}),-1),r(i,"$using",(function(e){return s.$raise("main.using is permitted only at toplevel")}))}(e.get_singleton_class(i))},Opal.modules["corelib/error/errno"]=function(e){var t=e.module,r=e.truthy,n=e.rb_plus,a=e.send2,s=e.find_super,i=e.def,o=e.klass,l=[],$=e.nil,u=e.$$$;return e.add_stubs("+,errno,class,attr_reader"),function(o,l){var u,c,_=t("::","Errno"),p=([_].concat(l),$);for(u=[["EINVAL","Invalid argument",22],["EEXIST","File exists",17],["EISDIR","Is a directory",21],["EMFILE","Too many open files",24],["ESPIPE","Illegal seek",29],["EACCES","Permission denied",13],["EPERM","Operation not permitted",1],["ENOENT","No such file or directory",2],["ENAMETOOLONG","File name too long",36]],p=$,c=0;c<u.length;c++)!function(){var t=u[c][0],o=u[c][1],l=u[c][2];(p=e.klass(_,e.SystemCallError,t)).errno=l,function(e,t){i(e,"$new",(function e(t){var i=$;return e.$$p=null,null==t&&(t=$),i=o,r(t)&&(i=n(i," - "+t)),a(this,s(this,"new",e,!1,!0),"new",[i],null)}),-1)}(e.get_singleton_class(p))}()}(0,l),function(t,r,n){var a=o("::",r,"SystemCallError");[a].concat(n);return i(a,"$errno",(function(){return this.$class().$errno()})),function(e,t){return e.$attr_reader("errno")}(e.get_singleton_class(a))}(0,u("StandardError"),l)},Opal.modules["corelib/error"]=function(e){var t=e.klass,r=e.slice,n=e.gvars,a=e.defs,s=e.send,i=e.to_a,o=e.def,l=e.send2,$=e.find_super,u=e.truthy,c=e.Kernel,_=e.not,p=e.rb_plus,m=e.eqeq,d=e.Object,f=e.ensure_kwargs,h=e.hash_get,g=e.module,b=[],v=e.nil,y=e.$$$;return e.add_stubs("new,map,backtrace,clone,to_s,merge,tty?,respond_to?,[],include?,raise,dup,empty?,!,caller,shift,+,class,join,cause,full_message,==,reverse,split,autoload,attr_reader,inspect"),function(d,f,h){var g,b=t("::",f,"Exception"),x=[b].concat(h),w=e.$r(x);function k(e){for(var t,r=[],n=0;n<e.length;n++){var a=e[n];a&&a.$$is_string&&((t=a.match(/^ at (.*?) \((.*?)\)$/))?r.push(t[2]+":in `"+t[1]+"'"):(t=a.match(/^ at (.*?)$/))?r.push(t[1]+":in `undefined'"):(t=a.match(/^ from (.*?)$/))?r.push(t[1]):(t=a.match(/^(.*?)@(.*?)$/))&&r.push(t[2]+":in `"+t[1]+"'"))}return r}b.$$prototype.message=v,e.prop(b.$$prototype,"$$is_exception",!0),Error.stackTraceLimit=100,a(b,"$new",(function(t){var a;null==n["!"]&&(n["!"]=v);var s=(a=r(arguments)).length>0?a[0]:v,i=new this.$$constructor(s);return i.name=this.$$name,i.message=s,i.cause=n["!"],e.send(i,i.$initialize,a),e.config.enable_stack_trace&&Error.captureStackTrace&&Error.captureStackTrace(i,g),i}),-1),g=b.$new,a(b,"$exception",(function(e){var t;return t=r(arguments),s(this,"new",i(t))}),-1),o(b,"$initialize",(function(e){var t;return t=r(arguments),this.message=t.length>0?t[0]:v}),-1),o(b,"$copy_instance_variables",(function e(t){var r=e.$$p||v,n=this;e.$$p=null,l(n,$(n,"copy_instance_variables",e,!1,!0),"copy_instance_variables",[t],r),n.message=t.message,n.cause=t.cause,n.stack=t.stack})),o(b,"$backtrace",(function(){var e=this;if(e.backtrace)return e.backtrace;var t=e.stack;return void 0!==t&&t.$$is_string?e.backtrace=k(t.split("\n")):t?e.backtrace=k(t):[]})),o(b,"$backtrace_locations",(function(){var e,t=this;return t.backtrace_locations||(t.backtrace_locations=(e=t.$backtrace())===v||null==e?v:s(e,"map",[],(function(e){return null==e&&(e=v),y(y(y("Thread"),"Backtrace"),"Location").$new(e)}))),t.backtrace_locations})),o(b,"$cause",(function(){return this.cause||v})),o(b,"$exception",(function(e){var t=this;if(null==e&&(e=v),e===v||t===e)return t;var r=t.$clone();return r.message=e,t.backtrace&&(r.backtrace=t.backtrace.$dup()),r.stack=t.stack,r.cause=t.cause,r}),-1),o(b,"$message",(function(){return this.$to_s()})),o(b,"$full_message",(function(e){var t,r,a,i,o,l=this,$=v,d=v,f=v,h=v,g=v;return null==n.stderr&&(n.stderr=v),null==e&&(e=v),u(w("Hash","skip_raise")?"constant":v)?(i=(t=[(e=new Map([["highlight",u(n.stderr["$respond_to?"]("tty?"))&&n.stderr["$tty?"]()],["order","top"]]).$merge(u(r=e)?r:new Map))["$[]"]("highlight"),e["$[]"]("order")])[1],u([!0,!1]["$include?"](a=t[0]))||c.$raise(y("ArgumentError"),"expected true or false as highlight: "+a),u(["top","bottom"]["$include?"](i))||c.$raise(y("ArgumentError"),"expected :top or :bottom as order: "+i),u(a)?($="",d="",f=""):$=d=f="",h=l.$backtrace().$dup(),(_(h)||u(h["$empty?"]()))&&(h=l.$caller()),o=h.$shift(),g=p(g=o+": ",""+d+l.$to_s()+" ("+$+l.$class()+f+d+")"+f+"\n"),g=p(g,s(h,"map",[],(function(e){return null==e&&(e=v),"\tfrom "+e+"\n"})).$join()),u(l.$cause())&&(g=p(g,l.$cause().$full_message(new Map([["highlight",a]])))),m(i,"bottom")&&(g=g.$split("\n").$reverse().$join("\n"),g=p(d+"Traceback"+f+" (most recent call last):\n",g)),g):l.message+"\n"+l.stack}),-1),o(b,"$inspect",(function(){var e=this,t=v;return t=e.$to_s(),u(t["$empty?"]())?e.$class().$to_s():"#<"+e.$class().$to_s()+": "+e.$to_s()+">"})),o(b,"$set_backtrace",(function(e){var t,r,n=this,a=!0;if(e===v)n.backtrace=v,n.stack="";else if(e.$$is_string)n.backtrace=[e],n.stack=" from "+e;else{if(e.$$is_array){for(t=0,r=e.length;t<r;t++)if(!e[t].$$is_string){a=!1;break}}else a=!1;!1===a&&c.$raise(y("TypeError"),"backtrace must be Array of String"),n.backtrace=e,n.stack=s(e,"map",[],(function(e){return null==e&&(e=v),p(" from ",e)})).join("\n")}return e})),o(b,"$to_s",(function(){var e,t,r=this;return u(e=u(t=r.message)?r.message.$to_s():t)?e:r.$class().$to_s()}))}(0,Error,b),t("::",y("Exception"),"ScriptError"),t("::",y("ScriptError"),"SyntaxError"),t("::",y("ScriptError"),"LoadError"),t("::",y("ScriptError"),"NotImplementedError"),t("::",y("Exception"),"SystemExit"),t("::",y("Exception"),"NoMemoryError"),t("::",y("Exception"),"SignalException"),t("::",y("SignalException"),"Interrupt"),t("::",y("Exception"),"SecurityError"),t("::",y("Exception"),"SystemStackError"),t("::",y("Exception"),"StandardError"),t("::",y("StandardError"),"EncodingError"),t("::",y("StandardError"),"ZeroDivisionError"),t("::",y("StandardError"),"NameError"),t("::",y("NameError"),"NoMethodError"),t("::",y("StandardError"),"RuntimeError"),t("::",y("RuntimeError"),"FrozenError"),t("::",y("StandardError"),"LocalJumpError"),t("::",y("StandardError"),"TypeError"),t("::",y("StandardError"),"ArgumentError"),t("::",y("ArgumentError"),"UncaughtThrowError"),t("::",y("StandardError"),"IndexError"),t("::",y("IndexError"),"StopIteration"),t("::",y("StopIteration"),"ClosedQueueError"),t("::",y("IndexError"),"KeyError"),t("::",y("StandardError"),"RangeError"),t("::",y("RangeError"),"FloatDomainError"),t("::",y("StandardError"),"IOError"),t("::",y("IOError"),"EOFError"),t("::",y("StandardError"),"SystemCallError"),t("::",y("StandardError"),"RegexpError"),t("::",y("StandardError"),"ThreadError"),t("::",y("StandardError"),"FiberError"),d.$autoload("Errno","corelib/error/errno"),function(e,r){var n=t("::",r,"FrozenError");n.$attr_reader("receiver"),o(n,"$initialize",(function e(t,r){var n,a=this;return e.$$p=null,r=f(r),null==(n=h(r,"receiver"))&&(n=v),l(a,$(a,"initialize",e,!1,!0),"initialize",[t],null),a.receiver=n}),-2)}(0,y("RuntimeError")),function(e,r){var n=t("::",r,"UncaughtThrowError");n.$$prototype.tag=v,n.$attr_reader("tag","value"),o(n,"$initialize",(function e(t,r){var n=this;return e.$$p=null,null==r&&(r=v),n.tag=t,n.value=r,l(n,$(n,"initialize",e,!1,!0),"initialize",["uncaught throw "+n.tag.$inspect()],null)}),-2)}(0,y("ArgumentError")),function(e,r){var n=t("::",null,"NameError");n.$attr_reader("name"),o(n,"$initialize",(function e(t,r){var n=this;return e.$$p=null,null==r&&(r=v),l(n,$(n,"initialize",e,!1,!0),"initialize",[t],null),n.name=r}),-2)}(),function(e,r){var n=t("::",null,"NoMethodError");n.$attr_reader("args"),o(n,"$initialize",(function e(t,r,n){var a=this;return e.$$p=null,null==r&&(r=v),null==n&&(n=[]),l(a,$(a,"initialize",e,!1,!0),"initialize",[t,r],null),a.args=n}),-2)}(),t("::",null,"StopIteration").$attr_reader("result"),function(e,r){var n=t("::",null,"KeyError"),a=n.$$prototype;a.receiver=a.key=v,o(n,"$initialize",(function e(t,r){var n,a,s=this;return e.$$p=null,r=f(r),null==(n=h(r,"receiver"))&&(n=v),null==(a=h(r,"key"))&&(a=v),l(s,$(s,"initialize",e,!1,!0),"initialize",[t],null),s.receiver=n,s.key=a}),-2),o(n,"$receiver",(function(){var e;return u(e=this.receiver)?e:c.$raise(y("ArgumentError"),"no receiver is available")})),o(n,"$key",(function(){var e;return u(e=this.key)?e:c.$raise(y("ArgumentError"),"no key is available")}))}(),function(e,r){var n=t("::",null,"LocalJumpError");n.$attr_reader("exit_value","reason"),o(n,"$initialize",(function e(t,r,n){var a=this;return e.$$p=null,null==r&&(r=v),null==n&&(n="noreason"),l(a,$(a,"initialize",e,!1,!0),"initialize",[t],null),a.exit_value=r,a.reason=n}),-2)}(),function(e,r){var n=[g("::","JS")].concat(r);return t(n[0],null,"Error"),v}(0,b)},Opal.modules["corelib/constants"]=function(e){var t=e.const_set,r=(e.nil,e.$$$);return t("::","RUBY_PLATFORM","opal"),t("::","RUBY_ENGINE","opal"),t("::","RUBY_VERSION","3.2.0"),t("::","RUBY_ENGINE_VERSION","2.0.0dev"),t("::","RUBY_RELEASE_DATE","2023-11-16"),t("::","RUBY_PATCHLEVEL",0),t("::","RUBY_REVISION","0"),t("::","RUBY_COPYRIGHT","opal - Copyright (C) 2011-2023 Adam Beynon and the Opal contributors"),t("::","RUBY_DESCRIPTION","opal "+r("RUBY_ENGINE_VERSION")+" ("+r("RUBY_RELEASE_DATE")+" revision "+r("RUBY_REVISION")+")")},Opal.modules["opal/base"]=function(e){var t=e.Object;e.nil;return e.add_stubs("require"),t.$require("corelib/runtime"),t.$require("corelib/helpers"),t.$require("corelib/module"),t.$require("corelib/class"),t.$require("corelib/basic_object"),t.$require("corelib/kernel"),t.$require("corelib/main"),t.$require("corelib/error"),t.$require("corelib/constants")},Opal.modules["corelib/nil"]=function(e){var t=e.klass,r=e.Kernel,n=e.def,a=e.return_val,s=e.ensure_kwargs,i=e.hash_get,o=e.NilClass,l=e.slice,$=e.truthy,u=e.rb_gt,c=e.alias,_=e.nil,p=e.$$$;return e.add_stubs("raise,name,new,>,length,Rational,to_i"),function(m,d,f){var h=t("::",null,"NilClass");[h].concat(f);return h.$$prototype.$$meta=h,function(t,a){n(t,"$allocate",(function(){return r.$raise(p("TypeError"),"allocator undefined for "+this.$name())})),e.udef(t,"$new")}(e.get_singleton_class(h)),n(h,"$!",a(!0)),n(h,"$&",a(!1)),n(h,"$|",(function(e){return!1!==e&&e!==_})),n(h,"$^",(function(e){return!1!==e&&e!==_})),n(h,"$==",(function(e){return e===_})),n(h,"$dup",a(_)),n(h,"$clone",(function(e){return e=s(e),null==i(e,"freeze")&&!0,_}),-1),n(h,"$inspect",a("nil")),n(h,"$nil?",a(!0)),n(h,"$singleton_class",(function(){return o})),n(h,"$to_a",(function(){return[]})),n(h,"$to_h",(function(){return new Map})),n(h,"$to_i",a(0)),n(h,"$to_s",a("")),n(h,"$to_c",(function(){return p("Complex").$new(0,0)})),n(h,"$rationalize",(function(e){var t;return t=l(arguments),$(u(t.$length(),1))&&r.$raise(p("ArgumentError")),r.$Rational(0,1)}),-1),n(h,"$to_r",(function(){return r.$Rational(0,1)})),n(h,"$instance_variables",(function(){return[]})),c(h,"to_f","to_i")}(0,0,[])},Opal.modules["corelib/boolean"]=function(e){var t=e.klass,r=e.Kernel,n=e.def,a=e.return_self,s=e.ensure_kwargs,i=e.hash_get,o=e.slice,l=e.truthy,$=e.send2,u=e.find_super,c=e.to_a,_=e.alias,p=e.nil,m=e.$$$;return e.add_stubs("raise,name,==,to_s,__id__"),function(d,f,h){var g=t("::",f,"Boolean");[g].concat(h);e.prop(g.$$prototype,"$$is_boolean",!0);for(var b=["$$class","$$meta"],v=0;v<b.length;v++)Object.defineProperty(g.$$prototype,b[v],{configurable:!0,enumerable:!1,get:function(){return 1==this?e.TrueClass:0==this?e.FalseClass:e.Boolean}});Object.defineProperty(g.$$prototype,"$$id",{configurable:!0,enumerable:!1,get:function(){return 1==this?2:0==this?0:p}}),function(t,a){n(t,"$allocate",(function(){return r.$raise(m("TypeError"),"allocator undefined for "+this.$name())})),e.udef(t,"$new")}(e.get_singleton_class(g)),n(g,"$__id__",(function(){return this.valueOf()?2:0})),n(g,"$!",(function(){return 1!=this})),n(g,"$&",(function(e){return 1==this&&(!1!==e&&e!==p)})),n(g,"$|",(function(e){return 1==this||!1!==e&&e!==p})),n(g,"$^",(function(e){return 1==this?!1===e||e===p:!1!==e&&e!==p})),n(g,"$==",(function(e){return 1==this===e.valueOf()})),n(g,"$singleton_class",(function(){return this.$$meta})),n(g,"$to_s",(function(){return 1==this?"true":"false"})),n(g,"$dup",a),n(g,"$clone",(function(e){return e=s(e),null==i(e,"freeze")&&!0,this}),-1),n(g,"$method_missing",(function t(r,n){var a,s=t.$$p||p,i=this;t.$$p=null,a=o(arguments,1);var _=i.$$class.$$prototype[e.jsid(r)];return l(void 0!==_&&!_.$$stub)||$(i,u(i,"method_missing",t,!1,!0),"method_missing",[r].concat(c(a)),s),e.send(i,_,a,s)}),-2),n(g,"$respond_to_missing?",(function(t,r){null==r&&(r=!1);var n=this.$$class.$$prototype[e.jsid(t)];return void 0!==n&&!n.$$stub}),-2),_(g,"eql?","=="),_(g,"equal?","=="),_(g,"inspect","to_s"),_(g,"object_id","__id__")}(0,Boolean,[]),t("::",m("Boolean"),"TrueClass"),t("::",m("Boolean"),"FalseClass"),p},Opal.modules["corelib/comparable"]=function(e){var t=e.truthy,r=e.module,n=e.rb_gt,a=e.rb_lt,s=e.eqeqeq,i=e.Kernel,o=e.def,l=e.nil,$=e.$$$;return e.add_stubs(">,<,===,raise,class,<=>,equal?"),function(u){var c=r("::","Comparable"),_=l;function p(t){return e.is_a(t,e.Integer)?t:n(t,0)?1:a(t,0)?-1:0}function m(e,r){var n=e["$<=>"](r);return t(n)||function(e,t){var r;r=s(l,_=t)||s(!0,_)||s(!1,_)||s($("Integer"),_)||s($("Float"),_)?t.$inspect():t.$$class,i.$raise($("ArgumentError"),"comparison of "+e.$class()+" with "+r+" failed")}(e,r),p(n)}return o(c,"$==",(function(r){var n,a=this;return!!t(a["$equal?"](r))||a["$<=>"]!=e.Kernel["$<=>"]&&(a.$$comparable?(a.$$comparable=!1,!1):!!t(n=a["$<=>"](r))&&0==p(n))})),o(c,"$>",(function(e){return m(this,e)>0})),o(c,"$>=",(function(e){return m(this,e)>=0})),o(c,"$<",(function(e){return m(this,e)<0})),o(c,"$<=",(function(e){return m(this,e)<=0})),o(c,"$between?",(function(e,r){return!t(a(this,e))&&!t(n(this,r))})),o(c,"$clamp",(function(t,r){var n,a,s=this;if(null==r&&(r=l),r===l&&(e.is_a(t,e.Range)||i.$raise($("TypeError"),"wrong argument type "+t.$class()+" (expected Range)"),a=t.excl,r=t.end,t=t.begin,r!==l&&a&&i.$raise($("ArgumentError"),"cannot clamp with an exclusive range")),t!==l&&r!==l&&m(t,r)>0&&i.$raise($("ArgumentError"),"min argument must be smaller than max argument"),t!==l){if(0==(n=m(s,t)))return s;if(n<0)return t}return r!==l&&(n=m(s,r))>0?r:s}),-2)}()},Opal.modules["corelib/regexp"]=function(e){var t=e.coerce_to,r=e.prop,n=e.freeze,a=e.annotate_regexp,s=e.escape_metacharacters,i=e.klass,o=e.const_set,l=e.send2,$=e.find_super,u=e.def,c=e.truthy,_=e.gvars,p=e.slice,m=e.Kernel,d=e.Opal,f=e.alias,h=e.send,g=e.regexp,b=e.rb_plus,v=e.ensure_kwargs,y=e.hash_get,x=e.rb_ge,w=e.to_a,k=e.eqeqeq,U=e.rb_minus,E=e.return_ivar,M=[],q=e.nil,S=e.$$$;return e.add_stubs("nil?,[],raise,escape,options,source,to_str,new,join,coerce_to!,!,match,coerce_to?,begin,frozen?,uniq,map,scan,to_proc,transform_values,group_by,each_with_index,+,last,=~,==,attr_reader,>=,length,is_a?,include?,names,regexp,named_captures,===,captures,-,inspect,empty?,each,to_a"),i("::",S("StandardError"),"RegexpError"),function(v,y,x){var w=i("::",y,"Regexp"),k=[w].concat(x),U=e.$r(k);o(w,"IGNORECASE",1),o(w,"EXTENDED",2),o(w,"MULTILINE",4),o(w,"FIXEDENCODING",16),o(w,"NOENCODING",32),e.prop(w.$$prototype,"$$is_regexp",!0),e.prop(w.$$prototype,"$$source",null),e.prop(w.$$prototype,"$$options",null),e.prop(w.$$prototype,"$$g",null),function(r,n){var i=[r].concat(n),o=e.$r(i);u(r,"$allocate",(function e(){var t=e.$$p||q,r=q;return e.$$p=null,(r=l(this,$(this,"allocate",e,!1,!0),"allocate",[],t)).uninitialized=!0,r})),u(r,"$escape",(function(r){return r=t(r,S("String"),"to_str"),e.escape_regexp(r)})),u(r,"$last_match",(function(e){return null==_["~"]&&(_["~"]=q),null==e&&(e=q),c(e["$nil?"]())?_["~"]:c(_["~"])?_["~"]["$[]"](e):q}),-1),u(r,"$union",(function(e){var t,r,n,a,s,i,l,$=this;function u(e){return(e||0)&~o("MULTILINE")&~o("EXTENDED")}if(0==(t=p(arguments)).length)return/(?!)/;if(1==t.length&&t[0].$$is_regexp)return t[0];r=t[0].$$is_array,t.length>1&&r&&m.$raise(S("TypeError"),"no implicit conversion of Array into String"),r&&(t=t[0]),s=void 0,n=[];for(var c=0;c<t.length;c++)(a=t[c]).$$is_string?n.push($.$escape(a)):a.$$is_regexp?(i=a.$options(),null!=s&&(l=i,u(s)!=u(l))&&m.$raise(S("TypeError"),"All expressions must use the same options"),s=i,n.push("(?:"+a.$source()+")")):n.push($.$escape(a.$to_str()));return $.$new(n.$join("|"),s)}),-1),u(r,"$new",(function(t,r){if(t.$$is_regexp)return a(new RegExp(t),t.$$source,t.$$options);if("\\"===(t=d["$coerce_to!"](t,S("String"),"to_str")).charAt(t.length-1)&&"\\"!==t.charAt(t.length-2)&&m.$raise(S("RegexpError"),"too short escape sequence: /"+t+"/"),void 0===r||r["$!"]())r="";else if(r.$$is_number){var n="";o("IGNORECASE")&r&&(n+="i"),o("MULTILINE")&r&&(n+="m"),r=n}else r.$$is_string||(r="i");var i=e.transform_regexp(t,r);return e.annotate_regexp(new RegExp(i[0],i[1]),s(t),r)}),-2),f(r,"compile","new"),f(r,"quote","escape")}(e.get_singleton_class(w),k),u(w,"$==",(function(e){return e instanceof RegExp&&this.$options()==e.$options()&&this.$source()==e.$source()})),u(w,"$===",(function(e){return this.$match(d["$coerce_to?"](e,S("String"),"to_str"))!==q})),u(w,"$=~",(function(e){var t;return null==_["~"]&&(_["~"]=q),c(t=this.$match(e))?_["~"].$begin(0):t})),u(w,"$freeze",(function(){var e=this;return c(e["$frozen?"]())?e:(e.hasOwnProperty("$$g")||r(e,"$$g",null),n(e))})),u(w,"$inspect",(function(){for(var e=this,t=e.$source(),r=null!=e.$$options?e.$$options:e.flags,n=t.split(""),a=n.length,s=!1,i="",o=0;o<a;o++){var l=n[o];s||"/"!=l||(i+="\\"),i+=l,s="\\"==l&&!s}return"/"+i+"/"+r})),u(w,"$match",(function r(n,a){var s=r.$$p||q,i=this;if(null==_["~"]&&(_["~"]=q),r.$$p=null,i.uninitialized&&m.$raise(S("TypeError"),"uninitialized Regexp"),void 0===a){if(n===q)return _["~"]=q;var o=i.exec(t(n,S("String"),"to_str"));return o?(_["~"]=S("MatchData").$new(i,o),s===q?_["~"]:e.yield1(s,_["~"])):_["~"]=q}if(a=t(a,S("Integer"),"to_int"),n===q)return _["~"]=q;if(n=t(n,S("String"),"to_str"),a<0&&(a+=n.length)<0)return _["~"]=q;for(var l,$=e.global_regexp(i);;){if(null===(l=$.exec(n)))return _["~"]=q;if(l.index>=a)return _["~"]=S("MatchData").$new($,l),s===q?_["~"]:e.yield1(s,_["~"]);$.lastIndex=l.index+1}}),-2),u(w,"$match?",(function(r,n){var a,s=this;return s.uninitialized&&m.$raise(S("TypeError"),"uninitialized Regexp"),void 0===n?r!==q&&s.test(t(r,S("String"),"to_str")):(n=t(n,S("Integer"),"to_int"),r!==q&&(r=t(r,S("String"),"to_str"),!(n<0&&(n+=r.length)<0)&&!(null===(a=e.global_regexp(s).exec(r))||a.index<n)))}),-2),u(w,"$names",(function(){return h(this.$source().$scan(g(["\\(?<(\\w+)>"]),new Map([["no_matchdata",!0]])),"map",[],"first".$to_proc()).$uniq()})),u(w,"$named_captures",(function(){return h(h(h(this.$source().$scan(g(["\\(?<(\\w+)>"]),new Map([["no_matchdata",!0]])),"map",[],"first".$to_proc()).$each_with_index(),"group_by",[],"first".$to_proc()),"transform_values",[],(function(e){return null==e&&(e=q),h(e,"map",[],(function(e){return null==e&&(e=q),b(e.$last(),1)}))}))})),u(w,"$~",(function(){return null==_._&&(_._=q),this["$=~"](_._)})),u(w,"$source",(function(){var e=this;return null!=e.$$source?e.$$source:e.source})),u(w,"$options",(function(){var e=this;e.uninitialized&&m.$raise(S("TypeError"),"uninitialized Regexp");var t=0;return(null!=e.$$options?e.$$options.includes("m"):e.multiline)&&(t|=U("MULTILINE")),(null!=e.$$options?e.$$options.includes("i"):e.ignoreCase)&&(t|=U("IGNORECASE")),null!=e.$$options&&e.$$options.includes("x")&&(t|=U("EXTENDED")),t})),u(w,"$casefold?",(function(){return this.ignoreCase})),f(w,"eql?","=="),f(w,"to_s","source")}(0,RegExp,M),function(t,r,n){var a=i(t,null,"MatchData"),s=[a].concat(n),o=e.$r(s);return a.$$prototype.matches=q,a.$attr_reader("post_match","pre_match","regexp","string"),u(a,"$initialize",(function(e,t,r){var n,a=this;r=v(r),null==(n=y(r,"no_matchdata"))&&(n=!1),c(n)||(_["~"]=a),a.regexp=e,a.begin=t.index,a.string=t.input,a.pre_match=t.input.slice(0,t.index),a.post_match=t.input.slice(t.index+t[0].length),a.matches=[];for(var s=0,i=t.length;s<i;s++){var o=t[s];null==o?a.matches.push(q):a.matches.push(o)}}),-3),u(a,"$match",(function(e){var t;return c(t=this["$[]"](e))?t:c(e["$is_a?"](o("Integer")))&&c(x(e,this.$length()))?m.$raise(S("IndexError"),"index "+e+" out of matches"):q})),u(a,"$match_length",(function(e){var t;return(t=this.$match(e))===q||null==t?q:t.$length()})),u(a,"$[]",(function(e){var t,r=this;return(t=p(arguments))[0].$$is_string?(r.$regexp().$names()["$include?"](t["$[]"](0))["$!"]()&&m.$raise(S("IndexError"),"undefined group name reference: "+t["$[]"](0)),r.$named_captures()["$[]"](t["$[]"](0))):h(r.matches,"[]",w(t))}),-1),u(a,"$offset",(function(e){var t=this;return 0!==e&&m.$raise(S("ArgumentError"),"MatchData#offset only supports 0th element"),[t.begin,t.begin+t.matches[e].length]})),u(a,"$==",(function(e){var t,r,n,a,s=this;return!!k(S("MatchData"),e)&&(c(t=c(r=c(n=c(a=s.string==e.string)?s.regexp.toString()==e.regexp.toString():a)?s.pre_match==e.pre_match:n)?s.post_match==e.post_match:r)?s.begin==e.begin:t)})),u(a,"$begin",(function(e){return 0!==e&&m.$raise(S("ArgumentError"),"MatchData#begin only supports 0th element"),this.begin})),u(a,"$end",(function(e){return 0!==e&&m.$raise(S("ArgumentError"),"MatchData#end only supports 0th element"),this.begin+this.matches[e].length})),u(a,"$captures",(function(){return this.matches.slice(1)})),u(a,"$named_captures",(function(){var e=q;return e=this.$captures(),h(this.$regexp().$named_captures(),"transform_values",[],(function(t){return null==t&&(t=q),e["$[]"](U(t.$last(),1))}))})),u(a,"$names",(function(){return this.$regexp().$names()})),u(a,"$inspect",(function(){var e=this,t="#<MatchData "+e.matches[0].$inspect();if(e.$regexp().$names()["$empty?"]())for(var r=1,n=e.matches.length;r<n;r++)t+=" "+r+":"+e.matches[r].$inspect();else h(e.$named_captures(),"each",[],(function(e,r){return null==e&&(e=q),null==r&&(r=q),t+=" "+e+":"+r.$inspect()}));return t+">"})),u(a,"$length",(function(){return this.matches.length})),u(a,"$to_a",E("matches")),u(a,"$to_s",(function(){return this.matches[0]})),u(a,"$values_at",(function(e){var t;t=p(arguments);var r,n,a,s=[];for(r=0;r<t.length;r++)t[r].$$is_range&&((n=t[r].$to_a()).unshift(r,1),Array.prototype.splice.apply(t,n)),(a=d["$coerce_to!"](t[r],S("Integer"),"to_int"))<0&&(a+=this.matches.length)<0?s.push(q):s.push(this.matches[a]);return s}),-1),f(a,"eql?","=="),f(a,"size","length")}(M[0],0,M)},Opal.modules["corelib/string"]=function(e){var t=e.coerce_to,r=e.respond_to,n=e.global_regexp,a=e.prop,s=e.opal32_init,i=e.opal32_add,o=e.klass,l=e.send2,$=e.find_super,u=e.def,c=e.Opal,_=e.defs,p=e.slice,m=e.send,d=e.to_a,f=e.extract_kwargs,h=e.ensure_kwargs,g=e.hash_get,b=e.eqeqeq,v=e.Kernel,y=e.truthy,x=e.gvars,w=e.rb_divide,k=e.rb_plus,U=e.eqeq,E=e.alias,M=e.const_set,q=e.top,S=[],O=e.$r(S),A=e.nil,T=e.$$$;return e.add_stubs("require,include,coerce_to?,initialize,===,format,raise,respond_to?,to_s,to_str,<=>,==,=~,new,force_encoding,casecmp,empty?,ljust,ceil,/,+,rjust,floor,coerce_to!,nil?,class,copy_singleton_methods,initialize_clone,initialize_dup,enum_for,chomp,[],to_i,length,each_line,to_proc,to_a,match,match?,captures,proc,succ,escape,include?,upcase,unicode_normalize,dup,__id__,next,intern,pristine"),q.$require("corelib/comparable"),q.$require("corelib/regexp"),function(M,q,S){var O=o("::",String,"String"),N=[O].concat(S),z=e.$r(N);O.$include(T("Comparable")),e.prop(O.$$prototype,"$$is_string",!0);var R=new Map;function I(e){function r(e){var t,r,n,a,s,i,o="",l=e.length;for(t=0;t<l;t++)if("-"===(r=e.charAt(t))&&t>0&&t<l-1&&!n){for((a=e.charCodeAt(t-1))>(s=e.charCodeAt(t+1))&&v.$raise(T("ArgumentError"),'invalid range "'+a+"-"+s+'" in string transliteration'),i=a+1;i<s+1;i++)o+=String.fromCharCode(i);n=!0,t++}else n="\\"===r,o+=r;return o}function n(e,t){if(0===e.length)return t;var r,n,a="",s=e.length;for(r=0;r<s;r++)n=e.charAt(r),-1!==t.indexOf(n)&&(a+=n);return a}var a,s,i,o,l,$,u="",c="";for(a=0,s=e.length;a<s;a++)o="^"===(i=t(e[a],T("String"),"to_str")).charAt(0)&&i.length>1,i=r(o?i.slice(1):i),o?c=n(c,i):u=n(u,i);if(u.length>0&&c.length>0){for($="",a=0,s=u.length;a<s;a++)l=u.charAt(a),-1===c.indexOf(l)&&($+=l);u=$,c=""}return u.length>0?"["+T("Regexp").$escape(u)+"]":c.length>0?"[^"+T("Regexp").$escape(c)+"]":null}u(O,"$__id__",(function t(){var r=t.$$p||A,n=this;if(t.$$p=null,"object"==typeof n)return l(n,$(n,"__id__",t,!1,!0),"__id__",[],r);if(R.has(n))return R.get(n);var a=e.uid();return R.set(n,a),a})),u(O,"$hash",(function(){var e,t=s(),r=this.length;for(t=i(t,5),t=i(t,r),e=0;e<r;e++)t=i(t,this.charCodeAt(e));return t})),_(O,"$try_convert",(function(e){return c["$coerce_to?"](e,T("String"),"to_str")})),_(O,"$new",(function(e){var r,n=(r=p(arguments))[0]||"",a=r[r.length-1];return n=t(n,T("String"),"to_str"),a&&a.$$is_hash&&a.has("encoding")&&(n=n.$force_encoding(a.get("encoding").value)),(n=new this.$$constructor(n)).$initialize.$$pristine||m(n,"initialize",d(r)),n}),-1),u(O,"$initialize",(function(e,t){var r,n;return r=p(arguments),n=f(r),n=h(n),r.length>0&&r.shift(),null==g(n,"encoding")&&A,null==g(n,"capacity")&&A,A}),-1),u(O,"$%",(function(e){var t=this;return b(T("Array"),e)?m(t,"format",[t].concat(d(e))):t.$format(t,e)})),u(O,"$*",(function(e){if((e=t(e,T("Integer"),"to_int"))<0&&v.$raise(T("ArgumentError"),"negative argument"),0===e)return"";var r="",n=this.toString();for(n.length*e>=1<<28&&v.$raise(T("RangeError"),"multiply count must not overflow maximum string size");1==(1&e)&&(r+=n),0!==(e>>>=1);)n+=n;return r})),u(O,"$+",(function(r){var n=this;if(""==(r=t(r,T("String"),"to_str"))&&n.$$class===e.String)return n;if(""==n&&r.$$class===e.String)return r;var a=n+r;return n.encoding===a.encoding&&r.encoding===a.encoding||"UTF-8"===n.encoding.name||"UTF-8"===r.encoding.name?a:e.enc(a,n.encoding)})),u(O,"$<=>",(function(e){var t=this;if(y(e["$respond_to?"]("to_str")))return t>(e=e.$to_str().$to_s())?1:t<e?-1:0;var r=e["$<=>"](t);return r===A?A:r>0?-1:r<0?1:0})),u(O,"$==",(function(e){return e.$$is_string?this.toString()===e.toString():!!r(e,"$to_str")&&e["$=="](this)})),u(O,"$=~",(function(e){return e.$$is_string&&v.$raise(T("TypeError"),"type mismatch: String given"),e["$=~"](this)})),u(O,"$[]",(function(e,r){var n,a,s=this,i=s.length;if(e.$$is_range)return n=e.excl,a=e,r=e.end===A?-1:t(e.end,T("Integer"),"to_int"),e=e.begin===A?0:t(e.begin,T("Integer"),"to_int"),Math.abs(e)>i?A:(e<0&&(e+=i),r<0&&(r+=i),n&&a.end!==A||(r+=1),(r-=e)<0&&(r=0),s.substr(e,r));if(e.$$is_string)return null!=r&&v.$raise(T("TypeError")),-1!==s.indexOf(e)?e:A;if(e.$$is_regexp){var o=s.match(e);return null===o?(x["~"]=A,A):(x["~"]=T("MatchData").$new(e,o),null==r?o[0]:(r=t(r,T("Integer"),"to_int"))<0&&-r<o.length?o[r+=o.length]:r>=0&&r<o.length?o[r]:A)}return(e=t(e,T("Integer"),"to_int"))<0&&(e+=i),null==r?e>=i||e<0?A:s.substr(e,1):(r=t(r,T("Integer"),"to_int"))<0||e>i||e<0?A:s.substr(e,r)}),-2),u(O,"$b",(function(){return new String(this).$force_encoding("binary")})),u(O,"$capitalize",(function(){return this.charAt(0).toUpperCase()+this.substr(1).toLowerCase()})),u(O,"$casecmp",(function(e){var r=this;if(!y(e["$respond_to?"]("to_str")))return A;e=t(e,T("String"),"to_str").$to_s();var n=/^[\x00-\x7F]*$/;return n.test(r)&&n.test(e)&&(r=r.toLowerCase(),e=e.toLowerCase()),r["$<=>"](e)})),u(O,"$casecmp?",(function(e){var t=this.$casecmp(e);return t===A?A:0===t})),u(O,"$center",(function(e,r){var n=this;if(null==r&&(r=" "),e=t(e,T("Integer"),"to_int"),r=t(r,T("String"),"to_str").$to_s(),y(r["$empty?"]())&&v.$raise(T("ArgumentError"),"zero width padding"),y(e<=n.length))return n;var a=n.$ljust(w(k(e,n.length),2).$ceil(),r);return n.$rjust(w(k(e,n.length),2).$floor(),r)+a.slice(n.length)}),-2),u(O,"$chomp",(function(e){var t,r=this;if(null==x["/"]&&(x["/"]=A),null==e&&(e=x["/"]),y(e===A||0===r.length))return r;if("\n"===(e=c["$coerce_to!"](e,T("String"),"to_str").$to_s()))t=r.replace(/\r?\n?$/,"");else if(""===e)t=r.replace(/(\r?\n)+$/,"");else if(r.length>=e.length){r.substr(r.length-e.length,e.length)===e&&(t=r.substr(0,r.length-e.length))}return null!=t?t:r}),-1),u(O,"$chop",(function(){var e=this,t=e.length;return t<=1?"":"\n"===e.charAt(t-1)&&"\r"===e.charAt(t-2)?e.substr(0,t-2):e.substr(0,t-1)})),u(O,"$chr",(function(){return""==this?"":String.fromCodePoint(this.codePointAt(0))})),u(O,"$clone",(function(e){var t,r=this,n=A;return e=h(e),null==(t=g(e,"freeze"))&&(t=A),y(t["$nil?"]())||U(t,!0)||U(t,!1)||r.$raise(z("ArgumentError"),"unexpected value for freeze: "+t.$class()),(n=new String(r)).$copy_singleton_methods(r),n.$initialize_clone(r,new Map([["freeze",t]])),U(t,!0)?n.$$frozen||(n.$$frozen=!0):y(t["$nil?"]())&&r.$$frozen&&(n.$$frozen=!0),n}),-1),u(O,"$dup",(function(){var e=A;return(e=new String(this)).$initialize_dup(this),e})),u(O,"$count",(function(e){var t;0===(t=p(arguments)).length&&v.$raise(T("ArgumentError"),"ArgumentError: wrong number of arguments (0 for 1+)");var r=I(t);return null===r?0:this.length-this.replace(new RegExp(r,"g"),"").length}),-1),u(O,"$delete",(function(e){var t;0===(t=p(arguments)).length&&v.$raise(T("ArgumentError"),"ArgumentError: wrong number of arguments (0 for 1+)");var r=I(t);return null===r?this:this.replace(new RegExp(r,"g"),"")}),-1),u(O,"$delete_prefix",(function(e){var r=this;return e.$$is_string||(e=t(e,T("String"),"to_str")),r.slice(0,e.length)===e?r.slice(e.length):r})),u(O,"$delete_suffix",(function(e){var r=this;return e.$$is_string||(e=t(e,T("String"),"to_str")),r.slice(r.length-e.length)===e?r.slice(0,r.length-e.length):r})),u(O,"$downcase",(function(){return this.toLowerCase()})),u(O,"$each_line",(function r(n,a){var s,i,o,l,$,u,c,_,m,d,b,v,y=r.$$p||A,w=this;if(null==x["/"]&&(x["/"]=A),r.$$p=null,s=p(arguments),i=f(s),i=h(i),s.length>0&&(o=s.shift()),null==o&&(o=x["/"]),null==(l=g(i,"chomp"))&&(l=!1),y===A)return w.$enum_for("each_line",o,new Map([["chomp",l]]));if(o===A)return e.yield1(y,w),w;if(0===(o=t(o,T("String"),"to_str")).length){for(u=0,c=($=w.split(/((?:\r?\n){2})(?:(?:\r?\n)*)/)).length;u<c;u+=2)($[u]||$[u+1])&&(v=($[u]||"")+($[u+1]||""),l&&(v=v.$chomp("\n")),e.yield1(y,v));return w}for(m=w.$chomp(o),d=w.length!=m.length,u=0,_=(b=m.split(o)).length;u<_;u++)v=b[u],(u<_-1||d)&&(v+=o),l&&(v=v.$chomp(o)),e.yield1(y,v);return w}),-1),u(O,"$empty?",(function(){return 0===this.length})),u(O,"$end_with?",(function(e){for(var r,n=this,a=0,s=(r=p(arguments)).length;a<s;a++){var i=t(r[a],T("String"),"to_str").$to_s();if(n.length>=i.length&&n.substr(n.length-i.length,i.length)==i)return!0}return!1}),-1),u(O,"$gsub",(function e(r,a){var s=e.$$p||A,i=this;if(e.$$p=null,void 0===a&&s===A)return i.$enum_for("gsub",r);var o,l,$,u="",c=A,_=0;for(r.$$is_regexp?r=n(r):(r=t(r,T("String"),"to_str"),r=new RegExp(r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"gm"));;){if(null===(o=r.exec(i))){x["~"]=A,u+=i.slice(_);break}c=T("MatchData").$new(r,o),void 0===a?($=r.lastIndex,l=s(o[0]),r.lastIndex=$):a.$$is_hash?l=a["$[]"](o[0]).$to_s():(a.$$is_string||(a=t(a,T("String"),"to_str")),l=a.replace(/([\\]+)([0-9+&`'])/g,(function(e,t,r){if(t.length%2==0)return e;switch(r){case"+":for(var n=o.length-1;n>0;n--)if(void 0!==o[n])return t.slice(1)+o[n];return"";case"&":return t.slice(1)+o[0];case"`":return t.slice(1)+i.slice(0,o.index);case"'":return t.slice(1)+i.slice(o.index+o[0].length);default:return t.slice(1)+(o[r]||"")}})).replace(/\\\\/g,"\\")),r.lastIndex===o.index?(u+=i.slice(_,o.index)+l+(i[o.index]||""),r.lastIndex+=1):u+=i.slice(_,o.index)+l,_=r.lastIndex}return x["~"]=c,u}),-2),u(O,"$hex",(function(){return this.$to_i(16)})),u(O,"$include?",(function(e){return e.$$is_string||(e=t(e,T("String"),"to_str")),-1!==this.indexOf(e)})),u(O,"$index",(function(e,r){var a,s,i,o=this;if(void 0===r)r=0;else if((r=t(r,T("Integer"),"to_int"))<0&&(r+=o.length)<0)return A;if(e.$$is_regexp)for(i=n(e);;){if(null===(s=i.exec(o))){x["~"]=A,a=-1;break}if(s.index>=r){x["~"]=T("MatchData").$new(i,s),a=s.index;break}i.lastIndex=s.index+1}else a=0===(e=t(e,T("String"),"to_str")).length&&r>o.length?-1:o.indexOf(e,r);return-1===a?A:a}),-2),u(O,"$inspect",(function(){var e=this,t={"":"\\a","":"\\e","\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r","\v":"\\v",'"':'\\"',"\\":"\\\\"};return'"'+e.replace(/[\\\"\x00-\x1f\u007F-\u009F\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,(function(r){return t[r]?t[r]:(r=r.charCodeAt(0))<=255&&(e.encoding["$binary?"]()||e.internal_encoding["$binary?"]())?"\\x"+("00"+r.toString(16).toUpperCase()).slice(-2):"\\u"+("0000"+r.toString(16).toUpperCase()).slice(-4)})).replace(/\#[\$\@\{]/g,"\\$&")+'"'})),u(O,"$intern",(function(){return this.toString()})),u(O,"$length",(function(){return this.length})),E(O,"size","length"),u(O,"$lines",(function e(t,r){var n,a,s,i,o=e.$$p||A,l=A;return null==x["/"]&&(x["/"]=A),e.$$p=null,n=p(arguments),a=f(n),a=h(a),n.length>0&&(s=n.shift()),null==s&&(s=x["/"]),null==(i=g(a,"chomp"))&&(i=!1),l=m(this,"each_line",[s,new Map([["chomp",i]])],o.$to_proc()),y(o)?this:l.$to_a()}),-1),u(O,"$ljust",(function(e,r){var n=this;if(null==r&&(r=" "),e=t(e,T("Integer"),"to_int"),r=t(r,T("String"),"to_str").$to_s(),y(r["$empty?"]())&&v.$raise(T("ArgumentError"),"zero width padding"),y(e<=n.length))return n;var a=-1,s="";for(e-=n.length;++a<e;)s+=r;return n+s.slice(0,e)}),-2),u(O,"$lstrip",(function(){return this.replace(/^[\x00\x09\x0a-\x0d\x20]*/,"")})),u(O,"$ascii_only?",(function(){return!!this.encoding.ascii&&/^[\x00-\x7F]*$/.test(this)})),u(O,"$match",(function e(t,r){var n=e.$$p||A;return e.$$p=null,(b(z("String"),t)||y(t["$respond_to?"]("to_str")))&&(t=T("Regexp").$new(t.$to_str())),b(T("Regexp"),t)||v.$raise(T("TypeError"),"wrong argument type "+t.$class()+" (expected Regexp)"),m(t,"match",[this,r],n.$to_proc())}),-2),u(O,"$match?",(function(e,t){return(b(z("String"),e)||y(e["$respond_to?"]("to_str")))&&(e=T("Regexp").$new(e.$to_str())),b(T("Regexp"),e)||v.$raise(T("TypeError"),"wrong argument type "+e.$class()+" (expected Regexp)"),e["$match?"](this,t)}),-2),u(O,"$next",(function(){var e=this,t=e.length;if(0===t)return"";for(var r,n=e,a=e.search(/[a-zA-Z0-9]/),s=!1;t--;){if((r=e.charCodeAt(t))>=48&&r<=57||r>=65&&r<=90||r>=97&&r<=122)switch(r){case 57:s=!0,r=48;break;case 90:s=!0,r=65;break;case 122:s=!0,r=97;break;default:s=!1,r+=1}else-1===a?255===r?(s=!0,r=0):(s=!1,r+=1):s=!0;if(n=n.slice(0,t)+String.fromCharCode(r)+n.slice(t+1),s&&(0===t||t===a)){switch(r){case 65:case 97:break;default:r+=1}n=0===t?String.fromCharCode(r)+n:n.slice(0,t)+String.fromCharCode(r)+n.slice(t),s=!1}if(!s)break}return n})),u(O,"$oct",(function(){var e,t=this,r=8;return/^\s*_/.test(t)?0:(t=t.replace(/^(\s*[+-]?)(0[bodx]?)(.+)$/i,(function(e,t,n,a){switch(a.charAt(0)){case"+":case"-":return e;case"0":if("x"===a.charAt(1)&&"0x"===n)return e}switch(n){case"0b":r=2;break;case"0":case"0o":r=8;break;case"0d":r=10;break;case"0x":r=16}return t+a})),e=parseInt(t.replace(/_(?!_)/g,""),r),isNaN(e)?0:e)})),u(O,"$ord",(function(){var e=this;return"function"==typeof e.codePointAt?e.codePointAt(0):e.charCodeAt(0)})),u(O,"$partition",(function(e){var r,n,a=this;return e.$$is_regexp?null===(n=e.exec(a))?r=-1:(T("MatchData").$new(e,n),e=n[0],r=n.index):(e=t(e,T("String"),"to_str"),r=a.indexOf(e)),-1===r?[a,"",""]:[a.slice(0,r),a.slice(r,r+e.length),a.slice(r+e.length)]})),u(O,"$reverse",(function(){return this.split("").reverse().join("")})),u(O,"$rindex",(function(e,r){var a,s,i,o,l=this;if(void 0===r)r=l.length;else if((r=t(r,T("Integer"),"to_int"))<0&&(r+=l.length)<0)return A;if(e.$$is_regexp){for(s=null,i=n(e);!(null===(o=i.exec(l))||o.index>r);)s=o,i.lastIndex=s.index+1;null===s?(x["~"]=A,a=-1):(T("MatchData").$new(i,s),a=s.index)}else e=t(e,T("String"),"to_str"),a=l.lastIndexOf(e,r);return-1===a?A:a}),-2),u(O,"$rjust",(function(e,r){var n=this;if(null==r&&(r=" "),e=t(e,T("Integer"),"to_int"),r=t(r,T("String"),"to_str").$to_s(),y(r["$empty?"]())&&v.$raise(T("ArgumentError"),"zero width padding"),y(e<=n.length))return n;var a=Math.floor(e-n.length),s=Math.floor(a/r.length),i=Array(s+1).join(r),o=a-i.length;return i+r.slice(0,o)+n}),-2),u(O,"$rpartition",(function(e){var r,a,s,i,o=this;if(e.$$is_regexp){for(a=null,s=n(e);null!==(i=s.exec(o));)a=i,s.lastIndex=a.index+1;null===a?r=-1:(T("MatchData").$new(s,a),e=a[0],r=a.index)}else e=t(e,T("String"),"to_str"),r=o.lastIndexOf(e);return-1===r?["","",o]:[o.slice(0,r),o.slice(r,r+e.length),o.slice(r+e.length)]})),u(O,"$rstrip",(function(){return this.replace(/[\x00\x09\x0a-\x0d\x20]*$/,"")})),u(O,"$scan",(function r(a,s){var i,o=r.$$p||A;r.$$p=null,s=h(s),null==(i=g(s,"no_matchdata"))&&(i=!1);var l,$=[],u=A;for(a.$$is_regexp?a=n(a):(a=t(a,T("String"),"to_str"),a=new RegExp(a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"gm"));null!=(l=a.exec(this));)u=T("MatchData").$new(a,l,new Map([["no_matchdata",i]])),o===A?1==l.length?$.push(l[0]):$.push(u.$captures()):1==l.length?e.yield1(o,l[0]):e.yield1(o,u.$captures()),a.lastIndex===l.index&&(a.lastIndex+=1);return i||(x["~"]=u),o!==A?this:$}),-2),u(O,"$singleton_class",(function(){return e.get_singleton_class(this)})),u(O,"$split",(function(r,a){var s=this,i=A;if(null==x[";"]&&(x[";"]=A),0===s.length)return[];if(void 0===a)a=0;else if(1===(a=c["$coerce_to!"](a,T("Integer"),"to_int")))return[s];void 0!==r&&r!==A||(r=y(i=x[";"])?i:" ");var o,l,$,u=[],_=s.toString(),p=0,m=0,d=0;if(r.$$is_regexp?r=n(r):" "===(r=t(r,T("String"),"to_str").$to_s())&&(r=/\s+/gm,_=_.replace(/^\s+/,"")),1===(u=_.split(r)).length&&u[0]===_)return[u[0]];for(;-1!==(l=u.indexOf(void 0));)u.splice(l,1);if(0===a){for(;""===u[u.length-1];)u.pop();return u}if(r.$$is_regexp||(r=e.escape_regexp(r),r=new RegExp(r,"gm")),o=r.exec(_),a<0){if(null!==o&&""===o[0]&&-1===r.source.indexOf("(?="))for(l=0,$=o.length;l<$;l++)u.push("");return u}if(null!==o&&""===o[0])return d=(o.length-1)*(a-1)+a,u.splice(d-1,u.length-1,u.slice(d-1).join("")),u;if(a>=u.length)return u;for(;null!==o&&(m++,p=r.lastIndex,d+=o.length,m+1!==a);)o=r.exec(_);return u.splice(d,u.length-1,_.slice(p)),u}),-1),u(O,"$squeeze",(function(e){var t,r=this;if(0===(t=p(arguments)).length)return r.replace(/(.)\1+/g,"$1");var n=I(t);return null===n?r:r.replace(new RegExp("("+n+")\\1+","g"),"$1")}),-1),u(O,"$start_with?",(function(e){for(var r,n=this,a=0,s=(r=p(arguments)).length;a<s;a++)if(r[a].$$is_regexp){var i=r[a],o=i.exec(n);if(null!=o&&0===o.index)return x["~"]=T("MatchData").$new(i,o),!0;x["~"]=A}else{var l=t(r[a],T("String"),"to_str").$to_s();if(n.length>=l.length&&n.startsWith(l))return!0}return!1}),-1),u(O,"$strip",(function(){return this.replace(/^[\x00\x09\x0a-\x0d\x20]*|[\x00\x09\x0a-\x0d\x20]*$/g,"")})),u(O,"$sub",(function e(r,n){var a=e.$$p||A,s=this;e.$$p=null,r.$$is_regexp||(r=t(r,T("String"),"to_str"),r=new RegExp(r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")));var i,o=r.exec(s);return null===o?(x["~"]=A,i=s.toString()):(T("MatchData").$new(r,o),void 0===n?(a===A&&v.$raise(T("ArgumentError"),"wrong number of arguments (1 for 2)"),i=s.slice(0,o.index)+a(o[0])+s.slice(o.index+o[0].length)):n.$$is_hash?i=s.slice(0,o.index)+n["$[]"](o[0]).$to_s()+s.slice(o.index+o[0].length):(n=(n=t(n,T("String"),"to_str")).replace(/([\\]+)([0-9+&`'])/g,(function(e,t,r){if(t.length%2==0)return e;switch(r){case"+":for(var n=o.length-1;n>0;n--)if(void 0!==o[n])return t.slice(1)+o[n];return"";case"&":return t.slice(1)+o[0];case"`":return t.slice(1)+s.slice(0,o.index);case"'":return t.slice(1)+s.slice(o.index+o[0].length);default:return t.slice(1)+(o[r]||"")}})).replace(/\\\\/g,"\\"),i=s.slice(0,o.index)+n+s.slice(o.index+o[0].length))),i}),-2),u(O,"$sum",(function(e){null==e&&(e=16),e=t(e,T("Integer"),"to_int");for(var r=0,n=this.length,a=0;a<n;a++)r+=this.charCodeAt(a);return e<=0?r:r&Math.pow(2,e)-1}),-1),u(O,"$swapcase",(function(){return this.replace(/([a-z]+)|([A-Z]+)/g,(function(e,t,r){return t?e.toUpperCase():e.toLowerCase()}))})),u(O,"$to_f",(function(){if("_"===this.charAt(0))return 0;var e=parseFloat(this.replace(/_/g,""));return isNaN(e)||e==1/0||e==-1/0?0:e})),u(O,"$to_i",(function(e){null==e&&(e=10);var r,n=this.toLowerCase(),a=t(e,T("Integer"),"to_int");return(1===a||a<0||a>36)&&v.$raise(T("ArgumentError"),"invalid radix "+a),/^\s*_/.test(n)?0:(n=n.replace(/^(\s*[+-]?)(0[bodx]?)(.+)$/,(function(e,t,r,n){switch(n.charAt(0)){case"+":case"-":return e;case"0":if("x"===n.charAt(1)&&"0x"===r&&(0===a||16===a))return e}switch(r){case"0b":if(0===a||2===a)return a=2,t+n;break;case"0":case"0o":if(0===a||8===a)return a=8,t+n;break;case"0d":if(0===a||10===a)return a=10,t+n;break;case"0x":if(0===a||16===a)return a=16,t+n}return e})),r=parseInt(n.replace(/_(?!_)/g,""),a),isNaN(r)?0:r)}),-1),u(O,"$to_proc",(function t(){var r,n,a=A;return t.$$p=null,r=this.valueOf(),n=e.jsid(r),a=m(v,"proc",[],(function e(t){var a,s=e.$$p||A;e.$$p=null,0===(a=p(arguments)).length&&v.$raise(T("ArgumentError"),"no receiver given");var i=a[0];null==i&&(i=A);var o=i[n];return o?a=a.slice(1):(o=i.$method_missing,a[0]=r),"function"==typeof s&&(o.$$p=s),0===a.length?o.call(i):o.apply(i,a)}),-1),a.$$source_location=A,a})),u(O,"$to_s",(function(){return this.toString()})),u(O,"$tr",(function(e,r){var n,a,s,i,o,l,$,u=this;if(e=t(e,T("String"),"to_str").$to_s(),r=t(r,T("String"),"to_str").$to_s(),0==e.length||e===r)return u;var c={},_=e.split(""),p=_.length,m=r.split(""),d=m.length,f=!1,h=null;"^"===_[0]&&_.length>1&&(f=!0,_.shift(),h=m[d-1],p-=1);var g=[],b=null;for(a=!1,n=0;n<p;n++)if(i=_[n],null==b)b=i,g.push(i);else if("-"===i)"-"===b?(g.push("-"),g.push("-")):n==p-1?g.push("-"):a=!0;else if(a){for((o=b.charCodeAt(0))>(l=i.charCodeAt(0))&&v.$raise(T("ArgumentError"),'invalid range "'+String.fromCharCode(o)+"-"+String.fromCharCode(l)+'" in string transliteration'),s=o+1;s<l;s++)g.push(String.fromCharCode(s));g.push(i),a=null,b=null}else g.push(i);if(p=(_=g).length,f)for(n=0;n<p;n++)c[_[n]]=!0;else{if(d>0){var y=[],x=null;for(a=!1,n=0;n<d;n++)if(i=m[n],null==x)x=i,y.push(i);else if("-"===i)"-"===x?(y.push("-"),y.push("-")):n==d-1?y.push("-"):a=!0;else if(a){for((o=x.charCodeAt(0))>(l=i.charCodeAt(0))&&v.$raise(T("ArgumentError"),'invalid range "'+String.fromCharCode(o)+"-"+String.fromCharCode(l)+'" in string transliteration'),s=o+1;s<l;s++)y.push(String.fromCharCode(s));y.push(i),a=null,x=null}else y.push(i);d=(m=y).length}var w=p-d;if(w>0){var k=d>0?m[d-1]:"";for(n=0;n<w;n++)m.push(k)}for(n=0;n<p;n++)c[_[n]]=m[n]}var U="";for(n=0,$=u.length;n<$;n++){var E=c[i=u.charAt(n)];U+=f?null==E?h:i:null!=E?E:i}return U})),u(O,"$tr_s",(function(e,r){var n,a,s,i,o,l,$,u=this;if(e=t(e,T("String"),"to_str").$to_s(),r=t(r,T("String"),"to_str").$to_s(),0==e.length)return u;var c={},_=e.split(""),p=_.length,m=r.split(""),d=m.length,f=!1,h=null;"^"===_[0]&&_.length>1&&(f=!0,_.shift(),h=m[d-1],p-=1);var g=[],b=null;for(a=!1,n=0;n<p;n++)if(i=_[n],null==b)b=i,g.push(i);else if("-"===i)"-"===b?(g.push("-"),g.push("-")):n==p-1?g.push("-"):a=!0;else if(a){for((o=b.charCodeAt(0))>(l=i.charCodeAt(0))&&v.$raise(T("ArgumentError"),'invalid range "'+String.fromCharCode(o)+"-"+String.fromCharCode(l)+'" in string transliteration'),s=o+1;s<l;s++)g.push(String.fromCharCode(s));g.push(i),a=null,b=null}else g.push(i);if(p=(_=g).length,f)for(n=0;n<p;n++)c[_[n]]=!0;else{if(d>0){var y=[];for(a=!1,n=0;n<d;n++)if(i=m[n],null==b)b=i,y.push(i);else if("-"===i)n==d-1?y.push("-"):a=!0;else if(a){for((o=b.charCodeAt(0))>(l=i.charCodeAt(0))&&v.$raise(T("ArgumentError"),'invalid range "'+String.fromCharCode(o)+"-"+String.fromCharCode(l)+'" in string transliteration'),s=o+1;s<l;s++)y.push(String.fromCharCode(s));y.push(i),a=null,b=null}else y.push(i);d=(m=y).length}var x=p-d;if(x>0){var w=d>0?m[d-1]:"";for(n=0;n<x;n++)m.push(w)}for(n=0;n<p;n++)c[_[n]]=m[n]}var k="",U=null;for(n=0,$=u.length;n<$;n++){var E=c[i=u.charAt(n)];f?null==E?null==U&&(k+=h,U=!0):(k+=i,U=null):null!=E?null!=U&&U===E||(k+=E,U=E):(k+=i,U=null)}return k})),u(O,"$upcase",(function(){return this.toUpperCase()})),u(O,"$upto",(function e(r,n){var a=e.$$p||A,s=this;if(e.$$p=null,null==n&&(n=!1),a===A)return s.$enum_for("upto",r,n);var i,o,l=s.toString();if(r=t(r,T("String"),"to_str"),1===l.length&&1===r.length)for(i=l.charCodeAt(0),o=r.charCodeAt(0);i<=o&&(!n||i!==o);)a(String.fromCharCode(i)),i+=1;else if(parseInt(l,10).toString()===l&&parseInt(r,10).toString()===r)for(i=parseInt(l,10),o=parseInt(r,10);i<=o&&(!n||i!==o);)a(i.toString()),i+=1;else for(;l.length<=r.length&&l<=r&&(!n||l!==r);)a(l),l=l.$succ();return s}),-2),u(O,"$instance_variables",(function(){return[]})),_(O,"$_load",(function(e){var t;return t=p(arguments),m(this,"new",d(t))}),-1),u(O,"$unicode_normalize",(function(e){return null==e&&(e="nfc"),y(["nfc","nfd","nfkc","nfkd"]["$include?"](e))||v.$raise(T("ArgumentError"),"Invalid normalization form "+e),this.normalize(e.$upcase())}),-1),u(O,"$unicode_normalized?",(function(e){return null==e&&(e="nfc"),this.$unicode_normalize(e)["$=="](this)}),-1),u(O,"$unpack",(function(e){return v.$raise("To use String#unpack, you must first require 'corelib/string/unpack'.")})),u(O,"$unpack1",(function(e){return v.$raise("To use String#unpack1, you must first require 'corelib/string/unpack'.")})),u(O,"$freeze",(function(){var e=this;return"string"==typeof e||a(e,"$$frozen",!0),e})),u(O,"$-@",(function(){var e=this;return"string"==typeof e||e.$$frozen?e:"UTF-8"==e.encoding.name&&"UTF-8"==e.internal_encoding.name?e.toString():e.$dup().$freeze()})),u(O,"$frozen?",(function(){return"string"==typeof this||!0===this.$$frozen})),E(O,"+@","dup"),E(O,"===","=="),E(O,"byteslice","[]"),E(O,"eql?","=="),E(O,"equal?","==="),E(O,"object_id","__id__"),E(O,"slice","[]"),E(O,"succ","next"),E(O,"to_str","to_s"),E(O,"to_sym","intern"),c.$pristine(O,"initialize")}(0,0,S),M(S[0],"Symbol",O("String"))},Opal.modules["corelib/enumerable"]=function(e){var t=e.truthy,r=e.coerce_to,n=e.yield1,a=e.yieldX,s=e.deny_frozen_access,i=e.module,o=e.send,l=e.slice,$=e.to_a,u=e.Opal,c=e.thrower,_=e.def,p=e.Kernel,m=e.return_val,d=e.rb_gt,f=e.rb_times,h=e.rb_lt,g=e.eqeq,b=e.rb_plus,v=e.rb_minus,y=e.rb_divide,x=e.rb_le,w=e.lambda,k=e.not,U=e.alias,E=e.nil,M=e.$$$;return e.add_stubs("each,public_send,destructure,to_enum,enumerator_size,new,yield,raise,slice_when,!,enum_for,flatten,map,to_proc,compact,to_a,warn,proc,==,nil?,respond_to?,coerce_to!,>,*,try_convert,<,+,-,ceil,/,size,select,__send__,length,<=,[],push,<<,[]=,===,inspect,<=>,first,reverse,sort,take,sort_by,compare,call,dup,sort!,map!,include?,-@,key?,values,transform_values,group_by,fetch,to_h,coerce_to?,class,zip,detect,find_all,collect_concat,collect,inject,entries"),function(q,S){var O=i("::","Enumerable"),A=[O].concat(S),T=e.$r(A);function N(e){return 0===e.length&&(e=[E]),e.length>1&&(e=[e]),e}return _(O,"$all?",(function r(n){try{var a=c("return"),s=r.$$p||E,i=this;return r.$$p=null,t(void 0!==n)?o(i,"each",[],(function e(r){var s;if(s=N(l(arguments)),t(o(n,"public_send",["==="].concat($(s)))))return E;a.$throw(!1,e.$$is_lambda)}),{$$arity:-1,$$ret:a}):o(i,"each",[],s!==E?function r(n){var i;if(i=l(arguments),t(e.yieldX(s,$(i))))return E;a.$throw(!1,r.$$is_lambda)}:function e(r){var n;if(n=l(arguments),t(u.$destructure(n)))return E;a.$throw(!1,e.$$is_lambda)},{$$arity:-1,$$ret:a}),!0}catch(e){if(e===a)return e.$v;throw e}finally{a.is_orphan=!0}}),-1),_(O,"$any?",(function r(n){try{var a=c("return"),s=r.$$p||E,i=this;return r.$$p=null,t(void 0!==n)?o(i,"each",[],(function e(r){var s;if(s=N(l(arguments)),!t(o(n,"public_send",["==="].concat($(s)))))return E;a.$throw(!0,e.$$is_lambda)}),{$$arity:-1,$$ret:a}):o(i,"each",[],s!==E?function r(n){var i;if(i=l(arguments),!t(e.yieldX(s,$(i))))return E;a.$throw(!0,r.$$is_lambda)}:function e(r){var n;if(n=l(arguments),!t(u.$destructure(n)))return E;a.$throw(!0,e.$$is_lambda)},{$$arity:-1,$$ret:a}),!1}catch(e){if(e===a)return e.$v;throw e}finally{a.is_orphan=!0}}),-1),_(O,"$chunk",(function e(){var t=e.$$p||E,r=this;return e.$$p=null,t===E?o(r,"to_enum",["chunk"],(function e(){return(null==e.$$s?this:e.$$s).$enumerator_size()}),{$$s:r}):o(M("Enumerator"),"new",[],(function e(r){var a=null==e.$$s?this:e.$$s;null==r&&(r=E);var s=E,i=[];function o(){i.length>0&&r.$yield(s,i)}a.$each.$$p=function(e){var r=n(t,e);r===E?(o(),i=[],s=E):(s===E||s===r?i.push(e):(o(),i=[e]),s=r)},a.$each(),o()}),{$$s:r})})),_(O,"$chunk_while",(function t(){var r=t.$$p||E;return t.$$p=null,r===E&&p.$raise(M("ArgumentError"),"no block given"),o(this,"slice_when",[],(function(t,n){return null==t&&(t=E),null==n&&(n=E),e.yieldX(r,[t,n])["$!"]()}))})),_(O,"$collect",(function e(){var t=e.$$p||E,r=this;if(e.$$p=null,t===E)return o(r,"enum_for",["collect"],(function e(){return(null==e.$$s?this:e.$$s).$enumerator_size()}),{$$s:r});var n=[];return r.$each.$$p=function(){var e=a(t,arguments);n.push(e)},r.$each(),n})),_(O,"$collect_concat",(function e(){var t=e.$$p||E,r=this;return e.$$p=null,t===E?o(r,"enum_for",["collect_concat"],(function e(){return(null==e.$$s?this:e.$$s).$enumerator_size()}),{$$s:r}):o(r,"map",[],t.$to_proc()).$flatten(1)})),_(O,"$compact",(function(){return this.$to_a().$compact()})),_(O,"$count",(function e(r){var n=e.$$p||E,s=E;return e.$$p=null,s=0,null!=r&&n!==E&&this.$warn("warning: given block not used"),t(null!=r)?n=o(p,"proc",[],(function(e){var t;return t=l(arguments),u.$destructure(t)["$=="](r)}),-1):t(n["$nil?"]())&&(n=o(p,"proc",[],m(!0))),o(this,"each",[],(function(e){var r;return r=l(arguments),t(a(n,r))?s++:E}),-1),s}),-1),_(O,"$cycle",(function e(r){var a=e.$$p||E,s=this;if(e.$$p=null,null==r&&(r=E),a===E)return o(s,"enum_for",["cycle",r],(function e(){var n=null==e.$$s?this:e.$$s;return t(r["$nil?"]())?t(n["$respond_to?"]("size"))?M(M("Float"),"INFINITY"):E:(r=u["$coerce_to!"](r,M("Integer"),"to_int"),t(d(r,0))?f(n.$enumerator_size(),r):0)}),{$$s:s});if(!t(r["$nil?"]())&&(r=u["$coerce_to!"](r,M("Integer"),"to_int"),t(r<=0)))return E;var i,l,$=[];if(s.$each.$$p=function(){var e=u.$destructure(arguments);n(a,e);$.push(e)},s.$each(),0===$.length)return E;if(r===E)for(;;)for(i=0,l=$.length;i<l;i++)n(a,$[i]);else for(;r>1;){for(i=0,l=$.length;i<l;i++)n(a,$[i]);r--}}),-1),_(O,"$detect",(function r(n){try{var a=c("return"),s=r.$$p||E;return r.$$p=null,s===E?this.$enum_for("detect",n):(o(this,"each",[],(function r(n){var i,o;if(i=l(arguments),o=u.$destructure(i),!t(e.yield1(s,o)))return E;a.$throw(o,r.$$is_lambda)}),{$$arity:-1,$$ret:a}),void 0!==n?"function"==typeof n?n():n:E)}catch(e){if(e===a)return e.$v;throw e}finally{a.is_orphan=!0}}),-1),_(O,"$drop",(function(e){e=r(e,M("Integer"),"to_int"),t(e<0)&&p.$raise(M("ArgumentError"),"attempt to drop negative size");var n=[],a=0;return this.$each.$$p=function(){e<=a&&n.push(u.$destructure(arguments)),a++},this.$each(),n})),_(O,"$drop_while",(function e(){var r=e.$$p||E,a=this;if(e.$$p=null,r===E)return a.$enum_for("drop_while");var s=[],i=!0;return a.$each.$$p=function(){var e=u.$destructure(arguments);if(i){var a=n(r,e);t(a)||(i=!1,s.push(e))}else s.push(e)},a.$each(),s})),_(O,"$each_cons",(function e(r){var a=e.$$p||E,s=this;if(e.$$p=null,t(1!=arguments.length)&&p.$raise(M("ArgumentError"),"wrong number of arguments ("+arguments.length+" for 1)"),r=u.$try_convert(r,M("Integer"),"to_int"),t(r<=0)&&p.$raise(M("ArgumentError"),"invalid size"),a===E)return o(s,"enum_for",["each_cons",r],(function e(){var n=E;return n=(null==e.$$s?this:e.$$s).$enumerator_size(),t(n["$nil?"]())?E:g(n,0)||t(h(n,r))?0:b(v(n,r),1)}),{$$s:s});var i=[];return s.$each.$$p=function(){var e=u.$destructure(arguments);i.push(e),i.length>r&&i.shift(),i.length==r&&n(a,i.slice(0,r))},s.$each(),s})),_(O,"$each_entry",(function e(t){var r,a=e.$$p||E,s=this;return e.$$p=null,r=l(arguments),a===E?o(s,"to_enum",["each_entry"].concat($(r)),(function e(){return(null==e.$$s?this:e.$$s).$enumerator_size()}),{$$s:s}):(s.$each.$$p=function(){var e=u.$destructure(arguments);n(a,e)},s.$each.apply(s,r),s)}),-1),_(O,"$each_slice",(function e(a){var s=e.$$p||E,i=this;if(e.$$p=null,a=r(a,M("Integer"),"to_int"),t(a<=0)&&p.$raise(M("ArgumentError"),"invalid slice size"),s===E)return o(i,"enum_for",["each_slice",a],(function e(){var r=null==e.$$s?this:e.$$s;return t(r["$respond_to?"]("size"))?y(r.$size(),a).$ceil():E}),{$$s:i});var l=[];return i.$each.$$p=function(){var e=u.$destructure(arguments);l.push(e),l.length===a&&(n(s,l),l=[])},i.$each(),l.length>0&&n(s,l),i})),_(O,"$each_with_index",(function e(t){var r,n=e.$$p||E,a=this;if(e.$$p=null,r=l(arguments),n===E)return o(a,"enum_for",["each_with_index"].concat($(r)),(function e(){return(null==e.$$s?this:e.$$s).$enumerator_size()}),{$$s:a});var s=0;return a.$each.$$p=function(){var e=u.$destructure(arguments);n(e,s),s++},a.$each.apply(a,r),a}),-1),_(O,"$each_with_object",(function e(t){var r=e.$$p||E,n=this;return e.$$p=null,r===E?o(n,"enum_for",["each_with_object",t],(function e(){return(null==e.$$s?this:e.$$s).$enumerator_size()}),{$$s:n}):(n.$each.$$p=function(){var e=u.$destructure(arguments);r(e,t)},n.$each(),t)})),_(O,"$entries",(function(e){var t,r=this;t=l(arguments);var n=[];return r.$each.$$p=function(){n.push(u.$destructure(arguments))},r.$each.apply(r,t),n}),-1),_(O,"$filter_map",(function e(){var t=e.$$p||E,r=this;return e.$$p=null,t===E?o(r,"enum_for",["filter_map"],(function e(){return(null==e.$$s?this:e.$$s).$enumerator_size()}),{$$s:r}):o(o(r,"map",[],t.$to_proc()),"select",[],"itself".$to_proc())})),_(O,"$find_all",(function e(){var r=e.$$p||E,a=this;if(e.$$p=null,r===E)return o(a,"enum_for",["find_all"],(function e(){return(null==e.$$s?this:e.$$s).$enumerator_size()}),{$$s:a});var s=[];return a.$each.$$p=function(){var e=u.$destructure(arguments),a=n(r,e);t(a)&&s.push(e)},a.$each(),s})),_(O,"$find_index",(function r(n){try{var a=c("return"),s=r.$$p||E,i=this,_=E;return r.$$p=null,t(void 0===n&&s===E)?i.$enum_for("find_index"):(null!=n&&s!==E&&i.$warn("warning: given block not used"),_=0,t(null!=n)?o(i,"each",[],(function e(t){var r;return r=l(arguments),g(u.$destructure(r),n)&&a.$throw(_,e.$$is_lambda),_+=1}),{$$arity:-1,$$ret:a}):o(i,"each",[],(function r(n){var i;return i=l(arguments),t(e.yieldX(s,$(i)))&&a.$throw(_,r.$$is_lambda),_+=1}),{$$arity:-1,$$ret:a}),E)}catch(e){if(e===a)return e.$v;throw e}finally{a.is_orphan=!0}}),-1),_(O,"$first",(function(e){try{var n=c("return"),a=E,s=E;return t(void 0===e)?o(this,"each",[],(function e(t){null==t&&(t=E),n.$throw(t,e.$$is_lambda)}),{$$ret:n}):(a=[],e=r(e,M("Integer"),"to_int"),t(e<0)&&p.$raise(M("ArgumentError"),"attempt to take negative size"),t(0==e)?[]:(s=0,o(this,"each",[],(function r(i){var o;if(o=l(arguments),a.push(u.$destructure(o)),!t(e<=++s))return E;n.$throw(a,r.$$is_lambda)}),{$$arity:-1,$$ret:n}),a))}catch(e){if(e===n)return e.$v;throw e}finally{n.is_orphan=!0}}),-1),_(O,"$grep",(function r(n){var a=r.$$p||E,s=E;return r.$$p=null,s=[],o(this,"each",[],(function(r){var i,u;return u=N(i=l(arguments)),t(o(n,"__send__",["==="].concat($(u))))?(a!==E?(t(d(i.$length(),1))&&(i=[i]),i=e.yieldX(a,$(i))):t(x(i.$length(),1))&&(i=i["$[]"](0)),s.$push(i)):E}),-1),s})),_(O,"$grep_v",(function r(n){var a=r.$$p||E,s=E;return r.$$p=null,s=[],o(this,"each",[],(function(r){var i,u;return u=N(i=l(arguments)),t(o(n,"__send__",["==="].concat($(u))))?E:(a!==E?(t(d(i.$length(),1))&&(i=[i]),i=e.yieldX(a,$(i))):t(x(i.$length(),1))&&(i=i["$[]"](0)),s.$push(i))}),-1),s})),_(O,"$group_by",(function e(){var r,a=e.$$p||E,s=this,i=E,l=E;return e.$$p=null,a===E?o(s,"enum_for",["group_by"],(function e(){return(null==e.$$s?this:e.$$s).$enumerator_size()}),{$$s:s}):(i=new Map,s.$each.$$p=function(){var e=u.$destructure(arguments),s=n(a,e);(t(l=i["$[]"](s))?l:(r=[s,[]],o(i,"[]=",r),r[r.length-1]))["$<<"](e)},s.$each(),i)})),_(O,"$include?",(function(e){try{var t=c("return");return o(this,"each",[],(function r(n){var a;if(a=l(arguments),!g(u.$destructure(a),e))return E;t.$throw(!0,r.$$is_lambda)}),{$$arity:-1,$$ret:t}),!1}catch(e){if(e===t)return e.$v;throw e}finally{t.is_orphan=!0}})),_(O,"$inject",(function e(t,r){var n=e.$$p||E,s=this;e.$$p=null;var i=t;return n!==E&&void 0===r?s.$each.$$p=function(){var e=u.$destructure(arguments);void 0!==i?(e=a(n,[i,e]),i=e):i=e}:(void 0===r&&(M("Symbol")["$==="](t)||p.$raise(M("TypeError"),t.$inspect()+" is not a Symbol"),r=t,i=void 0),s.$each.$$p=function(){var e=u.$destructure(arguments);i=void 0!==i?i.$__send__(r,e):e}),s.$each(),null==i?E:i}),-1),_(O,"$lazy",(function(){return o(M(M("Enumerator"),"Lazy"),"new",[this,this.$enumerator_size()],(function(e,t){var r;return null==e&&(e=E),r=l(arguments,1),o(e,"yield",$(r))}),-2)})),_(O,"$enumerator_size",(function(){return t(this["$respond_to?"]("size"))?this.$size():E})),_(O,"$max",(function e(t){var n,s,i=e.$$p||E,l=this;return e.$$p=null,void 0===t||t===E?(l.$each.$$p=function(){var e=u.$destructure(arguments);void 0!==n?((s=i!==E?a(i,[e,n]):e["$<=>"](n))===E&&p.$raise(M("ArgumentError"),"comparison failed"),s>0&&(n=e)):n=e},l.$each(),void 0===n?E:n):(t=r(t,M("Integer"),"to_int"),o(l,"sort",[],i.$to_proc()).$reverse().$first(t))}),-1),_(O,"$max_by",(function e(r){var a,s,i=e.$$p||E,l=this;return e.$$p=null,null==r&&(r=E),t(i)?t(r["$nil?"]())?(l.$each.$$p=function(){var e=u.$destructure(arguments),t=n(i,e);if(void 0===a)return a=e,void(s=t);t["$<=>"](s)>0&&(a=e,s=t)},l.$each(),void 0===a?E:a):o(l,"sort_by",[],i.$to_proc()).$reverse().$take(r):o(l,"enum_for",["max_by",r],(function e(){return(null==e.$$s?this:e.$$s).$enumerator_size()}),{$$s:l})}),-1),_(O,"$min",(function r(n){var a,s=r.$$p||E,i=this;return r.$$p=null,null==n&&(n=E),t(n["$nil?"]())?(i.$each.$$p=s!==E?function(){var e=u.$destructure(arguments);if(void 0!==a){var t=s(e,a);t===E&&p.$raise(M("ArgumentError"),"comparison failed"),t<0&&(a=e)}else a=e}:function(){var e=u.$destructure(arguments);void 0!==a?u.$compare(e,a)<0&&(a=e):a=e},i.$each(),void 0===a?E:a):s!==E?o(i,"sort",[],(function(t,r){return null==t&&(t=E),null==r&&(r=E),e.yieldX(s,[t,r])})).$take(n):i.$sort().$take(n)}),-1),_(O,"$min_by",(function e(r){var a,s,i=e.$$p||E,l=this;return e.$$p=null,null==r&&(r=E),t(i)?t(r["$nil?"]())?(l.$each.$$p=function(){var e=u.$destructure(arguments),t=n(i,e);if(void 0===a)return a=e,void(s=t);t["$<=>"](s)<0&&(a=e,s=t)},l.$each(),void 0===a?E:a):o(l,"sort_by",[],i.$to_proc()).$take(r):o(l,"enum_for",["min_by",r],(function e(){return(null==e.$$s?this:e.$$s).$enumerator_size()}),{$$s:l})}),-1),_(O,"$minmax",(function e(){var r,n=e.$$p||E;e.$$p=null,n=t(r=n)?r:o(p,"proc",[],(function(e,t){return null==e&&(e=E),null==t&&(t=E),e["$<=>"](t)}));var a=E,s=E,i=!0;return this.$each.$$p=function(){var e=u.$destructure(arguments);if(i)a=s=e,i=!1;else{var t=n.$call(a,e);t===E?p.$raise(M("ArgumentError"),"comparison failed"):t>0&&(a=e);var r=n.$call(s,e);r===E?p.$raise(M("ArgumentError"),"comparison failed"):r<0&&(s=e)}},this.$each(),[a,s]})),_(O,"$minmax_by",(function e(){var r=e.$$p||E,a=this;if(e.$$p=null,!t(r))return o(a,"enum_for",["minmax_by"],(function e(){return(null==e.$$s?this:e.$$s).$enumerator_size()}),{$$s:a});var s,i,l=E,$=E;return a.$each.$$p=function(){var e=u.$destructure(arguments),t=n(r,e);(void 0===s||t["$<=>"](s)<0)&&(l=e,s=t),(void 0===i||t["$<=>"](i)>0)&&($=e,i=t)},a.$each(),[l,$]})),_(O,"$none?",(function r(n){try{var a=c("return"),s=r.$$p||E,i=this;return r.$$p=null,t(void 0!==n)?o(i,"each",[],(function e(r){var s;if(s=N(l(arguments)),!t(o(n,"public_send",["==="].concat($(s)))))return E;a.$throw(!1,e.$$is_lambda)}),{$$arity:-1,$$ret:a}):o(i,"each",[],s!==E?function r(n){var i;if(i=l(arguments),!t(e.yieldX(s,$(i))))return E;a.$throw(!1,r.$$is_lambda)}:function e(r){var n,s;if(n=l(arguments),s=u.$destructure(n),!t(s))return E;a.$throw(!1,e.$$is_lambda)},{$$arity:-1,$$ret:a}),!0}catch(e){if(e===a)return e.$v;throw e}finally{a.is_orphan=!0}}),-1),_(O,"$one?",(function r(n){try{var a=c("return"),s=r.$$p||E,i=this,_=E;return r.$$p=null,_=0,t(void 0!==n)?o(i,"each",[],(function e(r){var s;return s=N(l(arguments)),t(o(n,"public_send",["==="].concat($(s))))?(_=b(_,1),t(d(_,1))?void a.$throw(!1,e.$$is_lambda):E):E}),{$$arity:-1,$$ret:a}):o(i,"each",[],s!==E?function r(n){var i;return i=l(arguments),t(e.yieldX(s,$(i)))?(_=b(_,1),t(d(_,1))?void a.$throw(!1,r.$$is_lambda):E):E}:function e(r){var n;return n=l(arguments),t(u.$destructure(n))?(_=b(_,1),t(d(_,1))?void a.$throw(!1,e.$$is_lambda):E):E},{$$arity:-1,$$ret:a}),_["$=="](1)}catch(e){if(e===a)return e.$v;throw e}finally{a.is_orphan=!0}}),-1),_(O,"$partition",(function e(){var r=e.$$p||E,a=this;if(e.$$p=null,r===E)return o(a,"enum_for",["partition"],(function e(){return(null==e.$$s?this:e.$$s).$enumerator_size()}),{$$s:a});var s=[],i=[];return a.$each.$$p=function(){var e=u.$destructure(arguments),a=n(r,e);t(a)?s.push(e):i.push(e)},a.$each(),[s,i]})),_(O,"$reject",(function e(){var r=e.$$p||E,a=this;if(e.$$p=null,r===E)return o(a,"enum_for",["reject"],(function e(){return(null==e.$$s?this:e.$$s).$enumerator_size()}),{$$s:a});var s=[];return a.$each.$$p=function(){var e=u.$destructure(arguments),a=n(r,e);t(a)||s.push(e)},a.$each(),s})),_(O,"$reverse_each",(function e(){var t=e.$$p||E,r=this;if(e.$$p=null,t===E)return o(r,"enum_for",["reverse_each"],(function e(){return(null==e.$$s?this:e.$$s).$enumerator_size()}),{$$s:r});var n=[];r.$each.$$p=function(){n.push(arguments)},r.$each();for(var s=n.length-1;s>=0;s--)a(t,n[s]);return n})),_(O,"$slice_before",(function e(r){var a=e.$$p||E;return e.$$p=null,t(void 0===r&&a===E)&&p.$raise(M("ArgumentError"),"both pattern and block are given"),t(void 0!==r&&a!==E||arguments.length>1)&&p.$raise(M("ArgumentError"),"wrong number of arguments ("+arguments.length+" expected 1)"),o(M("Enumerator"),"new",[],(function e(s){var i=null==e.$$s?this:e.$$s;null==s&&(s=E);var o=[];i.$each.$$p=a!==E?void 0===r?function(){var e=u.$destructure(arguments),r=n(a,e);t(r)&&o.length>0&&(s["$<<"](o),o=[]),o.push(e)}:function(){var e=u.$destructure(arguments),n=a(e,r.$dup());t(n)&&o.length>0&&(s["$<<"](o),o=[]),o.push(e)}:function(){var e=u.$destructure(arguments),n=r["$==="](e);t(n)&&o.length>0&&(s["$<<"](o),o=[]),o.push(e)},i.$each(),o.length>0&&s["$<<"](o)}),{$$s:this})}),-1),_(O,"$slice_after",(function e(r){var a=e.$$p||E;return e.$$p=null,t(void 0===r&&a===E)&&p.$raise(M("ArgumentError"),"both pattern and block are given"),t(void 0!==r&&a!==E||arguments.length>1)&&p.$raise(M("ArgumentError"),"wrong number of arguments ("+arguments.length+" expected 1)"),t(void 0!==r)&&(a=o(p,"proc",[],(function(e){return null==e&&(e=E),r["$==="](e)}))),o(M("Enumerator"),"new",[],(function e(r){var s,i=null==e.$$s?this:e.$$s;null==r&&(r=E),i.$each.$$p=function(){var e=u.$destructure(arguments),i=n(a,e);null==s&&(s=[]),t(i)?(s.push(e),r.$yield(s),s=null):s.push(e)},i.$each(),null!=s&&r.$yield(s)}),{$$s:this})}),-1),_(O,"$slice_when",(function e(){var r=e.$$p||E;return e.$$p=null,r===E&&p.$raise(M("ArgumentError"),"wrong number of arguments (0 for 1)"),o(M("Enumerator"),"new",[],(function e(n){var s=null==e.$$s?this:e.$$s;null==n&&(n=E);var i=E,o=E;s.$each_cons.$$p=function(){var e=u.$destructure(arguments),s=e[0],l=e[1],$=a(r,[s,l]);o=l,i===E&&(i=[]),t($)?(i.push(s),n.$yield(i),i=[]):i.push(s)},s.$each_cons(2),i!==E&&(i.push(o),n.$yield(i))}),{$$s:this})})),_(O,"$sort",(function e(){var t,r=e.$$p||E;return e.$$p=null,t=this.$to_a(),r===E&&(r=w((function(e,t){return null==e&&(e=E),null==t&&(t=E),e["$<=>"](t)}))),o(t,"sort",[],r.$to_proc())})),_(O,"$sort_by",(function t(){var r,n=t.$$p||E,a=this;return t.$$p=null,n===E?o(a,"enum_for",["sort_by"],(function e(){return(null==e.$$s?this:e.$$s).$enumerator_size()}),{$$s:a}):(r=o(a,"map",[],(function(){var t;return t=u.$destructure(arguments),[e.yield1(n,t),t]})),o(r,"sort!",[],(function(e,t){return null==e&&(e=E),null==t&&(t=E),e[0]["$<=>"](t[0])})),o(r,"map!",[],(function(e){return null==e&&(e=E),e[1]})))})),_(O,"$sum",(function r(n){var a=r.$$p||E,s=E,i=E;return r.$$p=null,null==n&&(n=0),s=n,i=0,o(this,"each",[],(function(r){var n,o=E,c=E,_=E;return n=l(arguments),o=a!==E?e.yieldX(a,$(n)):u.$destructure(n),k([M(M("Float"),"INFINITY"),M(M("Float"),"INFINITY")["$-@"]()]["$include?"](o))&&t(o["$respond_to?"]("-"))?(c=v(o,i),_=b(s,c),i=v(v(_,s),c),s=_):s=b(s,o)}),-1),s}),-1),_(O,"$take",(function(e){return this.$first(e)})),_(O,"$take_while",(function r(){try{var n=c("return"),a=r.$$p||E,s=E;return r.$$p=null,t(a)?(s=[],o(this,"each",[],(function r(i){var o,$;return o=l(arguments),$=u.$destructure(o),t(e.yield1(a,$))||n.$throw(s,r.$$is_lambda),s.push($)}),{$$arity:-1,$$ret:n})):this.$enum_for("take_while")}catch(e){if(e===n)return e.$v;throw e}finally{n.is_orphan=!0}})),_(O,"$uniq",(function r(){var n=r.$$p||E,a=E;return r.$$p=null,a=new Map,o(this,"each",[],(function(r){var s,i,$,c;return s=l(arguments),$=u.$destructure(s),c=n!==E?e.yield1(n,$):$,t(a["$key?"](c))?E:(o(a,"[]=",i=[c,$]),i[i.length-1])}),-1),a.$values()})),_(O,"$tally",(function(e){var r;return e&&e!==E&&s(e),r=o(o(this,"group_by",[],"itself".$to_proc()),"transform_values",[],"count".$to_proc()),t(e)?(o(r,"each",[],(function(t,r){var n;return null==t&&(t=E),null==r&&(r=E),n=[t,b(e.$fetch(t,0),r)],o(e,"[]=",n),n[n.length-1]})),e):r}),-1),_(O,"$to_h",(function t(r){var n,a=t.$$p||E,s=this;if(t.$$p=null,n=l(arguments),a!==E)return o(o(s,"map",[],a.$to_proc()),"to_h",$(n));var i=new Map;return s.$each.$$p=function(){var t,r,n=u.$destructure(arguments),a=u["$coerce_to?"](n,M("Array"),"to_ary");a.$$is_array||p.$raise(M("TypeError"),"wrong element type "+n.$class()+" (expected array)"),2!==a.length&&p.$raise(M("ArgumentError"),"element has wrong array length (expected 2, was "+a.$length()+")"),t=a[0],r=a[1],e.hash_put(i,t,r)},s.$each.apply(s,n),i}),-1),_(O,"$to_set",(function e(t,r){var n,a,s=e.$$p||E,i=this;return e.$$p=null,(n=l(arguments)).length>0&&(a=n.shift()),null==a&&(a=T("Set")),o(a,"new",[i].concat($(n)),s.$to_proc())}),-1),_(O,"$zip",(function e(t){var r;return e.$$p=null,r=l(arguments),o(this.$to_a(),"zip",$(r))}),-1),U(O,"find","detect"),U(O,"filter","find_all"),U(O,"flat_map","collect_concat"),U(O,"map","collect"),U(O,"member?","include?"),U(O,"reduce","inject"),U(O,"select","find_all"),U(O,"to_a","entries")}(0,[])},Opal.modules["corelib/enumerator/arithmetic_sequence"]=function(e){var t=e.klass,r=e.truthy,n=e.to_a,a=e.eqeq,s=e.Kernel,i=e.def,o=e.rb_gt,l=e.rb_lt,$=e.rb_le,u=e.rb_ge,c=e.rb_plus,_=e.rb_minus,p=e.eqeqeq,m=e.not,d=e.rb_times,f=e.rb_divide,h=e.alias,g=e.nil,b=e.$$$;return e.add_stubs("is_a?,==,raise,respond_to?,class,attr_reader,begin,end,exclude_end?,>,step,<,<=,>=,-@,_lesser_than_end?,<<,+,-,===,%,_greater_than_begin?,reverse,!,include?,*,to_i,abs,/,hash,inspect"),function(v,y,x){var w=t("::",null,"Enumerator"),k=[w].concat(x);return function(v,y,x){var w=t(v,y,"ArithmeticSequence"),k=[w].concat(x),U=e.$r(k),E=w.$$prototype;E.step_arg2=E.receiver_num=E.step_arg1=E.step=E.range=E.topfx=E.bypfx=E.creation_method=E.skipped_arg=g,e.prop(w.$$prototype,"$$is_arithmetic_seq",!0);var M=1/0;return i(w,"$initialize",(function(t,i,o){var l,$=this,u=g;return null==o&&(o="step"),$.creation_method=o,r(t["$is_a?"](b("Array")))?(l=[].concat(n(t)),$.step_arg1=null==l[0]?g:l[0],$.step_arg2=null==l[1]?g:l[1],$.topfx=null==l[2]?g:l[2],$.bypfx=null==l[3]?g:l[3],$.receiver_num=i,$.step=1,$.range=r($.step_arg2)?($.step=$.step_arg2,e.Range.$new($.receiver_num,$.step_arg1,!1)):r($.step_arg1)?e.Range.$new($.receiver_num,$.step_arg1,!1):e.Range.$new($.receiver_num,g,!1)):(r(i)||($.skipped_arg=!0),l=[t,r(u=i)?u:1],$.range=l[0],$.step=l[1]),$.object=$,a($.step,0)&&s.$raise(U("ArgumentError"),"step can't be 0"),r($.step["$respond_to?"]("to_int"))?g:s.$raise(U("ArgumentError"),"no implicit conversion of "+$.step.$class()+" into Integer")}),-2),w.$attr_reader("step"),i(w,"$begin",(function(){return this.range.$begin()})),i(w,"$end",(function(){return this.range.$end()})),i(w,"$exclude_end?",(function(){return this.range["$exclude_end?"]()})),i(w,"$_lesser_than_end?",(function(e){var t,n,a=this;return t=r(n=a.$end())?n:M,r(o(a.$step(),0))?r(a["$exclude_end?"]())?l(e,t):$(e,t):r(a["$exclude_end?"]())?o(e,t):u(e,t)})),i(w,"$_greater_than_begin?",(function(e){var t,n;return t=r(n=this.$begin())?n:M["$-@"](),r(o(this.$step(),0))?o(e,t):l(e,t)})),i(w,"$first",(function(e){var t=this,n=g,a=g,s=g;if(n=r(a=t.$begin())?a:M["$-@"](),!r(e))return r(t["$_lesser_than_end?"](n))?n:g;for(s=[];r(r(a=t["$_lesser_than_end?"](n))?o(e,0):a);)s["$<<"](n),n=c(n,t.$step()),e=_(e,1);return s}),-1),i(w,"$each",(function t(){var n,a=t.$$p||g,i=this,o=g;if(t.$$p=null,a===g)return i;for(p(g,i.$begin())&&s.$raise(U("TypeError"),"nil can't be coerced into Integer"),o=r(n=i.$begin())?n:M["$-@"]();r(i["$_lesser_than_end?"](o));)e.yield1(a,o),o=c(o,i.$step());return i})),i(w,"$last",(function(e){var t=this,n=g,a=g,i=g;if(p(M,n=t.$end())||p(M["$-@"](),n)?s.$raise(b("FloatDomainError"),t.$end()):p(g,n)&&s.$raise(b("RangeError"),"cannot get the last element of endless arithmetic sequence"),a=_(t.$end(),_(t.$end(),t.$begin())["$%"](t.$step())),r(t["$_lesser_than_end?"](a))||(a=_(a,t.$step())),!r(e))return r(t["$_greater_than_begin?"](a))?a:g;for(i=[];r(r(n=t["$_greater_than_begin?"](a))?o(e,0):n);)i["$<<"](a),a=_(a,t.$step()),e=_(e,1);return i.$reverse()}),-1),i(w,"$size",(function(){var e,t=this,n=g;return e=r(o(t.$step(),0))?1:-1,m(t["$_lesser_than_end?"](t.$begin()))?0:r([M["$-@"](),M]["$include?"](t.$step()))?1:r([d(M["$-@"](),e),g]["$include?"](t.$begin()))||r([d(M,e),g]["$include?"](t.$end()))?M:(n=_(t.$end(),_(t.$end(),t.$begin())["$%"](t.$step())),r(t["$_lesser_than_end?"](n))||(n=_(n,t.$step())),c(f(_(n,t.$begin()),t.$step()).$abs().$to_i(),1))})),i(w,"$==",(function(e){var t,n,a,s,i=this;return r(t=r(n=r(a=r(s=i.$class()["$=="](e.$class()))?i.$begin()["$=="](e.$begin()):s)?i.$end()["$=="](e.$end()):a)?i.$step()["$=="](e.$step()):n)?i["$exclude_end?"]()["$=="](e["$exclude_end?"]()):t})),i(w,"$hash",(function(){var e=this;return[U("ArithmeticSequence"),e.$begin(),e.$end(),e.$step(),e["$exclude_end?"]()].$hash()})),i(w,"$inspect",(function(){var e=this,t=g;return r(e.receiver_num)?(t=r(e.step_arg2)?"("+e.topfx+e.step_arg1.$inspect()+", "+e.bypfx+e.step_arg2.$inspect()+")":r(e.step_arg1)?"("+e.topfx+e.step_arg1.$inspect()+")":g,"("+e.receiver_num.$inspect()+"."+e.creation_method+t+")"):(t=r(e.skipped_arg)?g:"("+e.step+")","(("+e.range.$inspect()+")."+e.creation_method+t+")")})),h(w,"===","=="),h(w,"eql?","==")}(w,w,k)}(0,0,[])},Opal.modules["corelib/enumerator/chain"]=function(e){var t=e.deny_frozen_access,r=e.klass,n=e.slice,a=e.def,s=e.send,i=e.to_a,o=e.truthy,l=e.rb_plus,$=e.thrower,u=e.nil,c=e.$$$;return e.add_stubs("to_enum,size,each,<<,to_proc,include?,+,reverse_each,respond_to?,rewind,inspect"),function(e,_){var p=r("::",null,"Enumerator");return function(e,_){var p=r(e,_,"Chain"),m=p.$$prototype;return m.enums=m.iterated=u,a(p,"$initialize",(function(e){var r,a=this;return r=n(arguments),t(a),a.enums=r,a.iterated=[],a.object=a}),-1),a(p,"$each",(function e(t){var r,a,o=e.$$p||u,l=this;return e.$$p=null,r=n(arguments),a=r,o===u?s(l,"to_enum",["each"].concat(i(a)),(function e(){return(null==e.$$s?this:e.$$s).$size()}),{$$s:l}):(s(l.enums,"each",[],(function e(t){var r=null==e.$$s?this:e.$$s;return null==r.iterated&&(r.iterated=u),null==t&&(t=u),r.iterated["$<<"](t),s(t,"each",i(a),o.$to_proc())}),{$$s:l}),l)}),-1),a(p,"$size",(function(e){try{var t,r,a=$("return"),_=u;return t=n(arguments),r=t,_=0,s(this.enums,"each",[],(function e(t){var n;return null==t&&(t=u),n=s(t,"size",i(r)),o([u,c(c("Float"),"INFINITY")]["$include?"](n))&&a.$throw(n,e.$$is_lambda),_=l(_,n)}),{$$ret:a}),_}catch(e){if(e===a)return e.$v;throw e}finally{a.is_orphan=!0}}),-1),a(p,"$rewind",(function(){var e=this;return s(e.iterated,"reverse_each",[],(function(e){return null==e&&(e=u),o(e["$respond_to?"]("rewind"))?e.$rewind():u})),e.iterated=[],e})),a(p,"$inspect",(function(){return"#<Enumerator::Chain: "+this.enums.$inspect()+">"}))}(p,p)}()},Opal.modules["corelib/enumerator/generator"]=function(e){var t=e.deny_frozen_access,r=e.klass,n=e.truthy,a=e.Kernel,s=e.def,i=e.slice,o=e.send,l=[],$=e.nil,u=e.$$$;return e.add_stubs("include,raise,new,to_proc"),function(l,c,_){var p=[r(l,null,"Enumerator")].concat(_);return function(l,c,_){var p=r(l,null,"Generator"),m=[p].concat(_),d=e.$r(m);return p.$$prototype.block=$,p.$include(u("Enumerable")),s(p,"$initialize",(function e(){var r=e.$$p||$;return e.$$p=null,t(this),n(r)||a.$raise(u("LocalJumpError"),"no block given"),this.block=r})),s(p,"$each",(function t(r){var n,a,s=t.$$p||$;t.$$p=null,n=i(arguments),a=o(d("Yielder"),"new",[],s.$to_proc());try{n.unshift(a),e.yieldX(this.block,n)}catch(e){if(e&&"breaker"==e.$thrower_type)return e.$v;throw e}return this}),-1)}(p[0],0,p)}(l[0],0,l)},Opal.modules["corelib/enumerator/lazy"]=function(e){var t=e.truthy,r=e.coerce_to,n=e.yield1,a=e.yieldX,s=e.deny_frozen_access,i=e.klass,o=e.slice,l=e.send2,$=e.find_super,u=e.to_a,c=e.defs,_=e.Kernel,p=e.send,m=e.def,d=e.return_self,f=e.Opal,h=e.rb_lt,g=e.eqeqeq,b=e.rb_plus,v=e.alias,y=e.nil,x=e.$$$;return e.add_stubs("raise,each,new,enumerator_size,yield,respond_to?,try_convert,<,===,+,for,class,to_proc,destructure,inspect,to_a,find_all,collect_concat,collect,enum_for"),function(w,k,U){var E=i("::",null,"Enumerator"),M=[E].concat(U);return function(w,k,U){var E=i(w,k,"Lazy"),M=[E].concat(U),q=e.$r(M);return E.$$prototype.enumerator=y,i(E,x("Exception"),"StopLazyError"),c(E,"$for",(function e(t,r){var n,a=e.$$p||y,s=y;return e.$$p=null,n=o(arguments,1),(s=l(this,$(this,"for",e,!1,!0),"for",[t].concat(u(n)),a)).enumerator=t,s}),-2),m(E,"$initialize",(function t(r,n){var i=t.$$p||y,c=this;return t.$$p=null,null==n&&(n=y),s(c),i===y&&_.$raise(x("ArgumentError"),"tried to call lazy new without a block"),c.enumerator=r,l(c,$(c,"initialize",t,!1,!0),"initialize",[n],(function(t,n){var s;null==t&&(t=y),s=o(arguments,1);try{return p(r,"each",u(s),(function(e){var r;(r=o(arguments)).unshift(t),a(i,r)}),-1)}catch(t){if(!e.rescue(t,[q("StopLazyError")]))throw t;try{return y}finally{e.pop_exception(t)}}}),-2)}),-2),m(E,"$lazy",d),m(E,"$collect",(function e(){var r=e.$$p||y;return e.$$p=null,t(r)||_.$raise(x("ArgumentError"),"tried to call lazy map without a block"),p(q("Lazy"),"new",[this,this.$enumerator_size()],(function(e,t){var n;null==e&&(e=y),n=o(arguments,1);var s=a(r,n);e.$yield(s)}),-2)})),m(E,"$collect_concat",(function e(){var r=e.$$p||y;return e.$$p=null,t(r)||_.$raise(x("ArgumentError"),"tried to call lazy map without a block"),p(q("Lazy"),"new",[this,y],(function(e,t){var n;null==e&&(e=y),n=o(arguments,1);var s=a(r,n);s["$respond_to?"]("force")&&s["$respond_to?"]("each")?p(s,"each",[],(function(t){return null==t&&(t=y),e.$yield(t)})):f.$try_convert(s,x("Array"),"to_ary")===y?e.$yield(s):p(s,"each",[],(function(t){return null==t&&(t=y),e.$yield(t)}))}),-2)})),m(E,"$drop",(function(e){var n,a,s=y;return e=r(e,x("Integer"),"to_int"),t(h(e,0))&&_.$raise(x("ArgumentError"),"attempt to drop negative size"),n=this.$enumerator_size(),a=g(x("Integer"),n)&&t(h(e,n))?e:n,s=0,p(q("Lazy"),"new",[this,a],(function(r,n){var a;return null==r&&(r=y),a=o(arguments,1),t(h(s,e))?s=b(s,1):p(r,"yield",u(a))}),-2)})),m(E,"$drop_while",(function e(){var r=e.$$p||y,n=y;return e.$$p=null,t(r)||_.$raise(x("ArgumentError"),"tried to call lazy drop_while without a block"),n=!0,p(q("Lazy"),"new",[this,y],(function(e,s){var i;if(null==e&&(e=y),i=o(arguments,1),!t(n))return p(e,"yield",u(i));var l=a(r,i);t(l)||(n=!1,p(e,"yield",u(i)))}),-2)})),m(E,"$enum_for",(function e(t,r){var n,a,s,i=e.$$p||y,l=this;return e.$$p=null,(n=o(arguments)).length>0&&(a=n.shift()),null==a&&(a="each"),s=n,p(l.$class(),"for",[l,a].concat(u(s)),i.$to_proc())}),-1),m(E,"$find_all",(function e(){var r=e.$$p||y;return e.$$p=null,t(r)||_.$raise(x("ArgumentError"),"tried to call lazy select without a block"),p(q("Lazy"),"new",[this,y],(function(e,n){var s,i;null==e&&(e=y),s=o(arguments,1);var l=a(r,i=s);t(l)&&p(e,"yield",u(i))}),-2)})),m(E,"$grep",(function e(r){var a=e.$$p||y;return e.$$p=null,t(a)?p(q("Lazy"),"new",[this,y],(function(e,s){var i;null==e&&(e=y),i=o(arguments,1);var l=f.$destructure(i),$=r["$==="](l);t($)&&($=n(a,l),e.$yield(n(a,l)))}),-2):p(q("Lazy"),"new",[this,y],(function(e,n){var a;null==e&&(e=y),a=o(arguments,1);var s=f.$destructure(a),i=r["$==="](s);t(i)&&e.$yield(s)}),-2)})),m(E,"$reject",(function e(){var r=e.$$p||y;return e.$$p=null,t(r)||_.$raise(x("ArgumentError"),"tried to call lazy reject without a block"),p(q("Lazy"),"new",[this,y],(function(e,n){var s,i;null==e&&(e=y),s=o(arguments,1);var l=a(r,i=s);t(l)||p(e,"yield",u(i))}),-2)})),m(E,"$take",(function(e){var n,a,s=y;return e=r(e,x("Integer"),"to_int"),t(h(e,0))&&_.$raise(x("ArgumentError"),"attempt to take negative size"),n=this.$enumerator_size(),a=g(x("Integer"),n)&&t(h(e,n))?e:n,s=0,p(q("Lazy"),"new",[this,a],(function(r,n){var a;return null==r&&(r=y),a=o(arguments,1),t(h(s,e))?(p(r,"yield",u(a)),s=b(s,1)):_.$raise(q("StopLazyError"))}),-2)})),m(E,"$take_while",(function e(){var r=e.$$p||y;return e.$$p=null,t(r)||_.$raise(x("ArgumentError"),"tried to call lazy take_while without a block"),p(q("Lazy"),"new",[this,y],(function(e,n){var s,i;null==e&&(e=y),s=o(arguments,1);var l=a(r,i=s);t(l)?p(e,"yield",u(i)):_.$raise(q("StopLazyError"))}),-2)})),m(E,"$inspect",(function(){return"#<"+this.$class()+": "+this.enumerator.$inspect()+">"})),v(E,"force","to_a"),v(E,"filter","find_all"),v(E,"flat_map","collect_concat"),v(E,"map","collect"),v(E,"select","find_all"),v(E,"to_enum","enum_for")}(E,E,M)}(0,0,[])},Opal.modules["corelib/enumerator/yielder"]=function(e){var t,r=e.klass,n=e.def,a=e.slice,s=e.send,i=e.to_a,o=[],l=e.nil;return e.add_stubs("yield,proc"),t=o,function(t,o){var $=r(t,null,"Yielder");return $.$$prototype.block=l,n($,"$initialize",(function e(){var t=e.$$p||l;return e.$$p=null,this.block=t,this})),n($,"$yield",(function(t){var r;r=a(arguments);var n=e.yieldX(this.block,r);if(n&&"break"==n.$thrower_type)throw n;return n}),-1),n($,"$<<",(function(e){return this.$yield(e),this})),n($,"$to_proc",(function(){return s(this,"proc",[],(function e(t){var r,n=null==e.$$s?this:e.$$s;return r=a(arguments),s(n,"yield",i(r))}),{$$arity:-1,$$s:this})}))}([r(o[0],null,"Enumerator")].concat(t)[0])},Opal.modules["corelib/enumerator"]=function(e){var t=e.slice,r=e.coerce_to,n=e.deny_frozen_access,a=e.klass,s=e.defs,i=e.truthy,o=e.send,l=e.not,$=e.def,u=e.rb_plus,c=e.to_a,_=e.Opal,p=e.send2,m=e.find_super,d=e.rb_ge,f=e.Kernel,h=e.rb_le,g=e.alias,b=e.top,v=e.nil,y=e.$$$;return e.add_stubs("require,include,allocate,new,to_proc,!,respond_to?,empty?,nil?,+,class,__send__,call,enum_for,size,destructure,map,>=,length,raise,[],peek_values,<=,next_values,inspect,any?,each_with_object,autoload"),b.$require("corelib/enumerable"),function(b,x,w){var k=a("::",null,"Enumerator"),U=[k].concat(w),E=e.$r(U),M=k.$$prototype;return M.size=M.args=M.object=M.method=M.values=M.cursor=v,k.$include(y("Enumerable")),k.$$prototype.$$is_enumerator=!0,s(k,"$for",(function e(r,n,a){var s,i,o,l=e.$$p||v;e.$$p=null,(s=t(arguments,1)).length>0&&(i=s.shift()),null==i&&(i="each"),o=s;var $=this.$allocate();return $.object=r,$.size=l,$.method=i,$.args=o,$.cursor=0,$}),-2),$(k,"$initialize",(function e(a){var s=e.$$p||v,$=this;return e.$$p=null,t(arguments),n($),$.cursor=0,i(s)?($.object=o(E("Generator"),"new",[],s.$to_proc()),$.method="each",$.args=[],$.size=arguments[0]||v,i($.size)&&l($.size["$respond_to?"]("call"))?$.size=r($.size,y("Integer"),"to_int"):v):($.object=arguments[0],$.method=arguments[1]||"each",$.args=t(arguments,2),$.size=v)}),-1),$(k,"$each",(function e(r){var n,a=e.$$p||v,s=this;return e.$$p=null,n=t(arguments),i(a["$nil?"]())&&i(n["$empty?"]())?s:(n=u(s.args,n),i(a["$nil?"]())?o(s.$class(),"new",[s.object,s.method].concat(c(n))):o(s.object,"__send__",[s.method].concat(c(n)),a.$to_proc()))}),-1),$(k,"$size",(function(){var e=this;return i(e.size["$respond_to?"]("call"))?o(e.size,"call",c(e.args)):e.size})),$(k,"$with_index",(function e(t){var n=e.$$p||v,a=this;if(e.$$p=null,null==t&&(t=0),t=i(t)?r(t,y("Integer"),"to_int"):0,!i(n))return o(a,"enum_for",["with_index",t],(function e(){return(null==e.$$s?this:e.$$s).$size()}),{$$s:a});var s=t;return a.$each.$$p=function(){var e=_.$destructure(arguments),t=n(e,s);return s++,t},a.$each()}),-1),$(k,"$each_with_index",(function e(){var t=e.$$p||v,r=this;return e.$$p=null,t===v?o(r,"enum_for",["each_with_index"],(function e(){return(null==e.$$s?this:e.$$s).$size()}),{$$s:r}):(p(r,m(r,"each_with_index",e,!1,!0),"each_with_index",[],t),r.object)})),$(k,"$rewind",(function(){return this.cursor=0,this})),$(k,"$peek_values",(function(){var e,r=this;return r.values=i(e=r.values)?e:o(r,"map",[],(function(e){return t(arguments)}),-1),i(d(r.cursor,r.values.$length()))&&f.$raise(y("StopIteration"),"iteration reached an end"),r.values["$[]"](r.cursor)})),$(k,"$peek",(function(){var e=v;return e=this.$peek_values(),i(h(e.$length(),1))?e["$[]"](0):e})),$(k,"$next_values",(function(){var e,t=this;return e=t.$peek_values(),t.cursor=u(t.cursor,1),e})),$(k,"$next",(function(){var e=v;return e=this.$next_values(),i(h(e.$length(),1))?e["$[]"](0):e})),$(k,"$feed",(function(e){return this.$raise(E("NotImplementedError"),"Opal doesn't support Enumerator#feed")})),$(k,"$+",(function(e){return y(y("Enumerator"),"Chain").$new(this,e)})),$(k,"$inspect",(function(){var e=this,t=v;return t="#<"+e.$class()+": "+e.object.$inspect()+":"+e.method,i(e.args["$any?"]())&&(t=u(t,"("+e.args.$inspect()["$[]"](y("Range").$new(1,-2))+")")),u(t,">")})),g(k,"with_object","each_with_object"),k.$autoload("ArithmeticSequence","corelib/enumerator/arithmetic_sequence"),k.$autoload("Chain","corelib/enumerator/chain"),k.$autoload("Generator","corelib/enumerator/generator"),k.$autoload("Lazy","corelib/enumerator/lazy"),k.$autoload("Yielder","corelib/enumerator/yielder")}(0,0,[])},Opal.modules["corelib/numeric"]=function(e){var t=e.klass,r=e.truthy,n=e.Kernel,a=e.def,s=e.to_ary,i=e.return_self,o=e.rb_minus,l=e.rb_times,$=e.rb_lt,u=e.eqeq,c=e.rb_divide,_=e.return_val,p=e.Opal,m=e.slice,d=e.extract_kwargs,f=e.ensure_kwargs,h=e.hash_get,g=e.not,b=e.send,v=e.rb_ge,y=e.rb_le,x=e.rb_plus,w=e.rb_gt,k=e.alias,U=e.top,E=e.nil,M=e.$$$;return e.add_stubs("require,include,instance_of?,class,Float,respond_to?,coerce,__send__,raise,equal?,-,*,div,<,-@,ceil,to_f,denominator,to_r,==,floor,/,%,Complex,zero?,numerator,abs,arg,coerce_to!,round,<=>,compare,is_a?,!,new,enum_for,to_proc,negative?,>=,<=,+,to_i,truncate,>,angle,conj,imag,rect"),U.$require("corelib/comparable"),function(U,q){var S=t("::",null,"Numeric");return S.$include(M("Comparable")),a(S,"$coerce",(function(e){var t=this;return r(e["$instance_of?"](t.$class()))?[e,t]:[n.$Float(e),n.$Float(t)]})),a(S,"$__coerced__",(function(e,t){var a,i,o=E,l=E;if(r(t["$respond_to?"]("coerce")))return i=t.$coerce(this),o=null==(a=s(i))[0]?E:a[0],l=null==a[1]?E:a[1],o.$__send__(e,l);switch(e.valueOf()){case"+":case"-":case"*":case"/":case"%":case"&":case"|":case"^":case"**":return n.$raise(M("TypeError"),t.$class()+" can't be coerced into Numeric");case">":case">=":case"<":case"<=":case"<=>":return n.$raise(M("ArgumentError"),"comparison of "+this.$class()+" with "+t.$class()+" failed");default:return E}})),a(S,"$<=>",(function(e){return r(this["$equal?"](e))?0:E})),a(S,"$+@",i),a(S,"$-@",(function(){return o(0,this)})),a(S,"$%",(function(e){return o(this,l(e,this.$div(e)))})),a(S,"$abs",(function(){var e=this;return r($(e,0))?e["$-@"]():e})),a(S,"$abs2",(function(){return l(this,this)})),a(S,"$angle",(function(){return r($(this,0))?M(M("Math"),"PI"):0})),a(S,"$ceil",(function(e){return null==e&&(e=0),this.$to_f().$ceil(e)}),-1),a(S,"$conj",i),a(S,"$denominator",(function(){return this.$to_r().$denominator()})),a(S,"$div",(function(e){return u(e,0)&&n.$raise(M("ZeroDivisionError"),"divided by o"),c(this,e).$floor()})),a(S,"$divmod",(function(e){return[this.$div(e),this["$%"](e)]})),a(S,"$fdiv",(function(e){return c(this.$to_f(),e)})),a(S,"$floor",(function(e){return null==e&&(e=0),this.$to_f().$floor(e)}),-1),a(S,"$i",(function(){return n.$Complex(0,this)})),a(S,"$imag",_(0)),a(S,"$integer?",_(!1)),a(S,"$nonzero?",(function(){return r(this["$zero?"]())?E:this})),a(S,"$numerator",(function(){return this.$to_r().$numerator()})),a(S,"$polar",(function(){return[this.$abs(),this.$arg()]})),a(S,"$quo",(function(e){return c(p["$coerce_to!"](this,M("Rational"),"to_r"),e)})),a(S,"$real",i),a(S,"$real?",_(!0)),a(S,"$rect",(function(){return[this,0]})),a(S,"$round",(function(e){return this.$to_f().$round(e)}),-1),a(S,"$step",(function t(a,s,i){var o,l,$,u,c,_,w=t.$$p||E,k=this,U=E;function q(){u===E&&n.$raise(M("TypeError"),"step must be numeric"),null!=u&&u["$=="](0)&&n.$raise(M("ArgumentError"),"step can't be 0"),u!==E&&null!=u||(u=1);var e=u["$<=>"](0);e===E&&n.$raise(M("ArgumentError"),"0 can't be coerced into "+u.$class()),$!==E&&null!=$||($=e>0?M(M("Float"),"INFINITY"):M(M("Float"),"INFINITY")["$-@"]()),p.$compare(k,$)}function S(){if(u>0&&k>$||u<0&&k<$)return 0;if(u===1/0||u===-1/0)return 1;var e=Math.abs,t=Math.floor,r=(e(k)+e($)+e($-k))/e(u)*M(M("Float"),"EPSILON");return r===1/0||r===-1/0?0:(r>.5&&(r=.5),t(($-k)/u+r)+1)}if(t.$$p=null,o=m(arguments),l=d(o),l=f(l),o.length>0&&($=o.shift()),o.length>0&&(u=o.shift()),c=h(l,"to"),_=h(l,"by"),void 0!==$&&void 0!==c&&n.$raise(M("ArgumentError"),"to is given twice"),void 0!==u&&void 0!==_&&n.$raise(M("ArgumentError"),"step is given twice"),void 0!==c&&($=c),void 0!==_&&(u=_),void 0===$&&($=E),w===E)return(g($)||r($["$is_a?"](M("Numeric"))))&&(g(u)||r(u["$is_a?"](M("Numeric"))))?M(M("Enumerator"),"ArithmeticSequence").$new([$,u,r(c)?"to: ":E,r(_)?"by: ":E],k):b(k,"enum_for",["step",$,u],function(){if(q(),0===u)return 1/0;if(u%1!=0)return S();if(u>0&&k>$||u<0&&k<$)return 0;var e=Math.ceil,t=Math.abs;return e((t(k-$)+1)/t(u))}.$to_proc());q();var O=u["$negative?"](),A=u["$=="](0)||$===1/0&&!O||$===-1/0&&O;if(k.$$is_number&&u.$$is_number&&$.$$is_number){if(k%1!=0||!A&&$%1!=0||u%1!=0){var T=k.$to_f().valueOf();u=u.$to_f().valueOf(),$=$.$to_f().valueOf();var N=S();if(isFinite(u))if(0===u)for(;;)w(T);else for(var z=0;z<N;z++){var R=z*u+k;(u>=0?$<R:$>R)&&(R=$),w(R)}else 0!==N&&w(T);return k}var I=k;if(A)for(;;I+=u)w(I);else if(O)for(;I>=$;I+=u)w(I);else for(;I<=$;I+=u)w(I);return k}for(U=k;r(O?v(U,$):y(U,$));)e.yield1(w,U),U=x(U,u)}),-1),a(S,"$to_c",(function(){return n.$Complex(this,0)})),a(S,"$to_int",(function(){return this.$to_i()})),a(S,"$truncate",(function(e){return null==e&&(e=0),this.$to_f().$truncate(e)}),-1),a(S,"$zero?",(function(){return this["$=="](0)})),a(S,"$positive?",(function(){return w(this,0)})),a(S,"$negative?",(function(){return $(this,0)})),a(S,"$dup",i),a(S,"$clone",(function(e){return e=f(e),null==h(e,"freeze")&&!0,this}),-1),a(S,"$finite?",_(!0)),a(S,"$infinite?",_(E)),k(S,"arg","angle"),k(S,"conjugate","conj"),k(S,"imaginary","imag"),k(S,"magnitude","abs"),k(S,"modulo","%"),k(S,"phase","arg"),k(S,"rectangular","rect")}()},Opal.modules["corelib/array"]=function(e){var t=e.truthy,r=e.falsy,n=e.yield1,a=e.hash_get,s=e.hash_put,i=e.hash_delete,o=e.coerce_to,l=e.respond_to,$=e.deny_frozen_access,u=e.freeze,c=e.opal32_init,_=e.opal32_add,p=e.klass,m=e.slice,d=e.defs,f=e.Kernel,h=e.def,g=e.Opal,b=e.eqeqeq,v=e.send2,y=e.find_super,x=e.send,w=e.rb_gt,k=e.rb_times,U=e.eqeq,E=e.rb_minus,M=e.to_a,q=e.to_ary,S=e.gvars,O=e.rb_ge,A=e.assign_ivar,T=e.rb_lt,N=e.return_self,z=e.neqeq,R=e.alias,I=e.top,C=e.nil,P=e.$$$;return e.add_stubs("require,include,to_a,warn,raise,replace,respond_to?,to_ary,coerce_to?,join,to_str,===,<=>,==,object_id,inspect,enum_for,class,bsearch_index,to_proc,nil?,coerce_to!,>,*,enumerator_size,empty?,size,map,equal?,dup,each,reduce,-,[],dig,eql?,length,exclude_end?,flatten,frozen?,__id__,sort_by,&,to_s,new,item,max,min,!,>=,**,delete_if,rotate,rand,at,keep_if,shuffle!,<,sort,!=,times,[]=,<<,uniq,|,values,is_a?,end,begin,upto,reject,push,select,select!,collect,collect!,unshift,pristine,singleton_class"),I.$require("corelib/enumerable"),I.$require("corelib/numeric"),function(I,L,F){var D,j=p("::",Array,"Array"),B=[j].concat(F),G=e.$r(B);function H(e,t,r){for(var a,s=null,i=new Array(e.length),o=0,l=0;o<e.length;o++){if(!s)try{a=n(r,e[o])}catch(e){s=e}(s||t(a))&&(i[l]=e[o],l+=1)}if(l!==o&&(e.splice.apply(e,[0,i.length].concat(i)),e.splice(l,i.length)),s)throw s}function Y(e){return e.$$is_array||(e=o(e,P("Array"),"to_ary")),e.$to_a()}function V(e,t){var r=t.length;if(r>6&&r<32767)e.push.apply(e,t);else for(var n=0;n<r;n++)e.push(t[n])}function X(t,r){var n,a,s,i=t.length;return n=r.excl,a=r.begin===C?0:o(r.begin,e.Integer,"to_int"),s=r.end===C?-1:o(r.end,e.Integer,"to_int"),a<0&&(a+=i)<0?C:(r.excl_rev&&r.begin!==C&&(a+=1),a>i?C:s<0&&(s+=i)<0?[]:(n&&r.end!==C||(s+=1),t.slice(a,s)))}function K(e,t){return e===t||0===t?1:t>0&&e>t?K(e-1,t-1)+K(e-1,t):0}j.$include(P("Enumerable")),e.prop(j.$$prototype,"$$is_array",!0),d(j,"$[]",(function(t){var r,n,a;return r=m(arguments),n=r,(a=this).$$name===e.Array?n:a.$allocate().$replace(n.$to_a())}),-1),h(j,"$initialize",(function e(t,r){var n,a,s=e.$$p||C,i=this;if(e.$$p=null,null==t&&(t=C),null==r&&(r=C),$(i),r!==C&&s!==C&&f.$warn("warning: block supersedes default value argument"),t>P(P("Integer"),"MAX")&&f.$raise(P("ArgumentError"),"array size too big"),arguments.length>2&&f.$raise(P("ArgumentError"),"wrong number of arguments ("+arguments.length+" for 0..2)"),0===arguments.length)return i.length>0&&i.splice(0,i.length),i;if(1===arguments.length){if(t.$$is_array)return i.$replace(t.$to_a()),i;if(t["$respond_to?"]("to_ary"))return i.$replace(t.$to_ary()),i}if((t=o(t,P("Integer"),"to_int"))<0&&f.$raise(P("ArgumentError"),"negative array size"),i.splice(0,i.length),s===C)for(n=0;n<t;n++)i.push(r);else for(n=0;n<t;n++)a=s(n),i[n]=a;return i}),-1),d(j,"$try_convert",(function(e){return g["$coerce_to?"](e,P("Array"),"to_ary")})),h(j,"$&",(function(e){var t=this;if(e=Y(e),0===t.length||0===e.length)return[];var r,n,a,o=[],l=new Map;for(r=0,n=e.length;r<n;r++)s(l,e[r],!0);for(r=0,n=t.length;r<n;r++)a=t[r],void 0!==i(l,a)&&o.push(a);return o})),h(j,"$|",(function(e){e=Y(e);var t,r,n=new Map;for(t=0,r=this.length;t<r;t++)s(n,this[t],!0);for(t=0,r=e.length;t<r;t++)s(n,e[t],!0);return n.$keys()})),h(j,"$*",(function(e){if(t(e["$respond_to?"]("to_str")))return this.$join(e.$to_str());e=o(e,P("Integer"),"to_int"),t(e<0)&&f.$raise(P("ArgumentError"),"negative argument");for(var r=[],n=this.$to_a(),a=0;a<e;a++)r=r.concat(n);return r})),h(j,"$+",(function(e){return e=Y(e),this.concat(e)})),h(j,"$-",(function(e){var r=this;if(e=Y(e),t(0===r.length))return[];if(t(0===e.length))return r.slice();var n,i,o,l=[],$=new Map;for(n=0,i=e.length;n<i;n++)s($,e[n],!0);for(n=0,i=r.length;n<i;n++)o=r[n],void 0===a($,o)&&l.push(o);return l})),h(j,"$<<",(function(e){var t=this;return $(t),t.push(e),t})),h(j,"$<=>",(function(e){var r=this;if(b(P("Array"),e))e=e.$to_a();else{if(!t(e["$respond_to?"]("to_ary")))return C;e=e.$to_ary().$to_a()}if(r===e)return 0;for(var n=Math.min(r.length,e.length),a=0;a<n;a++){var s=r[a]["$<=>"](e[a]);if(0!==s)return s}return r.length["$<=>"](e.length)})),h(j,"$==",(function(e){var t={};return function e(r,n){var a,s,i,o;if(r===n)return!0;if(!n.$$is_array)return!!l(n,"$to_ary")&&n["$=="](r);if(r.$$constructor!==Array&&(r=r.$to_a()),n.$$constructor!==Array&&(n=n.$to_a()),r.length!==n.length)return!1;for(t[r.$object_id()]=!0,a=0,s=r.length;a<s;a++)if(i=r[a],o=n[a],i.$$is_array){if(o.$$is_array&&o.length!==i.length)return!1;if(!t.hasOwnProperty(i.$object_id())&&!e(i,o))return!1}else if(!i["$=="](o))return!1;return!0}(this,e)})),h(j,"$[]",(function(t,r){var n=this;return t.$$is_range?X(n,t):t.$$is_arithmetic_seq?function(e,t){var r,n=[],a=0;for(r=t.step<0?X(e,{begin:t.range.end,end:t.range.begin,excl:!1,excl_rev:t.range.excl}).$reverse():X(e,t.range);a<r.length;)n.push(r[a]),a+=Math.abs(t.step);return n}(n,t):function(t,r,n){var a=t.length;return(r=o(r,e.Integer,"to_int"))<0&&(r+=a)<0?C:void 0===n?r>=a||r<0?C:t[r]:(n=o(n,e.Integer,"to_int"))<0||r>a||r<0?C:t.slice(r,r+n)}(n,t,r)}),-2),h(j,"$[]=",(function(t,r,n){var a=this,s=C,i=C;$(a),s=C;var l,u,c=a.length;if(t.$$is_range){s=r.$$is_array?r.$to_a():r["$respond_to?"]("to_ary")?r.$to_ary().$to_a():[r];var _=t.excl,p=t.begin===C?0:o(t.begin,e.Integer,"to_int"),m=t.end===C?-1:o(t.end,e.Integer,"to_int");if(p<0&&(p+=c)<0&&f.$raise(P("RangeError"),t.$inspect()+" out of range"),m<0&&(m+=c),_&&t.end!==C||(m+=1),p>c)for(l=c;l<p;l++)a[l]=C;return m<0?a.splice.apply(a,[p,0].concat(s)):a.splice.apply(a,[p,m-p].concat(s)),r}if(void 0===n?i=1:(i=r,s=(r=n).$$is_array?r.$to_a():r["$respond_to?"]("to_ary")?r.$to_ary().$to_a():[r]),t=o(t,P("Integer"),"to_int"),i=o(i,P("Integer"),"to_int"),t<0&&(u=t,(t+=c)<0&&f.$raise(P("IndexError"),"index "+u+" too small for array; minimum "+-a.length)),i<0&&f.$raise(P("IndexError"),"negative length ("+i+")"),t>c)for(l=c;l<t;l++)a[l]=C;return void 0===n?a[t]=r:a.splice.apply(a,[t,i].concat(s)),r}),-3),h(j,"$any?",(function e(t){var r=e.$$p||C,n=this;return e.$$p=null,0!==n.length&&v(n,y(n,"any?",e,!1,!0),"any?",[t],r)}),-1),h(j,"$assoc",(function(e){for(var t,r=0,n=this.length;r<n;r++)if((t=this[r]).length&&t[0]["$=="](e))return t;return C})),h(j,"$at",(function(e){var t=this;return(e=o(e,P("Integer"),"to_int"))<0&&(e+=t.length),e<0||e>=t.length?C:t[e]})),h(j,"$bsearch_index",(function e(){var t=e.$$p||C,r=this;if(e.$$p=null,t===C)return r.$enum_for("bsearch_index");for(var a,s,i,o=0,l=r.length,$=!1,u=C;o<l;){if(s=r[a=o+Math.floor((l-o)/2)],!0===(i=n(t,s)))u=a,$=!0;else if(!1===i||i===C)$=!1;else if(i.$$is_number){if(0===i)return a;$=i<0}else f.$raise(P("TypeError"),"wrong argument type "+i.$class()+" (must be numeric, true, false or nil)");$?l=a:o=a+1}return u})),h(j,"$bsearch",(function e(){var t,r=e.$$p||C,n=this;return e.$$p=null,r===C?n.$enum_for("bsearch"):null!=(t=x(n,"bsearch_index",[],r.$to_proc()))&&t.$$is_number?n[t]:t})),h(j,"$cycle",(function e(r){var a,s,i=e.$$p||C,o=this;if(e.$$p=null,null==r&&(r=C),i===C)return x(o,"enum_for",["cycle",r],(function e(){var n=null==e.$$s?this:e.$$s;return t(r["$nil?"]())?P(P("Float"),"INFINITY"):(r=g["$coerce_to!"](r,P("Integer"),"to_int"),t(w(r,0))?k(n.$enumerator_size(),r):0)}),{$$s:o});if(t(o["$empty?"]())||U(r,0))return C;if(r===C)for(;;)for(a=0,s=o.length;a<s;a++)n(i,o[a]);else{if((r=g["$coerce_to!"](r,P("Integer"),"to_int"))<=0)return o;for(;r>0;){for(a=0,s=o.length;a<s;a++)n(i,o[a]);r--}}return o}),-1),h(j,"$clear",(function(){var e=this;return $(e),e.splice(0,e.length),e})),h(j,"$count",(function e(r){var n=e.$$p||C,a=this;return e.$$p=null,t(void 0!==r)||t(n)?v(a,y(a,"count",e,!1,!0),"count",[r],n):a.$size()}),-1),h(j,"$initialize_copy",(function(e){return this.$replace(e)})),h(j,"$collect",(function e(){var t=e.$$p||C,r=this;if(e.$$p=null,t===C)return x(r,"enum_for",["collect"],(function e(){return(null==e.$$s?this:e.$$s).$size()}),{$$s:r});for(var a=[],s=0;s<r.length;s++){var i=n(t,r[s]);a[s]=i}return a})),h(j,"$collect!",(function e(){var t=e.$$p||C,r=this;if(e.$$p=null,t===C)return x(r,"enum_for",["collect!"],(function e(){return(null==e.$$s?this:e.$$s).$size()}),{$$s:r});$(r);for(var a=0;a<r.length;a++){var s=n(t,r[a]);r[a]=s}return r})),h(j,"$combination",(function t(r){var n,a,s,i,o,l,$,u,c=t.$$p||C,_=this;if(t.$$p=null,n=g["$coerce_to!"](r,P("Integer"),"to_int"),c===C)return x(_,"enum_for",["combination",n],(function e(){return K((null==e.$$s?this:e.$$s).length,n)}),{$$s:_});if(0===n)e.yield1(c,[]);else if(1===n)for(a=0,s=_.length;a<s;a++)e.yield1(c,[_[a]]);else if(n===_.length)e.yield1(c,_.slice());else if(n>=0&&n<_.length){for(i=[],a=0;a<=n+1;a++)i.push(0);for(o=[],l=0,$=!1,i[0]=-1;!$;){for(o[l]=_[i[l+1]];l<n-1;)u=i[++l+1]=i[l]+1,o[l]=_[u];e.yield1(c,o.slice()),l++;do{$=0===l,i[l]++,l--}while(i[l+1]+n===_.length+l+1)}}return _})),h(j,"$repeated_combination",(function t(r){var n,a=t.$$p||C,s=this;if(t.$$p=null,n=g["$coerce_to!"](r,P("Integer"),"to_int"),a===C)return x(s,"enum_for",["repeated_combination",n],(function e(){return K((null==e.$$s?this:e.$$s).length+n-1,n)}),{$$s:s});return n>=0&&function t(r,n,s,i){if(s.length!=r)for(var o=n;o<i.length;o++)s.push(i[o]),t(r,o,s,i),s.pop();else{var l=s.slice();e.yield1(a,l)}}(n,0,[],s),s})),h(j,"$compact",(function(){for(var e,t=[],r=0,n=this.length;r<n;r++)(e=this[r])!==C&&t.push(e);return t})),h(j,"$compact!",(function(){var e=this;$(e);for(var t=e.length,r=0,n=e.length;r<n;r++)e[r]===C&&(e.splice(r,1),n--,r--);return e.length===t?C:e})),h(j,"$concat",(function(e){var r,n=this;return r=m(arguments),$(n),r=x(r,"map",[],(function e(r){var n=null==e.$$s?this:e.$$s;return null==r&&(r=C),r=Y(r),t(r["$equal?"](n))&&(r=r.$dup()),r}),{$$s:n}),x(r,"each",[],(function e(t){var r=null==e.$$s?this:e.$$s;null==t&&(t=C);for(var n=0,a=t.length;n<a;n++)r.push(t[n])}),{$$s:n}),n}),-1),h(j,"$delete",(function t(r){var n=t.$$p||C,a=this;t.$$p=null;for(var s=a.length,i=0,o=s;i<o;i++)a[i]["$=="](r)&&($(a),a.splice(i,1),o--,i--);return a.length===s?n!==C?e.yieldX(n,[]):C:r})),h(j,"$delete_at",(function(e){var t=this;if($(t),(e=o(e,P("Integer"),"to_int"))<0&&(e+=t.length),e<0||e>=t.length)return C;var r=t[e];return t.splice(e,1),r})),h(j,"$delete_if",(function e(){var t=e.$$p||C,n=this;return e.$$p=null,t===C?x(n,"enum_for",["delete_if"],(function e(){return(null==e.$$s?this:e.$$s).$size()}),{$$s:n}):($(n),H(n,r,t),n)})),h(j,"$difference",(function(e){var t;return t=m(arguments),x(t,"reduce",[this.$to_a().$dup()],(function(e,t){return null==e&&(e=C),null==t&&(t=C),E(e,t)}))}),-1),h(j,"$dig",(function(e,r){var n,a=C;return n=m(arguments,1),(a=this["$[]"](e))===C||0===n.length?a:(t(a["$respond_to?"]("dig"))||f.$raise(P("TypeError"),a.$class()+" does not have #dig method"),x(a,"dig",M(n)))}),-2),h(j,"$drop",(function(e){return(e=o(e,P("Integer"),"to_int"))<0&&f.$raise(P("ArgumentError")),this.slice(e)})),h(j,"$dup",(function t(){var r=t.$$p||C,n=this;return t.$$p=null,n.$$class===e.Array&&n.$$class.$allocate.$$pristine&&n.$copy_instance_variables.$$pristine&&n.$initialize_dup.$$pristine?n.slice(0):v(n,y(n,"dup",t,!1,!0),"dup",[],r)})),h(j,"$each",(function e(){var t=e.$$p||C,r=this;if(e.$$p=null,t===C)return x(r,"enum_for",["each"],(function e(){return(null==e.$$s?this:e.$$s).$size()}),{$$s:r});for(var a=0;a<r.length;a++)n(t,r[a]);return r})),h(j,"$each_index",(function e(){var t=e.$$p||C,r=this;if(e.$$p=null,t===C)return x(r,"enum_for",["each_index"],(function e(){return(null==e.$$s?this:e.$$s).$size()}),{$$s:r});for(var a=0;a<r.length;a++)n(t,a);return r})),h(j,"$empty?",(function(){return 0===this.length})),h(j,"$eql?",(function(e){var t={};return function e(r,n){var a,s,i,o;if(!n.$$is_array)return!1;if(n=n.$to_a(),r.length!==n.length)return!1;for(t[r.$object_id()]=!0,a=0,s=r.length;a<s;a++)if(i=r[a],o=n[a],i.$$is_array){if(o.$$is_array&&o.length!==i.length)return!1;if(!t.hasOwnProperty(i.$object_id())&&!e(i,o))return!1}else if(!i["$eql?"](o))return!1;return!0}(this,e)})),h(j,"$fetch",(function e(t,r){var n=e.$$p||C,a=this;e.$$p=null;var s=t;return(t=o(t,P("Integer"),"to_int"))<0&&(t+=a.length),t>=0&&t<a.length?a[t]:(n!==C&&null!=r&&a.$warn("warning: block supersedes default value argument"),n!==C?n(s):null!=r?r:void(0===a.length?f.$raise(P("IndexError"),"index "+s+" outside of array bounds: 0...0"):f.$raise(P("IndexError"),"index "+s+" outside of array bounds: -"+a.length+"..."+a.length)))}),-2),h(j,"$fill",(function e(r){var n,a,s,i,l=e.$$p||C,u=this,c=C,_=C,p=C,d=C,h=C;if(e.$$p=null,n=m(arguments),$(u),t(l)?(t(n.length>2)&&f.$raise(P("ArgumentError"),"wrong number of arguments ("+n.$length()+" for 0..2)"),c=null==(a=q(n))[0]?C:a[0],_=null==a[1]?C:a[1]):(t(0==n.length)?f.$raise(P("ArgumentError"),"wrong number of arguments (0 for 1..3)"):t(n.length>3)&&f.$raise(P("ArgumentError"),"wrong number of arguments ("+n.$length()+" for 1..3)"),p=null==(a=q(n))[0]?C:a[0],c=null==a[1]?C:a[1],_=null==a[2]?C:a[2]),b(P("Range"),c)){if(t(_)&&f.$raise(P("TypeError"),"length invalid with range"),d=c.begin===C?0:o(c.begin,P("Integer"),"to_int"),t(d<0)&&(d+=this.length),t(d<0)&&f.$raise(P("RangeError"),c.$inspect()+" out of range"),h=c.end===C?-1:o(c.end,P("Integer"),"to_int"),t(h<0)&&(h+=this.length),t(c["$exclude_end?"]())||(h+=1),t(h<=d))return u}else if(t(c))if(d=o(c,P("Integer"),"to_int"),t(d<0)&&(d+=this.length),t(d<0)&&(d=0),t(_)){if(h=o(_,P("Integer"),"to_int"),t(0==h))return u;h+=d}else h=this.length;else d=0,h=this.length;if(t(d>this.length))for(s=this.length;s<h;s++)u[s]=C;if(t(h>this.length)&&(this.length=h),t(l))for(this.length;d<h;d++)i=l(d),u[d]=i;else for(this.length;d<h;d++)u[d]=p;return u}),-1),h(j,"$first",(function(e){var t=this;return null==e?0===t.length?C:t[0]:((e=o(e,P("Integer"),"to_int"))<0&&f.$raise(P("ArgumentError"),"negative array size"),t.slice(0,e))}),-1),h(j,"$flatten",(function(e){var t=this;return void 0!==e&&(e=o(e,P("Integer"),"to_int")),function e(r,n){var a,s,i,o,$=[];for(a=0,s=(r=r.$to_a()).length;a<s;a++)if(i=r[a],l(i,"$to_ary",!0))if((o=i.$to_ary())!==C)switch(o.$$is_array||f.$raise(P("TypeError")),o===t&&f.$raise(P("ArgumentError")),n){case void 0:$=$.concat(e(o));break;case 0:$.push(o);break;default:V($,e(o,n-1))}else $.push(i);else $.push(i);return $}(t,e)}),-1),h(j,"$flatten!",(function(e){var t=this;$(t);var r=t.$flatten(e);if(t.length==r.length){for(var n=0,a=t.length;n<a&&t[n]===r[n];n++);if(n==a)return C}return t.$replace(r),t}),-1),h(j,"$freeze",(function(){var e=this;return t(e["$frozen?"]())?e:u(e)})),h(j,"$hash",(function(){var e,t,r,n=this,a=void 0===D,s=c(),i=n.$object_id();if(s=_(s,10),s=_(s,n.length),a)D=Object.create(null);else if(D[i])return _(s,16843009);try{for(r in D)if(e=D[r],n["$eql?"](e))return _(s,16843009);for(D[i]=n,t=0;t<n.length;t++)e=n[t],s=_(s,e.$hash());return s}finally{a&&(D=void 0)}})),h(j,"$include?",(function(e){for(var t=0,r=this.length;t<r;t++)if(this[t]["$=="](e))return!0;return!1})),h(j,"$index",(function e(t){var r,n,a,s=e.$$p||C,i=this;if(e.$$p=null,null!=t&&s!==C&&i.$warn("warning: given block not used"),null!=t){for(r=0,n=i.length;r<n;r++)if(i[r]["$=="](t))return r}else{if(s===C)return i.$enum_for("index");for(r=0;r<i.length;r++)if(!1!==(a=s(i[r]))&&a!==C)return r}return C}),-1),h(j,"$insert",(function(e,t){var r,n=this;if(r=m(arguments,1),$(n),e=o(e,P("Integer"),"to_int"),r.length>0){if(e<0&&(e+=n.length+1)<0&&f.$raise(P("IndexError"),e+" is out of bounds"),e>n.length)for(var a=n.length;a<e;a++)n.push(C);n.splice.apply(n,[e,0].concat(r))}return n}),-2);var W=[];return h(j,"$inspect",(function(){var e=this,t=[],r=e.$__id__(),n=!0;return function(){try{if(-1!==W.indexOf(r))return n=!1,"[...]";W.push(r);for(var a=0,s=e.length;a<s;a++){var i=e["$[]"](a);t.push(G("Opal").$inspect(i))}return"["+t.join(", ")+"]"}finally{n&&W.pop()}}()})),h(j,"$intersection",(function(e){var r,n,a,s=this;return 0===(r=m(arguments)).length?s.$to_a().$dup():(r=r.map(Y),0===s.length?[]:(r=x(r,"sort_by",[],"length".$to_proc()),t(s.length<r[0].length)?x(r,"reduce",[s],"&".$to_proc()):(n=r.pop(),a=x(r,"reduce",[n],"&".$to_proc()),s["$&"](a))))}),-1),h(j,"$intersect?",(function(e){var t,r,n,i,o=this,l=new Map;for(o.length<e.length?(t=o,r=e):(t=e,r=o),n=0,i=t.length;n<i;n++)s(l,t[n],!0);for(n=0,i=r.length;n<i;n++)if(a(l,r[n]))return!0;return!1})),h(j,"$join",(function(e){var r=this;if(null==S[","]&&(S[","]=C),null==e&&(e=C),t(0===r.length))return"";t(e===C)&&(e=S[","]);var n,a,s,i,o=[];for(n=0,a=r.length;n<a;n++)s=r[n],l(s,"$to_str")&&(i=s.$to_str())!==C?o.push(i.$to_s()):l(s,"$to_ary")&&((i=s.$to_ary())===r&&f.$raise(P("ArgumentError")),i!==C)?o.push(i.$join(e)):l(s,"$to_s")&&(i=s.$to_s())!==C?o.push(i):f.$raise(P("NoMethodError").$new(G("Opal").$inspect(r.$item())+" doesn't respond to #to_str, #to_ary or #to_s","to_str"));return e===C?o.join(""):o.join(g["$coerce_to!"](e,P("String"),"to_str").$to_s())}),-1),h(j,"$keep_if",(function e(){var r=e.$$p||C,n=this;return e.$$p=null,r===C?x(n,"enum_for",["keep_if"],(function e(){return(null==e.$$s?this:e.$$s).$size()}),{$$s:n}):($(n),H(n,t,r),n)})),h(j,"$last",(function(e){var t=this;return null==e?0===t.length?C:t[t.length-1]:((e=o(e,P("Integer"),"to_int"))<0&&f.$raise(P("ArgumentError"),"negative array size"),e>t.length&&(e=t.length),t.slice(t.length-e,t.length))}),-1),h(j,"$length",(function(){return this.length})),h(j,"$max",(function e(t){var r=e.$$p||C;return e.$$p=null,x(this.$each(),"max",[t],r.$to_proc())}),-1),h(j,"$min",(function e(){var t=e.$$p||C;return e.$$p=null,x(this.$each(),"min",[],t.$to_proc())})),h(j,"$permutation",(function t(r){var a,s,i,l=t.$$p||C,$=this,u=C,c=C;if(t.$$p=null,l===C)return x($,"enum_for",["permutation",r],(function e(){var t=null==e.$$s?this:e.$$s;return function(e,t){for(var r=t>=0?1:0;t;)r*=e,e--,t--;return r}(t.length,void 0===r?t.length:r)}),{$$s:$});if((r=void 0===r?$.length:o(r,P("Integer"),"to_int"))<0||$.length<r);else if(0===r)e.yield1(l,[]);else if(1===r)for(var _=0;_<$.length;_++)e.yield1(l,[$[_]]);else u=G("Array").$new(r),c=G("Array").$new($.length,!1),a=function(e,t,r,s,o){$=this;for(var l=0;l<$.length;l++)if(s["$[]"](l)["$!"]())if(t[r]=l,r<e-1)s[l]=!0,a.call($,e,t,r+1,s,o),s[l]=!1;else{i=[];for(var u=0;u<t.length;u++)i.push($[t[u]]);n(o,i)}},l!==C?(s=$.slice(),a.call(s,r,u,0,c,l)):a.call($,r,u,0,c,l);return $}),-1),h(j,"$repeated_permutation",(function r(n){var a,s=r.$$p||C,i=this;if(r.$$p=null,a=g["$coerce_to!"](n,P("Integer"),"to_int"),s===C)return x(i,"enum_for",["repeated_permutation",a],(function e(){var r=null==e.$$s?this:e.$$s;return t(O(a,0))?r.$size()["$**"](a):0}),{$$s:i});return function t(r,n,a){if(n.length!=r)for(var i=0;i<a.length;i++)n.push(a[i]),t(r,n,a),n.pop();else{var o=n.slice();e.yield1(s,o)}}(a,[],i.slice()),i})),h(j,"$pop",(function(e){var r=this;return $(r),t(void 0===e)?t(0===r.length)?C:r.pop():(e=o(e,P("Integer"),"to_int"),t(e<0)&&f.$raise(P("ArgumentError"),"negative array size"),t(0===r.length)?[]:t(1===e)?[r.pop()]:t(e>r.length)?r.splice(0,r.length):r.splice(r.length-e,r.length))}),-1),h(j,"$product",(function t(r){var n,a,s=t.$$p||C,i=this;t.$$p=null,n=m(arguments);var l,$,u,c,_=s!==C?null:[],p=(a=n).length+1,d=new Array(p),h=new Array(p),g=new Array(p),b=1;for(g[0]=i,l=1;l<p;l++)g[l]=o(a[l-1],P("Array"),"to_ary");for(l=0;l<p;l++){if(0===(c=g[l].length))return _||i;(b*=c)>2147483647&&f.$raise(P("RangeError"),"too big to product"),h[l]=c,d[l]=0}e:for(;;){for(u=[],l=0;l<p;l++)u.push(g[l][d[l]]);for(_?_.push(u):e.yield1(s,u),d[$=p-1]++;d[$]===h[$];){if(d[$]=0,--$<0)break e;d[$]++}}return _||i}),-1),h(j,"$push",(function(e){var t,r=this;return t=m(arguments),$(r),V(r,t),r}),-1),h(j,"$rassoc",(function(e){for(var t,r=0,n=this.length;r<n;r++)if((t=this[r]).length&&void 0!==t[1]&&t[1]["$=="](e))return t;return C})),h(j,"$reject",(function e(){var t=e.$$p||C,r=this;if(e.$$p=null,t===C)return x(r,"enum_for",["reject"],(function e(){return(null==e.$$s?this:e.$$s).$size()}),{$$s:r});for(var n,a=[],s=0;s<r.length;s++)!1!==(n=t(r[s]))&&n!==C||a.push(r[s]);return a})),h(j,"$reject!",(function e(){var t,r=e.$$p||C,n=this;return e.$$p=null,r===C?x(n,"enum_for",["reject!"],(function e(){return(null==e.$$s?this:e.$$s).$size()}),{$$s:n}):($(n),t=n.$length(),x(n,"delete_if",[],r.$to_proc()),U(n.$length(),t)?C:n)})),h(j,"$replace",(function(e){var t=this;return $(t),e=Y(e),t.length>0&&t.splice(0,t.length),V(t,e),t})),h(j,"$reverse",(function(){return this.slice(0).reverse()})),h(j,"$reverse!",(function(){return $(this),this.reverse()})),h(j,"$reverse_each",(function e(){var t=e.$$p||C,r=this;if(e.$$p=null,t===C)return x(r,"enum_for",["reverse_each"],(function e(){return(null==e.$$s?this:e.$$s).$size()}),{$$s:r});for(var a=r.length-1;a>=0;a--)n(t,r[a]);return r})),h(j,"$rindex",(function e(t){var r,n,a=e.$$p||C,s=this;if(e.$$p=null,null!=t&&a!==C&&s.$warn("warning: given block not used"),null!=t){for(r=s.length-1;r>=0&&!(r>=s.length);r--)if(s[r]["$=="](t))return r}else if(a!==C){for(r=s.length-1;r>=0&&!(r>=s.length);r--)if(!1!==(n=a(s[r]))&&n!==C)return r}else if(null==t)return s.$enum_for("rindex");return C}),-1),h(j,"$rotate",(function(e){var t,r,n,a,s=this;return null==e&&(e=1),e=o(e,P("Integer"),"to_int"),1===s.length?s.slice():0===s.length?[]:(r=e%(t=s.slice()).length,n=t.slice(r),a=t.slice(0,r),n.concat(a))}),-1),h(j,"$rotate!",(function(e){var t,r=this;return null==e&&(e=1),$(r),0===r.length||1===r.length?r:(e=o(e,P("Integer"),"to_int"),t=r.$rotate(e),r.$replace(t))}),-1),function(e,r){var n=p(e,null,"SampleRandom");n.$$prototype.rng=C,h(n,"$initialize",A("rng")),h(n,"$rand",(function(e){var r;return r=o(this.rng.$rand(e),P("Integer"),"to_int"),t(r<0)&&f.$raise(P("RangeError"),"random value must be >= 0"),t(r<e)||f.$raise(P("RangeError"),"random value must be less than Array size"),r}))}(j),h(j,"$sample",(function(e,r){var n,a,s,i,l,$,u,c,_=this,p=C,m=C;if(t(void 0===e))return _.$at(f.$rand(_.length));if(t(void 0===r)?t(p=g["$coerce_to?"](e,P("Hash"),"to_hash"))?(r=p,e=C):(r=C,e=o(e,P("Integer"),"to_int")):(e=o(e,P("Integer"),"to_int"),r=o(r,P("Hash"),"to_hash")),t(e)&&t(e<0)&&f.$raise(P("ArgumentError"),"count must be greater than 0"),t(r)&&(m=r["$[]"]("random")),m=t(m)&&t(m["$respond_to?"]("rand"))?G("SampleRandom").$new(m):f,!t(e))return _[m.$rand(_.length)];switch(e>_.length&&(e=_.length),e){case 0:return[];case 1:return[_[m.$rand(_.length)]];case 2:return(i=m.$rand(_.length))<=(l=m.$rand(_.length-1))&&l++,[_[i],_[l]];default:if(_.length/e>3){for(n=!1,a=0,i=1,(s=G("Array").$new(e))[0]=m.$rand(_.length);i<e;){for($=m.$rand(_.length),l=0;l<i;){for(;$===s[l];){if(++a>100){n=!0;break}$=m.$rand(_.length)}if(n)break;l++}if(n)break;s[i]=$,i++}if(!n){for(i=0;i<e;)s[i]=_[s[i]],i++;return s}}s=_.slice();for(var d=0;d<e;d++)u=m.$rand(_.length-d)+d,c=s[d],s[d]=s[u],s[u]=c;return e===_.length?s:s["$[]"](0,e)}}),-1),h(j,"$select",(function e(){var r=e.$$p||C,a=this;if(e.$$p=null,r===C)return x(a,"enum_for",["select"],(function e(){return(null==e.$$s?this:e.$$s).$size()}),{$$s:a});for(var s,i,o=[],l=0;l<a.length;l++)s=a[l],i=n(r,s),t(i)&&o.push(s);return o})),h(j,"$select!",(function e(){var t=e.$$p||C,r=this;if(e.$$p=null,t===C)return x(r,"enum_for",["select!"],(function e(){return(null==e.$$s?this:e.$$s).$size()}),{$$s:r});$(r);var n=r.length;return x(r,"keep_if",[],t.$to_proc()),r.length===n?C:r})),h(j,"$shift",(function(e){var r=this;return $(r),t(void 0===e)?t(0===r.length)?C:function(e){for(var t=e[0],r=1,n=e.length;r<n;r++)e[r-1]=e[r];return e.pop(),t}(r):(e=o(e,P("Integer"),"to_int"),t(e<0)&&f.$raise(P("ArgumentError"),"negative array size"),t(0===r.length)?[]:r.splice(0,e))}),-1),h(j,"$shuffle",(function(e){return this.$dup().$to_a()["$shuffle!"](e)}),-1),h(j,"$shuffle!",(function(e){var t=this;$(t);var r,n,a,s=t.length;for(void 0!==e&&(e=g["$coerce_to?"](e,P("Hash"),"to_hash"))!==C&&(e=e["$[]"]("random"))!==C&&e["$respond_to?"]("rand")&&(r=e);s;)r?((n=r.$rand(s).$to_int())<0&&f.$raise(P("RangeError"),"random number too small "+n),n>=s&&f.$raise(P("RangeError"),"random number too big "+n)):n=t.$rand(s),a=t[--s],t[s]=t[n],t[n]=a;return t}),-1),h(j,"$slice!",(function(e,r){var n=this,a=C,s=C,i=C,l=C,u=C;if($(n),a=C,t(void 0===r))if(b(P("Range"),e)){s=e,a=n["$[]"](s),i=s.begin===C?0:o(s.begin,P("Integer"),"to_int"),l=s.end===C?-1:o(s.end,P("Integer"),"to_int"),i<0&&(i+=n.length),l<0?l+=n.length:l>=n.length&&(l=n.length-1,s.excl&&(l+=1));var c=l-i;s.excl&&s.end!==C?l-=1:c+=1,i<n.length&&i>=0&&l<n.length&&l>=0&&c>0&&n.splice(i,c)}else{if((u=o(e,P("Integer"),"to_int"))<0&&(u+=n.length),u<0||u>=n.length)return C;a=n[u],0===u?n.shift():n.splice(u,1)}else{if(u=o(e,P("Integer"),"to_int"),(r=o(r,P("Integer"),"to_int"))<0)return C;a=n["$[]"](u,r),u<0&&(u+=n.length),u+r>n.length&&(r=n.length-u),u<n.length&&u>=0&&n.splice(u,r)}return a}),-2),h(j,"$sort",(function e(){var r=e.$$p||C,n=this;return e.$$p=null,t(n.length>1)?(r===C&&(r=function(e,t){return e["$<=>"](t)}),n.slice().sort((function(e,t){var n=r(e,t);return n===C&&f.$raise(P("ArgumentError"),"comparison of "+e.$inspect()+" with "+t.$inspect()+" failed"),w(n,0)?1:T(n,0)?-1:0}))):n})),h(j,"$sort!",(function e(){var t,r=e.$$p||C,n=this;e.$$p=null,$(n),t=r!==C?x(n.slice(),"sort",[],r.$to_proc()):n.slice().$sort(),n.length=0;for(var a=0,s=t.length;a<s;a++)n.push(t[a]);return n})),h(j,"$sort_by!",(function e(){var t=e.$$p||C,r=this;return e.$$p=null,t===C?x(r,"enum_for",["sort_by!"],(function e(){return(null==e.$$s?this:e.$$s).$size()}),{$$s:r}):($(r),r.$replace(x(r,"sort_by",[],t.$to_proc())))})),h(j,"$take",(function(e){return e<0&&f.$raise(P("ArgumentError")),this.slice(0,e)})),h(j,"$take_while",(function e(){var t=e.$$p||C;e.$$p=null;for(var r,n,a=[],s=0;s<this.length;s++){if(!1===(n=t(r=this[s]))||n===C)return a;a.push(r)}return a})),h(j,"$to_a",(function(){var t=this;return t.$$class===e.Array?t:e.Array.$new(t)})),h(j,"$to_ary",N),h(j,"$to_h",(function e(){var t=e.$$p||C,r=C;e.$$p=null,r=this,t!==C&&(r=x(r,"map",[],t.$to_proc()));var n,a,i,o,l=r.length,$=new Map;for(n=0;n<l;n++)(a=g["$coerce_to?"](r[n],P("Array"),"to_ary")).$$is_array||f.$raise(P("TypeError"),"wrong element type "+r[n].$class()+" at "+n+" (expected array)"),2!==a.length&&f.$raise(P("ArgumentError"),"element has wrong array length at "+n+" (expected 2, was "+a.$length()+")"),i=a[0],o=a[1],s($,i,o);return $})),h(j,"$transpose",(function(){var e=C,r=C;return t(this["$empty?"]())?[]:(e=[],r=C,x(this,"each",[],(function(n){var a=C;return null==n&&(n=C),n=Y(n),r=t(a=r)?a:n.length,z(n.length,r)&&f.$raise(P("IndexError"),"element size differs ("+n.length+" should be "+r+")"),x(n.length,"times",[],(function(r){var s;return null==r&&(r=C),(t(a=e["$[]"](r))?a:(x(e,"[]=",s=[r,[]]),s[s.length-1]))["$<<"](n.$at(r))}))})),e)})),h(j,"$union",(function(e){var t;return t=m(arguments),x(t,"reduce",[this.$uniq()],(function(e,t){return null==e&&(e=C),null==t&&(t=C),e["$|"](t)}))}),-1),h(j,"$uniq",(function e(){var t=e.$$p||C,r=this;e.$$p=null;var i,o,l,$,u=new Map;if(t===C)for(i=0,o=r.length;i<o;i++)l=r[i],void 0===a(u,l)&&s(u,l,l);else for(i=0;i<r.length;i++)l=r[i],$=n(t,l),void 0===a(u,$)&&s(u,$,l);return u.$values()})),h(j,"$uniq!",(function e(){var t=e.$$p||C,r=this;e.$$p=null,$(r);var i,o,l,u=new Map,c=[];for(i=0;i<r.length;i++)o=r[i],l=t===C?o:n(t,o),void 0===a(u,l)?s(u,l,o):c.push(i);for(i=c.length-1;i>=0;i--)r.splice(c[i],1);return 0===c.length?C:r})),h(j,"$unshift",(function(e){var t,r=this;t=m(arguments),$(r);var n=r.length,a=t.length;if(0==a)return r;for(var s=n-a,i=0;i<a;i++)r.push(r[s+i]);for(var o=n-1;o-a>=0;)r[o]=r[o-a],o--;for(var l=0;l<a;l++)r[l]=t[l];return r}),-1),h(j,"$values_at",(function(e){var r,n=C;return r=m(arguments),n=[],x(r,"each",[],(function e(r){var a=null==e.$$s?this:e.$$s,s=C,i=C,l=C;return null==r&&(r=C),t(r["$is_a?"](P("Range")))?(s=r.$end()===C?-1:o(r.$end(),P("Integer"),"to_int"),(i=r.$begin()===C?0:o(r.$begin(),P("Integer"),"to_int"))<0?(i+=a.length,C):(s<0&&(s+=a.length),r["$exclude_end?"]()&&r.$end()!==C&&s--,s<i?C:x(i,"upto",[s],(function e(t){var r=null==e.$$s?this:e.$$s;return null==t&&(t=C),n["$<<"](r.$at(t))}),{$$s:a}))):(l=o(r,P("Integer"),"to_int"),n["$<<"](a.$at(l)))}),{$$s:this}),n}),-1),h(j,"$zip",(function r(n){var a,s=r.$$p||C,i=C;r.$$p=null,a=m(arguments);var o,l,$,u,c,_=[],p=this.length;for(u=0,c=a.length;u<c;u++)(l=a[u]).$$is_array||(l.$$is_range||l.$$is_enumerator?a[u]=l.$take(p):a[u]=(t(i=g["$coerce_to?"](l,P("Array"),"to_ary"))?i:g["$coerce_to!"](l,P("Enumerator"),"to_enum","each")).$to_a());for($=0;$<p;$++){for(o=[this[$]],u=0,c=a.length;u<c;u++)null==(l=a[u][$])&&(l=C),o[u+1]=l;_[$]=o}if(s!==C){for($=0;$<p;$++)e.yield1(s,_[$]);return C}return _}),-1),d(j,"$inherited",(function(e){e.$$prototype.$to_a=function(){return this.slice(0,this.length)}})),h(j,"$instance_variables",(function e(){var r=e.$$p||C;return e.$$p=null,x(v(this,y(this,"instance_variables",e,!1,!0),"instance_variables",[],r),"reject",[],(function(e){var r;return null==e&&(e=C),t(r=/^@\d+$/.test(e))?r:e["$=="]("@length")}))})),h(j,"$pack",(function(e){return m(arguments),f.$raise("To use Array#pack, you must first require 'corelib/array/pack'.")}),-1),R(j,"append","push"),R(j,"filter","select"),R(j,"filter!","select!"),R(j,"map","collect"),R(j,"map!","collect!"),R(j,"prepend","unshift"),R(j,"size","length"),R(j,"slice","[]"),R(j,"to_s","inspect"),g.$pristine(j.$singleton_class(),"allocate"),g.$pristine(j,"copy_instance_variables","initialize_dup")}(0,0,[])},Opal.modules["corelib/hash"]=function(e){var t=e.yield1,r=e.hash_clone,n=e.hash_delete,a=e.hash_each,s=e.hash_get,i=e.hash_put,o=e.deny_frozen_access,l=e.freeze,$=e.opal32_init,u=e.opal32_add,c=e.klass,_=e.slice,p=e.Opal,m=e.Kernel,d=e.defs,f=e.def,h=e.send,g=e.rb_ge,b=e.rb_gt,v=e.truthy,y=e.to_a,x=e.return_self,w=e.not,k=e.alias,U=e.top,E=e.nil,M=e.$$$;return e.add_stubs("require,include,coerce_to?,[],merge!,allocate,raise,inspect,coerce_to!,each,fetch,>=,>,==,lambda?,abs,arity,enum_for,size,respond_to?,class,dig,except!,dup,delete,new,map,to_proc,flatten,frozen?,eql?,default,default_proc,default_proc=,default=,to_h,proc,!,select,select!,has_key?,indexes,index,length,[]=,has_value?"),U.$require("corelib/enumerable"),function(U,q,S){var O,A,T=c("::",q,"Hash"),N=[T].concat(S),z=e.$r(N);return T.$include(M("Enumerable")),T.$$prototype.$$is_hash=!0,d(T,"$[]",(function(e){var t,r,n,a,s=this,i=(t=_(arguments)).length;if(1===i){if((r=p["$coerce_to?"](t["$[]"](0),M("Hash"),"to_hash"))!==E)return s.$allocate()["$merge!"](r);for((t=p["$coerce_to?"](t["$[]"](0),M("Array"),"to_ary"))===E&&m.$raise(M("ArgumentError"),"odd number of arguments for Hash"),i=t.length,r=s.$allocate(),a=0;a<i;a++)(n=t[a]).$$is_array||m.$raise(M("ArgumentError"),"invalid element "+n.$inspect()+" for Hash"),1===n.length?r.$store(n[0],E):2===n.length?r.$store(n[0],n[1]):m.$raise(M("ArgumentError"),"invalid number of elements ("+n.length+" for "+n.$inspect()+"), must be 1..2");return r}for(i%2!=0&&m.$raise(M("ArgumentError"),"odd number of arguments for Hash"),r=s.$allocate(),a=0;a<i;a+=2)r.$store(t[a],t[a+1]);return r}),-1),d(T,"$allocate",(function(){var e=new this.$$constructor;return e.$$none=E,e.$$proc=E,e})),d(T,"$try_convert",(function(e){return p["$coerce_to?"](e,M("Hash"),"to_hash")})),f(T,"$initialize",(function e(t){var r=e.$$p||E,n=this;return e.$$p=null,o(n),void 0!==t&&r!==E&&m.$raise(M("ArgumentError"),"wrong number of arguments (1 for 0)"),n.$$none=void 0===t?E:t,n.$$proc=r,n}),-1),f(T,"$==",(function(e){var t=this;return t===e||!!e.$$is_hash&&(t.size===e.size&&a(t,!0,(function(t,r){var n=s(e,t);return void 0!==n&&r["$eql?"](n)?[!1,!0]:[!0,!1]})))})),f(T,"$>=",(function(e){var t=E;return e=p["$coerce_to!"](e,M("Hash"),"to_hash"),!(this.size<e.size)&&(t=!0,h(e,"each",[],(function e(r,n){var a;null==r&&(r=E),null==n&&(n=E),null!=(a=(null==e.$$s?this:e.$$s).$fetch(r,null))&&a===n||(t=!1)}),{$$s:this}),t)})),f(T,"$>",(function(e){return e=p["$coerce_to!"](e,M("Hash"),"to_hash"),!(this.size<=e.size)&&g(this,e)})),f(T,"$<",(function(e){return e=p["$coerce_to!"](e,M("Hash"),"to_hash"),b(e,this)})),f(T,"$<=",(function(e){return e=p["$coerce_to!"](e,M("Hash"),"to_hash"),g(e,this)})),f(T,"$[]",(function(e){var t=s(this,e);return void 0!==t?t:this.$default(e)})),f(T,"$[]=",(function(e,t){return o(this),i(this,e,t),t})),f(T,"$assoc",(function(e){return a(this,E,(function(t,r){return t["$=="](e)?[!0,[t,r]]:[!1,E]}))})),f(T,"$clear",(function(){var e=this;return o(e),e.clear(),e.$$keys&&e.$$keys.clear(),e})),f(T,"$clone",(function(){var e=this,t=e.$class().$new();return r(e,t),e["$frozen?"]()?t.$freeze():t})),f(T,"$compact",(function(){var e=new Map;return a(this,e,(function(t,r){return r!==E&&i(e,t,r),[!1,e]}))})),f(T,"$compact!",(function(){var e=this;o(e);var t=E;return a(e,t,(function(r,a){return a===E&&(n(e,r),t=e),[!1,t]}))})),f(T,"$compare_by_identity",(function(){var t=this;return o(t),t.$$by_identity||(t.$$by_identity=!0,0!==t.size&&e.hash_rehash(t)),t})),f(T,"$compare_by_identity?",(function(){return!0===this.$$by_identity})),f(T,"$default",(function(e){var t=this;return void 0!==e&&t.$$proc!==E&&void 0!==t.$$proc?t.$$proc.$call(t,e):void 0===t.$$none?E:t.$$none}),-1),f(T,"$default=",(function(e){var t=this;return o(t),t.$$proc=E,t.$$none=e,e})),f(T,"$default_proc",(function(){return void 0!==this.$$proc?this.$$proc:E})),f(T,"$default_proc=",(function(e){var t=this;o(t);var r=e;return r!==E&&(r=p["$coerce_to!"](r,M("Proc"),"to_proc"))["$lambda?"]()&&2!==r.$arity().$abs()&&m.$raise(M("TypeError"),"default_proc takes two arguments"),t.$$none=E,t.$$proc=r,e})),f(T,"$delete",(function t(r){var a=t.$$p||E;t.$$p=null,o(this);var s=n(this,r);return void 0!==s?s:a!==E?e.yield1(a,r):E})),f(T,"$delete_if",(function e(){var t=e.$$p||E,r=this;return e.$$p=null,v(t)?(o(r),a(r,r,(function(e,a){var s=t(e,a);return!1!==s&&s!==E&&n(r,e),[!1,r]}))):h(r,"enum_for",["delete_if"],(function e(){return(null==e.$$s?this:e.$$s).$size()}),{$$s:r})})),f(T,"$dig",(function(e,t){var r,n=E;return r=_(arguments,1),(n=this["$[]"](e))===E||0===r.length?n:(v(n["$respond_to?"]("dig"))||m.$raise(M("TypeError"),n.$class()+" does not have #dig method"),h(n,"dig",y(r)))}),-2),f(T,"$dup",(function(){return r(this,this.$class().$new())})),f(T,"$each",(function e(){var r=e.$$p||E,n=this;return e.$$p=null,v(r)?a(n,n,(function(e,a){return t(r,[e,a]),[!1,n]})):h(n,"enum_for",["each"],(function e(){return(null==e.$$s?this:e.$$s).$size()}),{$$s:n})})),f(T,"$each_key",(function e(){var t=e.$$p||E,r=this;return e.$$p=null,v(t)?a(r,r,(function(e,n){return t(e),[!1,r]})):h(r,"enum_for",["each_key"],(function e(){return(null==e.$$s?this:e.$$s).$size()}),{$$s:r})})),f(T,"$each_value",(function e(){var t=e.$$p||E,r=this;return e.$$p=null,v(t)?a(r,r,(function(e,n){return t(n),[!1,r]})):h(r,"enum_for",["each_value"],(function e(){return(null==e.$$s?this:e.$$s).$size()}),{$$s:r})})),f(T,"$empty?",(function(){return 0===this.size})),f(T,"$except",(function(e){var t;return t=_(arguments),h(this.$dup(),"except!",y(t))}),-1),f(T,"$except!",(function(e){var t;return t=_(arguments),h(t,"each",[],(function e(t){return null==t&&(t=E),(null==e.$$s?this:e.$$s).$delete(t)}),{$$s:this}),this}),-1),f(T,"$fetch",(function e(t,r){var n=e.$$p||E;e.$$p=null;var a=s(this,t);return void 0!==a?a:n!==E?n(t):void 0!==r?r:m.$raise(M("KeyError").$new("key not found: "+t.$inspect(),new Map([["key",t],["receiver",this]])))}),-2),f(T,"$fetch_values",(function e(t){var r,n=e.$$p||E;return e.$$p=null,r=_(arguments),h(r,"map",[],(function e(t){return null==t&&(t=E),h(null==e.$$s?this:e.$$s,"fetch",[t],n.$to_proc())}),{$$s:this})}),-1),f(T,"$flatten",(function(e){null==e&&(e=1),e=p["$coerce_to!"](e,M("Integer"),"to_int");var t=[];return a(this,t,(function(r,n){return t.push(r),n.$$is_array?1===e?(t.push(n),[!1,t]):[!1,t=t.concat(n.$flatten(e-2))]:(t.push(n),[!1,t])}))}),-1),f(T,"$freeze",(function(){var e=this;return v(e["$frozen?"]())?e:l(e)})),f(T,"$has_key?",(function(e){return void 0!==s(this,e)})),f(T,"$has_value?",(function(e){return a(this,!1,(function(t,r){return r["$=="](e)?[!0,!0]:[!1,!1]}))})),f(T,"$hash",(function(){var e,t,r,n=this,s=void 0===O,i=n.$object_id(),o=$(),l=n.size,c=new Int32Array(l);if(o=u(o,4),o=u(o,l),s)O=Object.create(null);else if(O[i])return u(o,16843009);try{for(e in O)if(t=O[e],n["$eql?"](t))return u(o,16843009);for(O[i]=n,r=0,a(n,!1,(function(e,t){return c[r]=[1883326802,e,t].$hash(),r++,[!1,!1]})),c=c.sort(),r=0;r<c.length;r++)o=u(o,c[r]);return o}finally{s&&(O=void 0)}})),f(T,"$index",(function(e){return a(this,E,(function(t,r){return r["$=="](e)?[!0,t]:[!1,E]}))})),f(T,"$indexes",(function(e){for(var t,r,n,a=[],i=0,o=(t=_(arguments)).length;i<o;i++)r=t[i],void 0!==(n=s(this,r))?a.push(n):a.push(this.$default());return a}),-1),f(T,"$inspect",(function(){var e=this,t=void 0===A,r=e.$object_id(),n=[];return function(){try{return t&&(A={}),A.hasOwnProperty(r)?"{...}":(A[r]=!0,a(e,!1,(function(e,t){return t=z("Opal").$inspect(t),e=z("Opal").$inspect(e),n.push(e+"=>"+t),[!1,!1]})),"{"+n.join(", ")+"}")}finally{t&&(A=void 0)}}()})),f(T,"$invert",(function(){var e=new Map;return a(this,e,(function(t,r){return i(e,r,t),[!1,e]}))})),f(T,"$keep_if",(function e(){var t=e.$$p||E,r=this;return e.$$p=null,v(t)?(o(r),a(r,r,(function(e,a){var s=t(e,a);return!1!==s&&s!==E||n(r,e),[!1,r]}))):h(r,"enum_for",["keep_if"],(function e(){return(null==e.$$s?this:e.$$s).$size()}),{$$s:r})})),f(T,"$keys",(function(){return Array.from(this.keys())})),f(T,"$length",(function(){return this.size})),f(T,"$merge",(function e(t){var r,n=e.$$p||E;return e.$$p=null,r=_(arguments),h(this.$dup(),"merge!",y(r),n.$to_proc())}),-1),f(T,"$merge!",(function e(t){var r,n,l,$=e.$$p||E,u=this;for(e.$$p=null,r=_(arguments),o(u),n=0;n<r.length;++n)l=p["$coerce_to!"](r[n],M("Hash"),"to_hash"),a(l,!1,$===E?function(e,t){return i(u,e,t),[!1,!1]}:function(e,t){var r=s(u,e);return void 0===r?(i(u,e,t),[!1,!1]):(i(u,e,$(e,r,t)),[!1,!1])});return u}),-1),f(T,"$rassoc",(function(e){return a(this,E,(function(t,r){return r["$=="](e)?[!0,[t,r]]:[!1,E]}))})),f(T,"$rehash",(function(){return o(this),e.hash_rehash(this)})),f(T,"$reject",(function e(){var t=e.$$p||E,r=this;if(e.$$p=null,!v(t))return h(r,"enum_for",["reject"],(function e(){return(null==e.$$s?this:e.$$s).$size()}),{$$s:r});var n=new Map;return a(r,n,(function(e,r){var a=t(e,r);return!1!==a&&a!==E||i(n,e,r),[!1,n]}))})),f(T,"$reject!",(function e(){var t=e.$$p||E,r=this;if(e.$$p=null,!v(t))return h(r,"enum_for",["reject!"],(function e(){return(null==e.$$s?this:e.$$s).$size()}),{$$s:r});o(r);var s=E;return a(r,s,(function(e,a){var i=t(e,a);return!1!==i&&i!==E&&(n(r,e),s=r),[!1,s]}))})),f(T,"$replace",(function(e){var t=this;return o(t),e=p["$coerce_to!"](e,M("Hash"),"to_hash"),t.$clear(),a(e,!1,(function(e,r){return i(t,e,r),[!1,!1]})),v(e.$default_proc())?t["$default_proc="](e.$default_proc()):t["$default="](e.$default()),t})),f(T,"$select",(function e(){var t=e.$$p||E,r=this;if(e.$$p=null,!v(t))return h(r,"enum_for",["select"],(function e(){return(null==e.$$s?this:e.$$s).$size()}),{$$s:r});var n=new Map;return a(r,n,(function(e,r){var a=t(e,r);return!1!==a&&a!==E&&i(n,e,r),[!1,n]}))})),f(T,"$select!",(function e(){var t=e.$$p||E,r=this;if(e.$$p=null,!v(t))return h(r,"enum_for",["select!"],(function e(){return(null==e.$$s?this:e.$$s).$size()}),{$$s:r});o(r);var s=E;return a(r,s,(function(e,a){var i=t(e,a);return!1!==i&&i!==E||(n(r,e),s=r),[!1,s]}))})),f(T,"$shift",(function(){var e=this;return o(e),a(e,E,(function(t,r){return[!0,[t,n(e,t)]]}))})),f(T,"$slice",(function(e){var t;t=_(arguments);for(var r=new Map,n=0,a=t.length;n<a;n++){var o=t[n],l=s(this,o);void 0!==l&&i(r,o,l)}return r}),-1),f(T,"$to_a",(function(){var e=[];return a(this,e,(function(t,r){return e.push([t,r]),[!1,e]}))})),f(T,"$to_h",(function t(){var n=t.$$p||E,a=this;if(t.$$p=null,n!==E)return h(a,"map",[],n.$to_proc()).$to_h();if(a.$$class===e.Hash)return a;var s=new Map;return r(a,s),s})),f(T,"$to_hash",x),f(T,"$to_proc",(function(){return h(this,"proc",[],(function e(t){var r=null==e.$$s?this:e.$$s;return null==t&&m.$raise(M("ArgumentError"),"no key given"),r["$[]"](t)}),{$$arity:-1,$$s:this})})),f(T,"$transform_keys",(function e(t){var r=e.$$p||E,n=this;if(e.$$p=null,null==t&&(t=E),w(r)&&w(t))return h(n,"enum_for",["transform_keys"],(function e(){return(null==e.$$s?this:e.$$s).$size()}),{$$s:n});var o=new Map;return a(n,o,(function(e,n){var a;return t!==E&&(a=s(t,e)),void 0===a&&r&&r!==E&&(a=r(e)),void 0===a&&(a=e),i(o,a,n),[!1,o]}))}),-1),f(T,"$transform_keys!",(function e(t){var r=e.$$p||E,l=this;if(e.$$p=null,null==t&&(t=E),w(r)&&w(t))return h(l,"enum_for",["transform_keys!"],(function e(){return(null==e.$$s?this:e.$$s).$size()}),{$$s:l});o(l);var $=new Map;return a(l,l,(function(e,a){var o;return t!==E&&(o=s(t,e)),void 0===o&&r&&r!==E&&(o=r(e)),void 0===o||(s($,e)||n(l,e),i(l,o,a),i($,o,!0)),[!1,l]}))}),-1),f(T,"$transform_values",(function e(){var t=e.$$p||E,r=this;if(e.$$p=null,!v(t))return h(r,"enum_for",["transform_values"],(function e(){return(null==e.$$s?this:e.$$s).$size()}),{$$s:r});var n=new Map;return a(r,n,(function(e,r){return i(n,e,t(r)),[!1,n]}))})),f(T,"$transform_values!",(function e(){var t=e.$$p||E,r=this;return e.$$p=null,v(t)?(o(r),a(r,r,(function(e,n){return i(r,e,t(n)),[!1,r]}))):h(r,"enum_for",["transform_values!"],(function e(){return(null==e.$$s?this:e.$$s).$size()}),{$$s:r})})),f(T,"$values",(function(){return Array.from(this.values())})),k(T,"each_pair","each"),k(T,"eql?","=="),k(T,"filter","select"),k(T,"filter!","select!"),k(T,"include?","has_key?"),k(T,"indices","indexes"),k(T,"key","index"),k(T,"key?","has_key?"),k(T,"member?","has_key?"),k(T,"size","length"),k(T,"store","[]="),k(T,"to_s","inspect"),k(T,"update","merge!"),k(T,"value?","has_value?"),k(T,"values_at","indexes")}(0,Map,[])},Opal.modules["corelib/number"]=function(e){var t=e.klass,r=e.Opal,n=e.Kernel,a=e.def,s=e.eqeqeq,i=e.truthy,o=e.rb_gt,l=e.not,$=e.rb_lt,u=e.alias,c=e.send2,_=e.find_super,p=e.send,m=e.rb_plus,d=e.rb_minus,f=e.eqeq,h=e.return_self,g=e.rb_divide,b=e.to_ary,v=e.rb_times,y=e.rb_le,x=e.rb_ge,w=e.return_val,k=e.const_set,U=e.top,E=[],M=e.nil,q=e.$$$;return e.add_stubs("require,bridge,raise,name,class,Float,respond_to?,coerce_to!,__id__,__coerced__,===,>,!,**,new,<,to_f,==,nan?,infinite?,enum_for,+,-,gcd,lcm,%,/,frexp,to_i,ldexp,rationalize,*,<<,to_r,truncate,-@,size,<=,>=,inspect,angle,to_s,is_a?,abs,next,coerce_to?"),U.$require("corelib/numeric"),function(k,U,E){var S=t("::",U,"Number");[S].concat(E);r.$bridge(Number,S),e.prop(S.$$prototype,"$$is_number",!0),S.$$is_number_class=!0;var O=new Map;!function(t,r){a(t,"$allocate",(function(){return n.$raise(q("TypeError"),"allocator undefined for "+this.$name())})),e.udef(t,"$new")}(e.get_singleton_class(S)),a(S,"$coerce",(function(e){var t=this;if(e===M)n.$raise(q("TypeError"),"can't convert "+e.$class()+" into Float");else{if(e.$$is_string)return[n.$Float(e),t];if(e["$respond_to?"]("to_f"))return[r["$coerce_to!"](e,q("Float"),"to_f"),t];if(e.$$is_number)return[e,t];n.$raise(q("TypeError"),"can't convert "+e.$class()+" into Float")}})),a(S,"$__id__",(function(){var t=this;if(t|0===t)return 2*t+1;if(O.has(t))return O.get(t);var r=e.uid();return O.set(t,r),r})),a(S,"$hash",(function(){var e=this;return e|0===e?e.$__id__():e.toString().$hash()})),a(S,"$+",(function(e){return e.$$is_number?this+e:this.$__coerced__("+",e)})),a(S,"$-",(function(e){return e.$$is_number?this-e:this.$__coerced__("-",e)})),a(S,"$*",(function(e){return e.$$is_number?this*e:this.$__coerced__("*",e)})),a(S,"$/",(function(e){return e.$$is_number?this/e:this.$__coerced__("/",e)})),a(S,"$%",(function(e){var t=this;return e.$$is_number?e==-1/0?e:0!=e?e<0||t<0?(t%e+e)%e:t%e:void n.$raise(q("ZeroDivisionError"),"divided by 0"):t.$__coerced__("%",e)})),a(S,"$&",(function(e){return e.$$is_number?this&e:this.$__coerced__("&",e)})),a(S,"$|",(function(e){return e.$$is_number?this|e:this.$__coerced__("|",e)})),a(S,"$^",(function(e){return e.$$is_number?this^e:this.$__coerced__("^",e)})),a(S,"$<",(function(e){return e.$$is_number?this<e:this.$__coerced__("<",e)})),a(S,"$<=",(function(e){return e.$$is_number?this<=e:this.$__coerced__("<=",e)})),a(S,"$>",(function(e){return e.$$is_number?this>e:this.$__coerced__(">",e)})),a(S,"$>=",(function(e){return e.$$is_number?this>=e:this.$__coerced__(">=",e)}));function A(e){var t=new Uint8Array(8);return new DataView(t.buffer).setFloat64(0,e,!0),t}function T(e){return new DataView(e.buffer).getFloat64(0,!0)}function N(e){for(var t=A(e),r=0;r<t.length;r++){if(255!==t[r]){t[r]++;break}t[r]=0}return T(t)}function z(e){for(var t=A(e),r=0;r<t.length;r++){if(0!==t[r]){t[r]--;break}t[r]=255}return T(t)}a(S,"$<=>",(function(t){try{return function(e,t){return t.$$is_number?isNaN(e)||isNaN(t)?M:e>t?1:e<t?-1:0:e.$__coerced__("<=>",t)}(this,t)}catch(t){if(!e.rescue(t,[q("ArgumentError")]))throw t;try{return M}finally{e.pop_exception(t)}}})),a(S,"$<<",(function(e){return(e=r["$coerce_to!"](e,q("Integer"),"to_int"))>0?this<<e:this>>-e})),a(S,"$>>",(function(e){return(e=r["$coerce_to!"](e,q("Integer"),"to_int"))>0?this>>e:this<<-e})),a(S,"$[]",(function(e){return(e=r["$coerce_to!"](e,q("Integer"),"to_int"))<0?0:e>=32?this<0?1:0:this>>e&1})),a(S,"$+@",(function(){return+this})),a(S,"$-@",(function(){return-this})),a(S,"$~",(function(){return~this})),a(S,"$**",(function(e){var t=this;return s(q("Integer"),e)?l(q("Integer")["$==="](t))||i(o(e,0))?Math.pow(t,e):q("Rational").$new(t,1)["$**"](e):i($(t,0))&&(s(q("Float"),e)||s(q("Rational"),e))?q("Complex").$new(t,0)["$**"](e.$to_f()):i(null!=e.$$is_number)?Math.pow(t,e):t.$__coerced__("**",e)})),a(S,"$==",(function(e){return e.$$is_number?this.valueOf()===e.valueOf():!!e["$respond_to?"]("==")&&e["$=="](this)})),u(S,"===","=="),a(S,"$abs",(function(){return Math.abs(this)})),a(S,"$abs2",(function(){return Math.abs(this*this)})),a(S,"$allbits?",(function(e){return(this&(e=r["$coerce_to!"](e,q("Integer"),"to_int")))==e})),a(S,"$anybits?",(function(e){return 0!=(this&(e=r["$coerce_to!"](e,q("Integer"),"to_int")))})),a(S,"$angle",(function(){var e=this;return i(e["$nan?"]())?e:0==e?1/e>0?0:Math.PI:e<0?Math.PI:0})),a(S,"$bit_length",(function(){var e=this;if(s(q("Integer"),e)||n.$raise(q("NoMethodError").$new("undefined method `bit_length` for "+e+":Float","bit_length")),0===e||-1===e)return 0;for(var t=0,r=e<0?~e:e;0!=r;)t+=1,r>>>=1;return t})),a(S,"$ceil",(function(e){null==e&&(e=0);var t=this.$to_f();if(t%1==0&&e>=0)return t;var r=Math.pow(10,e),n=Math.ceil(t*r)/r;return t%1==0&&(n=Math.round(n)),n}),-1),a(S,"$chr",(function(t){return e.enc(String.fromCodePoint(this),t||"BINARY")}),-1),a(S,"$denominator",(function e(){var t=e.$$p||M,r=this;return e.$$p=null,i(r["$nan?"]())||i(r["$infinite?"]())?1:c(r,_(r,"denominator",e,!1,!0),"denominator",[],t)})),a(S,"$downto",(function e(t){var r=e.$$p||M,a=this;if(e.$$p=null,r===M)return p(a,"enum_for",["downto",t],(function e(){var r=null==e.$$s?this:e.$$s;return s(q("Numeric"),t)||n.$raise(q("ArgumentError"),"comparison of "+r.$class()+" with "+t.$class()+" failed"),i(o(t,r))?0:m(d(r,t),1)}),{$$s:a});t.$$is_number||n.$raise(q("ArgumentError"),"comparison of "+a.$class()+" with "+t.$class()+" failed");for(var l=a;l>=t;l--)r(l);return a})),a(S,"$equal?",(function(e){var t;return i(t=this["$=="](e))?t:isNaN(this)&&isNaN(e)})),a(S,"$even?",(function(){return this%2==0})),a(S,"$floor",(function(e){null==e&&(e=0);var t=this.$to_f();if(t%1==0&&e>=0)return t;var r=Math.pow(10,e),n=Math.floor(t*r)/r;return t%1==0&&(n=Math.round(n)),n}),-1),a(S,"$gcd",(function(e){s(q("Integer"),e)||n.$raise(q("TypeError"),"not an integer");for(var t=Math.abs(this),r=Math.abs(e);t>0;){var a=t;t=r%t,r=a}return r})),a(S,"$gcdlcm",(function(e){return[this.$gcd(e),this.$lcm(e)]})),a(S,"$integer?",(function(){return this%1==0})),a(S,"$is_a?",(function e(t){var r=e.$$p||M,n=this;return e.$$p=null,!(!f(t,q("Integer"))||!s(q("Integer"),n))||(!(!f(t,q("Integer"))||!s(q("Integer"),n))||(!(!f(t,q("Float"))||!s(q("Float"),n))||c(n,_(n,"is_a?",e,!1,!0),"is_a?",[t],r)))})),a(S,"$instance_of?",(function e(t){var r=e.$$p||M,n=this;return e.$$p=null,!(!f(t,q("Integer"))||!s(q("Integer"),n))||(!(!f(t,q("Integer"))||!s(q("Integer"),n))||(!(!f(t,q("Float"))||!s(q("Float"),n))||c(n,_(n,"instance_of?",e,!1,!0),"instance_of?",[t],r)))})),a(S,"$lcm",(function(e){var t=this;return s(q("Integer"),e)||n.$raise(q("TypeError"),"not an integer"),0==t||0==e?0:Math.abs(t*e/t.$gcd(e))})),a(S,"$next",(function(){return this+1})),a(S,"$nobits?",(function(e){return 0==(this&(e=r["$coerce_to!"](e,q("Integer"),"to_int")))})),a(S,"$nonzero?",(function(){return 0==this?M:this})),a(S,"$numerator",(function e(){var t=e.$$p||M,r=this;return e.$$p=null,i(r["$nan?"]())||i(r["$infinite?"]())?r:c(r,_(r,"numerator",e,!1,!0),"numerator",[],t)})),a(S,"$odd?",(function(){return this%2!=0})),a(S,"$ord",h),a(S,"$pow",(function(e,t){var r=this;return 0==r&&n.$raise(q("ZeroDivisionError"),"divided by 0"),void 0===t?r["$**"](e):(q("Integer")["$==="](e)||n.$raise(q("TypeError"),"Integer#pow() 2nd argument not allowed unless a 1st argument is integer"),e<0&&n.$raise(q("TypeError"),"Integer#pow() 1st argument cannot be negative when 2nd argument specified"),q("Integer")["$==="](t)||n.$raise(q("TypeError"),"Integer#pow() 2nd argument not allowed unless all arguments are integers"),0===t&&n.$raise(q("ZeroDivisionError"),"divided by 0"),r["$**"](e)["$%"](t))}),-2),a(S,"$pred",(function(){return this-1})),a(S,"$quo",(function e(t){var r=e.$$p||M,n=this;return e.$$p=null,s(q("Integer"),n)?c(n,_(n,"quo",e,!1,!0),"quo",[t],r):g(n,t)})),a(S,"$rationalize",(function(e){var t,r,a=this,o=M,l=M;return arguments.length>1&&n.$raise(q("ArgumentError"),"wrong number of arguments ("+arguments.length+" for 0..1)"),s(q("Integer"),a)?q("Rational").$new(a,1):i(a["$infinite?"]())?n.$raise(q("FloatDomainError"),"Infinity"):i(a["$nan?"]())?n.$raise(q("FloatDomainError"),"NaN"):i(null==e)?(r=q("Math").$frexp(a),o=null==(t=b(r))[0]?M:t[0],l=null==t[1]?M:t[1],o=q("Math").$ldexp(o,q(q("Float"),"MANT_DIG")).$to_i(),l=d(l,q(q("Float"),"MANT_DIG")),q("Rational").$new(v(2,o),1["$<<"](d(1,l))).$rationalize(q("Rational").$new(1,1["$<<"](d(1,l))))):a.$to_r().$rationalize(e)}),-1),a(S,"$remainder",(function(e){return d(this,v(e,g(this,e).$truncate()))})),a(S,"$round",(function(e){var t,a,l=this,u=M;if(s(q("Integer"),l)){if(i(null==e))return l;if(s(q("Float"),e)&&i(e["$infinite?"]())&&n.$raise(q("RangeError"),"Infinity"),e=r["$coerce_to!"](e,q("Integer"),"to_int"),i($(e,q(q("Integer"),"MIN")))&&n.$raise(q("RangeError"),"out of bounds"),i(e>=0))return l;if(.415241*(e=e["$-@"]())-.125>l.$size())return 0;var c=Math.pow(10,e),_=Math.floor((Math.abs(l)+c/2)/c)*c;return l<0?-_:_}if(i(l["$nan?"]())&&i(null==e)&&n.$raise(q("FloatDomainError"),"NaN"),e=r["$coerce_to!"](e||0,q("Integer"),"to_int"),i(y(e,0)))i(l["$nan?"]())?n.$raise(q("RangeError"),"NaN"):i(l["$infinite?"]())&&n.$raise(q("FloatDomainError"),"Infinity");else{if(f(e,0))return Math.round(l);if(i(l["$nan?"]())||i(l["$infinite?"]()))return l}return a=q("Math").$frexp(l),null==(t=b(a))[0]?M:t[0],u=null==t[1]?M:t[1],i(x(e,d(m(q(q("Float"),"DIG"),2),i(o(u,0))?g(u,4):d(g(u,3),1))))?l:i($(e,(i(o(u,0))?m(g(u,3),1):g(u,4))["$-@"]()))?0:Math.round(l*Math.pow(10,e))/Math.pow(10,e)}),-1),a(S,"$times",(function e(){var t=e.$$p||M,r=this;if(e.$$p=null,!i(t))return p(r,"enum_for",["times"],(function e(){return null==e.$$s?this:e.$$s}),{$$s:r});for(var n=0;n<r;n++)t(n);return r})),a(S,"$to_f",h),a(S,"$to_i",(function(){var e=this;return e<0?Math.ceil(e):Math.floor(e)})),a(S,"$to_r",(function(){var e,t,r=this,n=M,a=M;return s(q("Integer"),r)?q("Rational").$new(r,1):(t=q("Math").$frexp(r),n=null==(e=b(t))[0]?M:e[0],a=null==e[1]?M:e[1],n=q("Math").$ldexp(n,q(q("Float"),"MANT_DIG")).$to_i(),a=d(a,q(q("Float"),"MANT_DIG")),v(n,q(q("Float"),"RADIX")["$**"](a)).$to_r())})),a(S,"$to_s",(function(e){var t=this;return null==e&&(e=10),e=r["$coerce_to!"](e,q("Integer"),"to_int"),(i($(e,2))||i(o(e,36)))&&n.$raise(q("ArgumentError"),"invalid radix "+e),f(t,0)&&i(1/t==-1/0)?"-0.0":t.toString(e)}),-1),a(S,"$truncate",(function(e){null==e&&(e=0);var t=this.$to_f();if(t%1==0&&e>=0)return t;var r=Math.pow(10,e),n=parseInt(t*r,10)/r;return t%1==0&&(n=Math.round(n)),n}),-1),a(S,"$digits",(function(e){var t=this;null==e&&(e=10),i($(t,0))&&n.$raise(q(q("Math"),"DomainError"),"out of domain"),e=r["$coerce_to!"](e,q("Integer"),"to_int"),i($(e,2))&&n.$raise(q("ArgumentError"),"invalid radix "+e),t!=parseInt(t)&&n.$raise(q("NoMethodError"),"undefined method `digits' for "+t.$inspect());var a=t,s=[];if(0==t)return[0];for(;0!=a;)s.push(a%e),a=parseInt(a/e,10);return s}),-1),a(S,"$divmod",(function e(t){var r=e.$$p||M,a=this;return e.$$p=null,i(a["$nan?"]())||i(t["$nan?"]())?n.$raise(q("FloatDomainError"),"NaN"):i(a["$infinite?"]())?n.$raise(q("FloatDomainError"),"Infinity"):c(a,_(a,"divmod",e,!1,!0),"divmod",[t],r)})),a(S,"$upto",(function e(t){var r=e.$$p||M,a=this;if(e.$$p=null,r===M)return p(a,"enum_for",["upto",t],(function e(){var r=null==e.$$s?this:e.$$s;return s(q("Numeric"),t)||n.$raise(q("ArgumentError"),"comparison of "+r.$class()+" with "+t.$class()+" failed"),i($(t,r))?0:m(d(t,r),1)}),{$$s:a});t.$$is_number||n.$raise(q("ArgumentError"),"comparison of "+a.$class()+" with "+t.$class()+" failed");for(var o=a;o<=t;o++)r(o);return a})),a(S,"$zero?",(function(){return 0==this})),a(S,"$size",w(4)),a(S,"$nan?",(function(){return isNaN(this)})),a(S,"$finite?",(function(){var e=this;return e!=1/0&&e!=-1/0&&!isNaN(e)})),a(S,"$infinite?",(function(){return this==1/0?1:this==-1/0?-1:M})),a(S,"$positive?",(function(){var e=this;return 0!=e&&(e==1/0||1/e>0)})),a(S,"$negative?",(function(){return this==-1/0||1/this<0})),a(S,"$next_float",(function(){var e=this;return f(e,q(q("Float"),"INFINITY"))?q(q("Float"),"INFINITY"):i(e["$nan?"]())?q(q("Float"),"NAN"):i(x(e,0))?N(Math.abs(e)):z(e)})),a(S,"$prev_float",(function(){var e=this;return f(e,q(q("Float"),"INFINITY")["$-@"]())?q(q("Float"),"INFINITY")["$-@"]():i(e["$nan?"]())?q(q("Float"),"NAN"):i(o(e,0))?z(e):-N(Math.abs(e))})),u(S,"arg","angle"),u(S,"eql?","=="),u(S,"fdiv","/"),u(S,"inspect","to_s"),u(S,"kind_of?","is_a?"),u(S,"magnitude","abs"),u(S,"modulo","%"),u(S,"object_id","__id__"),u(S,"phase","angle"),u(S,"succ","next"),u(S,"to_int","to_i")}(0,q("Numeric"),E),k("::","Fixnum",q("Number")),function(s,i,o){var l=t("::",i,"Integer"),$=[l].concat(o);l.$$is_number_class=!0,l.$$is_integer_class=!0,function(t,s){var i=[t].concat(s),o=e.$r(i);a(t,"$allocate",(function(){return n.$raise(q("TypeError"),"allocator undefined for "+this.$name())})),e.udef(t,"$new"),a(t,"$sqrt",(function(e){return(e=r["$coerce_to!"](e,q("Integer"),"to_int"))<0&&n.$raise(q(q("Math"),"DomainError"),'Numerical argument is out of domain - "isqrt"'),parseInt(Math.sqrt(e),10)})),a(t,"$try_convert",(function(e){return o("Opal")["$coerce_to?"](e,this,"to_int")}))}(e.get_singleton_class(l),$),k(l,"MAX",Math.pow(2,30)-1),k(l,"MIN",-Math.pow(2,30))}(0,q("Numeric"),E),function(r,s,i){var o=t("::",s,"Float");[o].concat(i);return o.$$is_number_class=!0,function(t,r){a(t,"$allocate",(function(){return n.$raise(q("TypeError"),"allocator undefined for "+this.$name())})),e.udef(t,"$new"),a(t,"$===",(function(e){return!!e.$$is_number}))}(e.get_singleton_class(o)),k(o,"INFINITY",1/0),k(o,"MAX",Number.MAX_VALUE),k(o,"MIN",Number.MIN_VALUE),k(o,"NAN",NaN),k(o,"DIG",15),k(o,"MANT_DIG",53),k(o,"RADIX",2),k(o,"EPSILON",Number.EPSILON||2220446049250313e-31)}(0,q("Numeric"),E)},Opal.modules["corelib/range"]=function(e){var t=e.klass,r=e.truthy,n=e.Kernel,a=e.def,s=e.not,i=e.send2,o=e.find_super,l=e.lambda,$=e.send,u=e.rb_ge,c=e.rb_gt,_=e.eqeq,p=e.rb_le,m=e.rb_lt,d=e.eqeqeq,f=e.return_ivar,h=e.rb_minus,g=e.Opal,b=e.rb_divide,v=e.rb_plus,y=e.rb_times,x=e.thrower,w=e.alias,k=e.top,U=e.nil,E=e.$$$;return e.add_stubs("require,include,attr_reader,raise,nil?,<=>,cover?,!,begin,end,exclude_end?,then,call,>=,>,==,max,<=,<,enum_for,size,upto,to_proc,respond_to?,class,succ,===,eql?,try_convert,is_a?,any?,last,to_a,-,coerce_to!,ceil,/,new,loop,+,*,each_with_index,%,step,bsearch,inspect,[],hash,include?"),k.$require("corelib/enumerable"),function(k,M,q){var S=t("::",null,"Range"),O=[S].concat(q),A=e.$r(O),T=S.$$prototype;function N(e){return e.begin===U||e.end===U||e.begin===-1/0||e.end===1/0||e.begin===1/0||e.end===-1/0}return T.begin=T.end=T.excl=U,S.$include(E("Enumerable")),S.$$prototype.$$is_range=!0,S.$attr_reader("begin","end"),a(S,"$initialize",(function(e,t,a){var s=this;return null==a&&(a=!1),r(s.begin)&&n.$raise(E("NameError"),"'initialize' called twice"),r(e["$<=>"](t))||r(e["$nil?"]())||r(t["$nil?"]())||n.$raise(E("ArgumentError"),"bad value for range"),s.begin=e,s.end=t,s.excl=a}),-3),a(S,"$===",(function(e){return!r(e.$$is_range)&&this["$cover?"](e)})),a(S,"$count",(function e(){var t=e.$$p||U,n=this;return e.$$p=null,s(t!==U)&&r(N(n))?E(E("Float"),"INFINITY"):i(n,o(n,"count",e,!1,!0),"count",[],t)})),a(S,"$to_a",(function e(){var t=e.$$p||U,a=this;return e.$$p=null,r(N(a))&&n.$raise(E("TypeError"),"cannot convert endless range to an array"),i(a,o(a,"to_a",e,!1,!0),"to_a",[],t)})),a(S,"$cover?",(function(e){var t,n=this,a=U,i=U,o=U,d=U,f=U,h=U,g=U;return a=l((function(e,t){var n;return null==e&&(e=U),null==t&&(t=U),r(n=e["$<=>"](t))?n:1})),r(e.$$is_range)?(i=e.$begin(),o=e.$end(),d=e["$exclude_end?"](),!(r(n.begin)&&r(i["$nil?"]())||r(n.end)&&r(o["$nil?"]())||r(i)&&r(o)&&r($(a.$call(i,o),"then",[],(function(e){return null==e&&(e=U),r(d)?u(e,0):c(e,0)})))||r(i)&&s(n["$cover?"](i)))&&(f=a.$call(n.end,o),_(n.excl,d)?u(f,0):r(n.excl)?c(f,0):!!r(u(f,0))||(h=e.$max(),r(g=h["$nil?"]()["$!"]())?p(a.$call(h,n.end),0):g))):(!r(n.begin)||!r(c(a.$call(n.begin,e),0)))&&(!!r(n.end["$nil?"]())||(t=a.$call(e,n.end),r(n.excl)?m(t,0):p(t,0)))})),a(S,"$each",(function t(){var a,i,o,l=t.$$p||U,u=this,c=U,p=U;if(t.$$p=null,l===U)return $(u,"enum_for",["each"],(function e(){return(null==e.$$s?this:e.$$s).$size()}),{$$s:u});if(u.begin.$$is_number&&u.end.$$is_number){for(u.begin%1==0&&u.end%1==0||n.$raise(E("TypeError"),"can't iterate from Float"),i=u.begin,o=u.end+(r(u.excl)?0:1);i<o;i++)l(i);return u}if(u.begin.$$is_string&&u.end.$$is_string)return $(u.begin,"upto",[u.end,u.excl],l.$to_proc()),u;for(c=u.begin,a=u.end,r(c["$respond_to?"]("succ"))||n.$raise(E("TypeError"),"can't iterate from "+c.$class());r(r(p=u.end["$nil?"]())?p:m(c["$<=>"](a),0));)e.yield1(l,c),c=c.$succ();return s(u.excl)&&_(c,a)&&e.yield1(l,c),u})),a(S,"$eql?",(function(e){var t,n,a=this;return!!d(E("Range"),e)&&(r(t=r(n=a.excl["$==="](e["$exclude_end?"]()))?a.begin["$eql?"](e.$begin()):n)?a.end["$eql?"](e.$end()):t)})),a(S,"$exclude_end?",f("excl")),a(S,"$first",(function e(t){var a=e.$$p||U,s=this;return e.$$p=null,r(s.begin["$nil?"]())&&n.$raise(E("RangeError"),"cannot get the minimum of beginless range"),r(null==t)?s.begin:i(s,o(s,"first",e,!1,!0),"first",[t],a)}),-1),a(S,"$include?",(function e(t){var n=e.$$p||U,a=this,s=U,l=U;if(e.$$p=null,r(a.begin.$$is_number||a.end.$$is_number)||r(a.begin["$is_a?"](E("Time")))||r(a.end["$is_a?"](E("Time")))||r(E("Integer").$try_convert(a.begin))||r(E("Integer").$try_convert(a.end)))return a["$cover?"](t);if(r(a.begin.$$is_string||a.end.$$is_string)){if(r(a.begin.$$is_string&&a.end.$$is_string))return $(a.begin.$upto(a.end,a.excl),"any?",[],(function(e){return null==e&&(e=U),e["$=="](t)}));if(r(a.begin["$nil?"]()))return s=t["$<=>"](a.end),r(l=s["$nil?"]()["$!"]())?r(a.excl)?m(s,0):p(s,0):l;if(r(a.end["$nil?"]()))return s=a.begin["$<=>"](t),r(l=s["$nil?"]()["$!"]())?p(s,0):l}return i(a,o(a,"include?",e,!1,!0),"include?",[t],n)})),a(S,"$last",(function(e){var t=this;return r(t.end["$nil?"]())&&n.$raise(E("RangeError"),"cannot get the maximum of endless range"),r(null==e)?t.end:t.$to_a().$last(e)}),-1),a(S,"$max",(function e(){var t=e.$$p||U,a=this;return e.$$p=null,r(a.end["$nil?"]())?n.$raise(E("RangeError"),"cannot get the maximum of endless range"):t!==U?i(a,o(a,"max",e,!1,!0),"max",[],t):s(a.begin["$nil?"]())&&(r(c(a.begin,a.end))||r(a.excl)&&_(a.begin,a.end))?U:a.excl?a.end-1:a.end})),a(S,"$min",(function e(){var t=e.$$p||U,a=this;return e.$$p=null,r(a.begin["$nil?"]())?n.$raise(E("RangeError"),"cannot get the minimum of beginless range"):t!==U?i(a,o(a,"min",e,!1,!0),"min",[],t):s(a.end["$nil?"]())&&(r(c(a.begin,a.end))||r(a.excl)&&_(a.begin,a.end))?U:a.begin})),a(S,"$size",(function(){var e=this.begin,t=this.end;if(E("Numeric")["$==="](e)){if(E("Numeric")["$==="](t)){var r=h(t,e);return r<0?0:(this.excl||(r+=1),E("Float")["$==="](e)||E("Float")["$==="](t)?Math.floor(r):r)}if(t===U)return 1/0}else if(e===U&&E("Numeric")["$==="](t))return 1/0;return U})),a(S,"$step",(function t(a){var i=t.$$p||U,o=this,l=U,p=U;function m(){null==a?a=1:a.$$is_number||(a=g["$coerce_to!"](a,E("Integer"),"to_int")),a<0?n.$raise(E("ArgumentError"),"step can't be negative"):0===a&&n.$raise(E("ArgumentError"),"step can't be 0")}return t.$$p=null,i===U?(r(o.begin["$is_a?"](A("Numeric")))||r(o.begin["$nil?"]()))&&(r(o.end["$is_a?"](A("Numeric")))||r(o.end["$nil?"]()))&&s(r(l=o.begin["$nil?"]())?o.end["$nil?"]():l)?E(E("Enumerator"),"ArithmeticSequence").$new(o,a,"step"):$(o,"enum_for",["step",a],(function(){return m(),function(){if(!o.begin["$respond_to?"]("succ"))return U;if(o.begin.$$is_string&&o.end.$$is_string)return U;if(a%1==0)return b(o.$size(),a).$ceil();var e,t=o.begin,r=o.end,n=Math.abs,s=Math.floor,i=(n(t)+n(r)+n(r-t))/n(a)*E(E("Float"),"EPSILON");return i>.5&&(i=.5),o.excl?(e=s((r-t)/a-i))*a+t<r&&e++:e=s((r-t)/a+i)+1,e}()})):(m(),r(o.begin.$$is_number&&o.end.$$is_number)?(p=0,function(){try{var t=x("break");return $(o,"loop",[],(function n(){var s,o=null==n.$$s?this:n.$$s;return null==o.begin&&(o.begin=U),null==o.excl&&(o.excl=U),null==o.end&&(o.end=U),s=v(o.begin,y(p,a)),r(o.excl)?r(u(s,o.end))&&t.$throw(U,n.$$is_lambda):r(c(s,o.end))&&t.$throw(U,n.$$is_lambda),e.yield1(i,s),p=v(p,1)}),{$$s:o})}catch(e){if(e===t)return e.$v;throw e}finally{t.is_orphan=!0}}()):(o.begin.$$is_string&&o.end.$$is_string&&a%1!=0&&n.$raise(E("TypeError"),"no implicit conversion to float from string"),$(o,"each_with_index",[],(function(t,r){return null==t&&(t=U),null==r&&(r=U),_(r["$%"](a),0)?e.yield1(i,t):U}))),o)}),-1),a(S,"$%",(function(e){var t=this;return r(t.begin["$is_a?"](A("Numeric")))&&r(t.end["$is_a?"](A("Numeric")))?E(E("Enumerator"),"ArithmeticSequence").$new(t,e,"%"):t.$step(e)})),a(S,"$bsearch",(function e(){var t=e.$$p||U,a=this;return e.$$p=null,t===U?a.$enum_for("bsearch"):(r(N(a)&&(a.begin.$$is_number||a.end.$$is_number))&&n.$raise(E("NotImplementedError"),"Can't #bsearch an infinite range"),r(a.begin.$$is_number&&a.end.$$is_number)||n.$raise(E("TypeError"),"can't do binary search for "+a.begin.$class()),$(a.$to_a(),"bsearch",[],t.$to_proc()))})),a(S,"$to_s",(function(){var e=this,t=U;return(r(t=e.begin)?t:"")+(r(e.excl)?"...":"..")+(r(t=e.end)?t:"")})),a(S,"$inspect",(function(){var e=this,t=U;return(r(t=e.begin)?e.begin.$inspect():t)+(r(e.excl)?"...":"..")+(r(t=e.end)?e.end.$inspect():t)})),a(S,"$marshal_load",(function(e){var t=this;return t.begin=e["$[]"]("begin"),t.end=e["$[]"]("end"),t.excl=e["$[]"]("excl")})),a(S,"$hash",(function(){var e=this;return[E("Range"),e.begin,e.end,e.excl].$hash()})),w(S,"==","eql?"),w(S,"member?","include?")}(0,0,[])},Opal.modules["corelib/proc"]=function(e){var t=e.slice,r=e.each_ivar,n=e.klass,a=e.truthy,s=e.Kernel,i=e.defs,o=e.def,l=e.send,$=e.to_a,u=e.return_self,c=e.ensure_kwargs,_=e.hash_get,p=e.Opal,m=e.alias,d=e.nil,f=e.$$$;return e.add_stubs("raise,proc,call,to_proc,new,source_location,coerce_to!,dup"),function(h,g){var b=n("::",Function,"Proc");return e.prop(b.$$prototype,"$$is_proc",!0),e.prop(b.$$prototype,"$$is_lambda",!1),i(b,"$new",(function e(){var t=e.$$p||d;return e.$$p=null,a(t)||s.$raise(f("ArgumentError"),"tried to create a Proc object without a block"),t})),o(b,"$call",(function r(n){var a,s=r.$$p||d,i=this;return r.$$p=null,a=t(arguments),s!==d&&(i.$$p=s),i.$$is_lambda?function(e,t){if(!e.$$ret)return e.apply(null,t);try{return e.apply(null,t)}catch(t){if(t===e.$$ret)return t.$v;throw t}}(i,a):function(t,r){if(!t.$$brk)return e.yieldX(t,r);try{return e.yieldX(t,r)}catch(e){if(e===t.$$brk)return e.$v;throw e}}(i,a)}),-1),o(b,"$>>",(function e(r){return e.$$p=null,l(s,"proc",[],(function e(n){var a,s,i=e.$$p||d,o=null==e.$$s?this:e.$$s;return e.$$p=null,a=t(arguments),s=l(o,"call",$(a),i.$to_proc()),r.$call(s)}),{$$arity:-1,$$s:this})})),o(b,"$<<",(function e(r){return e.$$p=null,l(s,"proc",[],(function e(n){var a,s,i=e.$$p||d,o=null==e.$$s?this:e.$$s;return e.$$p=null,a=t(arguments),s=l(r,"call",$(a),i.$to_proc()),o.$call(s)}),{$$arity:-1,$$s:this})})),o(b,"$to_proc",u),o(b,"$lambda?",(function(){return!!this.$$is_lambda})),o(b,"$arity",(function(){var e=this;return e.$$is_curried?-1:null!=e.$$arity?e.$$arity:e.length})),o(b,"$source_location",(function(){var e;return this.$$is_curried?d:a(e=this.$$source_location)?e:d})),o(b,"$binding",(function(){var e=this;return e.$$is_curried&&s.$raise(f("ArgumentError"),"Can't create Binding"),a(f("::","Binding","skip_raise")?"constant":d)?f("Binding").$new(d,[],e.$$s,e.$source_location()):d})),o(b,"$parameters",(function(e){var t,r=this;if(e=c(e),t=_(e,"lambda"),r.$$is_curried)return[["rest"]];if(r.$$parameters){if(null==t?r.$$is_lambda:t)return r.$$parameters;var n,a,s=[];for(n=0,a=r.$$parameters.length;n<a;n++){var i=r.$$parameters[n];"req"===i[0]&&(i=["opt",i[1]]),s.push(i)}return s}return[]}),-1),o(b,"$curry",(function(e){var r=this;function n(){var a,i=t(arguments),o=i.length;return o>e&&r.$$is_lambda&&!r.$$is_curried&&s.$raise(f("ArgumentError"),"wrong number of arguments ("+o+" for "+e+")"),o>=e?r.$call.apply(r,i):(a=function(){return n.apply(null,i.concat(t(arguments)))},a.$$is_lambda=r.$$is_lambda,a.$$is_curried=!0,a)}return void 0===e?e=r.length:(e=p["$coerce_to!"](e,f("Integer"),"to_int"),r.$$is_lambda&&e!==r.length&&s.$raise(f("ArgumentError"),"wrong number of arguments ("+e+" for "+r.length+")")),n.$$is_lambda=r.$$is_lambda,n.$$is_curried=!0,n}),-1),o(b,"$dup",(function(){var e=this,t=e.$$original_proc||e,n=function(){return t.apply(this,arguments)};return r(e,(function(t){n[t]=e[t]})),n})),m(b,"===","call"),m(b,"clone","dup"),m(b,"yield","call"),m(b,"[]","call")}()},Opal.modules["corelib/method"]=function(e){var t=e.klass,r=e.def,n=e.truthy,a=e.slice,s=e.alias,i=e.Kernel,o=e.send,l=e.to_a,$=e.nil,u=e.$$$;return e.add_stubs("attr_reader,arity,curry,>>,<<,new,class,join,source_location,call,raise,bind,to_proc"),function(e,i){var o=t("::",null,"Method"),l=o.$$prototype;l.method=l.receiver=l.owner=l.name=$,o.$attr_reader("owner","receiver","name"),r(o,"$initialize",(function(e,t,r,n){var a=this;return a.receiver=e,a.owner=t,a.name=n,a.method=r})),r(o,"$arity",(function(){return this.method.$arity()})),r(o,"$parameters",(function(){return this.method.$$parameters})),r(o,"$source_location",(function(){var e;return n(e=this.method.$$source_location)?e:["(eval)",0]})),r(o,"$comments",(function(){var e;return n(e=this.method.$$comments)?e:[]})),r(o,"$call",(function e(t){var r,n=e.$$p||$,s=this;return e.$$p=null,r=a(arguments),s.method.$$p=n,s.method.apply(s.receiver,r)}),-1),r(o,"$curry",(function(e){return this.method.$curry(e)}),-1),r(o,"$>>",(function(e){return this.method["$>>"](e)})),r(o,"$<<",(function(e){return this.method["$<<"](e)})),r(o,"$unbind",(function(){var e=this;return u("UnboundMethod").$new(e.receiver.$class(),e.owner,e.method,e.name)})),r(o,"$to_proc",(function(){var e=this,t=e.$call.bind(e);return t.$$unbound=e.method,t.$$is_lambda=!0,t.$$arity=null==e.method.$$arity?e.method.length:e.method.$$arity,t.$$parameters=e.method.$$parameters,t})),r(o,"$inspect",(function(){var e=this;return"#<"+e.$class()+": "+e.receiver.$class()+"#"+e.name+" (defined in "+e.owner+" in "+e.$source_location().$join(":")+")>"})),s(o,"[]","call"),s(o,"===","call")}(),function(s,c){var _=t("::",null,"UnboundMethod"),p=_.$$prototype;return p.method=p.owner=p.name=p.source=$,_.$attr_reader("source","owner","name"),r(_,"$initialize",(function(e,t,r,n){var a=this;return a.source=e,a.owner=t,a.method=r,a.name=n,a.$$method=r})),r(_,"$arity",(function(){return this.method.$arity()})),r(_,"$parameters",(function(){return this.method.$$parameters})),r(_,"$source_location",(function(){var e;return n(e=this.method.$$source_location)?e:["(eval)",0]})),r(_,"$comments",(function(){var e;return n(e=this.method.$$comments)?e:[]})),r(_,"$bind",(function(t){var r=this;if(r.owner.$$is_module||e.is_a(t,r.owner))return u("Method").$new(t,r.owner,r.method,r.name);i.$raise(u("TypeError"),"can't bind singleton method to a different class (expected "+t+".kind_of?("+r.owner+" to be true)")})),r(_,"$bind_call",(function e(t,r){var n,s=e.$$p||$;return e.$$p=null,n=a(arguments,1),o(this.$bind(t),"call",l(n),s.$to_proc())}),-2),r(_,"$inspect",(function(){var e=this;return"#<"+e.$class()+": "+e.source+"#"+e.name+" (defined in "+e.owner+" in "+e.$source_location().$join(":")+")>"}))}()},Opal.modules["opal/regexp_transpiler"]=function(e){var t=e.module,r=e.truthy,n=e.lambda,a=e.rb_plus,s=e.rb_lt,i=e.eqeq,o=e.rb_gt,l=e.rb_le,$=e.rb_minus,u=e.neqeq,c=e.def,_=e.const_set,p=[],m=e.nil,d=e.$$$;return e.add_stubs("module_function,include?,remove_flag,simple_regexp?,add_flag,transform_regexp_by_re_and_hash,+,length,<,==,>,<=,-,!=,call,warn,inspect"),function(p,f){var h=[t(p,"Opal")].concat(f);return function(p,f){var h=t(p,"RegexpTranspiler"),g=[h].concat(f),b=e.$r(g);return h.$module_function(),c(h,"$transform_regexp",(function(e,t){var c,_,p=this,f=m,h=m,g=m,v=m,y=m,x=m,w=m,k=m,U=m,E=m,M=m,q=m,S=m,O=m;for(t=r(c=t)?c:"",r(p["$include?"](t,"m"))&&(f=!0,t=p.$remove_flag(t,"m")),r(p["$simple_regexp?"](e))||(t=p.$add_flag(t,"u")),h=p.$transform_regexp_by_re_and_hash(e,b("ESCAPES_REGEXP"),d(b("Opal"),"REGEXP_EQUIVALENTS")),g=!1,v="",y=0,x=!1,w=!1,k="",U=!1,E=!1,M=n((function e(){var t=null==e.$$s?this:e.$$s;return r(w)||(v=t.$transform_regexp_by_re_and_hash(v,b("OUTSIDE_ESCAPES_REGEXP"),d(b("Opal"),"REGEXP_EQUIVALENTS_OUTSIDE"))),k=a(k,v)}),{$$s:p}),_=h.$length(),q=0;r(s(q,_));)S=h[q],O=!0,r(g)?(g=!1,(i(S,"A")||i(S,"z"))&&(E=!0)):i(S,"\\")?g=!0:i(y,0)&&i(S,".")&&r(f)?S="[\\s\\S]":i(y,0)&&(i(S,"^")||i(S,"$"))?U=!0:i(S,"[")?(y=a(y,1),r(o(y,1))&&(O=!1)):i(S,"]")&&(r(o(y,1))&&(O=!1),r(l(y,0))&&(v=a("[",v),y=0),y=$(y,1)),r(O)&&(v=a(v,S)),w=x,x=o(y,0),u(w,x)&&(M.$call(),v=""),q=a(q,1);return M.$call(),r(U)&&(t=p.$add_flag(t,"m")),r(U)&&r(E)&&p.$warn("warning: Both \\A or \\z and ^ or $ used in a regexp "+e.$inspect()+". In Opal this will cause undefined behaviour."),[k,t]})),c(h,"$transform_regexp_by_re_and_hash",(function(e,t,r){return e.replace(t,(function(e){return r.get(e)||e}))})),c(h,"$remove_flag",(function(e,t){return e.replace(t,"")})),c(h,"$simple_regexp?",(function(e){return/^(\\[dnrtAzZ\\]|\(\?[:!]|[\w\s(){}|?+*@^$-])*$/.test(e)})),c(h,"$include?",(function(e,t){return e.includes(t)})),_(g[0],"ESCAPES_REGEXP",/(\\.|\[:[a-z]*:\])/g),_(g[0],"OUTSIDE_ESCAPES_REGEXP",/(\\.)/g),c(h,"$add_flag",(function(e,t){return r(this["$include?"](e,t))||(e=a(e,t)),e}))}(h[0],h)}(p[0],p)},Opal.modules["opal/regexp_anchors"]=function(e){var t=e.module,r=e.const_set,n=[],a=(e.nil,e.$$$);return e.add_stubs("new"),function(n,s){var i=t(n,"Opal"),o=[i].concat(s),l=e.$r(o);return r(i,"REGEXP_START","\\A"),r(i,"REGEXP_END","\\z"),r(i,"FORBIDDEN_STARTING_IDENTIFIER_CHARS","\\u0001-\\u002F\\u003A-\\u0040\\u005B-\\u005E\\u0060\\u007B-\\u007F"),r(i,"REGEXP_EQUIVALENTS",new Map([["\\h","[\\dA-Fa-f]"],["\\e","\\x1b"],["\\_","_"],["\\~","~"],["\\#","#"],["\\'","'"],['\\"','"'],["\\ "," "],["\\=","="],["\\!","!"],["\\%","%"],["\\&","&"],["\\<","<"],["\\>",">"],["\\@","@"],["\\:",":"],["\\`","`"],["[:alnum:]","\\p{Alphabetic}\\p{Number}"],["[:alpha:]","\\p{Alphabetic}"],["[:blank:]","\\p{Space_Separator}\\t"],["[:cntrl:]","\\p{Control}"],["[:digit:]","\\d"],["[:graph:]","\\p{Alphabetic}\\p{Number}\\p{Punctuation}\\p{Symbol}"],["[:lower:]","\\p{Lowercase_Letter}"],["[:print:]","\\p{Alphabetic}\\p{Number}\\p{Punctuation}\\p{Symbol}\\p{Space_Separator}"],["[:punct:]","\\p{Punctuation}"],["[:space:]","\\p{White_Space}"],["[:upper:]","\\p{Uppercase_Letter}"],["[:xdigit:]","\\dA-Fa-f"]])),r(i,"REGEXP_EQUIVALENTS_OUTSIDE",new Map([["\\A","^"],["\\z","$"],["\\Z","(?:\\n?$)"],["\\-","-"],["\\R","(?:\\r|\\n|\\r\\n|\\f|\\u0085|\\u2028|\\u2029)"]])),r(i,"FORBIDDEN_ENDING_IDENTIFIER_CHARS","\\u0001-\\u0020\\u0022-\\u002F\\u003A-\\u003E\\u0040\\u005B-\\u005E\\u0060\\u007B-\\u007F"),r(i,"INLINE_IDENTIFIER_REGEXP",l("Regexp").$new("[^"+a(i,"FORBIDDEN_STARTING_IDENTIFIER_CHARS")+"]*[^"+a(i,"FORBIDDEN_ENDING_IDENTIFIER_CHARS")+"]")),r(i,"FORBIDDEN_CONST_NAME_CHARS","\\u0001-\\u0020\\u0021-\\u002F\\u003B-\\u003F\\u0040\\u005B-\\u005E\\u0060\\u007B-\\u007F"),r(i,"CONST_NAME_REGEXP",l("Regexp").$new(a(i,"REGEXP_START")+"(::)?[A-Z][^"+a(i,"FORBIDDEN_CONST_NAME_CHARS")+"]*"+a(i,"REGEXP_END")))}(n[0],n)},Opal.modules["corelib/variables"]=function(e){var t=e.gvars,r=e.const_set,n=e.Object,a=e.nil;return e.add_stubs("new"),t["&"]=t["~"]=t["`"]=t["'"]=a,t.LOADED_FEATURES=t['"']=e.loaded_features,t.LOAD_PATH=t[":"]=[],t["/"]="\n",t[","]=a,r("::","ARGV",[]),r("::","ARGF",n.$new()),r("::","ENV",new Map),t.VERBOSE=!1,t.DEBUG=!1,t.SAFE=0},Opal.modules["corelib/io"]=function(e){var t,r=e.klass,n=e.const_set,a=e.not,s=e.annotate_regexp,i=e.truthy,o=e.def,l=e.return_ivar,$=e.return_val,u=e.slice,c=e.Kernel,_=e.gvars,p=e.send,m=e.to_a,d=e.rb_plus,f=e.neqeq,h=e.range,g=e.eqeq,b=e.to_ary,v=e.rb_gt,y=e.assign_ivar_val,x=e.alias,w=e.nil,k=e.$$$;e.add_stubs("attr_reader,attr_accessor,!,match?,include?,size,write,String,flatten,puts,sysread_noraise,+,!=,[],ord,getc,readchar,raise,gets,==,to_str,length,split,sub,sysread,>,to_a,each_line,enum_for,getbyte,closed_write?,closed_read?,each,eof,new,write_proc=,read_proc="),function(t,U){var E=r("::",null,"IO"),M=E.$$prototype;M.read_buffer=M.closed=w,n(E,"SEEK_SET",0),n(E,"SEEK_CUR",1),n(E,"SEEK_END",2),n(E,"SEEK_DATA",3),n(E,"SEEK_HOLE",4),n(E,"READABLE",1),n(E,"WRITABLE",4),E.$attr_reader("eof"),E.$attr_accessor("read_proc","sync","tty","write_proc"),o(E,"$initialize",(function(e,t){var r=this;return null==t&&(t="r"),r.fd=e,r.flags=t,r.eof=!1,i(t["$include?"]("r"))&&a(t["$match?"](s(/[wa+]/u,null,"")))?r.closed="write":i(t["$match?"](s(/[wa]/u,null,"")))&&a(t["$match?"](s(/[r+]/u,null,"")))?r.closed="read":w}),-2),o(E,"$fileno",l("fd")),o(E,"$tty?",(function(){return 1==this.tty})),o(E,"$write",(function(e){return this.write_proc(e),e.$size()})),o(E,"$flush",$(w)),o(E,"$<<",(function(e){return this.$write(e),this})),o(E,"$print",(function(e){var t;null==_[","]&&(_[","]=w);for(var r=0,n=(t=u(arguments)).length;r<n;r++)t[r]=c.$String(t[r]);return this.$write(t.join(_[","])),w}),-1),o(E,"$puts",(function(e){var t,r,n=this;if(0===(t=u(arguments)).length)return n.$write("\n"),w;for(var a=0,s=t.length;a<s;a++)if(t[a].$$is_array){var i=t[a].$flatten();i.length>0&&p(n,"puts",m(i))}else(r=t[a].$$is_string?t[a].valueOf():c.$String(t[a])).endsWith("\n")||(r+="\n"),n.$write(r);return w}),-1),o(E,"$getc",(function(){var e,t=this,r=w,n=w;t.read_buffer=i(e=t.read_buffer)?e:"",r="";do{if(t.read_buffer=d(t.read_buffer,r),f(t.read_buffer,""))return n=t.read_buffer["$[]"](0),t.read_buffer=t.read_buffer["$[]"](h(1,-1,!1)),n}while(i(r=t.$sysread_noraise(1)));return w})),o(E,"$getbyte",(function(){var e;return(e=this.$getc())===w||null==e?w:e.$ord()})),o(E,"$readbyte",(function(){return this.$readchar().$ord()})),o(E,"$readchar",(function(){var e;return i(e=this.$getc())?e:c.$raise(k("EOFError"),"end of file reached")})),o(E,"$readline",(function(e){var t,r;return t=u(arguments),i(r=p(this,"gets",m(t)))?r:c.$raise(k("EOFError"),"end of file reached")}),-1),o(E,"$gets",(function(t,r,n){var o,l,$,u,c=this,p=w,m=w,h=w,v=w;null==_["/"]&&(_["/"]=w),null==t&&(t=!1),null==r&&(r=w),null==n&&(n=new Map),i(t.$$is_number)&&a(r)&&(t=(o=[!1,t,r])[0],r=o[1],n=o[2]),i(t.$$is_hash)&&a(r)&&g(n,new Map)?(t=(o=[!1,w,t])[0],r=o[1],n=o[2]):i(r.$$is_hash)&&g(n,new Map)&&(t=(o=[t,w,r])[0],r=o[1],n=o[2]),$=t,g(t,!1)&&(t=_["/"]),g(t,"")&&(t=/\r?\n\r?\n/),t=i(p=t)?p:"",g($,"")||(t=t.$to_str()),u=g($,"")?2:t.$length(),g(t," ")&&(t=/ /),c.read_buffer=i(p=c.read_buffer)?p:"",m="",h=w;do{if(c.read_buffer=d(c.read_buffer,m),f(t,"")&&i(i(t.$$is_regexp)?c.read_buffer["$match?"](t):c.read_buffer["$include?"](t))){v=c.read_buffer,l=c.read_buffer.$split(t,2),h=null==(o=b(l))[0]?w:o[0],c.read_buffer=null==o[1]?w:o[1],f(h,v)&&(h=d(h,v["$[]"](h.$length(),u)));break}}while(i(m=c.$sysread_noraise(g(t,"")?65536:1)));return i(h)||(h=(o=[i(p=c.read_buffer)?p:"",""])[0],c.read_buffer=o[1],g(h,"")&&(h=w)),i(h)&&(i(r)&&(h=h["$[]"](e.Range.$new(0,r,!0)),c.read_buffer=d(h["$[]"](e.Range.$new(r,-1,!1)),c.read_buffer)),i(n["$[]"]("chomp"))&&(h=h.$sub(s(/\r?\n$/,"\\r?\\n\\z"),"")),g($,"")&&(h=h.$sub(s(/^[\r\n]+/u,"\\A[\\r\\n]+",""),""))),g($,!1)&&(_._=h),h}),-1),o(E,"$sysread",(function(e){var t;return i(t=this.read_proc(e))?t:(this.eof=!0,c.$raise(k("EOFError"),"end of file reached"))})),o(E,"$sysread_noraise",(function(t){try{return this.$sysread(t)}catch(t){if(!e.rescue(t,[k("EOFError")]))throw t;try{return w}finally{e.pop_exception(t)}}})),o(E,"$readpartial",(function(e){var t,r,n=this,a=w,s=w;return n.read_buffer=i(a=n.read_buffer)?a:"",r=n.$sysread(e),s=(t=[d(n.read_buffer,i(a=r)?a:""),""])[0],n.read_buffer=t[1],g(s,"")&&(s=w),s})),o(E,"$read",(function(t){var r,n=this,a=w,s=w,o=w;null==t&&(t=w),n.read_buffer=i(a=n.read_buffer)?a:"",s="",o=w;do{if(n.read_buffer=d(n.read_buffer,s),i(t)&&i(v(n.read_buffer.$length(),t)))return o=(r=[n.read_buffer["$[]"](e.Range.$new(0,t,!0)),n.read_buffer["$[]"](e.Range.$new(t,-1,!1))])[0],n.read_buffer=r[1],o}while(i(s=n.$sysread_noraise(i(a=t)?a:65536)));return o=(r=[n.read_buffer,""])[0],n.read_buffer=r[1],o}),-1),o(E,"$readlines",(function(e){return null==_["/"]&&(_["/"]=w),null==e&&(e=_["/"]),this.$each_line(e).$to_a()}),-1),o(E,"$each",(function t(r,n){var a,s,o,l=t.$$p||w,$=this,c=w;if(null==_["/"]&&(_["/"]=w),t.$$p=null,(a=u(arguments)).length>0&&(s=a.shift()),null==s&&(s=_["/"]),o=a,l===w)return p($,"enum_for",["each",s].concat(m(o)));for(;i(c=p($,"gets",[s].concat(m(o))));)e.yield1(l,c);return $}),-1),o(E,"$each_byte",(function t(){var r=t.$$p||w,n=this,a=w;if(t.$$p=null,r===w)return n.$enum_for("each_byte");for(;i(a=n.$getbyte());)e.yield1(r,a);return n})),o(E,"$each_char",(function t(){var r=t.$$p||w,n=this,a=w;if(t.$$p=null,r===w)return n.$enum_for("each_char");for(;i(a=n.$getc());)e.yield1(r,a);return n})),o(E,"$close",y("closed","both")),o(E,"$close_read",(function(){var e=this;return g(e.closed,"write")?e.closed="both":e.closed="read"})),o(E,"$close_write",(function(){var e=this;return g(e.closed,"read")?e.closed="both":e.closed="write"})),o(E,"$closed?",(function(){return this.closed["$=="]("both")})),o(E,"$closed_read?",(function(){var e;return i(e=this.closed["$=="]("read"))?e:this.closed["$=="]("both")})),o(E,"$closed_write?",(function(){var e;return i(e=this.closed["$=="]("write"))?e:this.closed["$=="]("both")})),o(E,"$check_writable",(function(){return i(this["$closed_write?"]())?c.$raise(k("IOError"),"not opened for writing"):w})),o(E,"$check_readable",(function(){return i(this["$closed_read?"]())?c.$raise(k("IOError"),"not opened for reading"):w})),x(E,"each_line","each"),x(E,"eof?","eof")}(),n("::","STDIN",_.stdin=k("IO").$new(0,"r")),n("::","STDOUT",_.stdout=k("IO").$new(1,"w")),n("::","STDERR",_.stderr=k("IO").$new(2,"w"));var U=e.global.console;return k("STDOUT")["$write_proc="]("object"==typeof process&&"object"==typeof process.stdout?function(e){process.stdout.write(e)}:function(e){U.log(e)}),k("STDERR")["$write_proc="]("object"==typeof process&&"object"==typeof process.stderr?function(e){process.stderr.write(e)}:function(e){U.warn(e)}),t=[function(e){var t=prompt();return null!==t?t+"\n":w}],p(k("STDIN"),"read_proc=",t),t[t.length-1]},Opal.modules["opal/mini"]=function(e){var t=e.Object;e.nil;return e.add_stubs("require"),t.$require("opal/base"),t.$require("corelib/nil"),t.$require("corelib/boolean"),t.$require("corelib/string"),t.$require("corelib/comparable"),t.$require("corelib/enumerable"),t.$require("corelib/enumerator"),t.$require("corelib/array"),t.$require("corelib/hash"),t.$require("corelib/number"),t.$require("corelib/range"),t.$require("corelib/proc"),t.$require("corelib/method"),t.$require("corelib/regexp"),t.$require("opal/regexp_transpiler"),t.$require("opal/regexp_anchors"),t.$require("corelib/variables"),t.$require("corelib/io")},Opal.modules["corelib/kernel/format"]=function(e){var t=e.coerce_to,r=e.module,n=e.slice,a=e.truthy,s=e.eqeq,i=e.Opal,o=e.Kernel,l=e.gvars,$=e.def,u=e.alias,c=e.nil,_=e.$$$;return e.add_stubs("respond_to?,[],==,length,coerce_to?,nil?,to_a,raise,to_int,fetch,Integer,Float,to_ary,to_str,inspect,to_s,format"),function(e){var p=r("::","Kernel");return $(p,"$format",(function(e,r){var $,u,p=c;null==l.DEBUG&&(l.DEBUG=c),$=n(arguments,1),s((u=$).$length(),1)&&a(u["$[]"](0)["$respond_to?"]("to_ary"))&&(p=i["$coerce_to?"](u["$[]"](0),_("Array"),"to_ary"),a(p["$nil?"]())||(u=p.$to_a()));var m,d,f,h,g,b,v,y,x,w,k,U,E,M,q,S,O="",A=0,T=e.length,N=1,z=0,R=16,I=128;function C(){32&S&&o.$raise(_("ArgumentError"),"flag after width"),S&I&&o.$raise(_("ArgumentError"),"flag after precision")}function P(){32&S&&o.$raise(_("ArgumentError"),"width given twice"),S&I&&o.$raise(_("ArgumentError"),"width after precision")}function L(e){return e>=u.length&&o.$raise(_("ArgumentError"),"too few arguments"),u[e]}function F(){switch(z){case-1:o.$raise(_("ArgumentError"),"unnumbered("+N+") mixed with numbered");case-2:o.$raise(_("ArgumentError"),"unnumbered("+N+") mixed with named")}return L((z=N++)-1)}function D(e){return z>0&&o.$raise(_("ArgumentError"),"numbered("+e+") after unnumbered("+z+")"),-2===z&&o.$raise(_("ArgumentError"),"numbered("+e+") after named"),e<1&&o.$raise(_("ArgumentError"),"invalid index - "+e+"$"),z=-1,L(e-1)}function j(){return void 0===q?F():q}function B(t){for(var r,n="";;d++){if(d===T&&o.$raise(_("ArgumentError"),"malformed format string - %*[0-9]"),e.charCodeAt(d)<48||e.charCodeAt(d)>57)return d--,(r=parseInt(n,10)||0)>2147483647&&o.$raise(_("ArgumentError"),t+" too big"),r;n+=e.charAt(d)}}function G(t){var r,n=B(t);return"$"===e.charAt(d+1)?(d++,r=D(n)):r=F(),r.$to_int()}for(d=e.indexOf("%");-1!==d;d=e.indexOf("%",d)){switch(h=void 0,S=0,b=-1,v=-1,q=void 0,m=d,d++,e.charAt(d)){case"%":A=d;case"":case"\n":case"\0":d++;continue}e:for(;d<T;d++)switch(e.charAt(d)){case" ":C(),S|=R;continue e;case"#":C(),S|=1;continue e;case"+":C(),S|=4;continue e;case"-":C(),S|=2;continue e;case"0":C(),S|=8;continue e;case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":if(y=B("width"),"$"===e.charAt(d+1)){if(d+2===T){h="%",d++;break e}void 0!==q&&o.$raise(_("ArgumentError"),"value given twice - %"+y+"$"),q=D(y),d++}else P(),S|=32,b=y;continue e;case"<":case"{":for(w="<"===e.charAt(d)?">":"}",x="",d++;;d++){if(d===T&&o.$raise(_("ArgumentError"),"malformed name - unmatched parenthesis"),e.charAt(d)===w){if(z>0&&o.$raise(_("ArgumentError"),"named "+x+" after unnumbered("+z+")"),-1===z&&o.$raise(_("ArgumentError"),"named "+x+" after numbered"),z=-2,void 0!==u[0]&&u[0].$$is_hash||o.$raise(_("ArgumentError"),"one hash required"),q=u[0].$fetch(x),">"===w)continue e;if(h=q.toString(),-1!==v&&(h=h.slice(0,v)),2&S)for(;h.length<b;)h+=" ";else for(;h.length<b;)h=" "+h;break e}x+=e.charAt(d)}case"*":d++,P(),S|=32,(b=G("width"))<0&&(S|=2,b=-b);continue e;case".":if(S&I&&o.$raise(_("ArgumentError"),"precision given twice"),S|=192,v=0,d++,"*"===e.charAt(d)){d++,(v=G("precision"))<0&&(S&=-65);continue e}v=B("precision");continue e;case"d":case"i":case"u":if((f=o.$Integer(j()))>=0){for(h=f.toString();h.length<v;)h="0"+h;if(2&S)for((4&S||S&R)&&(h=(4&S?"+":" ")+h);h.length<b;)h+=" ";else if(8&S&&-1===v){for(;h.length<b-(4&S||S&R?1:0);)h="0"+h;(4&S||S&R)&&(h=(4&S?"+":" ")+h)}else for((4&S||S&R)&&(h=(4&S?"+":" ")+h);h.length<b;)h=" "+h}else{for(h=(-f).toString();h.length<v;)h="0"+h;if(2&S)for(h="-"+h;h.length<b;)h+=" ";else if(8&S&&-1===v){for(;h.length<b-1;)h="0"+h;h="-"+h}else for(h="-"+h;h.length<b;)h=" "+h}break e;case"b":case"B":case"o":case"x":case"X":switch(e.charAt(d)){case"b":case"B":k=2,U="0b",E=/^1+/,M="1";break;case"o":k=8,U="0",E=/^3?7+/,M="7";break;case"x":case"X":k=16,U="0x",E=/^f+/,M="f"}if((f=o.$Integer(j()))>=0){for(h=f.toString(k);h.length<v;)h="0"+h;if(2&S)for((4&S||S&R)&&(h=(4&S?"+":" ")+h),1&S&&0!==f&&(h=U+h);h.length<b;)h+=" ";else if(8&S&&-1===v){for(;h.length<b-(4&S||S&R?1:0)-(1&S&&0!==f?U.length:0);)h="0"+h;1&S&&0!==f&&(h=U+h),(4&S||S&R)&&(h=(4&S?"+":" ")+h)}else for(1&S&&0!==f&&(h=U+h),(4&S||S&R)&&(h=(4&S?"+":" ")+h);h.length<b;)h=" "+h}else if(4&S||S&R){for(h=(-f).toString(k);h.length<v;)h="0"+h;if(2&S)for(1&S&&(h=U+h),h="-"+h;h.length<b;)h+=" ";else if(8&S&&-1===v){for(;h.length<b-1-(1&S?2:0);)h="0"+h;1&S&&(h=U+h),h="-"+h}else for(1&S&&(h=U+h),h="-"+h;h.length<b;)h=" "+h}else{for(h=(f>>>0).toString(k).replace(E,M);h.length<v-2;)h=M+h;if(2&S)for(h=".."+h,1&S&&(h=U+h);h.length<b;)h+=" ";else if(8&S&&-1===v){for(;h.length<b-2-(1&S?U.length:0);)h=M+h;h=".."+h,1&S&&(h=U+h)}else for(h=".."+h,1&S&&(h=U+h);h.length<b;)h=" "+h}e.charAt(d)===e.charAt(d).toUpperCase()&&(h=h.toUpperCase());break e;case"f":case"e":case"E":case"g":case"G":if((f=o.$Float(j()))>=0||isNaN(f)){if(f===1/0)h="Inf";else switch(e.charAt(d)){case"f":h=f.toFixed(-1===v?6:v);break;case"e":case"E":h=f.toExponential(-1===v?6:v);break;case"g":case"G":h=f.toExponential(),(g=parseInt(h.split("e")[1],10))<-4||g>=(-1===v?6:v)||(h=f.toPrecision(-1===v?1&S?6:void 0:v))}if(2&S)for((4&S||S&R)&&(h=(4&S?"+":" ")+h);h.length<b;)h+=" ";else if(8&S&&f!==1/0&&!isNaN(f)){for(;h.length<b-(4&S||S&R?1:0);)h="0"+h;(4&S||S&R)&&(h=(4&S?"+":" ")+h)}else for((4&S||S&R)&&(h=(4&S?"+":" ")+h);h.length<b;)h=" "+h}else{if(f===-1/0)h="Inf";else switch(e.charAt(d)){case"f":h=(-f).toFixed(-1===v?6:v);break;case"e":case"E":h=(-f).toExponential(-1===v?6:v);break;case"g":case"G":h=(-f).toExponential(),(g=parseInt(h.split("e")[1],10))<-4||g>=(-1===v?6:v)||(h=(-f).toPrecision(-1===v?1&S?6:void 0:v))}if(2&S)for(h="-"+h;h.length<b;)h+=" ";else if(8&S&&f!==-1/0){for(;h.length<b-1;)h="0"+h;h="-"+h}else for(h="-"+h;h.length<b;)h=" "+h}e.charAt(d)!==e.charAt(d).toUpperCase()||f===1/0||f===-1/0||isNaN(f)||(h=h.toUpperCase()),h=h.replace(/([eE][-+]?)([0-9])$/,"$10$2");break e;case"a":case"A":o.$raise(_("NotImplementedError"),"`A` and `a` format field types are not implemented in Opal yet");case"c":if((f=j())["$respond_to?"]("to_ary")&&(f=f.$to_ary()[0]),1!==(h=f["$respond_to?"]("to_str")?f.$to_str():String.fromCharCode(t(f,_("Integer"),"to_int"))).length&&o.$raise(_("ArgumentError"),"%c requires a character"),2&S)for(;h.length<b;)h+=" ";else for(;h.length<b;)h=" "+h;break e;case"p":if(h=j().$inspect(),-1!==v&&(h=h.slice(0,v)),2&S)for(;h.length<b;)h+=" ";else for(;h.length<b;)h=" "+h;break e;case"s":if(h=j().$to_s(),-1!==v&&(h=h.slice(0,v)),2&S)for(;h.length<b;)h+=" ";else for(;h.length<b;)h=" "+h;break e;default:o.$raise(_("ArgumentError"),"malformed format string - %"+e.charAt(d))}void 0===h&&o.$raise(_("ArgumentError"),"malformed format string - %"),O+=e.slice(A,m)+h,A=d+1}return l.DEBUG&&z>=0&&N<u.length&&o.$raise(_("ArgumentError"),"too many arguments for format string"),O+e.slice(A)}),-2),u(p,"sprintf","format")}()},Opal.modules["corelib/string/encoding"]=function(e){var t,r=e.klass,n=e.rb_plus,a=e.truthy,s=e.send,i=e.defs,o=e.eqeq,l=e.def,$=e.return_ivar,u=e.return_val,c=e.slice,_=e.Kernel,p=e.Opal,m=e.rb_lt,d=e.top,f=[],h=e.$r(f),g=e.nil,b=e.$$$;return e.add_stubs("require,+,[],clone,initialize,new,instance_eval,to_proc,each,const_set,tr,==,default_external,attr_accessor,singleton_class,attr_reader,raise,register,length,bytes,force_encoding,dup,bytesize,enum_for,each_byte,to_a,each_char,each_codepoint,coerce_to!,find,<,default_external="),d.$require("corelib/string"),function(t,p,m){var d=r("::",null,"Encoding"),f=[d].concat(m),h=d.$$prototype;h.name=h.dummy=g,i(d,"$register",(function t(r,i){var o,l,$,u=t.$$p||g,c=g,_=g,p=g;return t.$$p=null,null==i&&(i=new Map),o=n([r],a(c=i["$[]"]("aliases"))?c:[]),l=a(c=i["$[]"]("ascii"))&&c,$=a(c=i["$[]"]("dummy"))&&c,a(i["$[]"]("inherits"))?(_=i["$[]"]("inherits").$clone()).$initialize(r,o,l,$):_=this.$new(r,o,l,$),u!==g&&s(_,"instance_eval",[],u.$to_proc()),p=e.encodings,s(o,"each",[],(function e(t){return null==t&&(t=g),(null==e.$$s?this:e.$$s).$const_set(t.$tr("-","_"),_),p[t]=_}),{$$s:this})}),-2),i(d,"$find",(function(t){return o(t,"default_external")?this.$default_external():e.find_encoding(t)})),d.$singleton_class().$attr_accessor("default_external"),d.$attr_reader("name","names"),l(d,"$initialize",(function(e,t,r,n){var a=this;return a.name=e,a.names=t,a.ascii=r,a.dummy=n})),l(d,"$ascii_compatible?",$("ascii")),l(d,"$dummy?",$("dummy")),l(d,"$binary?",u(!1)),l(d,"$to_s",$("name")),l(d,"$inspect",(function(){return"#<Encoding:"+this.name+(a(this.dummy)?" (dummy)":g)+">"})),l(d,"$charsize",(function(e){for(var t=0,r=0,n=e.length;r<n;r++){var a=e.charCodeAt(r);a>=55296&&a<=56319||t++}return t})),l(d,"$each_char",(function t(r){var n=t.$$p||g;t.$$p=null;for(var a="",s=0,i=r.length;s<i;s++){var o=r.charCodeAt(s),l=r.charAt(s);o>=55296&&o<=56319?a=l:(o>=56320&&o<=57343&&(l=a+l),"UTF-8"!=r.encoding.name&&((l=new String(l)).encoding=r.encoding),e.yield1(n,l))}})),l(d,"$each_byte",(function(e){return c(arguments),_.$raise(b("NotImplementedError"))}),-1),l(d,"$bytesize",(function(e){return c(arguments),_.$raise(b("NotImplementedError"))}),-1),r("::",b("StandardError"),"EncodingError"),r("::",b("EncodingError"),"CompatibilityError"),r(f[0],b("EncodingError"),"UndefinedConversionError")}(0,0,f),s(b("Encoding"),"register",["UTF-8",new Map([["aliases",["CP65001"]],["ascii",!0]])],(function t(){var r=null==t.$$s?this:t.$$s;return l(r,"$each_byte",(function t(r){var n=t.$$p||g;t.$$p=null;for(var a,s=1/0,i=r.length,o=null,l=0;l<i;++l){if((a=r.charCodeAt(l))>55295&&a<57344){if(!o){if(a>56319){(s-=3)>-1&&(e.yield1(n,239),e.yield1(n,191),e.yield1(n,189));continue}if(l+1===i){(s-=3)>-1&&(e.yield1(n,239),e.yield1(n,191),e.yield1(n,189));continue}o=a;continue}if(a<56320){(s-=3)>-1&&(e.yield1(n,239),e.yield1(n,191),e.yield1(n,189)),o=a;continue}a=65536+(o-55296<<10|a-56320)}else o&&(s-=3)>-1&&(e.yield1(n,239),e.yield1(n,191),e.yield1(n,189));if(o=null,a<128){if((s-=1)<0)break;e.yield1(n,a)}else if(a<2048){if((s-=2)<0)break;e.yield1(n,a>>6|192),e.yield1(n,63&a|128)}else if(a<65536){if((s-=3)<0)break;e.yield1(n,a>>12|224),e.yield1(n,a>>6&63|128),e.yield1(n,63&a|128)}else if(a<1114112){if((s-=4)<0)break;e.yield1(n,a>>18|240),e.yield1(n,a>>12&63|128),e.yield1(n,a>>6&63|128),e.yield1(n,63&a|128)}}})),l(r,"$bytesize",(function(e){return e.$bytes().$length()}))}),{$$s:d}),s(b("Encoding"),"register",["UTF-16LE"],(function t(){var r=null==t.$$s?this:t.$$s;return l(r,"$each_byte",(function t(r){var n=t.$$p||g;t.$$p=null;for(var a=0,s=r.length;a<s;a++){var i=r.charCodeAt(a);e.yield1(n,255&i),e.yield1(n,i>>8)}})),l(r,"$bytesize",(function(e){return 2*e.length}))}),{$$s:d}),s(b("Encoding"),"register",["UTF-16BE",new Map([["inherits",b(b("Encoding"),"UTF_16LE")]])],(function t(){return l(null==t.$$s?this:t.$$s,"$each_byte",(function t(r){var n=t.$$p||g;t.$$p=null;for(var a=0,s=r.length;a<s;a++){var i=r.charCodeAt(a);e.yield1(n,i>>8),e.yield1(n,255&i)}}))}),{$$s:d}),s(b("Encoding"),"register",["UTF-32LE"],(function t(){var r=null==t.$$s?this:t.$$s;return l(r,"$each_byte",(function t(r){var n=t.$$p||g;t.$$p=null;for(var a=0,s=r.length;a<s;a++){var i=r.charCodeAt(a);e.yield1(n,255&i),e.yield1(n,i>>8),e.yield1(n,0),e.yield1(n,0)}})),l(r,"$bytesize",(function(e){return 4*e.length}))}),{$$s:d}),s(b("Encoding"),"register",["UTF-32BE",new Map([["inherits",b(b("Encoding"),"UTF_32LE")]])],(function t(){return l(null==t.$$s?this:t.$$s,"$each_byte",(function t(r){var n=t.$$p||g;t.$$p=null;for(var a=0,s=r.length;a<s;a++){var i=r.charCodeAt(a);e.yield1(n,0),e.yield1(n,0),e.yield1(n,i>>8),e.yield1(n,255&i)}}))}),{$$s:d}),s(b("Encoding"),"register",["ASCII-8BIT",new Map([["aliases",["BINARY"]],["ascii",!0]])],(function t(){var r=null==t.$$s?this:t.$$s;return l(r,"$each_char",(function t(r){var n=t.$$p||g;t.$$p=null;for(var a=0,s=r.length;a<s;a++){var i=new String(r.charAt(a));i.encoding=r.encoding,e.yield1(n,i)}})),l(r,"$charsize",(function(e){return e.length})),l(r,"$each_byte",(function t(r){var n=t.$$p||g;t.$$p=null;for(var a=0,s=r.length;a<s;a++){var i=r.charCodeAt(a);e.yield1(n,255&i)}})),l(r,"$bytesize",(function(e){return e.length})),l(r,"$binary?",u(!0))}),{$$s:d}),b("Encoding").$register("ISO-8859-1",new Map([["aliases",["ISO8859-1"]],["ascii",!0],["inherits",b(b("Encoding"),"ASCII_8BIT")]])),b("Encoding").$register("US-ASCII",new Map([["aliases",["ASCII"]],["ascii",!0],["inherits",b(b("Encoding"),"ASCII_8BIT")]])),function(t,n){var i=r("::",null,"String"),o=i.$$prototype;o.internal_encoding=o.bytes=o.encoding=g,i.$attr_reader("encoding"),i.$attr_reader("internal_encoding"),e.prop(String.prototype,"bytes",g),e.prop(String.prototype,"encoding",b(b("Encoding"),"UTF_8")),e.prop(String.prototype,"internal_encoding",b(b("Encoding"),"UTF_8")),l(i,"$b",(function(){return this.$dup().$force_encoding("binary")})),l(i,"$bytesize",(function(){return this.internal_encoding.$bytesize(this)})),l(i,"$each_byte",(function e(){var t=e.$$p||g,r=this;return e.$$p=null,t===g?s(r,"enum_for",["each_byte"],(function e(){return(null==e.$$s?this:e.$$s).$bytesize()}),{$$s:r}):(s(r.internal_encoding,"each_byte",[r],t.$to_proc()),r)})),l(i,"$bytes",(function(){var e,t=this;return"string"==typeof t?new String(t).$each_byte().$to_a():(t.bytes=a(e=t.bytes)?e:t.$each_byte().$to_a(),t.bytes.$dup())})),l(i,"$each_char",(function e(){var t=e.$$p||g,r=this;return e.$$p=null,t===g?s(r,"enum_for",["each_char"],(function e(){return(null==e.$$s?this:e.$$s).$length()}),{$$s:r}):(s(r.encoding,"each_char",[r],t.$to_proc()),r)})),l(i,"$chars",(function e(){var t=e.$$p||g;return e.$$p=null,a(t)?s(this,"each_char",[],t.$to_proc()):this.$each_char().$to_a()})),l(i,"$each_codepoint",(function t(){var r=t.$$p||g,n=this;if(t.$$p=null,r===g)return n.$enum_for("each_codepoint");for(var a=0,s=n.length;a<s;a++){var i=n.codePointAt(a);i>65535&&a++,e.yield1(r,i)}return n})),l(i,"$codepoints",(function e(){var t=e.$$p||g;return e.$$p=null,t!==g?s(this,"each_codepoint",[],t.$to_proc()):this.$each_codepoint().$to_a()})),l(i,"$encode",(function(t){return e.enc(this,t)})),l(i,"$force_encoding",(function(t){var r=this;return t===r.encoding?r:(t=p["$coerce_to!"](t,b("String"),"to_s"),(t=b("Encoding").$find(t))===r.encoding?r:r=e.set_encoding(r,t))})),l(i,"$getbyte",(function(e){var t=g;return t=this.$bytes(),e=p["$coerce_to!"](e,b("Integer"),"to_int"),a(m(t.$length(),e))?g:t["$[]"](e)})),l(i,"$initialize_copy",(function(e){return"\n self.encoding = other.encoding;\n self.internal_encoding = other.internal_encoding;\n "})),l(i,"$valid_encoding?",u(!0))}(),t=[b(h("Encoding"),"UTF_8")],s(b("Encoding"),"default_external=",t),t[t.length-1]},Opal.modules["corelib/math"]=function(e){var t=e.type_error,r=e.module,n=e.const_set,a=e.Class,s=e.slice,i=e.Kernel,o=e.defs,l=e.truthy,$=e.send,u=e.def,c=e.rb_minus,_=e.eqeqeq,p=e.rb_divide,m=e.nil,d=e.$$$;return e.add_stubs("new,raise,Float,Integer,module_function,each,define_method,checked,float!,===,gamma,-,integer!,/,infinite?"),function(f,h){var g=r("::","Math"),b=[g].concat(h),v=e.$r(b);return n(g,"E",Math.E),n(g,"PI",Math.PI),n(g,"DomainError",a.$new(d("StandardError"))),o(g,"$checked",(function(e,t){var r;if(r=s(arguments,1),isNaN(r[0])||2==r.length&&isNaN(r[1]))return NaN;var n=Math[e].apply(null,r);return isNaN(n)&&i.$raise(v("DomainError"),'Numerical argument is out of domain - "'+e+'"'),n}),-2),o(g,"$float!",(function(r){try{return i.$Float(r)}catch(n){if(!e.rescue(n,[d("ArgumentError")]))throw n;try{return i.$raise(t(r,d("Float")))}finally{e.pop_exception(n)}}})),o(g,"$integer!",(function(r){try{return i.$Integer(r)}catch(n){if(!e.rescue(n,[d("ArgumentError")]))throw n;try{return i.$raise(t(r,d("Integer")))}finally{e.pop_exception(n)}}})),g.$module_function(),l(void 0!==Math.erf)||e.prop(Math,"erf",(function(e){var t=1;e<0&&(t=-1);var r=1/(1+.3275911*(e=Math.abs(e)));return t*(1-((((1.061405429*r-1.453152027)*r+1.421413741)*r-.284496736)*r+.254829592)*r*Math.exp(-e*e))})),l(void 0!==Math.erfc)||e.prop(Math,"erfc",(function(e){var t=Math.abs(e),r=1/(.5*t+1),n=-t*t-1.26551223+r*(r*(r*(r*(r*(r*(r*(r*(.17087277*r-.82215223)+1.48851587)-1.13520398)+.27886807)-.18628806)+.09678418)+.37409196)+1.00002368),a=r*Math.exp(n);return e<0?2-a:a})),$(["acos","acosh","asin","asinh","atan","atanh","cbrt","cos","cosh","erf","erfc","exp","sin","sinh","sqrt","tanh"],"each",[],(function e(t){return null==t&&(t=m),$(null==e.$$s?this:e.$$s,"define_method",[t],(function(e){return null==e&&(e=m),d("Math").$checked(t,d("Math")["$float!"](e))}))}),{$$s:g}),u(g,"$atan2",(function(e,t){return d("Math").$checked("atan2",d("Math")["$float!"](e),d("Math")["$float!"](t))})),u(g,"$hypot",(function(e,t){return d("Math").$checked("hypot",d("Math")["$float!"](e),d("Math")["$float!"](t))})),u(g,"$frexp",(function(e){if(e=v("Math")["$float!"](e),isNaN(e))return[NaN,0];var t=Math.floor(Math.log(Math.abs(e))/Math.log(2))+1;return[e/Math.pow(2,t),t]})),u(g,"$gamma",(function(e){var t,r,n,a,s,o,l,$,u;e=v("Math")["$float!"](e);var _=[.9999999999999971,57.15623566586292,-59.59796035547549,14.136097974741746,-.4919138160976202,3399464998481189e-20,4652362892704858e-20,-9837447530487956e-20,.0001580887032249125,-.00021026444172410488,.00021743961811521265,-.0001643181065367639,8441822398385275e-20,-26190838401581408e-21,36899182659531625e-22];if(isNaN(e))return NaN;if(0===e&&1/e<0)return-1/0;if(-1!==e&&e!==-1/0||i.$raise(v("DomainError"),'Numerical argument is out of domain - "gamma"'),v("Integer")["$==="](e)){if(e<=0)return isFinite(e)?1/0:NaN;if(e>171)return 1/0;for(a=e-2,s=e-1;a>1;)s*=a,a--;return 0==s&&(s=1),s}if(e<.5)return Math.PI/(Math.sin(Math.PI*e)*d("Math").$gamma(c(1,e)));if(e>=171.35)return 1/0;if(e>85)return u=($=(l=(o=e*e)*e)*e)*e,Math.sqrt(2*Math.PI/e)*Math.pow(e/Math.E,e)*(1+1/(12*e)+1/(288*o)-139/(51840*l)-571/(2488320*$)+163879/(209018880*u)+5246819/(75246796800*u*e));for(e-=1,n=_[0],t=1;t<_.length;++t)n+=_[t]/(e+t);return r=e+4.7421875+.5,Math.sqrt(2*Math.PI)*Math.pow(r,e+.5)*Math.exp(-r)*n})),u(g,"$ldexp",(function(e,t){return e=v("Math")["$float!"](e),t=v("Math")["$integer!"](t),isNaN(t)&&i.$raise(d("RangeError"),"float NaN out of range of integer"),e*Math.pow(2,t)})),u(g,"$lgamma",(function(e){return-1==e?[1/0,1]:[Math.log(Math.abs(d("Math").$gamma(e))),d("Math").$gamma(e)<0?-1:1]})),u(g,"$log",(function(e,r){return _(d("String"),e)&&i.$raise(t(e,d("Float"))),l(null==r)?d("Math").$checked("log",d("Math")["$float!"](e)):(_(d("String"),r)&&i.$raise(t(r,d("Float"))),p(d("Math").$checked("log",d("Math")["$float!"](e)),d("Math").$checked("log",d("Math")["$float!"](r))))}),-2),u(g,"$log10",(function(e){return _(d("String"),e)&&i.$raise(t(e,d("Float"))),d("Math").$checked("log10",d("Math")["$float!"](e))})),u(g,"$log2",(function(e){return _(d("String"),e)&&i.$raise(t(e,d("Float"))),d("Math").$checked("log2",d("Math")["$float!"](e))})),u(g,"$tan",(function(e){return e=d("Math")["$float!"](e),l(e["$infinite?"]())?d(d("Float"),"NAN"):d("Math").$checked("tan",d("Math")["$float!"](e))}))}(0,[])},Opal.modules["corelib/complex/base"]=function(e){var t=e.module,r=e.truthy,n=e.def,a=e.klass,s=[],i=e.nil;return e.add_stubs("new,from_string"),function(a,s){var o=t("::","Kernel"),l=[o].concat(s),$=e.$r(l);n(o,"$Complex",(function(e,t){return null==t&&(t=i),r(t)?$("Complex").$new(e,t):$("Complex").$new(e,0)}),-2)}(0,s),function(t,r,s){var i=a("::",null,"String"),o=[i].concat(s),l=e.$r(o);return n(i,"$to_c",(function(){return l("Complex").$from_string(this)}))}(0,0,s)},Opal.modules["corelib/complex"]=function(e){var t=e.klass,r=e.truthy,n=e.eqeqeq,a=e.Kernel,s=e.defs,i=e.rb_times,o=e.def,l=e.rb_plus,$=e.rb_minus,u=e.rb_divide,c=e.eqeq,_=e.to_ary,p=e.rb_gt,m=e.neqeq,d=e.return_val,f=e.const_set,h=e.alias,g=e.top,b=e.nil,v=e.$$$;return e.add_stubs("require,real?,===,raise,new,*,cos,sin,attr_reader,freeze,class,==,real,imag,Complex,-@,+,__coerced__,-,nan?,/,conj,abs2,quo,polar,exp,log,>,!=,divmod,**,hypot,atan2,lcm,denominator,finite?,hash,infinite?,numerator,abs,arg,rationalize,to_f,to_i,to_r,inspect,zero?,positive?,Rational,rect,angle"),g.$require("corelib/numeric"),g.$require("corelib/complex/base"),function(g,y,x){var w=t("::",y,"Complex"),k=[w].concat(x),U=e.$r(k),E=w.$$prototype;return E.real=E.imag=b,s(w,"$rect",(function(e,t){return null==t&&(t=0),n(v("Numeric"),e)&&r(e["$real?"]())&&n(v("Numeric"),t)&&r(t["$real?"]())||a.$raise(v("TypeError"),"not a real"),this.$new(e,t)}),-2),s(w,"$polar",(function(e,t){return null==t&&(t=0),n(v("Numeric"),e)&&r(e["$real?"]())&&n(v("Numeric"),t)&&r(t["$real?"]())||a.$raise(v("TypeError"),"not a real"),this.$new(i(e,v("Math").$cos(t)),i(e,v("Math").$sin(t)))}),-2),w.$attr_reader("real","imag"),o(w,"$initialize",(function(e,t){var r=this;return null==t&&(t=0),r.real=e,r.imag=t,r.$freeze()}),-2),o(w,"$coerce",(function(e){return n(v("Complex"),e)?[e,this]:n(v("Numeric"),e)&&r(e["$real?"]())?[v("Complex").$new(e,0),this]:a.$raise(v("TypeError"),e.$class()+" can't be coerced into Complex")})),o(w,"$==",(function(e){var t=this,a=b;return n(v("Complex"),e)?r(a=t.real["$=="](e.$real()))?t.imag["$=="](e.$imag()):a:n(v("Numeric"),e)&&r(e["$real?"]())?r(a=t.real["$=="](e))?t.imag["$=="](0):a:e["$=="](t)})),o(w,"$-@",(function(){return a.$Complex(this.real["$-@"](),this.imag["$-@"]())})),o(w,"$+",(function(e){var t=this;return n(v("Complex"),e)?a.$Complex(l(t.real,e.$real()),l(t.imag,e.$imag())):n(v("Numeric"),e)&&r(e["$real?"]())?a.$Complex(l(t.real,e),t.imag):t.$__coerced__("+",e)})),o(w,"$-",(function(e){var t=this;return n(v("Complex"),e)?a.$Complex($(t.real,e.$real()),$(t.imag,e.$imag())):n(v("Numeric"),e)&&r(e["$real?"]())?a.$Complex($(t.real,e),t.imag):t.$__coerced__("-",e)})),o(w,"$*",(function(e){var t=this;return n(v("Complex"),e)?a.$Complex($(i(t.real,e.$real()),i(t.imag,e.$imag())),l(i(t.real,e.$imag()),i(t.imag,e.$real()))):n(v("Numeric"),e)&&r(e["$real?"]())?a.$Complex(i(t.real,e),i(t.imag,e)):t.$__coerced__("*",e)})),o(w,"$/",(function(e){var t=this;return n(v("Complex"),e)?n(v("Number"),t.real)&&r(t.real["$nan?"]())||n(v("Number"),t.imag)&&r(t.imag["$nan?"]())||n(v("Number"),e.$real())&&r(e.$real()["$nan?"]())||n(v("Number"),e.$imag())&&r(e.$imag()["$nan?"]())?v("Complex").$new(v(v("Float"),"NAN"),v(v("Float"),"NAN")):u(i(t,e.$conj()),e.$abs2()):n(v("Numeric"),e)&&r(e["$real?"]())?a.$Complex(t.real.$quo(e),t.imag.$quo(e)):t.$__coerced__("/",e)})),o(w,"$**",(function(e){var t,s,o=this,d=b,f=b,h=b,g=b,y=b,x=b,w=b,k=b,U=b,E=b,M=b;if(c(e,0))return v("Complex").$new(1,0);if(n(v("Complex"),e))return s=o.$polar(),d=null==(t=_(s))[0]?b:t[0],f=null==t[1]?b:t[1],h=e.$real(),g=e.$imag(),y=v("Math").$exp($(i(h,v("Math").$log(d)),i(g,f))),x=l(i(f,h),i(g,v("Math").$log(d))),v("Complex").$polar(y,x);if(n(v("Integer"),e)){if(r(p(e,0))){for(k=w=o,U=$(e,1);m(U,0);){for(s=U.$divmod(2),E=null==(t=_(s))[0]?b:t[0],M=null==t[1]?b:t[1];c(M,0);)w=a.$Complex($(i(w.$real(),w.$real()),i(w.$imag(),w.$imag())),i(i(2,w.$real()),w.$imag())),s=(U=E).$divmod(2),E=null==(t=_(s))[0]?b:t[0],M=null==t[1]?b:t[1];k=i(k,w),U=$(U,1)}return k}return u(v("Rational").$new(1,1),o)["$**"](e["$-@"]())}return n(v("Float"),e)||n(v("Rational"),e)?(s=o.$polar(),d=null==(t=_(s))[0]?b:t[0],f=null==t[1]?b:t[1],v("Complex").$polar(d["$**"](e),i(f,e))):o.$__coerced__("**",e)})),o(w,"$abs",(function(){return v("Math").$hypot(this.real,this.imag)})),o(w,"$abs2",(function(){var e=this;return l(i(e.real,e.real),i(e.imag,e.imag))})),o(w,"$angle",(function(){return v("Math").$atan2(this.imag,this.real)})),o(w,"$conj",(function(){return a.$Complex(this.real,this.imag["$-@"]())})),o(w,"$denominator",(function(){return this.real.$denominator().$lcm(this.imag.$denominator())})),o(w,"$eql?",(function(e){var t,n,a=this;return r(t=r(n=U("Complex")["$==="](e))?a.real.$class()["$=="](a.imag.$class()):n)?a["$=="](e):t})),o(w,"$fdiv",(function(e){return n(v("Numeric"),e)||a.$raise(v("TypeError"),e.$class()+" can't be coerced into Complex"),u(this,e)})),o(w,"$finite?",(function(){var e;return r(e=this.real["$finite?"]())?this.imag["$finite?"]():e})),o(w,"$hash",(function(){return[v("Complex"),this.real,this.imag].$hash()})),o(w,"$infinite?",(function(){var e;return r(e=this.real["$infinite?"]())?e:this.imag["$infinite?"]()})),o(w,"$inspect",(function(){return"("+this+")"})),o(w,"$numerator",(function(){var e,t=this;return e=t.$denominator(),a.$Complex(i(t.real.$numerator(),u(e,t.real.$denominator())),i(t.imag.$numerator(),u(e,t.imag.$denominator())))})),o(w,"$polar",(function(){return[this.$abs(),this.$arg()]})),o(w,"$rationalize",(function(e){var t=this;return arguments.length>1&&a.$raise(v("ArgumentError"),"wrong number of arguments ("+arguments.length+" for 0..1)"),m(t.imag,0)&&a.$raise(v("RangeError"),"can't convert "+t+" into Rational"),t.$real().$rationalize(e)}),-1),o(w,"$real?",d(!1)),o(w,"$rect",(function(){return[this.real,this.imag]})),o(w,"$to_f",(function(){var e=this;return c(e.imag,0)||a.$raise(v("RangeError"),"can't convert "+e+" into Float"),e.real.$to_f()})),o(w,"$to_i",(function(){var e=this;return c(e.imag,0)||a.$raise(v("RangeError"),"can't convert "+e+" into Integer"),e.real.$to_i()})),o(w,"$to_r",(function(){var e=this;return c(e.imag,0)||a.$raise(v("RangeError"),"can't convert "+e+" into Rational"),e.real.$to_r()})),o(w,"$to_s",(function(){var e=this,t=b;return t=e.real.$inspect(),t=l(t,n(v("Number"),e.imag)&&r(e.imag["$nan?"]())||r(e.imag["$positive?"]())||r(e.imag["$zero?"]())?"+":"-"),t=l(t,e.imag.$abs().$inspect()),n(v("Number"),e.imag)&&(r(e.imag["$nan?"]())||r(e.imag["$infinite?"]()))&&(t=l(t,"*")),l(t,"i")})),f(k[0],"I",w.$new(0,1)),s(w,"$from_string",(function(e){var t,r,n=/[+-]?[\d_]+(\.[\d_]+)?(e\d+)?/;e.match(n);function s(){return n.test(e)}function i(){var t=e.match(n)[0];return e=e.slice(t.length),t.replace(/_/g,"")}function o(){if(s()){var t=parseFloat(i());if("/"===e[0]){if(e=e.slice(1),s()){var r=parseFloat(i());return a.$Rational(t,r)}return e="/"+e,t}return t}return null}return(t=o())?(r=o())?a.$Complex(t,r):"i"===e[0]?a.$Complex(0,t):a.$Complex(t,0):"i"===e[0]?a.$Complex(0,1):"-"===e[0]&&"i"===e[1]?a.$Complex(0,-1):"+"===e[0]&&"i"===e[1]?a.$Complex(0,1):a.$Complex(0,0)})),function(e,t){h(e,"rectangular","rect")}(e.get_singleton_class(w)),h(w,"arg","angle"),h(w,"conjugate","conj"),h(w,"divide","/"),h(w,"imaginary","imag"),h(w,"magnitude","abs"),h(w,"phase","arg"),h(w,"quo","/"),h(w,"rectangular","rect"),e.udef(w,"$negative?"),e.udef(w,"$positive?"),e.udef(w,"$step"),b}(0,v("Numeric"),[])},Opal.modules["corelib/rational/base"]=function(e){var t=e.module,r=e.def,n=e.klass,a=(e.nil,e.$$$);return e.add_stubs("convert,from_string"),function(e){var n=t("::","Kernel");r(n,"$Rational",(function(e,t){return null==t&&(t=1),a("Rational").$convert(e,t)}),-2)}(),function(e,t){var s=n("::",null,"String");return r(s,"$to_r",(function(){return a("Rational").$from_string(this)}))}()},Opal.modules["corelib/rational"]=function(e){var t=e.klass,r=e.eqeq,n=e.Kernel,a=e.truthy,s=e.rb_lt,i=e.rb_divide,o=e.defs,l=e.eqeqeq,$=e.not,u=e.Opal,c=e.def,_=e.return_ivar,p=e.rb_minus,m=e.rb_times,d=e.rb_plus,f=e.rb_gt,h=e.rb_le,g=e.return_self,b=e.alias,v=e.top,y=e.nil,x=e.$$$;return e.add_stubs("require,to_i,==,raise,<,-@,new,gcd,/,nil?,===,reduce,to_r,!,equal?,coerce_to!,freeze,to_f,numerator,denominator,<=>,-,*,__coerced__,+,Rational,>,**,abs,ceil,with_precision,floor,hash,<=,truncate,send"),v.$require("corelib/numeric"),v.$require("corelib/rational/base"),function(e,v){var w=t("::",v,"Rational"),k=w.$$prototype;return k.num=k.den=y,o(w,"$reduce",(function(e,t){var o;if(e=e.$to_i(),t=t.$to_i(),r(t,0))n.$raise(x("ZeroDivisionError"),"divided by 0");else if(a(s(t,0)))e=e["$-@"](),t=t["$-@"]();else if(r(t,1))return this.$new(e,t);return o=e.$gcd(t),this.$new(i(e,o),i(t,o))})),o(w,"$convert",(function(e,t){return(a(e["$nil?"]())||a(t["$nil?"]()))&&n.$raise(x("TypeError"),"cannot convert nil into Rational"),l(x("Integer"),e)&&l(x("Integer"),t)?this.$reduce(e,t):((l(x("Float"),e)||l(x("String"),e)||l(x("Complex"),e))&&(e=e.$to_r()),(l(x("Float"),t)||l(x("String"),t)||l(x("Complex"),t))&&(t=t.$to_r()),a(t["$equal?"](1))&&$(x("Integer")["$==="](e))?u["$coerce_to!"](e,x("Rational"),"to_r"):l(x("Numeric"),e)&&l(x("Numeric"),t)?i(e,t):this.$reduce(e,t))})),c(w,"$initialize",(function(e,t){var r=this;return r.num=e,r.den=t,r.$freeze()})),c(w,"$numerator",_("num")),c(w,"$denominator",_("den")),c(w,"$coerce",(function(e){var t,r=this;return l(x("Rational"),t=e)?[e,r]:l(x("Integer"),t)?[e.$to_r(),r]:l(x("Float"),t)?[e,r.$to_f()]:y})),c(w,"$==",(function(e){var t,r=this,n=y;return l(x("Rational"),t=e)?a(n=r.num["$=="](e.$numerator()))?r.den["$=="](e.$denominator()):n:l(x("Integer"),t)?a(n=r.num["$=="](e))?r.den["$=="](1):n:l(x("Float"),t)?r.$to_f()["$=="](e):e["$=="](r)})),c(w,"$<=>",(function(e){var t,r=this;return l(x("Rational"),t=e)?p(m(r.num,e.$denominator()),m(r.den,e.$numerator()))["$<=>"](0):l(x("Integer"),t)?p(r.num,m(r.den,e))["$<=>"](0):l(x("Float"),t)?r.$to_f()["$<=>"](e):r.$__coerced__("<=>",e)})),c(w,"$+",(function(e){var t,r=this,a=y,s=y;return l(x("Rational"),t=e)?(a=d(m(r.num,e.$denominator()),m(r.den,e.$numerator())),s=m(r.den,e.$denominator()),n.$Rational(a,s)):l(x("Integer"),t)?n.$Rational(d(r.num,m(e,r.den)),r.den):l(x("Float"),t)?d(r.$to_f(),e):r.$__coerced__("+",e)})),c(w,"$-",(function(e){var t,r=this,a=y,s=y;return l(x("Rational"),t=e)?(a=p(m(r.num,e.$denominator()),m(r.den,e.$numerator())),s=m(r.den,e.$denominator()),n.$Rational(a,s)):l(x("Integer"),t)?n.$Rational(p(r.num,m(e,r.den)),r.den):l(x("Float"),t)?p(r.$to_f(),e):r.$__coerced__("-",e)})),c(w,"$*",(function(e){var t,r=this,a=y,s=y;return l(x("Rational"),t=e)?(a=m(r.num,e.$numerator()),s=m(r.den,e.$denominator()),n.$Rational(a,s)):l(x("Integer"),t)?n.$Rational(m(r.num,e),r.den):l(x("Float"),t)?m(r.$to_f(),e):r.$__coerced__("*",e)})),c(w,"$/",(function(e){var t,a=this,s=y,o=y;return l(x("Rational"),t=e)?(s=m(a.num,e.$denominator()),o=m(a.den,e.$numerator()),n.$Rational(s,o)):l(x("Integer"),t)?r(e,0)?i(a.$to_f(),0):n.$Rational(a.num,m(a.den,e)):l(x("Float"),t)?i(a.$to_f(),e):a.$__coerced__("/",e)})),c(w,"$**",(function(e){var t,i=this;return l(x("Integer"),t=e)?r(i,0)&&a(s(e,0))?x(x("Float"),"INFINITY"):a(f(e,0))?n.$Rational(i.num["$**"](e),i.den["$**"](e)):a(s(e,0))?n.$Rational(i.den["$**"](e["$-@"]()),i.num["$**"](e["$-@"]())):n.$Rational(1,1):l(x("Float"),t)?i.$to_f()["$**"](e):l(x("Rational"),t)?r(e,0)?n.$Rational(1,1):r(e.$denominator(),1)?a(s(e,0))?n.$Rational(i.den["$**"](e.$numerator().$abs()),i.num["$**"](e.$numerator().$abs())):n.$Rational(i.num["$**"](e.$numerator()),i.den["$**"](e.$numerator())):r(i,0)&&a(s(e,0))?n.$raise(x("ZeroDivisionError"),"divided by 0"):i.$to_f()["$**"](e):i.$__coerced__("**",e)})),c(w,"$abs",(function(){return n.$Rational(this.num.$abs(),this.den.$abs())})),c(w,"$ceil",(function(e){var t=this;return null==e&&(e=0),r(e,0)?i(t.num["$-@"](),t.den)["$-@"]().$ceil():t.$with_precision("ceil",e)}),-1),c(w,"$floor",(function(e){var t=this;return null==e&&(e=0),r(e,0)?i(t.num["$-@"](),t.den)["$-@"]().$floor():t.$with_precision("floor",e)}),-1),c(w,"$hash",(function(){return[x("Rational"),this.num,this.den].$hash()})),c(w,"$inspect",(function(){return"("+this+")"})),c(w,"$rationalize",(function(e){var t=this;if(arguments.length>1&&n.$raise(x("ArgumentError"),"wrong number of arguments ("+arguments.length+" for 0..1)"),null==e)return t;for(var r,a,s,o,l,$=e.$abs(),u=p(t,$),c=d(t,$),_=0,m=1,f=1,g=0;s=u.$ceil(),!h(s,c);)r=(o=s-1)*m+_,a=o*g+f,l=i(1,p(c,o)),c=i(1,p(u,o)),u=l,_=m,f=g,m=r,g=a;return n.$Rational(s*m+_,s*g+f)}),-1),c(w,"$round",(function(e){var t,n,o=this,l=y;return null==e&&(e=0),r(e,0)?r(o.num,0)?0:r(o.den,1)?o.num:(t=d(m(o.num.$abs(),2),o.den),n=m(o.den,2),l=i(t,n).$truncate(),a(s(o.num,0))?l["$-@"]():l):o.$with_precision("round",e)}),-1),c(w,"$to_f",(function(){return i(this.num,this.den)})),c(w,"$to_i",(function(){return this.$truncate()})),c(w,"$to_r",g),c(w,"$to_s",(function(){return this.num+"/"+this.den})),c(w,"$truncate",(function(e){var t=this;return null==e&&(e=0),r(e,0)?a(s(t.num,0))?t.$ceil():t.$floor():t.$with_precision("truncate",e)}),-1),c(w,"$with_precision",(function(e,t){var r,o=y;return l(x("Integer"),t)||n.$raise(x("TypeError"),"not an Integer"),r=10["$**"](t),o=m(this,r),a(s(t,1))?i(o.$send(e),r).$to_i():n.$Rational(o.$send(e),r)})),o(w,"$from_string",(function(e){var t,r,a=e.trimLeft(),s=/^[+-]?[\d_]+(\.[\d_]+)?/;a.match(s);function i(){return s.test(a)}function o(){var e=a.match(s)[0];return a=a.slice(e.length),e.replace(/_/g,"")}return i()?(t=parseFloat(o()),"/"===a[0]?(a=a.slice(1),i()?(r=parseFloat(o()),n.$Rational(t,r)):n.$Rational(t,1)):n.$Rational(t,1)):n.$Rational(0,1)})),b(w,"divide","/"),b(w,"quo","/")}(0,x("Numeric"))},Opal.modules["corelib/time"]=function(e){var t=e.slice,r=e.deny_frozen_access,n=e.klass,a=e.Kernel,s=e.Opal,i=e.defs,o=e.eqeqeq,l=e.def,$=e.truthy,u=e.rb_gt,c=e.rb_lt,_=e.send,p=e.rb_plus,m=e.rb_divide,d=e.rb_minus,f=e.range,h=e.neqeq,g=e.rb_le,b=e.eqeq,v=e.alias,y=e.top,x=e.nil,w=e.$$$;return e.add_stubs("require,include,===,raise,coerce_to!,respond_to?,to_str,to_i,_parse_offset,new,<=>,to_f,nil?,>,<,strftime,each,define_method,year,month,day,+,round,/,-,copy_instance_variables,initialize_dup,is_a?,zero?,wday,hash,utc?,mon,yday,hour,min,sec,rjust,ljust,zone,to_s,[],cweek_cyear,jd,to_date,format,isdst,!=,<=,==,ceil,local,gm,asctime,getgm,gmt_offset,inspect,usec,gmtime,gmt?"),y.$require("corelib/comparable"),function(y,k,U){var E=n("::",k,"Time"),M=[E].concat(U),q=e.$r(M);E.$include(w("Comparable"));var S=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],O=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],A=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],T=["January","February","March","April","May","June","July","August","September","October","November","December"];function N(e,t,r,n,i,o){if(e=e.$$is_string?parseInt(e,10):s["$coerce_to!"](e,w("Integer"),"to_int"),t===x)t=1;else if(!t.$$is_number)if(t["$respond_to?"]("to_str"))switch((t=t.$to_str()).toLowerCase()){case"jan":t=1;break;case"feb":t=2;break;case"mar":t=3;break;case"apr":t=4;break;case"may":t=5;break;case"jun":t=6;break;case"jul":t=7;break;case"aug":t=8;break;case"sep":t=9;break;case"oct":t=10;break;case"nov":t=11;break;case"dec":t=12;break;default:t=t.$to_i()}else t=s["$coerce_to!"](t,w("Integer"),"to_int");return(t<1||t>12)&&a.$raise(w("ArgumentError"),"month out of range: "+t),t-=1,((r=r===x?1:r.$$is_string?parseInt(r,10):s["$coerce_to!"](r,w("Integer"),"to_int"))<1||r>31)&&a.$raise(w("ArgumentError"),"day out of range: "+r),((n=n===x?0:n.$$is_string?parseInt(n,10):s["$coerce_to!"](n,w("Integer"),"to_int"))<0||n>24)&&a.$raise(w("ArgumentError"),"hour out of range: "+n),((i=i===x?0:i.$$is_string?parseInt(i,10):s["$coerce_to!"](i,w("Integer"),"to_int"))<0||i>59)&&a.$raise(w("ArgumentError"),"min out of range: "+i),o===x?o=0:o.$$is_number||(o=o.$$is_string?parseInt(o,10):s["$coerce_to!"](o,w("Integer"),"to_int")),(o<0||o>60)&&a.$raise(w("ArgumentError"),"sec out of range: "+o),[e,t,r,n,i,o]}return i(E,"$at",(function(e,t){var r;return w("Time")["$==="](e)?(void 0!==t&&a.$raise(w("TypeError"),"can't convert Time into an exact number"),(r=new Date(e.getTime())).timezone=e.timezone,r):(e.$$is_number||(e=s["$coerce_to!"](e,w("Integer"),"to_int")),void 0===t?new Date(1e3*e):(t.$$is_number||(t=s["$coerce_to!"](t,w("Integer"),"to_int")),new Date(1e3*e+t/1e3)))}),-2),i(E,"$new",(function(e,t,r,n,a,s,i){var o,l,$,u;return null==t&&(t=x),null==r&&(r=x),null==n&&(n=x),null==a&&(a=x),null==s&&(s=x),null==i&&(i=x),void 0===e?new Date:(e=(o=N(e,t,r,n,a,s))[0],t=o[1],r=o[2],n=o[3],a=o[4],s=o[5],i===x?(l=new Date(e,t,r,n,a,0,1e3*s),e<100&&l.setFullYear(e),l):($=this.$_parse_offset(i),u=new Date(Date.UTC(e,t,r,n,a,0,1e3*s)),e<100&&u.setUTCFullYear(e),(l=new Date(u.getTime()-36e5*$)).timezone=$,l))}),-1),i(E,"$_parse_offset",(function(e){var t;if(e.$$is_string)if("UTC"==e)t=0;else if(/^[+-]\d\d:[0-5]\d$/.test(e)){t=("-"==e[0]?-1:1)*(+(e[1]+e[2])+ +(e[4]+e[5])/60)}else a.$raise(w("ArgumentError"),'"+HH:MM", "-HH:MM", "UTC" expected for utc_offset: '+e);else e.$$is_number?t=e/3600:a.$raise(w("ArgumentError"),"Opal doesn't support other types for a timezone argument than Integer and String");return t})),i(E,"$local",(function(e,r,n,a,s,i,o,l,$,u){var c,_;return null==r&&(r=x),null==n&&(n=x),null==a&&(a=x),null==s&&(s=x),null==i&&(i=x),null==o&&(o=x),null==l&&(l=x),null==$&&($=x),null==u&&(u=x),10===arguments.length&&(e=(c=t(arguments))[5],r=c[4],n=c[3],a=c[2],s=c[1],i=c[0]),e=(c=N(e,r,n,a,s,i))[0],r=c[1],n=c[2],a=c[3],s=c[4],i=c[5],_=new Date(e,r,n,a,s,0,1e3*i),e<100&&_.setFullYear(e),_}),-2),i(E,"$gm",(function(e,r,n,a,s,i,o,l,$,u){var c,_;return null==r&&(r=x),null==n&&(n=x),null==a&&(a=x),null==s&&(s=x),null==i&&(i=x),null==o&&(o=x),null==l&&(l=x),null==$&&($=x),null==u&&(u=x),10===arguments.length&&(e=(c=t(arguments))[5],r=c[4],n=c[3],a=c[2],s=c[1],i=c[0]),e=(c=N(e,r,n,a,s,i))[0],r=c[1],n=c[2],a=c[3],s=c[4],i=c[5],_=new Date(Date.UTC(e,r,n,a,s,0,1e3*i)),e<100&&_.setUTCFullYear(e),_.timezone=0,_}),-2),i(E,"$now",(function(){return this.$new()})),l(E,"$+",(function(e){o(w("Time"),e)&&a.$raise(w("TypeError"),"time + time?"),e.$$is_number||(e=s["$coerce_to!"](e,w("Integer"),"to_int"));var t=new Date(this.getTime()+1e3*e);return t.timezone=this.timezone,t})),l(E,"$-",(function(e){var t=this;if(o(w("Time"),e))return(t.getTime()-e.getTime())/1e3;e.$$is_number||(e=s["$coerce_to!"](e,w("Integer"),"to_int"));var r=new Date(t.getTime()-1e3*e);return r.timezone=t.timezone,r})),l(E,"$<=>",(function(e){var t=x;return o(w("Time"),e)?this.$to_f()["$<=>"](e.$to_f()):(t=e["$<=>"](this),$(t["$nil?"]())?x:$(u(t,0))?-1:$(c(t,0))?1:0)})),l(E,"$==",(function(e){var t;return $(t=w("Time")["$==="](e))?this.$to_f()===e.$to_f():t})),l(E,"$asctime",(function(){return this.$strftime("%a %b %e %H:%M:%S %Y")})),_([["year","getFullYear","getUTCFullYear"],["mon","getMonth","getUTCMonth",1],["wday","getDay","getUTCDay"],["day","getDate","getUTCDate"],["hour","getHours","getUTCHours"],["min","getMinutes","getUTCMinutes"],["sec","getSeconds","getUTCSeconds"]],"each",[],(function e(t,r,n,a){var s=null==e.$$s?this:e.$$s;return null==t&&(t=x),null==r&&(r=x),null==n&&(n=x),null==a&&(a=0),_(s,"define_method",[t],(function e(){var t=null==e.$$s?this:e.$$s;return a+(null!=t.timezone?new Date(t.getTime()+36e5*t.timezone)[n]():t[r]())}),{$$s:s})}),{$$arity:-4,$$s:E}),l(E,"$yday",(function(){var e,t,r=this;return e=q("Time").$new(r.$year()).$to_i(),t=q("Time").$new(r.$year(),r.$month(),r.$day()).$to_i(),86400,p(m(d(t,e),86400).$round(),1)})),l(E,"$isdst",(function(){var e=this,t=new Date(e.getFullYear(),0,1),r=new Date(e.getFullYear(),6,1);return e.getTimezoneOffset()<Math.max(t.getTimezoneOffset(),r.getTimezoneOffset())})),l(E,"$dup",(function(){var e=this,t=x;return(t=new Date(e.getTime())).$copy_instance_variables(e),t.$initialize_dup(e),t})),l(E,"$eql?",(function(e){var t;return $(t=e["$is_a?"](w("Time")))?this["$<=>"](e)["$zero?"]():t})),_([["sunday?",0],["monday?",1],["tuesday?",2],["wednesday?",3],["thursday?",4],["friday?",5],["saturday?",6]],"each",[],(function e(t,r){var n=null==e.$$s?this:e.$$s;return null==t&&(t=x),null==r&&(r=x),_(n,"define_method",[t],(function e(){return(null==e.$$s?this:e.$$s).$wday()===r}),{$$s:n})}),{$$s:E}),l(E,"$hash",(function(){return[w("Time"),this.getTime()].$hash()})),l(E,"$inspect",(function(){var e=this;return $(e["$utc?"]())?e.$strftime("%Y-%m-%d %H:%M:%S UTC"):e.$strftime("%Y-%m-%d %H:%M:%S %z")})),l(E,"$succ",(function(){var e=new Date(this.getTime()+1e3);return e.timezone=this.timezone,e})),l(E,"$usec",(function(){return 1e3*this.getMilliseconds()})),l(E,"$zone",(function(){var e=this;if(0===e.timezone)return"UTC";if(null!=e.timezone)return x;var t,r=e.toString();return"GMT"==(t=-1==r.indexOf("(")?r.match(/[A-Z]{3,4}/)[0]:r.match(/\((.+)\)(?:\s|$)/)[1])&&/(GMT\W*\d{4})/.test(r)?RegExp.$1:t})),l(E,"$getgm",(function(){var e=new Date(this.getTime());return e.timezone=0,e})),l(E,"$gmtime",(function(){var e=this;return 0!==e.timezone&&(r(e),e.timezone=0),e})),l(E,"$gmt?",(function(){return 0===this.timezone})),l(E,"$gmt_offset",(function(){var e=this;return null!=e.timezone?60*e.timezone:60*-e.getTimezoneOffset()})),l(E,"$strftime",(function(e){var t=this;return e.replace(/%([\-_#^0]*:{0,2})(\d+)?([EO]*)(.)/g,(function(e,r,n,a,s){var i,o,l,$="",u=-1!==r.indexOf("0"),c=-1===r.indexOf("-"),_=-1!==r.indexOf("_"),p=-1!==r.indexOf("^"),m=-1!==r.indexOf("#"),h=(r.match(":")||[]).length;switch(n=parseInt(n,10),u&&_&&(r.indexOf("0")<r.indexOf("_")?u=!1:_=!1),s){case"Y":$+=t.$year();break;case"C":u=!_,$+=Math.round(t.$year()/100);break;case"y":u=!_,$+=t.$year()%100;break;case"m":u=!_,$+=t.$mon();break;case"B":$+=T[t.$mon()-1];break;case"b":case"h":_=!u,$+=A[t.$mon()-1];break;case"d":u=!_,$+=t.$day();break;case"e":_=!u,$+=t.$day();break;case"j":u=!_,n=isNaN(n)?3:n,$+=t.$yday();break;case"H":u=!_,$+=t.$hour();break;case"k":_=!u,$+=t.$hour();break;case"I":u=!_,$+=t.$hour()%12||12;break;case"l":_=!u,$+=t.$hour()%12||12;break;case"P":$+=t.$hour()>=12?"pm":"am";break;case"p":$+=t.$hour()>=12?"PM":"AM";break;case"M":u=!_,$+=t.$min();break;case"S":u=!_,$+=t.$sec();break;case"L":u=!_,n=isNaN(n)?3:n,$+=t.getMilliseconds();break;case"N":n=isNaN(n)?9:n,$=($+=t.getMilliseconds().toString().$rjust(3,"0")).$ljust(n,"0");break;case"z":var g=null==t.timezone?t.getTimezoneOffset():60*-t.timezone,b=Math.floor(Math.abs(g)/60),v=Math.abs(g)%60;$+=g<0?"+":"-",$+=b<10?"0":"",$+=b,h>0&&($+=":"),$+=v<10?"0":"",$+=v,h>1&&($+=":00");break;case"Z":$+=t.$zone();break;case"A":$+=S[t.$wday()];break;case"a":$+=O[t.$wday()];break;case"u":$+=t.$wday()+1;break;case"w":$+=t.$wday();break;case"V":$+=t.$cweek_cyear()["$[]"](0).$to_s().$rjust(2,"0");break;case"G":$+=t.$cweek_cyear()["$[]"](1);break;case"g":$+=t.$cweek_cyear()["$[]"](1)["$[]"](f(-2,-1,!1));break;case"s":$+=t.$to_i();break;case"n":$+="\n";break;case"t":$+="\t";break;case"%":$+="%";break;case"c":$+=t.$strftime("%a %b %e %T %Y");break;case"D":case"x":$+=t.$strftime("%m/%d/%y");break;case"F":$+=t.$strftime("%Y-%m-%d");break;case"v":$+=t.$strftime("%e-%^b-%4Y");break;case"r":$+=t.$strftime("%I:%M:%S %p");break;case"R":$+=t.$strftime("%H:%M");break;case"T":case"X":$+=t.$strftime("%H:%M:%S");break;case"J":if((i=t.$to_date().$jd())<2405160){$+=t.$strftime("%Y-%m-%d");break}i<2419614?(o="M",l=1867):i<2424875?(o="T",l=1911):i<2447535?(o="S",l=1925):i<2458605?(o="H",l=1988):(o="R",l=2018),$+=t.$format("%c%02d",o,d(t.$year(),l)),$+=t.$strftime("-%m-%d");break;default:return e}return p&&($=$.toUpperCase()),m&&($=$.replace(/[A-Z]/,(function(e){e.toLowerCase()})).replace(/[a-z]/,(function(e){e.toUpperCase()}))),c&&(u||_)&&($=$.$rjust(isNaN(n)?2:n,_?" ":"0")),$}))})),l(E,"$to_a",(function(){var e=this;return[e.$sec(),e.$min(),e.$hour(),e.$day(),e.$month(),e.$year(),e.$wday(),e.$yday(),e.$isdst(),e.$zone()]})),l(E,"$to_f",(function(){return this.getTime()/1e3})),l(E,"$to_i",(function(){return parseInt(this.getTime()/1e3,10)})),l(E,"$cweek_cyear",(function(){var e,t=this,r=x,n=x,a=x,s=x;return e=w("Time").$new(t.$year(),1,1).$wday(),0,r=t.$year(),$(g(e,4))&&h(e,0)?n=d(e,1):(n=d(d(e,7),1),b(n,-8)&&(n=-1)),a=m(p(t.$yday(),n),7).$ceil(),$(g(a,0))?w("Time").$new(d(t.$year(),1),12,31).$cweek_cyear():(b(a,53)&&(s=w("Time").$new(t.$year(),12,31).$wday(),$(g(s,3))&&h(s,0)&&(a=1,r=p(r,1))),[a,r])})),function(e,t){v(e,"mktime","local"),v(e,"utc","gm")}(e.get_singleton_class(E)),v(E,"ctime","asctime"),v(E,"dst?","isdst"),v(E,"getutc","getgm"),v(E,"gmtoff","gmt_offset"),v(E,"mday","day"),v(E,"month","mon"),v(E,"to_s","inspect"),v(E,"tv_sec","to_i"),v(E,"tv_usec","usec"),v(E,"utc","gmtime"),v(E,"utc?","gmt?"),v(E,"utc_offset","gmt_offset")}(0,Date,[])},Opal.modules["corelib/struct"]=function(e){var t=e.klass,r=e.slice,n=e.extract_kwargs,a=e.ensure_kwargs,s=e.hash_get,i=e.truthy,o=e.neqeq,l=e.eqeq,$=e.Opal,u=e.send,c=e.Class,_=e.to_a,p=e.def,m=e.defs,d=e.Kernel,f=e.rb_gt,h=e.rb_minus,g=e.eqeqeq,b=e.rb_lt,v=e.rb_ge,y=e.rb_plus,x=e.alias,w=e.top,k=e.nil,U=e.$$$;return e.add_stubs("require,include,!=,upcase,[],==,class,unshift,const_name!,map,coerce_to!,new,each,define_struct_attribute,allocate,initialize,alias_method,module_eval,to_proc,const_set,raise,<<,members,define_method,instance_eval,last,>,length,-,keys,any?,join,[]=,each_with_index,hash,to_a,===,<,-@,size,>=,include?,to_sym,instance_of?,__id__,eql?,enum_for,+,name,each_pair,inspect,to_h,each_with_object,flatten,respond_to?,dig"),w.$require("corelib/enumerable"),function(w,E,M){var q=t("::",null,"Struct"),S=[q].concat(M),O=e.$r(S);q.$include(U("Enumerable")),m(q,"$new",(function t(m,d,f){var h,g,b,v,y=t.$$p||k,x=k;if(t.$$p=null,h=r(arguments,1),g=n(h),g=a(g),b=h,null==(v=s(g,"keyword_init"))&&(v=!1),i(m))if(l(m.$class(),U("String"))&&o(m["$[]"](0).$upcase(),m["$[]"](0)))b.$unshift(m),m=k;else try{m=$["$const_name!"](m)}catch(t){if(!e.rescue(t,[U("TypeError"),U("NameError")]))throw t;try{b.$unshift(m),m=k}finally{e.pop_exception(t)}}return u(b,"map",[],(function(e){return null==e&&(e=k),$["$coerce_to!"](e,U("String"),"to_str")})),x=u(c,"new",[this],(function t(){var n=null==t.$$s?this:t.$$s;return u(b,"each",[],(function e(t){return null==t&&(t=k),(null==e.$$s?this:e.$$s).$define_struct_attribute(t)}),{$$s:n}),function(e,t){return p(e,"$new",(function(e){var t,n=k;return t=r(arguments),(n=this.$allocate()).$$data={},u(n,"initialize",_(t)),n}),-1),e.$alias_method("[]","new")}(e.get_singleton_class(n))}),{$$s:this}),i(y)&&u(x,"module_eval",[],y.$to_proc()),x.$$keyword_init=v,i(m)&&U("Struct").$const_set(m,x),x}),-2),m(q,"$define_struct_attribute",(function(e){var t=this;return l(t,U("Struct"))&&d.$raise(U("ArgumentError"),"you cannot define attributes to the Struct class"),t.$members()["$<<"](e),u(t,"define_method",[e],(function t(){return(null==t.$$s?this:t.$$s).$$data[e]}),{$$s:t}),u(t,"define_method",[e+"="],(function t(r){return null==r&&(r=k),(null==t.$$s?this:t.$$s).$$data[e]=r}),{$$s:t})})),m(q,"$members",(function(){var e,t=this;return null==t.members&&(t.members=k),l(t,U("Struct"))&&d.$raise(U("ArgumentError"),"the Struct class has no members"),t.members=i(e=t.members)?e:[]})),m(q,"$inherited",(function(e){var t,r=this;return null==r.members&&(r.members=k),t=r.members,u(e,"instance_eval",[],(function e(){return(null==e.$$s?this:e.$$s).members=t}),{$$s:r})})),p(q,"$initialize",(function(e){var t,n,a=this,s=k,o=k,l=k;return t=r(arguments),n=t,i(a.$class().$$keyword_init)?(s=i(o=n.$last())?o:new Map,(i(f(n.$length(),1))||i(1===n.length&&!s.$$is_hash))&&d.$raise(U("ArgumentError"),"wrong number of arguments (given "+n.$length()+", expected 0)"),l=h(s.$keys(),a.$class().$members()),i(l["$any?"]())&&d.$raise(U("ArgumentError"),"unknown keywords: "+l.$join(", ")),u(a.$class().$members(),"each",[],(function e(t){var r,n=null==e.$$s?this:e.$$s;return null==t&&(t=k),r=[t,s["$[]"](t)],u(n,"[]=",r),r[r.length-1]}),{$$s:a})):(i(f(n.$length(),a.$class().$members().$length()))&&d.$raise(U("ArgumentError"),"struct size differs"),u(a.$class().$members(),"each_with_index",[],(function e(t,r){var a,s=null==e.$$s?this:e.$$s;return null==t&&(t=k),null==r&&(r=k),a=[t,n["$[]"](r)],u(s,"[]=",a),a[a.length-1]}),{$$s:a}))}),-1),p(q,"$initialize_copy",(function(e){this.$$data={};var t,r,n,a=Object.keys(e.$$data);for(t=0,r=a.length;t<r;t++)n=a[t],this.$$data[n]=e.$$data[n]})),m(q,"$keyword_init?",(function(){return this.$$keyword_init})),p(q,"$members",(function(){return this.$class().$members()})),p(q,"$hash",(function(){return[this.$class(),this.$to_a()].$hash()})),p(q,"$[]",(function(e){var t=this;return g(U("Integer"),e)?(i(b(e,t.$class().$members().$size()["$-@"]()))&&d.$raise(U("IndexError"),"offset "+e+" too small for struct(size:"+t.$class().$members().$size()+")"),i(v(e,t.$class().$members().$size()))&&d.$raise(U("IndexError"),"offset "+e+" too large for struct(size:"+t.$class().$members().$size()+")"),e=t.$class().$members()["$[]"](e)):g(U("String"),e)?t.$$data.hasOwnProperty(e)||d.$raise(U("NameError").$new("no member '"+e+"' in struct",e)):d.$raise(U("TypeError"),"no implicit conversion of "+e.$class()+" into Integer"),e=$["$coerce_to!"](e,U("String"),"to_str"),t.$$data[e]})),p(q,"$[]=",(function(e,t){var r=this;return g(U("Integer"),e)?(i(b(e,r.$class().$members().$size()["$-@"]()))&&d.$raise(U("IndexError"),"offset "+e+" too small for struct(size:"+r.$class().$members().$size()+")"),i(v(e,r.$class().$members().$size()))&&d.$raise(U("IndexError"),"offset "+e+" too large for struct(size:"+r.$class().$members().$size()+")"),e=r.$class().$members()["$[]"](e)):g(U("String"),e)?i(r.$class().$members()["$include?"](e.$to_sym()))||d.$raise(U("NameError").$new("no member '"+e+"' in struct",e)):d.$raise(U("TypeError"),"no implicit conversion of "+e.$class()+" into Integer"),e=$["$coerce_to!"](e,U("String"),"to_str"),r.$$data[e]=t})),p(q,"$==",(function(e){if(!i(e["$instance_of?"](this.$class())))return!1;var t={},r={};return function e(n,a){var s,i,o;for(s in t[n.$__id__()]=!0,r[a.$__id__()]=!0,n.$$data)if(i=n.$$data[s],o=a.$$data[s],U("Struct")["$==="](i)){if(!(t.hasOwnProperty(i.$__id__())&&r.hasOwnProperty(o.$__id__())||e(i,o)))return!1}else if(!i["$=="](o))return!1;return!0}(this,e)})),p(q,"$eql?",(function(e){if(!i(e["$instance_of?"](this.$class())))return!1;var t={},r={};return function e(n,a){var s,i,o;for(s in t[n.$__id__()]=!0,r[a.$__id__()]=!0,n.$$data)if(i=n.$$data[s],o=a.$$data[s],U("Struct")["$==="](i)){if(!(t.hasOwnProperty(i.$__id__())&&r.hasOwnProperty(o.$__id__())||e(i,o)))return!1}else if(!i["$eql?"](o))return!1;return!0}(this,e)})),p(q,"$each",(function t(){var r=t.$$p||k,n=this;return t.$$p=null,r===k?u(n,"enum_for",["each"],(function e(){return(null==e.$$s?this:e.$$s).$size()}),{$$s:n}):(u(n.$class().$members(),"each",[],(function t(n){var a=null==t.$$s?this:t.$$s;return null==n&&(n=k),e.yield1(r,a["$[]"](n))}),{$$s:n}),n)})),p(q,"$each_pair",(function t(){var r=t.$$p||k,n=this;return t.$$p=null,r===k?u(n,"enum_for",["each_pair"],(function e(){return(null==e.$$s?this:e.$$s).$size()}),{$$s:n}):(u(n.$class().$members(),"each",[],(function t(n){var a=null==t.$$s?this:t.$$s;return null==n&&(n=k),e.yield1(r,[n,a["$[]"](n)])}),{$$s:n}),n)})),p(q,"$length",(function(){return this.$class().$members().$length()})),p(q,"$to_a",(function(){return u(this.$class().$members(),"map",[],(function e(t){return null==t&&(t=k),(null==e.$$s?this:e.$$s)["$[]"](t)}),{$$s:this})}));var A=[];return p(q,"$inspect",(function(){var e=this,t=k,r=k;return function(){try{return t="#<struct ",i(A["$include?"](e.$__id__()))?y(t,":...>"):(A["$<<"](e.$__id__()),r=!0,g(U("Struct"),e)&&i(e.$class().$name())&&(t=y(t,e.$class()+" ")),t=y(t,u(e.$each_pair(),"map",[],(function(e,t){return null==e&&(e=k),null==t&&(t=k),e+"="+O("Opal").$inspect(t)})).$join(", ")),t=y(t,">"))}finally{i(r)&&A.pop()}}()})),p(q,"$to_h",(function e(t){var n,a=e.$$p||k,s=this;return e.$$p=null,n=r(arguments),a!==k?u(u(s,"map",[],a.$to_proc()),"to_h",_(n)):u(s.$class().$members(),"each_with_object",[new Map],(function e(t,r){var n;return null==t&&(t=k),null==r&&(r=k),n=[t,(null==e.$$s?this:e.$$s)["$[]"](t)],u(r,"[]=",n),n[n.length-1]}),{$$s:s})}),-1),p(q,"$values_at",(function(e){var t,n;t=r(arguments);for(var a=[],s=0,i=(n=u(n=t,"map",[],(function(e){return null==e&&(e=k),e.$$is_range?e.$to_a():e})).$flatten()).length;s<i;s++)n[s].$$is_number||d.$raise(U("TypeError"),"no implicit conversion of "+n[s].$class()+" into Integer"),a.push(this["$[]"](n[s]));return a}),-1),p(q,"$dig",(function(e,t){var n,a=k;return n=r(arguments,1),(a=i(e.$$is_string&&this.$$data.hasOwnProperty(e))&&this.$$data[e]||k)===k||0===n.length?a:(i(a["$respond_to?"]("dig"))||d.$raise(U("TypeError"),a.$class()+" does not have #dig method"),u(a,"dig",_(n)))}),-2),x(q,"size","length"),x(q,"to_s","inspect"),x(q,"values","to_a")}(0,0,[])},Opal.modules["corelib/set"]=function(e){var t=e.freeze,r=e.klass,n=e.slice,a=e.defs,s=e.truthy,i=e.eqeqeq,o=e.Kernel,l=e.send,$=e.def,u=e.eqeq,c=e.rb_lt,_=e.rb_le,p=e.alias,m=e.nil,d=e.$$$;return e.add_stubs("include,new,nil?,===,raise,each,add,merge,class,respond_to?,subtract,dup,join,to_a,equal?,instance_of?,==,instance_variable_get,size,is_a?,all?,include?,[]=,enum_for,[],<<,replace,compare_by_identity,name,compare_by_identity?,delete,select,frozen?,freeze,reject,delete_if,to_proc,keep_if,each_key,empty?,eql?,instance_eval,clear,<,<=,any?,!,intersect?,keys,|,proper_subset?,subset?,proper_superset?,superset?,-,select!,collect!"),function(f,h,g){var b=r("::",null,"Set"),v=[b].concat(g),y=e.$r(v);function x(e){s(e["$is_a?"](d("Set")))||o.$raise(d("ArgumentError"),"value must be a set")}return b.$$prototype.hash=m,b.$include(d("Enumerable")),a(b,"$[]",(function(e){var t;return t=n(arguments),this.$new(t)}),-1),$(b,"$initialize",(function t(r){var n=t.$$p||m,a=this;return t.$$p=null,null==r&&(r=m),a.hash=new Map,s(r["$nil?"]())?m:(i(d("Enumerable"),r)||o.$raise(d("ArgumentError"),"value must be enumerable"),s(n)?l(r,"each",[],(function t(r){return null==r&&(r=m),(null==t.$$s?this:t.$$s).$add(e.yield1(n,r))}),{$$s:a}):a.$merge(r))}),-1),$(b,"$dup",(function(){return this.$class().$new().$merge(this)})),$(b,"$-",(function(e){return s(e["$respond_to?"]("each"))||o.$raise(d("ArgumentError"),"value must be enumerable"),this.$dup().$subtract(e)})),$(b,"$inspect",(function(){return"#<Set: {"+this.$to_a().$join(",")+"}>"})),$(b,"$==",(function(e){var t=this;return!!s(t["$equal?"](e))||(s(e["$instance_of?"](t.$class()))?t.hash["$=="](e.$instance_variable_get("@hash")):!(!s(e["$is_a?"](d("Set")))||!u(t.$size(),e.$size()))&&l(e,"all?",[],(function e(t){var r=null==e.$$s?this:e.$$s;return null==r.hash&&(r.hash=m),null==t&&(t=m),r.hash["$include?"](t)}),{$$s:t}))})),$(b,"$add",(function(e){return this.hash["$[]="](e,!0),this})),$(b,"$classify",(function t(){var r=t.$$p||m,n=this,a=m;return t.$$p=null,r===m?n.$enum_for("classify"):(a=l(d("Hash"),"new",[],(function e(t,r){var n;return null==t&&(t=m),null==r&&(r=m),n=[r,(null==e.$$s?this:e.$$s).$class().$new()],l(t,"[]=",n),n[n.length-1]}),{$$s:n}),l(n,"each",[],(function(t){return null==t&&(t=m),a["$[]"](e.yield1(r,t)).$add(t)})),a)})),$(b,"$collect!",(function t(){var r=t.$$p||m,n=this,a=m;return t.$$p=null,r===m?n.$enum_for("collect!"):(a=n.$class().$new(),l(n,"each",[],(function(t){return null==t&&(t=m),a["$<<"](e.yield1(r,t))})),n.$replace(a))})),$(b,"$compare_by_identity",(function(){var e=this;return s(e.hash["$respond_to?"]("compare_by_identity"))?(e.hash.$compare_by_identity(),e):e.$raise(y("NotImplementedError"),e.$class().$name()+"#compare_by_identity is not implemented")})),$(b,"$compare_by_identity?",(function(){var e;return s(e=this.hash["$respond_to?"]("compare_by_identity?"))?this.hash["$compare_by_identity?"]():e})),$(b,"$delete",(function(e){return this.hash.$delete(e),this})),$(b,"$delete?",(function(e){var t=this;return s(t["$include?"](e))?(t.$delete(e),t):m})),$(b,"$delete_if",(function t(){var r=t.$$p||m,n=this;return t.$$p=null,r===m?n.$enum_for("delete_if"):(l(l(n,"select",[],(function(t){return null==t&&(t=m),e.yield1(r,t)})),"each",[],(function e(t){var r=null==e.$$s?this:e.$$s;return null==r.hash&&(r.hash=m),null==t&&(t=m),r.hash.$delete(t)}),{$$s:n}),n)})),$(b,"$freeze",(function(){var e=this;return s(e["$frozen?"]())?e:(e.hash.$freeze(),t(e))})),$(b,"$keep_if",(function t(){var r=t.$$p||m,n=this;return t.$$p=null,r===m?n.$enum_for("keep_if"):(l(l(n,"reject",[],(function(t){return null==t&&(t=m),e.yield1(r,t)})),"each",[],(function e(t){var r=null==e.$$s?this:e.$$s;return null==r.hash&&(r.hash=m),null==t&&(t=m),r.hash.$delete(t)}),{$$s:n}),n)})),$(b,"$reject!",(function e(){var t,r=e.$$p||m,n=this;return e.$$p=null,r===m?n.$enum_for("reject!"):(t=n.$size(),l(n,"delete_if",[],r.$to_proc()),u(n.$size(),t)?m:n)})),$(b,"$select!",(function e(){var t,r=e.$$p||m,n=this;return e.$$p=null,r===m?n.$enum_for("select!"):(t=n.$size(),l(n,"keep_if",[],r.$to_proc()),u(n.$size(),t)?m:n)})),$(b,"$add?",(function(e){return s(this["$include?"](e))?m:this.$add(e)})),$(b,"$each",(function e(){var t=e.$$p||m,r=this;return e.$$p=null,t===m?r.$enum_for("each"):(l(r.hash,"each_key",[],t.$to_proc()),r)})),$(b,"$empty?",(function(){return this.hash["$empty?"]()})),$(b,"$eql?",(function(e){return this.hash["$eql?"](l(e,"instance_eval",[],(function e(){var t=null==e.$$s?this:e.$$s;return null==t.hash&&(t.hash=m),t.hash}),{$$s:this}))})),$(b,"$clear",(function(){return this.hash.$clear(),this})),$(b,"$include?",(function(e){return this.hash["$include?"](e)})),$(b,"$merge",(function(e){return l(e,"each",[],(function e(t){return null==t&&(t=m),(null==e.$$s?this:e.$$s).$add(t)}),{$$s:this}),this})),$(b,"$replace",(function(e){var t=this;return t.$clear(),t.$merge(e),t})),$(b,"$size",(function(){return this.hash.$size()})),$(b,"$subtract",(function(e){return l(e,"each",[],(function e(t){return null==t&&(t=m),(null==e.$$s?this:e.$$s).$delete(t)}),{$$s:this}),this})),$(b,"$|",(function(e){return s(e["$respond_to?"]("each"))||o.$raise(d("ArgumentError"),"value must be enumerable"),this.$dup().$merge(e)})),$(b,"$superset?",(function(e){return x(e),!s(c(this.$size(),e.$size()))&&l(e,"all?",[],(function e(t){return null==t&&(t=m),(null==e.$$s?this:e.$$s)["$include?"](t)}),{$$s:this})})),$(b,"$proper_superset?",(function(e){return x(e),!s(_(this.$size(),e.$size()))&&l(e,"all?",[],(function e(t){return null==t&&(t=m),(null==e.$$s?this:e.$$s)["$include?"](t)}),{$$s:this})})),$(b,"$subset?",(function(e){return x(e),!s(c(e.$size(),this.$size()))&&l(this,"all?",[],(function(t){return null==t&&(t=m),e["$include?"](t)}))})),$(b,"$proper_subset?",(function(e){return x(e),!s(_(e.$size(),this.$size()))&&l(this,"all?",[],(function(t){return null==t&&(t=m),e["$include?"](t)}))})),$(b,"$intersect?",(function(e){var t=this;return x(e),s(c(t.$size(),e.$size()))?l(t,"any?",[],(function(t){return null==t&&(t=m),e["$include?"](t)})):l(e,"any?",[],(function e(t){return null==t&&(t=m),(null==e.$$s?this:e.$$s)["$include?"](t)}),{$$s:t})})),$(b,"$disjoint?",(function(e){return this["$intersect?"](e)["$!"]()})),$(b,"$to_a",(function(){return this.hash.$keys()})),p(b,"+","|"),p(b,"<","proper_subset?"),p(b,"<<","add"),p(b,"<=","subset?"),p(b,">","proper_superset?"),p(b,">=","superset?"),p(b,"difference","-"),p(b,"filter!","select!"),p(b,"length","size"),p(b,"map!","collect!"),p(b,"member?","include?"),p(b,"union","|")}(0,0,[])},Opal.modules["corelib/dir"]=function(e){var t=e.klass,r=e.def,n=e.truthy,a=e.alias,s=e.nil,i=e.$$$;return e.add_stubs("[],pwd"),function(o,l,$){var u=t("::",null,"Dir");[u].concat($);return function(t,o){return r(t,"$chdir",(function t(r){var n=t.$$p||s,a=s;return t.$$p=null,function(){try{return a=e.current_dir,e.current_dir=r,e.yieldX(n,[])}finally{e.current_dir=a}}()})),r(t,"$pwd",(function(){return e.current_dir||"."})),r(t,"$home",(function(){var e;return n(e=i("ENV")["$[]"]("HOME"))?e:"."})),a(t,"getwd","pwd")}(e.get_singleton_class(u))}(0,0,[])},Opal.modules["corelib/file"]=function(e){var t=e.truthy,r=e.klass,n=e.const_set,a=e.annotate_regexp,s=e.Opal,i=e.regexp,o=e.rb_plus,l=e.def,$=e.Kernel,u=e.eqeq,c=e.rb_lt,_=e.rb_minus,p=e.range,m=e.send,d=e.slice,f=e.alias,h=e.nil,g=e.$$$;return e.add_stubs("respond_to?,to_path,coerce_to!,pwd,split,sub,+,unshift,join,home,raise,start_with?,absolute_path,==,<,dirname,-,basename,empty?,rindex,[],length,nil?,gsub,find,=~,map,each_with_index,flatten,reject,to_proc,end_with?,expand_path,exist?"),function(b,v,y){var x=r("::",v,"File"),w=[x].concat(y),k=h;return n(w[0],"Separator",n(w[0],"SEPARATOR","/")),n(w[0],"ALT_SEPARATOR",h),n(w[0],"PATH_SEPARATOR",":"),n(w[0],"FNM_SYSCASE",0),k=a(/^[a-zA-Z]:(?:\\|\/)/mu,null,""),function(r,n){var a=[r].concat(n),b=e.$r(a);function v(e){return t(e["$respond_to?"]("to_path"))&&(e=e.$to_path()),e=s["$coerce_to!"](e,g("String"),"to_str")}function y(){return b("ALT_SEPARATOR")===h?e.escape_regexp(b("SEPARATOR")):e.escape_regexp(o(b("SEPARATOR"),b("ALT_SEPARATOR")))}return l(r,"$absolute_path",(function(e,r){var n,a,l,$,u,c,_=h,p=h,m=h,d=h,f=h;null==r&&(r=h),n=b("SEPARATOR"),a=y(),_=[],e=t(e["$respond_to?"]("to_path"))?e.$to_path():e,e=s["$coerce_to!"](e,g("String"),"to_str"),r=t(l=r)?l:g("Dir").$pwd(),$=e.substr(0,n.length)===n||k.test(e),u=r.substr(0,n.length)===n||k.test(r),t($)?(p=e.$split(i(["[",a,"]"])),m=k.test(e)?"":e.$sub(i(["^([",a,"]+).*$"]),"\\1"),d=!0):(p=o(r.$split(i(["[",a,"]"])),e.$split(i(["[",a,"]"]))),m=k.test(r)?"":r.$sub(i(["^([",a,"]+).*$"]),"\\1"),d=u);for(var v=0,x=p.length;v<x;v++)(c=p[v])===h||""===c&&(0===_.length||d)||"."===c&&(0===_.length||d)||(".."===c?_.pop():_.push(c));return d||"."===p[0]||_.$unshift("."),f=_.$join(n),t(d)&&(f=o(m,f)),f}),-2),l(r,"$expand_path",(function(e,r){var n,a,s=h,l=h,u=h;return null==r&&(r=h),n=b("SEPARATOR"),a=y(),t("~"===e[0]||r&&"~"===r[0])&&(s=b("Dir").$home(),t(s)||$.$raise(g("ArgumentError"),"couldn't find HOME environment -- expanding `~'"),l=k.test(s)?"":s.$sub(i(["^([",a,"]+).*$"]),"\\1"),t(s["$start_with?"](l))||$.$raise(g("ArgumentError"),"non-absolute home"),s=o(s,n),u=i(["^\\~(?:",n,"|$)"]),e=e.$sub(u,s),t(r)&&(r=r.$sub(u,s))),this.$absolute_path(e,r)}),-2),l(r,"$dirname",(function(e,r){var n;if(null==r&&(r=1),u(r,0))return e;t(c(r,0))&&$.$raise(g("ArgumentError"),"level can't be negative"),n=y();var a,s=(e=v(e)).match(new RegExp("^["+n+"]"));return a=""===(e=(e=(e=e.replace(new RegExp("["+n+"]+$"),"")).replace(new RegExp("[^"+n+"]+$"),"")).replace(new RegExp("["+n+"]+$"),""))?s?"/":".":e,1==r?a:this.$dirname(a,_(r,1))}),-2),l(r,"$basename",(function(t,r){var n;return null==r&&(r=h),n=y(),0==(t=v(t)).length||(r=r!==h?s["$coerce_to!"](r,g("String"),"to_str"):null,t=(t=t.replace(new RegExp("(.)["+n+"]*$"),"$1")).replace(new RegExp("^(?:.*["+n+"])?([^"+n+"]+)$"),"$1"),".*"===r?t=t.replace(/\.[^\.]+$/,""):null!==r&&(r=e.escape_regexp(r),t=t.replace(new RegExp(r+"$"),""))),t}),-2),l(r,"$extname",(function(r){var n=h,a=h;return r=v(r),n=this.$basename(r),t(n["$empty?"]())?"":(a=n["$[]"](p(1,-1,!1)).$rindex("."),t(a["$nil?"]())||u(o(a,1),_(n.$length(),1))?"":n["$[]"](e.Range.$new(o(a,1),-1,!1)))})),l(r,"$exist?",(function(t){return null!=e.modules[t]})),l(r,"$directory?",(function(t){var r=h;for(var n in r=[],e.modules)r.push(n);return t=t.$gsub(i(["(^.",b("SEPARATOR"),"+|",b("SEPARATOR"),"+$)"])),m(r,"find",[],(function(e){return null==e&&(e=h),e["$=~"](i(["^",t]))}))})),l(r,"$join",(function(e){var r,n,a=h;return r=d(arguments),t((n=r)["$empty?"]())?"":(a="",n=m(n.$flatten().$each_with_index(),"map",[],(function(e,r){return null==e&&(e=h),null==r&&(r=h),u(r,0)&&t(e["$empty?"]())||u(n.$length(),o(r,1))&&t(e["$empty?"]())?b("SEPARATOR"):e})),n=m(n,"reject",[],"empty?".$to_proc()),m(n,"each_with_index",[],(function(e,r){var s=h;return null==e&&(e=h),null==r&&(r=h),s=n["$[]"](o(r,1)),t(s["$nil?"]())?a=""+a+e:(t(e["$end_with?"](b("SEPARATOR")))&&t(s["$start_with?"](b("SEPARATOR")))&&(e=e.$sub(i([b("SEPARATOR"),"+$"]),"")),a=t(e["$end_with?"](b("SEPARATOR")))||t(s["$start_with?"](b("SEPARATOR")))?""+a+e:""+a+e+b("SEPARATOR"))})),a)}),-1),l(r,"$split",(function(e){return e.$split(b("SEPARATOR"))})),f(r,"realpath","expand_path"),f(r,"exists?","exist?")}(e.get_singleton_class(x),w)}(0,g("IO"),[])},Opal.modules["corelib/process/base"]=function(e){var t=e.klass,r=e.slice,n=e.defs,a=e.return_val,s=e.nil;return function(e,a){var i=t("::",null,"Signal");n(i,"$trap",(function(e){return r(arguments),s}),-1)}(),function(e,r){var i=t("::",null,"GC");return n(i,"$start",a(s))}()},Opal.modules["corelib/process"]=function(e){var t=e.module,r=e.defs,n=e.truthy,a=e.return_val,s=e.Kernel,i=e.nil,o=e.$$$;return e.add_stubs("const_set,size,<<,__register_clock__,to_f,now,new,[],raise"),function(l){var $=t("::","Process"),u=i;if($.__clocks__=[],r($,"$__register_clock__",(function(e,t){var r=this;return null==r.__clocks__&&(r.__clocks__=i),r.$const_set(e,r.__clocks__.$size()),r.__clocks__["$<<"](t)})),$.$__register_clock__("CLOCK_REALTIME",(function(){return Date.now()})),u=!1,e.global.performance)u=function(){return performance.now()};else if(e.global.process&&process.hrtime){var c=process.hrtime();u=function(){var e=process.hrtime(c),t=e[1]/1e3|0;return 1e3*e[0]+t/1e3}}return n(u)&&$.$__register_clock__("CLOCK_MONOTONIC",u),r($,"$pid",a(0)),r($,"$times",(function(){var e;return e=o("Time").$now().$to_f(),o(o("Benchmark"),"Tms").$new(e,e,e,e,e)})),r($,"$clock_gettime",(function(e,t){var r=this,a=i;null==r.__clocks__&&(r.__clocks__=i),null==t&&(t="float_second"),n(a=r.__clocks__["$[]"](e))||s.$raise(o(o("Errno"),"EINVAL"),"clock_gettime("+e+") "+r.__clocks__["$[]"](e));var l=a();switch(t){case"float_second":return l/1e3;case"float_millisecond":return l/1;case"float_microsecond":return 1e3*l;case"second":return l/1e3|0;case"millisecond":return l/1|0;case"microsecond":return 1e3*l|0;case"nanosecond":return 1e6*l|0;default:s.$raise(o("ArgumentError"),"unexpected unit: "+t)}}),-2)}()},Opal.modules["corelib/random/formatter"]=function(e){var t=e.klass,r=e.module,n=e.def,a=e.range,s=e.send,i=e.rb_divide,o=e.Kernel,l=e.Opal,$=e.nil,u=e.$$$;return e.add_stubs("_verify_count,bytes,encode,strict_encode64,random_bytes,urlsafe_encode64,split,hex,[]=,[],map,to_proc,join,times,<<,|,ord,/,abs,random_float,raise,coerce_to!,flatten,new,random_number,length,include,extend"),function(c,_,p){var m=t("::",null,"Random"),d=[m].concat(p);return function(t,c){var _=r(t,"Formatter"),p=[_].concat(c),m=e.$r(p);n(_,"$hex",(function(e){null==e&&(e=$),e=u("Random").$_verify_count(e);for(var t=this.$bytes(e),r="",n=0;n<e;n++)r+=t.charCodeAt(n).toString(16).padStart(2,"0");return r.$encode("US-ASCII")}),-1),n(_,"$random_bytes",(function(e){return null==e&&(e=$),this.$bytes(e)}),-1),n(_,"$base64",(function(e){return null==e&&(e=$),u("Base64").$strict_encode64(this.$random_bytes(e)).$encode("US-ASCII")}),-1),n(_,"$urlsafe_base64",(function(e,t){return null==e&&(e=$),null==t&&(t=!1),u("Base64").$urlsafe_encode64(this.$random_bytes(e),t).$encode("US-ASCII")}),-1),n(_,"$uuid",(function(){var e=$;return(e=this.$hex(16).$split(""))["$[]="](12,"4"),e["$[]="](16,(3&parseInt(e["$[]"](16),16)|8).toString(16)),e=[e["$[]"](a(0,8,!0)),e["$[]"](a(8,12,!0)),e["$[]"](a(12,16,!0)),e["$[]"](a(16,20,!0)),e["$[]"](a(20,32,!0))],(e=s(e,"map",[],"join".$to_proc())).$join("-")})),n(_,"$random_float",(function(){var e=$,t=$;return e=this.$bytes(4),t=0,s(4,"times",[],(function(r){return null==r&&(r=$),t=(t=t["$<<"](8))["$|"](e["$[]"](r).$ord())})),i(t.$abs(),2147483647)})),n(_,"$random_number",(function(e){var t=this;function r(){return t.$random_float()}function n(e){return Math.floor(r()*e)}return null==e?r():e.$$is_range?function(){var t=e.begin,r=e.end;if(t===$||r===$)return $;var a=r-t;return a<0?$:0===a?t:(r%1!=0||t%1!=0||e.excl||a++,n(a)+t)}():e.$$is_number?(e<=0&&o.$raise(u("ArgumentError"),"invalid argument - "+e),e%1==0?n(e):r()*e):((e=l["$coerce_to!"](e,u("Integer"),"to_int"))<=0&&o.$raise(u("ArgumentError"),"invalid argument - "+e),n(e))}),-1),n(_,"$alphanumeric",(function(e){var t=$;return null==e&&(e=$),e=m("Random").$_verify_count(e),t=s([a("0","9",!1),a("a","z",!1),a("A","Z",!1)],"map",[],"to_a".$to_proc()).$flatten(),s(u("Array"),"new",[e],(function e(r){var n=null==e.$$s?this:e.$$s;return null==r&&(r=$),t["$[]"](n.$random_number(t.$length()))}),{$$s:this}).$join()}),-1)}(m,d),m.$include(u(u("Random"),"Formatter")),m.$extend(u(u("Random"),"Formatter"))}(0,0,[])},Opal.modules["corelib/random/mersenne_twister"]=function(e){var t=e.klass,r=e.const_set,n=e.send,a=e.nil,s=e.$$$,i=a;return e.add_stubs("generator="),i=function(){var e=624,t=397,r=function(e,t){return function(e,t){return 2147483648&e|2147483647&t}(e,t)>>>1^(1&t?2567483615:0)};function n(n){var a;return--n.left<=0&&function(n){var a,s=0,i=n.state;for(n.left=e,n.next=0,a=e-t+1;--a;s++)i[s]=i[s+t]^r(i[s+0],i[s+1]);for(a=t;--a;s++)i[s]=i[s+(t-e)]^r(i[s+0],i[s+1]);i[s]=i[s+(t-e)]^r(i[s+0],i[0])}(n),a=n.state[n.next++],a^=a>>>11,a^=a<<7&2636928640,a^=a<<15&4022730752,(a^=a>>>18)>>>0}return{genrand_real:function(e){return function(e,t){return(67108864*(e>>>=5)+(t>>>=6))*(1/9007199254740992)}(n(e),n(e))},init:function(t){var r={left:0,next:e,state:new Array(e)};return function(t,r){var n;for(t.state[0]=r>>>0,n=1;n<e;n++)t.state[n]=1812433253*(t.state[n-1]^t.state[n-1]>>30>>>0)+n,t.state[n]&=4294967295;t.left=1,t.next=e}(r,t),r}}}(),function(e,a){var o,l=t("::",null,"Random"),$=Number.MAX_SAFE_INTEGER||Math.pow(2,53)-1;return r(l,"MERSENNE_TWISTER_GENERATOR",{new_seed:function(){return Math.round(Math.random()*$)},reseed:function(e){return i.init(e)},rand:function(e){return i.genrand_real(e)}}),o=[s(l,"MERSENNE_TWISTER_GENERATOR")],n(l,"generator=",o),o[o.length-1]}()},Opal.modules["corelib/random"]=function(e){var t=e.truthy,r=e.klass,n=e.Kernel,a=e.defs,s=e.Opal,i=e.def,o=e.eqeqeq,l=e.send,$=e.top,u=(e.nil,e.$$$);return e.add_stubs("require,attr_reader,to_int,raise,new_seed,coerce_to!,reseed,rand,seed,bytes,===,==,state,_verify_count,encode,join,new,chr,random_number,random_float,const_defined?,const_set"),$.$require("corelib/random/formatter"),function($,c){var _=r("::",null,"Random");_.$attr_reader("seed","state"),a(_,"$_verify_count",(function(e){return t(e)||(e=16),"number"!=typeof e&&(e=e.$to_int()),e<0&&n.$raise(u("ArgumentError"),"negative string size (or size too big)"),e=Math.floor(e)})),i(_,"$initialize",(function(e){return null==e&&(e=u("Random").$new_seed()),e=s["$coerce_to!"](e,u("Integer"),"to_int"),this.state=e,this.$reseed(e)}),-1),i(_,"$reseed",(function(t){return this.seed=t,this.$rng=e.$$rand.reseed(t)})),a(_,"$new_seed",(function(){return e.$$rand.new_seed()})),a(_,"$rand",(function(e){return u(this,"DEFAULT").$rand(e)}),-1),a(_,"$srand",(function(e){var t;return null==e&&(e=u("Random").$new_seed()),e=s["$coerce_to!"](e,u("Integer"),"to_int"),t=u(this,"DEFAULT").$seed(),u(this,"DEFAULT").$reseed(e),t}),-1),a(_,"$urandom",(function(e){return u("SecureRandom").$bytes(e)})),i(_,"$==",(function(e){var r;return!!o(u("Random"),e)&&(t(r=this.$seed()["$=="](e.$seed()))?this.$state()["$=="](e.$state()):r)})),i(_,"$bytes",(function(e){return e=u("Random").$_verify_count(e),l(u("Array"),"new",[e],(function e(){return(null==e.$$s?this:e.$$s).$rand(255).$chr()}),{$$s:this}).$join().$encode("ASCII-8BIT")})),a(_,"$bytes",(function(e){return u(this,"DEFAULT").$bytes(e)})),i(_,"$rand",(function(e){return this.$random_number(e)}),-1),i(_,"$random_float",(function(){return this.state++,e.$$rand.rand(this.$rng)})),a(_,"$random_float",(function(){return u(this,"DEFAULT").$random_float()})),a(_,"$generator=",(function(r){var n=this;return e.$$rand=r,t(n["$const_defined?"]("DEFAULT"))?u(n,"DEFAULT").$reseed():n.$const_set("DEFAULT",n.$new(n.$new_seed()))}))}(),$.$require("corelib/random/mersenne_twister")},Opal.modules["corelib/unsupported"]=function(e){var t=e.Kernel,r=e.klass,n=e.send,a=e.slice,s=e.module,i=e.def,o=e.return_val,l=e.alias,$=e.defs,u=e.top,c=e.nil,_=e.$$$;e.add_stubs("raise,warn,each,define_method,%,public,private_method_defined?,private_class_method,instance_method,instance_methods,method_defined?,private_methods");var p={};function m(r){switch(e.config.unsupported_features_severity){case"error":t.$raise(_("NotImplementedError"),r);break;case"warning":!function(e){if(p[e])return;p[e]=!0,u.$warn(e)}(r)}}return function(e,s){var i=r("::",null,"String");n(["<<","capitalize!","chomp!","chop!","downcase!","gsub!","lstrip!","next!","reverse!","slice!","squeeze!","strip!","sub!","succ!","swapcase!","tr!","tr_s!","upcase!","prepend","[]=","clear","encode!","unicode_normalize!"],"each",[],(function e(r){return null==r&&(r=c),n(null==e.$$s?this:e.$$s,"define_method",[r],(function(e){return a(arguments),t.$raise(_("NotImplementedError"),"String#%s not supported. Mutable String methods are not supported in Opal."["$%"](r))}),-1)}),{$$s:i})}(),function(e){var t=s("::","Kernel"),r="Object tainting is not supported by Opal";i(t,"$taint",(function(){return m(r),this})),i(t,"$untaint",(function(){return m(r),this})),i(t,"$tainted?",(function(){return m(r),!1}))}(),function(e,t){var n=r("::",null,"Module");i(n,"$public",(function(e){var t;return 0===(t=a(arguments)).length?(this.$$module_function=!1,c):1===t.length?t[0]:t}),-1),i(n,"$private_class_method",(function(e){var t;return 1===(t=a(arguments)).length?t[0]:t}),-1),i(n,"$private_method_defined?",o(!1)),i(n,"$private_constant",(function(e){return a(arguments),c}),-1),l(n,"nesting","public"),l(n,"private","public"),l(n,"protected","public"),l(n,"protected_method_defined?","private_method_defined?"),l(n,"public_class_method","private_class_method"),l(n,"public_instance_method","instance_method"),l(n,"public_instance_methods","instance_methods"),l(n,"public_method_defined?","method_defined?")}(),function(e){var t=s("::","Kernel");i(t,"$private_methods",(function(e){return a(arguments),[]}),-1),l(t,"protected_methods","private_methods"),l(t,"private_instance_methods","private_methods"),l(t,"protected_instance_methods","private_methods")}(),function(r,n){var o=s("::","Kernel"),l=[o].concat(n),$=e.$r(l);i(o,"$eval",(function(e){return a(arguments),t.$raise(_("NotImplementedError"),"To use Kernel#eval, you must first require 'opal-parser'. See https://github.com/opal/opal/blob/"+$("RUBY_ENGINE_VERSION")+"/docs/opal_parser.md for details.")}),-1)}(0,[]),$(u,"$public",(function(e){var t;return 1===(t=a(arguments)).length?t[0]:t}),-1),$(u,"$private",(function(e){var t;return 1===(t=a(arguments)).length?t[0]:t}),-1)},Opal.modules["corelib/binding"]=function(e){var t=e.klass,r=e.truthy,n=e.def,a=e.slice,s=e.send,i=e.to_a,o=e.Kernel,l=e.return_ivar,$=e.eqeq,u=(e.thrower,e.module),c=e.const_set,_=e.top,p=e.nil,m=e.$$$;return e.add_stubs("js_eval,call,raise,inspect,include?,==,receiver,eval,attr_reader,new"),function(u,c){var _=t("::",null,"Binding"),d=_.$$prototype;d.jseval=d.scope_variables=p,n(_,"$initialize",(function(e,t,n,a){var s,i=this;return null==t&&(t=[]),null==a&&(a=p),s=[e,t,n,a],i.jseval=s[0],i.scope_variables=s[1],i.receiver=s[2],i.source_location=s[3],r(void 0!==typeof n)?p:i.$js_eval("self")}),-2),n(_,"$js_eval",(function(e){var t;return t=a(arguments),r(this.jseval)?s(this.jseval,"call",i(t)):o.$raise("Evaluation on a Proc#binding is not supported")}),-1),n(_,"$local_variable_get",(function(t){try{return this.$js_eval(t)}catch(r){if(!e.rescue(r,[m("Exception")]))throw r;try{return o.$raise(m("NameError"),"local variable `"+t+"' is not defined for "+this.$inspect())}finally{e.pop_exception(r)}}})),n(_,"$local_variable_set",(function(t,r){return e.Binding.tmp_value=r,this.$js_eval(t+" = Opal.Binding.tmp_value"),delete e.Binding.tmp_value,r})),n(_,"$local_variables",l("scope_variables")),n(_,"$local_variable_defined?",(function(e){return this.scope_variables["$include?"](e)})),n(_,"$eval",(function(t,r,n){try{return null==r&&(r=p),null==n&&(n=p),$(t,"self")?this.$receiver():o.$eval(t,this,r,n)}catch(t){if(t===e.t_eval_return)return t.$v;throw t}}),-2),_.$attr_reader("receiver","source_location")}(),function(e){var t=u("::","Kernel");n(t,"$binding",(function(){return o.$raise("Opal doesn't support dynamic calls to binding")}))}(),c([][0],"TOPLEVEL_BINDING",m("Binding").$new((function(e){return new Function("self","return "+e)(_)}),[],_,["<main>",0]))},Opal.modules["corelib/irb"]=function(e){var t=e.module,r=e.truthy,n=e.Kernel,a=e.defs,s=e.gvars,i=e.lambda,o=e.hash_rehash,l=e.send,$=e.rb_plus,u=e.const_set,c=e.klass,_=e.def,p=e.Opal,m=e.range,d=e.eqeq,f=e.thrower,h=[],g=e.nil,b=e.$$$;e.add_stubs("include?,raise,attr_accessor,singleton_class,output=,browser?,each,dup,write_proc=,proc,+,output,join,last,split,end_with?,call,write_proc,tty=,read_proc,read_proc=,freeze,new,string,ensure_loaded,prepare_console,loop,print,gets,puts,start_with?,[],==,silence,message,empty?,warnings,warn,full_message,eval_and_print,irb"),function(p,m){var d=[t(p,"Opal")].concat(m);(function(p,m){var d=t(p,"IRB"),f=[d].concat(m),h=e.$r(f);a(d,"$ensure_loaded",(function(t){var a,s;if(r(e.loaded_features["$include?"](t)))return g;if(a="https://cdn.opalrb.com/opal/"+(r(h("RUBY_ENGINE_VERSION")["$include?"]("dev"))?"master":h("RUBY_ENGINE_VERSION"))+"/"+t+".js","undefined"!=typeof XMLHttpRequest){var i=new XMLHttpRequest;i.open("GET",a,!1),i.send(""),s=i.responseText}else n.$raise("You need to provision "+t+" yourself in this environment");return new Function("Opal",s)(e),e.require(t),r(e.loaded_features["$include?"](t))?g:n.$raise("Could not load "+t+" for some reason")})),d.$singleton_class().$attr_accessor("output"),a(d,"$prepare_console",(function t(){var n,a=t.$$p||g,u=this,c=g,_=g;return null==s.stdout&&(s.stdout=g),null==s.stderr&&(s.stderr=g),null==s.stdin&&(s.stdin=g),t.$$p=null,function(){try{return u["$output="](""),c=o(new Map([[s.stdout,i((function(e){return null==e&&(e=g),s.stdout=e}))],[s.stderr,i((function(e){return null==e&&(e=g),s.stderr=e}))]])),r(u["$browser?"]())&&(l(c,"each",[],(function e(t,n){var a=null==e.$$s?this:e.$$s,s=g;return null==t&&(t=g),null==n&&(n=g),(s=t.$dup())["$write_proc="](l(a,"proc",[],(function e(n){var a=null==e.$$s?this:e.$$s;return null==n&&(n=g),a["$output="]($(a.$output(),n)),a["$output="](a.$output().$split("\n").$last(30).$join("\n")),r(n["$end_with?"]("\n"))&&a["$output="]($(a.$output(),"\n")),t.$write_proc().$call(n)}),{$$s:a})),s["$tty="](!1),n.$call(s)}),{$$s:u}),_=s.stdin.$read_proc(),s.stdin["$read_proc="]((function(e){var t=prompt(u.$output());return null!==t?t+"\n":g}))),e.yieldX(a,[])}finally{l(c,"each",[],(function(e,t){return null==e&&(e=g),null==t&&(t=g),t.$call(e)})),n=[_],l(s.stdin,"read_proc=",n),n[n.length-1],l(u,"output=",n=[""]),n[n.length-1]}}()})),a(d,"$browser?",(function(){return"undefined"!=typeof document&&"undefined"!=typeof prompt})),u(f[0],"LINEBREAKS",["unexpected token $end","unterminated string meets end of file"].$freeze()),function(t,r){var n=c(t,null,"Silencer"),a=n.$$prototype;a.collector=a.stderr=g,_(n,"$initialize",(function(){return null==s.stderr&&(s.stderr=g),this.stderr=s.stderr})),_(n,"$silence",(function t(){var r=t.$$p||g,n=this;return t.$$p=null,function(){try{return n.collector=b("StringIO").$new(),s.stderr=n.collector,e.yieldX(r,[])}finally{s.stderr=n.stderr}}()})),_(n,"$warnings",(function(){return this.collector.$string()}))}(f[0])})(d[0],d)}(h[0],h),function(t,n,a){var s=c("::",null,"Binding"),i=[s].concat(a),o=e.$r(i);_(s,"$irb",(function(){try{var t=f("return"),n=g;return b(p,"IRB").$ensure_loaded("opal-replutils"),n=b(b(p,"IRB"),"Silencer").$new(),l(b(p,"IRB"),"prepare_console",[],(function a(){var s=null==a.$$s?this:a.$$s;return function(){try{var a=f("break");return l(s,"loop",[],(function s(){var i=null==s.$$s?this:s.$$s,u=g,c=g,_=g,f=g,h=g;for(i.$print(">> "),u=i.$gets(),r(u)||a.$throw(g,s.$$is_lambda),c="",r(b(p,"IRB")["$browser?"]())&&i.$puts(u),r(u["$start_with?"]("ls "))?(c=u["$[]"](m(3,-1,!1)),_="ls"):d(u,"ls\n")?(c="self",_="ls"):r(u["$start_with?"]("show "))?(c=u["$[]"](m(5,-1,!1)),_="show"):(c=u,_="inspect"),f=g;;){try{l(n,"silence",[],(function(){return f=e.compile(c,{irb:!0})}))}catch(a){if(!e.rescue(a,[o("SyntaxError")]))throw a;h=a;try{if(r(b(b(p,"IRB"),"LINEBREAKS")["$include?"](h.$message()))){i.$print(".. "),u=i.$gets(),r(u)||t.$throw(g,s.$$is_lambda),r(b(p,"IRB")["$browser?"]())&&i.$puts(u),c=$(c,u);continue}r(n.$warnings()["$empty?"]())?i.$warn(h.$full_message()):i.$warn(n.$warnings())}finally{e.pop_exception(a)}}break}return d(_,"show")&&(i.$puts(f),t.$throw(g,s.$$is_lambda)),i.$puts(b("REPLUtils").$eval_and_print(f,_,!1,i))}),{$$s:s,$$ret:t})}catch(e){if(e===a)return e.$v;throw e}finally{a.is_orphan=!0}}()}),{$$s:this})}catch(e){if(e===t)return e.$v;throw e}finally{t.is_orphan=!0}}))}(0,0,h),e.irb=function(e){b("Binding").$new(e).$irb()},e.load_parser=function(){e.Opal.IRB.$ensure_loaded("opal-parser")},void 0===e.eval&&(e.eval=function(t){return e.load_parser(),e.eval(t)}),void 0===e.compile&&(e.compile=function(t,r){return e.load_parser(),e.compile(t,r)})},Opal.modules.opal=function(e){var t=e.Object;e.nil;return e.add_stubs("require,autoload"),t.$require("opal/base"),t.$require("opal/mini"),t.$require("corelib/kernel/format"),t.$require("corelib/string/encoding"),t.$autoload("Math","corelib/math"),t.$require("corelib/complex/base"),t.$autoload("Complex","corelib/complex"),t.$require("corelib/rational/base"),t.$autoload("Rational","corelib/rational"),t.$require("corelib/time"),t.$autoload("Struct","corelib/struct"),t.$autoload("Set","corelib/set"),t.$autoload("Dir","corelib/dir"),t.$autoload("File","corelib/file"),t.$require("corelib/process/base"),t.$autoload("Process","corelib/process"),t.$autoload("Random","corelib/random"),t.$require("corelib/unsupported"),t.$require("corelib/binding"),t.$require("corelib/irb")},Opal.load_normalized("opal"),Opal.modules["corelib/pack_unpack/format_string_parser"]=function(e){var t=e.module,r=e.Kernel,n=(e.nil,e.$$$);return e.add_stubs("raise"),function(e){var a=t("::","PackUnpack"),s=["C","S","L","Q","J","c","s","l","q","j","n","N","v","V","U","w","D","d","F","f","E","e","G","g","A","a","Z","B","b","H","h","u","M","m","P","p","@","X","x"],i=["!","_",">","<"];a.eachDirectiveAndCount=function(e,t){var a,o,l,$;function u(){a=null,o=0,l=[],$=!1}function c(){null!=a?(!/[sSiIlLqQjJ]/.test(a)&&l.length>0&&r.$raise(n("ArgumentError"),"'"+l[0]+"' allowed only after types sSiIlLqQjJ"),-1!==l.indexOf("<")&&-1!==l.indexOf(">")&&r.$raise(n("RangeError"),"Can't use both '<' and '>'"),$||(o=1),-1!==l.indexOf(">")&&(a+=">"),t(a,o),u()):u()}u();for(var _=0;_<e.length;_++){var p=e[_];-1!==s.indexOf(p)?(c(),a=p):a&&(/\d/.test(p)?(o=10*o+parseInt(p,10),$=!0):"*"===p&&!1===$?(o=1/0,$=!0):-1!==i.indexOf(p)&&!1===$?l.push(p):c())}c()}}()},Opal.modules["corelib/array/pack"]=function(e){var t=e.coerce_to,r=e.klass,n=e.Kernel,a=e.Opal,s=e.annotate_regexp,i=e.def,o=e.top,l=e.nil,$=e.$$$;return e.add_stubs("require,raise,delete,gsub,coerce_to!,inspect"),o.$require("corelib/pack_unpack/format_string_parser"),function(o,u){var c=r("::",null,"Array"),_=e.PackUnpack.eachDirectiveAndCount;function p(e){return e}function m(e){return String.fromCharCode.apply(null,e)}function d(e,t){return function(r){return t(r).map((function(t){for(var r=[],n=0;n<e;n++){var a=255&t;r.push(a),t>>=8}return m(r)}))}}function f(e,t){return function(r){var n=t(r),a=8*e,s=Math.pow(2,a);return n.map((function(t){t<0&&(t+=s);for(var r=[],n=0;n<e;n++){var a=255&t;r.push(a),t>>=8}return m(r)}))}}function h(e){return function(r){return e(r).map((function(e){return t(e,$("Integer"),"to_int")}))}}function g(e){return function(t){return e(t).join("")}}var b,v={C:g(d(1,h(p))),S:g(d(2,h(p))),L:g(d(4,h(p))),Q:g(d(8,h(p))),J:null,"S>":null,"L>":null,"Q>":null,c:g(f(1,h(p))),s:g(f(2,h(p))),l:g(f(4,h(p))),q:g(f(8,h(p))),j:null,"s>":null,"l>":null,"q>":null,n:null,N:null,v:null,V:null,U:g((b=h(p),function(e){return b(e).map((function(e){try{return String.fromCodePoint(e)}catch(e){throw e instanceof RangeError&&n.$raise($("RangeError"),"value out of range"),e}}))})),w:null,D:null,d:null,F:null,f:null,E:null,e:null,G:null,g:null,A:g(p),a:g(p),Z:null,B:null,b:null,H:null,h:null,u:null,M:null,m:null,P:null,p:null};function y(e){return function(t,r){var a,s=[];if(r===1/0)for(;t.length>0;)t=(a=e(t)).rest,s=s.concat(a.chunk);else{t.length<r&&n.$raise($("ArgumentError"),"too few arguments");for(var i=0;i<r;i++)t=(a=e(t)).rest,s=s.concat(a.chunk)}return{chunk:s,rest:t}}}function x(e){return{chunk:e.slice(0,1),rest:e=e.slice(1,e.length)}}function w(e,r){return function(a,s){var i=[],o=a[0];function u(){var e=r(o);o=e.rest;var t=e.chunk;1===t.length&&t[0]===l&&(t=[]),i=i.concat(t)}function c(){var t=r(o);o=t.rest;var n=t.chunk;0===n.length&&(n=[e]),1===n.length&&n[0]===l&&(n=[e]),i=i.concat(n)}if(o===l?o="":void 0===o?n.$raise($("ArgumentError"),"too few arguments"):o=t(o,$("String"),"to_str"),a=a.slice(1,a.length),s===1/0)for(;o.length>0;)u();else for(var _=0;_<s;_++)c();return{chunk:i,rest:a}}}var k={C:y(x),S:y(x),L:y(x),Q:y(x),J:null,"S>":null,"L>":null,"Q>":null,c:y(x),s:y(x),l:y(x),q:y(x),j:null,"s>":null,"l>":null,"q>":null,n:null,N:null,v:null,V:null,U:y(x),w:null,D:null,d:null,F:null,f:null,E:null,e:null,G:null,g:null,A:w(" ",x),a:w("\0",x),Z:null,B:null,b:null,H:null,h:null,u:null,M:null,m:null,P:null,p:null},U={C:!1,S:!1,L:!1,Q:!1,J:null,"S>":null,"L>":null,"Q>":null,c:!1,s:!1,l:!1,q:!1,j:null,"s>":null,"l>":null,"q>":null,n:null,N:null,v:null,V:null,U:!1,w:null,D:null,d:null,F:null,f:null,E:null,e:null,G:null,g:null,A:!1,a:!1,Z:null,B:null,b:null,H:null,h:null,u:!1,M:null,m:null,P:null,p:null};return i(c,"$pack",(function(t){t=a["$coerce_to!"](t,$("String"),"to_str").$gsub(s(/\s/u,null,""),"").$delete("\0");var r="",i=this.slice();return _(t,(function(e,t){var a=function(e,t){var r,a=k[e];null==a&&n.$raise("Unsupported pack directive "+e.$inspect()+" (no chunk reader defined)");var s=a(i,t);r=s.chunk,i=s.rest;var o=v[e];return null==o&&n.$raise("Unsupported pack directive "+e.$inspect()+" (no handler defined)"),o(r)}(e,t);if(t!==1/0){var s=U[e];null==s&&n.$raise("Unsupported pack directive "+e.$inspect()+" (no autocompletion rule defined)"),s&&function(e,t){for(;e.length<t;)e.push(l)}(a,t)}r=r.concat(a)})),t.match(/^(U\*?)+$/)?r:e.enc(r,"binary")}))}()},Opal.load_normalized("corelib/array/pack"),Opal.modules.base64=function(e){var t=e.module,r=e.defs,n=e.ensure_kwargs,a=e.hash_get,s=e.truthy,i=[],o=e.nil;return e.add_stubs("raise,delete"),function(i,l){var $,u,c=t(i,"Base64"),_=[c].concat(l),p=e.$r(_),m="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";return $=function(e){for(var t,r,n=String(e),a=0,s=m,i="";n.charAt(0|a)||(s="=",a%1);i+=s.charAt(63&t>>8-a%1*8))(r=n.charCodeAt(a+=3/4))>255&&c.$raise(p("ArgumentError"),"invalid character (failed: The string to be encoded contains characters outside of the Latin1 range.)"),t=t<<8|r;return i},u=function(e){var t=String(e).replace(/=+$/,"");t.length%4==1&&c.$raise(p("ArgumentError"),"invalid base64 (failed: The string to be decoded is not correctly encoded.)");for(var r,n,a=0,s=0,i="";n=t.charAt(s++);~n&&(r=a%4?64*r+n:n,a++%4)?i+=String.fromCharCode(255&r>>(-2*a&6)):0)n=m.indexOf(n);return i},r(c,"$decode64",(function(e){return u(e.replace(/\r?\n/g,""))})),r(c,"$encode64",(function(e){return $(e).replace(/(.{60})/g,"$1\n").replace(/([^\n])$/g,"$1\n")})),r(c,"$strict_decode64",(function(e){return u(e)})),r(c,"$strict_encode64",(function(e){return $(e)})),r(c,"$urlsafe_decode64",(function(e){return u(e.replace(/\-/g,"+").replace(/_/g,"/"))})),r(c,"$urlsafe_encode64",(function(e,t){var r,i=o;return t=n(t),null==(r=a(t,"padding"))&&(r=!0),i=$(e).replace(/\+/g,"-").replace(/\//g,"_"),s(r)||(i=i.$delete("=")),i}),-2)}(i[0],i)},Opal.modules["corelib/string/unpack"]=function(e){var t=e.klass,r=e.Kernel,n=e.ensure_kwargs,a=e.hash_get,s=e.truthy,i=e.rb_lt,o=e.Opal,l=e.annotate_regexp,$=e.rb_gt,u=e.def,c=e.top,_=e.nil,p=e.$$$;return e.add_stubs("require,flatten,decode64,raise,<,delete,gsub,coerce_to!,>,length,inspect,[],unpack"),c.$require("base64"),c.$require("corelib/pack_unpack/format_string_parser"),function(c,m,d){var f=t("::",null,"String"),h=[f].concat(d),g=e.$r(h),b=_,v=_,y=e.PackUnpack.eachDirectiveAndCount;function x(e){return function(t){return e(t).map((function(e){return e.reverse().reduce((function(e,t){return 256*e+t}),0)}))}}function w(e,t){return function(r){for(var n=t(r),a=[],s=n.length/e,i=0;i<s;i++){var o=n.splice(0,e);o.length===e&&a.push(o)}return a}}function k(e,t){return function(r){var n=t(r),a=8*e,s=Math.pow(2,a);return n.map((function(e){return e>=s/2&&(e-=s),e}))}}function U(e){return function(t){return e(t).map((function(e){return String.fromCharCode(e)}))}}function E(e){return function(t){return e(t).join("")}}function M(e){return function(t){return[e(t)]}}var q,S=(q=["\0"," "].map((function(e){return e.charCodeAt(0)})),function(e){return function(t){for(var r=e(t);-1!==q.indexOf(r[r.length-1]);)r=r.slice(0,r.length-1);return r}});function O(e){return function(t){return e(t).map((function(e){return e.reverse()}))}}function A(e){return e}var T,N={C:A,S:x(w(2,A)),L:x(w(4,A)),Q:x(w(8,A)),J:null,"S>":x(O(w(2,A))),"L>":x(O(w(4,A))),"Q>":x(O(w(8,A))),c:k(1,A),s:k(2,x(w(2,A))),l:k(4,x(w(4,A))),q:k(8,x(w(8,A))),j:null,"s>":k(2,x(O(w(2,A)))),"l>":k(4,x(O(w(4,A)))),"q>":k(8,x(O(w(8,A)))),n:null,N:null,v:null,V:null,U:A,w:(T=A,function(e){for(var t=T(e),r=[],n="",a=0;a<t.length;a++){var s=t[a].toString(2),i=(s=Array(8-s.length+1).join("0").concat(s))[0];if(s=s.slice(1,s.length),n=n.concat(s),"0"===i){var o=parseInt(n,2);r.push(o),n=""}}return r}),D:null,d:null,F:null,f:null,E:null,e:null,G:null,g:null,A:M(E(U(S(A)))),a:M(E(U(A))),Z:E(U(A)),B:E(A),b:E(A),H:E(A),h:E(A),u:E(U(function(e){return function(t){for(var r=e(t),n=0,a=0,s=[];;){if(!(n<r.length))break;var i=r[n]-32&63;if(10!==r[++n]){if(i>45)return"";for(a+=i;i>0;){var o=r[n],l=r[n+1],$=r[n+2],u=(o-32&63)<<2|(l-32&63)>>4,c=(l-32&63)<<4|($-32&63)>>2,_=($-32&63)<<6|r[n+3]-32&63;s.push(255&u),s.push(255&c),s.push(255&_),n+=4,i-=3}++n}}return s.slice(0,a)}}(A))),M:function(e){return function(t){return e(t).replace(/[\t\x20]$/gm,"").replace(/=(?:\r\n?|\n|$)/g,"").replace(/=([a-fA-F0-9]{2})/g,(function(e,t){var r=parseInt(t,16);return String.fromCharCode(r)}))}}(E(U(A))),m:function(e){return function(t){return g("Base64").$decode64(e(t))}}(E(U(A))),P:null,p:null};function z(e){return function(t){return{chunk:t.slice(0,e),rest:t=t.slice(e,t.length)}}}function R(e){return function(t,r){var n,a=[];if(r===1/0)for(;t.length>0;)t=(n=e(t)).rest,a=a.concat(n.chunk);else for(var s=0;s<r;s++)t=(n=e(t)).rest,a=a.concat(n.chunk);return{chunk:a,rest:t}}}function I(e,t){return{chunk:e,rest:[]}}var C={C:R(z(1)),S:R(z(2)),L:R(z(4)),Q:R(z(8)),J:null,"S>":R(z(2)),"L>":R(z(4)),"Q>":R(z(8)),c:R(z(1)),s:R(z(2)),l:R(z(4)),q:R(z(8)),j:null,"s>":R(z(2)),"l>":R(z(4)),"q>":R(z(8)),n:null,N:null,v:null,V:null,U:R((function(e){var t=0,n=e.length;function a(){var r=e[t++];return n=e.length-t,r}var s,i=a();if(i>>7==0)return{chunk:[i],rest:e.slice(t)};i>>6==2&&r.$raise(p("ArgumentError"),"malformed UTF-8 character"),i>>5==6?s=1:i>>4==14?s=2:i>>3==30?s=3:i>>2==62?s=4:i>>1==126?s=5:r.$raise("malformed UTF-8 character"),s>n&&(b=s+1,v=n+1,r.$raise(p("ArgumentError"),"malformed UTF-8 character (expected "+b+" bytes, given "+v+" bytes)"));for(var o=i&(1<<8-s-1)-1,l=0;l<s;l++)(i=a())>>6!=2&&r.$raise("Invalid multibyte sequence"),o=o<<6|63&i;return o<=65535?{chunk:[o],rest:e.slice(t)}:{chunk:[55296+((o-=65536)>>10&1023),56320+(1023&o)],rest:e.slice(t)}})),w:R((function(e){for(var t=[],r=0;r<e.length;r++){var n=e[r];if(t.push(n),0==(128&n))break}return{chunk:t,rest:e.slice(t.length,e.length)}})),D:null,d:null,F:null,f:null,E:null,e:null,G:null,g:null,A:R(z(1)),a:R(z(1)),Z:function(e,t){for(var r=[],n=0;n<t&&n<e.length;n++){var a=e[n];if(0===a)break;r.push(a)}return t===1/0&&(t=r.length),0===e[t]&&t++,{chunk:r,rest:e=e.slice(t,e.length)}},B:function(e,t){for(var r="";t>0&&e.length>0;){var n=e[0],a=Math.min(t,8);Math.ceil(a/8);if(e=e.slice(1,e.length),null!=n){var s=n.toString(2);s=Array(8-s.length+1).join("0").concat(s);for(var i=0;i<a;i++)r+=s[i]||"0",t--}}return{chunk:[r],rest:e}},b:function(e,t){for(var r="";t>0&&e.length>0;){var n=e[0],a=Math.min(t,8);Math.ceil(a/8);if(e=e.slice(1,e.length),null!=n){var s=n.toString(2);s=Array(8-s.length+1).join("0").concat(s).split("").reverse().join("");for(var i=0;i<a;i++)r+=s[i]||"0",t--}}return{chunk:[r],rest:e}},H:function(e,t){for(var r=[];t>0&&e.length>0;){var n=e[0].toString(16);e=e.slice(1,e.length),n=Array(2-n.length+1).join("0").concat(n),1===t?(r.push(n[0]),t--):(r.push(n[0],n[1]),t-=2)}return{chunk:r,rest:e}},h:function(e,t){for(var r=[];t>0&&e.length>0;){var n=e[0].toString(16);e=e.slice(1,e.length),n=Array(2-n.length+1).join("0").concat(n),1===t?(r.push(n[1]),t--):(r.push(n[1],n[0]),t-=2)}return{chunk:r,rest:e}},u:R((function(e){var t=e.indexOf(32);return-1===t?{chunk:e,rest:[]}:{chunk:e.slice(0,t),rest:e.slice(t,e.length)}})),M:I,m:I,P:null,p:null},P={C:!0,S:!0,L:!0,Q:!0,J:null,"S>":!0,"L>":!0,"Q>":!0,c:!0,s:!0,l:!0,q:!0,j:null,"s>":!0,"l>":!0,"q>":!0,n:null,N:null,v:null,V:null,U:!1,w:!1,D:null,d:null,F:null,f:null,E:null,e:null,G:null,g:null,A:!1,a:!1,Z:!1,B:!1,b:!1,H:!1,h:!1,u:!1,M:!1,m:!1,P:null,p:null},L={"C*":N.C,"c*":N.c,"A*":N.A,"a*":N.a,"M*":M(N.M),"m*":M(N.m),"S*":N.S,"s*":N.s,"L*":N.L,"l*":N.l,"Q*":N.Q,"q*":N.q,"S>*":N["S>"],"s>*":N["s>"],"L>*":N["L>"],"l>*":N["l>"],"Q>*":N["Q>"],"q>*":N["q>"]};function F(e,t){C[t]=C[e],N[t]=N[e],P[t]=P[e]}return F("S>","n"),F("L>","N"),F("S","v"),F("L","V"),u(f,"$unpack",(function(e,t){var u,c=this;t=n(t),null==(u=a(t,"offset"))&&(u=0),s(i(u,0))&&r.$raise(p("ArgumentError"),"offset can't be negative"),e=o["$coerce_to!"](e,p("String"),"to_str").$gsub(l(/\s/u,null,""),"").$delete("\0");var m=[];if("U*"==e&&"UTF-8"===c.internal_encoding.name&&"function"==typeof c.codePointAt){var d=0;m=new Array(c.length);for(var f=u;f<c.length;f++)(m[d++]=c.codePointAt(f))>65535&&f++;return m.slice(0,d)}var h=c.$bytes();s($(u,h.$length()))&&r.$raise(p("ArgumentError"),"offset outside of string"),h=h.slice(u);var g=L[e];if(g)return g(h);return y(e,(function(e,t){var n=function(e,t){var n,a=C[e];null==a&&r.$raise("Unsupported unpack directive "+e.$inspect()+" (no chunk reader defined)");var s=a(h,t);n=s.chunk,h=s.rest;var i=N[e];return null==i&&r.$raise("Unsupported unpack directive "+e.$inspect()+" (no handler defined)"),i(n)}(e,t);if(t!==1/0){var a=P[e];null==a&&r.$raise("Unsupported unpack directive "+e.$inspect()+" (no autocompletion rule defined)"),a&&function(e,t){for(;e.length<t;)e.push(_)}(n,t)}m=m.concat(n)})),m}),-2),u(f,"$unpack1",(function(e,t){var r;return t=n(t),null==(r=a(t,"offset"))&&(r=0),e=o["$coerce_to!"](e,p("String"),"to_str").$gsub(l(/\s/u,null,""),"").$delete("\0"),this.$unpack(e["$[]"](0),new Map([["offset",r]]))["$[]"](0)}),-2)}(0,0,[])},Opal.modules.set=Opal.return_val(Opal.nil),Opal.modules["ast/node"]=function(e){var t=e.module,r=e.klass,n=e.alias,a=e.def,s=e.truthy,i=e.send,o=e.return_self,l=e.eqeq,$=e.rb_plus,u=e.rb_times,c=e.to_a,_=[],p=e.nil;return e.add_stubs("attr_reader,children,to_sym,freeze,to_a,assign_properties,hash,class,eql?,type,each,instance_variable_set,protected,dup,private,nil?,==,original_dup,send,equal?,respond_to?,to_ast,updated,+,concat,append,*,fancy_type,is_a?,to_sexp,inspect,map,to_sexp_array,gsub,to_s"),function(_,m){var d=[t(_,"AST")].concat(m);return function(t,_,m){var d=r(t,null,"Node"),f=[d].concat(m),h=e.$r(f),g=d.$$prototype;return g.type=g.children=p,d.$attr_reader("type"),d.$attr_reader("children"),n(d,"to_a","children"),d.$attr_reader("hash"),a(d,"$initialize",(function(e,t,r){var n,a=this;return null==t&&(t=[]),null==r&&(r=new Map),n=[e.$to_sym(),t.$to_a().$freeze()],a.type=n[0],a.children=n[1],a.$assign_properties(r),a.hash=[a.type,a.children,a.$class()].$hash(),a.$freeze()}),-2),a(d,"$eql?",(function(e){var t,r,n=this;return s(t=s(r=n.$class()["$eql?"](e.$class()))?n.type["$eql?"](e.$type()):r)?n.children["$eql?"](e.$children()):t})),a(d,"$assign_properties",(function(e){return i(e,"each",[],(function e(t,r){return null==t&&(t=p),null==r&&(r=p),(null==e.$$s?this:e.$$s).$instance_variable_set("@"+t,r)}),{$$s:this}),p})),d.$protected("assign_properties"),n(d,"original_dup","dup"),d.$private("original_dup"),a(d,"$dup",o),n(d,"clone","dup"),a(d,"$updated",(function(e,t,r){var n,a,i,o=this,$=p,u=p;return null==e&&(e=p),null==t&&(t=p),null==r&&(r=p),n=s($=e)?$:o.type,a=s($=t)?$:o.children,i=s($=r)?$:new Map,l(o.type,n)&&l(o.children,a)&&s(r["$nil?"]())?o:((u=o.$original_dup()).$send("initialize",n,a,i),u)}),-1),a(d,"$==",(function(e){var t=this,r=p;return!!s(t["$equal?"](e))||!!s(e["$respond_to?"]("to_ast"))&&(e=e.$to_ast(),s(r=e.$type()["$=="](t.$type()))?e.$children()["$=="](t.$children()):r)})),a(d,"$concat",(function(e){return this.$updated(p,$(this.children,e.$to_a()))})),n(d,"+","concat"),a(d,"$append",(function(e){return this.$updated(p,$(this.children,[e]))})),n(d,"<<","append"),a(d,"$to_sexp",(function(e){var t,r=p;return null==e&&(e=0),t=u(" ",e),r=t+"("+this.$fancy_type(),i(this.$children(),"each",[],(function(t){return null==t&&(t=p),r=s(t["$is_a?"](h("Node")))?$(r,"\n"+t.$to_sexp($(e,1))):$(r," "+t.$inspect())})),r=$(r,")")}),-1),n(d,"to_s","to_sexp"),a(d,"$inspect",(function(e){var t,r=p;return null==e&&(e=0),t=u(" ",e),r=t+"s(:"+this.type,i(this.$children(),"each",[],(function(t){return null==t&&(t=p),r=s(t["$is_a?"](h("Node")))?$(r,",\n"+t.$inspect($(e,1))):$(r,", "+t.$inspect())})),r=$(r,")")}),-1),a(d,"$to_ast",o),a(d,"$to_sexp_array",(function(){var e;return e=i(this.$children(),"map",[],(function(e){return null==e&&(e=p),s(e["$is_a?"](h("Node")))?e.$to_sexp_array():e})),[this.$type()].concat(c(e))})),a(d,"$deconstruct",(function(){return[this.$type()].concat(c(this.$children()))})),d.$protected(),a(d,"$fancy_type",(function(){return this.type.$to_s().$gsub("_","-")}))}(d[0],0,d)}(_[0],_)},Opal.modules["ast/processor/mixin"]=function(e){var t=e.module,r=e.klass,n=e.truthy,a=e.def,s=e.send,i=e.return_val,o=[],l=e.nil;return e.add_stubs("nil?,to_ast,type,respond_to?,send,handler_missing,map,to_a,process"),function(e,o){var $=[t(e,"AST")].concat(o);return function(e,o,$){return function(e){var r=t(e,"Mixin");return a(r,"$process",(function(e){var t,r=this,a=l;return n(e["$nil?"]())?l:(t="on_"+(e=e.$to_ast()).$type(),a=n(r["$respond_to?"](t))?r.$send(t,e):r.$handler_missing(e),n(a)&&(e=a),e)})),a(r,"$process_all",(function(e){return s(e.$to_a(),"map",[],(function e(t){return null==t&&(t=l),(null==e.$$s?this:e.$$s).$process(t)}),{$$s:this})})),a(r,"$handler_missing",i(l))}([r(e,null,"Processor")].concat($)[0])}($[0],0,$)}(o[0],o)},Opal.modules["ast/processor"]=function(e){var t=e.module,r=e.klass,n=[];e.nil;return e.add_stubs("require,include"),function(n,a){var s=[t(n,"AST")].concat(a);return function(t,n,a){var s=r(t,null,"Processor"),i=[s].concat(a),o=e.$r(i);return s.$require("ast/processor/mixin"),s.$include(o("Mixin"))}(s[0],0,s)}(n[0],n)},Opal.modules["ast/sexp"]=function(e){var t=e.module,r=e.slice,n=e.def,a=[];e.nil;return e.add_stubs("new"),function(a,s){var i=[t(a,"AST")].concat(s);return function(a,s){var i=t(a,"Sexp"),o=[i].concat(s),l=e.$r(o);return n(i,"$s",(function(e,t){var n;return n=r(arguments,1),l("Node").$new(e,n)}),-2)}(i[0],i)}(a[0],a)},Opal.modules.ast=function(e){var t=e.module;e.nil;return e.add_stubs("require"),function(e){var r=t(e,"AST");return r.$require("ast/node"),r.$require("ast/processor"),r.$require("ast/sexp")}([][0])},Opal.modules["parser/ast/node"]=function(e){var t=e.module,r=e.klass,n=e.alias,a=e.truthy,s=e.def,i=[],o=e.nil,l=e.$$$;return e.add_stubs("attr_reader,location,[],frozen?,dup,node="),function(e,i){var $=[t(e,"Parser")].concat(i);return function(e,i){return function(e,t){var i=r(e,t,"Node");return i.$attr_reader("location"),n(i,"loc","location"),s(i,"$assign_properties",(function(e){var t=o;return a(t=e["$[]"]("location"))?(a(t["$frozen?"]())&&(t=t.$dup()),t["$node="](this),this.location=t):o}))}([t(e,"AST")].concat(i)[0],l(l("AST"),"Node"))}($[0],$)}(i[0],i)},Opal.modules["opal/ast/node"]=function(e){var t=e.module,r=e.klass,n=e.truthy,a=e.send2,s=e.find_super,i=e.def,o=e.top,l=[],$=e.nil,u=e.$$$;return e.add_stubs("require,attr_reader,[],frozen?,dup,merge!,loc,line,column"),o.$require("ast"),o.$require("parser/ast/node"),function(e,o){var l=[t(e,"Opal")].concat(o);return function(e,o){return function(e,t){var o=r(e,t,"Node");return o.$$prototype.meta=$,o.$attr_reader("meta"),i(o,"$assign_properties",(function e(t){var r=e.$$p||$,i=this,o=$,l=$;return e.$$p=null,n(o=t["$[]"]("meta"))?(n(o["$frozen?"]())&&(o=o.$dup()),i.meta["$merge!"](o)):i.meta=n(l=i.meta)?l:new Map,a(i,s(i,"assign_properties",e,!1,!0),"assign_properties",[t],r)})),i(o,"$line",(function(){return n(this.$loc())?this.$loc().$line():$})),i(o,"$column",(function(){return n(this.$loc())?this.$loc().$column():$}))}([t(e,"AST")].concat(o)[0],u(u(u("Parser"),"AST"),"Node"))}(l[0],l)}(l[0],l)},Opal.modules["racc/parser"]=function(e){var t=e.module,r=e.klass,n=e.truthy,a=e.const_set,s=e.defs,i=e.gvars,o=e.rb_lt,l=e.def,$=e.to_ary,u=e.send,c=e.neqeq,_=e.rb_plus,p=e.eqeq,m=e.rb_ge,d=e.rb_gt,f=e.rb_minus,h=e.rb_le,g=e.rb_times,b=e.assign_ivar_val,v=[],y=e.$r(v),x=e.nil,w=e.$$$;return e.add_stubs("[],class,<,size,[]=,__send__,_racc_setup,raise,_racc_init_sysvars,catch,!=,next_token,racc_read_token,+,==,>=,_racc_evalact,!,>,-,push,racc_shift,-@,_racc_do_reduce,racc_accept,throw,on_error,<=,pop,racc_e_pop,inspect,racc_next_state,*,racc_reduce,sprintf,token_to_str,print,racc_token2str,puts,racc_print_stacks,empty?,each,racc_print_states,each_index"),function(n,a){var s=[t(n,"Racc")].concat(a),i=e.$r(s);r(s[0],i("StandardError"),"ParseError")}(v[0],v),n(w("::","ParseError","skip_raise")?"constant":x)||a(v[0],"ParseError",w(y("Racc"),"ParseError")),function(v,y){var k=[t(v,"Racc")].concat(y),U=e.$r(k);return n(U("Racc_No_Extensions","skip_raise")?"constant":x)||a(k[0],"Racc_No_Extensions",!1),function(t,v,y){var k=r(t,null,"Parser"),U=[k].concat(y),E=e.$r(U),M=k.$$prototype;return M.yydebug=M.racc_debug_out=M.racc_error_status=M.racc_t=M.racc_vstack=M.racc_val=M.racc_state=M.racc_tstack=x,a(U[0],"Racc_Runtime_Version","1.4.6"),a(U[0],"Racc_Runtime_Revision",["originalRevision:","1.8"]["$[]"](1)),a(U[0],"Racc_Runtime_Core_Version_R","1.4.6"),a(U[0],"Racc_Runtime_Core_Revision_R",["originalRevision:","1.8"]["$[]"](1)),a(U[0],"Racc_Main_Parsing_Routine","_racc_do_parse_rb"),a(U[0],"Racc_YY_Parse_Method","_racc_yyparse_rb"),a(U[0],"Racc_Runtime_Core_Version",E("Racc_Runtime_Core_Version_R")),a(U[0],"Racc_Runtime_Core_Revision",E("Racc_Runtime_Core_Revision_R")),a(U[0],"Racc_Runtime_Type","ruby"),s(E("Parser"),"$racc_runtime_type",(function(){return E("Racc_Runtime_Type")})),l(k,"$_racc_setup",(function(){var e,t,r=this,a=x,s=x;return null==i.stderr&&(i.stderr=x),n(w(r.$class(),"Racc_debug_parser"))||(r.yydebug=!1),n(null!=(e=r.yydebug)&&e!==x?"instance-variable":x)||(r.yydebug=!1),n(r.yydebug)&&(n(null!=(t=r.racc_debug_out)&&t!==x?"instance-variable":x)||(r.racc_debug_out=i.stderr),r.racc_debug_out=n(a=r.racc_debug_out)?a:i.stderr),s=w(r.$class(),"Racc_arg"),n(o(s.$size(),14))&&s["$[]="](13,!0),s})),l(k,"$_racc_init_sysvars",(function(){var e=this;return e.racc_state=[0],e.racc_tstack=[],e.racc_vstack=[],e.racc_t=x,e.racc_val=x,e.racc_read_next=!0,e.racc_user_yyerror=!1,e.racc_error_status=0})),l(k,"$do_parse",(function(){return this.$__send__(E("Racc_Main_Parsing_Routine"),this.$_racc_setup(),!1)})),l(k,"$next_token",(function(){return this.$raise(E("NotImplementedError"),this.$class()+"#next_token is not defined")})),l(k,"$_racc_do_parse_rb",(function(e,t){var r,a=this,s=x,i=x,o=x,l=x,d=x,f=x,h=x,g=x;return r=$(e),s=null==r[0]?x:r[0],i=null==r[1]?x:r[1],o=null==r[2]?x:r[2],l=null==r[3]?x:r[3],null==r[4]?x:r[4],null==r[5]?x:r[5],null==r[6]?x:r[6],null==r[7]?x:r[7],null==r[8]?x:r[8],null==r[9]?x:r[9],d=null==r[10]?x:r[10],null==r[11]?x:r[11],null==r[12]?x:r[12],null==r[13]?x:r[13],a.$_racc_init_sysvars(),f=h=g=x,u(a,"catch",["racc_end_parse"],(function t(){var r,a,u=null==t.$$s?this:t.$$s,b=x;for(null==u.racc_state&&(u.racc_state=x),null==u.racc_read_next&&(u.racc_read_next=x),null==u.racc_t&&(u.racc_t=x),null==u.yydebug&&(u.yydebug=x),null==u.racc_val&&(u.racc_val=x);n(!0);)for(n(g=l["$[]"](u.racc_state["$[]"](-1)))?(n(u.racc_read_next)&&c(u.racc_t,0)&&(a=u.$next_token(),r=$(a),f=null==r[0]?x:r[0],u.racc_val=null==r[1]?x:r[1],n(f)?u.racc_t=n(b=d["$[]"](f))?b:1:u.racc_t=0,n(u.yydebug)&&u.$racc_read_token(u.racc_t,f,u.racc_val),u.racc_read_next=!1),g=_(g,u.racc_t),n(m(g,0))&&n(h=s["$[]"](g))&&p(i["$[]"](g),u.racc_state["$[]"](-1))||(h=o["$[]"](u.racc_state["$[]"](-1)))):h=o["$[]"](u.racc_state["$[]"](-1));n(h=u.$_racc_evalact(h,e)););}),{$$s:a})})),l(k,"$yyparse",(function(e,t){return this.$__send__(E("Racc_YY_Parse_Method"),e,t,this.$_racc_setup(),!0)})),l(k,"$_racc_yyparse_rb",(function(e,t,r,a){var s,i=this,o=x,l=x,c=x,d=x,f=x,h=x,g=x;return s=$(r),o=null==s[0]?x:s[0],l=null==s[1]?x:s[1],c=null==s[2]?x:s[2],d=null==s[3]?x:s[3],null==s[4]?x:s[4],null==s[5]?x:s[5],null==s[6]?x:s[6],null==s[7]?x:s[7],null==s[8]?x:s[8],null==s[9]?x:s[9],f=null==s[10]?x:s[10],null==s[11]?x:s[11],null==s[12]?x:s[12],null==s[13]?x:s[13],i.$_racc_init_sysvars(),h=x,g=x,u(i,"catch",["racc_end_parse"],(function a(){var s=null==a.$$s?this:a.$$s;for(null==s.racc_state&&(s.racc_state=x);!n(g=d["$[]"](s.racc_state["$[]"](-1)));)for(;n(h=s.$_racc_evalact(c["$[]"](s.racc_state["$[]"](-1)),r)););return u(e,"__send__",[t],(function e(t,a){var s=null==e.$$s?this:e.$$s,i=x,$=x;for(null==s.racc_t&&(s.racc_t=x),null==s.racc_state&&(s.racc_state=x),null==s.racc_read_next&&(s.racc_read_next=x),null==t&&(t=x),null==a&&(a=x),n(t)?s.racc_t=n(i=f["$[]"](t))?i:1:s.racc_t=0,s.racc_val=a,s.racc_read_next=!1,g=_(g,s.racc_t),n(m(g,0))&&n(h=o["$[]"](g))&&p(l["$[]"](g),s.racc_state["$[]"](-1))||(h=c["$[]"](s.racc_state["$[]"](-1)));n(h=s.$_racc_evalact(h,r)););for(;n(n(i=n($=(g=d["$[]"](s.racc_state["$[]"](-1)))["$!"]())?$:s.racc_read_next["$!"]())?i:s.racc_t["$=="](0));)for(n(g)&&n(g=_(g,s.racc_t))&&n(m(g,0))&&n(h=o["$[]"](g))&&p(l["$[]"](g),s.racc_state["$[]"](-1))||(h=c["$[]"](s.racc_state["$[]"](-1)));n(h=s.$_racc_evalact(h,r)););}),{$$s:s})}),{$$s:i})})),l(k,"$_racc_evalact",(function(e,t){var r,a,s=this,i=x,l=x,c=x,g=x,b=x,v=x;if(i=null==(r=$(t))[0]?x:r[0],l=null==r[1]?x:r[1],null==r[2]?x:r[2],c=null==r[3]?x:r[3],null==r[4]?x:r[4],null==r[5]?x:r[5],null==r[6]?x:r[6],null==r[7]?x:r[7],null==r[8]?x:r[8],null==r[9]?x:r[9],null==r[10]?x:r[10],a=null==r[11]?x:r[11],g=null==r[12]?x:r[12],null==r[13]?x:r[13],null==r[14]?x:r[14],n(d(e,0))&&n(o(e,a)))n(d(s.racc_error_status,0))&&(p(s.racc_t,1)||(s.racc_error_status=f(s.racc_error_status,1))),s.racc_vstack.$push(s.racc_val),s.racc_state.$push(e),s.racc_read_next=!0,n(s.yydebug)&&(s.racc_tstack.$push(s.racc_t),s.$racc_shift(s.racc_t,s.racc_tstack,s.racc_vstack));else if(n(o(e,0))&&n(d(e,g["$-@"]()))){if(b=u(s,"catch",["racc_jump"],(function r(){var n=null==r.$$s?this:r.$$s;return null==n.racc_state&&(n.racc_state=x),n.racc_state.$push(n.$_racc_do_reduce(t,e)),!1}),{$$s:s}),n(b))switch(b.valueOf()){case 1:return s.racc_user_yyerror=!0,g["$-@"]();case 2:return a;default:s.$raise("[Racc Bug] unknown jump code")}}else if(p(e,a))n(s.yydebug)&&s.$racc_accept(),s.$throw("racc_end_parse",s.racc_vstack["$[]"](0));else{if(p(e,g["$-@"]())){switch(s.racc_error_status.valueOf()){case 0:n(t["$[]"](21))||s.$on_error(s.racc_t,s.racc_val,s.racc_vstack);break;case 3:p(s.racc_t,0)&&s.$throw("racc_end_parse",x),s.racc_read_next=!0}for(s.racc_user_yyerror=!1,s.racc_error_status=3;n(!0)&&!(n(v=c["$[]"](s.racc_state["$[]"](-1)))&&(v=_(v,1),n(m(v,0))&&n(e=i["$[]"](v))&&p(l["$[]"](v),s.racc_state["$[]"](-1))));)n(h(s.racc_state.$size(),1))&&s.$throw("racc_end_parse",x),s.racc_state.$pop(),s.racc_vstack.$pop(),n(s.yydebug)&&(s.racc_tstack.$pop(),s.$racc_e_pop(s.racc_state,s.racc_tstack,s.racc_vstack));return e}s.$raise("[Racc Bug] unknown action "+e.$inspect())}return n(s.yydebug)&&s.$racc_next_state(s.racc_state["$[]"](-1),s.racc_state),x})),l(k,"$_racc_do_reduce",(function(e,t){var r,a,s,i,o,l,u,c=this,d=x,h=x,b=x,v=x,y=x,w=x,k=x,U=x,E=x,M=x,q=x,S=x,O=x;return null==(r=$(e))[0]?x:r[0],null==r[1]?x:r[1],null==r[2]?x:r[2],null==r[3]?x:r[3],d=null==r[4]?x:r[4],h=null==r[5]?x:r[5],b=null==r[6]?x:r[6],v=null==r[7]?x:r[7],a=null==r[8]?x:r[8],y=null==r[9]?x:r[9],null==r[10]?x:r[10],null==r[11]?x:r[11],null==r[12]?x:r[12],s=null==r[13]?x:r[13],w=c.racc_state,k=c.racc_vstack,U=c.racc_tstack,E=g(t,-3),M=y["$[]"](E),i=y["$[]"](_(E,1)),o=y["$[]"](_(E,2)),l=[],n(c.yydebug)&&(q=U["$[]"](M["$-@"](),M)),S=k["$[]"](M["$-@"](),M),n(c.yydebug)&&U["$[]="](M["$-@"](),M,l),k["$[]="](M["$-@"](),M,l),w["$[]="](M["$-@"](),M,l),n(s)?k.$push(c.$__send__(o,S,k,S["$[]"](0))):k.$push(c.$__send__(o,S,k)),U.$push(i),n(c.yydebug)&&c.$racc_reduce(q,i,U,k),u=f(i,a),n(E=v["$[]"](u))&&(E=_(E,w["$[]"](-1)),n(m(E,0))&&n(O=d["$[]"](E))&&p(h["$[]"](E),u))?O:b["$[]"](u)})),l(k,"$on_error",(function(e,t,r){var a,s=this;return s.$raise(E("ParseError"),s.$sprintf("\nparse error on value %s (%s)",t.$inspect(),n(a=s.$token_to_str(e))?a:"?"))})),l(k,"$yyerror",(function(){return this.$throw("racc_jump",1)})),l(k,"$yyaccept",(function(){return this.$throw("racc_jump",2)})),l(k,"$yyerrok",b("racc_error_status",0)),l(k,"$racc_read_token",(function(e,t,r){var n=this;return n.racc_debug_out.$print("read "),n.racc_debug_out.$print(t.$inspect(),"(",n.$racc_token2str(e),") "),n.racc_debug_out.$puts(r.$inspect()),n.racc_debug_out.$puts()})),l(k,"$racc_shift",(function(e,t,r){var n=this;return n.racc_debug_out.$puts("shift "+n.$racc_token2str(e)),n.$racc_print_stacks(t,r),n.racc_debug_out.$puts()})),l(k,"$racc_reduce",(function(e,t,r,a){var s=this,i=x;return(i=s.racc_debug_out).$print("reduce "),n(e["$empty?"]())?i.$print(" <none>"):u(e,"each",[],(function e(t){var r=null==e.$$s?this:e.$$s;return null==t&&(t=x),i.$print(" ",r.$racc_token2str(t))}),{$$s:s}),i.$puts(" --\x3e "+s.$racc_token2str(t)),s.$racc_print_stacks(r,a),s.racc_debug_out.$puts()})),l(k,"$racc_accept",(function(){return this.racc_debug_out.$puts("accept"),this.racc_debug_out.$puts()})),l(k,"$racc_e_pop",(function(e,t,r){var n=this;return n.racc_debug_out.$puts("error recovering mode: pop token"),n.$racc_print_states(e),n.$racc_print_stacks(t,r),n.racc_debug_out.$puts()})),l(k,"$racc_next_state",(function(e,t){var r=this;return r.racc_debug_out.$puts("goto "+e),r.$racc_print_states(t),r.racc_debug_out.$puts()})),l(k,"$racc_print_stacks",(function(e,t){var r=x;return(r=this.racc_debug_out).$print(" ["),u(e,"each_index",[],(function n(a){var s=null==n.$$s?this:n.$$s;return null==a&&(a=x),r.$print(" (",s.$racc_token2str(e["$[]"](a))," ",t["$[]"](a).$inspect(),")")}),{$$s:this}),r.$puts(" ]")})),l(k,"$racc_print_states",(function(e){var t=x;return(t=this.racc_debug_out).$print(" ["),u(e,"each",[],(function(e){return null==e&&(e=x),t.$print(" ",e)})),t.$puts(" ]")})),l(k,"$racc_token2str",(function(e){var t;return n(t=w(this.$class(),"Racc_token_to_s_table")["$[]"](e))?t:this.$raise("[Racc Bug] can't convert token "+e+" to string")})),l(k,"$token_to_str",(function(e){return w(this.$class(),"Racc_token_to_s_table")["$[]"](e)}))}(k[0],0,k)}(v[0],v)},Opal.modules["racc/parser"]=function(e){var t=e.module,r=e.klass,n=e.truthy,a=e.const_set,s=e.defs,i=e.gvars,o=e.rb_lt,l=e.def,$=e.to_ary,u=e.send,c=e.neqeq,_=e.rb_plus,p=e.eqeq,m=e.rb_ge,d=e.rb_gt,f=e.rb_minus,h=e.rb_le,g=e.rb_times,b=e.assign_ivar_val,v=[],y=e.$r(v),x=e.nil,w=e.$$$;return e.add_stubs("[],class,<,size,[]=,__send__,_racc_setup,raise,_racc_init_sysvars,catch,!=,next_token,racc_read_token,+,==,>=,_racc_evalact,!,>,-,push,racc_shift,-@,_racc_do_reduce,racc_accept,throw,on_error,<=,pop,racc_e_pop,inspect,racc_next_state,*,racc_reduce,sprintf,token_to_str,print,racc_token2str,puts,racc_print_stacks,empty?,each,racc_print_states,each_index"),function(n,a){var s=[t(n,"Racc")].concat(a),i=e.$r(s);r(s[0],i("StandardError"),"ParseError")}(v[0],v),n(w("::","ParseError","skip_raise")?"constant":x)||a(v[0],"ParseError",w(y("Racc"),"ParseError")),function(v,y){var k=[t(v,"Racc")].concat(y),U=e.$r(k);return n(U("Racc_No_Extensions","skip_raise")?"constant":x)||a(k[0],"Racc_No_Extensions",!1),function(t,v,y){var k=r(t,null,"Parser"),U=[k].concat(y),E=e.$r(U),M=k.$$prototype;return M.yydebug=M.racc_debug_out=M.racc_error_status=M.racc_t=M.racc_vstack=M.racc_val=M.racc_state=M.racc_tstack=x,a(U[0],"Racc_Runtime_Version","1.4.6"),a(U[0],"Racc_Runtime_Revision",["originalRevision:","1.8"]["$[]"](1)),a(U[0],"Racc_Runtime_Core_Version_R","1.4.6"),a(U[0],"Racc_Runtime_Core_Revision_R",["originalRevision:","1.8"]["$[]"](1)),a(U[0],"Racc_Main_Parsing_Routine","_racc_do_parse_rb"),a(U[0],"Racc_YY_Parse_Method","_racc_yyparse_rb"),a(U[0],"Racc_Runtime_Core_Version",E("Racc_Runtime_Core_Version_R")),a(U[0],"Racc_Runtime_Core_Revision",E("Racc_Runtime_Core_Revision_R")),a(U[0],"Racc_Runtime_Type","ruby"),s(E("Parser"),"$racc_runtime_type",(function(){return E("Racc_Runtime_Type")})),l(k,"$_racc_setup",(function(){var e,t,r=this,a=x,s=x;return null==i.stderr&&(i.stderr=x),n(w(r.$class(),"Racc_debug_parser"))||(r.yydebug=!1),n(null!=(e=r.yydebug)&&e!==x?"instance-variable":x)||(r.yydebug=!1),n(r.yydebug)&&(n(null!=(t=r.racc_debug_out)&&t!==x?"instance-variable":x)||(r.racc_debug_out=i.stderr),r.racc_debug_out=n(a=r.racc_debug_out)?a:i.stderr),s=w(r.$class(),"Racc_arg"),n(o(s.$size(),14))&&s["$[]="](13,!0),s})),l(k,"$_racc_init_sysvars",(function(){var e=this;return e.racc_state=[0],e.racc_tstack=[],e.racc_vstack=[],e.racc_t=x,e.racc_val=x,e.racc_read_next=!0,e.racc_user_yyerror=!1,e.racc_error_status=0})),l(k,"$do_parse",(function(){return this.$__send__(E("Racc_Main_Parsing_Routine"),this.$_racc_setup(),!1)})),l(k,"$next_token",(function(){return this.$raise(E("NotImplementedError"),this.$class()+"#next_token is not defined")})),l(k,"$_racc_do_parse_rb",(function(e,t){var r,a=this,s=x,i=x,o=x,l=x,d=x,f=x,h=x,g=x;return r=$(e),s=null==r[0]?x:r[0],i=null==r[1]?x:r[1],o=null==r[2]?x:r[2],l=null==r[3]?x:r[3],null==r[4]?x:r[4],null==r[5]?x:r[5],null==r[6]?x:r[6],null==r[7]?x:r[7],null==r[8]?x:r[8],null==r[9]?x:r[9],d=null==r[10]?x:r[10],null==r[11]?x:r[11],null==r[12]?x:r[12],null==r[13]?x:r[13],a.$_racc_init_sysvars(),f=h=g=x,u(a,"catch",["racc_end_parse"],(function t(){var r,a,u=null==t.$$s?this:t.$$s,b=x;for(null==u.racc_state&&(u.racc_state=x),null==u.racc_read_next&&(u.racc_read_next=x),null==u.racc_t&&(u.racc_t=x),null==u.yydebug&&(u.yydebug=x),null==u.racc_val&&(u.racc_val=x);n(!0);)for(n(g=l["$[]"](u.racc_state["$[]"](-1)))?(n(u.racc_read_next)&&c(u.racc_t,0)&&(a=u.$next_token(),r=$(a),f=null==r[0]?x:r[0],u.racc_val=null==r[1]?x:r[1],n(f)?u.racc_t=n(b=d["$[]"](f))?b:1:u.racc_t=0,n(u.yydebug)&&u.$racc_read_token(u.racc_t,f,u.racc_val),u.racc_read_next=!1),g=_(g,u.racc_t),n(m(g,0))&&n(h=s["$[]"](g))&&p(i["$[]"](g),u.racc_state["$[]"](-1))||(h=o["$[]"](u.racc_state["$[]"](-1)))):h=o["$[]"](u.racc_state["$[]"](-1));n(h=u.$_racc_evalact(h,e)););}),{$$s:a})})),l(k,"$yyparse",(function(e,t){return this.$__send__(E("Racc_YY_Parse_Method"),e,t,this.$_racc_setup(),!0)})),l(k,"$_racc_yyparse_rb",(function(e,t,r,a){var s,i=this,o=x,l=x,c=x,d=x,f=x,h=x,g=x;return s=$(r),o=null==s[0]?x:s[0],l=null==s[1]?x:s[1],c=null==s[2]?x:s[2],d=null==s[3]?x:s[3],null==s[4]?x:s[4],null==s[5]?x:s[5],null==s[6]?x:s[6],null==s[7]?x:s[7],null==s[8]?x:s[8],null==s[9]?x:s[9],f=null==s[10]?x:s[10],null==s[11]?x:s[11],null==s[12]?x:s[12],null==s[13]?x:s[13],i.$_racc_init_sysvars(),h=x,g=x,u(i,"catch",["racc_end_parse"],(function a(){var s=null==a.$$s?this:a.$$s;for(null==s.racc_state&&(s.racc_state=x);!n(g=d["$[]"](s.racc_state["$[]"](-1)));)for(;n(h=s.$_racc_evalact(c["$[]"](s.racc_state["$[]"](-1)),r)););return u(e,"__send__",[t],(function e(t,a){var s=null==e.$$s?this:e.$$s,i=x,$=x;for(null==s.racc_t&&(s.racc_t=x),null==s.racc_state&&(s.racc_state=x),null==s.racc_read_next&&(s.racc_read_next=x),null==t&&(t=x),null==a&&(a=x),n(t)?s.racc_t=n(i=f["$[]"](t))?i:1:s.racc_t=0,s.racc_val=a,s.racc_read_next=!1,g=_(g,s.racc_t),n(m(g,0))&&n(h=o["$[]"](g))&&p(l["$[]"](g),s.racc_state["$[]"](-1))||(h=c["$[]"](s.racc_state["$[]"](-1)));n(h=s.$_racc_evalact(h,r)););for(;n(n(i=n($=(g=d["$[]"](s.racc_state["$[]"](-1)))["$!"]())?$:s.racc_read_next["$!"]())?i:s.racc_t["$=="](0));)for(n(g)&&n(g=_(g,s.racc_t))&&n(m(g,0))&&n(h=o["$[]"](g))&&p(l["$[]"](g),s.racc_state["$[]"](-1))||(h=c["$[]"](s.racc_state["$[]"](-1)));n(h=s.$_racc_evalact(h,r)););}),{$$s:s})}),{$$s:i})})),l(k,"$_racc_evalact",(function(e,t){var r,a,s=this,i=x,l=x,c=x,g=x,b=x,v=x;if(i=null==(r=$(t))[0]?x:r[0],l=null==r[1]?x:r[1],null==r[2]?x:r[2],c=null==r[3]?x:r[3],null==r[4]?x:r[4],null==r[5]?x:r[5],null==r[6]?x:r[6],null==r[7]?x:r[7],null==r[8]?x:r[8],null==r[9]?x:r[9],null==r[10]?x:r[10],a=null==r[11]?x:r[11],g=null==r[12]?x:r[12],null==r[13]?x:r[13],null==r[14]?x:r[14],n(d(e,0))&&n(o(e,a)))n(d(s.racc_error_status,0))&&(p(s.racc_t,1)||(s.racc_error_status=f(s.racc_error_status,1))),s.racc_vstack.$push(s.racc_val),s.racc_state.$push(e),s.racc_read_next=!0,n(s.yydebug)&&(s.racc_tstack.$push(s.racc_t),s.$racc_shift(s.racc_t,s.racc_tstack,s.racc_vstack));else if(n(o(e,0))&&n(d(e,g["$-@"]()))){if(b=u(s,"catch",["racc_jump"],(function r(){var n=null==r.$$s?this:r.$$s;return null==n.racc_state&&(n.racc_state=x),n.racc_state.$push(n.$_racc_do_reduce(t,e)),!1}),{$$s:s}),n(b))switch(b.valueOf()){case 1:return s.racc_user_yyerror=!0,g["$-@"]();case 2:return a;default:s.$raise("[Racc Bug] unknown jump code")}}else if(p(e,a))n(s.yydebug)&&s.$racc_accept(),s.$throw("racc_end_parse",s.racc_vstack["$[]"](0));else{if(p(e,g["$-@"]())){switch(s.racc_error_status.valueOf()){case 0:n(t["$[]"](21))||s.$on_error(s.racc_t,s.racc_val,s.racc_vstack);break;case 3:p(s.racc_t,0)&&s.$throw("racc_end_parse",x),s.racc_read_next=!0}for(s.racc_user_yyerror=!1,s.racc_error_status=3;n(!0)&&!(n(v=c["$[]"](s.racc_state["$[]"](-1)))&&(v=_(v,1),n(m(v,0))&&n(e=i["$[]"](v))&&p(l["$[]"](v),s.racc_state["$[]"](-1))));)n(h(s.racc_state.$size(),1))&&s.$throw("racc_end_parse",x),s.racc_state.$pop(),s.racc_vstack.$pop(),n(s.yydebug)&&(s.racc_tstack.$pop(),s.$racc_e_pop(s.racc_state,s.racc_tstack,s.racc_vstack));return e}s.$raise("[Racc Bug] unknown action "+e.$inspect())}return n(s.yydebug)&&s.$racc_next_state(s.racc_state["$[]"](-1),s.racc_state),x})),l(k,"$_racc_do_reduce",(function(e,t){var r,a,s,i,o,l,u,c=this,d=x,h=x,b=x,v=x,y=x,w=x,k=x,U=x,E=x,M=x,q=x,S=x,O=x;return null==(r=$(e))[0]?x:r[0],null==r[1]?x:r[1],null==r[2]?x:r[2],null==r[3]?x:r[3],d=null==r[4]?x:r[4],h=null==r[5]?x:r[5],b=null==r[6]?x:r[6],v=null==r[7]?x:r[7],a=null==r[8]?x:r[8],y=null==r[9]?x:r[9],null==r[10]?x:r[10],null==r[11]?x:r[11],null==r[12]?x:r[12],s=null==r[13]?x:r[13],w=c.racc_state,k=c.racc_vstack,U=c.racc_tstack,E=g(t,-3),M=y["$[]"](E),i=y["$[]"](_(E,1)),o=y["$[]"](_(E,2)),l=[],n(c.yydebug)&&(q=U["$[]"](M["$-@"](),M)),S=k["$[]"](M["$-@"](),M),n(c.yydebug)&&U["$[]="](M["$-@"](),M,l),k["$[]="](M["$-@"](),M,l),w["$[]="](M["$-@"](),M,l),n(s)?k.$push(c.$__send__(o,S,k,S["$[]"](0))):k.$push(c.$__send__(o,S,k)),U.$push(i),n(c.yydebug)&&c.$racc_reduce(q,i,U,k),u=f(i,a),n(E=v["$[]"](u))&&(E=_(E,w["$[]"](-1)),n(m(E,0))&&n(O=d["$[]"](E))&&p(h["$[]"](E),u))?O:b["$[]"](u)})),l(k,"$on_error",(function(e,t,r){var a,s=this;return s.$raise(E("ParseError"),s.$sprintf("\nparse error on value %s (%s)",t.$inspect(),n(a=s.$token_to_str(e))?a:"?"))})),l(k,"$yyerror",(function(){return this.$throw("racc_jump",1)})),l(k,"$yyaccept",(function(){return this.$throw("racc_jump",2)})),l(k,"$yyerrok",b("racc_error_status",0)),l(k,"$racc_read_token",(function(e,t,r){var n=this;return n.racc_debug_out.$print("read "),n.racc_debug_out.$print(t.$inspect(),"(",n.$racc_token2str(e),") "),n.racc_debug_out.$puts(r.$inspect()),n.racc_debug_out.$puts()})),l(k,"$racc_shift",(function(e,t,r){var n=this;return n.racc_debug_out.$puts("shift "+n.$racc_token2str(e)),n.$racc_print_stacks(t,r),n.racc_debug_out.$puts()})),l(k,"$racc_reduce",(function(e,t,r,a){var s=this,i=x;return(i=s.racc_debug_out).$print("reduce "),n(e["$empty?"]())?i.$print(" <none>"):u(e,"each",[],(function e(t){var r=null==e.$$s?this:e.$$s;return null==t&&(t=x),i.$print(" ",r.$racc_token2str(t))}),{$$s:s}),i.$puts(" --\x3e "+s.$racc_token2str(t)),s.$racc_print_stacks(r,a),s.racc_debug_out.$puts()})),l(k,"$racc_accept",(function(){return this.racc_debug_out.$puts("accept"),this.racc_debug_out.$puts()})),l(k,"$racc_e_pop",(function(e,t,r){var n=this;return n.racc_debug_out.$puts("error recovering mode: pop token"),n.$racc_print_states(e),n.$racc_print_stacks(t,r),n.racc_debug_out.$puts()})),l(k,"$racc_next_state",(function(e,t){var r=this;return r.racc_debug_out.$puts("goto "+e),r.$racc_print_states(t),r.racc_debug_out.$puts()})),l(k,"$racc_print_stacks",(function(e,t){var r=x;return(r=this.racc_debug_out).$print(" ["),u(e,"each_index",[],(function n(a){var s=null==n.$$s?this:n.$$s;return null==a&&(a=x),r.$print(" (",s.$racc_token2str(e["$[]"](a))," ",t["$[]"](a).$inspect(),")")}),{$$s:this}),r.$puts(" ]")})),l(k,"$racc_print_states",(function(e){var t=x;return(t=this.racc_debug_out).$print(" ["),u(e,"each",[],(function(e){return null==e&&(e=x),t.$print(" ",e)})),t.$puts(" ]")})),l(k,"$racc_token2str",(function(e){var t;return n(t=w(this.$class(),"Racc_token_to_s_table")["$[]"](e))?t:this.$raise("[Racc Bug] can't convert token "+e+" to string")})),l(k,"$token_to_str",(function(e){return w(this.$class(),"Racc_token_to_s_table")["$[]"](e)}))}(k[0],0,k)}(v[0],v)},Opal.modules["parser/version"]=function(e){var t=e.module,r=e.const_set,n=[];e.nil;return function(e,n){var a=[t(e,"Parser")].concat(n);return r(a[0],"VERSION","3.3.6.0")}(n[0],n)},Opal.modules["parser/messages"]=function(e){var t=e.module,r=e.const_set,n=e.truthy,a=e.eqeqeq,s=e.defs,i=[];e.nil;return e.add_stubs("freeze,[],empty?,===,format"),function(i,o){var l=[t(i,"Parser")].concat(o);return r(l[0],"MESSAGES",new Map([["unicode_point_too_large","invalid Unicode codepoint (too large)"],["invalid_escape","invalid escape character syntax"],["incomplete_escape","incomplete character syntax"],["invalid_hex_escape","invalid hex escape"],["invalid_unicode_escape","invalid Unicode escape"],["unterminated_unicode","unterminated Unicode escape"],["escape_eof","escape sequence meets end of file"],["string_eof","unterminated string meets end of file"],["regexp_options","unknown regexp options: %{options}"],["cvar_name","`%{name}' is not allowed as a class variable name"],["ivar_name","`%{name}' is not allowed as an instance variable name"],["gvar_name","`%{name}' is not allowed as a global variable name"],["trailing_in_number","trailing `%{character}' in number"],["empty_numeric","numeric literal without digits"],["invalid_octal","invalid octal digit"],["no_dot_digit_literal","no .<digit> floating literal anymore; put 0 before dot"],["bare_backslash","bare backslash only allowed before newline"],["unexpected","unexpected `%{character}'"],["embedded_document","embedded document meets end of file (and they embark on a romantic journey)"],["heredoc_id_has_newline","here document identifier across newlines, never match"],["heredoc_id_ends_with_nl","here document identifier ends with a newline"],["unterminated_heredoc_id","unterminated heredoc id"],["invalid_escape_use","invalid character syntax; use ?%{escape}"],["ambiguous_literal","ambiguous first argument; put parentheses or a space even after the operator"],["ambiguous_regexp","ambiguity between regexp and two divisions: wrap regexp in parentheses or add a space after `/' operator"],["ambiguous_prefix","`%{prefix}' interpreted as argument prefix"],["triple_dot_at_eol","... at EOL, should be parenthesized"],["nth_ref_alias","cannot define an alias for a back-reference variable"],["begin_in_method","BEGIN in method"],["backref_assignment","cannot assign to a back-reference variable"],["invalid_assignment","cannot assign to a keyword"],["module_name_const","class or module name must be a constant literal"],["unexpected_token","unexpected token %{token}"],["argument_const","formal argument cannot be a constant"],["argument_ivar","formal argument cannot be an instance variable"],["argument_gvar","formal argument cannot be a global variable"],["argument_cvar","formal argument cannot be a class variable"],["duplicate_argument","duplicate argument name"],["empty_symbol","empty symbol literal"],["odd_hash","odd number of entries for a hash"],["singleton_literal","cannot define a singleton method for a literal"],["dynamic_const","dynamic constant assignment"],["const_reassignment","constant re-assignment"],["module_in_def","module definition in method body"],["class_in_def","class definition in method body"],["unexpected_percent_str","%{type}: unknown type of percent-literal"],["block_and_blockarg","both block argument and literal block are passed"],["masgn_as_condition","multiple assignment in conditional context"],["block_given_to_yield","block given to yield"],["invalid_regexp","%{message}"],["invalid_return","Invalid return in class/module body"],["csend_in_lhs_of_masgn","&. inside multiple assignment destination"],["cant_assign_to_numparam","cannot assign to numbered parameter %{name}"],["reserved_for_numparam","%{name} is reserved for numbered parameter"],["ordinary_param_defined","ordinary parameter is defined"],["numparam_used_in_outer_scope","numbered parameter is already used in an outer scope"],["circular_argument_reference","circular argument reference %{var_name}"],["pm_interp_in_var_name","symbol literal with interpolation is not allowed"],["lvar_name","`%{name}' is not allowed as a local variable name"],["undefined_lvar","no such local variable: `%{name}'"],["duplicate_variable_name","duplicate variable name %{name}"],["duplicate_pattern_key","duplicate hash pattern key %{name}"],["endless_setter","setter method cannot be defined in an endless method definition"],["invalid_id_to_get","identifier %{identifier} is not valid to get"],["forward_arg_after_restarg","... after rest argument"],["no_anonymous_blockarg","no anonymous block parameter"],["no_anonymous_restarg","no anonymous rest parameter"],["no_anonymous_kwrestarg","no anonymous keyword rest parameter"],["ambiguous_anonymous_restarg","anonymous rest parameter is also used within block"],["ambiguous_anonymous_kwrestarg","anonymous keyword rest parameter is also used within block"],["ambiguous_anonymous_blockarg","anonymous block parameter is also used within block"],["useless_else","else without rescue is useless"],["duplicate_hash_key","key is duplicated and overwritten"],["ambiguous_it_call","`it` calls without arguments refers to the first block param"],["invalid_encoding","literal contains escape sequences incompatible with UTF-8"],["invalid_action","cannot %{action}"],["clobbered","clobbered by: %{action}"],["different_replacements","different replacements: %{replacement} vs %{other_replacement}"],["swallowed_insertions","this replacement:"],["swallowed_insertions_conflict","swallows some inner rewriting actions:"],["crossing_deletions","the deletion of:"],["crossing_deletions_conflict","is crossing:"],["crossing_insertions","the rewriting action on:"],["crossing_insertions_conflict","is crossing that on:"]]).$freeze()),function(r,i){var o=t(r,"Messages"),l=[o].concat(i),$=e.$r(l);return s(o,"$compile",(function(e,t){var r;return r=$("MESSAGES")["$[]"](e),a($("Hash"),t)&&n(t["$empty?"]())?r:this.$format(r,t)}))}(l[0],l)}(i[0],i)},Opal.modules["parser/deprecation"]=function(e){var t,r=e.module,n=e.truthy,a=e.def,s=[],i=e.nil,o=e.$$$;return e.add_stubs("attr_writer,warn"),t=s,function(e){var t=r(e,"Deprecation");return t.$attr_writer("warned_of_deprecation"),a(t,"$warn_of_deprecation",(function(){var e,t=this,r=i;return null==t.warned_of_deprecation&&(t.warned_of_deprecation=i),t.warned_of_deprecation=n(e=t.warned_of_deprecation)?e:!n(r=t.$warn(o(t,"DEPRECATION_WARNING")))||r}))}([r(s[0],"Parser")].concat(t)[0])},Opal.modules["parser/ast/processor"]=function(e){var t=e.module,r=e.klass,n=e.def,a=e.alias,s=e.to_a,i=e.not,o=e.truthy,l=e.slice,$=[],u=e.nil,c=e.$$$;return e.add_stubs("include,updated,process_all,process_regular_node,on_var,process_variable_node,!,nil?,process,on_vasgn,process_var_asgn_node,on_argument,process_argument_node,is_a?,[],children,on_send,warn"),function($,_){var p=[t($,"Parser")].concat(_);return function($,_){var p=[t($,"AST")].concat(_);return function(t,$,_){var p=r(t,null,"Processor"),m=[p].concat(_),d=e.$r(m);return p.$include(c(c(c("AST"),"Processor"),"Mixin")),n(p,"$process_regular_node",(function(e){return e.$updated(u,this.$process_all(e))})),a(p,"on_dstr","process_regular_node"),a(p,"on_dsym","process_regular_node"),a(p,"on_regexp","process_regular_node"),a(p,"on_xstr","process_regular_node"),a(p,"on_splat","process_regular_node"),a(p,"on_kwsplat","process_regular_node"),a(p,"on_array","process_regular_node"),a(p,"on_pair","process_regular_node"),a(p,"on_hash","process_regular_node"),a(p,"on_kwargs","process_regular_node"),a(p,"on_irange","process_regular_node"),a(p,"on_erange","process_regular_node"),n(p,"$on_var",(function(e){return e})),n(p,"$process_variable_node",(function(e){return this.$on_var(e)})),a(p,"on_lvar","process_variable_node"),a(p,"on_ivar","process_variable_node"),a(p,"on_gvar","process_variable_node"),a(p,"on_cvar","process_variable_node"),a(p,"on_back_ref","process_variable_node"),a(p,"on_nth_ref","process_variable_node"),n(p,"$on_vasgn",(function(e){var t,r,n=u;return r=null==(t=[].concat(s(e)))[0]?u:t[0],n=null==t[1]?u:t[1],i(n["$nil?"]())?e.$updated(u,[r,this.$process(n)]):e})),n(p,"$process_var_asgn_node",(function(e){return this.$on_vasgn(e)})),a(p,"on_lvasgn","process_var_asgn_node"),a(p,"on_ivasgn","process_var_asgn_node"),a(p,"on_gvasgn","process_var_asgn_node"),a(p,"on_cvasgn","process_var_asgn_node"),a(p,"on_and_asgn","process_regular_node"),a(p,"on_or_asgn","process_regular_node"),n(p,"$on_op_asgn",(function(e){var t,r,n,a;return r=null==(t=[].concat(s(e)))[0]?u:t[0],n=null==t[1]?u:t[1],a=null==t[2]?u:t[2],e.$updated(u,[this.$process(r),n,this.$process(a)])})),a(p,"on_mlhs","process_regular_node"),a(p,"on_masgn","process_regular_node"),n(p,"$on_const",(function(e){var t,r,n;return r=null==(t=[].concat(s(e)))[0]?u:t[0],n=null==t[1]?u:t[1],e.$updated(u,[this.$process(r),n])})),n(p,"$on_casgn",(function(e){var t,r,n,a=this,o=u;return r=null==(t=[].concat(s(e)))[0]?u:t[0],n=null==t[1]?u:t[1],o=null==t[2]?u:t[2],i(o["$nil?"]())?e.$updated(u,[a.$process(r),n,a.$process(o)]):e.$updated(u,[a.$process(r),n])})),a(p,"on_args","process_regular_node"),n(p,"$on_argument",(function(e){var t,r,n=u;return r=null==(t=[].concat(s(e)))[0]?u:t[0],n=null==t[1]?u:t[1],i(n["$nil?"]())?e.$updated(u,[r,this.$process(n)]):e})),n(p,"$process_argument_node",(function(e){return this.$on_argument(e)})),a(p,"on_arg","process_argument_node"),a(p,"on_optarg","process_argument_node"),a(p,"on_restarg","process_argument_node"),a(p,"on_blockarg","process_argument_node"),a(p,"on_shadowarg","process_argument_node"),a(p,"on_kwarg","process_argument_node"),a(p,"on_kwoptarg","process_argument_node"),a(p,"on_kwrestarg","process_argument_node"),a(p,"on_forward_arg","process_argument_node"),n(p,"$on_procarg0",(function(e){return o(e.$children()["$[]"](0)["$is_a?"](d("Symbol")))?this.$on_argument(e):this.$process_regular_node(e)})),a(p,"on_arg_expr","process_regular_node"),a(p,"on_restarg_expr","process_regular_node"),a(p,"on_blockarg_expr","process_regular_node"),a(p,"on_block_pass","process_regular_node"),a(p,"on_forwarded_restarg","process_regular_node"),a(p,"on_forwarded_kwrestarg","process_regular_node"),a(p,"on_module","process_regular_node"),a(p,"on_class","process_regular_node"),a(p,"on_sclass","process_regular_node"),n(p,"$on_def",(function(e){var t,r,n,a;return r=null==(t=[].concat(s(e)))[0]?u:t[0],n=null==t[1]?u:t[1],a=null==t[2]?u:t[2],e.$updated(u,[r,this.$process(n),this.$process(a)])})),n(p,"$on_defs",(function(e){var t,r,n,a,i,o=this;return r=null==(t=[].concat(s(e)))[0]?u:t[0],n=null==t[1]?u:t[1],a=null==t[2]?u:t[2],i=null==t[3]?u:t[3],e.$updated(u,[o.$process(r),n,o.$process(a),o.$process(i)])})),a(p,"on_undef","process_regular_node"),a(p,"on_alias","process_regular_node"),n(p,"$on_send",(function(e){var t,r,n=u,a=u;return n=null==(t=[].concat(s(e)))[0]?u:t[0],a=null==t[1]?u:t[1],r=l(t,2),o(n)&&(n=this.$process(n)),e.$updated(u,[n,a].concat(s(this.$process_all(r))))})),a(p,"on_csend","on_send"),a(p,"on_index","process_regular_node"),a(p,"on_indexasgn","process_regular_node"),a(p,"on_block","process_regular_node"),a(p,"on_lambda","process_regular_node"),n(p,"$on_numblock",(function(e){var t,r,n,a;return r=null==(t=[].concat(s(e)))[0]?u:t[0],n=null==t[1]?u:t[1],a=null==t[2]?u:t[2],e.$updated(u,[this.$process(r),n,this.$process(a)])})),a(p,"on_while","process_regular_node"),a(p,"on_while_post","process_regular_node"),a(p,"on_until","process_regular_node"),a(p,"on_until_post","process_regular_node"),a(p,"on_for","process_regular_node"),a(p,"on_return","process_regular_node"),a(p,"on_break","process_regular_node"),a(p,"on_next","process_regular_node"),a(p,"on_redo","process_regular_node"),a(p,"on_retry","process_regular_node"),a(p,"on_super","process_regular_node"),a(p,"on_yield","process_regular_node"),a(p,"on_defined?","process_regular_node"),a(p,"on_not","process_regular_node"),a(p,"on_and","process_regular_node"),a(p,"on_or","process_regular_node"),a(p,"on_if","process_regular_node"),a(p,"on_when","process_regular_node"),a(p,"on_case","process_regular_node"),a(p,"on_iflipflop","process_regular_node"),a(p,"on_eflipflop","process_regular_node"),a(p,"on_match_current_line","process_regular_node"),a(p,"on_match_with_lvasgn","process_regular_node"),a(p,"on_resbody","process_regular_node"),a(p,"on_rescue","process_regular_node"),a(p,"on_ensure","process_regular_node"),a(p,"on_begin","process_regular_node"),a(p,"on_kwbegin","process_regular_node"),a(p,"on_preexe","process_regular_node"),a(p,"on_postexe","process_regular_node"),a(p,"on_case_match","process_regular_node"),a(p,"on_in_match","process_regular_node"),a(p,"on_match_pattern","process_regular_node"),a(p,"on_match_pattern_p","process_regular_node"),a(p,"on_in_pattern","process_regular_node"),a(p,"on_if_guard","process_regular_node"),a(p,"on_unless_guard","process_regular_node"),a(p,"on_match_var","process_variable_node"),a(p,"on_match_rest","process_regular_node"),a(p,"on_pin","process_regular_node"),a(p,"on_match_alt","process_regular_node"),a(p,"on_match_as","process_regular_node"),a(p,"on_array_pattern","process_regular_node"),a(p,"on_array_pattern_with_tail","process_regular_node"),a(p,"on_hash_pattern","process_regular_node"),a(p,"on_const_pattern","process_regular_node"),a(p,"on_find_pattern","process_regular_node"),n(p,"$process_variable_node",(function(e){return this.$warn("Parser::AST::Processor#process_variable_node is deprecated as a public API and will be removed. Please use Parser::AST::Processor#on_var instead."),this.$on_var(e)})),n(p,"$process_var_asgn_node",(function(e){return this.$warn("Parser::AST::Processor#process_var_asgn_node is deprecated as a public API and will be removed. Please use Parser::AST::Processor#on_vasgn instead."),this.$on_vasgn(e)})),n(p,"$process_argument_node",(function(e){return this.$warn("Parser::AST::Processor#process_argument_node is deprecated as a public API and will be removed. Please use Parser::AST::Processor#on_argument instead."),this.$on_argument(e)})),n(p,"$on_empty_else",(function(e){return e}))}(p[0],0,p)}(p[0],p)}($[0],$)},Opal.modules["parser/meta"]=function(e){var t=e.module,r=e.const_set,n=[];e.nil;return e.add_stubs("freeze,to_set"),function(n,a){var s=[t(n,"Parser")].concat(a);return function(n,a){var s=[t(n,"Meta")].concat(a);return r(s[0],"NODE_TYPES",e.large_array_unpack("true,false,nil,int,float,str,dstr,sym,dsym,xstr,regopt,regexp,array,splat,pair,kwsplat,hash,irange,erange,self,lvar,ivar,cvar,gvar,const,defined?,lvasgn,ivasgn,cvasgn,gvasgn,casgn,mlhs,masgn,op_asgn,and_asgn,ensure,rescue,arg_expr,or_asgn,back_ref,nth_ref,match_with_lvasgn,match_current_line,module,class,sclass,def,defs,undef,alias,args,cbase,arg,optarg,restarg,blockarg,block_pass,kwarg,kwoptarg,kwrestarg,kwnilarg,send,csend,super,zsuper,yield,block,and,not,or,if,when,case,while,until,while_post,until_post,for,break,next,redo,return,resbody,kwbegin,begin,retry,preexe,postexe,iflipflop,eflipflop,shadowarg,complex,rational,__FILE__,__LINE__,__ENCODING__,ident,lambda,indexasgn,index,procarg0,restarg_expr,blockarg_expr,objc_kwarg,objc_restarg,objc_varargs,numargs,numblock,forward_args,forwarded_args,forward_arg,case_match,in_match,in_pattern,match_var,pin,match_alt,match_as,match_rest,array_pattern,match_with_trailing_comma,array_pattern_with_tail,hash_pattern,const_pattern,if_guard,unless_guard,match_nil_pattern,empty_else,find_pattern,kwargs,match_pattern_p,match_pattern,forwarded_restarg,forwarded_kwrestarg").$to_set().$freeze())}(s[0],s)}(n[0],n)},Opal.modules["parser/source/buffer"]=function(e){var t=e.module,r=e.klass,n=e.const_set,a=e.regexp,s=e.enc,i=e.truthy,o=e.annotate_regexp,l=e.gvars,$=e.eqeq,u=e.neqeq,c=e.defs,_=e.slice,p=e.extract_kwargs,m=e.ensure_kwargs,d=e.hash_get,f=e.send,h=e.def,g=e.not,b=e.rb_plus,v=e.rb_minus,y=e.rb_ge,x=e.rb_lt,w=e.send2,k=e.find_super,U=[],E=e.nil,M=e.$$$;return e.add_stubs("attr_reader,empty?,=~,start_with?,freeze,==,[],!=,nil?,match,find,raise,message,encoding,recognize_encoding,force_encoding,encode,to_s,source=,open,read,frozen?,dup,reencode_string,class,valid_encoding?,name,raw_source=,gsub,!,ascii_only?,is_a?,size,begin,line_index_for_position,line_begins,+,-,to_a,lines,end_with?,<<,each,chomp!,fetch,source_lines,>=,<,new,source,source_range,private,index,bsearch,[]=,method_defined?,bsearch_index"),function(U,q){var S=[t(U,"Parser")].concat(q);return function(U,q){var S=[t(U,"Source")].concat(q);return function(t,U,q){var S=r(t,null,"Buffer"),O=[S].concat(q),A=e.$r(O),T=S.$$prototype;return T.name=T.source=T.slice_source=T.first_line=T.lines=T.source_range=T.line_begins=T.line_index_for_position=T.line_range=E,S.$attr_reader("name","first_line"),n(O[0],"ENCODING_RE",a([s("[\\s#](en)?coding\\s*[:=]\\s*","ASCII-8BIT"),s("(","ASCII-8BIT"),s("","ASCII-8BIT"),s("(utf8-mac)","ASCII-8BIT"),s("|","ASCII-8BIT"),s("","ASCII-8BIT"),s("([A-Za-z0-9_-]+?)(-unix|-dos|-mac)","ASCII-8BIT"),s("|","ASCII-8BIT"),s("([A-Za-z0-9_-]+)","ASCII-8BIT"),s(")","ASCII-8BIT"),s("","ASCII-8BIT")])),c(S,"$recognize_encoding",(function(t){var r,n,a,c=E,_=E,p=E,m=E,d=E,f=E;if(i(t["$empty?"]()))return E;if(t["$=~"](o(/^(.*)\n?(.*\n)?/u,"\\A(.*)\\n?(.*\\n)?","")),a=(r=[(n=l["~"])===E?E:n["$[]"](1),(n=l["~"])===E?E:n["$[]"](2)])[1],i((c=r[0])["$start_with?"](s("","ASCII-8BIT").$freeze())))return M(A("Encoding"),"UTF_8");if(_=$(c["$[]"](0,2),s("#!","ASCII-8BIT").$freeze())?a:c,i(_["$nil?"]())||u(_["$[]"](0),s("#","ASCII-8BIT")))return E;if(!i(p=A("ENCODING_RE").$match(_)))return E;try{return A("Encoding").$find(i(m=i(d=p["$[]"](3))?d:p["$[]"](4))?m:p["$[]"](6))}catch(t){if(!e.rescue(t,[A("ArgumentError")]))throw t;f=t;try{return this.$raise(M(A("Parser"),"UnknownEncodingInMagicComment"),f.$message())}finally{e.pop_exception(t)}}})),c(S,"$reencode_string",(function(e){var t,r=E;return t=e.$encoding(),r=this.$recognize_encoding(e.$force_encoding(M(A("Encoding"),"BINARY"))),i(r["$nil?"]())?e.$force_encoding(t):$(r,M(A("Encoding"),"BINARY"))?e:e.$force_encoding(r).$encode(M(A("Encoding"),"UTF_8"))})),h(S,"$initialize",(function(e,t,r){var n,a,s,o,l,$=this;return n=_(arguments,1),a=p(n),a=m(a),n.length>0&&(s=n.shift()),null==s&&(s=1),null==(o=d(a,"source"))&&(o=E),$.name=e.$to_s(),$.source=E,$.first_line=s,$.lines=E,$.line_begins=E,$.slice_source=E,$.line_index_for_position=new Map,i(o)?(f($,"source=",l=[o]),l[l.length-1]):E}),-2),h(S,"$read",(function(){var e=this;return f(A("File"),"open",[e.name,s("rb","ASCII-8BIT")],(function e(t){var r,n=null==e.$$s?this:e.$$s;return null==t&&(t=E),r=[t.$read()],f(n,"source=",r),r[r.length-1]}),{$$s:e}),e})),h(S,"$source",(function(){var e=this;return i(e.source["$nil?"]())&&e.$raise(A("RuntimeError"),s("Cannot extract source from uninitialized Source::Buffer","ASCII-8BIT")),e.source})),h(S,"$source=",(function(e){var t,r=this;return i(e["$frozen?"]())&&(e=e.$dup()),e=r.$class().$reencode_string(e),i(e["$valid_encoding?"]())||r.$raise(A("EncodingError"),s("invalid byte sequence in ","ASCII-8BIT")+e.$encoding().$name()),f(r,"raw_source=",t=[e]),t[t.length-1]})),h(S,"$raw_source=",(function(e){var t=this;return i(t.source)&&t.$raise(A("ArgumentError"),s("Source::Buffer is immutable","ASCII-8BIT")),t.source=e.$gsub(s("\r\n","ASCII-8BIT").$freeze(),s("\n","ASCII-8BIT").$freeze()).$freeze(),g(t.source["$ascii_only?"]())&&u(t.source.$encoding(),M(A("Encoding"),"UTF_32LE"))&&u(t.source.$encoding(),M(A("Encoding"),"BINARY"))?t.slice_source=t.source.$encode(M(A("Encoding"),"UTF_32LE")):E})),h(S,"$slice",(function(e,t){var r=this;return null==t&&(t=E),i(t["$nil?"]())&&(i(e["$is_a?"](M("Range")))?(t=e.$size(),e=e.$begin()):t=1),i(r.slice_source["$nil?"]())?r.source["$[]"](e,t):r.slice_source["$[]"](e,t).$encode(r.source.$encoding())}),-2),h(S,"$decompose_position",(function(e){var t,r,n=this;return t=n.$line_index_for_position(e),r=n.$line_begins()["$[]"](t),[b(n.first_line,t),v(e,r)]})),h(S,"$line_for_position",(function(e){return b(this.$line_index_for_position(e),this.first_line)})),h(S,"$column_for_position",(function(e){var t;return t=this.$line_index_for_position(e),v(e,this.$line_begins()["$[]"](t))})),h(S,"$source_lines",(function(){var e,t=this,r=E;return t.lines=i(e=t.lines)?e:(r=t.source.$lines().$to_a(),i(t.source["$end_with?"](s("\n","ASCII-8BIT").$freeze()))&&r["$<<"](s("","ASCII-8BIT").$dup()),f(r,"each",[],(function(e){return null==e&&(e=E),e["$chomp!"](s("\n","ASCII-8BIT").$freeze()),e.$freeze()})),r.$freeze())})),h(S,"$source_line",(function(e){return this.$source_lines().$fetch(v(e,this.first_line)).$dup()})),h(S,"$line_range",(function(e){var t,r=this;return t=v(e,r.first_line),i(x(t,0))||i(y(b(t,1),r.$line_begins().$size()))?r.$raise(A("IndexError"),s("Parser::Source::Buffer: range for line ","ASCII-8BIT")+""+e+s(" requested, valid line numbers are ","ASCII-8BIT")+r.first_line+s("..","ASCII-8BIT")+v(b(r.first_line,r.$line_begins().$size()),2)):A("Range").$new(r,r.$line_begins()["$[]"](t),v(r.$line_begins()["$[]"](b(t,1)),1))})),h(S,"$source_range",(function(){var e,t=this;return t.source_range=i(e=t.source_range)?e:A("Range").$new(t,0,t.$source().$size())})),h(S,"$last_line",(function(){return v(b(this.$line_begins().$size(),this.first_line),2)})),h(S,"$freeze",(function e(){var t=e.$$p||E,r=this;return e.$$p=null,r.$source_lines(),r.$line_begins(),r.$source_range(),w(r,k(r,"freeze",e,!1,!0),"freeze",[],t)})),h(S,"$inspect",(function(){return s("#<","ASCII-8BIT")+this.$class()+s(" ","ASCII-8BIT")+this.$name()+s(">","ASCII-8BIT")})),S.$private(),h(S,"$line_begins",(function(){var e,t=this,r=E,n=E;return t.line_begins=i(e=t.line_begins)?e:(r=[0],n=0,function(){for(;i(n=t.source.$index(s("\n","ASCII-8BIT").$freeze(),n));)n=b(n,1),r["$<<"](n)}(),r["$<<"](b(t.source.$size(),1)),r)})),h(S,"$line_index_for_position",(function(e){var t,r=this,n=E;return i(t=r.line_index_for_position["$[]"](e))?t:(n=v(r.$bsearch(r.$line_begins(),e),1),i(r.line_index_for_position["$frozen?"]())||r.line_index_for_position["$[]="](e,n),n)})),i(A("Array")["$method_defined?"]("bsearch_index"))?h(S,"$bsearch",(function(e,t){var r;return i(r=f(e,"bsearch_index",[],(function(e){return null==e&&(e=E),x(t,e)})))?r:v(e.$size(),1)})):h(S,"$bsearch",(function(t,r){var n=this,a=E;return n.line_range=i(a=n.line_range)?a:e.Range.$new(0,t.$size(),!0),i(a=f(n.line_range,"bsearch",[],(function(e){return null==e&&(e=E),x(r,t["$[]"](e))})))?a:v(t.$size(),1)}))}(S[0],0,S)}(S[0],S)}(U[0],U)},Opal.modules["parser/source/range"]=function(e){var t=e.module,r=e.klass,n=e.truthy,a=e.rb_lt,s=e.def,i=e.rb_minus,o=e.alias,l=e.neqeq,$=e.slice,u=e.to_ary,c=e.rb_plus,_=e.ensure_kwargs,p=e.hash_get,m=e.rb_ge,d=e.rb_times,f=e.eqeq,h=[],g=e.nil,b=e.$$$;return e.add_stubs("include,attr_reader,<,raise,nil?,freeze,with,-,size,line_for_position,alias_method,column_for_position,!=,line,last_line,inspect,column,last_column,source_line,slice,include?,source,to_a,begin_pos,end_pos,decompose_position,join,name,+,new,min,max,disjoint?,empty?,>=,!,<=>,contains?,overlaps?,==,*,source_buffer,is_a?,nonzero?,hash"),function(h,v){var y=[t(h,"Parser")].concat(v);return function(h,v){var y=[t(h,"Source")].concat(v);return function(t,h,v){var y=r(t,null,"Range"),x=[y].concat(v),w=e.$r(x),k=y.$$prototype;return k.begin_pos=k.end_pos=k.source_buffer=g,y.$include(w("Comparable")),y.$attr_reader("source_buffer"),y.$attr_reader("begin_pos","end_pos"),s(y,"$initialize",(function(e,t,r){var s,i=this;return n(a(r,t))&&i.$raise(w("ArgumentError"),"Parser::Source::Range: end_pos must not be less than begin_pos"),n(e["$nil?"]())&&i.$raise(w("ArgumentError"),"Parser::Source::Range: source_buffer must not be nil"),i.source_buffer=e,s=[t,r],i.begin_pos=s[0],i.end_pos=s[1],i.$freeze()})),s(y,"$begin",(function(){return this.$with(new Map([["end_pos",this.begin_pos]]))})),s(y,"$end",(function(){return this.$with(new Map([["begin_pos",this.end_pos]]))})),s(y,"$size",(function(){return i(this.end_pos,this.begin_pos)})),o(y,"length","size"),s(y,"$line",(function(){return this.source_buffer.$line_for_position(this.begin_pos)})),y.$alias_method("first_line","line"),s(y,"$column",(function(){return this.source_buffer.$column_for_position(this.begin_pos)})),s(y,"$last_line",(function(){return this.source_buffer.$line_for_position(this.end_pos)})),s(y,"$last_column",(function(){return this.source_buffer.$column_for_position(this.end_pos)})),s(y,"$column_range",(function(){var t=this;return l(t.$line(),t.$last_line())&&t.$raise(w("RangeError"),t.$inspect()+" spans more than one line"),e.Range.$new(t.$column(),t.$last_column(),!0)})),s(y,"$source_line",(function(){return this.source_buffer.$source_line(this.$line())})),s(y,"$source",(function(){var e=this;return e.source_buffer.$slice(e.begin_pos,i(e.end_pos,e.begin_pos))})),s(y,"$is?",(function(e){return $(arguments)["$include?"](this.$source())}),-1),s(y,"$to_a",(function(){return e.Range.$new(this.begin_pos,this.end_pos,!0).$to_a()})),s(y,"$to_range",(function(){return e.Range.$new(this.$begin_pos(),this.$end_pos(),!0)})),s(y,"$to_s",(function(){var e,t,r,n=this,a=g;return t=n.source_buffer.$decompose_position(n.begin_pos),a=null==(e=u(t))[0]?g:e[0],r=null==e[1]?g:e[1],[n.source_buffer.$name(),a,c(r,1)].$join(":")})),s(y,"$with",(function(e){var t,r,n=this;return e=_(e),null==(t=p(e,"begin_pos"))&&(t=n.begin_pos),null==(r=p(e,"end_pos"))&&(r=n.end_pos),w("Range").$new(n.source_buffer,t,r)}),-1),s(y,"$adjust",(function(e){var t,r,n=this;return e=_(e),null==(t=p(e,"begin_pos"))&&(t=0),null==(r=p(e,"end_pos"))&&(r=0),w("Range").$new(n.source_buffer,c(n.begin_pos,t),c(n.end_pos,r))}),-1),s(y,"$resize",(function(e){return this.$with(new Map([["end_pos",c(this.begin_pos,e)]]))})),s(y,"$join",(function(e){var t=this;return w("Range").$new(t.source_buffer,[t.begin_pos,e.$begin_pos()].$min(),[t.end_pos,e.$end_pos()].$max())})),s(y,"$intersect",(function(e){var t=this;return n(t["$disjoint?"](e))?g:w("Range").$new(t.source_buffer,[t.begin_pos,e.$begin_pos()].$max(),[t.end_pos,e.$end_pos()].$min())})),s(y,"$disjoint?",(function(e){var t=this,r=g;return n(t["$empty?"]())&&n(e["$empty?"]())?t.begin_pos["$!="](e.$begin_pos()):n(r=m(t.begin_pos,e.$end_pos()))?r:m(e.$begin_pos(),t.end_pos)})),s(y,"$overlaps?",(function(e){return this["$disjoint?"](e)["$!"]()})),s(y,"$contains?",(function(e){return m(c(e.$begin_pos()["$<=>"](this.begin_pos),this.end_pos["$<=>"](e.$end_pos())),n(e["$empty?"]())?2:1)})),s(y,"$contained?",(function(e){return e["$contains?"](this)})),s(y,"$crossing?",(function(e){var t=this;return!!n(t["$overlaps?"](e))&&d(t.begin_pos["$<=>"](e.$begin_pos()),t.end_pos["$<=>"](e.$end_pos()))["$=="](1)})),s(y,"$empty?",(function(){return this.begin_pos["$=="](this.end_pos)})),s(y,"$<=>",(function(e){var t,r=this;return n(e["$is_a?"](b(b(b("Parser"),"Source"),"Range")))&&f(r.source_buffer,e.$source_buffer())?n(t=r.begin_pos["$<=>"](e.$begin_pos())["$nonzero?"]())?t:r.end_pos["$<=>"](e.$end_pos()):g})),y.$alias_method("eql?","=="),s(y,"$hash",(function(){var e=this;return[e.source_buffer,e.begin_pos,e.end_pos].$hash()})),s(y,"$inspect",(function(){var e=this;return"#<Parser::Source::Range "+e.source_buffer.$name()+" "+e.begin_pos+"..."+e.end_pos+">"}))}(y[0],0,y)}(y[0],y)}(h[0],h)},Opal.modules["parser/source/comment"]=function(e){var t=e.module,r=e.klass,n=e.defs,a=e.def,s=e.truthy,i=[],o=e.nil,l=e.$$$;return e.add_stubs("attr_reader,alias_method,new,associate,associate_locations,associate_by_identity,freeze,source,start_with?,text,==,type,is_a?,location,to_s,expression,inspect"),function(i,$){var u=[t(i,"Parser")].concat($);return function(i,$){var u=[t(i,"Source")].concat($);return function(t,i,$){var u=r(t,null,"Comment"),c=[u].concat($),_=e.$r(c);return u.$$prototype.location=o,u.$attr_reader("text"),u.$attr_reader("location"),u.$alias_method("loc","location"),n(u,"$associate",(function(e,t){return _("Associator").$new(e,t).$associate()})),n(u,"$associate_locations",(function(e,t){return _("Associator").$new(e,t).$associate_locations()})),n(u,"$associate_by_identity",(function(e,t){return _("Associator").$new(e,t).$associate_by_identity()})),a(u,"$initialize",(function(e){var t=this;return t.location=l(l(_("Parser"),"Source"),"Map").$new(e),t.text=e.$source().$freeze(),t.$freeze()})),a(u,"$type",(function(){return s(this.$text()["$start_with?"]("#".$freeze()))?"inline":s(this.$text()["$start_with?"]("=begin".$freeze()))?"document":o})),a(u,"$inline?",(function(){return this.$type()["$=="]("inline")})),a(u,"$document?",(function(){return this.$type()["$=="]("document")})),a(u,"$==",(function(e){var t;return s(t=e["$is_a?"](l(_("Source"),"Comment")))?this.location["$=="](e.$location()):t})),a(u,"$inspect",(function(){return"#<Parser::Source::Comment "+this.location.$expression().$to_s()+" "+this.$text().$inspect()+">"}))}(u[0],0,u)}(u[0],u)}(i[0],i)},Opal.modules["parser/source/comment/associator"]=function(e){var t=e.module,r=e.klass,n=e.def,a=e.const_set,s=e.truthy,i=e.send,o=e.eqeq,l=e.rb_le,$=e.rb_plus,u=e.not,c=e.annotate_regexp,_=[],p=e.nil,m=e.$$$;return e.add_stubs("attr_accessor,do_associate,private,freeze,[],include?,type,sort_by,compact,children,begin_pos,expression,loc,select,is_a?,new,[]=,==,compare_by_identity,advance_comment,advance_through_directives,visit,process_leading_comments,location,<=,line,last_line,each,children_in_source_order,process_trailing_comments,current_comment_before?,associate_and_advance_comment,current_comment_before_end?,current_comment_decorates?,+,!,end_pos,<<,start_with?,text,=~"),function(_,d){var f=[t(_,"Parser")].concat(d);return function(_,d){var f=[t(_,"Source")].concat(d);return function(t,_,d){var f=r(t,null,"Associator"),h=[f].concat(d),g=e.$r(h),b=f.$$prototype;return b.map_using=b.mapping=b.skip_directives=b.ast=b.current_comment=b.comment_num=b.comments=p,f.$attr_accessor("skip_directives"),n(f,"$initialize",(function(e,t){var r=this;return r.ast=e,r.comments=t,r.skip_directives=!0})),n(f,"$associate",(function(){return this.map_using="eql",this.$do_associate()})),n(f,"$associate_locations",(function(){return this.map_using="location",this.$do_associate()})),n(f,"$associate_by_identity",(function(){return this.map_using="identity",this.$do_associate()})),f.$private(),a(h[0],"POSTFIX_TYPES",g("Set")["$[]"]("if","while","while_post","until","until_post","masgn").$freeze()),n(f,"$children_in_source_order",(function(e){return s(g("POSTFIX_TYPES")["$include?"](e.$type()))?i(e.$children().$compact(),"sort_by",[],(function(e){return null==e&&(e=p),e.$loc().$expression().$begin_pos()})):i(e.$children(),"select",[],(function(e){var t,r;return null==e&&(e=p),s(t=s(r=e["$is_a?"](m(g("AST"),"Node")))?e.$loc():r)?e.$loc().$expression():t}))})),n(f,"$do_associate",(function(){var e=this;return e.mapping=i(g("Hash"),"new",[],(function(e,t){var r;return null==e&&(e=p),null==t&&(t=p),i(e,"[]=",r=[t,[]]),r[r.length-1]})),o(e.map_using,"identity")&&e.mapping.$compare_by_identity(),e.comment_num=-1,e.$advance_comment(),s(e.skip_directives)&&e.$advance_through_directives(),s(e.ast)&&e.$visit(e.ast),e.mapping})),n(f,"$visit",(function(e){var t=this,r=p;return t.$process_leading_comments(e),s(t.current_comment)?(r=e.$location(),s(l(t.current_comment.$location().$line(),r.$last_line()))||s(r["$is_a?"](m(g("Map"),"Heredoc")))?(i(t.$children_in_source_order(e),"each",[],(function e(t){return null==t&&(t=p),(null==e.$$s?this:e.$$s).$visit(t)}),{$$s:t}),t.$process_trailing_comments(e)):p):p})),n(f,"$process_leading_comments",(function(e){if(o(e.$type(),"begin"))return p;for(;s(this["$current_comment_before?"](e));)this.$associate_and_advance_comment(e)})),n(f,"$process_trailing_comments",(function(e){for(var t=this;s(t["$current_comment_before_end?"](e));)t.$associate_and_advance_comment(e);for(;s(t["$current_comment_decorates?"](e));)t.$associate_and_advance_comment(e)})),n(f,"$advance_comment",(function(){var e=this;return e.comment_num=$(e.comment_num,1),e.current_comment=e.comments["$[]"](e.comment_num)})),n(f,"$current_comment_before?",(function(e){var t=p,r=p;return!u(this.current_comment)&&(t=this.current_comment.$location().$expression(),r=e.$location().$expression(),l(t.$end_pos(),r.$begin_pos()))})),n(f,"$current_comment_before_end?",(function(e){var t=p,r=p;return!u(this.current_comment)&&(t=this.current_comment.$location().$expression(),r=e.$location().$expression(),l(t.$end_pos(),r.$end_pos()))})),n(f,"$current_comment_decorates?",(function(e){return!u(this.current_comment)&&this.current_comment.$location().$line()["$=="](e.$location().$last_line())})),n(f,"$associate_and_advance_comment",(function(e){var t,r=this;return t=o(r.map_using,"location")?e.$location():e,r.mapping["$[]"](t)["$<<"](r.current_comment),r.$advance_comment()})),a(h[0],"MAGIC_COMMENT_RE",c(/^#\s*(-\*-|)\s*(frozen_string_literal|warn_indent|warn_past_scope):.*\1$/mu,null,"")),n(f,"$advance_through_directives",(function(){var e=this;return s(e.current_comment)&&s(e.current_comment.$text()["$start_with?"]("#!".$freeze()))&&e.$advance_comment(),s(e.current_comment)&&s(e.current_comment.$text()["$=~"](g("MAGIC_COMMENT_RE")))&&e.$advance_comment(),s(e.current_comment)&&s(e.current_comment.$text()["$=~"](m(g("Buffer"),"ENCODING_RE")))?e.$advance_comment():p}))}(e.$r(f)("Comment"),0,f)}(f[0],f)}(_[0],_)},Opal.modules["parser/source/rewriter"]=function(e){var t=e.module,r=e.klass,n=e.send,a=e.gvars,s=e.def,i=e.rb_minus,o=e.rb_plus,l=e.truthy,$=e.not,u=e.neqeq,c=e.rb_le,_=e.rb_ge,p=e.rb_lt,m=e.const_set,d=[],f=e.nil,h=e.$$$;return e.add_stubs("attr_reader,warn_of_deprecation,class,new,consumer=,lambda,puts,render,append,freeze,begin,end,-,+,in_transaction?,raise,dup,source,each,sort,begin_pos,range,length,[]=,replacement,private,empty?,clobbered_insertion?,!,allow_multiple_insertions?,raise_clobber_error,record_insertion,adjacent_updates?,find,overlaps?,replace_compatible_with_insertion?,merge_actions!,<<,active_queue,adjacent_insertions?,merge_actions,delete,can_merge?,record_replace,active_insertions=,|,active_insertions,active_clobber=,active_clobber,clobbered_position_mask,size,!=,&,<=,end_pos,adjacent_insertion_mask,select,adjacent?,adjacent_position_mask,>=,==,[],all?,intersect,nil?,max,sort_by,push,join,first,max_by,merge_replacements,replace_actions,disjoint?,<,process,extend"),function(d,g){var b=[t(d,"Parser")].concat(g);return function(d,g){var b=[t(d,"Source")].concat(g);return function(t,d,g){var b=r(t,null,"Rewriter"),v=[b].concat(g),y=e.$r(v),x=b.$$prototype;return x.diagnostics=x.insert_before_multi_order=x.insert_after_multi_order=x.source_buffer=x.queue=x.clobber=x.insertions=x.pending_queue=x.pending_clobber=x.pending_insertions=f,b.$attr_reader("source_buffer"),b.$attr_reader("diagnostics"),s(b,"$initialize",(function(e){var t=this;return t.$class().$warn_of_deprecation(),t.diagnostics=h(y("Diagnostic"),"Engine").$new(),t.diagnostics["$consumer="](n(t,"lambda",[],(function(e){return null==a.stderr&&(a.stderr=f),null==e&&(e=f),a.stderr.$puts(e.$render())}))),t.source_buffer=e,t.queue=[],t.clobber=0,t.insertions=0,t.insert_before_multi_order=0,t.insert_after_multi_order=0,t.pending_queue=f,t.pending_clobber=f,t.pending_insertions=f})),s(b,"$remove",(function(e){return this.$append(h(y("Rewriter"),"Action").$new(e,"".$freeze()))})),s(b,"$insert_before",(function(e,t){return this.$append(h(y("Rewriter"),"Action").$new(e.$begin(),t))})),s(b,"$wrap",(function(e,t,r){return this.$append(h(y("Rewriter"),"Action").$new(e.$begin(),t)),this.$append(h(y("Rewriter"),"Action").$new(e.$end(),r))})),s(b,"$insert_before_multi",(function(e,t){var r=this;return r.insert_before_multi_order=i(r.insert_before_multi_order,1),r.$append(h(y("Rewriter"),"Action").$new(e.$begin(),t,!0,r.insert_before_multi_order))})),s(b,"$insert_after",(function(e,t){return this.$append(h(y("Rewriter"),"Action").$new(e.$end(),t))})),s(b,"$insert_after_multi",(function(e,t){var r=this;return r.insert_after_multi_order=o(r.insert_after_multi_order,1),r.$append(h(y("Rewriter"),"Action").$new(e.$end(),t,!0,r.insert_after_multi_order))})),s(b,"$replace",(function(e,t){return this.$append(h(y("Rewriter"),"Action").$new(e,t))})),s(b,"$process",(function(){var t=this,r=f,a=f;return l(t["$in_transaction?"]())&&t.$raise("Do not call "+t.$class()+"#process inside a transaction"),r=0,a=t.source_buffer.$source().$dup(),n(t.queue.$sort(),"each",[],(function(t){var n,s;return null==t&&(t=f),n=o(t.$range().$begin_pos(),r),s=o(n,t.$range().$length()),a["$[]="](e.Range.$new(n,s,!0),t.$replacement()),r=o(r,i(t.$replacement().$length(),t.$range().$length()))})),a})),s(b,"$transaction",(function t(){var r=t.$$p||f,n=this;return t.$$p=null,function(){try{return r===f&&n.$raise(n.$class()+"#transaction requires block"),l(n["$in_transaction?"]())&&n.$raise("Nested transaction is not supported"),n.pending_queue=n.queue.$dup(),n.pending_clobber=n.clobber,n.pending_insertions=n.insertions,e.yieldX(r,[]),n.queue=n.pending_queue,n.clobber=n.pending_clobber,n.insertions=n.pending_insertions,n}finally{n.pending_queue=f,n.pending_clobber=f,n.pending_insertions=f}}()})),b.$private(),s(b,"$append",(function(e){var t=this,r=f,a=f,s=f,i=f;if(r=e.$range(),l(r["$empty?"]())){if(l(e.$replacement()["$empty?"]()))return t;$(e["$allow_multiple_insertions?"]())&&l(a=t["$clobbered_insertion?"](r))&&t.$raise_clobber_error(e,[a]),t.$record_insertion(r),l(s=t["$adjacent_updates?"](r))?(a=n(s,"find",[],(function t(n){var a,s=null==t.$$s?this:t.$$s;return null==n&&(n=f),l(a=n.$range()["$overlaps?"](r))?s["$replace_compatible_with_insertion?"](n,e)["$!"]():a}),{$$s:t}),l(a)&&t.$raise_clobber_error(e,[a]),t["$merge_actions!"](e,s)):t.$active_queue()["$<<"](e)}else l(i=t["$adjacent_insertions?"](r))&&n(i,"each",[],(function t(n){var a=null==t.$$s?this:t.$$s;return null==n&&(n=f),l(r["$overlaps?"](n.$range()))&&$(a["$replace_compatible_with_insertion?"](e,n))?a.$raise_clobber_error(e,[n]):(e=a.$merge_actions(e,[n]),a.$active_queue().$delete(n))}),{$$s:t}),l(s=t["$adjacent_updates?"](r))?l(t["$can_merge?"](e,s))?(t.$record_replace(r),t["$merge_actions!"](e,s)):t.$raise_clobber_error(e,s):(t.$record_replace(r),t.$active_queue()["$<<"](e));return t})),s(b,"$record_insertion",(function(e){var t;return t=[this.$active_insertions()["$|"](1["$<<"](e.$begin_pos()))],n(this,"active_insertions=",t),t[t.length-1]})),s(b,"$record_replace",(function(e){var t,r=this;return t=[r.$active_clobber()["$|"](r.$clobbered_position_mask(e))],n(r,"active_clobber=",t),t[t.length-1]})),s(b,"$clobbered_position_mask",(function(e){return i(1["$<<"](e.$size()),1)["$<<"](e.$begin_pos())})),s(b,"$adjacent_position_mask",(function(e){return i(1["$<<"](o(e.$size(),2)),1)["$<<"](i(e.$begin_pos(),1))})),s(b,"$adjacent_insertion_mask",(function(e){return i(1["$<<"](o(e.$size(),1)),1)["$<<"](e.$begin_pos())})),s(b,"$clobbered_insertion?",(function(e){var t;return t=e.$begin_pos(),u(this.$active_insertions()["$&"](1["$<<"](t)),0)?n(this.$active_queue(),"find",[],(function(e){var r;return null==e&&(e=f),l(r=c(e.$range().$begin_pos(),t))?c(t,e.$range().$end_pos()):r})):f})),s(b,"$adjacent_insertions?",(function(e){var t=this,r=f;return u(t.$active_insertions()["$&"](t.$adjacent_insertion_mask(e)),0)?(r=n(t.$active_queue(),"select",[],(function t(r){var n,a=null==t.$$s?this:t.$$s;return null==r&&(r=f),l(n=r.$range()["$empty?"]())?a["$adjacent?"](e,r.$range()):n}),{$$s:t}),l(r["$empty?"]())?f:r):f})),s(b,"$adjacent_updates?",(function(e){var t=this;return u(t.$active_clobber()["$&"](t.$adjacent_position_mask(e)),0)?n(t.$active_queue(),"select",[],(function t(r){return null==r&&(r=f),(null==t.$$s?this:t.$$s)["$adjacent?"](e,r.$range())}),{$$s:t}):f})),s(b,"$replace_compatible_with_insertion?",(function(e,t){var r,n,a=f;return l(r=l(n=_(i(e.$replacement().$length(),e.$range().$size()),t.$range().$size()))?a=i(t.$range().$begin_pos(),e.$range().$begin_pos()):n)?e.$replacement()["$[]"](a,t.$replacement().$length())["$=="](t.$replacement()):r})),s(b,"$can_merge?",(function(e,t){var r=f;return r=e.$range(),n(t,"all?",[],(function(t){var n,a,s,o,$,u=f,c=f,_=f;return null==t&&(t=f),u=r.$intersect(t.$range()),!!l(u["$nil?"]())||(n=i(u.$begin_pos(),r.$begin_pos()),a=i(u.$begin_pos(),t.$range().$begin_pos()),s=[i(t.$range().$length(),a),i(t.$replacement().$length(),a)].$max(),o=[i(r.$length(),n),i(e.$replacement().$length(),n)].$max(),c=l(_=e.$replacement()["$[]"](n,s))?_:"".$freeze(),$=l(_=t.$replacement()["$[]"](a,o))?_:"".$freeze(),c["$=="]($))}))})),s(b,"$merge_actions",(function(e,t){var r,a=f;return r=(a=n(t.$push(e),"sort_by",[],(function(e){return null==e&&(e=f),[e.$range().$begin_pos(),e.$range().$end_pos()]}))).$first().$range().$join(n(a,"max_by",[],(function(e){return null==e&&(e=f),e.$range().$end_pos()})).$range()),h(y("Rewriter"),"Action").$new(r,this.$merge_replacements(a))})),s(b,"$merge_actions!",(function(e,t){var r,n=this;return r=n.$merge_actions(e,t),n.$active_queue().$delete(e),n.$replace_actions(t,r)})),s(b,"$merge_replacements",(function(t){var r=f,a=f;return r="".$dup(),a=f,n(t,"each",[],(function(t){var n=f,s=f;return null==t&&(t=f),$(a)||l(t.$range()["$disjoint?"](a.$range()))?r["$<<"](t.$replacement()):(n=[o(a.$range().$begin_pos(),a.$replacement().$length()),a.$range().$end_pos()].$max(),s=i(n,t.$range().$begin_pos()),l(p(s,t.$replacement().$size()))&&r["$<<"](t.$replacement()["$[]"](e.Range.$new(s,-1,!1)))),a=t})),r})),s(b,"$replace_actions",(function(e,t){return n(e,"each",[],(function e(t){return null==t&&(t=f),(null==e.$$s?this:e.$$s).$active_queue().$delete(t)}),{$$s:this}),this.$active_queue()["$<<"](t)})),s(b,"$raise_clobber_error",(function(e,t){var r=this,n=f;return n=y("Diagnostic").$new("error","invalid_action",new Map([["action",e]]),e.$range()),r.diagnostics.$process(n),n=y("Diagnostic").$new("note","clobbered",new Map([["action",t["$[]"](0)]]),t["$[]"](0).$range()),r.diagnostics.$process(n),r.$raise(y("ClobberingError"),"Parser::Source::Rewriter detected clobbering")})),s(b,"$in_transaction?",(function(){return this.pending_queue["$nil?"]()["$!"]()})),s(b,"$active_queue",(function(){var e;return l(e=this.pending_queue)?e:this.queue})),s(b,"$active_clobber",(function(){var e;return l(e=this.pending_clobber)?e:this.clobber})),s(b,"$active_insertions",(function(){var e;return l(e=this.pending_insertions)?e:this.insertions})),s(b,"$active_clobber=",(function(e){var t=this;return l(t.pending_clobber)?t.pending_clobber=e:t.clobber=e})),s(b,"$active_insertions=",(function(e){var t=this;return l(t.pending_insertions)?t.pending_insertions=e:t.insertions=e})),s(b,"$adjacent?",(function(e,t){var r;return l(r=c(e.$begin_pos(),t.$end_pos()))?c(t.$begin_pos(),e.$end_pos()):r})),m(v[0],"DEPRECATION_WARNING",["Parser::Source::Rewriter is deprecated.","Please update your code to use Parser::Source::TreeRewriter instead"].$join("\n").$freeze()),b.$extend(y("Deprecation"))}(b[0],0,b)}(b[0],b)}(d[0],d)},Opal.modules["parser/source/rewriter/action"]=function(e){var t=e.module,r=e.klass,n=e.def,a=e.truthy,s=e.eqeq,i=[],o=e.nil;return e.add_stubs("include,attr_reader,alias_method,freeze,<=>,begin_pos,range,zero?,order,empty?,==,length,inspect"),function(i,l){var $=[t(i,"Parser")].concat(l);return function(i,l){var $=[t(i,"Source")].concat(l);return function(t,i,l){var $=r(t,null,"Action"),u=[$].concat(l),c=e.$r(u),_=$.$$prototype;return _.replacement=_.range=o,$.$include(c("Comparable")),$.$attr_reader("range","replacement","allow_multiple_insertions","order"),$.$alias_method("allow_multiple_insertions?","allow_multiple_insertions"),n($,"$initialize",(function(e,t,r,n){var a=this;return null==t&&(t=""),null==r&&(r=!1),null==n&&(n=0),a.range=e,a.replacement=t,a.allow_multiple_insertions=r,a.order=n,a.$freeze()}),-2),n($,"$<=>",(function(e){var t=o;return t=this.$range().$begin_pos()["$<=>"](e.$range().$begin_pos()),a(t["$zero?"]())?this.$order()["$<=>"](e.$order()):t})),n($,"$to_s",(function(){var e=this;return s(e.range.$length(),0)&&a(e.replacement["$empty?"]())?"do nothing":s(e.range.$length(),0)?"insert "+e.replacement.$inspect():a(e.replacement["$empty?"]())?"remove "+e.range.$length()+" character(s)":"replace "+e.range.$length()+" character(s) with "+e.replacement.$inspect()}))}(e.$r($)("Rewriter"),0,$)}($[0],$)}(i[0],i)},Opal.modules["parser/source/tree_rewriter"]=function(e){var t=e.module,r=e.klass,n=e.ensure_kwargs,a=e.hash_get,s=e.lambda,i=e.gvars,o=e.def,l=e.eqeq,$=e.truthy,u=e.rb_plus,c=e.send,_=e.return_ivar,p=e.const_set,m=e.eqeqeq,d=e.range,f=e.to_ary,h=e.rb_minus,g=e.rb_gt,b=e.rb_lt,v=e.kwrestargs,y=e.slice,x=[],w=e.nil,k=e.$$$;return e.add_stubs("attr_reader,new,consumer=,puts,render,freeze,check_policy_validity,method,adjust,source_range,empty?,==,source_buffer,raise,combine,action_root,merge!,dup,contract,+,begin_pos,range,end_pos,check_range_validity,moved,to_s,replace,wrap,source,each,ordered_replacements,<<,[],length,join,nested_actions,class,name,action_summary,warn_of_deprecation,insert_before,insert_after,extend,protected,private,as_replacements,===,size,first,map,to_range,inspect,-,values,>,<,trigger_policy,process"),function(x,U){var E=[t(x,"Parser")].concat(U);return function(x,U){var E=[t(x,"Source")].concat(U);return function(t,x,U){var E=r(t,null,"TreeRewriter"),M=[E].concat(U),q=e.$r(M),S=E.$$prototype;return S.diagnostics=S.source_buffer=S.enforcer=S.action_root=S.in_transaction=S.policy=w,E.$attr_reader("source_buffer"),E.$attr_reader("diagnostics"),o(E,"$initialize",(function(e,t){var r,o,l,$,u=this;return t=n(t),null==(r=a(t,"crossing_deletions"))&&(r="accept"),null==(o=a(t,"different_replacements"))&&(o="accept"),null==(l=a(t,"swallowed_insertions"))&&(l="accept"),u.diagnostics=k(q("Diagnostic"),"Engine").$new(),u.diagnostics["$consumer="](s((function(e){return null==i.stderr&&(i.stderr=w),null==e&&(e=w),i.stderr.$puts(e.$render())}))),u.source_buffer=e,u.in_transaction=!1,u.policy=new Map([["crossing_deletions",r],["different_replacements",o],["swallowed_insertions",l]]).$freeze(),u.$check_policy_validity(),u.enforcer=u.$method("enforce_policy"),$=u.source_buffer.$source_range().$adjust(new Map([["begin_pos",-1],["end_pos",1]])),u.action_root=k(q("TreeRewriter"),"Action").$new($,u.enforcer)}),-2),o(E,"$empty?",(function(){return this.action_root["$empty?"]()})),o(E,"$merge!",(function(e){var t=this;return l(t.$source_buffer(),e.$source_buffer())||t.$raise("TreeRewriter are not for the same source_buffer"),t.action_root=t.action_root.$combine(e.$action_root()),t})),o(E,"$merge",(function(e){return this.$dup()["$merge!"](e)})),o(E,"$import!",(function(e,t){var r,s,i,o=this,l=w;return t=n(t),null==(r=a(t,"offset"))&&(r=0),$(e["$empty?"]())||(l=e.$action_root().$contract(),s=k(k(k("Parser"),"Source"),"Range").$new(o.source_buffer,u(l.$range().$begin_pos(),r),u(l.$range().$end_pos(),r)),o.$check_range_validity(s),i=l.$moved(o.source_buffer,r),o.action_root=o.action_root.$combine(i)),o}),-2),o(E,"$replace",(function(e,t){return this.$combine(e,new Map([["replacement",t]]))})),o(E,"$wrap",(function(e,t,r){return this.$combine(e,new Map([["insert_before",t.$to_s()],["insert_after",r.$to_s()]]))})),o(E,"$remove",(function(e){return this.$replace(e,"".$freeze())})),o(E,"$insert_before",(function(e,t){return this.$wrap(e,t,w)})),o(E,"$insert_after",(function(e,t){return this.$wrap(e,w,t)})),o(E,"$process",(function(){var t=w,r=w,n=w;return t=this.source_buffer.$source(),r=[],n=0,c(this.action_root.$ordered_replacements(),"each",[],(function(a,s){return null==a&&(a=w),null==s&&(s=w),r["$<<"](t["$[]"](e.Range.$new(n,a.$begin_pos(),!0)))["$<<"](s),n=a.$end_pos()})),r["$<<"](t["$[]"](e.Range.$new(n,t.$length(),!0))),r.$join()})),o(E,"$as_replacements",(function(){return this.action_root.$ordered_replacements()})),o(E,"$as_nested_actions",(function(){return this.action_root.$nested_actions()})),o(E,"$transaction",(function t(){var r=t.$$p||w,n=this,a=w,s=w;return t.$$p=null,function(){try{return r===w&&n.$raise(n.$class()+"#transaction requires block"),a=n.in_transaction,n.in_transaction=!0,s=n.action_root,e.yieldX(r,[]),s=w,n}finally{$(s)&&(n.action_root=s),n.in_transaction=a}}()})),o(E,"$in_transaction?",_("in_transaction")),o(E,"$inspect",(function(){var e=this;return"#<"+e.$class()+" "+e.$source_buffer().$name()+": "+e.$action_summary()+">"})),o(E,"$insert_before_multi",(function(e,t){return this.$class().$warn_of_deprecation(),this.$insert_before(e,t)})),o(E,"$insert_after_multi",(function(e,t){return this.$class().$warn_of_deprecation(),this.$insert_after(e,t)})),p(M[0],"DEPRECATION_WARNING",["TreeRewriter#insert_before_multi and insert_before_multi exist only for legacy compatibility.","Please update your code to use `wrap`, `insert_before` or `insert_after` instead."].$join("\n").$freeze()),E.$extend(q("Deprecation")),E.$protected(),E.$attr_reader("action_root"),E.$private(),o(E,"$action_summary",(function(){var e,t=w,r=w,n=w;return t=this.$as_replacements(),m(0,e=t.$size())?"empty":(m(d(1,3,!1),e)||(t=t.$first(3),r="…"),n=c(t,"map",[],(function(e){var t,r=w,n=w;return null==e&&(e=w),r=null==(t=f(e))[0]?w:t[0],n=null==t[1]?w:t[1],$(n["$empty?"]())?"-"+r.$to_range():l(r.$size(),0)?"+"+n.$inspect()+"@"+r.$begin_pos():"^"+n.$inspect()+"@"+r.$to_range()}),{$$has_top_level_mlhs_arg:!0}),$(r)&&n["$<<"](r),n.$join(", "))})),p(M[0],"ACTIONS",["accept","warn","raise"].$freeze()),o(E,"$check_policy_validity",(function(){var e=w;return e=h(this.policy.$values(),q("ACTIONS")),$(e["$empty?"]())?w:this.$raise(q("ArgumentError"),"Invalid policy: "+e.$join(", "))})),o(E,"$combine",(function(t,r){var n,a=this;return t=a.$check_range_validity(t),n=k(q("TreeRewriter"),"Action").$new(t,a.enforcer,e.to_hash(r)),a.action_root=a.action_root.$combine(n),a})),o(E,"$check_range_validity",(function(e){return($(b(e.$begin_pos(),0))||$(g(e.$end_pos(),this.source_buffer.$source().$size())))&&this.$raise(q("IndexError"),"The range "+e.$to_range()+" is outside the bounds of the source"),e})),o(E,"$enforce_policy",(function t(r){var n,a=t.$$p||w;return t.$$p=null,l(this.policy["$[]"](r),"accept")?w:$(n=e.yieldX(a,[]))?this.$trigger_policy(r,e.to_hash(n)):w})),p(M[0],"POLICY_TO_LEVEL",new Map([["warn","warning"],["raise","error"]]).$freeze()),o(E,"$trigger_policy",(function(e,t){var r,s,i,o,u,c,_=this,p=w,m=w;return t=n(t),null==(r=a(t,"range"))&&(r=_.$raise()),null==(s=a(t,"conflict"))&&(s=w),i=v(t,{range:!0,conflict:!0}),u=$(c=_.policy["$[]"](e))?c:"raise",p=k(q("Parser"),"Diagnostic").$new(q("POLICY_TO_LEVEL")["$[]"](u),e,i,r),_.diagnostics.$process(p),$(s)&&(r=null==(o=f(s))[0]?w:o[0],m=y(o,1),p=k(q("Parser"),"Diagnostic").$new(q("POLICY_TO_LEVEL")["$[]"](u),e+"_conflict",i,r,m),_.diagnostics.$process(p)),l(u,"raise")?_.$raise(k(q("Parser"),"ClobberingError"),"Parser::Source::TreeRewriter detected clobbering"):w}),-2)}(E[0],0,E)}(E[0],E)}(x[0],x)},Opal.modules["parser/source/tree_rewriter/action"]=function(e){var t=e.module,r=e.klass,n=e.ensure_kwargs,a=e.hash_get,s=e.def,i=e.truthy,o=e.send,l=e.not,$=e.rb_plus,u=e.eqeq,c=e.to_a,_=e.rb_gt,p=e.rb_minus,m=e.rb_ge,d=e.rb_le,f=e.rb_lt,h=e.slice,g=e.neqeq,b=[],v=e.nil,y=e.$$$;return e.add_stubs("attr_reader,freeze,empty?,do_combine,==,<<,begin,concat,flat_map,to_proc,end,!,insert_before,insert_after,replacement,raise,insertion?,with,begin_pos,range,first,children,end_pos,last,new,+,map,moved,protected,swallow,class,merge,place_in_hierarchy,analyse_hierarchy,[],fuse_deletions,combine_children,inject,size,bsearch,bsearch_child_index,>,-,>=,<=>,<=,check_fusible,<,shift,pop,compact!,each,call,call_enforcer_for_merge,!=,select"),function(b,x){var w=[t(b,"Parser")].concat(x);return function(b,x){var w=[t(b,"Source")].concat(x);return function(t,b){var x=r(t,null,"Action"),w=x.$$prototype;return w.insert_before=w.insert_after=w.children=w.replacement=w.range=w.enforcer=v,x.$attr_reader("range","replacement","insert_before","insert_after"),s(x,"$initialize",(function(e,t,r){var s,i,o,l,$,u=this;return r=n(r),null==(s=a(r,"insert_before"))&&(s=""),null==(i=a(r,"replacement"))&&(i=v),null==(o=a(r,"insert_after"))&&(o=""),null==(l=a(r,"children"))&&(l=[]),$=[e,t,l.$freeze(),s.$freeze(),i,o.$freeze()],u.range=$[0],u.enforcer=$[1],u.children=$[2],u.insert_before=$[3],u.replacement=$[4],u.insert_after=$[5],u.$freeze()}),-3),s(x,"$combine",(function(e){return i(e["$empty?"]())?this:this.$do_combine(e)})),s(x,"$empty?",(function(){var e,t=this,r=v,n=v;return i(e=i(r=i(n=t.insert_before["$empty?"]())?t.insert_after["$empty?"]():n)?t.children["$empty?"]():r)?i(r=t.replacement["$=="](v))?r:i(n=t.replacement["$empty?"]())?t.range["$empty?"]():n:e})),s(x,"$ordered_replacements",(function(){var e=this,t=v;return t=[],i(e.insert_before["$empty?"]())||t["$<<"]([e.range.$begin(),e.insert_before]),i(e.replacement)&&t["$<<"]([e.range,e.replacement]),t.$concat(o(e.children,"flat_map",[],"ordered_replacements".$to_proc())),i(e.insert_after["$empty?"]())||t["$<<"]([e.range.$end(),e.insert_after]),t})),s(x,"$nested_actions",(function(){var e=this,t=v;return t=[],(l(e.insert_before["$empty?"]())||l(e.insert_after["$empty?"]()))&&t["$<<"](["wrap",e.range,e.insert_before,e.insert_after]),i(e.replacement)&&t["$<<"](["replace",e.range,e.replacement]),t.$concat(o(e.children,"flat_map",[],"nested_actions".$to_proc()))})),s(x,"$insertion?",(function(){var e,t=this,r=v;return i(e=i(r=t.$insert_before()["$empty?"]()["$!"]())?r:t.$insert_after()["$empty?"]()["$!"]())?e:i(r=t.$replacement())?t.$replacement()["$empty?"]()["$!"]():r})),s(x,"$contract",(function(){var e,t=this;return i(t["$empty?"]())&&t.$raise("Empty actions can not be contracted"),i(t["$insertion?"]())?t:(e=t.range.$with(new Map([["begin_pos",t.$children().$first().$range().$begin_pos()],["end_pos",t.$children().$last().$range().$end_pos()]])),t.$with(new Map([["range",e]])))})),s(x,"$moved",(function(e,t){var r,n=this;return r=y(y(y("Parser"),"Source"),"Range").$new(e,$(n.range.$begin_pos(),t),$(n.range.$end_pos(),t)),n.$with(new Map([["range",r],["children",o(n.$children(),"map",[],(function(r){return null==r&&(r=v),r.$moved(e,t)}))]]))})),x.$protected(),x.$attr_reader("children"),s(x,"$with",(function(e){var t,r,s,o,l,$,u=this;return e=n(e),null==(t=a(e,"range"))&&(t=u.range),null==(r=a(e,"enforcer"))&&(r=u.enforcer),null==(s=a(e,"children"))&&(s=u.children),null==(o=a(e,"insert_before"))&&(o=u.insert_before),null==(l=a(e,"replacement"))&&(l=u.replacement),null==($=a(e,"insert_after"))&&($=u.insert_after),i(l)&&(s=u.$swallow(s)),u.$class().$new(t,r,new Map([["children",s],["insert_before",o],["replacement",l],["insert_after",$]]))}),-1),s(x,"$do_combine",(function(e){var t=this;return u(e.$range(),t.range)?t.$merge(e):t.$place_in_hierarchy(e)})),s(x,"$place_in_hierarchy",(function(e){var t=this,r=v,n=v;return r=t.$analyse_hierarchy(e),i(r["$[]"]("fusible"))?t.$fuse_deletions(e,r["$[]"]("fusible"),[].concat(c(r["$[]"]("sibbling_left"))).concat(c(r["$[]"]("child"))).concat(c(r["$[]"]("sibbling_right")))):(n=i(r["$[]"]("parent"))?r["$[]"]("parent").$do_combine(e):i(r["$[]"]("child"))?e.$with(new Map([["children",r["$[]"]("child")],["enforcer",t.enforcer]])).$combine_children(e.$children()):e,t.$with(new Map([["children",[].concat(c(r["$[]"]("sibbling_left"))).concat([n]).concat(c(r["$[]"]("sibbling_right")))]])))})),s(x,"$combine_children",(function(e){return o(e,"inject",[this],(function(e,t){return null==e&&(e=v),null==t&&(t=v),e.$place_in_hierarchy(t)}))})),s(x,"$fuse_deletions",(function(e,t,r){var n,a,s=v;return s=this.$with(new Map([["children",r]])),n=o([e].concat(c(t)),"map",[],"range".$to_proc()).$inject("join"),a=e.$with(new Map([["range",n]])),s.$do_combine(a)})),s(x,"$bsearch_child_index",(function t(r){var n,a,s=t.$$p||v;return t.$$p=null,null==r&&(r=0),n=this.children.$size(),i(a=o(e.Range.$new(r,n,!0),"bsearch",[],(function t(r){var n=null==t.$$s?this:t.$$s;return null==n.children&&(n.children=v),null==r&&(r=v),e.yield1(s,n.children["$[]"](r))}),{$$s:this}))?a:n}),-1),s(x,"$analyse_hierarchy",(function(t){var r,n=this,a=v,s=v,l=v,c=v,h=v,g=v,b=v,y=v,x=v;switch(a=t.$range(),s=o(n,"bsearch_child_index",[],(function(e){return null==e&&(e=v),_(e.$range().$end_pos(),a.$begin_pos())})),r=u(s,0)?0:p(s,1),l=o(n,"bsearch_child_index",[r],(function(e){return null==e&&(e=v),m(e.$range().$begin_pos(),a.$end_pos())})),(c=p(l,s)).valueOf()){case 0:break;case-1:s=p(s,1),l=$(l,1),h=n.children["$[]"](s);break;default:g=n.children["$[]"](s).$range().$begin_pos()["$<=>"](a.$begin_pos()),b=n.children["$[]"](p(l,1)).$range().$end_pos()["$<=>"](a.$end_pos()),u(c,1)&&i(d(g,0))&&i(m(b,0))?h=n.children["$[]"](s):(y=n.children["$[]"](e.Range.$new(s,l,!0)),x=n.$check_fusible(t,i(f(g,0))?y.$shift():v,i(_(b,0))?y.$pop():v))}return new Map([["parent",h],["sibbling_left",n.children["$[]"](e.Range.$new(0,s,!0))],["sibbling_right",n.children["$[]"](e.Range.$new(l,n.children.$size(),!0))],["fusible",x],["child",y]])})),s(x,"$check_fusible",(function(e,t){var r;return(r=h(arguments,1))["$compact!"](),i(r["$empty?"]())?v:(o(r,"each",[],(function t(r){var n,a=null==t.$$s?this:t.$$s;return null==a.enforcer&&(a.enforcer=v),null==r&&(r=v),n=i(e["$insertion?"]())||i(r["$insertion?"]())?"crossing_insertions":"crossing_deletions",o(a.enforcer,"call",[n],(function(){return new Map([["range",e.$range()],["conflict",r.$range()]])}))}),{$$s:this}),r)}),-2),s(x,"$merge",(function(e){var t,r=this;return r.$call_enforcer_for_merge(e),r.$with(new Map([["insert_before",""+e.$insert_before()+r.$insert_before()],["replacement",i(t=e.$replacement())?t:r.replacement],["insert_after",""+r.$insert_after()+e.$insert_after()]])).$combine_children(e.$children())})),s(x,"$call_enforcer_for_merge",(function(e){return o(this.enforcer,"call",["different_replacements"],(function t(){var r=null==t.$$s?this:t.$$s;return null==r.replacement&&(r.replacement=v),null==r.range&&(r.range=v),i(r.replacement)&&i(e.$replacement())&&g(r.replacement,e.$replacement())?new Map([["range",r.range],["replacement",e.$replacement()],["other_replacement",r.replacement]]):v}),{$$s:this})})),s(x,"$swallow",(function(e){return o(this.enforcer,"call",["swallowed_insertions"],(function t(){var r=null==t.$$s?this:t.$$s,n=v;return null==r.range&&(r.range=v),n=o(e,"select",[],"insertion?".$to_proc()),i(n["$empty?"]())?v:new Map([["range",r.range],["conflict",o(n,"map",[],"range".$to_proc())]])}),{$$s:this}),[]}))}(e.$r(w)("TreeRewriter"))}(w[0],w)}(b[0],b)},Opal.modules["parser/source/map"]=function(e){var t=e.module,r=e.klass,n=e.assign_ivar,a=e.def,s=e.send2,i=e.find_super,o=e.send,l=e.truthy,$=e.eqeq,u=e.range,c=[],_=e.nil;return e.add_stubs("attr_reader,freeze,line,alias_method,column,last_line,last_column,with,update_expression,==,class,reduce,map,instance_variables,instance_variable_get,send,inject,to_sym,[]=,[],protected,tap,dup,to_proc"),function(e,c){var p=[t(e,"Parser")].concat(c);return function(e,c){return function(e,t){var c=r(e,null,"Map"),p=c.$$prototype;return p.node=p.expression=_,c.$attr_reader("node"),c.$attr_reader("expression"),a(c,"$initialize",n("expression")),a(c,"$initialize_copy",(function e(t){var r=e.$$p||_,n=this;return e.$$p=null,s(n,i(n,"initialize_copy",e,!1,!0),"initialize_copy",[t],r),n.node=_})),a(c,"$node=",(function(e){var t=this;return t.node=e,t.$freeze(),t.node})),a(c,"$line",(function(){return this.expression.$line()})),c.$alias_method("first_line","line"),a(c,"$column",(function(){return this.expression.$column()})),a(c,"$last_line",(function(){return this.expression.$last_line()})),a(c,"$last_column",(function(){return this.expression.$last_column()})),a(c,"$with_expression",(function(e){return o(this,"with",[],(function(t){return null==t&&(t=_),t.$update_expression(e)}))})),a(c,"$==",(function(e){var t,r=this;return l(t=e.$class()["$=="](r.$class()))?o(r.$instance_variables(),"map",[],(function t(r){return null==r&&(r=_),(null==t.$$s?this:t.$$s).$instance_variable_get(r)["$=="](e.$send("instance_variable_get",r))}),{$$s:r}).$reduce("&"):t})),a(c,"$to_hash",(function(){return o(this.$instance_variables(),"inject",[new Map],(function e(t,r){var n=null==e.$$s?this:e.$$s;return null==t&&(t=_),null==r&&(r=_),$(r.$to_sym(),"@node")||t["$[]="](r["$[]"](u(1,-1,!1)).$to_sym(),n.$instance_variable_get(r)),t}),{$$s:this})})),c.$protected(),a(c,"$with",(function e(){var t=e.$$p||_;return e.$$p=null,o(this.$dup(),"tap",[],t.$to_proc())})),a(c,"$update_expression",n("expression"))}([t(e,"Source")].concat(c)[0])}(p[0],p)}(c[0],c)},Opal.modules["parser/source/map/operator"]=function(e){var t=e.module,r=e.klass,n=e.send2,a=e.find_super,s=e.def,i=[];e.nil;return e.add_stubs("attr_reader"),function(i,o){var l=[t(i,"Parser")].concat(o);return function(i,o){var l=[t(i,"Source")].concat(o),$=e.$r(l);return function(e,t){var i=r(e,t,"Operator");return i.$attr_reader("operator"),s(i,"$initialize",(function e(t,r){var s=this;return e.$$p=null,s.operator=t,n(s,a(s,"initialize",e,!1,!0),"initialize",[r],null)}))}($("Map"),$("Map"))}(l[0],l)}(i[0],i)},Opal.modules["parser/source/map/collection"]=function(e){var t=e.module,r=e.klass,n=e.send2,a=e.find_super,s=e.def,i=[];e.nil;return e.add_stubs("attr_reader"),function(i,o){var l=[t(i,"Parser")].concat(o);return function(i,o){var l=[t(i,"Source")].concat(o),$=e.$r(l);return function(e,t){var i=r(e,t,"Collection");return i.$attr_reader("begin"),i.$attr_reader("end"),s(i,"$initialize",(function e(t,r,s){var i,o=this;return e.$$p=null,i=[t,r],o.begin=i[0],o.end=i[1],n(o,a(o,"initialize",e,!1,!0),"initialize",[s],null)}))}($("Map"),$("Map"))}(l[0],l)}(i[0],i)},Opal.modules["parser/source/map/constant"]=function(e){var t=e.module,r=e.klass,n=e.send2,a=e.find_super,s=e.def,i=e.send,o=e.assign_ivar,l=[],$=e.nil;return e.add_stubs("attr_reader,with,update_operator,protected"),function(l,u){var c=[t(l,"Parser")].concat(u);return function(l,u){var c=[t(l,"Source")].concat(u),_=e.$r(c);return function(e,t){var l=r(e,t,"Constant");return l.$attr_reader("double_colon"),l.$attr_reader("name"),l.$attr_reader("operator"),s(l,"$initialize",(function e(t,r,s){var i,o=this;return e.$$p=null,i=[t,r],o.double_colon=i[0],o.name=i[1],n(o,a(o,"initialize",e,!1,!0),"initialize",[s],null)})),s(l,"$with_operator",(function(e){return i(this,"with",[],(function(t){return null==t&&(t=$),t.$update_operator(e)}))})),l.$protected(),s(l,"$update_operator",o("operator"))}(_("Map"),_("Map"))}(c[0],c)}(l[0],l)},Opal.modules["parser/source/map/variable"]=function(e){var t=e.module,r=e.klass,n=e.send2,a=e.find_super,s=e.def,i=e.send,o=e.assign_ivar,l=[],$=e.nil;return e.add_stubs("attr_reader,with,update_operator,protected"),function(l,u){var c=[t(l,"Parser")].concat(u);return function(l,u){var c=[t(l,"Source")].concat(u),_=e.$r(c);return function(e,t){var l=r(e,t,"Variable");return l.$attr_reader("name"),l.$attr_reader("operator"),s(l,"$initialize",(function e(t,r){var s=this;return e.$$p=null,null==r&&(r=t),s.name=t,n(s,a(s,"initialize",e,!1,!0),"initialize",[r],null)}),-2),s(l,"$with_operator",(function(e){return i(this,"with",[],(function(t){return null==t&&(t=$),t.$update_operator(e)}))})),l.$protected(),s(l,"$update_operator",o("operator"))}(_("Map"),_("Map"))}(c[0],c)}(l[0],l)},Opal.modules["parser/source/map/keyword"]=function(e){var t=e.module,r=e.klass,n=e.send2,a=e.find_super,s=e.def,i=[];e.nil;return e.add_stubs("attr_reader"),function(i,o){var l=[t(i,"Parser")].concat(o);return function(i,o){var l=[t(i,"Source")].concat(o),$=e.$r(l);return function(e,t){var i=r(e,t,"Keyword");return i.$attr_reader("keyword"),i.$attr_reader("begin"),i.$attr_reader("end"),s(i,"$initialize",(function e(t,r,s,i){var o,l=this;return e.$$p=null,l.keyword=t,o=[r,s],l.begin=o[0],l.end=o[1],n(l,a(l,"initialize",e,!1,!0),"initialize",[i],null)}))}($("Map"),$("Map"))}(l[0],l)}(i[0],i)},Opal.modules["parser/source/map/definition"]=function(e){var t=e.module,r=e.klass,n=e.send2,a=e.find_super,s=e.def,i=[],o=e.nil;return e.add_stubs("attr_reader,join"),function(i,l){var $=[t(i,"Parser")].concat(l);return function(i,l){var $=[t(i,"Source")].concat(l),u=e.$r($);return function(e,t){var i=r(e,t,"Definition"),l=i.$$prototype;return l.keyword=l.end=o,i.$attr_reader("keyword"),i.$attr_reader("operator"),i.$attr_reader("name"),i.$attr_reader("end"),s(i,"$initialize",(function e(t,r,s,i){var o=this;return e.$$p=null,o.keyword=t,o.operator=r,o.name=s,o.end=i,n(o,a(o,"initialize",e,!1,!0),"initialize",[o.keyword.$join(o.end)],null)}))}(u("Map"),u("Map"))}($[0],$)}(i[0],i)},Opal.modules["parser/source/map/method_definition"]=function(e){var t=e.module,r=e.klass,n=e.send2,a=e.find_super,s=e.truthy,i=e.def,o=[],l=e.nil;return e.add_stubs("attr_reader,join"),function(o,$){var u=[t(o,"Parser")].concat($);return function(o,$){var u=[t(o,"Source")].concat($),c=e.$r(u);return function(e,t){var o=r(e,t,"MethodDefinition");return o.$$prototype.keyword=l,o.$attr_reader("keyword"),o.$attr_reader("operator"),o.$attr_reader("name"),o.$attr_reader("end"),o.$attr_reader("assignment"),i(o,"$initialize",(function e(t,r,i,o,l,$){var u,c=this;return e.$$p=null,c.keyword=t,c.operator=r,c.name=i,c.end=o,c.assignment=l,n(c,a(c,"initialize",e,!1,!0),"initialize",[c.keyword.$join(s(u=o)?u:$)],null)}))}(c("Map"),c("Map"))}(u[0],u)}(o[0],o)},Opal.modules["parser/source/map/send"]=function(e){var t=e.module,r=e.klass,n=e.send2,a=e.find_super,s=e.def,i=e.send,o=e.assign_ivar,l=[],$=e.nil;return e.add_stubs("attr_reader,with,update_operator,protected"),function(l,u){var c=[t(l,"Parser")].concat(u);return function(l,u){var c=[t(l,"Source")].concat(u),_=e.$r(c);return function(e,t){var l=r(e,t,"Send");return l.$attr_reader("dot"),l.$attr_reader("selector"),l.$attr_reader("operator"),l.$attr_reader("begin"),l.$attr_reader("end"),s(l,"$initialize",(function e(t,r,s,i,o){var l,$=this;return e.$$p=null,$.dot=t,$.selector=r,l=[s,i],$.begin=l[0],$.end=l[1],n($,a($,"initialize",e,!1,!0),"initialize",[o],null)})),s(l,"$with_operator",(function(e){return i(this,"with",[],(function(t){return null==t&&(t=$),t.$update_operator(e)}))})),l.$protected(),s(l,"$update_operator",o("operator"))}(_("Map"),_("Map"))}(c[0],c)}(l[0],l)},Opal.modules["parser/source/map/index"]=function(e){var t=e.module,r=e.klass,n=e.send2,a=e.find_super,s=e.def,i=e.send,o=e.assign_ivar,l=[],$=e.nil;return e.add_stubs("attr_reader,with,update_operator,protected"),function(l,u){var c=[t(l,"Parser")].concat(u);return function(l,u){var c=[t(l,"Source")].concat(u),_=e.$r(c);return function(e,t){var l=r(e,t,"Index");return l.$attr_reader("begin"),l.$attr_reader("end"),l.$attr_reader("operator"),s(l,"$initialize",(function e(t,r,s){var i,o=this;return e.$$p=null,i=[t,r],o.begin=i[0],o.end=i[1],o.operator=$,n(o,a(o,"initialize",e,!1,!0),"initialize",[s],null)})),s(l,"$with_operator",(function(e){return i(this,"with",[],(function(t){return null==t&&(t=$),t.$update_operator(e)}))})),l.$protected(),s(l,"$update_operator",o("operator"))}(_("Map"),_("Map"))}(c[0],c)}(l[0],l)},Opal.modules["parser/source/map/condition"]=function(e){var t=e.module,r=e.klass,n=e.send2,a=e.find_super,s=e.def,i=[];e.nil;return e.add_stubs("attr_reader"),function(i,o){var l=[t(i,"Parser")].concat(o);return function(i,o){var l=[t(i,"Source")].concat(o),$=e.$r(l);return function(e,t){var i=r(e,t,"Condition");return i.$attr_reader("keyword"),i.$attr_reader("begin"),i.$attr_reader("else"),i.$attr_reader("end"),s(i,"$initialize",(function e(t,r,s,i,o){var l,$=this;return e.$$p=null,$.keyword=t,l=[r,s,i],$.begin=l[0],$.else=l[1],$.end=l[2],n($,a($,"initialize",e,!1,!0),"initialize",[o],null)}))}($("Map"),$("Map"))}(l[0],l)}(i[0],i)},Opal.modules["parser/source/map/ternary"]=function(e){var t=e.module,r=e.klass,n=e.send2,a=e.find_super,s=e.def,i=[];e.nil;return e.add_stubs("attr_reader"),function(i,o){var l=[t(i,"Parser")].concat(o);return function(i,o){var l=[t(i,"Source")].concat(o),$=e.$r(l);return function(e,t){var i=r(e,t,"Ternary");return i.$attr_reader("question"),i.$attr_reader("colon"),s(i,"$initialize",(function e(t,r,s){var i,o=this;return e.$$p=null,i=[t,r],o.question=i[0],o.colon=i[1],n(o,a(o,"initialize",e,!1,!0),"initialize",[s],null)}))}($("Map"),$("Map"))}(l[0],l)}(i[0],i)},Opal.modules["parser/source/map/for"]=function(e){var t=e.module,r=e.klass,n=e.send2,a=e.find_super,s=e.def,i=[];e.nil;return e.add_stubs("attr_reader"),function(i,o){var l=[t(i,"Parser")].concat(o);return function(i,o){var l=[t(i,"Source")].concat(o),$=e.$r(l);return function(e,t){var i=r(e,t,"For");return i.$attr_reader("keyword","in"),i.$attr_reader("begin","end"),s(i,"$initialize",(function e(t,r,s,i,o){var l,$=this;return e.$$p=null,l=[t,r],$.keyword=l[0],$.in=l[1],l=[s,i],$.begin=l[0],$.end=l[1],n($,a($,"initialize",e,!1,!0),"initialize",[o],null)}))}($("Map"),$("Map"))}(l[0],l)}(i[0],i)},Opal.modules["parser/source/map/rescue_body"]=function(e){var t=e.module,r=e.klass,n=e.send2,a=e.find_super,s=e.def,i=[];e.nil;return e.add_stubs("attr_reader"),function(i,o){var l=[t(i,"Parser")].concat(o);return function(i,o){var l=[t(i,"Source")].concat(o),$=e.$r(l);return function(e,t){var i=r(e,t,"RescueBody");return i.$attr_reader("keyword"),i.$attr_reader("assoc"),i.$attr_reader("begin"),s(i,"$initialize",(function e(t,r,s,i){var o=this;return e.$$p=null,o.keyword=t,o.assoc=r,o.begin=s,n(o,a(o,"initialize",e,!1,!0),"initialize",[i],null)}))}($("Map"),$("Map"))}(l[0],l)}(i[0],i)},Opal.modules["parser/source/map/heredoc"]=function(e){var t=e.module,r=e.klass,n=e.send2,a=e.find_super,s=e.def,i=[];e.nil;return e.add_stubs("attr_reader"),function(i,o){var l=[t(i,"Parser")].concat(o);return function(i,o){var l=[t(i,"Source")].concat(o),$=e.$r(l);return function(e,t){var i=r(e,t,"Heredoc");return i.$attr_reader("heredoc_body"),i.$attr_reader("heredoc_end"),s(i,"$initialize",(function e(t,r,s){var i=this;return e.$$p=null,i.heredoc_body=r,i.heredoc_end=s,n(i,a(i,"initialize",e,!1,!0),"initialize",[t],null)}))}($("Map"),$("Map"))}(l[0],l)}(i[0],i)},Opal.modules["parser/source/map/objc_kwarg"]=function(e){var t=e.module,r=e.klass,n=e.send2,a=e.find_super,s=e.def,i=[];e.nil;return e.add_stubs("attr_reader"),function(i,o){var l=[t(i,"Parser")].concat(o);return function(i,o){var l=[t(i,"Source")].concat(o),$=e.$r(l);return function(e,t){var i=r(e,t,"ObjcKwarg");return i.$attr_reader("keyword"),i.$attr_reader("operator"),i.$attr_reader("argument"),s(i,"$initialize",(function e(t,r,s,i){var o,l=this;return e.$$p=null,o=[t,r,s],l.keyword=o[0],l.operator=o[1],l.argument=o[2],n(l,a(l,"initialize",e,!1,!0),"initialize",[i],null)}))}($("Map"),$("Map"))}(l[0],l)}(i[0],i)},Opal.modules["parser/syntax_error"]=function(e){var t=e.module,r=e.klass,n=e.send2,a=e.find_super,s=e.def,i=[];e.nil;return e.add_stubs("attr_reader,message"),function(i,o){var l=[t(i,"Parser")].concat(o),$=e.$r(l);return function(e,t){var i=r(e,t,"SyntaxError");return i.$attr_reader("diagnostic"),s(i,"$initialize",(function e(t){var r=this;return e.$$p=null,r.diagnostic=t,n(r,a(r,"initialize",e,!1,!0),"initialize",[t.$message()],null)}))}(l[0],$("StandardError"))}(i[0],i)},Opal.modules["parser/clobbering_error"]=function(e){var t=e.module,r=e.klass,n=[],a=e.nil;return function(n,s){var i=[t(n,"Parser")].concat(s),o=e.$r(i);return r(i[0],o("RuntimeError"),"ClobberingError"),a}(n[0],n)},Opal.modules["parser/unknown_encoding_in_magic_comment_error"]=function(e){var t=e.module,r=e.klass,n=[],a=e.nil;return function(n,s){var i=[t(n,"Parser")].concat(s),o=e.$r(i);return r(i[0],o("ArgumentError"),"UnknownEncodingInMagicComment"),a}(n[0],n)},Opal.modules["parser/diagnostic"]=function(e){var t=e.module,r=e.klass,n=e.const_set,a=e.truthy,s=e.def,i=e.eqeq,o=e.rb_plus,l=e.rb_minus,$=e.to_ary,u=e.rb_gt,c=e.rb_times,_=e.send,p=e.rb_ge,m=e.not,d=e.neqeq,f=e.annotate_regexp,h=[],g=e.nil;return e.add_stubs("freeze,attr_reader,include?,raise,join,inspect,dup,compile,is?,==,line,last_line,+,message,render_line,first_line_only,last_line_only,-,source_buffer,decompose_position,end_pos,>,private,source_line,*,length,each,line_range,intersect,[]=,column_range,size,>=,!,map,name,!=,resize,=~,source,adjust"),function(h,b){var v=[t(h,"Parser")].concat(b);return function(t,h,b){var v=r(t,null,"Diagnostic"),y=[v].concat(b),x=e.$r(y),w=v.$$prototype;return w.reason=w.arguments=w.location=w.level=w.highlights=g,n(y[0],"LEVELS",["note","warning","error","fatal"].$freeze()),v.$attr_reader("level","reason","arguments"),v.$attr_reader("location","highlights"),s(v,"$initialize",(function(e,t,r,n,s){var i,o=this;return null==s&&(s=[]),a(x("LEVELS")["$include?"](e))||o.$raise(x("ArgumentError"),"Diagnostic#level must be one of "+x("LEVELS").$join(", ")+"; "+e.$inspect()+" provided."),a(n)||o.$raise("Expected a location"),o.level=e,o.reason=t,o.arguments=(a(i=r)?i:new Map).$dup().$freeze(),o.location=n,o.highlights=s.$dup().$freeze(),o.$freeze()}),-5),s(v,"$message",(function(){return x("Messages").$compile(this.reason,this.arguments)})),s(v,"$render",(function(){var e,t,r=this,n=g,s=g,c=g,_=g,p=g;return i(r.location.$line(),r.location.$last_line())||a(r.location["$is?"]("\n"))?o([r.location+": "+r.level+": "+r.$message()],r.$render_line(r.location)):(n=r.$first_line_only(r.location),s=r.$last_line_only(r.location),c=o(l(r.location.$last_line(),r.location.$line()),1),t=r.location.$source_buffer().$decompose_position(r.location.$end_pos()),_=null==(e=$(t))[0]?g:e[0],p=null==e[1]?g:e[1],o(o([r.location+"-"+_+":"+p+": "+r.level+": "+r.$message()],r.$render_line(n,u(c,2),!1)),r.$render_line(s,!1,!0)))})),v.$private(),s(v,"$render_line",(function(e,t,r){var n=g,s=g;return null==t&&(t=!1),null==r&&(r=!1),n=e.$source_line(),s=c(" ",n.$length()),_(this.highlights,"each",[],(function(t){var r,n;return null==t&&(t=g),n=e.$source_buffer().$line_range(e.$line()),a(t=t.$intersect(n))?(r=[t.$column_range(),c("~",t.$size())],_(s,"[]=",r),r[r.length-1]):g})),a(e["$is?"]("\n"))?s=o(s,"^"):m(r)&&a(p(e.$size(),1))?s["$[]="](e.$column_range(),o("^",c("~",l(e.$size(),1)))):s["$[]="](e.$column_range(),c("~",e.$size())),a(t)&&(s=o(s,"...")),_([n,s],"map",[],(function(t){return null==t&&(t=g),e.$source_buffer().$name()+":"+e.$line()+": "+t}))}),-2),s(v,"$first_line_only",(function(e){return d(e.$line(),e.$last_line())?e.$resize(e.$source()["$=~"](/\n/)):e})),s(v,"$last_line_only",(function(e){return d(e.$line(),e.$last_line())?e.$adjust(new Map([["begin_pos",e.$source()["$=~"](f(/[^\n]*$/u,"[^\\n]*\\z",""))]])):e}))}(v[0],0,v)}(h[0],h)},Opal.modules["parser/diagnostic/engine"]=function(e){var t=e.module,r=e.klass,n=e.def,a=e.truthy,s=[],i=e.nil,o=e.$$$;return e.add_stubs("attr_accessor,ignore?,call,raise?,raise,protected,==,level"),function(s,l){var $=[t(s,"Parser")].concat(l);return function(t,s,l){var $=r(t,null,"Engine"),u=[$].concat(l),c=e.$r(u),_=$.$$prototype;return _.consumer=_.ignore_warnings=_.all_errors_are_fatal=i,$.$attr_accessor("consumer"),$.$attr_accessor("all_errors_are_fatal"),$.$attr_accessor("ignore_warnings"),n($,"$initialize",(function(e){var t=this;return null==e&&(e=i),t.consumer=e,t.all_errors_are_fatal=!1,t.ignore_warnings=!1}),-1),n($,"$process",(function(e){var t=this;return a(t["$ignore?"](e))||a(t.consumer)&&t.consumer.$call(e),a(t["$raise?"](e))&&t.$raise(o(c("Parser"),"SyntaxError"),e),t})),$.$protected(),n($,"$ignore?",(function(e){var t;return a(t=this.ignore_warnings)?e.$level()["$=="]("warning"):t})),n($,"$raise?",(function(e){var t,r;return a(t=a(r=this.all_errors_are_fatal)?e.$level()["$=="]("error"):r)?t:e.$level()["$=="]("fatal")}))}(e.$r($)("Diagnostic"),0,$)}(s[0],s)},Opal.modules["parser/static_environment"]=function(e){var t=e.module,r=e.klass,n=e.const_set,a=e.def,s=e.truthy,i=e.send,o=[],l=e.nil;return e.add_stubs("reset,[],push,dup,delete,add,pop,to_sym,include?,declare,declared?,any?,empty?"),function(o,$){var u=[t(o,"Parser")].concat($);return function(t,o,$){var u=r(t,null,"StaticEnvironment"),c=[u].concat($),_=e.$r(c),p=u.$$prototype;return p.stack=p.variables=l,n(c[0],"FORWARD_ARGS","FORWARD_ARGS"),n(c[0],"ANONYMOUS_RESTARG_IN_CURRENT_SCOPE","ANONYMOUS_RESTARG_IN_CURRENT_SCOPE"),n(c[0],"ANONYMOUS_RESTARG_INHERITED","ANONYMOUS_RESTARG_INHERITED"),n(c[0],"ANONYMOUS_KWRESTARG_IN_CURRENT_SCOPE","ANONYMOUS_KWRESTARG_IN_CURRENT_SCOPE"),n(c[0],"ANONYMOUS_KWRESTARG_INHERITED","ANONYMOUS_KWRESTARG_INHERITED"),n(c[0],"ANONYMOUS_BLOCKARG_IN_CURRENT_SCOPE","ANONYMOUS_BLOCKARG_IN_CURRENT_SCOPE"),n(c[0],"ANONYMOUS_BLOCKARG_INHERITED","ANONYMOUS_BLOCKARG_INHERITED"),a(u,"$initialize",(function(){return this.$reset()})),a(u,"$reset",(function(){return this.variables=_("Set")["$[]"](),this.stack=[]})),a(u,"$extend_static",(function(){var e=this;return e.stack.$push(e.variables),e.variables=_("Set")["$[]"](),e})),a(u,"$extend_dynamic",(function(){var e=this;return e.stack.$push(e.variables),e.variables=e.variables.$dup(),s(e.variables.$delete(_("ANONYMOUS_BLOCKARG_IN_CURRENT_SCOPE")))&&e.variables.$add(_("ANONYMOUS_BLOCKARG_INHERITED")),s(e.variables.$delete(_("ANONYMOUS_RESTARG_IN_CURRENT_SCOPE")))&&e.variables.$add(_("ANONYMOUS_RESTARG_INHERITED")),s(e.variables.$delete(_("ANONYMOUS_KWRESTARG_IN_CURRENT_SCOPE")))&&e.variables.$add(_("ANONYMOUS_KWRESTARG_INHERITED")),e})),a(u,"$unextend",(function(){var e=this;return e.variables=e.stack.$pop(),e})),a(u,"$declare",(function(e){return this.variables.$add(e.$to_sym()),this})),a(u,"$declared?",(function(e){return this.variables["$include?"](e.$to_sym())})),a(u,"$declare_forward_args",(function(){return this.$declare(_("FORWARD_ARGS"))})),a(u,"$declared_forward_args?",(function(){return this["$declared?"](_("FORWARD_ARGS"))})),a(u,"$declare_anonymous_blockarg",(function(){return this.$declare(_("ANONYMOUS_BLOCKARG_IN_CURRENT_SCOPE"))})),a(u,"$declared_anonymous_blockarg?",(function(){var e;return s(e=this["$declared?"](_("ANONYMOUS_BLOCKARG_IN_CURRENT_SCOPE")))?e:this["$declared?"](_("ANONYMOUS_BLOCKARG_INHERITED"))})),a(u,"$declared_anonymous_blockarg_in_current_scpe?",(function(){return this["$declared?"](_("ANONYMOUS_BLOCKARG_IN_CURRENT_SCOPE"))})),a(u,"$parent_has_anonymous_blockarg?",(function(){return i(this.stack,"any?",[],(function(e){return null==e&&(e=l),e["$include?"](_("ANONYMOUS_BLOCKARG_IN_CURRENT_SCOPE"))}))})),a(u,"$declare_anonymous_restarg",(function(){return this.$declare(_("ANONYMOUS_RESTARG_IN_CURRENT_SCOPE"))})),a(u,"$declared_anonymous_restarg?",(function(){var e;return s(e=this["$declared?"](_("ANONYMOUS_RESTARG_IN_CURRENT_SCOPE")))?e:this["$declared?"](_("ANONYMOUS_RESTARG_INHERITED"))})),a(u,"$declared_anonymous_restarg_in_current_scope?",(function(){return this["$declared?"](_("ANONYMOUS_RESTARG_IN_CURRENT_SCOPE"))})),a(u,"$parent_has_anonymous_restarg?",(function(){return i(this.stack,"any?",[],(function(e){return null==e&&(e=l),e["$include?"](_("ANONYMOUS_RESTARG_IN_CURRENT_SCOPE"))}))})),a(u,"$declare_anonymous_kwrestarg",(function(){return this.$declare(_("ANONYMOUS_KWRESTARG_IN_CURRENT_SCOPE"))})),a(u,"$declared_anonymous_kwrestarg?",(function(){var e;return s(e=this["$declared?"](_("ANONYMOUS_KWRESTARG_IN_CURRENT_SCOPE")))?e:this["$declared?"](_("ANONYMOUS_KWRESTARG_INHERITED"))})),a(u,"$declared_anonymous_kwrestarg_in_current_scope?",(function(){return this["$declared?"](_("ANONYMOUS_KWRESTARG_IN_CURRENT_SCOPE"))})),a(u,"$parent_has_anonymous_kwrestarg?",(function(){return i(this.stack,"any?",[],(function(e){return null==e&&(e=l),e["$include?"](_("ANONYMOUS_KWRESTARG_IN_CURRENT_SCOPE"))}))})),a(u,"$empty?",(function(){return this.stack["$empty?"]()}))}(u[0],0,u)}(o[0],o)},Opal.modules["parser/lexer-F0"]=function(e){var t=e.klass,r=e.truthy,n=e.send,a=e.rb_minus,s=e.def,i=e.eqeq,o=e.const_set,l=e.rb_plus,$=e.to_ary,u=e.rb_le,c=e.rb_gt,_=e.neqeq,p=e.eqeqeq,m=e.range,d=e.rb_ge,f=e.annotate_regexp,h=e.not,g=e.rb_lt,b=e.gvars,v=e.slice,y=[],x=e.$r(y),w=e.nil,k=e.$$$;return e.add_stubs("attr_accessor,private,_lex_actions=,_lex_trans_keys=,_lex_key_spans=,_lex_index_offsets=,_lex_indicies=,_lex_trans_targs=,_lex_trans_actions=,_lex_to_state_actions=,_lex_from_state_actions=,_lex_eof_trans=,lex_start=,lex_error=,lex_en_expr_variable=,lex_en_expr_fname=,lex_en_expr_endfn=,lex_en_expr_dot=,lex_en_expr_arg=,lex_en_expr_cmdarg=,lex_en_expr_endarg=,lex_en_expr_mid=,lex_en_expr_beg=,lex_en_expr_labelarg=,lex_en_expr_value=,lex_en_expr_end=,lex_en_leading_dot=,lex_en_line_comment=,lex_en_line_begin=,lex_en_inside_string=,attr_reader,respond_to?,class,send,lambda,emit,Rational,Complex,-,Float,reset,lex_en_line_begin,new,source,==,encoding,unpack,[],source_buffer=,source_pts=,lex_en_expr_dot,lex_en_expr_fname,lex_en_expr_value,lex_en_expr_beg,lex_en_expr_mid,lex_en_expr_arg,lex_en_expr_cmdarg,lex_en_expr_end,lex_en_expr_endarg,lex_en_expr_endfn,lex_en_expr_labelarg,lex_en_inside_string,fetch,invert,push,count,pop,dedent_level,empty?,shift,+,size,<=,>,<<,!=,===,e_lbrace,close_interp_on_current_literal,on_newline,emit_comment_from_range,version?,tok,emit_global_var,stack_pop,emit_class_var,emit_instance_var,emit_table,[]=,chr,push_literal,in_argdef,>=,freeze,arg_or_cmdarg,check_ambiguous_slash,last,diagnostic,range,active?,emit_do,slice,length,start_with?,read_character_constant,=~,declared?,!,nil?,any?,<,end_with?,rstrip,herebody_s,herebody_s=,emit_colon_with_digits,in_kwarg,emit_singleton_class,inspect,numeric_literal_int,to_i,call,emit_rbrace_rparen_rbrack,to_f,emit_comment,advance,lex_error,protected,include?,process,literal,start_interp_brace,index,lexpop,each,upcase"),function(y,x,U){var E=t(y,null,"Lexer"),M=[E].concat(U),q=e.$r(M),S=E.$$prototype;return S.version=S.source_buffer=S.source_pts=S.strings=S.cs=S.cmdarg_stack=S.cmdarg=S.cond_stack=S.cond=S.token_queue=S._lex_actions=S.p=S.command_start=S.emit_integer=S.emit_rational=S.emit_imaginary=S.emit_imaginary_rational=S.emit_integer_re=S.emit_integer_if=S.emit_integer_rescue=S.emit_float=S.emit_imaginary_float=S.emit_float_if=S.emit_float_rescue=S.paren_nest=S.ts=S.te=S.stack=S.top=S.act=S.context=S.lambda_stack=S.static_env=S.newline_s=S.num_base=S.num_suffix_s=S.num_xfrm=S.eq_begin_s=S.cs_before_block_comment=S.tokens=S.comments=S.sharp_s=S.diagnostics=S.num_digits_s=w,function(e,t){e.$attr_accessor("_lex_actions"),e.$private("_lex_actions","_lex_actions=")}(e.get_singleton_class(E)),E["$_lex_actions="](e.large_array_unpack("0,1,0,1,16,1,17,1,18,1,19,1,32,1,33,1,34,1,35,1,37,1,38,1,39,1,40,1,41,1,42,1,43,1,44,1,45,1,46,1,47,1,48,1,49,1,50,1,51,1,52,1,53,1,54,1,55,1,56,1,57,1,61,1,62,1,63,1,64,1,65,1,66,1,67,1,68,1,69,1,70,1,71,1,72,1,73,1,74,1,75,1,76,1,77,1,78,1,79,1,80,1,81,1,82,1,83,1,84,1,85,1,86,1,87,1,88,1,89,1,90,1,91,1,93,1,94,1,95,1,100,1,101,1,102,1,103,1,104,1,105,1,106,1,107,1,112,1,113,1,114,1,115,1,116,1,119,1,120,1,121,1,122,1,125,1,126,1,128,1,129,1,130,1,131,1,132,1,133,1,135,1,136,1,139,1,140,1,141,1,142,1,144,1,145,1,155,1,156,1,157,1,158,1,159,1,160,1,161,1,162,1,163,1,164,1,165,1,166,1,168,1,169,1,170,1,171,1,172,1,173,1,174,1,176,1,178,1,179,1,180,1,184,1,186,1,187,1,189,1,190,1,191,1,192,1,193,1,194,1,195,1,196,1,197,1,198,1,199,1,200,1,201,1,203,1,204,1,205,1,206,1,207,1,208,1,210,1,211,1,230,1,231,1,232,1,233,1,234,1,235,1,236,1,237,1,238,1,240,1,241,1,242,1,243,1,244,1,246,1,247,1,248,1,250,1,252,1,254,1,255,1,256,1,258,1,259,1,260,1,263,1,264,1,266,1,267,1,268,1,269,1,270,1,271,1,274,1,275,1,276,1,277,1,278,1,279,1,280,1,281,1,282,1,283,1,286,1,287,1,288,1,289,1,290,1,291,1,292,1,293,1,294,1,295,1,296,2,0,18,2,0,100,2,0,104,2,0,105,2,0,167,2,0,169,2,0,239,2,0,284,2,0,285,2,0,288,2,0,289,2,2,249,2,3,249,2,4,249,2,5,249,2,6,249,2,7,249,2,9,251,2,10,251,2,11,251,2,12,251,2,13,251,2,14,111,2,14,134,2,14,181,2,14,245,2,15,261,2,16,0,2,16,32,2,16,33,2,16,34,2,16,75,2,16,84,2,16,94,2,16,105,2,16,116,2,16,118,2,16,135,2,16,142,2,16,143,2,16,155,2,16,168,2,16,190,2,16,201,2,16,202,2,16,208,2,16,209,2,16,264,2,16,265,2,16,292,2,17,18,2,18,0,2,18,75,2,18,84,2,18,94,2,18,117,2,18,135,2,18,142,2,18,190,2,18,201,2,18,208,2,18,264,2,18,292,2,19,92,2,19,177,2,19,188,2,19,271,2,20,92,2,20,177,2,20,188,2,20,257,2,21,177,2,21,188,2,22,177,2,22,188,2,23,177,2,23,188,2,24,177,2,24,198,2,25,177,2,25,188,2,26,177,2,27,253,2,28,110,2,28,182,2,28,262,2,29,261,2,30,108,2,30,109,2,30,127,2,30,183,2,30,260,2,31,261,2,35,0,2,36,175,2,37,179,2,38,179,2,39,185,2,41,47,2,42,47,2,43,47,2,44,47,2,45,47,2,46,47,2,47,1,2,53,0,2,53,49,2,53,58,2,53,59,2,53,60,2,53,96,2,53,97,2,53,98,2,53,99,2,53,123,2,53,124,2,53,137,2,53,138,2,53,147,2,53,148,2,53,149,2,53,150,2,53,151,2,53,152,2,53,153,2,53,154,2,53,212,2,53,213,2,53,215,2,53,216,2,53,217,2,53,218,2,53,219,2,53,220,2,53,221,2,53,223,2,53,224,2,53,225,2,53,226,2,53,227,2,53,228,2,53,229,2,53,272,2,53,273,3,17,18,0,3,17,18,75,3,17,18,84,3,17,18,94,3,17,18,117,3,17,18,135,3,17,18,142,3,17,18,190,3,17,18,201,3,17,18,208,3,17,18,264,3,17,18,292,3,45,47,1,3,46,47,1,3,47,1,249,3,48,8,251,3,49,8,251,3,53,0,99,3,53,16,98,3,53,16,124,3,53,16,272,3,53,18,146,3,53,18,214,3,53,18,272,3,53,33,97,3,53,39,152,3,53,39,153,3,53,45,221,4,41,47,1,249,4,42,47,1,249,4,43,47,1,249,4,44,47,1,249,4,45,47,1,249,4,46,47,1,249,4,53,16,33,97,4,53,17,18,146,4,53,17,18,272,4,53,47,1,222,5,53,45,47,1,222,5,53,46,47,1,222")),function(e,t){e.$attr_accessor("_lex_trans_keys"),e.$private("_lex_trans_keys","_lex_trans_keys=")}(e.get_singleton_class(E)),E["$_lex_trans_keys="](e.large_array_unpack("0,0,0,127,0,127,0,127,0,127,0,127,0,127,0,127,58,58,58,58,46,46,0,127,58,58,60,60,62,62,10,10,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,115,115,99,99,117,117,101,101,108,116,101,101,115,115,115,115,105,105,108,108,105,105,108,108,58,58,0,127,10,10,0,127,9,92,10,10,9,92,58,58,98,98,101,101,103,103,105,105,110,110,0,127,61,61,9,92,9,92,9,92,9,92,9,92,10,10,0,127,0,127,61,126,93,93,0,127,0,127,10,10,34,34,10,10,39,39,0,127,10,96,96,96,0,127,0,127,0,127,0,127,0,127,0,127,58,58,58,58,0,127,43,57,48,57,48,57,48,57,48,57,115,115,99,99,117,117,101,101,99,99,117,117,101,101,0,127,58,58,9,92,9,92,9,92,9,92,9,92,9,92,60,60,10,10,9,92,9,92,10,10,10,10,10,10,10,10,46,46,101,101,103,103,105,105,110,110,69,69,78,78,68,68,95,95,95,95,0,26,0,0,36,64,0,127,48,57,0,127,0,127,0,127,0,127,9,32,0,0,61,126,10,10,10,10,0,127,0,127,48,57,115,115,38,38,42,42,64,64,58,58,60,61,62,62,61,126,61,61,61,62,0,127,0,127,0,127,0,127,0,127,0,127,0,127,93,93,10,10,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,124,124,0,127,0,127,9,32,10,10,10,10,46,46,10,10,0,0,0,127,0,127,61,61,0,0,9,32,0,0,61,126,10,10,10,10,38,38,42,42,64,64,60,61,62,62,61,126,61,61,61,62,0,127,93,93,10,10,124,124,0,126,0,127,0,61,9,61,9,61,0,0,9,61,9,62,46,46,46,46,58,58,9,32,0,0,0,127,0,0,9,124,0,0,10,10,10,10,0,0,9,61,58,58,60,60,62,62,9,32,10,10,0,127,102,102,101,101,110,110,104,104,0,127,0,127,0,127,0,0,0,127,10,10,0,123,9,32,10,10,10,10,10,10,0,0,111,111,0,0,0,127,0,127,9,32,0,0,10,10,10,10,10,10,0,0,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,58,61,0,0,61,126,61,61,0,0,0,0,0,0,9,32,61,61,9,32,61,126,10,10,10,10,0,127,38,61,0,0,42,61,61,61,9,92,9,92,9,92,46,46,46,46,10,10,0,26,0,127,0,127,61,61,0,0,61,126,61,62,0,0,0,0,0,0,0,0,61,126,0,127,48,57,38,38,42,42,64,64,60,61,62,62,61,61,61,62,0,127,48,57,0,127,124,124,64,64,60,61,0,0,10,34,10,39,96,96,62,62,61,126,61,62,0,26,0,127,0,127,0,127,0,0,10,10,0,0,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,61,126,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,0,61,124,0,92,9,32,0,0,10,10,10,10,10,10,0,0,0,127,0,127,9,32,0,0,10,10,10,10,10,10,0,0,0,127,0,127,61,61,0,0,9,32,0,0,61,126,10,10,10,10,0,127,0,127,48,57,61,61,38,61,0,0,0,0,42,61,61,62,46,57,46,46,10,10,48,101,48,95,46,120,48,114,43,57,48,105,102,102,0,0,101,105,0,0,0,0,48,114,48,114,48,114,48,114,105,114,102,102,0,0,101,105,115,115,0,0,0,0,48,114,48,114,48,114,48,114,48,114,48,114,48,114,48,114,46,114,48,114,46,114,48,114,58,58,60,61,62,62,61,126,61,61,61,62,0,127,0,127,0,0,0,127,0,127,0,127,0,127,0,127,0,127,0,0,10,10,0,0,0,0,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,9,92,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,0,61,124,0,0,9,92,9,92,9,92,46,46,46,46,10,10,46,46,10,10,10,61,10,10,10,101,10,110,10,100,10,10,0,95,9,32,0,0,10,10,10,10,98,98,9,32,10,10,95,95,0")),function(e,t){e.$attr_accessor("_lex_key_spans"),e.$private("_lex_key_spans","_lex_key_spans=")}(e.get_singleton_class(E)),E["$_lex_key_spans="](e.large_array_unpack("0,128,128,128,128,128,128,128,1,1,1,128,1,1,1,1,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,1,1,1,1,9,1,1,1,1,1,1,1,1,128,1,128,84,1,84,1,1,1,1,1,1,128,1,84,84,84,84,84,1,128,128,66,1,128,128,1,1,1,1,128,87,1,128,128,128,128,128,128,1,1,128,15,10,10,10,10,1,1,1,1,1,1,1,128,1,84,84,84,84,84,84,1,1,84,84,1,1,1,1,1,1,1,1,1,1,1,1,1,1,27,0,29,128,10,128,128,128,128,24,0,66,1,1,128,128,10,1,1,1,1,1,2,1,66,1,2,128,128,128,128,128,128,128,1,1,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,1,128,128,24,1,1,1,1,0,128,128,1,0,24,0,66,1,1,1,1,1,2,1,66,1,2,128,1,1,1,127,128,62,53,53,0,53,54,1,1,1,24,0,128,0,116,0,1,1,0,53,1,1,1,24,1,128,1,1,1,1,128,128,128,0,128,1,124,24,1,1,1,0,1,0,128,128,24,0,1,1,1,0,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,4,0,66,1,0,0,0,24,1,24,66,1,1,128,24,0,20,1,84,84,84,1,1,1,27,128,128,1,0,66,2,0,0,0,0,66,128,10,1,1,1,2,1,1,2,128,10,128,1,1,2,0,25,30,1,1,66,2,27,128,128,128,0,1,0,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,66,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,0,64,93,24,0,1,1,1,0,128,128,24,0,1,1,1,0,128,128,1,0,24,0,66,1,1,128,128,10,1,24,0,0,20,2,12,1,1,54,48,75,67,15,58,1,0,5,0,0,67,67,67,67,10,1,0,5,1,0,0,67,67,67,67,67,67,67,67,69,67,69,67,1,2,1,66,1,2,128,128,0,128,128,128,128,128,128,0,1,0,0,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,84,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,0,64,0,84,84,84,1,1,1,1,1,52,1,92,101,91,1,96,24,0,1,1,1,24,1,1")),function(e,t){e.$attr_accessor("_lex_index_offsets"),e.$private("_lex_index_offsets","_lex_index_offsets=")}(e.get_singleton_class(E)),E["$_lex_index_offsets="](e.large_array_unpack("0,0,129,258,387,516,645,774,903,905,907,909,1038,1040,1042,1044,1046,1175,1304,1433,1562,1691,1820,1949,2078,2207,2336,2465,2594,2723,2852,2981,3110,3239,3368,3370,3372,3374,3376,3386,3388,3390,3392,3394,3396,3398,3400,3402,3531,3533,3662,3747,3749,3834,3836,3838,3840,3842,3844,3846,3975,3977,4062,4147,4232,4317,4402,4404,4533,4662,4729,4731,4860,4989,4991,4993,4995,4997,5126,5214,5216,5345,5474,5603,5732,5861,5990,5992,5994,6123,6139,6150,6161,6172,6183,6185,6187,6189,6191,6193,6195,6197,6326,6328,6413,6498,6583,6668,6753,6838,6840,6842,6927,7012,7014,7016,7018,7020,7022,7024,7026,7028,7030,7032,7034,7036,7038,7040,7068,7069,7099,7228,7239,7368,7497,7626,7755,7780,7781,7848,7850,7852,7981,8110,8121,8123,8125,8127,8129,8131,8134,8136,8203,8205,8208,8337,8466,8595,8724,8853,8982,9111,9113,9115,9244,9373,9502,9631,9760,9889,10018,10147,10276,10405,10534,10663,10792,10921,11050,11179,11308,11437,11566,11695,11824,11953,12082,12211,12340,12469,12598,12727,12856,12985,13114,13243,13372,13501,13630,13759,13888,14017,14146,14275,14404,14533,14662,14791,14920,15049,15178,15307,15436,15565,15694,15823,15952,16081,16210,16339,16468,16597,16726,16855,16984,17113,17242,17371,17500,17629,17758,17887,18016,18145,18274,18403,18532,18661,18790,18919,19048,19177,19306,19435,19564,19693,19822,19824,19953,20082,20107,20109,20111,20113,20115,20116,20245,20374,20376,20377,20402,20403,20470,20472,20474,20476,20478,20480,20483,20485,20552,20554,20557,20686,20688,20690,20692,20820,20949,21012,21066,21120,21121,21175,21230,21232,21234,21236,21261,21262,21391,21392,21509,21510,21512,21514,21515,21569,21571,21573,21575,21600,21602,21731,21733,21735,21737,21739,21868,21997,22126,22127,22256,22258,22383,22408,22410,22412,22414,22415,22417,22418,22547,22676,22701,22702,22704,22706,22708,22709,22838,22967,23096,23225,23354,23483,23612,23741,23870,23999,24128,24257,24386,24515,24644,24773,24902,25031,25036,25037,25104,25106,25107,25108,25109,25134,25136,25161,25228,25230,25232,25361,25386,25387,25408,25410,25495,25580,25665,25667,25669,25671,25699,25828,25957,25959,25960,26027,26030,26031,26032,26033,26034,26101,26230,26241,26243,26245,26247,26250,26252,26254,26257,26386,26397,26526,26528,26530,26533,26534,26560,26591,26593,26595,26662,26665,26693,26822,26951,27080,27081,27083,27084,27213,27342,27471,27600,27729,27858,27987,28116,28245,28374,28503,28632,28761,28890,29019,29148,29277,29406,29535,29664,29793,29922,30051,30180,30309,30438,30567,30696,30825,30954,31083,31212,31341,31470,31599,31728,31857,31986,32115,32244,32373,32502,32631,32760,32889,33018,33147,33276,33405,33534,33663,33792,33921,34050,34179,34308,34437,34566,34695,34824,34953,35020,35149,35278,35407,35536,35665,35794,35923,36052,36181,36310,36439,36568,36697,36826,36955,37084,37213,37342,37471,37600,37729,37858,37987,38116,38245,38246,38311,38405,38430,38431,38433,38435,38437,38438,38567,38696,38721,38722,38724,38726,38728,38729,38858,38987,38989,38990,39015,39016,39083,39085,39087,39216,39345,39356,39358,39383,39384,39385,39406,39409,39422,39424,39426,39481,39530,39606,39674,39690,39749,39751,39752,39758,39759,39760,39828,39896,39964,40032,40043,40045,40046,40052,40054,40055,40056,40124,40192,40260,40328,40396,40464,40532,40600,40670,40738,40808,40876,40878,40881,40883,40950,40952,40955,41084,41213,41214,41343,41472,41601,41730,41859,41988,41989,41991,41992,41993,42122,42251,42380,42509,42638,42767,42896,43025,43154,43283,43412,43541,43670,43799,43928,44057,44186,44315,44444,44573,44702,44831,44960,45089,45218,45347,45476,45605,45734,45863,45992,46121,46250,46379,46508,46637,46766,46851,46980,47109,47238,47367,47496,47625,47754,47883,48012,48141,48270,48399,48528,48657,48786,48915,49044,49173,49302,49431,49560,49689,49818,49947,50076,50205,50334,50463,50592,50721,50850,50979,51108,51237,51366,51495,51624,51753,51882,52011,52140,52269,52398,52527,52656,52785,52914,53043,53172,53301,53430,53559,53688,53817,53946,54075,54204,54333,54462,54591,54720,54849,54978,55107,55236,55237,55302,55303,55388,55473,55558,55560,55562,55564,55566,55568,55621,55623,55716,55818,55910,55912,56009,56034,56035,56037,56039,56041,56066,56068")),function(e,t){e.$attr_accessor("_lex_indicies"),e.$private("_lex_indicies","_lex_indicies=")}(e.get_singleton_class(E)),E["$_lex_indicies="](e.large_array_unpack("2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,2,1,2,1,1,2,2,1,1,1,3,1,1,4,4,4,4,4,4,4,4,4,4,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1,2,2,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,1,2,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,5,5,5,5,5,5,5,5,5,5,2,2,2,2,2,2,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,2,2,2,2,5,2,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,2,2,2,2,2,5,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,7,7,7,7,7,7,7,7,7,7,2,2,2,2,2,2,2,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,2,2,2,2,7,2,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,2,2,2,2,2,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9,9,9,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,8,8,8,8,9,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,8,8,8,8,8,9,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,10,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,14,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,13,13,13,13,13,13,13,13,15,12,12,12,12,14,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12,12,12,12,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12,12,12,12,12,13,15,12,12,16,17,12,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,20,18,18,18,18,18,18,18,18,18,18,18,18,18,18,19,19,19,19,19,19,19,19,19,19,21,18,18,18,18,20,18,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,18,18,18,18,19,18,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,18,18,18,18,18,19,21,18,23,22,24,22,25,22,22,22,22,22,22,22,22,22,22,27,22,27,27,27,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,27,22,22,22,22,28,29,22,30,22,31,32,33,34,35,28,22,22,22,22,22,22,22,22,22,22,36,22,37,33,38,39,22,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,40,41,33,42,26,22,26,26,26,26,26,26,26,26,43,26,26,26,26,26,26,26,26,44,26,26,45,26,46,26,26,26,47,48,22,42,22,26,22,22,22,22,22,22,22,22,22,49,22,49,49,49,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,49,22,22,22,22,50,51,22,52,22,53,54,55,56,57,50,22,22,22,22,22,22,22,22,22,22,58,22,59,55,60,61,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,62,63,55,24,19,22,19,19,19,19,19,19,19,19,64,19,19,19,19,19,19,19,19,65,19,19,66,19,67,19,19,19,68,69,22,24,22,19,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,19,22,19,19,19,19,19,70,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,22,19,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,19,22,19,19,19,19,71,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,22,19,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,19,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,72,19,19,19,19,19,19,19,22,22,22,22,22,19,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,19,22,19,19,73,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,22,19,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,19,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,74,19,19,19,19,19,22,22,22,22,22,19,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,19,22,19,19,19,19,70,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,22,19,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,19,22,19,19,19,19,19,19,19,19,19,19,19,19,19,75,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,22,19,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,19,22,19,19,19,19,19,19,19,19,19,19,19,76,19,19,19,19,19,19,19,77,19,19,19,19,19,19,22,22,22,22,22,19,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,19,22,19,19,19,19,78,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,22,19,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,19,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,79,19,19,19,19,19,19,19,22,22,22,22,22,19,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,19,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,70,19,19,19,19,19,19,19,22,22,22,22,22,19,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,19,22,19,19,19,19,19,19,19,19,80,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,22,19,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,19,22,19,19,19,19,19,19,19,19,19,19,19,70,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,22,19,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,19,22,19,19,19,19,19,19,19,81,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,22,19,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,19,22,19,19,19,19,19,19,19,19,82,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,22,19,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,19,22,19,19,19,19,19,19,19,19,19,19,19,74,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,22,19,84,83,85,83,86,83,55,83,87,83,83,83,83,83,83,83,88,83,89,83,90,83,55,83,91,83,55,83,92,83,86,83,94,93,95,95,95,95,95,95,95,95,95,97,95,97,97,97,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,97,95,95,95,95,95,95,95,98,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,95,99,95,95,96,95,96,96,96,100,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,95,95,95,95,95,96,101,95,95,95,95,95,95,95,95,95,95,103,95,103,103,103,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,103,95,95,95,95,95,95,95,104,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,95,105,95,95,102,95,102,102,102,106,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,95,95,95,95,95,102,108,107,108,108,108,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,108,107,107,107,107,107,107,107,109,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,110,107,111,107,112,107,112,112,112,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,112,107,107,107,107,107,107,107,113,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,114,107,115,116,118,117,119,117,120,117,121,117,122,117,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,123,123,123,123,123,123,123,123,123,123,124,124,124,124,124,124,124,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,124,124,124,124,124,124,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,124,124,124,124,124,123,125,115,126,127,126,126,126,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,126,115,115,128,115,115,115,115,115,115,115,115,115,115,115,115,129,129,129,129,129,129,129,129,129,129,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,130,115,131,132,131,131,131,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,131,115,115,133,115,115,115,115,115,115,115,115,115,115,115,115,134,134,134,134,134,134,134,134,134,134,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,135,115,137,138,137,137,137,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,137,136,136,139,136,136,136,136,136,136,136,136,136,136,136,136,140,140,140,140,140,140,140,140,140,140,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,141,136,143,144,143,143,143,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,143,142,142,145,142,142,142,142,142,142,142,142,142,142,142,142,146,146,146,146,146,146,146,146,146,146,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,147,142,143,148,143,143,143,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,143,142,142,145,142,142,142,142,142,142,142,142,142,142,142,142,146,146,146,146,146,146,146,146,146,146,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,147,142,127,115,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,151,151,149,151,149,151,151,149,149,151,151,151,152,151,151,153,153,153,153,153,153,153,153,153,153,151,151,151,151,151,151,151,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,149,151,149,149,150,151,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,149,149,149,151,149,150,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,151,151,151,151,151,151,151,151,151,151,149,149,149,149,149,149,149,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,149,149,149,149,151,149,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,149,149,149,149,149,151,154,151,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,151,149,154,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,156,149,149,149,149,157,149,149,149,149,149,158,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,125,149,149,149,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,149,149,149,149,155,159,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,149,149,149,158,149,155,161,161,161,161,161,161,161,161,161,161,162,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,160,160,160,160,160,160,160,160,160,160,161,161,161,161,161,161,161,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,161,161,161,161,160,161,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,161,161,161,161,161,160,164,163,167,166,162,161,167,168,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,156,149,149,149,149,157,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,149,149,149,149,155,159,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,149,149,149,149,149,155,170,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,167,169,167,170,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,172,115,115,115,115,115,115,115,115,115,115,115,115,115,115,171,171,171,171,171,171,171,171,171,171,173,115,115,174,115,172,115,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,115,115,115,115,171,115,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,115,115,115,115,115,171,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,172,149,149,149,149,149,149,149,149,149,149,149,149,149,149,171,171,171,171,171,171,171,171,171,171,173,149,149,174,149,172,149,171,171,171,171,171,171,175,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,149,149,149,149,171,149,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,149,149,149,149,149,171,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,172,149,149,149,149,149,149,149,149,149,149,149,149,149,149,171,171,171,171,171,171,171,171,171,171,173,149,149,174,149,172,149,171,171,171,171,171,171,171,171,176,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,149,149,149,149,171,149,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,149,149,149,149,149,171,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,172,149,149,149,149,149,149,149,149,149,149,149,149,149,149,171,171,171,171,171,171,171,171,171,171,173,149,149,174,149,172,149,171,171,171,171,171,171,171,171,171,171,171,171,171,177,171,171,171,171,171,171,171,171,171,171,171,171,149,149,149,149,171,149,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,149,149,149,149,149,171,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,172,149,149,149,149,149,149,149,149,149,149,149,149,149,149,171,171,171,171,171,171,171,171,171,171,173,149,149,174,149,172,149,171,171,171,177,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,149,149,149,149,171,149,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,149,149,149,149,149,171,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,180,178,178,178,178,178,178,178,178,178,178,178,178,178,178,179,179,179,179,179,179,179,179,179,179,181,178,178,178,178,180,178,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,178,178,178,178,179,178,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,178,178,178,178,178,179,181,178,178,182,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,184,184,184,184,184,184,184,184,184,184,183,183,183,183,183,183,183,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,183,183,183,183,184,183,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,183,183,183,183,183,184,186,185,186,185,185,187,187,187,187,187,187,187,187,187,187,185,187,187,187,187,187,187,187,187,187,187,185,188,188,188,188,188,188,188,188,188,188,185,190,190,190,190,190,190,190,190,190,190,189,191,191,191,191,191,191,191,191,191,191,189,193,192,194,192,195,192,196,192,198,197,199,197,200,197,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,201,201,201,201,201,201,201,201,201,201,183,183,183,183,183,183,183,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,183,183,183,183,201,183,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,183,183,183,183,183,201,202,189,203,204,203,203,203,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,203,189,189,205,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,206,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,207,189,208,209,208,208,208,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,208,189,189,210,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,211,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,212,189,214,215,214,214,214,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,214,213,213,216,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,217,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,218,213,220,221,220,220,220,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,220,219,219,222,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,223,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,224,219,220,221,220,220,220,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,220,219,219,222,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,225,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,224,219,220,226,220,220,220,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,220,219,219,222,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,223,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,224,219,227,189,204,189,229,230,229,229,229,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,229,228,228,231,228,228,232,228,228,228,228,228,228,228,233,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,234,228,236,230,236,236,236,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,236,235,235,231,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,234,235,239,238,241,240,242,237,243,237,244,228,246,245,247,245,248,245,249,245,250,245,251,245,252,245,253,245,254,245,255,245,245,245,255,245,245,245,245,245,256,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,255,245,257,258,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,259,2,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,0,0,0,0,0,0,0,0,0,0,260,260,260,260,260,260,260,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,260,260,260,260,0,260,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,260,260,260,260,260,0,4,4,4,4,4,4,4,4,4,4,260,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,5,5,5,5,5,5,5,5,5,5,261,261,261,261,261,261,261,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,261,261,261,261,5,261,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,261,261,261,261,261,5,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,7,7,7,7,7,7,7,7,7,7,262,262,262,262,262,262,262,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,262,262,262,262,7,262,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,262,262,262,262,262,7,264,265,265,265,264,265,265,265,265,266,267,266,266,266,265,265,265,265,265,265,265,265,265,265,265,265,264,265,265,265,265,265,266,268,265,269,270,271,272,265,265,265,273,274,265,274,265,275,265,265,265,265,265,265,265,265,265,265,276,265,277,278,279,265,265,280,281,280,280,282,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,283,284,265,275,285,275,286,287,288,289,290,291,263,263,292,263,263,263,293,294,295,263,263,296,297,298,299,263,300,263,301,263,265,302,265,274,265,263,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,304,303,303,303,303,303,303,303,303,303,303,303,303,303,303,263,263,263,263,263,263,263,263,263,263,303,303,303,304,303,304,303,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,303,303,303,303,263,303,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,303,303,303,303,303,263,266,305,266,266,266,305,305,305,305,305,305,305,305,305,305,305,305,305,305,305,305,305,305,266,305,306,275,307,307,275,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,275,307,308,309,310,311,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,9,9,312,9,312,9,9,312,312,9,9,9,314,9,9,315,315,315,315,315,315,315,315,315,315,9,9,9,9,9,9,9,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,312,9,312,312,313,9,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,312,312,312,9,312,313,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,313,313,313,313,313,313,313,313,313,313,316,316,316,316,316,316,316,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,316,316,316,316,313,316,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,316,316,316,316,316,313,315,315,315,315,315,315,315,315,315,315,316,317,307,275,307,275,307,275,307,319,318,275,320,307,275,307,321,275,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,275,312,275,307,275,275,307,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,304,303,303,303,303,303,303,303,303,303,303,303,303,303,303,280,280,280,280,280,280,280,280,280,280,303,303,303,304,303,304,303,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,303,303,303,303,280,303,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,303,303,303,303,303,280,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,304,322,322,322,322,322,322,322,322,322,322,322,322,322,322,280,280,280,280,280,280,280,280,280,280,322,322,322,304,322,304,322,280,280,280,280,323,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,322,322,322,322,280,322,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,322,322,322,322,322,280,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,304,322,322,322,322,322,322,322,322,322,322,322,322,322,322,280,280,280,280,280,280,280,280,280,280,322,322,322,304,322,304,322,280,280,280,280,280,280,324,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,322,322,322,322,280,322,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,322,322,322,322,322,280,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,304,322,322,322,322,322,322,322,322,322,322,322,322,322,322,280,280,280,280,280,280,280,280,280,280,322,322,322,304,322,304,322,280,280,280,280,280,280,280,280,325,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,322,322,322,322,280,322,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,322,322,322,322,322,280,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,304,322,322,322,322,322,322,322,322,322,322,322,322,322,322,280,280,280,280,280,280,280,280,280,280,322,322,322,304,322,304,322,280,280,280,280,280,280,280,280,280,280,280,280,280,326,280,280,280,280,280,280,280,280,280,280,280,280,322,322,322,322,280,322,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,322,322,322,322,322,280,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,304,322,322,322,322,322,322,322,322,322,322,322,322,322,322,280,280,280,280,280,280,280,280,280,280,322,322,322,304,322,304,322,280,280,280,280,280,280,280,280,280,280,280,280,280,327,280,280,280,280,280,280,280,280,280,280,280,280,322,322,322,322,280,322,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,322,322,322,322,322,280,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,304,322,322,322,322,322,322,322,322,322,322,322,322,322,322,280,280,280,280,280,280,280,280,280,280,322,322,322,304,322,304,322,280,280,280,326,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,322,322,322,322,280,322,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,322,322,322,322,322,280,321,312,267,312,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,329,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,330,331,263,263,263,263,263,332,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,333,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,334,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,335,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,336,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,337,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,338,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,339,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,340,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,341,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,342,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,343,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,339,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,344,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,343,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,345,263,346,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,347,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,348,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,341,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,341,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,349,263,263,263,263,263,263,263,263,263,263,263,263,350,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,351,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,352,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,341,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,353,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,354,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,341,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,355,263,263,263,263,263,263,263,263,263,263,356,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,357,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,341,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,358,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,348,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,359,263,263,263,263,263,263,263,263,263,341,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,360,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,304,361,361,361,361,361,361,361,361,361,361,361,361,361,361,263,263,263,263,263,263,263,263,263,263,361,361,361,304,361,304,361,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,361,361,361,361,263,361,263,263,263,263,263,263,263,263,362,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,361,361,361,361,361,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,363,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,364,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,365,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,366,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,367,263,368,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,369,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,341,263,263,263,370,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,341,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,341,263,263,263,263,263,263,263,263,263,263,263,263,263,263,371,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,372,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,357,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,373,263,263,263,263,263,263,263,263,263,263,263,263,263,295,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,355,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,341,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,341,263,263,263,263,263,263,263,341,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,374,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,375,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,376,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,357,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,377,263,263,263,378,263,263,263,263,263,379,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,379,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,341,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,341,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,380,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,381,263,263,263,263,263,263,263,263,263,263,263,263,263,263,382,383,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,341,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,384,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,357,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,385,263,263,386,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,341,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,352,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,387,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,388,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,370,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,389,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,295,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,390,263,263,263,263,263,263,263,263,263,384,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,352,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,391,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,392,263,263,263,263,263,263,263,393,263,263,263,263,263,263,263,394,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,370,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,358,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,378,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,395,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,352,263,263,263,376,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,396,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,397,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,346,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,275,307,399,400,400,400,399,400,400,400,400,401,400,401,401,401,400,400,400,400,400,400,400,400,400,400,400,400,399,400,400,400,400,400,401,400,400,402,400,400,400,400,400,400,400,400,400,400,403,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,400,404,400,400,398,400,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,400,400,400,400,400,398,405,405,405,405,405,405,405,405,405,405,405,405,405,405,405,405,405,405,405,405,405,405,405,405,405,405,405,405,405,405,405,405,405,14,405,405,405,405,405,405,405,405,405,405,405,405,405,405,13,13,13,13,13,13,13,13,13,13,15,405,405,405,405,14,405,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,405,405,405,405,13,405,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,405,405,405,405,405,13,401,406,401,401,401,406,406,406,406,406,406,406,406,406,406,406,406,406,406,406,406,406,406,401,406,407,408,409,410,411,405,412,405,413,415,416,416,416,415,416,416,416,416,417,418,417,417,417,416,416,416,416,416,416,416,416,416,416,416,416,415,416,416,416,416,416,417,419,416,420,416,421,422,416,416,416,423,424,416,424,416,421,416,416,416,416,416,416,416,416,416,416,416,416,425,426,427,416,416,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,429,430,416,421,414,421,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,416,431,416,424,416,414,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,433,432,432,432,432,432,432,432,432,432,432,432,432,432,432,414,414,414,414,414,414,414,414,414,414,432,432,432,432,432,433,432,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,432,432,432,432,414,432,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,432,432,432,432,432,414,435,434,436,417,437,417,417,417,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,417,437,438,421,439,439,421,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,421,439,440,441,442,443,421,439,421,439,421,439,421,444,439,421,439,446,421,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,421,445,421,439,421,421,439,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,433,447,447,447,447,447,447,447,447,447,447,447,447,447,447,428,428,428,428,428,428,428,428,428,428,447,447,447,447,447,433,447,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,447,447,447,447,428,447,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,447,447,447,447,447,428,446,445,418,445,421,439,449,448,448,448,449,448,448,448,448,450,451,450,450,450,448,448,448,448,448,448,448,448,448,448,448,448,449,448,448,448,448,448,450,448,448,452,448,24,453,448,454,448,455,24,55,456,57,24,448,448,448,448,448,448,448,448,448,448,457,448,458,55,459,460,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,55,461,55,24,448,448,448,448,448,448,448,448,448,448,462,448,448,448,448,448,448,448,448,463,448,448,464,448,465,448,448,448,68,69,448,24,448,466,466,466,466,466,466,466,466,466,450,466,450,450,450,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,450,466,466,466,466,50,51,466,52,466,53,54,55,56,57,50,466,466,466,466,466,466,466,466,466,466,58,466,59,55,60,61,466,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,62,63,55,24,19,466,19,19,19,19,19,19,19,19,64,19,19,19,19,19,19,19,19,65,19,19,66,19,67,19,19,19,68,69,466,24,466,19,467,468,468,468,467,468,468,468,468,55,469,55,55,55,468,468,468,468,468,468,468,468,468,468,468,468,467,468,468,468,468,468,55,468,468,468,468,468,468,468,468,468,468,468,468,468,468,468,468,468,468,468,468,468,468,468,468,468,468,468,468,55,468,55,469,55,55,55,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,55,18,18,18,18,18,24,18,18,18,18,18,18,18,55,18,18,18,18,18,18,18,18,18,18,18,18,18,18,55,18,55,469,55,55,55,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,55,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,55,18,470,55,469,55,55,55,471,471,471,471,471,471,471,471,471,471,471,471,471,471,471,471,471,471,55,471,471,471,471,471,471,471,471,471,472,471,471,471,471,471,471,471,471,471,471,471,471,471,471,471,471,471,471,55,471,55,469,55,55,55,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,55,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,55,55,18,473,467,55,467,475,474,477,478,477,477,477,476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,477,476,479,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,20,467,467,467,467,467,467,467,467,467,467,467,467,467,467,19,19,19,19,19,19,19,19,19,19,21,467,467,467,467,20,467,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,467,467,467,467,19,467,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,467,467,467,467,467,19,480,55,469,55,55,55,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,55,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,55,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,24,467,481,482,483,484,485,486,55,469,55,55,55,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,55,467,467,467,467,467,467,467,467,467,24,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,55,467,55,474,24,487,24,487,488,489,488,488,488,476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,488,476,490,487,491,491,491,491,491,491,491,491,491,27,491,27,27,27,491,491,491,491,491,491,491,491,491,491,491,491,491,491,491,491,491,491,27,491,491,491,491,28,29,491,30,491,31,32,33,34,35,28,491,491,491,491,491,491,491,491,491,491,36,491,37,33,38,39,491,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,40,41,33,42,26,491,26,26,26,26,26,26,26,26,43,26,26,26,26,26,26,26,26,44,26,26,45,26,46,26,26,26,47,48,491,42,491,26,55,487,492,487,493,487,494,487,495,94,94,94,495,94,94,94,94,496,94,496,496,496,94,94,94,94,94,94,94,94,94,94,94,94,495,94,94,94,94,94,496,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,94,497,94,94,96,94,96,96,96,100,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,94,94,94,94,94,96,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,498,93,93,93,93,93,93,93,93,93,93,93,93,93,93,96,96,96,96,96,96,96,96,96,96,94,93,93,93,93,498,93,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,93,93,93,93,96,93,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,93,93,93,93,93,96,499,499,499,499,499,499,499,499,499,97,499,97,97,97,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,97,499,499,499,499,499,499,499,98,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,499,99,499,499,96,499,96,96,96,100,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,499,499,499,499,499,96,500,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,498,499,499,499,499,499,499,499,499,499,499,499,499,499,499,96,96,96,96,96,96,96,96,96,96,94,499,499,499,499,498,499,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,499,499,499,499,96,499,96,96,96,96,96,96,96,96,96,96,96,96,96,96,501,96,96,96,96,96,96,96,96,96,96,96,499,499,499,499,499,96,101,499,503,502,502,502,503,502,502,502,502,504,502,504,504,504,502,502,502,502,502,502,502,502,502,502,502,502,503,502,502,502,502,502,504,502,502,505,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,506,502,502,502,502,502,502,502,507,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,508,502,504,509,504,504,504,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,504,509,510,511,512,513,515,514,516,517,514,518,520,521,521,521,520,521,521,521,521,522,523,522,522,522,521,521,521,521,521,521,521,521,521,521,521,521,520,521,521,521,521,521,522,521,521,524,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,521,525,521,521,519,521,519,519,519,519,519,519,519,519,526,519,519,519,519,519,519,519,519,527,519,519,528,519,529,519,519,519,521,521,521,521,521,519,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,519,519,519,519,519,519,519,519,519,519,530,530,530,530,530,530,530,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,530,530,530,530,519,530,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,530,530,530,530,530,519,522,531,522,522,522,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,522,531,532,533,534,535,536,538,537,539,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,519,540,519,519,519,519,519,541,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,519,540,519,519,519,519,542,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,519,540,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,543,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,519,540,519,519,544,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,519,540,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,545,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,519,540,519,519,519,519,541,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,519,540,519,519,519,519,519,519,519,519,519,519,519,519,519,546,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,519,540,519,519,519,519,519,519,519,519,519,519,519,547,519,519,519,519,519,519,519,548,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,519,540,519,519,519,519,549,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,519,540,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,550,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,519,540,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,541,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,519,540,519,519,519,519,519,519,519,519,551,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,519,540,519,519,519,519,519,519,519,519,519,519,519,541,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,519,540,519,519,519,519,519,519,519,552,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,519,540,519,519,519,519,519,519,519,519,553,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,519,540,519,519,519,519,519,519,519,519,519,519,519,545,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,519,555,125,125,125,555,125,125,125,125,556,557,556,556,556,125,125,125,125,125,125,125,125,125,125,125,125,555,125,125,125,125,125,556,558,125,559,125,560,561,125,562,125,563,564,125,565,566,567,125,125,125,125,125,125,125,125,125,125,568,125,569,570,571,572,125,573,574,573,573,575,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,576,577,125,578,579,125,580,581,582,583,584,585,554,554,586,554,554,554,587,588,589,554,554,590,591,592,593,554,594,554,595,554,596,597,125,578,125,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,602,601,601,603,601,604,606,607,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,608,605,610,609,611,612,613,556,614,556,556,556,614,614,614,614,614,614,614,614,614,614,614,614,614,614,614,614,614,614,556,614,616,615,618,619,618,618,618,617,617,617,617,617,617,617,617,617,617,617,617,617,617,617,617,617,617,618,617,125,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,125,620,621,622,623,624,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,625,625,625,625,625,625,625,625,625,625,626,626,626,626,626,626,626,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,626,626,626,626,626,626,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,626,626,626,626,626,625,629,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,125,628,630,632,631,631,631,631,631,631,631,631,631,631,631,631,631,631,631,631,631,631,125,631,125,115,126,127,126,126,126,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,126,628,628,128,628,628,628,628,628,628,628,628,628,628,628,628,129,129,129,129,129,129,129,129,129,129,628,628,628,125,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,130,628,143,144,143,143,143,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,143,142,142,145,142,142,142,142,142,142,142,142,142,142,142,142,146,146,146,146,146,146,146,146,146,146,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,147,142,126,127,126,126,126,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,126,628,628,128,628,628,628,628,628,628,628,628,628,628,628,628,129,129,129,129,129,129,129,129,129,129,628,628,628,125,125,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,130,628,634,620,636,635,638,637,620,639,639,639,620,639,639,639,639,639,639,639,639,639,639,639,639,639,639,639,639,639,639,639,639,639,620,639,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,641,642,620,643,151,644,642,620,620,645,646,620,646,620,151,620,620,620,620,620,620,620,620,620,620,647,620,648,649,650,620,651,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,652,620,620,151,640,151,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,620,653,620,654,620,640,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,656,655,655,655,655,655,655,655,655,655,655,655,655,655,655,640,640,640,640,640,640,640,640,640,640,655,655,655,657,655,656,655,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,655,655,655,655,640,655,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,655,655,655,655,655,640,659,658,660,662,663,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,664,661,666,667,665,668,669,670,671,151,655,655,672,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,151,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,150,150,150,150,150,150,150,150,150,150,655,655,655,655,655,655,655,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,655,655,655,655,150,655,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,655,655,655,655,655,150,153,153,153,153,153,153,153,153,153,153,655,673,655,151,655,151,655,151,674,655,151,655,151,655,151,151,655,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,677,677,677,677,677,677,677,677,677,677,675,675,675,675,675,675,678,676,676,676,676,676,676,676,676,676,676,676,676,676,676,676,676,676,676,676,676,676,676,676,676,676,676,675,675,675,675,676,675,676,676,676,676,676,676,676,676,676,676,676,676,676,676,676,676,676,676,676,676,676,676,676,676,676,676,675,675,675,675,675,676,680,680,680,680,680,680,680,680,680,680,679,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,683,683,683,683,683,683,683,683,683,683,681,681,681,681,681,681,681,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,681,681,681,681,682,681,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,681,681,681,681,681,682,673,655,672,655,684,685,620,686,166,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,167,156,168,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,167,157,167,170,125,620,578,125,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,125,620,125,629,620,690,689,689,689,690,689,689,689,689,689,689,689,689,689,689,689,689,689,689,689,689,689,689,689,689,689,690,689,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,172,115,115,115,115,115,115,115,115,115,115,115,115,115,115,171,171,171,171,171,171,171,171,171,171,173,115,115,174,115,172,115,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,115,115,115,115,171,115,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,115,115,115,115,115,171,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,172,620,620,620,620,620,620,620,620,620,620,620,620,620,620,171,171,171,171,171,171,171,171,171,171,173,620,620,174,620,172,620,171,171,171,171,691,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,620,620,620,620,171,620,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,620,620,620,620,620,171,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,172,620,620,620,620,620,620,620,620,620,620,620,620,620,620,171,171,171,171,171,171,171,171,171,171,173,620,620,174,620,172,620,171,171,171,171,171,171,171,171,171,171,171,171,171,692,171,171,171,171,171,171,171,171,171,171,171,171,620,620,620,620,171,620,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,620,620,620,620,620,171,693,694,620,615,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,695,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,696,697,554,554,554,554,554,698,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,699,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,700,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,701,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,702,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,703,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,704,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,705,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,706,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,707,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,172,115,115,115,115,115,115,115,115,115,115,115,115,115,115,554,554,554,554,554,554,554,554,554,554,173,115,115,174,115,172,115,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,115,115,115,115,554,115,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,115,115,115,115,115,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,708,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,709,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,705,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,710,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,709,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,711,554,712,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,713,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,714,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,707,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,707,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,715,554,554,554,554,554,554,554,554,554,554,554,554,716,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,717,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,718,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,707,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,719,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,720,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,707,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,721,554,554,554,554,554,554,554,554,554,554,722,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,723,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,707,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,724,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,714,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,725,554,554,554,554,554,554,554,554,554,707,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,707,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,726,554,727,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,728,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,707,554,554,554,725,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,707,554,554,554,554,554,554,554,554,554,554,554,554,554,554,729,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,730,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,723,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,731,554,554,554,554,554,554,554,554,554,554,554,554,554,589,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,721,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,707,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,732,554,554,554,554,554,554,554,707,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,733,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,734,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,735,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,723,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,736,554,554,554,737,554,554,554,554,554,738,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,738,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,707,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,707,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,739,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,740,554,554,554,554,554,554,554,554,554,554,554,554,554,554,741,742,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,707,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,743,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,744,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,745,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,748,746,746,746,746,746,746,746,746,746,746,746,746,746,746,747,747,747,747,747,747,747,747,747,747,749,746,746,750,746,748,746,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,746,746,746,746,747,746,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,746,746,746,746,746,747,606,751,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,608,605,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,752,554,554,753,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,707,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,718,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,754,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,755,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,725,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,756,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,589,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,757,554,554,554,554,554,554,554,554,554,758,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,718,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,723,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,759,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,760,554,554,554,554,554,554,554,761,554,554,554,554,554,554,554,762,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,725,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,763,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,764,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,732,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,765,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,732,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,766,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,718,554,554,554,767,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,768,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,732,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,769,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,770,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,712,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,771,125,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,772,620,774,773,773,773,774,773,773,773,773,775,776,775,775,775,773,773,773,773,773,773,773,773,773,773,773,773,774,773,773,773,773,773,775,773,773,777,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,778,773,775,779,775,775,775,779,779,779,779,779,779,779,779,779,779,779,779,779,779,779,779,779,779,775,779,780,781,782,783,784,786,785,787,789,790,790,790,789,790,790,790,790,791,792,791,791,791,790,790,790,790,790,790,790,790,790,790,790,790,789,790,790,790,790,790,791,790,793,794,790,790,790,793,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,790,795,790,790,788,790,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,790,790,790,790,790,788,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,180,796,796,796,796,796,796,796,796,796,796,796,796,796,796,179,179,179,179,179,179,179,179,179,179,181,796,796,796,796,180,796,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,796,796,796,796,179,796,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,796,796,796,796,796,179,791,797,791,791,791,797,797,797,797,797,797,797,797,797,797,797,797,797,797,797,797,797,797,791,797,798,799,800,801,802,803,796,804,806,807,807,807,806,807,807,807,807,808,809,808,808,808,807,807,807,807,807,807,807,807,807,807,807,807,806,807,807,807,807,807,808,810,811,812,813,814,815,811,816,817,818,814,819,820,821,814,822,823,823,823,823,823,823,823,823,823,824,825,826,827,828,829,830,831,832,831,831,833,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,834,835,836,814,837,811,838,839,840,841,842,843,805,805,844,805,805,805,845,846,847,805,805,848,849,850,851,805,852,805,853,805,854,855,856,857,807,805,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,858,189,189,189,189,189,189,189,189,189,189,189,189,189,189,805,805,805,805,805,805,805,805,805,805,189,189,189,189,189,858,189,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,189,189,189,189,805,189,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,189,189,189,189,189,805,860,859,861,808,862,808,808,808,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,808,862,863,865,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,865,864,866,867,868,869,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,184,184,870,184,870,184,184,870,870,184,184,184,871,184,184,872,872,872,872,872,872,872,872,872,872,184,184,184,184,184,184,184,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,870,184,870,870,201,184,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,870,870,870,184,870,201,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,201,201,201,201,201,201,201,201,201,201,873,873,873,873,873,873,873,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,873,873,873,873,201,873,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,873,873,873,873,873,201,872,872,872,872,872,872,872,872,872,872,873,874,189,814,875,875,875,875,875,875,875,876,875,875,875,875,875,875,875,875,875,875,875,875,875,875,874,875,877,878,814,879,879,879,879,879,879,879,879,879,879,879,879,879,879,879,879,879,879,874,879,874,880,875,882,881,188,188,188,188,188,188,188,188,188,188,881,884,883,885,883,188,188,188,188,188,188,188,188,188,188,886,886,886,886,886,886,886,886,886,886,886,887,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,888,886,886,886,886,886,887,886,187,187,187,187,187,187,187,187,187,187,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,186,886,890,889,891,891,891,891,891,891,891,891,891,891,889,889,889,889,889,889,889,889,892,889,893,894,889,889,889,889,889,889,889,889,889,895,889,889,889,889,889,889,889,889,896,889,889,889,889,889,889,897,889,889,892,889,893,894,889,889,889,898,889,889,889,889,889,895,889,889,899,889,889,889,889,889,896,889,190,190,190,190,190,190,190,190,190,190,900,900,900,900,900,900,900,900,900,900,900,901,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,902,900,900,900,900,900,901,900,900,900,903,900,900,900,900,900,900,900,900,904,900,905,189,905,189,189,191,191,191,191,191,191,191,191,191,191,189,191,191,191,191,191,191,191,191,191,191,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,905,906,906,906,906,906,906,906,906,906,907,906,909,908,910,912,911,911,911,913,911,914,915,891,891,891,891,891,891,891,891,891,891,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,897,889,889,889,889,889,889,889,889,889,898,889,889,889,889,889,889,889,889,899,889,916,916,916,916,916,916,916,916,916,916,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,917,889,889,889,889,889,889,889,889,889,898,889,889,889,889,889,889,889,889,899,889,919,919,919,919,919,919,919,919,919,919,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,920,918,918,918,918,918,918,918,918,918,921,918,918,918,918,918,918,918,918,922,918,919,919,919,919,919,919,919,919,919,919,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,923,918,918,918,918,918,918,918,918,918,921,918,918,918,918,918,918,918,918,922,918,921,918,918,918,918,918,918,918,918,922,918,925,924,926,928,927,927,927,929,927,931,930,932,933,935,935,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,936,934,934,934,934,934,934,934,934,934,937,934,934,934,934,934,934,934,934,938,934,939,939,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,940,918,918,918,918,918,918,918,918,918,921,918,918,918,918,918,918,918,918,922,918,939,939,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,923,918,918,918,918,918,918,918,918,918,921,918,918,918,918,918,918,918,918,922,918,942,942,942,942,942,942,942,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,943,941,941,941,941,941,941,941,941,941,944,941,941,941,941,941,941,941,941,945,941,947,947,947,947,947,947,947,947,947,947,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,948,946,946,946,946,946,946,946,946,946,949,946,946,946,946,946,946,946,946,950,946,952,952,952,952,952,952,952,952,952,952,951,951,951,951,951,951,951,952,952,952,952,952,952,951,951,951,951,951,951,951,951,951,951,951,951,951,951,951,951,951,951,951,951,951,951,951,951,953,951,952,952,952,952,952,952,951,951,954,951,951,951,951,951,951,951,951,955,951,956,956,956,956,956,956,956,956,956,956,918,918,918,918,918,918,918,956,956,956,956,956,956,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,957,918,956,956,956,956,956,956,918,918,921,918,918,918,918,918,918,918,918,922,918,956,956,956,956,956,956,956,956,956,956,918,918,918,918,918,918,918,956,956,956,956,956,956,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,923,918,956,956,956,956,956,956,918,918,921,918,918,918,918,918,918,918,918,922,918,959,958,960,960,960,960,960,960,960,960,960,960,958,958,958,958,958,958,958,958,958,958,958,961,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,962,958,958,958,958,958,961,958,958,958,963,958,958,958,958,958,958,958,958,964,958,965,965,965,965,965,965,965,965,965,965,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,966,958,958,958,958,958,958,958,958,958,963,958,958,958,958,958,958,958,958,964,958,967,918,968,968,968,968,968,968,968,968,968,968,918,918,918,918,918,918,918,918,918,918,918,969,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,970,918,918,918,918,918,969,918,918,918,921,918,918,918,918,918,918,918,918,922,918,968,968,968,968,968,968,968,968,968,968,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,923,918,918,918,918,918,918,918,918,918,921,918,918,918,918,918,918,918,918,922,918,876,883,814,971,875,865,875,972,973,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,865,883,865,875,865,814,875,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,201,201,201,201,201,201,201,201,201,201,870,870,870,870,870,870,974,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,870,870,870,870,201,870,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,870,870,870,870,870,201,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,858,189,189,189,189,189,189,189,189,189,189,189,189,189,189,831,831,831,831,831,831,831,831,831,831,975,189,189,189,189,858,189,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,189,189,189,189,831,189,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,189,189,189,189,189,831,976,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,858,977,977,977,977,977,977,977,977,977,977,977,977,977,977,831,831,831,831,831,831,831,831,831,831,975,977,977,977,977,858,977,831,831,831,831,978,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,977,977,977,977,831,977,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,977,977,977,977,977,831,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,858,977,977,977,977,977,977,977,977,977,977,977,977,977,977,831,831,831,831,831,831,831,831,831,831,975,977,977,977,977,858,977,831,831,831,831,831,831,979,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,977,977,977,977,831,977,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,977,977,977,977,977,831,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,858,977,977,977,977,977,977,977,977,977,977,977,977,977,977,831,831,831,831,831,831,831,831,831,831,975,977,977,977,977,858,977,831,831,831,831,831,831,831,831,980,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,977,977,977,977,831,977,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,977,977,977,977,977,831,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,858,977,977,977,977,977,977,977,977,977,977,977,977,977,977,831,831,831,831,831,831,831,831,831,831,975,977,977,977,977,858,977,831,831,831,831,831,831,831,831,831,831,831,831,831,981,831,831,831,831,831,831,831,831,831,831,831,831,977,977,977,977,831,977,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,977,977,977,977,977,831,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,858,977,977,977,977,977,977,977,977,977,977,977,977,977,977,831,831,831,831,831,831,831,831,831,831,975,977,977,977,977,858,977,831,831,831,831,831,831,831,831,831,831,831,831,831,982,831,831,831,831,831,831,831,831,831,831,831,831,977,977,977,977,831,977,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,977,977,977,977,977,831,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,858,977,977,977,977,977,977,977,977,977,977,977,977,977,977,831,831,831,831,831,831,831,831,831,831,975,977,977,977,977,858,977,831,831,831,981,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,977,977,977,977,831,977,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,977,977,977,977,977,831,983,985,984,986,987,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,989,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,990,991,805,805,805,805,805,992,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,993,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,994,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,995,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,996,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,997,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,998,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,999,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,1000,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,1001,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,1002,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,1003,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,1004,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,1005,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,1006,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,1007,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,1003,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,1008,805,1009,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,1010,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,1011,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1012,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,1013,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1014,805,805,805,805,805,805,805,805,805,805,805,805,1015,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,1016,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,1017,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,1013,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1018,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,1019,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,1020,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,1021,805,805,805,805,805,805,805,805,805,805,1022,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1023,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1013,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,1024,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1025,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1026,805,805,805,805,805,805,805,988,988,988,988,988,805,1027,1027,1027,1027,1027,1027,1027,1027,1027,203,204,203,203,203,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,203,858,1027,205,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,805,805,805,805,805,805,805,805,805,805,1027,1027,206,1027,1027,858,1027,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1027,207,1027,1027,805,1027,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1027,1027,1027,1027,1027,805,220,221,220,220,220,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,220,219,219,222,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,225,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,224,219,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1029,805,805,805,805,805,805,805,805,805,1030,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,1031,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,858,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,805,805,805,805,805,805,805,805,805,805,1032,1032,1032,1032,1032,858,1032,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1032,1032,1032,1032,805,1032,805,805,805,805,805,805,805,805,1033,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1032,1032,1032,1032,1032,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,1034,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1035,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,1036,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,1037,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,1038,805,1039,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1040,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1013,805,805,805,1041,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,1013,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,1006,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1042,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1043,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1023,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,1044,805,805,805,805,805,805,805,805,805,805,805,805,805,847,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,1045,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1046,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1006,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1013,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,1047,805,805,805,805,805,805,805,1013,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1048,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,1049,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1050,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,1023,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1051,805,805,805,1052,805,805,805,805,805,1053,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1054,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1020,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,1006,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1055,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1056,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,1057,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1058,1059,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1006,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,1060,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1061,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1047,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1062,805,805,1063,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1006,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1064,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,1020,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1065,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1066,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,1067,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,1006,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1068,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1069,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1055,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,1070,805,805,805,805,805,805,805,805,805,1071,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1017,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1046,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,1072,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,1073,805,805,805,805,805,805,805,1074,805,805,805,805,805,805,805,1075,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1076,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,1012,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1077,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1078,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1047,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,1079,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,1047,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,1080,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1017,805,805,805,1081,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,1082,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1047,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,1083,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1084,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,1085,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,1055,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,1086,874,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,814,864,1087,1089,1088,1089,1089,1089,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1089,1088,1088,1090,1088,1088,1091,1088,1088,1088,1088,1088,1088,1088,233,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1092,1088,229,230,229,229,229,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,229,1093,1093,231,1093,1093,232,1093,1093,1093,1093,1093,1093,1093,233,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,234,1093,236,1094,236,236,236,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,236,1094,1094,231,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,234,1094,1096,1095,1098,1097,239,238,244,1093,242,1093,1100,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1101,1099,1100,1099,1100,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1103,1099,1100,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1104,1099,1100,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1105,1099,1107,1105,1109,1108,1108,1108,1109,1108,1108,1108,1108,1110,1111,1110,1110,1110,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1109,1108,1108,1108,1108,1108,1110,1108,1108,1112,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1113,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1114,1108,1108,1115,1108,1110,1116,1110,1110,1110,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1110,1116,1117,1118,1119,1120,1121,1123,1122,1125,1126,1125,1125,1125,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1125,1124,1111,1122,1127,1122,0")),function(e,t){e.$attr_accessor("_lex_trans_targs"),e.$private("_lex_trans_targs","_lex_trans_targs=")}(e.get_singleton_class(E)),E["$_lex_trans_targs="](e.large_array_unpack("130,129,0,2,131,132,4,133,134,134,134,134,247,7,8,9,247,247,276,11,12,276,276,280,280,16,11,17,278,279,281,282,280,276,283,284,286,13,14,287,288,15,280,18,19,24,31,290,291,17,278,279,281,282,280,276,283,284,286,13,14,287,288,15,18,19,24,31,290,291,289,20,21,22,23,25,26,29,27,28,30,32,33,276,35,36,37,39,42,40,41,43,45,307,307,307,308,47,310,48,311,49,308,47,310,48,311,345,50,345,51,52,50,345,51,345,345,345,55,56,57,58,356,345,345,345,61,62,63,345,66,61,62,63,345,66,64,64,62,63,366,65,64,64,62,63,366,65,62,345,383,345,68,384,390,72,399,400,77,78,72,73,398,73,398,345,74,75,76,401,79,80,347,53,349,82,83,406,508,85,86,87,508,516,516,516,90,538,537,516,540,542,516,95,96,97,546,516,99,100,557,526,579,103,104,105,109,110,103,104,105,109,110,106,106,104,105,107,108,106,106,104,105,107,108,627,104,516,696,111,698,113,117,699,115,696,112,696,114,698,114,698,116,698,696,710,119,120,121,716,123,124,125,126,127,710,710,128,1,3,129,129,129,135,134,134,136,137,138,139,141,144,145,146,147,134,148,149,151,153,154,155,159,161,162,163,179,184,191,196,203,210,213,214,218,212,222,230,234,236,241,243,246,134,134,134,134,134,134,140,134,140,134,142,5,143,134,6,134,134,150,152,134,156,157,158,154,160,134,164,165,174,177,166,167,168,169,170,171,172,173,135,175,176,178,180,183,181,182,185,188,186,187,189,190,192,194,193,195,197,198,134,199,200,201,202,134,204,207,205,206,208,209,211,215,216,217,219,221,220,223,224,225,227,226,228,229,231,232,233,235,237,238,239,240,242,244,245,248,247,247,249,250,252,253,247,247,247,251,247,251,10,254,247,256,255,255,259,260,261,262,255,264,265,266,267,269,271,272,273,274,275,255,257,255,258,255,255,255,255,255,263,255,263,268,255,270,255,276,276,277,292,293,279,295,296,283,297,298,299,300,301,303,304,305,306,276,276,276,276,276,276,280,285,276,276,276,276,276,276,276,276,276,294,276,294,276,276,276,276,302,276,34,38,44,307,309,312,46,307,307,308,313,313,314,315,317,319,320,313,313,316,313,316,313,318,313,313,313,322,321,321,323,324,325,327,329,330,335,342,321,321,321,321,326,321,326,321,328,321,321,322,331,332,333,334,336,337,340,338,339,341,343,344,346,345,354,355,357,358,360,361,362,363,365,367,368,371,372,397,403,404,405,406,407,408,409,410,364,412,429,434,441,446,448,454,457,458,462,456,466,477,481,484,492,496,499,500,345,50,51,345,53,348,345,345,350,352,353,345,351,345,345,345,345,345,54,345,345,345,345,345,359,345,359,345,345,59,345,60,345,345,364,345,369,345,370,345,345,345,373,382,345,67,385,386,387,345,388,69,391,392,70,395,396,345,374,376,345,375,345,345,377,380,381,345,378,379,345,345,345,345,345,345,389,345,383,393,394,345,393,345,383,393,71,402,345,345,345,345,345,81,84,345,411,413,414,424,427,415,416,417,418,419,420,421,422,423,425,426,428,430,433,431,432,435,438,436,437,439,440,442,444,443,445,447,449,451,450,452,453,455,423,459,460,461,463,465,464,467,468,469,474,470,471,472,345,346,347,53,473,352,475,476,478,479,480,482,483,485,486,487,490,488,489,491,493,494,495,497,498,345,364,501,501,502,503,504,506,501,501,501,505,501,505,501,507,501,509,508,508,510,511,508,512,514,508,508,508,508,513,508,513,515,508,517,516,516,520,521,522,516,523,525,528,529,530,531,532,516,533,534,539,567,571,516,572,574,576,516,577,578,580,584,586,587,589,590,608,613,620,628,635,642,647,648,652,646,657,667,673,676,685,689,693,694,695,528,518,516,519,516,516,516,516,516,516,524,516,524,516,88,527,516,516,516,516,516,516,516,516,516,535,516,536,516,516,89,91,516,92,548,559,562,541,563,564,549,553,555,516,541,92,543,545,93,516,543,516,544,516,516,94,547,516,516,550,552,516,550,551,553,555,552,516,554,516,516,556,558,516,98,516,516,516,560,552,553,555,560,561,516,550,552,553,555,516,550,552,553,555,516,565,552,553,555,565,566,516,92,567,541,568,553,555,569,552,92,569,541,570,573,575,516,101,102,516,516,581,582,583,578,585,516,516,588,516,516,516,591,592,601,606,593,594,595,596,597,598,599,600,517,602,603,604,605,517,607,609,612,610,611,517,517,614,617,615,616,618,619,517,621,623,622,624,625,626,516,516,629,517,630,516,631,632,633,634,518,636,639,637,638,640,641,643,644,645,517,649,650,651,653,655,656,654,517,658,659,660,663,661,662,664,665,666,668,670,669,671,672,674,675,677,678,680,683,679,681,682,684,686,687,688,690,691,692,516,516,696,697,701,702,703,696,696,696,700,696,696,705,704,706,704,707,708,709,704,704,710,710,711,712,713,715,717,718,710,710,710,714,710,714,710,118,710,710,710,122")),function(e,t){e.$attr_accessor("_lex_trans_actions"),e.$private("_lex_trans_actions","_lex_trans_actions=")}(e.get_singleton_class(E)),E["$_lex_trans_actions="](e.large_array_unpack("0,53,0,0,0,0,0,0,95,65,93,71,111,0,0,0,99,101,161,0,0,135,157,727,733,1,3,3,481,971,3,484,971,499,971,3,3,481,3,487,3,3,901,3,3,3,3,3,3,0,11,925,0,13,925,139,925,0,0,11,0,15,0,0,0,0,0,0,0,0,733,0,0,0,0,0,0,0,0,0,0,0,0,159,0,0,0,0,0,0,0,0,0,171,163,169,742,0,0,0,742,1,905,3,3,3,905,259,0,219,0,1,3,520,3,265,217,261,0,0,0,0,0,255,201,223,0,1,0,195,0,3,478,3,517,3,5,547,829,547,976,547,0,7,550,7,913,7,397,263,0,209,0,0,0,0,751,751,0,0,17,17,676,0,1,257,0,0,0,751,0,0,766,0,0,0,0,766,287,0,0,0,275,351,295,347,0,51,51,353,805,805,349,0,0,0,0,345,0,0,0,0,0,0,1,0,0,0,3,478,3,3,3,5,547,829,547,547,547,0,7,550,7,7,7,917,397,291,371,0,823,0,45,45,0,369,0,373,5,981,0,921,1,909,357,393,0,0,0,0,0,0,0,0,0,381,427,395,0,0,55,59,57,724,75,73,0,1,0,0,51,51,0,0,0,67,0,0,0,0,721,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,97,63,89,490,85,833,5,553,0,91,0,0,0,83,0,87,69,0,0,79,0,0,0,718,0,81,0,0,0,0,0,0,0,0,0,0,0,0,718,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,77,0,0,0,0,61,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,51,105,103,0,0,51,0,109,107,837,5,556,0,0,1,493,0,117,115,0,1,0,0,113,0,0,0,0,0,0,0,0,0,0,121,0,586,0,598,125,496,123,841,5,559,0,0,127,0,119,141,143,736,1,0,733,0,0,733,0,0,0,0,0,0,51,51,51,153,151,131,406,658,147,730,0,149,133,145,137,403,646,463,505,845,5,562,0,661,155,129,400,897,502,0,0,0,165,51,51,0,167,664,739,175,177,0,0,0,0,0,179,849,5,565,0,181,1,508,173,466,748,185,183,0,1,0,0,0,0,0,0,193,189,514,853,5,568,0,191,1,511,187,745,0,0,0,0,0,0,0,0,0,0,0,0,769,225,0,712,0,0,51,757,0,0,757,757,0,0,51,772,0,772,0,772,772,772,0,0,772,769,769,769,769,769,769,769,769,769,769,769,769,769,769,769,769,769,0,0,247,25,25,592,9,0,604,613,0,766,0,619,0,637,631,625,249,523,3,251,221,412,253,857,5,571,0,231,199,0,241,0,667,229,757,227,0,243,0,245,409,197,0,0,205,0,0,0,0,215,0,0,0,0,0,0,0,235,0,0,589,0,601,610,0,0,0,616,0,0,634,640,628,622,207,203,0,682,19,19,0,237,0,685,21,21,0,0,679,233,239,211,213,0,0,649,1,769,769,769,769,769,769,769,769,769,769,769,769,766,769,769,769,769,769,769,769,769,769,769,769,769,769,769,769,769,769,769,769,769,769,769,769,769,763,769,769,769,769,769,769,769,769,769,769,769,769,760,688,933,929,23,23,760,769,769,769,769,769,769,769,769,769,769,769,769,769,769,769,769,769,769,769,469,754,267,269,0,1,0,0,271,529,861,5,574,0,273,1,526,51,281,279,0,1,277,0,0,285,283,535,865,5,577,0,1,532,811,315,313,0,1,0,293,0,51,817,0,0,0,0,307,0,0,799,799,0,309,0,0,0,305,51,808,808,808,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,820,814,595,0,607,341,541,337,301,869,5,580,0,343,0,0,327,303,335,297,670,673,333,289,329,0,339,0,415,323,0,0,966,881,37,0,0,997,0,0,37,706,706,893,802,0,43,715,0,889,41,448,0,451,454,0,0,460,457,37,37,885,0,0,39,39,0,433,0,442,430,51,0,439,0,445,436,956,33,33,700,700,0,0,946,29,29,694,694,951,31,31,697,697,941,27,27,691,691,0,0,961,877,937,991,35,703,703,937,35,709,799,986,0,0,0,299,0,0,643,325,808,808,808,796,808,652,311,1,538,655,331,0,0,0,0,0,0,0,0,0,0,0,0,793,0,0,0,0,796,0,0,0,0,0,778,784,0,0,0,0,0,0,787,0,0,0,0,0,784,321,319,0,775,0,317,0,0,0,0,790,0,0,0,0,0,0,0,0,0,781,0,0,0,0,0,0,0,790,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,472,475,359,826,826,45,826,367,361,365,0,363,355,0,421,0,377,0,0,0,375,418,383,385,0,1,0,51,0,51,387,544,873,5,583,0,391,0,389,379,424,0")),function(e,t){e.$attr_accessor("_lex_to_state_actions"),e.$private("_lex_to_state_actions","_lex_to_state_actions=")}(e.get_singleton_class(E)),E["$_lex_to_state_actions="](e.large_array_unpack("0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,47,47,0,0,0,0,47,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,47,0,0,0,0,0,0,0,47,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,47,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,47,0,0,0,0,0,47,0,0,0,0,0,0,0,47,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,47,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,47,0,0,0,0,0,0,47,0,0,0,0,0,0,0,47,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,47,0,0,0,0,0,0,0,47,0,0,0,0,0,47,0,0,0,0,0,0,0,0")),function(e,t){e.$attr_accessor("_lex_from_state_actions"),e.$private("_lex_from_state_actions","_lex_from_state_actions=")}(e.get_singleton_class(E)),E["$_lex_from_state_actions="](e.large_array_unpack("0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,49,49,0,0,0,0,49,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,49,0,0,0,0,0,0,0,49,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,49,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,49,0,0,0,0,0,49,0,0,0,0,0,0,0,49,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,49,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,49,0,0,0,0,0,0,49,0,0,0,0,0,0,0,49,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,49,0,0,0,0,0,0,0,49,0,0,0,0,0,49,0,0,0,0,0,0,0,0")),function(e,t){e.$attr_accessor("_lex_eof_trans"),e.$private("_lex_eof_trans","_lex_eof_trans=")}(e.get_singleton_class(E)),E["$_lex_eof_trans="](e.large_array_unpack("0,0,0,0,0,9,11,13,13,13,13,19,19,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,84,84,84,84,84,84,84,84,84,84,84,84,94,96,96,96,108,108,108,116,118,118,118,118,118,124,116,116,116,116,116,116,116,150,150,150,150,150,150,116,166,116,166,150,150,116,116,150,150,150,150,179,179,179,184,186,186,186,190,190,193,193,193,193,198,198,198,184,190,190,190,190,190,190,190,190,190,229,236,238,238,238,238,229,246,246,246,246,246,246,246,246,246,246,0,0,261,261,262,263,0,304,306,307,308,309,311,313,317,317,308,308,308,308,319,308,308,313,308,308,304,323,323,323,323,323,323,313,313,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,362,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,308,0,406,407,408,410,406,406,414,0,433,435,437,438,439,440,441,443,440,440,440,440,440,446,440,440,448,446,446,440,0,467,468,19,19,471,472,19,468,468,475,477,480,468,481,468,482,483,485,487,468,475,488,488,477,488,492,488,488,488,488,0,94,500,501,500,500,0,510,511,513,515,517,515,519,0,531,532,533,534,536,538,540,541,541,541,541,541,541,541,541,541,541,541,541,541,541,541,541,0,599,602,605,606,610,612,613,614,615,616,618,621,622,624,626,629,631,632,116,629,634,629,621,636,638,621,621,656,659,661,662,666,669,670,671,672,656,656,656,656,656,656,656,656,656,656,676,680,682,656,656,621,687,688,688,688,621,621,621,689,116,621,621,694,621,616,599,599,599,599,599,599,599,599,599,599,599,116,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,747,606,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,772,621,0,780,781,782,784,786,788,0,797,798,799,800,802,797,805,0,190,860,862,863,864,865,867,869,871,874,874,190,876,878,879,880,876,882,884,884,887,887,890,901,190,907,909,911,912,915,916,890,890,919,919,919,925,927,928,931,933,934,935,919,919,942,947,952,919,919,959,959,919,919,884,876,876,884,876,876,871,190,977,978,978,978,978,978,978,984,871,987,988,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,1028,1029,989,989,1033,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,1087,865,1088,0,1094,1095,1096,1098,1094,1094,1094,0,1103,1103,1103,1103,1107,0,1117,1118,1119,1121,1123,1125,1123,1123")),function(e,t){e.$attr_accessor("lex_start")}(e.get_singleton_class(E)),E["$lex_start="](128),function(e,t){e.$attr_accessor("lex_error")}(e.get_singleton_class(E)),E["$lex_error="](0),function(e,t){e.$attr_accessor("lex_en_expr_variable")}(e.get_singleton_class(E)),E["$lex_en_expr_variable="](129),function(e,t){e.$attr_accessor("lex_en_expr_fname")}(e.get_singleton_class(E)),E["$lex_en_expr_fname="](134),function(e,t){e.$attr_accessor("lex_en_expr_endfn")}(e.get_singleton_class(E)),E["$lex_en_expr_endfn="](247),function(e,t){e.$attr_accessor("lex_en_expr_dot")}(e.get_singleton_class(E)),E["$lex_en_expr_dot="](255),function(e,t){e.$attr_accessor("lex_en_expr_arg")}(e.get_singleton_class(E)),E["$lex_en_expr_arg="](276),function(e,t){e.$attr_accessor("lex_en_expr_cmdarg")}(e.get_singleton_class(E)),E["$lex_en_expr_cmdarg="](307),function(e,t){e.$attr_accessor("lex_en_expr_endarg")}(e.get_singleton_class(E)),E["$lex_en_expr_endarg="](313),function(e,t){e.$attr_accessor("lex_en_expr_mid")}(e.get_singleton_class(E)),E["$lex_en_expr_mid="](321),function(e,t){e.$attr_accessor("lex_en_expr_beg")}(e.get_singleton_class(E)),E["$lex_en_expr_beg="](345),function(e,t){e.$attr_accessor("lex_en_expr_labelarg")}(e.get_singleton_class(E)),E["$lex_en_expr_labelarg="](501),function(e,t){e.$attr_accessor("lex_en_expr_value")}(e.get_singleton_class(E)),E["$lex_en_expr_value="](508),function(e,t){e.$attr_accessor("lex_en_expr_end")}(e.get_singleton_class(E)),E["$lex_en_expr_end="](516),function(e,t){e.$attr_accessor("lex_en_leading_dot")}(e.get_singleton_class(E)),E["$lex_en_leading_dot="](696),function(e,t){e.$attr_accessor("lex_en_line_comment")}(e.get_singleton_class(E)),E["$lex_en_line_comment="](704),function(e,t){e.$attr_accessor("lex_en_line_begin")}(e.get_singleton_class(E)),E["$lex_en_line_begin="](710),function(e,t){e.$attr_accessor("lex_en_inside_string")}(e.get_singleton_class(E)),E["$lex_en_inside_string="](128),E.$attr_reader("source_buffer"),E.$attr_accessor("diagnostics"),E.$attr_accessor("static_env"),E.$attr_accessor("force_utf32"),E.$attr_accessor("cond","cmdarg","context","command_start"),E.$attr_accessor("tokens","comments"),E.$attr_reader("paren_nest","cmdarg_stack","cond_stack","lambda_stack","version"),s(E,"$initialize",(function(e){var t=this;return t.version=e,t.static_env=w,t.context=w,t.tokens=w,t.comments=w,t._lex_actions=r(t.$class()["$respond_to?"]("_lex_actions",!0))?t.$class().$send("_lex_actions"):[],t.emit_integer=n(t,"lambda",[],(function e(t,r){return null==t&&(t=w),null==r&&(r=w),(null==e.$$s?this:e.$$s).$emit("tINTEGER",t),r}),{$$s:t}),t.emit_rational=n(t,"lambda",[],(function e(t,r){var n=null==e.$$s?this:e.$$s;return null==t&&(t=w),null==r&&(r=w),n.$emit("tRATIONAL",n.$Rational(t)),r}),{$$s:t}),t.emit_imaginary=n(t,"lambda",[],(function e(t,r){var n=null==e.$$s?this:e.$$s;return null==t&&(t=w),null==r&&(r=w),n.$emit("tIMAGINARY",n.$Complex(0,t)),r}),{$$s:t}),t.emit_imaginary_rational=n(t,"lambda",[],(function e(t,r){var n=null==e.$$s?this:e.$$s;return null==t&&(t=w),null==r&&(r=w),n.$emit("tIMAGINARY",n.$Complex(0,n.$Rational(t))),r}),{$$s:t}),t.emit_integer_re=n(t,"lambda",[],(function e(t,r){var n=null==e.$$s?this:e.$$s;return null==n.ts&&(n.ts=w),null==n.te&&(n.te=w),null==t&&(t=w),null==r&&(r=w),n.$emit("tINTEGER",t,n.ts,a(n.te,2)),a(r,2)}),{$$s:t}),t.emit_integer_if=n(t,"lambda",[],(function e(t,r){var n=null==e.$$s?this:e.$$s;return null==n.ts&&(n.ts=w),null==n.te&&(n.te=w),null==t&&(t=w),null==r&&(r=w),n.$emit("tINTEGER",t,n.ts,a(n.te,2)),a(r,2)}),{$$s:t}),t.emit_integer_rescue=n(t,"lambda",[],(function e(t,r){var n=null==e.$$s?this:e.$$s;return null==n.ts&&(n.ts=w),null==n.te&&(n.te=w),null==t&&(t=w),null==r&&(r=w),n.$emit("tINTEGER",t,n.ts,a(n.te,6)),a(r,6)}),{$$s:t}),t.emit_float=n(t,"lambda",[],(function e(t,r){var n=null==e.$$s?this:e.$$s;return null==t&&(t=w),null==r&&(r=w),n.$emit("tFLOAT",n.$Float(t)),r}),{$$s:t}),t.emit_imaginary_float=n(t,"lambda",[],(function e(t,r){var n=null==e.$$s?this:e.$$s;return null==t&&(t=w),null==r&&(r=w),n.$emit("tIMAGINARY",n.$Complex(0,n.$Float(t))),r}),{$$s:t}),t.emit_float_if=n(t,"lambda",[],(function e(t,r){var n=null==e.$$s?this:e.$$s;return null==n.ts&&(n.ts=w),null==n.te&&(n.te=w),null==t&&(t=w),null==r&&(r=w),n.$emit("tFLOAT",n.$Float(t),n.ts,a(n.te,2)),a(r,2)}),{$$s:t}),t.emit_float_rescue=n(t,"lambda",[],(function e(t,r){var n=null==e.$$s?this:e.$$s;return null==n.ts&&(n.ts=w),null==n.te&&(n.te=w),null==t&&(t=w),null==r&&(r=w),n.$emit("tFLOAT",n.$Float(t),n.ts,a(n.te,6)),a(r,6)}),{$$s:t}),t.$reset()})),s(E,"$reset",(function(e){var t=this;return null==e&&(e=!0),r(e)&&(t.cs=t.$class().$lex_en_line_begin(),t.cond=q("StackState").$new("cond"),t.cmdarg=q("StackState").$new("cmdarg"),t.cond_stack=[],t.cmdarg_stack=[]),t.force_utf32=!1,t.source_pts=w,t.p=0,t.ts=w,t.te=w,t.act=0,t.stack=[],t.top=0,t.token_queue=[],t.eq_begin_s=w,t.sharp_s=w,t.newline_s=w,t.num_base=w,t.num_digits_s=w,t.num_suffix_s=w,t.num_xfrm=w,t.paren_nest=0,t.lambda_stack=[],t.command_start=!0,t.cs_before_block_comment=t.$class().$lex_en_line_begin(),t.strings=k(q("Parser"),"LexerStrings").$new(t,t.version)}),-1),s(E,"$source_buffer=",(function(e){var t,a=this,s=w;return a.source_buffer=e,r(a.source_buffer)?(s=a.source_buffer.$source(),i(s.$encoding(),k(q("Encoding"),"UTF_8"))?a.source_pts=s.$unpack("U*"):a.source_pts=s.$unpack("C*"),i(a.source_pts["$[]"](0),65279)&&(a.p=1)):a.source_pts=w,a.strings["$source_buffer="](a.source_buffer),t=[a.source_pts],n(a.strings,"source_pts=",t),t[t.length-1]})),s(E,"$encoding",(function(){return this.source_buffer.$source().$encoding()})),o(M[0],"LEX_STATES",new Map([["line_begin",E.$lex_en_line_begin()],["expr_dot",E.$lex_en_expr_dot()],["expr_fname",E.$lex_en_expr_fname()],["expr_value",E.$lex_en_expr_value()],["expr_beg",E.$lex_en_expr_beg()],["expr_mid",E.$lex_en_expr_mid()],["expr_arg",E.$lex_en_expr_arg()],["expr_cmdarg",E.$lex_en_expr_cmdarg()],["expr_end",E.$lex_en_expr_end()],["expr_endarg",E.$lex_en_expr_endarg()],["expr_endfn",E.$lex_en_expr_endfn()],["expr_labelarg",E.$lex_en_expr_labelarg()],["inside_string",E.$lex_en_inside_string()]])),s(E,"$state",(function(){return q("LEX_STATES").$invert().$fetch(this.cs,this.cs)})),s(E,"$state=",(function(e){return this.cs=q("LEX_STATES").$fetch(e)})),s(E,"$push_cmdarg",(function(){var e=this;return e.cmdarg_stack.$push(e.cmdarg),e.cmdarg=q("StackState").$new("cmdarg."+e.cmdarg_stack.$count())})),s(E,"$pop_cmdarg",(function(){return this.cmdarg=this.cmdarg_stack.$pop()})),s(E,"$push_cond",(function(){var e=this;return e.cond_stack.$push(e.cond),e.cond=q("StackState").$new("cond."+e.cond_stack.$count())})),s(E,"$pop_cond",(function(){return this.cond=this.cond_stack.$pop()})),s(E,"$dedent_level",(function(){return this.strings.$dedent_level()})),s(E,"$advance",(function(){var e,t,n,s,o,v=this,y=w,x=w,k=w,U=w,E=w,M=w,S=w,O=w,A=w,T=w,N=w,z=w,R=w,I=w,C=w,P=w,L=w,F=w,D=w,j=w,B=w,G=w,H=w,Y=w,V=w,X=w,K=w,W=w,Q=w,J=w,Z=w,ee=w,te=w,re=w,ne=w,ae=w,se=w,ie=w,oe=w,le=w,$e=w,ue=w,ce=w;if(!r(v.token_queue["$empty?"]()))return v.token_queue.$shift();for(x=(y=v.$class()).$send("_lex_trans_keys"),k=y.$send("_lex_key_spans"),U=y.$send("_lex_index_offsets"),E=y.$send("_lex_indicies"),M=y.$send("_lex_trans_targs"),S=y.$send("_lex_trans_actions"),O=y.$send("_lex_to_state_actions"),A=y.$send("_lex_from_state_actions"),T=y.$send("_lex_eof_trans"),N=v._lex_actions,n=l(v.source_pts.$size(),2),z=(e=[v.p,n])[0],R=e[1],I=v.command_start,v.command_start=!1,!1,C=null==(e=$(t=w))[0]?w:e[0],P=null==e[1]?w:e[1],L=null==e[2]?w:e[2],F=null==e[3]?w:e[3],D=null==e[4]?w:e[4],j=null==e[5]?w:e[5],B=0,10,15,s=20,30,o=40;r(!0);){if(G=!1,r(u(B,0))){if(i(z,n)){B=30;continue}if(i(v.cs,0)){B=o;continue}}if(r(u(B,10))){for(D=A["$[]"](v.cs),j=N["$[]"](D),D=l(D,1);r(c(j,0));)if(j=a(j,1),D=l(D,1),52===N["$[]"](a(D,1)).valueOf())v.ts=z;if(r(G))continue;L=v.cs["$<<"](1),F=U["$[]"](v.cs),C=k["$[]"](v.cs),H=r(Y=v.source_pts["$[]"](z))?Y:0,P=r(c(C,0))&&r(u(x["$[]"](L),H))&&r(u(H,x["$[]"](l(L,1))))?E["$[]"](a(l(F,H),x["$[]"](L))):E["$[]"](l(F,C))}if(r(u(B,15))){if(v.cs=M["$[]"](P),_(S["$[]"](P),0))for(D=S["$[]"](P),j=N["$[]"](D),D=l(D,1);r(c(j,0));)if(j=a(j,1),D=l(D,1),p(0,Y=N["$[]"](a(D,1))))v.newline_s=z;else if(p(1,Y))v.num_xfrm=v.emit_integer;else if(p(2,Y))v.num_xfrm=v.emit_rational;else if(p(3,Y))v.num_xfrm=v.emit_imaginary;else if(p(4,Y))v.num_xfrm=v.emit_imaginary_rational;else if(p(5,Y))v.num_xfrm=v.emit_integer_re;else if(p(6,Y))v.num_xfrm=v.emit_integer_if;else if(p(7,Y))v.num_xfrm=v.emit_integer_rescue;else if(p(8,Y))v.num_xfrm=v.emit_float;else if(p(9,Y))v.num_xfrm=v.emit_imaginary_float;else if(p(10,Y))v.num_xfrm=v.emit_float_if;else if(p(11,Y))v.num_xfrm=v.emit_rational;else if(p(12,Y))v.num_xfrm=v.emit_imaginary_rational;else if(p(13,Y))v.num_xfrm=v.emit_float_rescue;else if(p(14,Y))v.$e_lbrace();else if(p(15,Y)){if(r(v.strings.$close_interp_on_current_literal(z))){z=a(z,1),v.cs=128,z=l(z,1),G=!0,B=o;break}v.paren_nest=a(v.paren_nest,1)}else if(p(16,Y))z=v.$on_newline(z);else if(p(17,Y))v.sharp_s=a(z,1);else if(p(18,Y))v.$emit_comment_from_range(z,n);else if(p(19,Y))V=z;else if(p(20,Y))V=a(z,2);else if(p(21,Y))V=z;else if(p(22,Y))V=a(z,2);else if(p(23,Y))V=a(z,2);else if(p(24,Y))V=a(z,2);else if(p(25,Y))V=a(z,3);else if(p(26,Y))V=a(z,2);else if(p(27,Y))V=a(z,2);else if(p(28,Y))v.cond.$push(!1),v.cmdarg.$push(!1),v.paren_nest=l(v.paren_nest,1);else if(p(29,Y))v.paren_nest=a(v.paren_nest,1);else if(p(30,Y))v.cond.$push(!1),v.cmdarg.$push(!1),v.paren_nest=l(v.paren_nest,1),r(v["$version?"](18))&&(v.command_start=!0);else if(p(31,Y))v.paren_nest=a(v.paren_nest,1);else if(p(32,Y))V=z;else if(p(33,Y))V=z;else if(p(34,Y))V=z;else if(p(35,Y))X=z;else if(p(36,Y))K=z;else if(p(37,Y))V=a(z,1),W="ivar_name";else if(p(38,Y))V=a(z,2),W="cvar_name";else if(p(39,Y))V=z;else if(p(40,Y))Q=v.$tok(),J=v.ts,Z=v.te;else if(p(41,Y))v.num_base=16,v.num_digits_s=z;else if(p(42,Y))v.num_base=10,v.num_digits_s=z;else if(p(43,Y))v.num_base=8,v.num_digits_s=z;else if(p(44,Y))v.num_base=2,v.num_digits_s=z;else if(p(45,Y))v.num_base=10,v.num_digits_s=v.ts;else if(p(46,Y))v.num_base=8,v.num_digits_s=v.ts;else if(p(47,Y))v.num_suffix_s=z;else if(p(48,Y))v.num_suffix_s=z;else if(p(49,Y))v.num_suffix_s=z;else if(p(50,Y))V=z;else if(p(53,Y))v.te=l(z,1);else{if(p(54,Y)){v.te=l(z,1),v.$emit_global_var(),v.cs=v.$stack_pop(),z=l(z,1),G=!0,B=o;break}if(p(55,Y)){v.te=z,z=a(z,1),v.$emit_global_var(),v.cs=v.$stack_pop(),z=l(z,1),G=!0,B=o;break}if(p(56,Y)){v.te=z,z=a(z,1),v.$emit_class_var(),v.cs=v.$stack_pop(),z=l(z,1),G=!0,B=o;break}if(p(57,Y)){v.te=z,z=a(z,1),v.$emit_instance_var(),v.cs=v.$stack_pop(),z=l(z,1),G=!0,B=o;break}if(p(58,Y))v.act=4;else if(p(59,Y))v.act=5;else if(p(60,Y))v.act=6;else{if(p(61,Y)){v.te=l(z,1),v.$emit_table(q("KEYWORDS_BEGIN")),v.cs=247,z=l(z,1),G=!0,B=o;break}if(p(62,Y)){v.te=l(z,1),v.$emit("tIDENTIFIER"),v.cs=247,z=l(z,1),G=!0,B=o;break}if(p(63,Y)){v.te=l(z,1),z=a(v.ts,1),v.cs=516,v.stack["$[]="](v.top,v.cs),v.top=l(v.top,1),v.cs=129,G=!0,B=s;break}if(p(64,Y)){v.te=l(z,1),v.$emit_table(q("PUNCTUATION")),v.cs=247,z=l(z,1),G=!0,B=o;break}if(p(65,Y)){v.te=l(z,1),z=a(z,1),z=a(z,1),v.cs=516,G=!0,B=s;break}if(p(66,Y)){if(v.te=l(z,1),r(v["$version?"](23))){ee=(e=[v.$tok()["$[]"](m(0,-2,!1)),v.$tok()["$[]"](-1).$chr()])[0],te=e[1],v.strings.$push_literal(ee,te,v.ts),v.cs=128,G=!0,B=s;break}z=a(v.ts,1),v.cs=516,G=!0,B=s;break}if(p(67,Y)){v.te=l(z,1),z=a(z,1),v.cs=516,G=!0,B=s;break}if(p(68,Y)){v.te=l(z,1),z=a(z,1),z=l(z,1),G=!0,B=o;break}if(p(69,Y)){v.te=z,z=a(z,1),v.$emit_table(q("KEYWORDS_BEGIN")),v.cs=247,z=l(z,1),G=!0,B=o;break}if(p(70,Y)){v.te=z,z=a(z,1),v.$emit("tCONSTANT"),v.cs=247,z=l(z,1),G=!0,B=o;break}if(p(71,Y)){v.te=z,z=a(z,1),v.$emit("tIDENTIFIER"),v.cs=247,z=l(z,1),G=!0,B=o;break}if(p(72,Y)){v.te=z,z=a(z,1),z=a(v.ts,1),v.cs=516,v.stack["$[]="](v.top,v.cs),v.top=l(v.top,1),v.cs=129,G=!0,B=s;break}if(p(73,Y)){v.te=z,z=a(z,1),v.$emit_table(q("PUNCTUATION")),v.cs=247,z=l(z,1),G=!0,B=o;break}if(p(74,Y)){v.te=z,z=a(z,1),z=a(z,1),v.cs=345,G=!0,B=s;break}if(p(75,Y))v.te=z,z=a(z,1);else{if(p(76,Y)){v.te=z,z=a(z,1),z=a(z,1),v.cs=516,G=!0,B=s;break}if(p(77,Y)){z=a(v.te,1),v.$emit_table(q("PUNCTUATION")),v.cs=247,z=l(z,1),G=!0,B=o;break}if(p(78,Y)){z=a(v.te,1),z=a(z,1),v.cs=516,G=!0,B=s;break}if(p(79,Y)){if(p(4,re=v.act)){z=a(v.te,1),v.$emit_table(q("KEYWORDS_BEGIN")),v.cs=247,z=l(z,1),G=!0,B=o;break}if(p(5,re)){z=a(v.te,1),v.$emit("tCONSTANT"),v.cs=247,z=l(z,1),G=!0,B=o;break}if(p(6,re)){z=a(v.te,1),v.$emit("tIDENTIFIER"),v.cs=247,z=l(z,1),G=!0,B=o;break}}else{if(p(80,Y)){v.te=l(z,1),v.$emit("tLABEL",v.$tok(v.ts,a(v.te,2)),v.ts,a(v.te,1)),z=a(z,1),v.cs=501,z=l(z,1),G=!0,B=o;break}if(p(81,Y)){if(v.te=l(z,1),r(d(v.version,31))&&r(v.context.$in_argdef())){v.$emit("tBDOT3","...".$freeze()),v.cs=516,z=l(z,1),G=!0,B=o;break}z=a(z,3),v.cs=516,G=!0,B=s;break}if(p(82,Y)){v.te=l(z,1),z=a(z,1),v.cs=516,G=!0,B=s;break}if(p(83,Y)){v.te=l(z,1),z=a(z,1),z=l(z,1),G=!0,B=o;break}if(p(84,Y))v.te=z,z=a(z,1);else{if(p(85,Y)){v.te=z,z=a(z,1),z=a(z,1),v.cs=516,G=!0,B=s;break}if(p(86,Y)){z=a(v.te,1),z=a(z,1),v.cs=516,G=!0,B=s;break}if(p(87,Y)){v.te=l(z,1),v.$emit_table(q("PUNCTUATION")),v.cs=276,z=l(z,1),G=!0,B=o;break}if(p(88,Y)){v.te=l(z,1),z=a(z,1),v.cs=516,G=!0,B=s;break}if(p(89,Y)){v.te=l(z,1),z=a(z,1),z=l(z,1),G=!0,B=o;break}if(p(90,Y)){v.te=z,z=a(z,1),v.$emit("tCONSTANT"),v.cs=v.$arg_or_cmdarg(I),z=l(z,1),G=!0,B=o;break}if(p(91,Y)){v.te=z,z=a(z,1),v.$emit("tIDENTIFIER"),v.cs=v.$arg_or_cmdarg(I),z=l(z,1),G=!0,B=o;break}if(p(92,Y)){v.te=z,z=a(z,1),v.$emit("tFID",v.$tok(v.ts,V),v.ts,V),v.cs=v.$arg_or_cmdarg(I),z=a(V,1),z=l(z,1),G=!0,B=o;break}if(p(93,Y)){v.te=z,z=a(z,1),v.$emit_table(q("PUNCTUATION")),v.cs=276,z=l(z,1),G=!0,B=o;break}if(p(94,Y))v.te=z,z=a(z,1);else{if(p(95,Y)){v.te=z,z=a(z,1),z=a(z,1),v.cs=516,G=!0,B=s;break}if(p(96,Y))v.act=33;else if(p(97,Y))v.act=34;else if(p(98,Y))v.act=39;else if(p(99,Y))v.act=40;else{if(p(100,Y)){v.te=l(z,1),z=a(v.ts,1),v.cs=516,G=!0,B=s;break}if(p(101,Y)){v.te=l(z,1),v.$check_ambiguous_slash(V),z=a(V,1),v.cs=345,G=!0,B=s;break}if(p(102,Y)){v.te=l(z,1),z=a(z,1),z=a(z,1),v.cs=345,G=!0,B=s;break}if(p(103,Y)){v.te=l(z,1),z=a(v.ts,1),v.cs=345,G=!0,B=s;break}if(p(104,Y)){v.te=l(z,1),z=a(V,1),v.cs=516,G=!0,B=s;break}if(p(105,Y)){v.te=l(z,1),z=a(v.ts,1),v.cs=516,G=!0,B=s;break}if(p(106,Y)){v.te=l(z,1),z=a(z,1),v.cs=345,G=!0,B=s;break}if(p(107,Y)){v.te=l(z,1),z=a(z,1),z=l(z,1),G=!0,B=o;break}if(p(108,Y)){if(v.te=z,z=a(z,1),r(v["$version?"](18))){v.$emit("tLPAREN2","(".$freeze(),a(v.te,1),v.te),v.cs=508,z=l(z,1),G=!0,B=o;break}v.$emit("tLPAREN_ARG","(".$freeze(),a(v.te,1),v.te),v.cs=345,z=l(z,1),G=!0,B=o;break}if(p(109,Y)){v.te=z,z=a(z,1),v.$emit("tLPAREN2","(".$freeze()),v.cs=345,z=l(z,1),G=!0,B=o;break}if(p(110,Y)){v.te=z,z=a(z,1),v.$emit("tLBRACK","[".$freeze(),a(v.te,1),v.te),v.cs=345,z=l(z,1),G=!0,B=o;break}if(p(111,Y)){v.te=z,z=a(z,1),i(v.lambda_stack.$last(),v.paren_nest)?(v.lambda_stack.$pop(),v.$emit("tLAMBEG","{".$freeze(),a(v.te,1),v.te)):v.$emit("tLCURLY","{".$freeze(),a(v.te,1),v.te),v.command_start=!0,v.paren_nest=l(v.paren_nest,1),v.cs=508,z=l(z,1),G=!0,B=o;break}if(p(112,Y)){v.te=z,z=a(z,1),z=a(z,1),v.cs=345,G=!0,B=s;break}if(p(113,Y)){v.te=z,z=a(z,1),v.$diagnostic("warning","ambiguous_prefix",new Map([["prefix",v.$tok(V,v.te)]]),v.$range(V,v.te)),z=a(V,1),v.cs=345,G=!0,B=s;break}if(p(114,Y)){v.te=z,z=a(z,1),z=a(z,1),v.cs=345,G=!0,B=s;break}if(p(115,Y)){v.te=z,z=a(z,1),z=a(v.ts,1),v.cs=516,G=!0,B=s;break}if(p(116,Y))v.te=z,z=a(z,1);else{if(p(117,Y)){v.te=z,z=a(z,1),v.cs=516,G=!0,B=s;break}if(p(118,Y)){v.te=z,z=a(z,1),z=a(z,1),v.cs=516,G=!0,B=s;break}if(p(119,Y)){v.te=z,z=a(z,1),z=a(z,1),v.cs=345,G=!0,B=s;break}if(p(120,Y))z=a(v.te,1);else{if(p(121,Y)){z=a(v.te,1),z=a(z,1),v.cs=345,G=!0,B=s;break}if(p(122,Y)){if(p(33,re=v.act)){z=a(v.te,1),v.$check_ambiguous_slash(V),z=a(V,1),v.cs=345,G=!0,B=s;break}if(p(34,re)){z=a(v.te,1),v.$diagnostic("warning","ambiguous_prefix",new Map([["prefix",v.$tok(V,v.te)]]),v.$range(V,v.te)),z=a(V,1),v.cs=345,G=!0,B=s;break}if(p(39,re)){z=a(v.te,1),z=a(v.ts,1),v.cs=516,G=!0,B=s;break}z=a(v.te,1)}else if(p(123,Y))v.act=46;else if(p(124,Y))v.act=47;else{if(p(125,Y)){v.te=l(z,1),z=a(v.ts,1),v.cs=276,G=!0,B=s;break}if(p(126,Y)){v.te=l(z,1),z=a(z,1),z=l(z,1),G=!0,B=o;break}if(p(127,Y)){if(v.te=z,z=a(z,1),v.$emit("tLPAREN_ARG","(".$freeze(),a(v.te,1),v.te),r(v["$version?"](18))){v.cs=508,z=l(z,1),G=!0,B=o;break}v.cs=345,z=l(z,1),G=!0,B=o;break}if(p(128,Y)){v.te=z,z=a(z,1),z=a(v.ts,1),v.cs=276,G=!0,B=s;break}if(p(129,Y)){z=a(v.te,1),z=a(v.ts,1),v.cs=276,G=!0,B=s;break}if(p(130,Y)){if(p(46,re=v.act)){z=a(v.te,1),r(v.cond["$active?"]())?v.$emit("kDO_COND","do".$freeze(),a(v.te,2),v.te):v.$emit("kDO","do".$freeze(),a(v.te,2),v.te),v.cs=508,z=l(z,1),G=!0,B=o;break}if(p(47,re)){z=a(v.te,1),z=a(v.ts,1),v.cs=276,G=!0,B=s;break}}else{if(p(131,Y)){v.te=l(z,1),v.$emit_do(!0),v.cs=508,z=l(z,1),G=!0,B=o;break}if(p(132,Y)){v.te=l(z,1),z=a(z,1),v.cs=516,G=!0,B=s;break}if(p(133,Y)){v.te=l(z,1),z=a(z,1),z=l(z,1),G=!0,B=o;break}if(p(134,Y)){v.te=z,z=a(z,1),i(v.lambda_stack.$last(),v.paren_nest)?(v.lambda_stack.$pop(),v.$emit("tLAMBEG","{".$freeze())):v.$emit("tLBRACE_ARG","{".$freeze()),v.paren_nest=l(v.paren_nest,1),v.command_start=!0,v.cs=508,z=l(z,1),G=!0,B=o;break}if(p(135,Y))v.te=z,z=a(z,1);else{if(p(136,Y)){v.te=z,z=a(z,1),z=a(z,1),v.cs=516,G=!0,B=s;break}if(p(137,Y))v.act=54;else if(p(138,Y))v.act=55;else{if(p(139,Y)){v.te=l(z,1),z=a(z,1),v.cs=345,G=!0,B=s;break}if(p(140,Y)){v.te=l(z,1),z=a(z,1),z=l(z,1),G=!0,B=o;break}if(p(141,Y)){v.te=z,z=a(z,1),z=a(v.ts,1),v.cs=345,G=!0,B=s;break}if(p(142,Y))v.te=z,z=a(z,1);else{if(p(143,Y)){v.te=z,z=a(z,1),z=a(z,1),v.cs=516,G=!0,B=s;break}if(p(144,Y)){v.te=z,z=a(z,1),z=a(z,1),v.cs=345,G=!0,B=s;break}if(p(145,Y)){if(p(54,re=v.act)){z=a(v.te,1),v.$emit_table(q("KEYWORDS")),v.cs=345,z=l(z,1),G=!0,B=o;break}if(p(55,re)){z=a(v.te,1),z=a(v.ts,1),v.cs=345,G=!0,B=s;break}}else if(p(146,Y))v.act=60;else if(p(147,Y))v.act=67;else if(p(148,Y))v.act=76;else if(p(149,Y))v.act=80;else if(p(150,Y))v.act=81;else if(p(151,Y))v.act=82;else if(p(152,Y))v.act=86;else if(p(153,Y))v.act=87;else if(p(154,Y))v.act=91;else{if(p(155,Y)){v.te=l(z,1),v.$emit("tUNARY_NUM",v.$tok(v.ts,l(v.ts,1)),v.ts,l(v.ts,1)),z=a(z,1),v.cs=516,z=l(z,1),G=!0,B=o;break}if(p(156,Y)){v.te=l(z,1),ee=te=v.$tok()["$[]"](0).$chr(),v.strings.$push_literal(ee,te,v.ts),z=a(z,1),v.cs=128,G=!0,B=s;break}if(p(157,Y)){v.te=l(z,1),ee=(e=[v.source_buffer.$slice(v.ts,1).$chr(),v.$tok()["$[]"](-1).$chr()])[0],te=e[1],v.strings.$push_literal(ee,te,v.ts),v.cs=128,G=!0,B=s;break}if(p(158,Y)){v.te=l(z,1),ee=(e=[v.$tok()["$[]"](m(0,-2,!1)),v.$tok()["$[]"](-1).$chr()])[0],te=e[1],v.strings.$push_literal(ee,te,v.ts),v.cs=128,G=!0,B=s;break}if(p(159,Y)){v.te=l(z,1),z=a(z,1),z=a(z,1),v.$emit("tSYMBEG",v.$tok(v.ts,l(v.ts,1)),v.ts,l(v.ts,1)),v.cs=134,G=!0,B=s;break}if(p(160,Y)){v.te=l(z,1),ee=(e=[v.$tok(),v.$tok()["$[]"](-1).$chr()])[0],te=e[1],v.strings.$push_literal(ee,te,v.ts),v.cs=128,G=!0,B=s;break}if(p(161,Y)){v.te=l(z,1),v.$emit("tSYMBOL",v.$tok(l(v.ts,1),l(v.ts,2))),v.cs=516,z=l(z,1),G=!0,B=o;break}if(p(162,Y)){v.te=l(z,1),ne=v.$tok(l(v.ts,1)),r(d(v.version,33))&&r(ne["$start_with?"]("$0"))&&r(c(ne.$length(),2))&&v.$diagnostic("error","gvar_name",new Map([["name",ne]]),v.$range(l(v.ts,1),v.te)),v.$emit("tSYMBOL",ne,v.ts),v.cs=516,z=l(z,1),G=!0,B=o;break}if(p(163,Y)){if(v.te=l(z,1),t=v.strings.$read_character_constant(v.ts),z=null==(e=$(t))[0]?w:e[0],ae=null==e[1]?w:e[1],z=a(z,1),r(v.token_queue["$empty?"]())){v.cs=ae,G=!0,B=s;break}v.cs=ae,z=l(z,1),G=!0,B=o;break}if(p(164,Y))v.te=l(z,1),v.$diagnostic("fatal","incomplete_escape",w,v.$range(v.ts,l(v.ts,1)));else{if(p(165,Y)){v.te=l(z,1),v.$emit_table(q("PUNCTUATION_BEGIN")),z=l(z,1),G=!0,B=o;break}if(p(166,Y)){v.te=l(z,1),z=a(z,1),r(v["$version?"](18))?(se=v.$tok(v.ts,a(v.te,2)),v.$emit(r(v.source_buffer.$slice(v.ts,1)["$=~"](f(/[A-Z]/u,null,"")))?"tCONSTANT":"tIDENTIFIER",se,v.ts,a(v.te,2)),z=a(z,1),h(v.static_env["$nil?"]())&&r(v.static_env["$declared?"](se))?v.cs=516:v.cs=v.$arg_or_cmdarg(I)):(v.$emit("tLABEL",v.$tok(v.ts,a(v.te,2)),v.ts,a(v.te,1)),v.cs=501),z=l(z,1),G=!0,B=o;break}if(p(167,Y)){v.te=l(z,1),ie=a(v.te,1)["$=="](v.newline_s),oe=!1,le=r(ie)?a(v.te,1):v.te,r(d(v.version,30))?r(v.lambda_stack["$any?"]())&&i(l(v.lambda_stack.$last(),1),v.paren_nest)?v.$emit("tDOT3","...".$freeze(),v.ts,le):(v.$emit("tBDOT3","...".$freeze(),v.ts,le),r(d(v.version,31))&&r(ie)&&r(v.context.$in_argdef())&&(v.$emit("tNL",a(v.te,1),v.te),oe=!0)):r(d(v.version,27))?v.$emit("tBDOT3","...".$freeze(),v.ts,le):v.$emit("tDOT3","...".$freeze(),v.ts,le),r(ie)&&h(oe)&&(z=a(z,1)),v.cs=345,z=l(z,1),G=!0,B=o;break}if(p(168,Y)){v.te=l(z,1),v.$emit("tIDENTIFIER",Q,J,Z),z=a(Z,1),h(v.static_env["$nil?"]())&&r(v.static_env["$declared?"](Q))&&r(g(v.version,25))?v.cs=247:v.cs=307,z=l(z,1),G=!0,B=o;break}if(p(169,Y)){v.te=l(z,1),z=a(v.ts,1),v.cs_before_block_comment=v.cs,v.cs=710,G=!0,B=s;break}if(p(170,Y)){v.te=l(z,1),z=a(v.ts,1),v.cs=516,G=!0,B=s;break}if(p(171,Y)){v.te=l(z,1),z=a(z,1),z=l(z,1),G=!0,B=o;break}if(p(172,Y)){v.te=z,z=a(z,1),v.$emit("tUNARY_NUM",v.$tok(v.ts,l(v.ts,1)),v.ts,l(v.ts,1)),z=a(z,1),v.cs=516,z=l(z,1),G=!0,B=o;break}if(p(173,Y)){v.te=z,z=a(z,1),v.$emit("tSTAR","*".$freeze()),z=l(z,1),G=!0,B=o;break}if(p(174,Y))v.te=z,z=a(z,1),v.$diagnostic("fatal","string_eof",w,v.$range(v.ts,l(v.ts,1)));else if(p(175,Y)){if(v.te=z,z=a(z,1),v.$tok(v.ts,X)["$=~"](f(/^<<(-?)(~?)(["'`]?)([\s\S]*)\3$/mu,"^<<(-?)(~?)([\"'`]?)(.*)\\3$","m")),$e=r(re=((e=b["~"])===w?w:e["$[]"](1))["$empty?"]()["$!"]())?re:((e=b["~"])===w?w:e["$[]"](2))["$empty?"]()["$!"](),ue=((e=b["~"])===w?w:e["$[]"](2))["$empty?"]()["$!"](),ee=r(((e=b["~"])===w?w:e["$[]"](3))["$empty?"]())?'<<"'.$freeze():l("<<".$freeze(),(e=b["~"])===w?w:e["$[]"](3)),te=(e=b["~"])===w?w:e["$[]"](4),r(d(v.version,27))?(r(c(te.$count("\n"),0))||r(c(te.$count("\r"),0)))&&v.$diagnostic("error","unterminated_heredoc_id",w,v.$range(v.ts,l(v.ts,1))):r(d(v.version,24))&&r(c(te.$count("\n"),0))&&(r(te["$end_with?"]("\n"))?(v.$diagnostic("warning","heredoc_id_ends_with_nl",w,v.$range(v.ts,l(v.ts,1))),te=te.$rstrip()):v.$diagnostic("fatal","heredoc_id_has_newline",w,v.$range(v.ts,l(v.ts,1)))),r(ue)&&r(v["$version?"](18,19,20,21,22))){v.$emit("tLSHFT","<<".$freeze(),v.ts,l(v.ts,2)),z=l(v.ts,1),v.cs=345,z=l(z,1),G=!0,B=o;break}v.strings.$push_literal(ee,te,v.ts,X,$e,ue),r(re=v.strings.$herebody_s())||v.strings["$herebody_s="](K),z=a(v.strings.$herebody_s(),1),v.cs=128}else if(p(176,Y))v.te=z,z=a(z,1),v.$diagnostic("error","unterminated_heredoc_id",w,v.$range(v.ts,l(v.ts,1)));else{if(p(177,Y)){v.te=z,z=a(z,1),v.$emit("tSYMBOL",v.$tok(l(v.ts,1),V),v.ts,V),z=a(V,1),v.cs=516,z=l(z,1),G=!0,B=o;break}if(p(178,Y)){v.te=z,z=a(z,1),ne=v.$tok(l(v.ts,1)),r(d(v.version,33))&&r(ne["$start_with?"]("$0"))&&r(c(ne.$length(),2))&&v.$diagnostic("error","gvar_name",new Map([["name",ne]]),v.$range(l(v.ts,1),v.te)),v.$emit("tSYMBOL",ne,v.ts),v.cs=516,z=l(z,1),G=!0,B=o;break}if(p(179,Y)){v.te=z,z=a(z,1),v.$emit_colon_with_digits(z,V,W),v.cs=516,z=l(z,1),G=!0,B=o;break}if(p(180,Y))v.te=z,z=a(z,1),v.$diagnostic("fatal","incomplete_escape",w,v.$range(v.ts,l(v.ts,1)));else{if(p(181,Y)){v.te=z,z=a(z,1),i(v.lambda_stack.$last(),v.paren_nest)?(v.lambda_stack.$pop(),v.command_start=!0,v.$emit("tLAMBEG","{".$freeze())):v.$emit("tLBRACE","{".$freeze()),v.paren_nest=l(v.paren_nest,1),z=l(z,1),G=!0,B=o;break}if(p(182,Y)){v.te=z,z=a(z,1),v.$emit("tLBRACK","[".$freeze()),z=l(z,1),G=!0,B=o;break}if(p(183,Y)){v.te=z,z=a(z,1),v.$emit("tLPAREN","(".$freeze()),z=l(z,1),G=!0,B=o;break}if(p(184,Y)){v.te=z,z=a(z,1),v.$emit_table(q("PUNCTUATION_BEGIN")),z=l(z,1),G=!0,B=o;break}if(p(185,Y)){v.te=z,z=a(z,1),v.$emit("kRESCUE","rescue".$freeze(),v.ts,V),z=a(V,1),v.cs=321,z=l(z,1),G=!0,B=o;break}if(p(186,Y)){v.te=z,z=a(z,1),r(d(v.version,27))?v.$emit("tBDOT2"):v.$emit("tDOT2"),v.cs=345,z=l(z,1),G=!0,B=o;break}if(p(187,Y)){v.te=z,z=a(z,1),ie=a(v.te,1)["$=="](v.newline_s),oe=!1,le=r(ie)?a(v.te,1):v.te,r(d(v.version,30))?r(v.lambda_stack["$any?"]())&&i(l(v.lambda_stack.$last(),1),v.paren_nest)?v.$emit("tDOT3","...".$freeze(),v.ts,le):(v.$emit("tBDOT3","...".$freeze(),v.ts,le),r(d(v.version,31))&&r(ie)&&r(v.context.$in_argdef())&&(v.$emit("tNL",a(v.te,1),v.te),oe=!0)):r(d(v.version,27))?v.$emit("tBDOT3","...".$freeze(),v.ts,le):v.$emit("tDOT3","...".$freeze(),v.ts,le),r(ie)&&h(oe)&&(z=a(z,1)),v.cs=345,z=l(z,1),G=!0,B=o;break}if(p(188,Y)){v.te=z,z=a(z,1),z=a(v.ts,1),v.cs=516,G=!0,B=s;break}if(p(189,Y)){if(v.te=z,z=a(z,1),v.$emit("tIDENTIFIER"),h(v.static_env["$nil?"]())&&r(v.static_env["$declared?"](v.$tok()))){v.cs=247,z=l(z,1),G=!0,B=o;break}if(r(d(v.version,32))&&r(v.$tok()["$=~"](f(/^_[1-9]$/u,"\\A_[1-9]\\z","")))){v.cs=247,z=l(z,1),G=!0,B=o;break}v.cs=v.$arg_or_cmdarg(I),z=l(z,1),G=!0,B=o;break}if(p(190,Y))v.te=z,z=a(z,1);else{if(p(191,Y)){v.te=z,z=a(z,1),z=a(v.ts,1),v.cs_before_block_comment=v.cs,v.cs=710,G=!0,B=s;break}if(p(192,Y)){v.te=z,z=a(z,1),z=a(v.ts,1),v.cs=516,G=!0,B=s;break}if(p(193,Y))z=a(v.te,1),v.$diagnostic("fatal","string_eof",w,v.$range(v.ts,l(v.ts,1)));else if(p(194,Y))z=a(v.te,1),v.$diagnostic("error","unterminated_heredoc_id",w,v.$range(v.ts,l(v.ts,1)));else{if(p(195,Y)){if(z=a(v.te,1),v.$emit("tIDENTIFIER"),h(v.static_env["$nil?"]())&&r(v.static_env["$declared?"](v.$tok()))){v.cs=247,z=l(z,1),G=!0,B=o;break}if(r(d(v.version,32))&&r(v.$tok()["$=~"](f(/^_[1-9]$/u,"\\A_[1-9]\\z","")))){v.cs=247,z=l(z,1),G=!0,B=o;break}v.cs=v.$arg_or_cmdarg(I),z=l(z,1),G=!0,B=o;break}if(p(196,Y))z=a(v.te,1);else{if(p(197,Y)){z=a(v.te,1),z=a(v.ts,1),v.cs=516,G=!0,B=s;break}if(p(198,Y)){if(p(60,re=v.act)){z=a(v.te,1),v.$emit("tUNARY_NUM",v.$tok(v.ts,l(v.ts,1)),v.ts,l(v.ts,1)),z=a(z,1),v.cs=516,z=l(z,1),G=!0,B=o;break}if(p(67,re))z=a(v.te,1),v.$diagnostic("error","unterminated_heredoc_id",w,v.$range(v.ts,l(v.ts,1)));else{if(p(76,re)){if(z=a(v.te,1),r(d(v.version,27))){v.$emit("tPIPE",v.$tok(v.ts,l(v.ts,1)),v.ts,l(v.ts,1)),z=a(z,1),v.cs=345,z=l(z,1),G=!0,B=o;break}z=a(z,2),v.cs=516,G=!0,B=s;break}if(p(80,re)){z=a(v.te,1),v.$emit_table(q("PUNCTUATION_BEGIN")),z=l(z,1),G=!0,B=o;break}if(p(81,re)){z=a(v.te,1),v.$emit("kRESCUE","rescue".$freeze(),v.ts,V),z=a(V,1),v.cs=321,z=l(z,1),G=!0,B=o;break}if(p(82,re)){z=a(v.te,1),v.$emit_table(q("KEYWORDS_BEGIN")),v.command_start=!0,v.cs=508,z=l(z,1),G=!0,B=o;break}if(p(86,re)){z=a(v.te,1),z=a(v.ts,1),v.cs=516,G=!0,B=s;break}if(p(87,re)){if(z=a(v.te,1),v.$emit("tIDENTIFIER"),h(v.static_env["$nil?"]())&&r(v.static_env["$declared?"](v.$tok()))){v.cs=247,z=l(z,1),G=!0,B=o;break}if(r(d(v.version,32))&&r(v.$tok()["$=~"](f(/^_[1-9]$/u,"\\A_[1-9]\\z","")))){v.cs=247,z=l(z,1),G=!0,B=o;break}v.cs=v.$arg_or_cmdarg(I),z=l(z,1),G=!0,B=o;break}if(p(91,re)){z=a(v.te,1),z=a(v.ts,1),v.cs=516,G=!0,B=s;break}}}else{if(p(199,Y)){v.te=l(z,1),z=a(z,1),v.cs=345,G=!0,B=s;break}if(p(200,Y)){v.te=l(z,1),z=a(z,1),z=l(z,1),G=!0,B=o;break}if(p(201,Y))v.te=z,z=a(z,1);else{if(p(202,Y)){if(v.te=z,z=a(z,1),r(v.context.$in_kwarg())){z=a(z,1),v.cs=516,G=!0,B=s;break}v.cs=710,G=!0,B=s;break}if(p(203,Y)){v.te=z,z=a(z,1),z=a(z,1),v.cs=345,G=!0,B=s;break}if(p(204,Y)){v.te=l(z,1),z=a(v.ts,1),v.cs=516,G=!0,B=s;break}if(p(205,Y)){v.te=l(z,1),v.strings.$push_literal(v.$tok(),v.$tok(),v.ts),v.cs=128,G=!0,B=s;break}if(p(206,Y)){v.te=l(z,1),z=a(z,1),v.cs=345,G=!0,B=s;break}if(p(207,Y)){v.te=l(z,1),z=a(z,1),z=l(z,1),G=!0,B=o;break}if(p(208,Y))v.te=z,z=a(z,1);else{if(p(209,Y)){v.te=z,z=a(z,1),v.cs=710,G=!0,B=s;break}if(p(210,Y)){v.te=z,z=a(z,1),z=a(z,1),v.cs=345,G=!0,B=s;break}if(p(211,Y)){z=a(v.te,1),z=a(z,1),v.cs=345,G=!0,B=s;break}if(p(212,Y))v.act=104;else if(p(213,Y))v.act=105;else if(p(214,Y))v.act=106;else if(p(215,Y))v.act=107;else if(p(216,Y))v.act=108;else if(p(217,Y))v.act=109;else if(p(218,Y))v.act=110;else if(p(219,Y))v.act=111;else if(p(220,Y))v.act=112;else if(p(221,Y))v.act=113;else if(p(222,Y))v.act=115;else if(p(223,Y))v.act=116;else if(p(224,Y))v.act=117;else if(p(225,Y))v.act=119;else if(p(226,Y))v.act=123;else if(p(227,Y))v.act=124;else if(p(228,Y))v.act=126;else if(p(229,Y))v.act=127;else{if(p(230,Y)){v.te=l(z,1),v.$emit("tLAMBDA","->".$freeze(),v.ts,l(v.ts,2)),v.lambda_stack.$push(v.paren_nest),v.cs=247,z=l(z,1),G=!0,B=o;break}if(p(231,Y)){v.te=l(z,1),v.$emit_singleton_class(),v.cs=508,z=l(z,1),G=!0,B=o;break}if(p(232,Y)){v.te=l(z,1),ee=(e=[v.$tok(),v.$tok()["$[]"](-1).$chr()])[0],te=e[1],v.strings.$push_literal(ee,te,v.ts,w,!1,!1,!0),v.cs=128,G=!0,B=s;break}if(p(233,Y)){v.te=l(z,1),z=a(v.ts,1),v.stack["$[]="](v.top,v.cs),v.top=l(v.top,1),v.cs=129,G=!0,B=s;break}if(p(234,Y)){v.te=l(z,1),v.$emit_table(q("PUNCTUATION")),v.cs=255,z=l(z,1),G=!0,B=o;break}if(p(235,Y)){v.te=l(z,1),v.$emit_table(q("PUNCTUATION")),v.cs=508,z=l(z,1),G=!0,B=o;break}if(p(236,Y)){v.te=l(z,1),v.$emit_table(q("PUNCTUATION")),v.cs=508,z=l(z,1),G=!0,B=o;break}if(p(237,Y)){v.te=l(z,1),v.$emit("tOP_ASGN",v.$tok(v.ts,a(v.te,1))),v.cs=345,z=l(z,1),G=!0,B=o;break}if(p(238,Y)){v.te=l(z,1),v.$emit("tEH","?".$freeze()),v.cs=508,z=l(z,1),G=!0,B=o;break}if(p(239,Y)){v.te=l(z,1),i(v.paren_nest,0)&&v.$diagnostic("warning","triple_dot_at_eol",w,v.$range(v.ts,a(v.te,1))),v.$emit("tDOT3","...".$freeze(),v.ts,a(v.te,1)),z=a(z,1),v.cs=345,z=l(z,1),G=!0,B=o;break}if(p(240,Y)){v.te=l(z,1),v.$emit_table(q("PUNCTUATION")),v.cs=345,z=l(z,1),G=!0,B=o;break}if(p(241,Y)){v.te=l(z,1),v.$emit("tSEMI",";".$freeze()),v.command_start=!0,v.cs=508,z=l(z,1),G=!0,B=o;break}if(p(242,Y))v.te=l(z,1),v.$diagnostic("error","bare_backslash",w,v.$range(v.ts,l(v.ts,1))),z=a(z,1);else if(p(243,Y))v.te=l(z,1),v.$diagnostic("fatal","unexpected",new Map([["character",v.$tok().$inspect()["$[]"](m(1,-2,!1))]]));else{if(p(244,Y)){v.te=l(z,1),z=a(z,1),z=l(z,1),G=!0,B=o;break}if(p(245,Y)){v.te=z,z=a(z,1),i(v.lambda_stack.$last(),v.paren_nest)?(v.lambda_stack.$pop(),i(v.$tok(),"{".$freeze())?v.$emit("tLAMBEG","{".$freeze()):v.$emit("kDO_LAMBDA","do".$freeze())):i(v.$tok(),"{".$freeze())?v.$emit("tLCURLY","{".$freeze()):v.$emit_do(),i(v.$tok(),"{".$freeze())&&(v.paren_nest=l(v.paren_nest,1)),v.command_start=!0,v.cs=508,z=l(z,1),G=!0,B=o;break}if(p(246,Y)){v.te=z,z=a(z,1),v.$emit_table(q("KEYWORDS")),v.cs=134,z=l(z,1),G=!0,B=o;break}if(p(247,Y)){v.te=z,z=a(z,1),v.$emit_singleton_class(),v.cs=508,z=l(z,1),G=!0,B=o;break}if(p(248,Y)){v.te=z,z=a(z,1),v.$emit_table(q("KEYWORDS")),v.command_start=!0,v.cs=508,z=l(z,1),G=!0,B=o;break}if(p(249,Y)){v.te=z,z=a(z,1),ce=v.$numeric_literal_int(),r(v["$version?"](18,19,20))?(v.$emit("tINTEGER",ce.$to_i(v.num_base),v.ts,v.num_suffix_s),z=a(v.num_suffix_s,1)):z=v.num_xfrm.$call(ce.$to_i(v.num_base),z),z=l(z,1),G=!0,B=o;break}if(p(250,Y))v.te=z,z=a(z,1),v.$diagnostic("error","no_dot_digit_literal");else{if(p(251,Y)){v.te=z,z=a(z,1),ce=v.$tok(v.ts,v.num_suffix_s),r(v["$version?"](18,19,20))?(v.$emit("tFLOAT",v.$Float(ce),v.ts,v.num_suffix_s),z=a(v.num_suffix_s,1)):z=v.num_xfrm.$call(ce,z),z=l(z,1),G=!0,B=o;break}if(p(252,Y)){v.te=z,z=a(z,1),v.$emit("tCONSTANT"),v.cs=v.$arg_or_cmdarg(I),z=l(z,1),G=!0,B=o;break}if(p(253,Y)){v.te=z,z=a(z,1),v.$emit("tCONSTANT",v.$tok(v.ts,V),v.ts,V),z=a(V,1),z=l(z,1),G=!0,B=o;break}if(p(254,Y)){v.te=z,z=a(z,1),z=a(v.ts,1),v.stack["$[]="](v.top,v.cs),v.top=l(v.top,1),v.cs=129,G=!0,B=s;break}if(p(255,Y)){v.te=z,z=a(z,1),v.$emit_table(q("PUNCTUATION")),v.cs=255,z=l(z,1),G=!0,B=o;break}if(p(256,Y)){if(v.te=z,z=a(z,1),v.$emit("tIDENTIFIER"),h(v.static_env["$nil?"]())&&r(v.static_env["$declared?"](v.$tok()))){v.cs=247,z=l(z,1),G=!0,B=o;break}if(r(d(v.version,32))&&r(v.$tok()["$=~"](f(/^_[1-9]$/u,"\\A_[1-9]\\z","")))){v.cs=247,z=l(z,1),G=!0,B=o;break}v.cs=v.$arg_or_cmdarg(I),z=l(z,1),G=!0,B=o;break}if(p(257,Y)){v.te=z,z=a(z,1),i(V,v.te)?v.$emit("tFID"):(v.$emit("tIDENTIFIER",v.$tok(v.ts,V),v.ts,V),z=a(V,1)),v.cs=276,z=l(z,1),G=!0,B=o;break}if(p(258,Y)){v.te=z,z=a(z,1),v.$emit_table(q("PUNCTUATION")),v.cs=508,z=l(z,1),G=!0,B=o;break}if(p(259,Y)){v.te=z,z=a(z,1),v.$emit_table(q("PUNCTUATION")),v.cs=508,z=l(z,1),G=!0,B=o;break}if(p(260,Y)){v.te=z,z=a(z,1),v.$emit_table(q("PUNCTUATION")),v.cs=345,z=l(z,1),G=!0,B=o;break}if(p(261,Y)){v.te=z,z=a(z,1),v.$emit_rbrace_rparen_rbrack(),(i(v.$tok(),"}".$freeze())||i(v.$tok(),"]".$freeze()))&&(r(d(v.version,25))?v.cs=516:v.cs=313),z=l(z,1),G=!0,B=o;break}if(p(262,Y)){v.te=z,z=a(z,1),v.$emit("tLBRACK2","[".$freeze()),v.cs=345,z=l(z,1),G=!0,B=o;break}if(p(263,Y)){v.te=z,z=a(z,1),v.$emit_table(q("PUNCTUATION")),v.cs=345,z=l(z,1),G=!0,B=o;break}if(p(264,Y))v.te=z,z=a(z,1);else{if(p(265,Y)){v.te=z,z=a(z,1),v.cs=696,G=!0,B=s;break}if(p(266,Y))v.te=z,z=a(z,1),v.$diagnostic("fatal","unexpected",new Map([["character",v.$tok().$inspect()["$[]"](m(1,-2,!1))]]));else{if(p(267,Y)){z=a(v.te,1),ce=v.$numeric_literal_int(),r(v["$version?"](18,19,20))?(v.$emit("tINTEGER",ce.$to_i(v.num_base),v.ts,v.num_suffix_s),z=a(v.num_suffix_s,1)):z=v.num_xfrm.$call(ce.$to_i(v.num_base),z),z=l(z,1),G=!0,B=o;break}if(p(268,Y))z=a(v.te,1),v.$diagnostic("error","no_dot_digit_literal");else{if(p(269,Y)){z=a(v.te,1),ce=v.$tok(v.ts,v.num_suffix_s),r(v["$version?"](18,19,20))?(v.$emit("tFLOAT",v.$Float(ce),v.ts,v.num_suffix_s),z=a(v.num_suffix_s,1)):z=v.num_xfrm.$call(ce,z),z=l(z,1),G=!0,B=o;break}if(p(270,Y))z=a(v.te,1),v.$diagnostic("fatal","unexpected",new Map([["character",v.$tok().$inspect()["$[]"](m(1,-2,!1))]]));else if(p(271,Y)){if(p(104,re=v.act)){z=a(v.te,1),i(v.lambda_stack.$last(),v.paren_nest)?(v.lambda_stack.$pop(),i(v.$tok(),"{".$freeze())?v.$emit("tLAMBEG","{".$freeze()):v.$emit("kDO_LAMBDA","do".$freeze())):i(v.$tok(),"{".$freeze())?v.$emit("tLCURLY","{".$freeze()):v.$emit_do(),i(v.$tok(),"{".$freeze())&&(v.paren_nest=l(v.paren_nest,1)),v.command_start=!0,v.cs=508,z=l(z,1),G=!0,B=o;break}if(p(105,re)){z=a(v.te,1),v.$emit_table(q("KEYWORDS")),v.cs=134,z=l(z,1),G=!0,B=o;break}if(p(106,re)){z=a(v.te,1),v.$emit_singleton_class(),v.cs=508,z=l(z,1),G=!0,B=o;break}if(p(107,re)){z=a(v.te,1),v.$emit_table(q("KEYWORDS")),v.cs=345,z=l(z,1),G=!0,B=o;break}if(p(108,re)){z=a(v.te,1),v.$emit_table(q("KEYWORDS")),v.command_start=!0,v.cs=508,z=l(z,1),G=!0,B=o;break}if(p(109,re)){z=a(v.te,1),v.$emit_table(q("KEYWORDS")),v.cs=321,z=l(z,1),G=!0,B=o;break}if(p(110,re)){if(z=a(v.te,1),v.$emit_table(q("KEYWORDS")),r(v["$version?"](18))&&i(v.$tok(),"not".$freeze())){v.cs=345,z=l(z,1),G=!0,B=o;break}v.cs=276,z=l(z,1),G=!0,B=o;break}if(p(111,re)){z=a(v.te,1),r(v["$version?"](18))?(v.$emit("tIDENTIFIER"),h(v.static_env["$nil?"]())&&r(v.static_env["$declared?"](v.$tok()))||(v.cs=v.$arg_or_cmdarg(I))):v.$emit("k__ENCODING__","__ENCODING__".$freeze()),z=l(z,1),G=!0,B=o;break}if(p(112,re)){z=a(v.te,1),v.$emit_table(q("KEYWORDS")),z=l(z,1),G=!0,B=o;break}if(p(113,re)){z=a(v.te,1),ce=v.$numeric_literal_int(),r(v["$version?"](18,19,20))?(v.$emit("tINTEGER",ce.$to_i(v.num_base),v.ts,v.num_suffix_s),z=a(v.num_suffix_s,1)):z=v.num_xfrm.$call(ce.$to_i(v.num_base),z),z=l(z,1),G=!0,B=o;break}if(p(115,re)){if(z=a(v.te,1),!r(v["$version?"](18,19,20))){v.$emit("tINTEGER",v.$tok(v.ts,a(v.te,1)).$to_i(),v.ts,a(v.te,1)),z=a(z,1),z=l(z,1),G=!0,B=o;break}v.$diagnostic("error","trailing_in_number",new Map([["character",v.$tok(a(v.te,1),v.te)]]),v.$range(a(v.te,1),v.te))}else if(p(116,re)){if(z=a(v.te,1),!r(v["$version?"](18,19,20))){v.$emit("tFLOAT",v.$tok(v.ts,a(v.te,1)).$to_f(),v.ts,a(v.te,1)),z=a(z,1),z=l(z,1),G=!0,B=o;break}v.$diagnostic("error","trailing_in_number",new Map([["character",v.$tok(a(v.te,1),v.te)]]),v.$range(a(v.te,1),v.te))}else{if(p(117,re)){z=a(v.te,1),ce=v.$tok(v.ts,v.num_suffix_s),r(v["$version?"](18,19,20))?(v.$emit("tFLOAT",v.$Float(ce),v.ts,v.num_suffix_s),z=a(v.num_suffix_s,1)):z=v.num_xfrm.$call(ce,z),z=l(z,1),G=!0,B=o;break}if(p(119,re)){z=a(v.te,1),v.$emit("tCONSTANT"),v.cs=v.$arg_or_cmdarg(I),z=l(z,1),G=!0,B=o;break}if(p(123,re)){if(z=a(v.te,1),v.$emit("tIDENTIFIER"),h(v.static_env["$nil?"]())&&r(v.static_env["$declared?"](v.$tok()))){v.cs=247,z=l(z,1),G=!0,B=o;break}if(r(d(v.version,32))&&r(v.$tok()["$=~"](f(/^_[1-9]$/u,"\\A_[1-9]\\z","")))){v.cs=247,z=l(z,1),G=!0,B=o;break}v.cs=v.$arg_or_cmdarg(I),z=l(z,1),G=!0,B=o;break}if(p(124,re)){z=a(v.te,1),i(V,v.te)?v.$emit("tFID"):(v.$emit("tIDENTIFIER",v.$tok(v.ts,V),v.ts,V),z=a(V,1)),v.cs=276,z=l(z,1),G=!0,B=o;break}if(p(126,re)){z=a(v.te,1),v.$emit_table(q("PUNCTUATION")),v.cs=508,z=l(z,1),G=!0,B=o;break}if(p(127,re)){z=a(v.te,1),v.$emit_table(q("PUNCTUATION")),v.cs=345,z=l(z,1),G=!0,B=o;break}}}else if(p(272,Y))v.act=140;else if(p(273,Y))v.act=144;else{if(p(274,Y)){if(v.te=l(z,1),v.$emit("tNL",w,v.newline_s,l(v.newline_s,1)),r(g(v.version,27))){z=a(z,1),v.cs=710,z=l(z,1),G=!0,B=o;break}v.$emit("tBDOT3"),v.cs=345,z=l(z,1),G=!0,B=o;break}if(p(275,Y)){v.te=l(z,1),z=a(V,1),v.cs=516,G=!0,B=s;break}if(p(276,Y)){v.te=l(z,1),v.$emit("tNL",w,v.newline_s,l(v.newline_s,1)),z=a(z,1),v.cs=710,z=l(z,1),G=!0,B=o;break}if(p(277,Y)){if(v.te=z,z=a(z,1),r(g(v.version,27))){v.$emit("tNL",w,v.newline_s,l(v.newline_s,1)),z=a(z,1),v.cs=710,z=l(z,1),G=!0,B=o;break}}else{if(p(278,Y)){if(v.te=z,z=a(z,1),v.$emit("tNL",w,v.newline_s,l(v.newline_s,1)),r(g(v.version,27))){z=a(z,1),v.cs=710,z=l(z,1),G=!0,B=o;break}v.$emit("tBDOT2"),v.cs=345,z=l(z,1),G=!0,B=o;break}if(p(279,Y)){v.te=z,z=a(z,1),z=a(V,1),v.cs=516,G=!0,B=s;break}if(p(280,Y)){v.te=z,z=a(z,1),v.$emit("tNL",w,v.newline_s,l(v.newline_s,1)),z=a(z,1),v.cs=710,z=l(z,1),G=!0,B=o;break}if(p(281,Y)){if(z=a(v.te,1),r(g(v.version,27))){v.$emit("tNL",w,v.newline_s,l(v.newline_s,1)),z=a(z,1),v.cs=710,z=l(z,1),G=!0,B=o;break}}else{if(p(282,Y)){z=a(v.te,1),v.$emit("tNL",w,v.newline_s,l(v.newline_s,1)),z=a(z,1),v.cs=710,z=l(z,1),G=!0,B=o;break}if(p(283,Y)){if(p(140,re=v.act)){if(z=a(v.te,1),r(g(v.version,27))){v.$emit("tNL",w,v.newline_s,l(v.newline_s,1)),z=a(z,1),v.cs=710,z=l(z,1),G=!0,B=o;break}}else if(p(144,re)){z=a(v.te,1),v.$emit("tNL",w,v.newline_s,l(v.newline_s,1)),z=a(z,1),v.cs=710,z=l(z,1),G=!0,B=o;break}}else{if(p(284,Y)){v.te=l(z,1),v.$emit_comment(v.eq_begin_s,v.te),v.cs=v.cs_before_block_comment,G=!0,B=s;break}if(p(285,Y))v.te=l(z,1);else{if(p(286,Y)){v.te=z,z=a(z,1),v.$emit_comment(v.eq_begin_s,v.te),v.cs=v.cs_before_block_comment,G=!0,B=s;break}if(p(287,Y))v.te=z,z=a(z,1),v.$diagnostic("fatal","embedded_document",w,v.$range(v.eq_begin_s,l(v.eq_begin_s,"=begin".$length())));else{if(p(288,Y)){v.te=l(z,1),v.eq_begin_s=v.ts,v.cs=704,G=!0,B=s;break}if(p(289,Y))v.te=l(z,1),z=a(n,3);else{if(p(290,Y)){v.te=l(z,1),I=!0,z=a(z,1),v.cs=508,G=!0,B=s;break}if(p(291,Y)){v.te=l(z,1),z=a(z,1),z=l(z,1),G=!0,B=o;break}if(p(292,Y))v.te=z,z=a(z,1);else{if(p(293,Y)){v.te=z,z=a(z,1),v.eq_begin_s=v.ts,v.cs=704,G=!0,B=s;break}if(p(294,Y)){v.te=z,z=a(z,1),I=!0,z=a(z,1),v.cs=508,G=!0,B=s;break}if(p(295,Y)){z=a(v.te,1),I=!0,z=a(z,1),v.cs=508,G=!0,B=s;break}if(p(296,Y)){v.te=l(z,1),t=v.strings.$advance(z),z=null==(e=$(t))[0]?w:e[0],ae=null==e[1]?w:e[1],z=a(z,1),v.cs=ae,z=l(z,1),G=!0,B=o;break}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}if(r(G))continue}if(r(u(B,s))){for(D=O["$[]"](v.cs),j=N["$[]"](D),D=l(D,1);r(c(j,0));)if(j=a(j,1),D=l(D,1),51===N["$[]"](a(D,1)).valueOf())v.ts=w;if(r(G))continue;if(i(v.cs,0)){B=o;continue}if(z=l(z,1),_(z,n)){B=10;continue}}if(r(u(B,30))&&i(z,R)&&r(c(T["$[]"](v.cs),0)))P=a(T["$[]"](v.cs),1),B=15;else if(r(u(B,o)))break}return r(!1),v.p=z,r(v.token_queue["$any?"]())?v.token_queue.$shift():i(v.cs,y.$lex_error())?[!1,["$error".$freeze(),v.$range(a(z,1),z)]]:(R=v.source_pts.$size(),[!1,["$eof".$freeze(),v.$range(R,R)]])})),E.$protected(),s(E,"$version?",(function(e){return v(arguments)["$include?"](this.version)}),-1),s(E,"$stack_pop",(function(){var e=this;return e.top=a(e.top,1),e.stack["$[]"](e.top)})),s(E,"$tok",(function(e,t){var r=this;return null==e&&(e=r.ts),null==t&&(t=r.te),r.source_buffer.$slice(e,a(t,e))}),-1),s(E,"$range",(function(e,t){var r=this;return null==e&&(e=r.ts),null==t&&(t=r.te),k(k(q("Parser"),"Source"),"Range").$new(r.source_buffer,e,t)}),-1),s(E,"$emit",(function(e,t,n,a){var s,i=this;return null==t&&(t=i.$tok()),null==n&&(n=i.ts),null==a&&(a=i.te),s=[e,[t,i.$range(n,a)]],i.token_queue.$push(s),r(i.tokens)&&i.tokens.$push(s),s}),-2),s(E,"$emit_table",(function(e,t,r){var n,a=this;return null==t&&(t=a.ts),null==r&&(r=a.te),n=a.$tok(t,r),a.$emit(e["$[]"](n),n,t,r)}),-2),s(E,"$emit_do",(function(e){var t=this;return null==e&&(e=!1),r(t.cond["$active?"]())?t.$emit("kDO_COND","do".$freeze()):r(t.cmdarg["$active?"]())||r(e)?t.$emit("kDO_BLOCK","do".$freeze()):t.$emit("kDO","do".$freeze())}),-1),s(E,"$arg_or_cmdarg",(function(e){return r(e)?this.$class().$lex_en_expr_cmdarg():this.$class().$lex_en_expr_arg()})),s(E,"$emit_comment",(function(e,t){var n=this;return null==e&&(e=n.ts),null==t&&(t=n.te),r(n.comments)&&n.comments.$push(k(k(q("Parser"),"Source"),"Comment").$new(n.$range(e,t))),r(n.tokens)&&n.tokens.$push(["tCOMMENT",[n.$tok(e,t),n.$range(e,t)]]),w}),-1),s(E,"$emit_comment_from_range",(function(e,t){return this.$emit_comment(this.sharp_s,i(e,t)?a(e,2):e)})),s(E,"$diagnostic",(function(e,t,r,n,a){return null==r&&(r=w),null==n&&(n=this.$range()),null==a&&(a=[]),this.diagnostics.$process(k(q("Parser"),"Diagnostic").$new(e,t,r,n,a))}),-3),s(E,"$e_lbrace",(function(){var e=this,t=w;return e.cond.$push(!1),e.cmdarg.$push(!1),t=e.strings.$literal(),r(t)?t.$start_interp_brace():w})),s(E,"$numeric_literal_int",(function(){var e=this,t=w,n=w,s=w;return t=e.$tok(e.num_digits_s,e.num_suffix_s),r(t["$end_with?"]("_".$freeze()))?e.$diagnostic("error","trailing_in_number",new Map([["character","_".$freeze()]]),e.$range(a(e.te,1),e.te)):r(t["$empty?"]())&&i(e.num_base,8)&&r(e["$version?"](18))?t="0".$freeze():r(t["$empty?"]())?e.$diagnostic("error","empty_numeric"):i(e.num_base,8)&&r(n=t.$index(f(/[89]/u,null,"")))&&(s=l(e.num_digits_s,n),e.$diagnostic("error","invalid_octal",w,e.$range(s,l(s,1)))),t})),s(E,"$on_newline",(function(e){return this.strings.$on_newline(e)})),s(E,"$check_ambiguous_slash",(function(e){var t=this;return i(t.$tok(e,l(e,1)),"/".$freeze())?r(g(t.version,30))?t.$diagnostic("warning","ambiguous_literal",w,t.$range(e,l(e,1))):t.$diagnostic("warning","ambiguous_regexp",w,t.$range(e,l(e,1))):w})),s(E,"$emit_global_var",(function(e,t){var n=this;return null==e&&(e=n.ts),null==t&&(t=n.te),r(n.$tok(e,t)["$=~"](f(/^\$([1-9][0-9]*)$/mu,null,"")))?n.$emit("tNTH_REF",n.$tok(l(e,1),t).$to_i(),e,t):r(n.$tok()["$=~"](f(/^\$([&`'+])$/mu,null,"")))?n.$emit("tBACK_REF",n.$tok(e,t),e,t):n.$emit("tGVAR",n.$tok(e,t),e,t)}),-1),s(E,"$emit_class_var",(function(e,t){var n=this;return null==e&&(e=n.ts),null==t&&(t=n.te),r(n.$tok(e,t)["$=~"](f(/^@@[0-9]/mu,null,"")))&&n.$diagnostic("error","cvar_name",new Map([["name",n.$tok(e,t)]])),n.$emit("tCVAR",n.$tok(e,t),e,t)}),-1),s(E,"$emit_instance_var",(function(e,t){var n=this;return null==e&&(e=n.ts),null==t&&(t=n.te),r(n.$tok(e,t)["$=~"](f(/^@[0-9]/mu,null,"")))&&n.$diagnostic("error","ivar_name",new Map([["name",n.$tok(e,t)]])),n.$emit("tIVAR",n.$tok(e,t),e,t)}),-1),s(E,"$emit_rbrace_rparen_rbrack",(function(){var e=this;return e.$emit_table(q("PUNCTUATION")),r(g(e.version,24))?(e.cond.$lexpop(),e.cmdarg.$lexpop()):(e.cond.$pop(),e.cmdarg.$pop())})),s(E,"$emit_colon_with_digits",(function(e,t,n){var a=this;return r(d(a.version,27))?a.$diagnostic("error",n,new Map([["name",a.$tok(t,a.te)]]),a.$range(t,a.te)):(a.$emit("tCOLON",a.$tok(a.ts,l(a.ts,1)),a.ts,l(a.ts,1)),e=a.ts),e})),s(E,"$emit_singleton_class",(function(){var e=this;return e.$emit("kCLASS","class".$freeze(),e.ts,l(e.ts,5)),e.$emit("tLSHFT","<<".$freeze(),a(e.te,2),e.te)})),o(M[0],"PUNCTUATION",new Map([["=","tEQL"],["&","tAMPER2"],["|","tPIPE"],["!","tBANG"],["^","tCARET"],["+","tPLUS"],["-","tMINUS"],["*","tSTAR2"],["/","tDIVIDE"],["%","tPERCENT"],["~","tTILDE"],[",","tCOMMA"],[";","tSEMI"],[".","tDOT"],["..","tDOT2"],["...","tDOT3"],["[","tLBRACK2"],["]","tRBRACK"],["(","tLPAREN2"],[")","tRPAREN"],["?","tEH"],[":","tCOLON"],["&&","tANDOP"],["||","tOROP"],["-@","tUMINUS"],["+@","tUPLUS"],["~@","tTILDE"],["**","tPOW"],["->","tLAMBDA"],["=~","tMATCH"],["!~","tNMATCH"],["==","tEQ"],["!=","tNEQ"],[">","tGT"],[">>","tRSHFT"],[">=","tGEQ"],["<","tLT"],["<<","tLSHFT"],["<=","tLEQ"],["=>","tASSOC"],["::","tCOLON2"],["===","tEQQ"],["<=>","tCMP"],["[]","tAREF"],["[]=","tASET"],["{","tLCURLY"],["}","tRCURLY"],["`","tBACK_REF2"],["!@","tBANG"],["&.","tANDDOT"]])),o(M[0],"PUNCTUATION_BEGIN",new Map([["&","tAMPER"],["*","tSTAR"],["**","tDSTAR"],["+","tUPLUS"],["-","tUMINUS"],["::","tCOLON3"],["(","tLPAREN"],["{","tLBRACE"],["[","tLBRACK"]])),o(M[0],"KEYWORDS",new Map([["if","kIF_MOD"],["unless","kUNLESS_MOD"],["while","kWHILE_MOD"],["until","kUNTIL_MOD"],["rescue","kRESCUE_MOD"],["defined?","kDEFINED"],["BEGIN","klBEGIN"],["END","klEND"]])),o(M[0],"KEYWORDS_BEGIN",new Map([["if","kIF"],["unless","kUNLESS"],["while","kWHILE"],["until","kUNTIL"],["rescue","kRESCUE"],["defined?","kDEFINED"],["BEGIN","klBEGIN"],["END","klEND"]])),o(M[0],"ESCAPE_WHITESPACE",new Map([[" ","\\s"],["\r","\\r"],["\n","\\n"],["\t","\\t"],["\v","\\v"],["\f","\\f"]])),n(e.large_array_unpack("class,module,def,undef,begin,end,then,elsif,else,ensure,case,when,for,break,next,redo,retry,in,do,return,yield,super,self,nil,true,false,and,or,not,alias,__FILE__,__LINE__,__ENCODING__"),"each",[],(function(e){var t,r;return null==e&&(e=w),t=[e,(r=[e,"k"+e.$upcase()],n(q("KEYWORDS"),"[]=",r),r[r.length-1])],n(q("KEYWORDS_BEGIN"),"[]=",t),t[t.length-1]}))}(x("Parser"),0,y)},Opal.modules["parser/lexer-F1"]=function(e){var t=e.klass,r=e.truthy,n=e.send,a=e.rb_minus,s=e.def,i=e.eqeq,o=e.const_set,l=e.rb_plus,$=e.to_ary,u=e.rb_le,c=e.rb_gt,_=e.neqeq,p=e.range,m=e.rb_ge,d=e.annotate_regexp,f=e.not,h=e.rb_lt,g=e.gvars,b=e.slice,v=[],y=e.$r(v),x=e.nil,w=e.$$$;return e.add_stubs("attr_accessor,private,_lex_trans_keys=,_lex_key_spans=,_lex_index_offsets=,_lex_indicies=,_lex_trans_targs=,_lex_trans_actions=,_lex_to_state_actions=,_lex_from_state_actions=,_lex_eof_trans=,lex_start=,lex_error=,lex_en_expr_variable=,lex_en_expr_fname=,lex_en_expr_endfn=,lex_en_expr_dot=,lex_en_expr_arg=,lex_en_expr_cmdarg=,lex_en_expr_endarg=,lex_en_expr_mid=,lex_en_expr_beg=,lex_en_expr_labelarg=,lex_en_expr_value=,lex_en_expr_end=,lex_en_leading_dot=,lex_en_line_comment=,lex_en_line_begin=,lex_en_inside_string=,attr_reader,respond_to?,class,send,lambda,emit,Rational,Complex,-,Float,reset,lex_en_line_begin,new,source,==,encoding,unpack,[],source_buffer=,source_pts=,lex_en_expr_dot,lex_en_expr_fname,lex_en_expr_value,lex_en_expr_beg,lex_en_expr_mid,lex_en_expr_arg,lex_en_expr_cmdarg,lex_en_expr_end,lex_en_expr_endarg,lex_en_expr_endfn,lex_en_expr_labelarg,lex_en_inside_string,fetch,invert,push,count,pop,dedent_level,empty?,shift,+,size,<=,<<,>,!=,on_newline,emit_comment_from_range,tok,emit_global_var,stack_pop,emit_class_var,emit_instance_var,emit_table,[]=,version?,chr,push_literal,in_argdef,>=,freeze,arg_or_cmdarg,check_ambiguous_slash,diagnostic,range,active?,emit_do,slice,length,start_with?,read_character_constant,=~,declared?,!,nil?,<,emit_colon_with_digits,last,any?,emit_singleton_class,inspect,numeric_literal_int,to_i,call,to_f,emit_comment,advance,e_lbrace,close_interp_on_current_literal,emit_rbrace_rparen_rbrack,in_kwarg,end_with?,rstrip,herebody_s,herebody_s=,lex_error,protected,include?,process,literal,start_interp_brace,index,lexpop,each,upcase"),function(v,y,k){var U=t(v,null,"Lexer"),E=[U].concat(k),M=e.$r(E),q=U.$$prototype;return q.version=q.source_buffer=q.source_pts=q.strings=q.cs=q.cmdarg_stack=q.cmdarg=q.cond_stack=q.cond=q.token_queue=q._lex_actions=q.p=q.command_start=q.ts=q.te=q.stack=q.top=q.act=q.context=q.static_env=q.newline_s=q.lambda_stack=q.paren_nest=q.num_base=q.num_suffix_s=q.num_xfrm=q.eq_begin_s=q.cs_before_block_comment=q.emit_rational=q.emit_imaginary=q.emit_imaginary_rational=q.emit_integer_re=q.emit_integer_if=q.emit_integer_rescue=q.emit_imaginary_float=q.emit_float_if=q.emit_float_rescue=q.emit_integer=q.emit_float=q.tokens=q.comments=q.sharp_s=q.diagnostics=q.num_digits_s=x,function(e,t){e.$attr_accessor("_lex_trans_keys"),e.$private("_lex_trans_keys","_lex_trans_keys=")}(e.get_singleton_class(U)),U["$_lex_trans_keys="](e.large_array_unpack("0,0,0,127,0,127,0,127,0,127,0,127,0,127,0,127,58,58,58,58,46,46,0,127,58,58,60,60,62,62,10,10,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,115,115,99,99,117,117,101,101,108,116,101,101,115,115,115,115,105,105,108,108,105,105,108,108,58,58,0,127,10,10,0,127,9,92,10,10,9,92,58,58,98,98,101,101,103,103,105,105,110,110,0,127,61,61,9,92,9,92,9,92,9,92,9,92,10,10,0,127,0,127,61,126,93,93,0,127,0,127,10,10,34,34,10,10,39,39,0,127,10,96,96,96,0,127,0,127,0,127,0,127,0,127,0,127,58,58,58,58,0,127,43,57,48,57,48,57,48,57,48,57,115,115,99,99,117,117,101,101,99,99,117,117,101,101,0,127,58,58,9,92,9,92,9,92,9,92,9,92,9,92,60,60,10,10,9,92,9,92,10,10,10,10,10,10,10,10,46,46,101,101,103,103,105,105,110,110,69,69,78,78,68,68,95,95,95,95,0,26,0,0,36,64,0,127,48,57,0,127,0,127,0,127,0,127,9,32,0,0,61,126,10,10,10,10,0,127,0,127,48,57,115,115,38,38,42,42,64,64,58,58,60,61,62,62,61,126,61,61,61,62,0,127,0,127,0,127,0,127,0,127,0,127,0,127,93,93,10,10,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,124,124,0,127,0,127,9,32,10,10,10,10,46,46,10,10,0,0,0,127,0,127,61,61,0,0,9,32,0,0,61,126,10,10,10,10,38,38,42,42,64,64,60,61,62,62,61,126,61,61,61,62,0,127,93,93,10,10,124,124,0,126,0,127,0,61,9,61,9,61,0,0,9,61,9,62,46,46,46,46,58,58,9,32,0,0,0,127,0,0,9,124,0,0,10,10,10,10,0,0,9,61,58,58,60,60,62,62,9,32,10,10,0,127,102,102,101,101,110,110,104,104,0,127,0,127,0,127,0,0,0,127,10,10,0,123,9,32,10,10,10,10,10,10,0,0,111,111,0,0,0,127,0,127,9,32,0,0,10,10,10,10,10,10,0,0,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,58,61,0,0,61,126,61,61,0,0,0,0,0,0,9,32,61,61,9,32,61,126,10,10,10,10,0,127,38,61,0,0,42,61,61,61,9,92,9,92,9,92,46,46,46,46,10,10,0,26,0,127,0,127,61,61,0,0,61,126,61,62,0,0,0,0,0,0,0,0,61,126,0,127,48,57,38,38,42,42,64,64,60,61,62,62,61,61,61,62,0,127,48,57,0,127,124,124,64,64,60,61,0,0,10,34,10,39,96,96,62,62,61,126,61,62,0,26,0,127,0,127,0,127,0,0,10,10,0,0,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,61,126,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,0,61,124,0,92,9,32,0,0,10,10,10,10,10,10,0,0,0,127,0,127,9,32,0,0,10,10,10,10,10,10,0,0,0,127,0,127,61,61,0,0,9,32,0,0,61,126,10,10,10,10,0,127,0,127,48,57,61,61,38,61,0,0,0,0,42,61,61,62,46,57,46,46,10,10,48,101,48,95,46,120,48,114,43,57,48,105,102,102,0,0,101,105,0,0,0,0,48,114,48,114,48,114,48,114,105,114,102,102,0,0,101,105,115,115,0,0,0,0,48,114,48,114,48,114,48,114,48,114,48,114,48,114,48,114,46,114,48,114,46,114,48,114,58,58,60,61,62,62,61,126,61,61,61,62,0,127,0,127,0,0,0,127,0,127,0,127,0,127,0,127,0,127,0,0,10,10,0,0,0,0,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,9,92,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,0,61,124,0,0,9,92,9,92,9,92,46,46,46,46,10,10,46,46,10,10,10,61,10,10,10,101,10,110,10,100,10,10,0,95,9,32,0,0,10,10,10,10,98,98,9,32,10,10,95,95,0")),function(e,t){e.$attr_accessor("_lex_key_spans"),e.$private("_lex_key_spans","_lex_key_spans=")}(e.get_singleton_class(U)),U["$_lex_key_spans="](e.large_array_unpack("0,128,128,128,128,128,128,128,1,1,1,128,1,1,1,1,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,1,1,1,1,9,1,1,1,1,1,1,1,1,128,1,128,84,1,84,1,1,1,1,1,1,128,1,84,84,84,84,84,1,128,128,66,1,128,128,1,1,1,1,128,87,1,128,128,128,128,128,128,1,1,128,15,10,10,10,10,1,1,1,1,1,1,1,128,1,84,84,84,84,84,84,1,1,84,84,1,1,1,1,1,1,1,1,1,1,1,1,1,1,27,0,29,128,10,128,128,128,128,24,0,66,1,1,128,128,10,1,1,1,1,1,2,1,66,1,2,128,128,128,128,128,128,128,1,1,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,1,128,128,24,1,1,1,1,0,128,128,1,0,24,0,66,1,1,1,1,1,2,1,66,1,2,128,1,1,1,127,128,62,53,53,0,53,54,1,1,1,24,0,128,0,116,0,1,1,0,53,1,1,1,24,1,128,1,1,1,1,128,128,128,0,128,1,124,24,1,1,1,0,1,0,128,128,24,0,1,1,1,0,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,4,0,66,1,0,0,0,24,1,24,66,1,1,128,24,0,20,1,84,84,84,1,1,1,27,128,128,1,0,66,2,0,0,0,0,66,128,10,1,1,1,2,1,1,2,128,10,128,1,1,2,0,25,30,1,1,66,2,27,128,128,128,0,1,0,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,66,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,0,64,93,24,0,1,1,1,0,128,128,24,0,1,1,1,0,128,128,1,0,24,0,66,1,1,128,128,10,1,24,0,0,20,2,12,1,1,54,48,75,67,15,58,1,0,5,0,0,67,67,67,67,10,1,0,5,1,0,0,67,67,67,67,67,67,67,67,69,67,69,67,1,2,1,66,1,2,128,128,0,128,128,128,128,128,128,0,1,0,0,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,84,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,0,64,0,84,84,84,1,1,1,1,1,52,1,92,101,91,1,96,24,0,1,1,1,24,1,1")),function(e,t){e.$attr_accessor("_lex_index_offsets"),e.$private("_lex_index_offsets","_lex_index_offsets=")}(e.get_singleton_class(U)),U["$_lex_index_offsets="](e.large_array_unpack("0,0,129,258,387,516,645,774,903,905,907,909,1038,1040,1042,1044,1046,1175,1304,1433,1562,1691,1820,1949,2078,2207,2336,2465,2594,2723,2852,2981,3110,3239,3368,3370,3372,3374,3376,3386,3388,3390,3392,3394,3396,3398,3400,3402,3531,3533,3662,3747,3749,3834,3836,3838,3840,3842,3844,3846,3975,3977,4062,4147,4232,4317,4402,4404,4533,4662,4729,4731,4860,4989,4991,4993,4995,4997,5126,5214,5216,5345,5474,5603,5732,5861,5990,5992,5994,6123,6139,6150,6161,6172,6183,6185,6187,6189,6191,6193,6195,6197,6326,6328,6413,6498,6583,6668,6753,6838,6840,6842,6927,7012,7014,7016,7018,7020,7022,7024,7026,7028,7030,7032,7034,7036,7038,7040,7068,7069,7099,7228,7239,7368,7497,7626,7755,7780,7781,7848,7850,7852,7981,8110,8121,8123,8125,8127,8129,8131,8134,8136,8203,8205,8208,8337,8466,8595,8724,8853,8982,9111,9113,9115,9244,9373,9502,9631,9760,9889,10018,10147,10276,10405,10534,10663,10792,10921,11050,11179,11308,11437,11566,11695,11824,11953,12082,12211,12340,12469,12598,12727,12856,12985,13114,13243,13372,13501,13630,13759,13888,14017,14146,14275,14404,14533,14662,14791,14920,15049,15178,15307,15436,15565,15694,15823,15952,16081,16210,16339,16468,16597,16726,16855,16984,17113,17242,17371,17500,17629,17758,17887,18016,18145,18274,18403,18532,18661,18790,18919,19048,19177,19306,19435,19564,19693,19822,19824,19953,20082,20107,20109,20111,20113,20115,20116,20245,20374,20376,20377,20402,20403,20470,20472,20474,20476,20478,20480,20483,20485,20552,20554,20557,20686,20688,20690,20692,20820,20949,21012,21066,21120,21121,21175,21230,21232,21234,21236,21261,21262,21391,21392,21509,21510,21512,21514,21515,21569,21571,21573,21575,21600,21602,21731,21733,21735,21737,21739,21868,21997,22126,22127,22256,22258,22383,22408,22410,22412,22414,22415,22417,22418,22547,22676,22701,22702,22704,22706,22708,22709,22838,22967,23096,23225,23354,23483,23612,23741,23870,23999,24128,24257,24386,24515,24644,24773,24902,25031,25036,25037,25104,25106,25107,25108,25109,25134,25136,25161,25228,25230,25232,25361,25386,25387,25408,25410,25495,25580,25665,25667,25669,25671,25699,25828,25957,25959,25960,26027,26030,26031,26032,26033,26034,26101,26230,26241,26243,26245,26247,26250,26252,26254,26257,26386,26397,26526,26528,26530,26533,26534,26560,26591,26593,26595,26662,26665,26693,26822,26951,27080,27081,27083,27084,27213,27342,27471,27600,27729,27858,27987,28116,28245,28374,28503,28632,28761,28890,29019,29148,29277,29406,29535,29664,29793,29922,30051,30180,30309,30438,30567,30696,30825,30954,31083,31212,31341,31470,31599,31728,31857,31986,32115,32244,32373,32502,32631,32760,32889,33018,33147,33276,33405,33534,33663,33792,33921,34050,34179,34308,34437,34566,34695,34824,34953,35020,35149,35278,35407,35536,35665,35794,35923,36052,36181,36310,36439,36568,36697,36826,36955,37084,37213,37342,37471,37600,37729,37858,37987,38116,38245,38246,38311,38405,38430,38431,38433,38435,38437,38438,38567,38696,38721,38722,38724,38726,38728,38729,38858,38987,38989,38990,39015,39016,39083,39085,39087,39216,39345,39356,39358,39383,39384,39385,39406,39409,39422,39424,39426,39481,39530,39606,39674,39690,39749,39751,39752,39758,39759,39760,39828,39896,39964,40032,40043,40045,40046,40052,40054,40055,40056,40124,40192,40260,40328,40396,40464,40532,40600,40670,40738,40808,40876,40878,40881,40883,40950,40952,40955,41084,41213,41214,41343,41472,41601,41730,41859,41988,41989,41991,41992,41993,42122,42251,42380,42509,42638,42767,42896,43025,43154,43283,43412,43541,43670,43799,43928,44057,44186,44315,44444,44573,44702,44831,44960,45089,45218,45347,45476,45605,45734,45863,45992,46121,46250,46379,46508,46637,46766,46851,46980,47109,47238,47367,47496,47625,47754,47883,48012,48141,48270,48399,48528,48657,48786,48915,49044,49173,49302,49431,49560,49689,49818,49947,50076,50205,50334,50463,50592,50721,50850,50979,51108,51237,51366,51495,51624,51753,51882,52011,52140,52269,52398,52527,52656,52785,52914,53043,53172,53301,53430,53559,53688,53817,53946,54075,54204,54333,54462,54591,54720,54849,54978,55107,55236,55237,55302,55303,55388,55473,55558,55560,55562,55564,55566,55568,55621,55623,55716,55818,55910,55912,56009,56034,56035,56037,56039,56041,56066,56068")),function(e,t){e.$attr_accessor("_lex_indicies"),e.$private("_lex_indicies","_lex_indicies=")}(e.get_singleton_class(U)),U["$_lex_indicies="](e.large_array_unpack("2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,2,1,2,1,1,2,2,1,1,1,3,1,1,4,4,4,4,4,4,4,4,4,4,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1,2,2,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,1,2,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,5,5,5,5,5,5,5,5,5,5,2,2,2,2,2,2,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,2,2,2,2,5,2,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,2,2,2,2,2,5,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,7,7,7,7,7,7,7,7,7,7,2,2,2,2,2,2,2,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,2,2,2,2,7,2,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,2,2,2,2,2,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9,9,9,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,8,8,8,8,9,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,8,8,8,8,8,9,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,10,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,14,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,13,13,13,13,13,13,13,13,15,12,12,12,12,14,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12,12,12,12,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12,12,12,12,12,13,15,12,12,16,17,12,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,20,18,18,18,18,18,18,18,18,18,18,18,18,18,18,19,19,19,19,19,19,19,19,19,19,21,18,18,18,18,20,18,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,18,18,18,18,19,18,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,18,18,18,18,18,19,21,18,23,22,24,22,25,22,22,22,22,22,22,22,22,22,22,27,22,27,27,27,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,27,22,22,22,22,28,29,22,30,22,31,32,33,34,35,28,22,22,22,22,22,22,22,22,22,22,36,22,37,33,38,39,22,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,40,41,33,42,26,22,26,26,26,26,26,26,26,26,43,26,26,26,26,26,26,26,26,44,26,26,45,26,46,26,26,26,47,48,22,42,22,26,22,22,22,22,22,22,22,22,22,49,22,49,49,49,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,49,22,22,22,22,50,51,22,52,22,53,54,55,56,57,50,22,22,22,22,22,22,22,22,22,22,58,22,59,55,60,61,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,62,63,55,24,19,22,19,19,19,19,19,19,19,19,64,19,19,19,19,19,19,19,19,65,19,19,66,19,67,19,19,19,68,69,22,24,22,19,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,19,22,19,19,19,19,19,70,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,22,19,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,19,22,19,19,19,19,71,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,22,19,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,19,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,72,19,19,19,19,19,19,19,22,22,22,22,22,19,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,19,22,19,19,73,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,22,19,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,19,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,74,19,19,19,19,19,22,22,22,22,22,19,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,19,22,19,19,19,19,70,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,22,19,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,19,22,19,19,19,19,19,19,19,19,19,19,19,19,19,75,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,22,19,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,19,22,19,19,19,19,19,19,19,19,19,19,19,76,19,19,19,19,19,19,19,77,19,19,19,19,19,19,22,22,22,22,22,19,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,19,22,19,19,19,19,78,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,22,19,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,19,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,79,19,19,19,19,19,19,19,22,22,22,22,22,19,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,19,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,70,19,19,19,19,19,19,19,22,22,22,22,22,19,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,19,22,19,19,19,19,19,19,19,19,80,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,22,19,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,19,22,19,19,19,19,19,19,19,19,19,19,19,70,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,22,19,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,19,22,19,19,19,19,19,19,19,81,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,22,19,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,19,22,19,19,19,19,19,19,19,19,82,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,22,19,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,19,19,19,19,19,19,19,19,19,21,22,22,22,22,20,22,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,19,22,19,19,19,19,19,19,19,19,19,19,19,74,19,19,19,19,19,19,19,19,19,19,19,19,19,19,22,22,22,22,22,19,84,83,85,83,86,83,55,83,87,83,83,83,83,83,83,83,88,83,89,83,90,83,55,83,91,83,55,83,92,83,86,83,94,93,95,95,95,95,95,95,95,95,95,97,95,97,97,97,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,97,95,95,95,95,95,95,95,98,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,95,99,95,95,96,95,96,96,96,100,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,95,95,95,95,95,96,101,95,95,95,95,95,95,95,95,95,95,103,95,103,103,103,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,103,95,95,95,95,95,95,95,104,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,95,105,95,95,102,95,102,102,102,106,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,95,95,95,95,95,102,108,107,108,108,108,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,108,107,107,107,107,107,107,107,109,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,110,107,111,107,112,107,112,112,112,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,112,107,107,107,107,107,107,107,113,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,114,107,115,116,118,117,119,117,120,117,121,117,122,117,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,123,123,123,123,123,123,123,123,123,123,124,124,124,124,124,124,124,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,124,124,124,124,124,124,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,124,124,124,124,124,123,125,115,126,127,126,126,126,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,126,115,115,128,115,115,115,115,115,115,115,115,115,115,115,115,129,129,129,129,129,129,129,129,129,129,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,130,115,131,132,131,131,131,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,131,115,115,133,115,115,115,115,115,115,115,115,115,115,115,115,134,134,134,134,134,134,134,134,134,134,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,135,115,137,138,137,137,137,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,137,136,136,139,136,136,136,136,136,136,136,136,136,136,136,136,140,140,140,140,140,140,140,140,140,140,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,141,136,143,144,143,143,143,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,143,142,142,145,142,142,142,142,142,142,142,142,142,142,142,142,146,146,146,146,146,146,146,146,146,146,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,147,142,143,148,143,143,143,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,143,142,142,145,142,142,142,142,142,142,142,142,142,142,142,142,146,146,146,146,146,146,146,146,146,146,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,147,142,127,115,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,151,151,149,151,149,151,151,149,149,151,151,151,152,151,151,153,153,153,153,153,153,153,153,153,153,151,151,151,151,151,151,151,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,149,151,149,149,150,151,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,149,149,149,151,149,150,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,151,151,151,151,151,151,151,151,151,151,149,149,149,149,149,149,149,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,149,149,149,149,151,149,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,149,149,149,149,149,151,154,151,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,151,149,154,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,156,149,149,149,149,157,149,149,149,149,149,158,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,125,149,149,149,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,149,149,149,149,155,159,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,149,149,149,158,149,155,161,161,161,161,161,161,161,161,161,161,162,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,160,160,160,160,160,160,160,160,160,160,161,161,161,161,161,161,161,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,161,161,161,161,160,161,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,161,161,161,161,161,160,164,163,167,166,162,161,167,168,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,156,149,149,149,149,157,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,149,149,149,149,155,159,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,149,149,149,149,149,155,170,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,167,169,167,170,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,172,115,115,115,115,115,115,115,115,115,115,115,115,115,115,171,171,171,171,171,171,171,171,171,171,173,115,115,174,115,172,115,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,115,115,115,115,171,115,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,115,115,115,115,115,171,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,172,149,149,149,149,149,149,149,149,149,149,149,149,149,149,171,171,171,171,171,171,171,171,171,171,173,149,149,174,149,172,149,171,171,171,171,171,171,175,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,149,149,149,149,171,149,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,149,149,149,149,149,171,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,172,149,149,149,149,149,149,149,149,149,149,149,149,149,149,171,171,171,171,171,171,171,171,171,171,173,149,149,174,149,172,149,171,171,171,171,171,171,171,171,176,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,149,149,149,149,171,149,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,149,149,149,149,149,171,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,172,149,149,149,149,149,149,149,149,149,149,149,149,149,149,171,171,171,171,171,171,171,171,171,171,173,149,149,174,149,172,149,171,171,171,171,171,171,171,171,171,171,171,171,171,177,171,171,171,171,171,171,171,171,171,171,171,171,149,149,149,149,171,149,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,149,149,149,149,149,171,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,172,149,149,149,149,149,149,149,149,149,149,149,149,149,149,171,171,171,171,171,171,171,171,171,171,173,149,149,174,149,172,149,171,171,171,177,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,149,149,149,149,171,149,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,149,149,149,149,149,171,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,180,178,178,178,178,178,178,178,178,178,178,178,178,178,178,179,179,179,179,179,179,179,179,179,179,181,178,178,178,178,180,178,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,178,178,178,178,179,178,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,178,178,178,178,178,179,181,178,178,182,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,184,184,184,184,184,184,184,184,184,184,183,183,183,183,183,183,183,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,183,183,183,183,184,183,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,183,183,183,183,183,184,186,185,186,185,185,187,187,187,187,187,187,187,187,187,187,185,187,187,187,187,187,187,187,187,187,187,185,188,188,188,188,188,188,188,188,188,188,185,190,190,190,190,190,190,190,190,190,190,189,191,191,191,191,191,191,191,191,191,191,189,193,192,194,192,195,192,196,192,198,197,199,197,200,197,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,201,201,201,201,201,201,201,201,201,201,183,183,183,183,183,183,183,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,183,183,183,183,201,183,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,183,183,183,183,183,201,202,189,203,204,203,203,203,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,203,189,189,205,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,206,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,207,189,208,209,208,208,208,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,208,189,189,210,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,211,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,212,189,214,215,214,214,214,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,214,213,213,216,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,217,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,218,213,220,221,220,220,220,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,220,219,219,222,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,223,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,224,219,220,221,220,220,220,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,220,219,219,222,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,225,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,224,219,220,226,220,220,220,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,220,219,219,222,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,223,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,224,219,227,189,204,189,229,230,229,229,229,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,229,228,228,231,228,228,232,228,228,228,228,228,228,228,233,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,234,228,236,230,236,236,236,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,236,235,235,231,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,234,235,239,238,241,240,242,237,243,237,244,228,246,245,247,245,248,245,249,245,250,245,251,245,252,245,253,245,254,245,255,245,245,245,255,245,245,245,245,245,256,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,255,245,257,258,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,259,2,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,0,0,0,0,0,0,0,0,0,0,260,260,260,260,260,260,260,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,260,260,260,260,0,260,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,260,260,260,260,260,0,4,4,4,4,4,4,4,4,4,4,260,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,5,5,5,5,5,5,5,5,5,5,261,261,261,261,261,261,261,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,261,261,261,261,5,261,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,261,261,261,261,261,5,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,7,7,7,7,7,7,7,7,7,7,262,262,262,262,262,262,262,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,262,262,262,262,7,262,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,262,262,262,262,262,7,264,265,265,265,264,265,265,265,265,266,267,266,266,266,265,265,265,265,265,265,265,265,265,265,265,265,264,265,265,265,265,265,266,268,265,269,270,271,272,265,265,265,273,274,265,274,265,275,265,265,265,265,265,265,265,265,265,265,276,265,277,278,279,265,265,280,281,280,280,282,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,283,284,265,275,285,275,286,287,288,289,290,291,263,263,292,263,263,263,293,294,295,263,263,296,297,298,299,263,300,263,301,263,265,302,265,274,265,263,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,304,303,303,303,303,303,303,303,303,303,303,303,303,303,303,263,263,263,263,263,263,263,263,263,263,303,303,303,304,303,304,303,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,303,303,303,303,263,303,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,303,303,303,303,303,263,266,305,266,266,266,305,305,305,305,305,305,305,305,305,305,305,305,305,305,305,305,305,305,266,305,306,275,307,307,275,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,275,307,308,309,310,311,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,9,9,312,9,312,9,9,312,312,9,9,9,314,9,9,315,315,315,315,315,315,315,315,315,315,9,9,9,9,9,9,9,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,312,9,312,312,313,9,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,312,312,312,9,312,313,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,313,313,313,313,313,313,313,313,313,313,316,316,316,316,316,316,316,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,316,316,316,316,313,316,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,316,316,316,316,316,313,315,315,315,315,315,315,315,315,315,315,316,317,307,275,307,275,307,275,307,319,318,275,320,307,275,307,321,275,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,275,312,275,307,275,275,307,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,304,303,303,303,303,303,303,303,303,303,303,303,303,303,303,280,280,280,280,280,280,280,280,280,280,303,303,303,304,303,304,303,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,303,303,303,303,280,303,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,303,303,303,303,303,280,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,304,322,322,322,322,322,322,322,322,322,322,322,322,322,322,280,280,280,280,280,280,280,280,280,280,322,322,322,304,322,304,322,280,280,280,280,323,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,322,322,322,322,280,322,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,322,322,322,322,322,280,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,304,322,322,322,322,322,322,322,322,322,322,322,322,322,322,280,280,280,280,280,280,280,280,280,280,322,322,322,304,322,304,322,280,280,280,280,280,280,324,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,322,322,322,322,280,322,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,322,322,322,322,322,280,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,304,322,322,322,322,322,322,322,322,322,322,322,322,322,322,280,280,280,280,280,280,280,280,280,280,322,322,322,304,322,304,322,280,280,280,280,280,280,280,280,325,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,322,322,322,322,280,322,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,322,322,322,322,322,280,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,304,322,322,322,322,322,322,322,322,322,322,322,322,322,322,280,280,280,280,280,280,280,280,280,280,322,322,322,304,322,304,322,280,280,280,280,280,280,280,280,280,280,280,280,280,326,280,280,280,280,280,280,280,280,280,280,280,280,322,322,322,322,280,322,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,322,322,322,322,322,280,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,304,322,322,322,322,322,322,322,322,322,322,322,322,322,322,280,280,280,280,280,280,280,280,280,280,322,322,322,304,322,304,322,280,280,280,280,280,280,280,280,280,280,280,280,280,327,280,280,280,280,280,280,280,280,280,280,280,280,322,322,322,322,280,322,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,322,322,322,322,322,280,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,304,322,322,322,322,322,322,322,322,322,322,322,322,322,322,280,280,280,280,280,280,280,280,280,280,322,322,322,304,322,304,322,280,280,280,326,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,322,322,322,322,280,322,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,322,322,322,322,322,280,321,312,267,312,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,329,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,330,331,263,263,263,263,263,332,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,333,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,334,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,335,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,336,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,337,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,338,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,339,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,340,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,341,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,342,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,343,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,339,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,344,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,343,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,345,263,346,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,347,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,348,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,341,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,341,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,349,263,263,263,263,263,263,263,263,263,263,263,263,350,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,351,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,352,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,341,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,353,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,354,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,341,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,355,263,263,263,263,263,263,263,263,263,263,356,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,357,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,341,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,358,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,348,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,359,263,263,263,263,263,263,263,263,263,341,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,360,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,304,361,361,361,361,361,361,361,361,361,361,361,361,361,361,263,263,263,263,263,263,263,263,263,263,361,361,361,304,361,304,361,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,361,361,361,361,263,361,263,263,263,263,263,263,263,263,362,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,361,361,361,361,361,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,363,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,364,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,365,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,366,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,367,263,368,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,369,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,341,263,263,263,370,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,341,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,341,263,263,263,263,263,263,263,263,263,263,263,263,263,263,371,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,372,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,357,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,373,263,263,263,263,263,263,263,263,263,263,263,263,263,295,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,355,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,341,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,341,263,263,263,263,263,263,263,341,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,374,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,375,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,376,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,357,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,377,263,263,263,378,263,263,263,263,263,379,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,379,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,341,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,341,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,380,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,381,263,263,263,263,263,263,263,263,263,263,263,263,263,263,382,383,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,341,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,384,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,357,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,385,263,263,386,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,341,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,352,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,387,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,388,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,370,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,389,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,295,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,390,263,263,263,263,263,263,263,263,263,384,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,352,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,263,263,391,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,392,263,263,263,263,263,263,263,393,263,263,263,263,263,263,263,394,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,370,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,358,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,378,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,395,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,352,263,263,263,376,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,396,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,397,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,304,328,328,328,328,328,328,328,328,328,328,328,328,328,328,263,263,263,263,263,263,263,263,263,263,328,328,328,304,328,304,328,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,263,328,263,263,263,263,263,263,263,263,263,263,263,346,263,263,263,263,263,263,263,263,263,263,263,263,263,263,328,328,328,328,328,263,275,307,399,400,400,400,399,400,400,400,400,401,400,401,401,401,400,400,400,400,400,400,400,400,400,400,400,400,399,400,400,400,400,400,401,400,400,402,400,400,400,400,400,400,400,400,400,400,403,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,400,404,400,400,398,400,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,400,400,400,400,400,398,405,405,405,405,405,405,405,405,405,405,405,405,405,405,405,405,405,405,405,405,405,405,405,405,405,405,405,405,405,405,405,405,405,14,405,405,405,405,405,405,405,405,405,405,405,405,405,405,13,13,13,13,13,13,13,13,13,13,15,405,405,405,405,14,405,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,405,405,405,405,13,405,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,405,405,405,405,405,13,401,406,401,401,401,406,406,406,406,406,406,406,406,406,406,406,406,406,406,406,406,406,406,401,406,407,408,409,410,411,405,412,405,413,415,416,416,416,415,416,416,416,416,417,418,417,417,417,416,416,416,416,416,416,416,416,416,416,416,416,415,416,416,416,416,416,417,419,416,420,416,421,422,416,416,416,423,424,416,424,416,421,416,416,416,416,416,416,416,416,416,416,416,416,425,426,427,416,416,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,429,430,416,421,414,421,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,416,431,416,424,416,414,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,433,432,432,432,432,432,432,432,432,432,432,432,432,432,432,414,414,414,414,414,414,414,414,414,414,432,432,432,432,432,433,432,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,432,432,432,432,414,432,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,414,432,432,432,432,432,414,435,434,436,417,437,417,417,417,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,417,437,438,421,439,439,421,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,421,439,440,441,442,443,421,439,421,439,421,439,421,444,439,421,439,446,421,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,421,445,421,439,421,421,439,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,433,447,447,447,447,447,447,447,447,447,447,447,447,447,447,428,428,428,428,428,428,428,428,428,428,447,447,447,447,447,433,447,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,447,447,447,447,428,447,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,447,447,447,447,447,428,446,445,418,445,421,439,449,448,448,448,449,448,448,448,448,450,451,450,450,450,448,448,448,448,448,448,448,448,448,448,448,448,449,448,448,448,448,448,450,448,448,452,448,24,453,448,454,448,455,24,55,456,57,24,448,448,448,448,448,448,448,448,448,448,457,448,458,55,459,460,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,55,461,55,24,448,448,448,448,448,448,448,448,448,448,462,448,448,448,448,448,448,448,448,463,448,448,464,448,465,448,448,448,68,69,448,24,448,466,466,466,466,466,466,466,466,466,450,466,450,450,450,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,450,466,466,466,466,50,51,466,52,466,53,54,55,56,57,50,466,466,466,466,466,466,466,466,466,466,58,466,59,55,60,61,466,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,62,63,55,24,19,466,19,19,19,19,19,19,19,19,64,19,19,19,19,19,19,19,19,65,19,19,66,19,67,19,19,19,68,69,466,24,466,19,467,468,468,468,467,468,468,468,468,55,469,55,55,55,468,468,468,468,468,468,468,468,468,468,468,468,467,468,468,468,468,468,55,468,468,468,468,468,468,468,468,468,468,468,468,468,468,468,468,468,468,468,468,468,468,468,468,468,468,468,468,55,468,55,469,55,55,55,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,55,18,18,18,18,18,24,18,18,18,18,18,18,18,55,18,18,18,18,18,18,18,18,18,18,18,18,18,18,55,18,55,469,55,55,55,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,55,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,55,18,470,55,469,55,55,55,471,471,471,471,471,471,471,471,471,471,471,471,471,471,471,471,471,471,55,471,471,471,471,471,471,471,471,471,472,471,471,471,471,471,471,471,471,471,471,471,471,471,471,471,471,471,471,55,471,55,469,55,55,55,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,55,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,55,55,18,473,467,55,467,475,474,477,478,477,477,477,476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,477,476,479,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,20,467,467,467,467,467,467,467,467,467,467,467,467,467,467,19,19,19,19,19,19,19,19,19,19,21,467,467,467,467,20,467,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,467,467,467,467,19,467,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,467,467,467,467,467,19,480,55,469,55,55,55,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,55,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,55,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,24,467,481,482,483,484,485,486,55,469,55,55,55,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,55,467,467,467,467,467,467,467,467,467,24,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,55,467,55,474,24,487,24,487,488,489,488,488,488,476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,488,476,490,487,491,491,491,491,491,491,491,491,491,27,491,27,27,27,491,491,491,491,491,491,491,491,491,491,491,491,491,491,491,491,491,491,27,491,491,491,491,28,29,491,30,491,31,32,33,34,35,28,491,491,491,491,491,491,491,491,491,491,36,491,37,33,38,39,491,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,40,41,33,42,26,491,26,26,26,26,26,26,26,26,43,26,26,26,26,26,26,26,26,44,26,26,45,26,46,26,26,26,47,48,491,42,491,26,55,487,492,487,493,487,494,487,495,94,94,94,495,94,94,94,94,496,94,496,496,496,94,94,94,94,94,94,94,94,94,94,94,94,495,94,94,94,94,94,496,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,94,497,94,94,96,94,96,96,96,100,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,94,94,94,94,94,96,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,498,93,93,93,93,93,93,93,93,93,93,93,93,93,93,96,96,96,96,96,96,96,96,96,96,94,93,93,93,93,498,93,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,93,93,93,93,96,93,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,93,93,93,93,93,96,499,499,499,499,499,499,499,499,499,97,499,97,97,97,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,97,499,499,499,499,499,499,499,98,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,499,99,499,499,96,499,96,96,96,100,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,499,499,499,499,499,96,500,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,498,499,499,499,499,499,499,499,499,499,499,499,499,499,499,96,96,96,96,96,96,96,96,96,96,94,499,499,499,499,498,499,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,499,499,499,499,96,499,96,96,96,96,96,96,96,96,96,96,96,96,96,96,501,96,96,96,96,96,96,96,96,96,96,96,499,499,499,499,499,96,101,499,503,502,502,502,503,502,502,502,502,504,502,504,504,504,502,502,502,502,502,502,502,502,502,502,502,502,503,502,502,502,502,502,504,502,502,505,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,506,502,502,502,502,502,502,502,507,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,508,502,504,509,504,504,504,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,504,509,510,511,512,513,515,514,516,517,514,518,520,521,521,521,520,521,521,521,521,522,523,522,522,522,521,521,521,521,521,521,521,521,521,521,521,521,520,521,521,521,521,521,522,521,521,524,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,521,525,521,521,519,521,519,519,519,519,519,519,519,519,526,519,519,519,519,519,519,519,519,527,519,519,528,519,529,519,519,519,521,521,521,521,521,519,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,519,519,519,519,519,519,519,519,519,519,530,530,530,530,530,530,530,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,530,530,530,530,519,530,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,530,530,530,530,530,519,522,531,522,522,522,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,522,531,532,533,534,535,536,538,537,539,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,519,540,519,519,519,519,519,541,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,519,540,519,519,519,519,542,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,519,540,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,543,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,519,540,519,519,544,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,519,540,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,545,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,519,540,519,519,519,519,541,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,519,540,519,519,519,519,519,519,519,519,519,519,519,519,519,546,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,519,540,519,519,519,519,519,519,519,519,519,519,519,547,519,519,519,519,519,519,519,548,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,519,540,519,519,519,519,549,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,519,540,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,550,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,519,540,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,541,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,519,540,519,519,519,519,519,519,519,519,551,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,519,540,519,519,519,519,519,519,519,519,519,519,519,541,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,519,540,519,519,519,519,519,519,519,552,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,519,540,519,519,519,519,519,519,519,519,553,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,519,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,540,540,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,519,540,519,519,519,519,519,519,519,519,519,519,519,545,519,519,519,519,519,519,519,519,519,519,519,519,519,519,540,540,540,540,540,519,555,125,125,125,555,125,125,125,125,556,557,556,556,556,125,125,125,125,125,125,125,125,125,125,125,125,555,125,125,125,125,125,556,558,125,559,125,560,561,125,562,125,563,564,125,565,566,567,125,125,125,125,125,125,125,125,125,125,568,125,569,570,571,572,125,573,574,573,573,575,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,576,577,125,578,579,125,580,581,582,583,584,585,554,554,586,554,554,554,587,588,589,554,554,590,591,592,593,554,594,554,595,554,596,597,125,578,125,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,602,601,601,603,601,604,606,607,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,608,605,610,609,611,612,613,556,614,556,556,556,614,614,614,614,614,614,614,614,614,614,614,614,614,614,614,614,614,614,556,614,616,615,618,619,618,618,618,617,617,617,617,617,617,617,617,617,617,617,617,617,617,617,617,617,617,618,617,125,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,125,620,621,622,623,624,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,626,625,625,625,625,625,625,625,625,625,625,626,626,626,626,626,626,626,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,626,626,626,626,626,626,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,626,626,626,626,626,625,629,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,125,628,630,632,631,631,631,631,631,631,631,631,631,631,631,631,631,631,631,631,631,631,125,631,125,115,126,127,126,126,126,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,126,628,628,128,628,628,628,628,628,628,628,628,628,628,628,628,129,129,129,129,129,129,129,129,129,129,628,628,628,125,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,130,628,143,144,143,143,143,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,143,142,142,145,142,142,142,142,142,142,142,142,142,142,142,142,146,146,146,146,146,146,146,146,146,146,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,147,142,126,127,126,126,126,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,126,628,628,128,628,628,628,628,628,628,628,628,628,628,628,628,129,129,129,129,129,129,129,129,129,129,628,628,628,125,125,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,130,628,634,620,636,635,638,637,620,639,639,639,620,639,639,639,639,639,639,639,639,639,639,639,639,639,639,639,639,639,639,639,639,639,620,639,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,641,642,620,643,151,644,642,620,620,645,646,620,646,620,151,620,620,620,620,620,620,620,620,620,620,647,620,648,649,650,620,651,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,652,620,620,151,640,151,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,620,653,620,654,620,640,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,656,655,655,655,655,655,655,655,655,655,655,655,655,655,655,640,640,640,640,640,640,640,640,640,640,655,655,655,657,655,656,655,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,655,655,655,655,640,655,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,655,655,655,655,655,640,659,658,660,662,663,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,664,661,666,667,665,668,669,670,671,151,655,655,672,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,151,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,655,150,150,150,150,150,150,150,150,150,150,655,655,655,655,655,655,655,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,655,655,655,655,150,655,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,655,655,655,655,655,150,153,153,153,153,153,153,153,153,153,153,655,673,655,151,655,151,655,151,674,655,151,655,151,655,151,151,655,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,675,677,677,677,677,677,677,677,677,677,677,675,675,675,675,675,675,678,676,676,676,676,676,676,676,676,676,676,676,676,676,676,676,676,676,676,676,676,676,676,676,676,676,676,675,675,675,675,676,675,676,676,676,676,676,676,676,676,676,676,676,676,676,676,676,676,676,676,676,676,676,676,676,676,676,676,675,675,675,675,675,676,680,680,680,680,680,680,680,680,680,680,679,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,681,683,683,683,683,683,683,683,683,683,683,681,681,681,681,681,681,681,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,681,681,681,681,682,681,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,681,681,681,681,681,682,673,655,672,655,684,685,620,686,166,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,167,156,168,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,167,157,167,170,125,620,578,125,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,125,620,125,629,620,690,689,689,689,690,689,689,689,689,689,689,689,689,689,689,689,689,689,689,689,689,689,689,689,689,689,690,689,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,172,115,115,115,115,115,115,115,115,115,115,115,115,115,115,171,171,171,171,171,171,171,171,171,171,173,115,115,174,115,172,115,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,115,115,115,115,171,115,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,115,115,115,115,115,171,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,172,620,620,620,620,620,620,620,620,620,620,620,620,620,620,171,171,171,171,171,171,171,171,171,171,173,620,620,174,620,172,620,171,171,171,171,691,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,620,620,620,620,171,620,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,620,620,620,620,620,171,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,172,620,620,620,620,620,620,620,620,620,620,620,620,620,620,171,171,171,171,171,171,171,171,171,171,173,620,620,174,620,172,620,171,171,171,171,171,171,171,171,171,171,171,171,171,692,171,171,171,171,171,171,171,171,171,171,171,171,620,620,620,620,171,620,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,620,620,620,620,620,171,693,694,620,615,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,695,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,696,697,554,554,554,554,554,698,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,699,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,700,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,701,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,702,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,703,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,704,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,705,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,706,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,707,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,172,115,115,115,115,115,115,115,115,115,115,115,115,115,115,554,554,554,554,554,554,554,554,554,554,173,115,115,174,115,172,115,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,115,115,115,115,554,115,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,115,115,115,115,115,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,708,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,709,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,705,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,710,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,709,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,711,554,712,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,713,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,714,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,707,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,707,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,715,554,554,554,554,554,554,554,554,554,554,554,554,716,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,717,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,718,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,707,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,719,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,720,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,707,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,721,554,554,554,554,554,554,554,554,554,554,722,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,723,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,707,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,724,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,714,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,725,554,554,554,554,554,554,554,554,554,707,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,707,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,726,554,727,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,728,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,707,554,554,554,725,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,707,554,554,554,554,554,554,554,554,554,554,554,554,554,554,729,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,730,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,723,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,731,554,554,554,554,554,554,554,554,554,554,554,554,554,589,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,721,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,707,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,732,554,554,554,554,554,554,554,707,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,733,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,734,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,735,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,723,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,736,554,554,554,737,554,554,554,554,554,738,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,738,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,707,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,707,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,739,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,740,554,554,554,554,554,554,554,554,554,554,554,554,554,554,741,742,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,707,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,743,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,744,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,745,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,748,746,746,746,746,746,746,746,746,746,746,746,746,746,746,747,747,747,747,747,747,747,747,747,747,749,746,746,750,746,748,746,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,746,746,746,746,747,746,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,747,746,746,746,746,746,747,606,751,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,608,605,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,752,554,554,753,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,707,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,718,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,754,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,755,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,725,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,756,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,589,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,757,554,554,554,554,554,554,554,554,554,758,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,718,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,723,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,759,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,760,554,554,554,554,554,554,554,761,554,554,554,554,554,554,554,762,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,725,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,763,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,764,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,732,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,765,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,732,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,766,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,718,554,554,554,767,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,768,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,732,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,769,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,770,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,598,598,598,598,598,598,598,598,598,599,598,599,599,599,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,599,172,598,598,598,598,598,598,598,598,598,598,598,598,598,598,554,554,554,554,554,554,554,554,554,554,173,598,598,174,598,172,598,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,600,598,598,554,598,554,554,554,554,554,554,554,554,554,554,554,712,554,554,554,554,554,554,554,554,554,554,554,554,554,554,598,598,598,598,598,554,771,125,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,772,620,774,773,773,773,774,773,773,773,773,775,776,775,775,775,773,773,773,773,773,773,773,773,773,773,773,773,774,773,773,773,773,773,775,773,773,777,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,773,778,773,775,779,775,775,775,779,779,779,779,779,779,779,779,779,779,779,779,779,779,779,779,779,779,775,779,780,781,782,783,784,786,785,787,789,790,790,790,789,790,790,790,790,791,792,791,791,791,790,790,790,790,790,790,790,790,790,790,790,790,789,790,790,790,790,790,791,790,793,794,790,790,790,793,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,790,795,790,790,788,790,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,788,790,790,790,790,790,788,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,180,796,796,796,796,796,796,796,796,796,796,796,796,796,796,179,179,179,179,179,179,179,179,179,179,181,796,796,796,796,180,796,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,796,796,796,796,179,796,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,796,796,796,796,796,179,791,797,791,791,791,797,797,797,797,797,797,797,797,797,797,797,797,797,797,797,797,797,797,791,797,798,799,800,801,802,803,796,804,806,807,807,807,806,807,807,807,807,808,809,808,808,808,807,807,807,807,807,807,807,807,807,807,807,807,806,807,807,807,807,807,808,810,811,812,813,814,815,811,816,817,818,814,819,820,821,814,822,823,823,823,823,823,823,823,823,823,824,825,826,827,828,829,830,831,832,831,831,833,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,834,835,836,814,837,811,838,839,840,841,842,843,805,805,844,805,805,805,845,846,847,805,805,848,849,850,851,805,852,805,853,805,854,855,856,857,807,805,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,858,189,189,189,189,189,189,189,189,189,189,189,189,189,189,805,805,805,805,805,805,805,805,805,805,189,189,189,189,189,858,189,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,189,189,189,189,805,189,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,189,189,189,189,189,805,860,859,861,808,862,808,808,808,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,808,862,863,865,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,865,864,866,867,868,869,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,184,184,870,184,870,184,184,870,870,184,184,184,871,184,184,872,872,872,872,872,872,872,872,872,872,184,184,184,184,184,184,184,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,870,184,870,870,201,184,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,870,870,870,184,870,201,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,873,201,201,201,201,201,201,201,201,201,201,873,873,873,873,873,873,873,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,873,873,873,873,201,873,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,873,873,873,873,873,201,872,872,872,872,872,872,872,872,872,872,873,874,189,814,875,875,875,875,875,875,875,876,875,875,875,875,875,875,875,875,875,875,875,875,875,875,874,875,877,878,814,879,879,879,879,879,879,879,879,879,879,879,879,879,879,879,879,879,879,874,879,874,880,875,882,881,188,188,188,188,188,188,188,188,188,188,881,884,883,885,883,188,188,188,188,188,188,188,188,188,188,886,886,886,886,886,886,886,886,886,886,886,887,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,888,886,886,886,886,886,887,886,187,187,187,187,187,187,187,187,187,187,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,886,186,886,890,889,891,891,891,891,891,891,891,891,891,891,889,889,889,889,889,889,889,889,892,889,893,894,889,889,889,889,889,889,889,889,889,895,889,889,889,889,889,889,889,889,896,889,889,889,889,889,889,897,889,889,892,889,893,894,889,889,889,898,889,889,889,889,889,895,889,889,899,889,889,889,889,889,896,889,190,190,190,190,190,190,190,190,190,190,900,900,900,900,900,900,900,900,900,900,900,901,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,902,900,900,900,900,900,901,900,900,900,903,900,900,900,900,900,900,900,900,904,900,905,189,905,189,189,191,191,191,191,191,191,191,191,191,191,189,191,191,191,191,191,191,191,191,191,191,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,906,905,906,906,906,906,906,906,906,906,906,907,906,909,908,910,912,911,911,911,913,911,914,915,891,891,891,891,891,891,891,891,891,891,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,897,889,889,889,889,889,889,889,889,889,898,889,889,889,889,889,889,889,889,899,889,916,916,916,916,916,916,916,916,916,916,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,889,917,889,889,889,889,889,889,889,889,889,898,889,889,889,889,889,889,889,889,899,889,919,919,919,919,919,919,919,919,919,919,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,920,918,918,918,918,918,918,918,918,918,921,918,918,918,918,918,918,918,918,922,918,919,919,919,919,919,919,919,919,919,919,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,923,918,918,918,918,918,918,918,918,918,921,918,918,918,918,918,918,918,918,922,918,921,918,918,918,918,918,918,918,918,922,918,925,924,926,928,927,927,927,929,927,931,930,932,933,935,935,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,936,934,934,934,934,934,934,934,934,934,937,934,934,934,934,934,934,934,934,938,934,939,939,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,940,918,918,918,918,918,918,918,918,918,921,918,918,918,918,918,918,918,918,922,918,939,939,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,923,918,918,918,918,918,918,918,918,918,921,918,918,918,918,918,918,918,918,922,918,942,942,942,942,942,942,942,942,942,942,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,943,941,941,941,941,941,941,941,941,941,944,941,941,941,941,941,941,941,941,945,941,947,947,947,947,947,947,947,947,947,947,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,948,946,946,946,946,946,946,946,946,946,949,946,946,946,946,946,946,946,946,950,946,952,952,952,952,952,952,952,952,952,952,951,951,951,951,951,951,951,952,952,952,952,952,952,951,951,951,951,951,951,951,951,951,951,951,951,951,951,951,951,951,951,951,951,951,951,951,951,953,951,952,952,952,952,952,952,951,951,954,951,951,951,951,951,951,951,951,955,951,956,956,956,956,956,956,956,956,956,956,918,918,918,918,918,918,918,956,956,956,956,956,956,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,957,918,956,956,956,956,956,956,918,918,921,918,918,918,918,918,918,918,918,922,918,956,956,956,956,956,956,956,956,956,956,918,918,918,918,918,918,918,956,956,956,956,956,956,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,923,918,956,956,956,956,956,956,918,918,921,918,918,918,918,918,918,918,918,922,918,959,958,960,960,960,960,960,960,960,960,960,960,958,958,958,958,958,958,958,958,958,958,958,961,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,962,958,958,958,958,958,961,958,958,958,963,958,958,958,958,958,958,958,958,964,958,965,965,965,965,965,965,965,965,965,965,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,966,958,958,958,958,958,958,958,958,958,963,958,958,958,958,958,958,958,958,964,958,967,918,968,968,968,968,968,968,968,968,968,968,918,918,918,918,918,918,918,918,918,918,918,969,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,970,918,918,918,918,918,969,918,918,918,921,918,918,918,918,918,918,918,918,922,918,968,968,968,968,968,968,968,968,968,968,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,923,918,918,918,918,918,918,918,918,918,921,918,918,918,918,918,918,918,918,922,918,876,883,814,971,875,865,875,972,973,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,865,883,865,875,865,814,875,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,870,201,201,201,201,201,201,201,201,201,201,870,870,870,870,870,870,974,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,870,870,870,870,201,870,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,870,870,870,870,870,201,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,858,189,189,189,189,189,189,189,189,189,189,189,189,189,189,831,831,831,831,831,831,831,831,831,831,975,189,189,189,189,858,189,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,189,189,189,189,831,189,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,189,189,189,189,189,831,976,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,858,977,977,977,977,977,977,977,977,977,977,977,977,977,977,831,831,831,831,831,831,831,831,831,831,975,977,977,977,977,858,977,831,831,831,831,978,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,977,977,977,977,831,977,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,977,977,977,977,977,831,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,858,977,977,977,977,977,977,977,977,977,977,977,977,977,977,831,831,831,831,831,831,831,831,831,831,975,977,977,977,977,858,977,831,831,831,831,831,831,979,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,977,977,977,977,831,977,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,977,977,977,977,977,831,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,858,977,977,977,977,977,977,977,977,977,977,977,977,977,977,831,831,831,831,831,831,831,831,831,831,975,977,977,977,977,858,977,831,831,831,831,831,831,831,831,980,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,977,977,977,977,831,977,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,977,977,977,977,977,831,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,858,977,977,977,977,977,977,977,977,977,977,977,977,977,977,831,831,831,831,831,831,831,831,831,831,975,977,977,977,977,858,977,831,831,831,831,831,831,831,831,831,831,831,831,831,981,831,831,831,831,831,831,831,831,831,831,831,831,977,977,977,977,831,977,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,977,977,977,977,977,831,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,858,977,977,977,977,977,977,977,977,977,977,977,977,977,977,831,831,831,831,831,831,831,831,831,831,975,977,977,977,977,858,977,831,831,831,831,831,831,831,831,831,831,831,831,831,982,831,831,831,831,831,831,831,831,831,831,831,831,977,977,977,977,831,977,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,977,977,977,977,977,831,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,858,977,977,977,977,977,977,977,977,977,977,977,977,977,977,831,831,831,831,831,831,831,831,831,831,975,977,977,977,977,858,977,831,831,831,981,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,977,977,977,977,831,977,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,977,977,977,977,977,831,983,985,984,986,987,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,989,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,990,991,805,805,805,805,805,992,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,993,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,994,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,995,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,996,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,997,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,998,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,999,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,1000,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,1001,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,1002,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,1003,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,1004,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,1005,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,1006,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,1007,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,1003,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,1008,805,1009,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,1010,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,1011,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1012,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,1013,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1014,805,805,805,805,805,805,805,805,805,805,805,805,1015,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,1016,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,1017,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,1013,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1018,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,1019,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,1020,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,1021,805,805,805,805,805,805,805,805,805,805,1022,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1023,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1013,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,1024,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1025,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1026,805,805,805,805,805,805,805,988,988,988,988,988,805,1027,1027,1027,1027,1027,1027,1027,1027,1027,203,204,203,203,203,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,203,858,1027,205,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,805,805,805,805,805,805,805,805,805,805,1027,1027,206,1027,1027,858,1027,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1027,207,1027,1027,805,1027,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1027,1027,1027,1027,1027,805,220,221,220,220,220,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,220,219,219,222,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,225,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,224,219,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1029,805,805,805,805,805,805,805,805,805,1030,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,1031,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,858,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,805,805,805,805,805,805,805,805,805,805,1032,1032,1032,1032,1032,858,1032,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1032,1032,1032,1032,805,1032,805,805,805,805,805,805,805,805,1033,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1032,1032,1032,1032,1032,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,1034,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1035,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,1036,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,1037,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,1038,805,1039,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1040,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1013,805,805,805,1041,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,1013,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,1006,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1042,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1043,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1023,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,1044,805,805,805,805,805,805,805,805,805,805,805,805,805,847,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,1045,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1046,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1006,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1013,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,1047,805,805,805,805,805,805,805,1013,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1048,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,1049,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1050,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,1023,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1051,805,805,805,1052,805,805,805,805,805,1053,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1054,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1020,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,1006,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1055,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1056,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,1057,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1058,1059,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1006,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,1060,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1061,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1047,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1062,805,805,1063,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1006,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1064,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,1020,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1065,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1066,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,1067,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,1006,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1068,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1069,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1055,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,1070,805,805,805,805,805,805,805,805,805,1071,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1017,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1046,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,1072,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,1073,805,805,805,805,805,805,805,1074,805,805,805,805,805,805,805,1075,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1076,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,1012,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1077,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1078,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,1047,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,1079,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,1047,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,1080,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1017,805,805,805,1081,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,1082,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1047,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,1083,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,1084,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,805,805,805,805,805,805,805,805,1085,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,858,988,988,988,988,988,988,988,988,988,988,988,988,988,988,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,858,988,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,805,988,805,805,805,1055,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,988,988,988,988,988,805,1086,874,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,814,864,1087,1089,1088,1089,1089,1089,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1089,1088,1088,1090,1088,1088,1091,1088,1088,1088,1088,1088,1088,1088,233,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1088,1092,1088,229,230,229,229,229,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,229,1093,1093,231,1093,1093,232,1093,1093,1093,1093,1093,1093,1093,233,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,234,1093,236,1094,236,236,236,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,236,1094,1094,231,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,234,1094,1096,1095,1098,1097,239,238,244,1093,242,1093,1100,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1101,1099,1100,1099,1100,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1103,1099,1100,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1104,1099,1100,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1105,1099,1107,1105,1109,1108,1108,1108,1109,1108,1108,1108,1108,1110,1111,1110,1110,1110,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1109,1108,1108,1108,1108,1108,1110,1108,1108,1112,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1113,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1114,1108,1108,1115,1108,1110,1116,1110,1110,1110,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1110,1116,1117,1118,1119,1120,1121,1123,1122,1125,1126,1125,1125,1125,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1125,1124,1111,1122,1127,1122,0")),function(e,t){e.$attr_accessor("_lex_trans_targs"),e.$private("_lex_trans_targs","_lex_trans_targs=")}(e.get_singleton_class(U)),U["$_lex_trans_targs="](e.large_array_unpack("130,129,0,2,131,132,4,133,134,134,134,134,247,7,8,9,247,247,276,11,12,276,276,280,280,16,11,17,278,279,281,282,280,276,283,284,286,13,14,287,288,15,280,18,19,24,31,290,291,17,278,279,281,282,280,276,283,284,286,13,14,287,288,15,18,19,24,31,290,291,289,20,21,22,23,25,26,29,27,28,30,32,33,276,35,36,37,39,42,40,41,43,45,307,307,307,308,47,310,48,311,49,308,47,310,48,311,345,50,345,51,52,50,345,51,345,345,345,55,56,57,58,356,345,345,345,61,62,63,345,66,61,62,63,345,66,64,64,62,63,366,65,64,64,62,63,366,65,62,345,383,345,68,384,390,72,399,400,77,78,72,73,398,73,398,345,74,75,76,401,79,80,347,53,349,82,83,406,508,85,86,87,508,516,516,516,90,538,537,516,540,542,516,95,96,97,546,516,99,100,557,526,579,103,104,105,109,110,103,104,105,109,110,106,106,104,105,107,108,106,106,104,105,107,108,627,104,516,696,111,698,113,117,699,115,696,112,696,114,698,114,698,116,698,696,710,119,120,121,716,123,124,125,126,127,710,710,128,1,3,129,129,129,135,134,134,136,137,138,139,141,144,145,146,147,134,148,149,151,153,154,155,159,161,162,163,179,184,191,196,203,210,213,214,218,212,222,230,234,236,241,243,246,134,134,134,134,134,134,140,134,140,134,142,5,143,134,6,134,134,150,152,134,156,157,158,154,160,134,164,165,174,177,166,167,168,169,170,171,172,173,135,175,176,178,180,183,181,182,185,188,186,187,189,190,192,194,193,195,197,198,134,199,200,201,202,134,204,207,205,206,208,209,211,215,216,217,219,221,220,223,224,225,227,226,228,229,231,232,233,235,237,238,239,240,242,244,245,248,247,247,249,250,252,253,247,247,247,251,247,251,10,254,247,256,255,255,259,260,261,262,255,264,265,266,267,269,271,272,273,274,275,255,257,255,258,255,255,255,255,255,263,255,263,268,255,270,255,276,276,277,292,293,279,295,296,283,297,298,299,300,301,303,304,305,306,276,276,276,276,276,276,280,285,276,276,276,276,276,276,276,276,276,294,276,294,276,276,276,276,302,276,34,38,44,307,309,312,46,307,307,308,313,313,314,315,317,319,320,313,313,316,313,316,313,318,313,313,313,322,321,321,323,324,325,327,329,330,335,342,321,321,321,321,326,321,326,321,328,321,321,322,331,332,333,334,336,337,340,338,339,341,343,344,346,345,354,355,357,358,360,361,362,363,365,367,368,371,372,397,403,404,405,406,407,408,409,410,364,412,429,434,441,446,448,454,457,458,462,456,466,477,481,484,492,496,499,500,345,50,51,345,53,348,345,345,350,352,353,345,351,345,345,345,345,345,54,345,345,345,345,345,359,345,359,345,345,59,345,60,345,345,364,345,369,345,370,345,345,345,373,382,345,67,385,386,387,345,388,69,391,392,70,395,396,345,374,376,345,375,345,345,377,380,381,345,378,379,345,345,345,345,345,345,389,345,383,393,394,345,393,345,383,393,71,402,345,345,345,345,345,81,84,345,411,413,414,424,427,415,416,417,418,419,420,421,422,423,425,426,428,430,433,431,432,435,438,436,437,439,440,442,444,443,445,447,449,451,450,452,453,455,423,459,460,461,463,465,464,467,468,469,474,470,471,472,345,346,347,53,473,352,475,476,478,479,480,482,483,485,486,487,490,488,489,491,493,494,495,497,498,345,364,501,501,502,503,504,506,501,501,501,505,501,505,501,507,501,509,508,508,510,511,508,512,514,508,508,508,508,513,508,513,515,508,517,516,516,520,521,522,516,523,525,528,529,530,531,532,516,533,534,539,567,571,516,572,574,576,516,577,578,580,584,586,587,589,590,608,613,620,628,635,642,647,648,652,646,657,667,673,676,685,689,693,694,695,528,518,516,519,516,516,516,516,516,516,524,516,524,516,88,527,516,516,516,516,516,516,516,516,516,535,516,536,516,516,89,91,516,92,548,559,562,541,563,564,549,553,555,516,541,92,543,545,93,516,543,516,544,516,516,94,547,516,516,550,552,516,550,551,553,555,552,516,554,516,516,556,558,516,98,516,516,516,560,552,553,555,560,561,516,550,552,553,555,516,550,552,553,555,516,565,552,553,555,565,566,516,92,567,541,568,553,555,569,552,92,569,541,570,573,575,516,101,102,516,516,581,582,583,578,585,516,516,588,516,516,516,591,592,601,606,593,594,595,596,597,598,599,600,517,602,603,604,605,517,607,609,612,610,611,517,517,614,617,615,616,618,619,517,621,623,622,624,625,626,516,516,629,517,630,516,631,632,633,634,518,636,639,637,638,640,641,643,644,645,517,649,650,651,653,655,656,654,517,658,659,660,663,661,662,664,665,666,668,670,669,671,672,674,675,677,678,680,683,679,681,682,684,686,687,688,690,691,692,516,516,696,697,701,702,703,696,696,696,700,696,696,705,704,706,704,707,708,709,704,704,710,710,711,712,713,715,717,718,710,710,710,714,710,714,710,118,710,710,710,122")),function(e,t){e.$attr_accessor("_lex_trans_actions"),e.$private("_lex_trans_actions","_lex_trans_actions=")}(e.get_singleton_class(U)),U["$_lex_trans_actions="](e.large_array_unpack("0,1,0,0,0,0,0,0,2,3,4,5,6,0,0,0,7,8,9,0,0,10,11,12,13,14,15,15,16,17,15,18,17,19,17,15,15,16,15,20,15,15,21,15,15,15,15,15,15,0,22,23,0,24,23,25,23,0,0,22,0,26,0,0,0,0,0,0,0,0,13,0,0,0,0,0,0,0,0,0,0,0,0,27,0,0,0,0,0,0,0,0,0,28,29,30,31,0,0,0,31,14,32,15,15,15,32,33,0,34,0,14,15,35,15,36,37,38,0,0,0,0,0,39,40,41,0,14,0,42,0,15,43,15,44,15,45,46,47,46,48,46,0,49,50,49,51,49,52,53,0,54,0,0,0,0,55,55,0,0,56,56,57,0,14,58,0,0,0,55,0,0,59,0,0,0,0,59,60,0,0,0,61,62,63,64,0,65,65,66,67,67,68,0,0,0,0,69,0,0,0,0,0,0,14,0,0,0,15,43,15,15,15,45,46,47,46,46,46,0,49,50,49,49,49,70,52,71,72,0,73,0,74,74,0,75,0,76,45,77,0,78,14,79,80,81,0,0,0,0,0,0,0,0,0,82,83,86,0,0,87,88,89,90,91,92,0,14,0,0,65,65,0,0,0,93,0,0,0,0,94,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,95,96,97,98,99,100,45,101,0,102,0,0,0,103,0,104,105,0,0,106,0,0,0,107,0,108,0,0,0,0,0,0,0,0,0,0,0,0,107,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,109,0,0,0,0,110,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,111,112,0,0,65,0,113,114,115,45,116,0,0,14,117,0,118,119,0,14,0,0,120,0,0,0,0,0,0,0,0,0,0,121,0,122,0,123,124,125,126,127,45,128,0,0,129,0,130,131,132,133,14,0,13,0,0,13,0,0,0,0,0,0,65,65,65,134,135,136,137,138,139,140,0,141,142,143,144,145,146,147,148,149,45,150,0,151,152,153,154,155,156,0,0,0,157,65,65,0,158,159,160,161,162,0,0,0,0,0,163,164,45,165,0,166,14,167,168,169,170,171,172,0,14,0,0,0,0,0,0,173,174,175,176,45,177,0,178,14,179,180,181,0,0,0,0,0,0,0,0,0,0,0,0,182,183,0,184,0,0,65,185,0,0,185,185,0,0,65,186,0,186,0,186,186,186,0,0,186,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,0,0,187,188,188,189,190,0,191,192,0,59,0,193,0,194,195,196,197,198,15,199,200,201,202,203,45,204,0,205,206,0,207,0,208,209,185,210,0,211,0,212,213,214,0,0,215,0,0,0,0,216,0,0,0,0,0,0,0,217,0,0,218,0,219,220,0,0,0,221,0,0,222,223,224,225,226,227,0,228,229,229,0,230,0,231,232,232,0,0,233,234,235,236,237,0,0,238,14,182,182,182,182,182,182,182,182,182,182,182,182,59,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,239,182,182,182,182,182,182,182,182,182,182,182,182,240,241,242,243,244,244,240,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,245,246,247,248,0,14,0,0,249,250,251,45,252,0,253,14,254,65,255,256,0,14,257,0,0,258,259,260,261,45,262,0,14,263,264,265,266,0,14,0,267,0,65,268,0,0,0,0,269,0,0,270,270,0,271,0,0,0,272,65,273,273,273,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,274,275,276,0,277,278,279,280,281,282,45,283,0,284,0,0,285,286,287,288,289,290,291,292,293,0,294,0,295,296,0,0,297,298,299,0,0,300,0,0,299,301,301,302,303,0,304,305,0,306,307,308,0,309,310,0,0,311,312,299,299,313,0,0,314,314,0,315,0,316,317,65,0,318,0,319,320,321,322,322,323,323,0,0,324,325,325,326,326,327,328,328,329,329,330,331,331,332,332,0,0,333,334,335,336,337,338,338,335,337,339,270,340,0,0,0,341,0,0,342,343,273,273,273,344,273,345,346,14,347,348,349,0,0,0,0,0,0,0,0,0,0,0,0,350,0,0,0,0,344,0,0,0,0,0,351,352,0,0,0,0,0,0,353,0,0,0,0,0,352,354,355,0,356,0,357,0,0,0,0,358,0,0,0,0,0,0,0,0,0,359,0,0,0,0,0,0,0,358,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,360,361,362,363,363,74,363,364,365,366,0,367,368,0,369,0,370,0,0,0,371,372,373,374,0,14,0,65,0,65,375,376,377,45,378,0,379,0,380,381,382,0")),function(e,t){e.$attr_accessor("_lex_to_state_actions"),e.$private("_lex_to_state_actions","_lex_to_state_actions=")}(e.get_singleton_class(U)),U["$_lex_to_state_actions="](e.large_array_unpack("0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,84,84,0,0,0,0,84,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,84,0,0,0,0,0,0,0,84,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,84,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,84,0,0,0,0,0,84,0,0,0,0,0,0,0,84,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,84,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,84,0,0,0,0,0,0,84,0,0,0,0,0,0,0,84,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,84,0,0,0,0,0,0,0,84,0,0,0,0,0,84,0,0,0,0,0,0,0,0")),function(e,t){e.$attr_accessor("_lex_from_state_actions"),e.$private("_lex_from_state_actions","_lex_from_state_actions=")}(e.get_singleton_class(U)),U["$_lex_from_state_actions="](e.large_array_unpack("0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,85,85,0,0,0,0,85,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,85,0,0,0,0,0,0,0,85,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,85,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,85,0,0,0,0,0,85,0,0,0,0,0,0,0,85,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,85,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,85,0,0,0,0,0,0,85,0,0,0,0,0,0,0,85,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,85,0,0,0,0,0,0,0,85,0,0,0,0,0,85,0,0,0,0,0,0,0,0")),function(e,t){e.$attr_accessor("_lex_eof_trans"),e.$private("_lex_eof_trans","_lex_eof_trans=")}(e.get_singleton_class(U)),U["$_lex_eof_trans="](e.large_array_unpack("0,0,0,0,0,9,11,13,13,13,13,19,19,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,84,84,84,84,84,84,84,84,84,84,84,84,94,96,96,96,108,108,108,116,118,118,118,118,118,124,116,116,116,116,116,116,116,150,150,150,150,150,150,116,166,116,166,150,150,116,116,150,150,150,150,179,179,179,184,186,186,186,190,190,193,193,193,193,198,198,198,184,190,190,190,190,190,190,190,190,190,229,236,238,238,238,238,229,246,246,246,246,246,246,246,246,246,246,0,0,261,261,262,263,0,304,306,307,308,309,311,313,317,317,308,308,308,308,319,308,308,313,308,308,304,323,323,323,323,323,323,313,313,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,362,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,308,0,406,407,408,410,406,406,414,0,433,435,437,438,439,440,441,443,440,440,440,440,440,446,440,440,448,446,446,440,0,467,468,19,19,471,472,19,468,468,475,477,480,468,481,468,482,483,485,487,468,475,488,488,477,488,492,488,488,488,488,0,94,500,501,500,500,0,510,511,513,515,517,515,519,0,531,532,533,534,536,538,540,541,541,541,541,541,541,541,541,541,541,541,541,541,541,541,541,0,599,602,605,606,610,612,613,614,615,616,618,621,622,624,626,629,631,632,116,629,634,629,621,636,638,621,621,656,659,661,662,666,669,670,671,672,656,656,656,656,656,656,656,656,656,656,676,680,682,656,656,621,687,688,688,688,621,621,621,689,116,621,621,694,621,616,599,599,599,599,599,599,599,599,599,599,599,116,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,747,606,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,772,621,0,780,781,782,784,786,788,0,797,798,799,800,802,797,805,0,190,860,862,863,864,865,867,869,871,874,874,190,876,878,879,880,876,882,884,884,887,887,890,901,190,907,909,911,912,915,916,890,890,919,919,919,925,927,928,931,933,934,935,919,919,942,947,952,919,919,959,959,919,919,884,876,876,884,876,876,871,190,977,978,978,978,978,978,978,984,871,987,988,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,1028,1029,989,989,1033,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,1087,865,1088,0,1094,1095,1096,1098,1094,1094,1094,0,1103,1103,1103,1103,1107,0,1117,1118,1119,1121,1123,1125,1123,1123")),function(e,t){e.$attr_accessor("lex_start")}(e.get_singleton_class(U)),U["$lex_start="](128),function(e,t){e.$attr_accessor("lex_error")}(e.get_singleton_class(U)),U["$lex_error="](0),function(e,t){e.$attr_accessor("lex_en_expr_variable")}(e.get_singleton_class(U)),U["$lex_en_expr_variable="](129),function(e,t){e.$attr_accessor("lex_en_expr_fname")}(e.get_singleton_class(U)),U["$lex_en_expr_fname="](134),function(e,t){e.$attr_accessor("lex_en_expr_endfn")}(e.get_singleton_class(U)),U["$lex_en_expr_endfn="](247),function(e,t){e.$attr_accessor("lex_en_expr_dot")}(e.get_singleton_class(U)),U["$lex_en_expr_dot="](255),function(e,t){e.$attr_accessor("lex_en_expr_arg")}(e.get_singleton_class(U)),U["$lex_en_expr_arg="](276),function(e,t){e.$attr_accessor("lex_en_expr_cmdarg")}(e.get_singleton_class(U)),U["$lex_en_expr_cmdarg="](307),function(e,t){e.$attr_accessor("lex_en_expr_endarg")}(e.get_singleton_class(U)),U["$lex_en_expr_endarg="](313),function(e,t){e.$attr_accessor("lex_en_expr_mid")}(e.get_singleton_class(U)),U["$lex_en_expr_mid="](321),function(e,t){e.$attr_accessor("lex_en_expr_beg")}(e.get_singleton_class(U)),U["$lex_en_expr_beg="](345),function(e,t){e.$attr_accessor("lex_en_expr_labelarg")}(e.get_singleton_class(U)),U["$lex_en_expr_labelarg="](501),function(e,t){e.$attr_accessor("lex_en_expr_value")}(e.get_singleton_class(U)),U["$lex_en_expr_value="](508),function(e,t){e.$attr_accessor("lex_en_expr_end")}(e.get_singleton_class(U)),U["$lex_en_expr_end="](516),function(e,t){e.$attr_accessor("lex_en_leading_dot")}(e.get_singleton_class(U)),U["$lex_en_leading_dot="](696),function(e,t){e.$attr_accessor("lex_en_line_comment")}(e.get_singleton_class(U)),U["$lex_en_line_comment="](704),function(e,t){e.$attr_accessor("lex_en_line_begin")}(e.get_singleton_class(U)),U["$lex_en_line_begin="](710),function(e,t){e.$attr_accessor("lex_en_inside_string")}(e.get_singleton_class(U)),U["$lex_en_inside_string="](128),U.$attr_reader("source_buffer"),U.$attr_accessor("diagnostics"),U.$attr_accessor("static_env"),U.$attr_accessor("force_utf32"),U.$attr_accessor("cond","cmdarg","context","command_start"),U.$attr_accessor("tokens","comments"),U.$attr_reader("paren_nest","cmdarg_stack","cond_stack","lambda_stack","version"),s(U,"$initialize",(function(e){var t=this;return t.version=e,t.static_env=x,t.context=x,t.tokens=x,t.comments=x,t._lex_actions=r(t.$class()["$respond_to?"]("_lex_actions",!0))?t.$class().$send("_lex_actions"):[],t.emit_integer=n(t,"lambda",[],(function e(t,r){return null==t&&(t=x),null==r&&(r=x),(null==e.$$s?this:e.$$s).$emit("tINTEGER",t),r}),{$$s:t}),t.emit_rational=n(t,"lambda",[],(function e(t,r){var n=null==e.$$s?this:e.$$s;return null==t&&(t=x),null==r&&(r=x),n.$emit("tRATIONAL",n.$Rational(t)),r}),{$$s:t}),t.emit_imaginary=n(t,"lambda",[],(function e(t,r){var n=null==e.$$s?this:e.$$s;return null==t&&(t=x),null==r&&(r=x),n.$emit("tIMAGINARY",n.$Complex(0,t)),r}),{$$s:t}),t.emit_imaginary_rational=n(t,"lambda",[],(function e(t,r){var n=null==e.$$s?this:e.$$s;return null==t&&(t=x),null==r&&(r=x),n.$emit("tIMAGINARY",n.$Complex(0,n.$Rational(t))),r}),{$$s:t}),t.emit_integer_re=n(t,"lambda",[],(function e(t,r){var n=null==e.$$s?this:e.$$s;return null==n.ts&&(n.ts=x),null==n.te&&(n.te=x),null==t&&(t=x),null==r&&(r=x),n.$emit("tINTEGER",t,n.ts,a(n.te,2)),a(r,2)}),{$$s:t}),t.emit_integer_if=n(t,"lambda",[],(function e(t,r){var n=null==e.$$s?this:e.$$s;return null==n.ts&&(n.ts=x),null==n.te&&(n.te=x),null==t&&(t=x),null==r&&(r=x),n.$emit("tINTEGER",t,n.ts,a(n.te,2)),a(r,2)}),{$$s:t}),t.emit_integer_rescue=n(t,"lambda",[],(function e(t,r){var n=null==e.$$s?this:e.$$s;return null==n.ts&&(n.ts=x),null==n.te&&(n.te=x),null==t&&(t=x),null==r&&(r=x),n.$emit("tINTEGER",t,n.ts,a(n.te,6)),a(r,6)}),{$$s:t}),t.emit_float=n(t,"lambda",[],(function e(t,r){var n=null==e.$$s?this:e.$$s;return null==t&&(t=x),null==r&&(r=x),n.$emit("tFLOAT",n.$Float(t)),r}),{$$s:t}),t.emit_imaginary_float=n(t,"lambda",[],(function e(t,r){var n=null==e.$$s?this:e.$$s;return null==t&&(t=x),null==r&&(r=x),n.$emit("tIMAGINARY",n.$Complex(0,n.$Float(t))),r}),{$$s:t}),t.emit_float_if=n(t,"lambda",[],(function e(t,r){var n=null==e.$$s?this:e.$$s;return null==n.ts&&(n.ts=x),null==n.te&&(n.te=x),null==t&&(t=x),null==r&&(r=x),n.$emit("tFLOAT",n.$Float(t),n.ts,a(n.te,2)),a(r,2)}),{$$s:t}),t.emit_float_rescue=n(t,"lambda",[],(function e(t,r){var n=null==e.$$s?this:e.$$s;return null==n.ts&&(n.ts=x),null==n.te&&(n.te=x),null==t&&(t=x),null==r&&(r=x),n.$emit("tFLOAT",n.$Float(t),n.ts,a(n.te,6)),a(r,6)}),{$$s:t}),t.$reset()})),s(U,"$reset",(function(e){var t=this;return null==e&&(e=!0),r(e)&&(t.cs=t.$class().$lex_en_line_begin(),t.cond=M("StackState").$new("cond"),t.cmdarg=M("StackState").$new("cmdarg"),t.cond_stack=[],t.cmdarg_stack=[]),t.force_utf32=!1,t.source_pts=x,t.p=0,t.ts=x,t.te=x,t.act=0,t.stack=[],t.top=0,t.token_queue=[],t.eq_begin_s=x,t.sharp_s=x,t.newline_s=x,t.num_base=x,t.num_digits_s=x,t.num_suffix_s=x,t.num_xfrm=x,t.paren_nest=0,t.lambda_stack=[],t.command_start=!0,t.cs_before_block_comment=t.$class().$lex_en_line_begin(),t.strings=w(M("Parser"),"LexerStrings").$new(t,t.version)}),-1),s(U,"$source_buffer=",(function(e){var t,a=this,s=x;return a.source_buffer=e,r(a.source_buffer)?(s=a.source_buffer.$source(),i(s.$encoding(),w(M("Encoding"),"UTF_8"))?a.source_pts=s.$unpack("U*"):a.source_pts=s.$unpack("C*"),i(a.source_pts["$[]"](0),65279)&&(a.p=1)):a.source_pts=x,a.strings["$source_buffer="](a.source_buffer),t=[a.source_pts],n(a.strings,"source_pts=",t),t[t.length-1]})),s(U,"$encoding",(function(){return this.source_buffer.$source().$encoding()})),o(E[0],"LEX_STATES",new Map([["line_begin",U.$lex_en_line_begin()],["expr_dot",U.$lex_en_expr_dot()],["expr_fname",U.$lex_en_expr_fname()],["expr_value",U.$lex_en_expr_value()],["expr_beg",U.$lex_en_expr_beg()],["expr_mid",U.$lex_en_expr_mid()],["expr_arg",U.$lex_en_expr_arg()],["expr_cmdarg",U.$lex_en_expr_cmdarg()],["expr_end",U.$lex_en_expr_end()],["expr_endarg",U.$lex_en_expr_endarg()],["expr_endfn",U.$lex_en_expr_endfn()],["expr_labelarg",U.$lex_en_expr_labelarg()],["inside_string",U.$lex_en_inside_string()]])),s(U,"$state",(function(){return M("LEX_STATES").$invert().$fetch(this.cs,this.cs)})),s(U,"$state=",(function(e){return this.cs=M("LEX_STATES").$fetch(e)})),s(U,"$push_cmdarg",(function(){var e=this;return e.cmdarg_stack.$push(e.cmdarg),e.cmdarg=M("StackState").$new("cmdarg."+e.cmdarg_stack.$count())})),s(U,"$pop_cmdarg",(function(){return this.cmdarg=this.cmdarg_stack.$pop()})),s(U,"$push_cond",(function(){var e=this;return e.cond_stack.$push(e.cond),e.cond=M("StackState").$new("cond."+e.cond_stack.$count())})),s(U,"$pop_cond",(function(){return this.cond=this.cond_stack.$pop()})),s(U,"$dedent_level",(function(){return this.strings.$dedent_level()})),s(U,"$advance",(function(){var e,t,n,s,o,b=this,v=x,y=x,w=x,k=x,U=x,E=x,q=x,S=x,O=x,A=x,T=x,N=x,z=x,R=x,I=x,C=x,P=x,L=x,F=x,D=x,j=x,B=x,G=x,H=x,Y=x,V=x,X=x,K=x,W=x,Q=x,J=x,Z=x,ee=x,te=x,re=x,ne=x,ae=x,se=x,ie=x;if(!r(b.token_queue["$empty?"]()))return b.token_queue.$shift();for(y=(v=b.$class()).$send("_lex_trans_keys"),w=v.$send("_lex_key_spans"),k=v.$send("_lex_index_offsets"),U=v.$send("_lex_indicies"),E=v.$send("_lex_trans_targs"),q=v.$send("_lex_trans_actions"),S=v.$send("_lex_to_state_actions"),O=v.$send("_lex_from_state_actions"),A=v.$send("_lex_eof_trans"),b._lex_actions,n=l(b.source_pts.$size(),2),T=(e=[b.p,n])[0],N=e[1],z=b.command_start,b.command_start=!1,!1,R=null==(e=$(t=x))[0]?x:e[0],I=null==e[1]?x:e[1],C=null==e[2]?x:e[2],P=null==e[3]?x:e[3],null==e[4]?x:e[4],null==e[5]?x:e[5],L=0,10,15,s=20,30,o=40;r(!0);){if(r(u(L,0))){if(i(T,n)){L=30;continue}if(i(b.cs,0)){L=o;continue}}if(r(u(L,10))){if(85===O["$[]"](b.cs).valueOf())b.ts=T;C=b.cs["$<<"](1),P=k["$[]"](b.cs),R=w["$[]"](b.cs),F=r(D=b.source_pts["$[]"](T))?D:0,I=r(c(R,0))&&r(u(y["$[]"](C),F))&&r(u(F,y["$[]"](l(C,1))))?U["$[]"](a(l(P,F),y["$[]"](C))):U["$[]"](l(P,R))}if(r(u(L,15))&&(b.cs=E["$[]"](I),_(q["$[]"](I),0)))switch(q["$[]"](I).valueOf()){case 14:b.newline_s=T;break;case 15:T=b.$on_newline(T);break;case 45:b.sharp_s=a(T,1);break;case 49:b.$emit_comment_from_range(T,n);break;case 190:case 22:case 24:case 26:case 244:case 74:j=T;break;case 56:B=T;break;case 229:j=a(T,1),G="ivar_name";break;case 232:j=a(T,2),G="cvar_name";break;case 188:H=b.$tok(),Y=b.ts,V=b.te;break;case 331:b.num_base=16,b.num_digits_s=T;break;case 325:b.num_base=10,b.num_digits_s=T;break;case 328:b.num_base=8,b.num_digits_s=T;break;case 322:b.num_base=2,b.num_digits_s=T;break;case 337:b.num_base=10,b.num_digits_s=b.ts;break;case 299:b.num_base=8,b.num_digits_s=b.ts;break;case 314:case 307:case 304:b.num_suffix_s=T;break;case 65:b.te=l(T,1);break;case 1:b.te=l(T,1),b.$emit_global_var(),b.cs=b.$stack_pop(),T=l(T,1),L=o;continue;case 87:b.te=T,T=a(T,1),b.$emit_global_var(),b.cs=b.$stack_pop(),T=l(T,1),L=o;continue;case 89:b.te=T,T=a(T,1),b.$emit_class_var(),b.cs=b.$stack_pop(),T=l(T,1),L=o;continue;case 88:b.te=T,T=a(T,1),b.$emit_instance_var(),b.cs=b.$stack_pop(),T=l(T,1),L=o;continue;case 110:b.te=l(T,1),b.$emit_table(M("KEYWORDS_BEGIN")),b.cs=247,T=l(T,1),L=o;continue;case 96:b.te=l(T,1),b.$emit("tIDENTIFIER"),b.cs=247,T=l(T,1),L=o;continue;case 3:b.te=l(T,1),T=a(b.ts,1),b.cs=516,b.stack["$[]="](b.top,b.cs),b.top=l(b.top,1),b.cs=129,L=s;continue;case 93:b.te=l(T,1),b.$emit_table(M("PUNCTUATION")),b.cs=247,T=l(T,1),L=o;continue;case 105:b.te=l(T,1),T=a(T,1),T=a(T,1),b.cs=516,L=s;continue;case 5:if(b.te=l(T,1),r(b["$version?"](23))){X=(e=[b.$tok()["$[]"](p(0,-2,!1)),b.$tok()["$[]"](-1).$chr()])[0],K=e[1],b.strings.$push_literal(X,K,b.ts),b.cs=128,L=s;continue}T=a(b.ts,1),b.cs=516,L=s;continue;case 92:case 112:case 119:case 161:b.te=l(T,1),T=a(T,1),b.cs=516,L=s;continue;case 91:case 111:case 118:case 132:case 157:case 162:case 171:case 183:case 248:case 255:case 265:case 374:b.te=l(T,1),T=a(T,1),T=l(T,1),L=o;continue;case 109:b.te=T,T=a(T,1),b.$emit_table(M("KEYWORDS_BEGIN")),b.cs=247,T=l(T,1),L=o;continue;case 106:b.te=T,T=a(T,1),b.$emit("tCONSTANT"),b.cs=247,T=l(T,1),L=o;continue;case 108:b.te=T,T=a(T,1),b.$emit("tIDENTIFIER"),b.cs=247,T=l(T,1),L=o;continue;case 103:b.te=T,T=a(T,1),T=a(b.ts,1),b.cs=516,b.stack["$[]="](b.top,b.cs),b.top=l(b.top,1),b.cs=129,L=s;continue;case 99:b.te=T,T=a(T,1),b.$emit_table(M("PUNCTUATION")),b.cs=247,T=l(T,1),L=o;continue;case 104:case 143:case 141:case 152:case 178:case 253:case 258:b.te=T,T=a(T,1),T=a(T,1),b.cs=345,L=s;continue;case 97:case 114:case 124:case 134:case 163:case 174:case 197:case 249:case 259:case 278:case 375:b.te=T,T=a(T,1);break;case 102:case 113:case 129:case 166:b.te=T,T=a(T,1),T=a(T,1),b.cs=516,L=s;continue;case 4:T=a(b.te,1),b.$emit_table(M("PUNCTUATION")),b.cs=247,T=l(T,1),L=o;continue;case 2:case 6:T=a(b.te,1),T=a(T,1),b.cs=516,L=s;continue;case 95:switch(b.act.valueOf()){case 4:T=a(b.te,1),b.$emit_table(M("KEYWORDS_BEGIN")),b.cs=247,T=l(T,1),L=o;continue;case 5:T=a(b.te,1),b.$emit("tCONSTANT"),b.cs=247,T=l(T,1),L=o;continue;case 6:T=a(b.te,1),b.$emit("tIDENTIFIER"),b.cs=247,T=l(T,1),L=o;continue}break;case 7:b.te=l(T,1),b.$emit("tLABEL",b.$tok(b.ts,a(b.te,2)),b.ts,a(b.te,1)),T=a(T,1),b.cs=501,T=l(T,1),L=o;continue;case 8:if(b.te=l(T,1),r(m(b.version,31))&&r(b.context.$in_argdef())){b.$emit("tBDOT3","...".$freeze()),b.cs=516,T=l(T,1),L=o;continue}T=a(T,3),b.cs=516,L=s;continue;case 120:b.te=l(T,1),b.$emit_table(M("PUNCTUATION")),b.cs=276,T=l(T,1),L=o;continue;case 130:case 343:b.te=T,T=a(T,1),b.$emit("tCONSTANT"),b.cs=b.$arg_or_cmdarg(z),T=l(T,1),L=o;continue;case 121:b.te=T,T=a(T,1),b.$emit("tIDENTIFIER"),b.cs=b.$arg_or_cmdarg(z),T=l(T,1),L=o;continue;case 126:b.te=T,T=a(T,1),b.$emit_table(M("PUNCTUATION")),b.cs=276,T=l(T,1),L=o;continue;case 153:case 25:case 41:case 61:b.te=l(T,1),T=a(b.ts,1),b.cs=516,L=s;continue;case 136:b.te=l(T,1),b.$check_ambiguous_slash(j),T=a(j,1),b.cs=345,L=s;continue;case 142:b.te=l(T,1),T=a(T,1),T=a(T,1),b.cs=345,L=s;continue;case 10:b.te=l(T,1),T=a(b.ts,1),b.cs=345,L=s;continue;case 144:case 80:b.te=l(T,1),T=a(j,1),b.cs=516,L=s;continue;case 131:case 172:case 247:case 256:b.te=l(T,1),T=a(T,1),b.cs=345,L=s;continue;case 139:b.te=T,T=a(T,1),b.$diagnostic("warning","ambiguous_prefix",new Map([["prefix",b.$tok(j,b.te)]]),b.$range(j,b.te)),T=a(j,1),b.cs=345,L=s;continue;case 135:case 202:b.te=T,T=a(T,1),T=a(b.ts,1),b.cs=516,L=s;continue;case 11:case 38:T=a(b.te,1);break;case 27:case 60:T=a(b.te,1),T=a(T,1),b.cs=345,L=s;continue;case 9:switch(b.act.valueOf()){case 33:T=a(b.te,1),b.$check_ambiguous_slash(j),T=a(j,1),b.cs=345,L=s;continue;case 34:T=a(b.te,1),b.$diagnostic("warning","ambiguous_prefix",new Map([["prefix",b.$tok(j,b.te)]]),b.$range(j,b.te)),T=a(j,1),b.cs=345,L=s;continue;case 39:T=a(b.te,1),T=a(b.ts,1),b.cs=516,L=s;continue;default:T=a(b.te,1)}break;case 29:b.te=l(T,1),T=a(b.ts,1),b.cs=276,L=s;continue;case 158:b.te=T,T=a(T,1),T=a(b.ts,1),b.cs=276,L=s;continue;case 30:T=a(b.te,1),T=a(b.ts,1),b.cs=276,L=s;continue;case 28:switch(b.act.valueOf()){case 46:T=a(b.te,1),r(b.cond["$active?"]())?b.$emit("kDO_COND","do".$freeze(),a(b.te,2),b.te):b.$emit("kDO","do".$freeze(),a(b.te,2),b.te),b.cs=508,T=l(T,1),L=o;continue;case 47:T=a(b.te,1),T=a(b.ts,1),b.cs=276,L=s;continue}break;case 168:b.te=l(T,1),b.$emit_do(!0),b.cs=508,T=l(T,1),L=o;continue;case 180:b.te=T,T=a(T,1),T=a(b.ts,1),b.cs=345,L=s;continue;case 173:switch(b.act.valueOf()){case 54:T=a(b.te,1),b.$emit_table(M("KEYWORDS")),b.cs=345,T=l(T,1),L=o;continue;case 55:T=a(b.te,1),T=a(b.ts,1),b.cs=345,L=s;continue}break;case 42:b.te=l(T,1),b.$emit("tUNARY_NUM",b.$tok(b.ts,l(b.ts,1)),b.ts,l(b.ts,1)),T=a(T,1),b.cs=516,T=l(T,1),L=o;continue;case 214:b.te=l(T,1),X=K=b.$tok()["$[]"](0).$chr(),b.strings.$push_literal(X,K,b.ts),T=a(T,1),b.cs=128,L=s;continue;case 206:b.te=l(T,1),X=(e=[b.source_buffer.$slice(b.ts,1).$chr(),b.$tok()["$[]"](-1).$chr()])[0],K=e[1],b.strings.$push_literal(X,K,b.ts),b.cs=128,L=s;continue;case 40:b.te=l(T,1),X=(e=[b.$tok()["$[]"](p(0,-2,!1)),b.$tok()["$[]"](-1).$chr()])[0],K=e[1],b.strings.$push_literal(X,K,b.ts),b.cs=128,L=s;continue;case 227:b.te=l(T,1),T=a(T,1),T=a(T,1),b.$emit("tSYMBEG",b.$tok(b.ts,l(b.ts,1)),b.ts,l(b.ts,1)),b.cs=134,L=s;continue;case 215:b.te=l(T,1),X=(e=[b.$tok(),b.$tok()["$[]"](-1).$chr()])[0],K=e[1],b.strings.$push_literal(X,K,b.ts),b.cs=128,L=s;continue;case 226:b.te=l(T,1),b.$emit("tSYMBOL",b.$tok(l(b.ts,1),l(b.ts,2))),b.cs=516,T=l(T,1),L=o;continue;case 54:b.te=l(T,1),W=b.$tok(l(b.ts,1)),r(m(b.version,33))&&r(W["$start_with?"]("$0"))&&r(c(W.$length(),2))&&b.$diagnostic("error","gvar_name",new Map([["name",W]]),b.$range(l(b.ts,1),b.te)),b.$emit("tSYMBOL",W,b.ts),b.cs=516,T=l(T,1),L=o;continue;case 236:if(b.te=l(T,1),t=b.strings.$read_character_constant(b.ts),T=null==(e=$(t))[0]?x:e[0],Q=null==e[1]?x:e[1],T=a(T,1),r(b.token_queue["$empty?"]())){b.cs=Q,L=s;continue}b.cs=Q,T=l(T,1),L=o;continue;case 237:b.te=l(T,1),b.$diagnostic("fatal","incomplete_escape",x,b.$range(b.ts,l(b.ts,1)));break;case 216:b.te=l(T,1),b.$emit_table(M("PUNCTUATION_BEGIN")),T=l(T,1),L=o;continue;case 37:b.te=l(T,1),T=a(T,1),r(b["$version?"](18))?(J=b.$tok(b.ts,a(b.te,2)),b.$emit(r(b.source_buffer.$slice(b.ts,1)["$=~"](d(/[A-Z]/u,null,"")))?"tCONSTANT":"tIDENTIFIER",J,b.ts,a(b.te,2)),T=a(T,1),f(b.static_env["$nil?"]())&&r(b.static_env["$declared?"](J))?b.cs=516:b.cs=b.$arg_or_cmdarg(z)):(b.$emit("tLABEL",b.$tok(b.ts,a(b.te,2)),b.ts,a(b.te,1)),b.cs=501),T=l(T,1),L=o;continue;case 34:b.te=l(T,1),b.$emit("tIDENTIFIER",H,Y,V),T=a(V,1),f(b.static_env["$nil?"]())&&r(b.static_env["$declared?"](H))&&r(h(b.version,25))?b.cs=247:b.cs=307,T=l(T,1),L=o;continue;case 200:b.te=l(T,1),T=a(b.ts,1),b.cs_before_block_comment=b.cs,b.cs=710,L=s;continue;case 210:b.te=T,T=a(T,1),b.$emit("tUNARY_NUM",b.$tok(b.ts,l(b.ts,1)),b.ts,l(b.ts,1)),T=a(T,1),b.cs=516,T=l(T,1),L=o;continue;case 209:b.te=T,T=a(T,1),b.$emit("tSTAR","*".$freeze()),T=l(T,1),L=o;continue;case 205:b.te=T,T=a(T,1),b.$diagnostic("fatal","string_eof",x,b.$range(b.ts,l(b.ts,1)));break;case 234:b.te=T,T=a(T,1),b.$diagnostic("error","unterminated_heredoc_id",x,b.$range(b.ts,l(b.ts,1)));break;case 217:b.te=T,T=a(T,1),W=b.$tok(l(b.ts,1)),r(m(b.version,33))&&r(W["$start_with?"]("$0"))&&r(c(W.$length(),2))&&b.$diagnostic("error","gvar_name",new Map([["name",W]]),b.$range(l(b.ts,1),b.te)),b.$emit("tSYMBOL",W,b.ts),b.cs=516,T=l(T,1),L=o;continue;case 230:b.te=T,T=a(T,1),b.$emit_colon_with_digits(T,j,G),b.cs=516,T=l(T,1),L=o;continue;case 235:b.te=T,T=a(T,1),b.$diagnostic("fatal","incomplete_escape",x,b.$range(b.ts,l(b.ts,1)));break;case 207:b.te=T,T=a(T,1),b.$emit_table(M("PUNCTUATION_BEGIN")),T=l(T,1),L=o;continue;case 211:b.te=T,T=a(T,1),r(m(b.version,27))?b.$emit("tBDOT2"):b.$emit("tDOT2"),b.cs=345,T=l(T,1),L=o;continue;case 212:b.te=T,T=a(T,1),Z=a(b.te,1)["$=="](b.newline_s),ee=!1,te=r(Z)?a(b.te,1):b.te,r(m(b.version,30))?r(b.lambda_stack["$any?"]())&&i(l(b.lambda_stack.$last(),1),b.paren_nest)?b.$emit("tDOT3","...".$freeze(),b.ts,te):(b.$emit("tBDOT3","...".$freeze(),b.ts,te),r(m(b.version,31))&&r(Z)&&r(b.context.$in_argdef())&&(b.$emit("tNL",a(b.te,1),b.te),ee=!0)):r(m(b.version,27))?b.$emit("tBDOT3","...".$freeze(),b.ts,te):b.$emit("tDOT3","...".$freeze(),b.ts,te),r(Z)&&f(ee)&&(T=a(T,1)),b.cs=345,T=l(T,1),L=o;continue;case 187:case 349:if(b.te=T,T=a(T,1),b.$emit("tIDENTIFIER"),f(b.static_env["$nil?"]())&&r(b.static_env["$declared?"](b.$tok()))){b.cs=247,T=l(T,1),L=o;continue}if(r(m(b.version,32))&&r(b.$tok()["$=~"](d(/^_[1-9]$/u,"\\A_[1-9]\\z","")))){b.cs=247,T=l(T,1),L=o;continue}b.cs=b.$arg_or_cmdarg(z),T=l(T,1),L=o;continue;case 199:b.te=T,T=a(T,1),T=a(b.ts,1),b.cs_before_block_comment=b.cs,b.cs=710,L=s;continue;case 39:T=a(b.te,1),b.$diagnostic("fatal","string_eof",x,b.$range(b.ts,l(b.ts,1)));break;case 58:T=a(b.te,1),b.$diagnostic("error","unterminated_heredoc_id",x,b.$range(b.ts,l(b.ts,1)));break;case 33:if(T=a(b.te,1),b.$emit("tIDENTIFIER"),f(b.static_env["$nil?"]())&&r(b.static_env["$declared?"](b.$tok()))){b.cs=247,T=l(T,1),L=o;continue}if(r(m(b.version,32))&&r(b.$tok()["$=~"](d(/^_[1-9]$/u,"\\A_[1-9]\\z","")))){b.cs=247,T=l(T,1),L=o;continue}b.cs=b.$arg_or_cmdarg(z),T=l(T,1),L=o;continue;case 53:T=a(b.te,1),T=a(b.ts,1),b.cs=516,L=s;continue;case 36:switch(b.act.valueOf()){case 60:T=a(b.te,1),b.$emit("tUNARY_NUM",b.$tok(b.ts,l(b.ts,1)),b.ts,l(b.ts,1)),T=a(T,1),b.cs=516,T=l(T,1),L=o;continue;case 67:T=a(b.te,1),b.$diagnostic("error","unterminated_heredoc_id",x,b.$range(b.ts,l(b.ts,1)));break;case 76:if(T=a(b.te,1),r(m(b.version,27))){b.$emit("tPIPE",b.$tok(b.ts,l(b.ts,1)),b.ts,l(b.ts,1)),T=a(T,1),b.cs=345,T=l(T,1),L=o;continue}T=a(T,2),b.cs=516,L=s;continue;case 80:T=a(b.te,1),b.$emit_table(M("PUNCTUATION_BEGIN")),T=l(T,1),L=o;continue;case 81:T=a(b.te,1),b.$emit("kRESCUE","rescue".$freeze(),b.ts,j),T=a(j,1),b.cs=321,T=l(T,1),L=o;continue;case 82:T=a(b.te,1),b.$emit_table(M("KEYWORDS_BEGIN")),b.command_start=!0,b.cs=508,T=l(T,1),L=o;continue;case 86:case 91:T=a(b.te,1),T=a(b.ts,1),b.cs=516,L=s;continue;case 87:if(T=a(b.te,1),b.$emit("tIDENTIFIER"),f(b.static_env["$nil?"]())&&r(b.static_env["$declared?"](b.$tok()))){b.cs=247,T=l(T,1),L=o;continue}if(r(m(b.version,32))&&r(b.$tok()["$=~"](d(/^_[1-9]$/u,"\\A_[1-9]\\z","")))){b.cs=247,T=l(T,1),L=o;continue}b.cs=b.$arg_or_cmdarg(z),T=l(T,1),L=o;continue}break;case 257:b.te=l(T,1),b.strings.$push_literal(b.$tok(),b.$tok(),b.ts),b.cs=128,L=s;continue;case 292:b.te=l(T,1),b.$emit("tLAMBDA","->".$freeze(),b.ts,l(b.ts,2)),b.lambda_stack.$push(b.paren_nest),b.cs=247,T=l(T,1),L=o;continue;case 71:b.te=l(T,1),b.$emit_singleton_class(),b.cs=508,T=l(T,1),L=o;continue;case 267:b.te=l(T,1),X=(e=[b.$tok(),b.$tok()["$[]"](-1).$chr()])[0],K=e[1],b.strings.$push_literal(X,K,b.ts,x,!1,!1,!0),b.cs=128,L=s;continue;case 63:b.te=l(T,1),T=a(b.ts,1),b.stack["$[]="](b.top,b.cs),b.top=l(b.top,1),b.cs=129,L=s;continue;case 288:b.te=l(T,1),b.$emit_table(M("PUNCTUATION")),b.cs=255,T=l(T,1),L=o;continue;case 341:case 281:b.te=l(T,1),b.$emit_table(M("PUNCTUATION")),b.cs=508,T=l(T,1),L=o;continue;case 286:b.te=l(T,1),b.$emit("tOP_ASGN",b.$tok(b.ts,a(b.te,1))),b.cs=345,T=l(T,1),L=o;continue;case 272:b.te=l(T,1),b.$emit("tEH","?".$freeze()),b.cs=508,T=l(T,1),L=o;continue;case 269:b.te=l(T,1),b.$emit_table(M("PUNCTUATION")),b.cs=345,T=l(T,1),L=o;continue;case 271:b.te=l(T,1),b.$emit("tSEMI",";".$freeze()),b.command_start=!0,b.cs=508,T=l(T,1),L=o;continue;case 346:b.te=l(T,1),b.$diagnostic("error","bare_backslash",x,b.$range(b.ts,l(b.ts,1))),T=a(T,1);break;case 266:b.te=l(T,1),b.$diagnostic("fatal","unexpected",new Map([["character",b.$tok().$inspect()["$[]"](p(1,-2,!1))]]));break;case 357:b.te=T,T=a(T,1),b.$emit_table(M("KEYWORDS")),b.cs=134,T=l(T,1),L=o;continue;case 355:b.te=T,T=a(T,1),b.$emit_singleton_class(),b.cs=508,T=l(T,1),L=o;continue;case 354:b.te=T,T=a(T,1),b.$emit_table(M("KEYWORDS")),b.command_start=!0,b.cs=508,T=l(T,1),L=o;continue;case 296:b.te=T,T=a(T,1),b.$diagnostic("error","no_dot_digit_literal");break;case 285:b.te=T,T=a(T,1),T=a(b.ts,1),b.stack["$[]="](b.top,b.cs),b.top=l(b.top,1),b.cs=129,L=s;continue;case 293:b.te=T,T=a(T,1),b.$emit_table(M("PUNCTUATION")),b.cs=255,T=l(T,1),L=o;continue;case 291:case 287:b.te=T,T=a(T,1),b.$emit_table(M("PUNCTUATION")),b.cs=508,T=l(T,1),L=o;continue;case 280:case 294:b.te=T,T=a(T,1),b.$emit_table(M("PUNCTUATION")),b.cs=345,T=l(T,1),L=o;continue;case 284:b.te=T,T=a(T,1),b.$diagnostic("fatal","unexpected",new Map([["character",b.$tok().$inspect()["$[]"](p(1,-2,!1))]]));break;case 69:T=a(b.te,1),re=b.$numeric_literal_int(),r(b["$version?"](18,19,20))?(b.$emit("tINTEGER",re.$to_i(b.num_base),b.ts,b.num_suffix_s),T=a(b.num_suffix_s,1)):T=b.num_xfrm.$call(re.$to_i(b.num_base),T),T=l(T,1),L=o;continue;case 64:T=a(b.te,1),b.$diagnostic("error","no_dot_digit_literal");break;case 68:T=a(b.te,1),re=b.$tok(b.ts,b.num_suffix_s),r(b["$version?"](18,19,20))?(b.$emit("tFLOAT",b.$Float(re),b.ts,b.num_suffix_s),T=a(b.num_suffix_s,1)):T=b.num_xfrm.$call(re,T),T=l(T,1),L=o;continue;case 62:T=a(b.te,1),b.$diagnostic("fatal","unexpected",new Map([["character",b.$tok().$inspect()["$[]"](p(1,-2,!1))]]));break;case 66:switch(b.act.valueOf()){case 104:T=a(b.te,1),i(b.lambda_stack.$last(),b.paren_nest)?(b.lambda_stack.$pop(),i(b.$tok(),"{".$freeze())?b.$emit("tLAMBEG","{".$freeze()):b.$emit("kDO_LAMBDA","do".$freeze())):i(b.$tok(),"{".$freeze())?b.$emit("tLCURLY","{".$freeze()):b.$emit_do(),i(b.$tok(),"{".$freeze())&&(b.paren_nest=l(b.paren_nest,1)),b.command_start=!0,b.cs=508,T=l(T,1),L=o;continue;case 105:T=a(b.te,1),b.$emit_table(M("KEYWORDS")),b.cs=134,T=l(T,1),L=o;continue;case 106:T=a(b.te,1),b.$emit_singleton_class(),b.cs=508,T=l(T,1),L=o;continue;case 107:T=a(b.te,1),b.$emit_table(M("KEYWORDS")),b.cs=345,T=l(T,1),L=o;continue;case 108:T=a(b.te,1),b.$emit_table(M("KEYWORDS")),b.command_start=!0,b.cs=508,T=l(T,1),L=o;continue;case 109:T=a(b.te,1),b.$emit_table(M("KEYWORDS")),b.cs=321,T=l(T,1),L=o;continue;case 110:if(T=a(b.te,1),b.$emit_table(M("KEYWORDS")),r(b["$version?"](18))&&i(b.$tok(),"not".$freeze())){b.cs=345,T=l(T,1),L=o;continue}b.cs=276,T=l(T,1),L=o;continue;case 111:T=a(b.te,1),r(b["$version?"](18))?(b.$emit("tIDENTIFIER"),f(b.static_env["$nil?"]())&&r(b.static_env["$declared?"](b.$tok()))||(b.cs=b.$arg_or_cmdarg(z))):b.$emit("k__ENCODING__","__ENCODING__".$freeze()),T=l(T,1),L=o;continue;case 112:T=a(b.te,1),b.$emit_table(M("KEYWORDS")),T=l(T,1),L=o;continue;case 113:T=a(b.te,1),re=b.$numeric_literal_int(),r(b["$version?"](18,19,20))?(b.$emit("tINTEGER",re.$to_i(b.num_base),b.ts,b.num_suffix_s),T=a(b.num_suffix_s,1)):T=b.num_xfrm.$call(re.$to_i(b.num_base),T),T=l(T,1),L=o;continue;case 115:if(T=a(b.te,1),!r(b["$version?"](18,19,20))){b.$emit("tINTEGER",b.$tok(b.ts,a(b.te,1)).$to_i(),b.ts,a(b.te,1)),T=a(T,1),T=l(T,1),L=o;continue}b.$diagnostic("error","trailing_in_number",new Map([["character",b.$tok(a(b.te,1),b.te)]]),b.$range(a(b.te,1),b.te));break;case 116:if(T=a(b.te,1),!r(b["$version?"](18,19,20))){b.$emit("tFLOAT",b.$tok(b.ts,a(b.te,1)).$to_f(),b.ts,a(b.te,1)),T=a(T,1),T=l(T,1),L=o;continue}b.$diagnostic("error","trailing_in_number",new Map([["character",b.$tok(a(b.te,1),b.te)]]),b.$range(a(b.te,1),b.te));break;case 117:T=a(b.te,1),re=b.$tok(b.ts,b.num_suffix_s),r(b["$version?"](18,19,20))?(b.$emit("tFLOAT",b.$Float(re),b.ts,b.num_suffix_s),T=a(b.num_suffix_s,1)):T=b.num_xfrm.$call(re,T),T=l(T,1),L=o;continue;case 119:T=a(b.te,1),b.$emit("tCONSTANT"),b.cs=b.$arg_or_cmdarg(z),T=l(T,1),L=o;continue;case 123:if(T=a(b.te,1),b.$emit("tIDENTIFIER"),f(b.static_env["$nil?"]())&&r(b.static_env["$declared?"](b.$tok()))){b.cs=247,T=l(T,1),L=o;continue}if(r(m(b.version,32))&&r(b.$tok()["$=~"](d(/^_[1-9]$/u,"\\A_[1-9]\\z","")))){b.cs=247,T=l(T,1),L=o;continue}b.cs=b.$arg_or_cmdarg(z),T=l(T,1),L=o;continue;case 124:T=a(b.te,1),i(j,b.te)?b.$emit("tFID"):(b.$emit("tIDENTIFIER",b.$tok(b.ts,j),b.ts,j),T=a(j,1)),b.cs=276,T=l(T,1),L=o;continue;case 126:T=a(b.te,1),b.$emit_table(M("PUNCTUATION")),b.cs=508,T=l(T,1),L=o;continue;case 127:T=a(b.te,1),b.$emit_table(M("PUNCTUATION")),b.cs=345,T=l(T,1),L=o;continue}break;case 368:if(b.te=l(T,1),b.$emit("tNL",x,b.newline_s,l(b.newline_s,1)),r(h(b.version,27))){T=a(T,1),b.cs=710,T=l(T,1),L=o;continue}b.$emit("tBDOT3"),b.cs=345,T=l(T,1),L=o;continue;case 362:b.te=l(T,1),b.$emit("tNL",x,b.newline_s,l(b.newline_s,1)),T=a(T,1),b.cs=710,T=l(T,1),L=o;continue;case 365:if(b.te=T,T=a(T,1),r(h(b.version,27))){b.$emit("tNL",x,b.newline_s,l(b.newline_s,1)),T=a(T,1),b.cs=710,T=l(T,1),L=o;continue}break;case 367:if(b.te=T,T=a(T,1),b.$emit("tNL",x,b.newline_s,l(b.newline_s,1)),r(h(b.version,27))){T=a(T,1),b.cs=710,T=l(T,1),L=o;continue}b.$emit("tBDOT2"),b.cs=345,T=l(T,1),L=o;continue;case 366:b.te=T,T=a(T,1),T=a(j,1),b.cs=516,L=s;continue;case 364:b.te=T,T=a(T,1),b.$emit("tNL",x,b.newline_s,l(b.newline_s,1)),T=a(T,1),b.cs=710,T=l(T,1),L=o;continue;case 75:if(T=a(b.te,1),r(h(b.version,27))){b.$emit("tNL",x,b.newline_s,l(b.newline_s,1)),T=a(T,1),b.cs=710,T=l(T,1),L=o;continue}break;case 72:T=a(b.te,1),b.$emit("tNL",x,b.newline_s,l(b.newline_s,1)),T=a(T,1),b.cs=710,T=l(T,1),L=o;continue;case 76:switch(b.act.valueOf()){case 140:if(T=a(b.te,1),r(h(b.version,27))){b.$emit("tNL",x,b.newline_s,l(b.newline_s,1)),T=a(T,1),b.cs=710,T=l(T,1),L=o;continue}break;case 144:T=a(b.te,1),b.$emit("tNL",x,b.newline_s,l(b.newline_s,1)),T=a(T,1),b.cs=710,T=l(T,1),L=o;continue}break;case 371:b.te=T,T=a(T,1),b.$emit_comment(b.eq_begin_s,b.te),b.cs=b.cs_before_block_comment,L=s;continue;case 370:b.te=T,T=a(T,1),b.$diagnostic("fatal","embedded_document",x,b.$range(b.eq_begin_s,l(b.eq_begin_s,"=begin".$length())));break;case 381:b.te=l(T,1),b.eq_begin_s=b.ts,b.cs=704,L=s;continue;case 82:b.te=l(T,1),T=a(n,3);break;case 373:b.te=l(T,1),z=!0,T=a(T,1),b.cs=508,L=s;continue;case 380:b.te=T,T=a(T,1),b.eq_begin_s=b.ts,b.cs=704,L=s;continue;case 379:b.te=T,T=a(T,1),z=!0,T=a(T,1),b.cs=508,L=s;continue;case 81:T=a(b.te,1),z=!0,T=a(T,1),b.cs=508,L=s;continue;case 86:b.te=l(T,1),t=b.strings.$advance(T),T=null==(e=$(t))[0]?x:e[0],Q=null==e[1]?x:e[1],T=a(T,1),b.cs=Q,T=l(T,1),L=o;continue;case 52:b.newline_s=T,b.$emit_comment_from_range(T,n);break;case 154:case 137:b.newline_s=T,b.te=l(T,1),T=a(b.ts,1),b.cs=516,L=s;continue;case 145:b.newline_s=T,b.te=l(T,1),T=a(j,1),b.cs=516,L=s;continue;case 213:b.newline_s=T,b.te=l(T,1),Z=a(b.te,1)["$=="](b.newline_s),ee=!1,te=r(Z)?a(b.te,1):b.te,r(m(b.version,30))?r(b.lambda_stack["$any?"]())&&i(l(b.lambda_stack.$last(),1),b.paren_nest)?b.$emit("tDOT3","...".$freeze(),b.ts,te):(b.$emit("tBDOT3","...".$freeze(),b.ts,te),r(m(b.version,31))&&r(Z)&&r(b.context.$in_argdef())&&(b.$emit("tNL",a(b.te,1),b.te),ee=!0)):r(m(b.version,27))?b.$emit("tBDOT3","...".$freeze(),b.ts,te):b.$emit("tDOT3","...".$freeze(),b.ts,te),r(Z)&&f(ee)&&(T=a(T,1)),b.cs=345,T=l(T,1),L=o;continue;case 201:b.newline_s=T,b.te=l(T,1),T=a(b.ts,1),b.cs_before_block_comment=b.cs,b.cs=710,L=s;continue;case 295:b.newline_s=T,b.te=l(T,1),i(b.paren_nest,0)&&b.$diagnostic("warning","triple_dot_at_eol",x,b.$range(b.ts,a(b.te,1))),b.$emit("tDOT3","...".$freeze(),b.ts,a(b.te,1)),T=a(T,1),b.cs=345,T=l(T,1),L=o;continue;case 372:b.newline_s=T,b.te=l(T,1),b.$emit_comment(b.eq_begin_s,b.te),b.cs=b.cs_before_block_comment,L=s;continue;case 369:b.newline_s=T,b.te=l(T,1);break;case 382:b.newline_s=T,b.te=l(T,1),b.eq_begin_s=b.ts,b.cs=704,L=s;continue;case 83:b.newline_s=T,b.te=l(T,1),T=a(n,3);break;case 317:b.num_xfrm=b.emit_rational,b.te=T,T=a(T,1),re=b.$numeric_literal_int(),r(b["$version?"](18,19,20))?(b.$emit("tINTEGER",re.$to_i(b.num_base),b.ts,b.num_suffix_s),T=a(b.num_suffix_s,1)):T=b.num_xfrm.$call(re.$to_i(b.num_base),T),T=l(T,1),L=o;continue;case 315:b.num_xfrm=b.emit_imaginary,b.te=T,T=a(T,1),re=b.$numeric_literal_int(),r(b["$version?"](18,19,20))?(b.$emit("tINTEGER",re.$to_i(b.num_base),b.ts,b.num_suffix_s),T=a(b.num_suffix_s,1)):T=b.num_xfrm.$call(re.$to_i(b.num_base),T),T=l(T,1),L=o;continue;case 320:b.num_xfrm=b.emit_imaginary_rational,b.te=T,T=a(T,1),re=b.$numeric_literal_int(),r(b["$version?"](18,19,20))?(b.$emit("tINTEGER",re.$to_i(b.num_base),b.ts,b.num_suffix_s),T=a(b.num_suffix_s,1)):T=b.num_xfrm.$call(re.$to_i(b.num_base),T),T=l(T,1),L=o;continue;case 318:b.num_xfrm=b.emit_integer_re,b.te=T,T=a(T,1),re=b.$numeric_literal_int(),r(b["$version?"](18,19,20))?(b.$emit("tINTEGER",re.$to_i(b.num_base),b.ts,b.num_suffix_s),T=a(b.num_suffix_s,1)):T=b.num_xfrm.$call(re.$to_i(b.num_base),T),T=l(T,1),L=o;continue;case 316:b.num_xfrm=b.emit_integer_if,b.te=T,T=a(T,1),re=b.$numeric_literal_int(),r(b["$version?"](18,19,20))?(b.$emit("tINTEGER",re.$to_i(b.num_base),b.ts,b.num_suffix_s),T=a(b.num_suffix_s,1)):T=b.num_xfrm.$call(re.$to_i(b.num_base),T),T=l(T,1),L=o;continue;case 319:b.num_xfrm=b.emit_integer_rescue,b.te=T,T=a(T,1),re=b.$numeric_literal_int(),r(b["$version?"](18,19,20))?(b.$emit("tINTEGER",re.$to_i(b.num_base),b.ts,b.num_suffix_s),T=a(b.num_suffix_s,1)):T=b.num_xfrm.$call(re.$to_i(b.num_base),T),T=l(T,1),L=o;continue;case 308:b.num_xfrm=b.emit_imaginary_float,b.te=T,T=a(T,1),re=b.$tok(b.ts,b.num_suffix_s),r(b["$version?"](18,19,20))?(b.$emit("tFLOAT",b.$Float(re),b.ts,b.num_suffix_s),T=a(b.num_suffix_s,1)):T=b.num_xfrm.$call(re,T),T=l(T,1),L=o;continue;case 309:b.num_xfrm=b.emit_float_if,b.te=T,T=a(T,1),re=b.$tok(b.ts,b.num_suffix_s),r(b["$version?"](18,19,20))?(b.$emit("tFLOAT",b.$Float(re),b.ts,b.num_suffix_s),T=a(b.num_suffix_s,1)):T=b.num_xfrm.$call(re,T),T=l(T,1),L=o;continue;case 310:b.num_xfrm=b.emit_rational,b.te=T,T=a(T,1),re=b.$tok(b.ts,b.num_suffix_s),r(b["$version?"](18,19,20))?(b.$emit("tFLOAT",b.$Float(re),b.ts,b.num_suffix_s),T=a(b.num_suffix_s,1)):T=b.num_xfrm.$call(re,T),T=l(T,1),L=o;continue;case 312:b.num_xfrm=b.emit_imaginary_rational,b.te=T,T=a(T,1),re=b.$tok(b.ts,b.num_suffix_s),r(b["$version?"](18,19,20))?(b.$emit("tFLOAT",b.$Float(re),b.ts,b.num_suffix_s),T=a(b.num_suffix_s,1)):T=b.num_xfrm.$call(re,T),T=l(T,1),L=o;continue;case 311:b.num_xfrm=b.emit_float_rescue,b.te=T,T=a(T,1),re=b.$tok(b.ts,b.num_suffix_s),r(b["$version?"](18,19,20))?(b.$emit("tFLOAT",b.$Float(re),b.ts,b.num_suffix_s),T=a(b.num_suffix_s,1)):T=b.num_xfrm.$call(re,T),T=l(T,1),L=o;continue;case 147:b.$e_lbrace(),b.te=T,T=a(T,1),i(b.lambda_stack.$last(),b.paren_nest)?(b.lambda_stack.$pop(),b.$emit("tLAMBEG","{".$freeze(),a(b.te,1),b.te)):b.$emit("tLCURLY","{".$freeze(),a(b.te,1),b.te),b.command_start=!0,b.paren_nest=l(b.paren_nest,1),b.cs=508,T=l(T,1),L=o;continue;case 169:b.$e_lbrace(),b.te=T,T=a(T,1),i(b.lambda_stack.$last(),b.paren_nest)?(b.lambda_stack.$pop(),b.$emit("tLAMBEG","{".$freeze())):b.$emit("tLBRACE_ARG","{".$freeze()),b.paren_nest=l(b.paren_nest,1),b.command_start=!0,b.cs=508,T=l(T,1),L=o;continue;case 245:b.$e_lbrace(),b.te=T,T=a(T,1),i(b.lambda_stack.$last(),b.paren_nest)?(b.lambda_stack.$pop(),b.command_start=!0,b.$emit("tLAMBEG","{".$freeze())):b.$emit("tLBRACE","{".$freeze()),b.paren_nest=l(b.paren_nest,1),T=l(T,1),L=o;continue;case 360:b.$e_lbrace(),b.te=T,T=a(T,1),i(b.lambda_stack.$last(),b.paren_nest)?(b.lambda_stack.$pop(),i(b.$tok(),"{".$freeze())?b.$emit("tLAMBEG","{".$freeze()):b.$emit("kDO_LAMBDA","do".$freeze())):i(b.$tok(),"{".$freeze())?b.$emit("tLCURLY","{".$freeze()):b.$emit_do(),i(b.$tok(),"{".$freeze())&&(b.paren_nest=l(b.paren_nest,1)),b.command_start=!0,b.cs=508,T=l(T,1),L=o;continue;case 361:if(r(b.strings.$close_interp_on_current_literal(T))){T=a(T,1),b.cs=128,T=l(T,1),L=o;continue}b.paren_nest=a(b.paren_nest,1),b.te=T,T=a(T,1),b.$emit_rbrace_rparen_rbrack(),(i(b.$tok(),"}".$freeze())||i(b.$tok(),"]".$freeze()))&&(r(m(b.version,25))?b.cs=516:b.cs=313),T=l(T,1),L=o;continue;case 43:T=b.$on_newline(T),b.newline_s=T;break;case 16:case 18:case 20:j=T=b.$on_newline(T);break;case 98:case 117:case 125:case 156:case 167:case 179:case 198:case 254:case 263:case 347:case 376:T=b.$on_newline(T),b.te=T,T=a(T,1);break;case 19:T=b.$on_newline(T),b.te=l(T,1),T=a(b.ts,1),b.cs=516,L=s;continue;case 148:case 175:T=b.$on_newline(T),b.te=T,T=a(T,1),T=a(T,1),b.cs=516,L=s;continue;case 44:T=b.$on_newline(T),b.te=l(T,1),b.$emit("tUNARY_NUM",b.$tok(b.ts,l(b.ts,1)),b.ts,l(b.ts,1)),T=a(T,1),b.cs=516,T=l(T,1),L=o;continue;case 35:T=b.$on_newline(T),b.te=l(T,1),b.$emit("tIDENTIFIER",H,Y,V),T=a(V,1),f(b.static_env["$nil?"]())&&r(b.static_env["$declared?"](H))&&r(h(b.version,25))?b.cs=247:b.cs=307,T=l(T,1),L=o;continue;case 250:if(T=b.$on_newline(T),b.te=T,T=a(T,1),r(b.context.$in_kwarg())){T=a(T,1),b.cs=516,L=s;continue}b.cs=710,L=s;continue;case 260:T=b.$on_newline(T),b.te=T,T=a(T,1),b.cs=710,L=s;continue;case 279:T=b.$on_newline(T),b.te=T,T=a(T,1),b.cs=696,L=s;continue;case 46:b.sharp_s=a(T,1),b.$emit_comment_from_range(T,n);break;case 50:b.$emit_comment_from_range(T,n),b.newline_s=T;break;case 101:case 116:case 128:case 165:case 177:case 204:case 252:case 262:case 283:case 378:b.$emit_comment_from_range(T,n),b.te=T,T=a(T,1);break;case 150:b.$emit_comment_from_range(T,n),b.te=T,T=a(T,1),b.cs=516,L=s;continue;case 122:j=T,b.te=T,T=a(T,1),b.$emit("tFID",b.$tok(b.ts,j),b.ts,j),b.cs=b.$arg_or_cmdarg(z),T=a(j,1),T=l(T,1),L=o;continue;case 218:case 220:j=T,b.te=T,T=a(T,1),b.$emit("tSYMBOL",b.$tok(l(b.ts,1),j),b.ts,j),T=a(j,1),b.cs=516,T=l(T,1),L=o;continue;case 189:case 192:j=T,b.te=T,T=a(T,1),T=a(b.ts,1),b.cs=516,L=s;continue;case 276:switch(j=T,b.act.valueOf()){case 104:T=a(b.te,1),i(b.lambda_stack.$last(),b.paren_nest)?(b.lambda_stack.$pop(),i(b.$tok(),"{".$freeze())?b.$emit("tLAMBEG","{".$freeze()):b.$emit("kDO_LAMBDA","do".$freeze())):i(b.$tok(),"{".$freeze())?b.$emit("tLCURLY","{".$freeze()):b.$emit_do(),i(b.$tok(),"{".$freeze())&&(b.paren_nest=l(b.paren_nest,1)),b.command_start=!0,b.cs=508,T=l(T,1),L=o;continue;case 105:T=a(b.te,1),b.$emit_table(M("KEYWORDS")),b.cs=134,T=l(T,1),L=o;continue;case 106:T=a(b.te,1),b.$emit_singleton_class(),b.cs=508,T=l(T,1),L=o;continue;case 107:T=a(b.te,1),b.$emit_table(M("KEYWORDS")),b.cs=345,T=l(T,1),L=o;continue;case 108:T=a(b.te,1),b.$emit_table(M("KEYWORDS")),b.command_start=!0,b.cs=508,T=l(T,1),L=o;continue;case 109:T=a(b.te,1),b.$emit_table(M("KEYWORDS")),b.cs=321,T=l(T,1),L=o;continue;case 110:if(T=a(b.te,1),b.$emit_table(M("KEYWORDS")),r(b["$version?"](18))&&i(b.$tok(),"not".$freeze())){b.cs=345,T=l(T,1),L=o;continue}b.cs=276,T=l(T,1),L=o;continue;case 111:T=a(b.te,1),r(b["$version?"](18))?(b.$emit("tIDENTIFIER"),f(b.static_env["$nil?"]())&&r(b.static_env["$declared?"](b.$tok()))||(b.cs=b.$arg_or_cmdarg(z))):b.$emit("k__ENCODING__","__ENCODING__".$freeze()),T=l(T,1),L=o;continue;case 112:T=a(b.te,1),b.$emit_table(M("KEYWORDS")),T=l(T,1),L=o;continue;case 113:T=a(b.te,1),re=b.$numeric_literal_int(),r(b["$version?"](18,19,20))?(b.$emit("tINTEGER",re.$to_i(b.num_base),b.ts,b.num_suffix_s),T=a(b.num_suffix_s,1)):T=b.num_xfrm.$call(re.$to_i(b.num_base),T),T=l(T,1),L=o;continue;case 115:if(T=a(b.te,1),!r(b["$version?"](18,19,20))){b.$emit("tINTEGER",b.$tok(b.ts,a(b.te,1)).$to_i(),b.ts,a(b.te,1)),T=a(T,1),T=l(T,1),L=o;continue}b.$diagnostic("error","trailing_in_number",new Map([["character",b.$tok(a(b.te,1),b.te)]]),b.$range(a(b.te,1),b.te));break;case 116:if(T=a(b.te,1),!r(b["$version?"](18,19,20))){b.$emit("tFLOAT",b.$tok(b.ts,a(b.te,1)).$to_f(),b.ts,a(b.te,1)),T=a(T,1),T=l(T,1),L=o;continue}b.$diagnostic("error","trailing_in_number",new Map([["character",b.$tok(a(b.te,1),b.te)]]),b.$range(a(b.te,1),b.te));break;case 117:T=a(b.te,1),re=b.$tok(b.ts,b.num_suffix_s),r(b["$version?"](18,19,20))?(b.$emit("tFLOAT",b.$Float(re),b.ts,b.num_suffix_s),T=a(b.num_suffix_s,1)):T=b.num_xfrm.$call(re,T),T=l(T,1),L=o;continue;case 119:T=a(b.te,1),b.$emit("tCONSTANT"),b.cs=b.$arg_or_cmdarg(z),T=l(T,1),L=o;continue;case 123:if(T=a(b.te,1),b.$emit("tIDENTIFIER"),f(b.static_env["$nil?"]())&&r(b.static_env["$declared?"](b.$tok()))){b.cs=247,T=l(T,1),L=o;continue}if(r(m(b.version,32))&&r(b.$tok()["$=~"](d(/^_[1-9]$/u,"\\A_[1-9]\\z","")))){b.cs=247,T=l(T,1),L=o;continue}b.cs=b.$arg_or_cmdarg(z),T=l(T,1),L=o;continue;case 124:T=a(b.te,1),i(j,b.te)?b.$emit("tFID"):(b.$emit("tIDENTIFIER",b.$tok(b.ts,j),b.ts,j),T=a(j,1)),b.cs=276,T=l(T,1),L=o;continue;case 126:T=a(b.te,1),b.$emit_table(M("PUNCTUATION")),b.cs=508,T=l(T,1),L=o;continue;case 127:T=a(b.te,1),b.$emit_table(M("PUNCTUATION")),b.cs=345,T=l(T,1),L=o;continue}break;case 123:j=a(T,2),b.te=T,T=a(T,1),b.$emit("tFID",b.$tok(b.ts,j),b.ts,j),b.cs=b.$arg_or_cmdarg(z),T=a(j,1),T=l(T,1),L=o;continue;case 219:case 221:case 225:case 224:case 223:j=a(T,2),b.te=T,T=a(T,1),b.$emit("tSYMBOL",b.$tok(l(b.ts,1),j),b.ts,j),T=a(j,1),b.cs=516,T=l(T,1),L=o;continue;case 191:case 193:case 196:j=a(T,2),b.te=T,T=a(T,1),T=a(b.ts,1),b.cs=516,L=s;continue;case 277:j=a(T,2),b.te=T,T=a(T,1),i(j,b.te)?b.$emit("tFID"):(b.$emit("tIDENTIFIER",b.$tok(b.ts,j),b.ts,j),T=a(j,1)),b.cs=276,T=l(T,1),L=o;continue;case 195:switch(j=a(T,2),b.act.valueOf()){case 60:T=a(b.te,1),b.$emit("tUNARY_NUM",b.$tok(b.ts,l(b.ts,1)),b.ts,l(b.ts,1)),T=a(T,1),b.cs=516,T=l(T,1),L=o;continue;case 67:T=a(b.te,1),b.$diagnostic("error","unterminated_heredoc_id",x,b.$range(b.ts,l(b.ts,1)));break;case 76:if(T=a(b.te,1),r(m(b.version,27))){b.$emit("tPIPE",b.$tok(b.ts,l(b.ts,1)),b.ts,l(b.ts,1)),T=a(T,1),b.cs=345,T=l(T,1),L=o;continue}T=a(T,2),b.cs=516,L=s;continue;case 80:T=a(b.te,1),b.$emit_table(M("PUNCTUATION_BEGIN")),T=l(T,1),L=o;continue;case 81:T=a(b.te,1),b.$emit("kRESCUE","rescue".$freeze(),b.ts,j),T=a(j,1),b.cs=321,T=l(T,1),L=o;continue;case 82:T=a(b.te,1),b.$emit_table(M("KEYWORDS_BEGIN")),b.command_start=!0,b.cs=508,T=l(T,1),L=o;continue;case 86:case 91:T=a(b.te,1),T=a(b.ts,1),b.cs=516,L=s;continue;case 87:if(T=a(b.te,1),b.$emit("tIDENTIFIER"),f(b.static_env["$nil?"]())&&r(b.static_env["$declared?"](b.$tok()))){b.cs=247,T=l(T,1),L=o;continue}if(r(m(b.version,32))&&r(b.$tok()["$=~"](d(/^_[1-9]$/u,"\\A_[1-9]\\z","")))){b.cs=247,T=l(T,1),L=o;continue}b.cs=b.$arg_or_cmdarg(z),T=l(T,1),L=o;continue}break;case 222:j=a(T,3),b.te=T,T=a(T,1),b.$emit("tSYMBOL",b.$tok(l(b.ts,1),j),b.ts,j),T=a(j,1),b.cs=516,T=l(T,1),L=o;continue;case 194:j=a(T,3),b.te=T,T=a(T,1),T=a(b.ts,1),b.cs=516,L=s;continue;case 342:j=a(T,2),b.te=T,T=a(T,1),b.$emit("tCONSTANT",b.$tok(b.ts,j),b.ts,j),T=a(j,1),T=l(T,1),L=o;continue;case 146:b.cond.$push(!1),b.cmdarg.$push(!1),b.paren_nest=l(b.paren_nest,1),b.te=T,T=a(T,1),b.$emit("tLBRACK","[".$freeze(),a(b.te,1),b.te),b.cs=345,T=l(T,1),L=o;continue;case 238:b.cond.$push(!1),b.cmdarg.$push(!1),b.paren_nest=l(b.paren_nest,1),b.te=T,T=a(T,1),b.$emit("tLBRACK","[".$freeze()),T=l(T,1),L=o;continue;case 345:b.cond.$push(!1),b.cmdarg.$push(!1),b.paren_nest=l(b.paren_nest,1),b.te=T,T=a(T,1),b.$emit("tLBRACK2","[".$freeze()),b.cs=345,T=l(T,1),L=o;continue;case 348:case 290:b.paren_nest=a(b.paren_nest,1),b.te=T,T=a(T,1),b.$emit_rbrace_rparen_rbrack(),(i(b.$tok(),"}".$freeze())||i(b.$tok(),"]".$freeze()))&&(r(m(b.version,25))?b.cs=516:b.cs=313),T=l(T,1),L=o;continue;case 138:if(b.cond.$push(!1),b.cmdarg.$push(!1),b.paren_nest=l(b.paren_nest,1),r(b["$version?"](18))&&(b.command_start=!0),b.te=T,T=a(T,1),r(b["$version?"](18))){b.$emit("tLPAREN2","(".$freeze(),a(b.te,1),b.te),b.cs=508,T=l(T,1),L=o;continue}b.$emit("tLPAREN_ARG","(".$freeze(),a(b.te,1),b.te),b.cs=345,T=l(T,1),L=o;continue;case 151:b.cond.$push(!1),b.cmdarg.$push(!1),b.paren_nest=l(b.paren_nest,1),r(b["$version?"](18))&&(b.command_start=!0),b.te=T,T=a(T,1),b.$emit("tLPAREN2","(".$freeze()),b.cs=345,T=l(T,1),L=o;continue;case 159:if(b.cond.$push(!1),b.cmdarg.$push(!1),b.paren_nest=l(b.paren_nest,1),r(b["$version?"](18))&&(b.command_start=!0),b.te=T,T=a(T,1),b.$emit("tLPAREN_ARG","(".$freeze(),a(b.te,1),b.te),r(b["$version?"](18))){b.cs=508,T=l(T,1),L=o;continue}b.cs=345,T=l(T,1),L=o;continue;case 208:b.cond.$push(!1),b.cmdarg.$push(!1),b.paren_nest=l(b.paren_nest,1),r(b["$version?"](18))&&(b.command_start=!0),b.te=T,T=a(T,1),b.$emit("tLPAREN","(".$freeze()),T=l(T,1),L=o;continue;case 289:b.cond.$push(!1),b.cmdarg.$push(!1),b.paren_nest=l(b.paren_nest,1),r(b["$version?"](18))&&(b.command_start=!0),b.te=T,T=a(T,1),b.$emit_table(M("PUNCTUATION")),b.cs=345,T=l(T,1),L=o;continue;case 57:B=T,b.newline_s=T;break;case 233:if(ne=T,b.te=T,T=a(T,1),b.$tok(b.ts,B)["$=~"](d(/^<<(-?)(~?)(["'`]?)([\s\S]*)\3$/mu,"^<<(-?)(~?)([\"'`]?)(.*)\\3$","m")),ae=r(se=((e=g["~"])===x?x:e["$[]"](1))["$empty?"]()["$!"]())?se:((e=g["~"])===x?x:e["$[]"](2))["$empty?"]()["$!"](),ie=((e=g["~"])===x?x:e["$[]"](2))["$empty?"]()["$!"](),X=r(((e=g["~"])===x?x:e["$[]"](3))["$empty?"]())?'<<"'.$freeze():l("<<".$freeze(),(e=g["~"])===x?x:e["$[]"](3)),K=(e=g["~"])===x?x:e["$[]"](4),r(m(b.version,27))?(r(c(K.$count("\n"),0))||r(c(K.$count("\r"),0)))&&b.$diagnostic("error","unterminated_heredoc_id",x,b.$range(b.ts,l(b.ts,1))):r(m(b.version,24))&&r(c(K.$count("\n"),0))&&(r(K["$end_with?"]("\n"))?(b.$diagnostic("warning","heredoc_id_ends_with_nl",x,b.$range(b.ts,l(b.ts,1))),K=K.$rstrip()):b.$diagnostic("fatal","heredoc_id_has_newline",x,b.$range(b.ts,l(b.ts,1)))),r(ie)&&r(b["$version?"](18,19,20,21,22))){b.$emit("tLSHFT","<<".$freeze(),b.ts,l(b.ts,2)),T=l(b.ts,1),b.cs=345,T=l(T,1),L=o;continue}b.strings.$push_literal(X,K,b.ts,B,ae,ie),r(se=b.strings.$herebody_s())||b.strings["$herebody_s="](ne),T=a(b.strings.$herebody_s(),1),b.cs=128;break;case 228:j=a(T,1),G="ivar_name",b.te=T,T=a(T,1),b.$emit_colon_with_digits(T,j,G),b.cs=516,T=l(T,1),L=o;continue;case 231:j=a(T,2),G="cvar_name",b.te=T,T=a(T,1),b.$emit_colon_with_digits(T,j,G),b.cs=516,T=l(T,1),L=o;continue;case 241:j=T,b.te=T,T=a(T,1),b.$emit("kRESCUE","rescue".$freeze(),b.ts,j),T=a(j,1),b.cs=321,T=l(T,1),L=o;continue;case 332:b.num_base=16,b.num_digits_s=T,b.num_suffix_s=T;break;case 326:b.num_base=10,b.num_digits_s=T,b.num_suffix_s=T;break;case 329:b.num_base=8,b.num_digits_s=T,b.num_suffix_s=T;break;case 323:b.num_base=2,b.num_digits_s=T,b.num_suffix_s=T;break;case 338:b.num_base=10,b.num_digits_s=b.ts,b.num_suffix_s=T;break;case 301:b.num_base=8,b.num_digits_s=b.ts,b.num_suffix_s=T;break;case 339:b.num_suffix_s=T,b.num_xfrm=b.emit_integer;break;case 184:b.te=l(T,1),b.newline_s=T;break;case 305:b.te=l(T,1),b.num_suffix_s=T;break;case 107:b.te=l(T,1),b.act=4;break;case 94:b.te=l(T,1),b.act=5;break;case 90:b.te=l(T,1),b.act=6;break;case 12:b.te=l(T,1),b.act=33;break;case 140:b.te=l(T,1),b.act=34;break;case 13:b.te=l(T,1),b.act=39;break;case 133:b.te=l(T,1),b.act=40;break;case 160:b.te=l(T,1),b.act=46;break;case 31:b.te=l(T,1),b.act=47;break;case 181:b.te=l(T,1),b.act=54;break;case 170:b.te=l(T,1),b.act=55;break;case 55:b.te=l(T,1),b.act=67;break;case 246:b.te=l(T,1),b.act=76;break;case 185:b.te=l(T,1),b.act=80;break;case 240:b.te=l(T,1),b.act=81;break;case 239:b.te=l(T,1),b.act=82;break;case 59:b.te=l(T,1),b.act=86;break;case 182:b.te=l(T,1),b.act=87;break;case 186:b.te=l(T,1),b.act=91;break;case 356:b.te=l(T,1),b.act=104;break;case 351:b.te=l(T,1),b.act=105;break;case 359:b.te=l(T,1),b.act=107;break;case 352:b.te=l(T,1),b.act=108;break;case 353:b.te=l(T,1),b.act=109;break;case 358:b.te=l(T,1),b.act=110;break;case 350:b.te=l(T,1),b.act=111;break;case 344:b.te=l(T,1),b.act=112;break;case 270:b.te=l(T,1),b.act=113;break;case 303:b.te=l(T,1),b.act=116;break;case 67:b.te=l(T,1),b.act=117;break;case 273:b.te=l(T,1),b.act=119;break;case 264:b.te=l(T,1),b.act=123;break;case 275:b.te=l(T,1),b.act=124;break;case 268:b.te=l(T,1),b.act=126;break;case 274:b.te=l(T,1),b.act=127;break;case 73:b.te=l(T,1),b.act=140;break;case 363:b.te=l(T,1),b.act=144;break;case 47:b.sharp_s=a(T,1),b.$emit_comment_from_range(T,n),b.newline_s=T;break;case 100:case 115:case 127:case 164:case 176:case 203:case 251:case 261:case 282:case 377:b.sharp_s=a(T,1),b.$emit_comment_from_range(T,n),b.te=T,T=a(T,1);break;case 149:b.sharp_s=a(T,1),b.$emit_comment_from_range(T,n),b.te=T,T=a(T,1),b.cs=516,L=s;continue;case 334:b.num_base=10,b.num_digits_s=b.ts,b.num_suffix_s=T,b.num_xfrm=b.emit_integer;break;case 298:b.num_base=8,b.num_digits_s=b.ts,b.num_suffix_s=T,b.num_xfrm=b.emit_integer;break;case 313:b.num_suffix_s=T,b.num_xfrm=b.emit_integer,b.te=T,T=a(T,1),re=b.$numeric_literal_int(),r(b["$version?"](18,19,20))?(b.$emit("tINTEGER",re.$to_i(b.num_base),b.ts,b.num_suffix_s),T=a(b.num_suffix_s,1)):T=b.num_xfrm.$call(re.$to_i(b.num_base),T),T=l(T,1),L=o;continue;case 306:case 302:b.num_suffix_s=T,b.num_xfrm=b.emit_float,b.te=T,T=a(T,1),re=b.$tok(b.ts,b.num_suffix_s),r(b["$version?"](18,19,20))?(b.$emit("tFLOAT",b.$Float(re),b.ts,b.num_suffix_s),T=a(b.num_suffix_s,1)):T=b.num_xfrm.$call(re,T),T=l(T,1),L=o;continue;case 155:b.te=l(T,1),b.newline_s=T,b.act=40;break;case 21:b.te=l(T,1),T=b.$on_newline(T),b.act=39;break;case 32:b.te=l(T,1),T=b.$on_newline(T),b.act=47;break;case 79:b.te=l(T,1),T=b.$on_newline(T),b.act=140;break;case 51:b.te=l(T,1),b.$emit_comment_from_range(T,n),b.act=60;break;case 70:b.te=l(T,1),b.$emit_comment_from_range(T,n),b.act=106;break;case 78:b.te=l(T,1),b.$emit_comment_from_range(T,n),b.act=140;break;case 23:b.te=l(T,1),j=T,b.act=34;break;case 243:b.te=l(T,1),j=T,b.act=86;break;case 242:b.te=l(T,1),j=T,b.act=87;break;case 335:b.te=l(T,1),b.num_base=10,b.num_digits_s=b.ts,b.act=113;break;case 330:b.num_base=16,b.num_digits_s=T,b.num_suffix_s=T,b.num_xfrm=b.emit_integer,b.te=T,T=a(T,1),re=b.$numeric_literal_int(),r(b["$version?"](18,19,20))?(b.$emit("tINTEGER",re.$to_i(b.num_base),b.ts,b.num_suffix_s),T=a(b.num_suffix_s,1)):T=b.num_xfrm.$call(re.$to_i(b.num_base),T),T=l(T,1),L=o;continue;case 324:b.num_base=10,b.num_digits_s=T,b.num_suffix_s=T,b.num_xfrm=b.emit_integer,b.te=T,T=a(T,1),re=b.$numeric_literal_int(),r(b["$version?"](18,19,20))?(b.$emit("tINTEGER",re.$to_i(b.num_base),b.ts,b.num_suffix_s),T=a(b.num_suffix_s,1)):T=b.num_xfrm.$call(re.$to_i(b.num_base),T),T=l(T,1),L=o;continue;case 327:b.num_base=8,b.num_digits_s=T,b.num_suffix_s=T,b.num_xfrm=b.emit_integer,b.te=T,T=a(T,1),re=b.$numeric_literal_int(),r(b["$version?"](18,19,20))?(b.$emit("tINTEGER",re.$to_i(b.num_base),b.ts,b.num_suffix_s),T=a(b.num_suffix_s,1)):T=b.num_xfrm.$call(re.$to_i(b.num_base),T),T=l(T,1),L=o;continue;case 321:b.num_base=2,b.num_digits_s=T,b.num_suffix_s=T,b.num_xfrm=b.emit_integer,b.te=T,T=a(T,1),re=b.$numeric_literal_int(),r(b["$version?"](18,19,20))?(b.$emit("tINTEGER",re.$to_i(b.num_base),b.ts,b.num_suffix_s),T=a(b.num_suffix_s,1)):T=b.num_xfrm.$call(re.$to_i(b.num_base),T),T=l(T,1),L=o;continue;case 333:b.num_base=10,b.num_digits_s=b.ts,b.num_suffix_s=T,b.num_xfrm=b.emit_integer,b.te=T,T=a(T,1),re=b.$numeric_literal_int(),r(b["$version?"](18,19,20))?(b.$emit("tINTEGER",re.$to_i(b.num_base),b.ts,b.num_suffix_s),T=a(b.num_suffix_s,1)):T=b.num_xfrm.$call(re.$to_i(b.num_base),T),T=l(T,1),L=o;continue;case 297:b.num_base=8,b.num_digits_s=b.ts,b.num_suffix_s=T,b.num_xfrm=b.emit_integer,b.te=T,T=a(T,1),re=b.$numeric_literal_int(),r(b["$version?"](18,19,20))?(b.$emit("tINTEGER",re.$to_i(b.num_base),b.ts,b.num_suffix_s),T=a(b.num_suffix_s,1)):T=b.num_xfrm.$call(re.$to_i(b.num_base),T),T=l(T,1),L=o;continue;case 17:b.te=l(T,1),j=T=b.$on_newline(T),b.act=34;break;case 48:b.te=l(T,1),b.sharp_s=a(T,1),b.$emit_comment_from_range(T,n),b.act=60;break;case 77:b.te=l(T,1),b.sharp_s=a(T,1),b.$emit_comment_from_range(T,n),b.act=140;break;case 340:b.te=l(T,1),b.num_suffix_s=T,b.num_xfrm=b.emit_integer,b.act=115;break;case 336:b.te=l(T,1),b.num_base=10,b.num_digits_s=b.ts,b.num_suffix_s=T,b.num_xfrm=b.emit_integer,b.act=115;break;case 300:b.te=l(T,1),b.num_base=8,b.num_digits_s=b.ts,b.num_suffix_s=T,b.num_xfrm=b.emit_integer,b.act=115}if(r(u(L,s))){if(84===S["$[]"](b.cs).valueOf())b.ts=x;if(i(b.cs,0)){L=o;continue}if(T=l(T,1),_(T,n)){L=10;continue}}if(r(u(L,30))&&i(T,N)&&r(c(A["$[]"](b.cs),0)))I=a(A["$[]"](b.cs),1),L=15;else if(r(u(L,o)))break}return r(!1),b.p=T,r(b.token_queue["$any?"]())?b.token_queue.$shift():i(b.cs,v.$lex_error())?[!1,["$error".$freeze(),b.$range(a(T,1),T)]]:(N=b.source_pts.$size(),[!1,["$eof".$freeze(),b.$range(N,N)]])})),U.$protected(),s(U,"$version?",(function(e){return b(arguments)["$include?"](this.version)}),-1),s(U,"$stack_pop",(function(){var e=this;return e.top=a(e.top,1),e.stack["$[]"](e.top)})),s(U,"$tok",(function(e,t){var r=this;return null==e&&(e=r.ts),null==t&&(t=r.te),r.source_buffer.$slice(e,a(t,e))}),-1),s(U,"$range",(function(e,t){var r=this;return null==e&&(e=r.ts),null==t&&(t=r.te),w(w(M("Parser"),"Source"),"Range").$new(r.source_buffer,e,t)}),-1),s(U,"$emit",(function(e,t,n,a){var s,i=this;return null==t&&(t=i.$tok()),null==n&&(n=i.ts),null==a&&(a=i.te),s=[e,[t,i.$range(n,a)]],i.token_queue.$push(s),r(i.tokens)&&i.tokens.$push(s),s}),-2),s(U,"$emit_table",(function(e,t,r){var n,a=this;return null==t&&(t=a.ts),null==r&&(r=a.te),n=a.$tok(t,r),a.$emit(e["$[]"](n),n,t,r)}),-2),s(U,"$emit_do",(function(e){var t=this;return null==e&&(e=!1),r(t.cond["$active?"]())?t.$emit("kDO_COND","do".$freeze()):r(t.cmdarg["$active?"]())||r(e)?t.$emit("kDO_BLOCK","do".$freeze()):t.$emit("kDO","do".$freeze())}),-1),s(U,"$arg_or_cmdarg",(function(e){return r(e)?this.$class().$lex_en_expr_cmdarg():this.$class().$lex_en_expr_arg()})),s(U,"$emit_comment",(function(e,t){var n=this;return null==e&&(e=n.ts),null==t&&(t=n.te),r(n.comments)&&n.comments.$push(w(w(M("Parser"),"Source"),"Comment").$new(n.$range(e,t))),r(n.tokens)&&n.tokens.$push(["tCOMMENT",[n.$tok(e,t),n.$range(e,t)]]),x}),-1),s(U,"$emit_comment_from_range",(function(e,t){return this.$emit_comment(this.sharp_s,i(e,t)?a(e,2):e)})),s(U,"$diagnostic",(function(e,t,r,n,a){return null==r&&(r=x),null==n&&(n=this.$range()),null==a&&(a=[]),this.diagnostics.$process(w(M("Parser"),"Diagnostic").$new(e,t,r,n,a))}),-3),s(U,"$e_lbrace",(function(){var e=this,t=x;return e.cond.$push(!1),e.cmdarg.$push(!1),t=e.strings.$literal(),r(t)?t.$start_interp_brace():x})),s(U,"$numeric_literal_int",(function(){var e=this,t=x,n=x,s=x;return t=e.$tok(e.num_digits_s,e.num_suffix_s),r(t["$end_with?"]("_".$freeze()))?e.$diagnostic("error","trailing_in_number",new Map([["character","_".$freeze()]]),e.$range(a(e.te,1),e.te)):r(t["$empty?"]())&&i(e.num_base,8)&&r(e["$version?"](18))?t="0".$freeze():r(t["$empty?"]())?e.$diagnostic("error","empty_numeric"):i(e.num_base,8)&&r(n=t.$index(d(/[89]/u,null,"")))&&(s=l(e.num_digits_s,n),e.$diagnostic("error","invalid_octal",x,e.$range(s,l(s,1)))),t})),s(U,"$on_newline",(function(e){return this.strings.$on_newline(e)})),s(U,"$check_ambiguous_slash",(function(e){var t=this;return i(t.$tok(e,l(e,1)),"/".$freeze())?r(h(t.version,30))?t.$diagnostic("warning","ambiguous_literal",x,t.$range(e,l(e,1))):t.$diagnostic("warning","ambiguous_regexp",x,t.$range(e,l(e,1))):x})),s(U,"$emit_global_var",(function(e,t){var n=this;return null==e&&(e=n.ts),null==t&&(t=n.te),r(n.$tok(e,t)["$=~"](d(/^\$([1-9][0-9]*)$/mu,null,"")))?n.$emit("tNTH_REF",n.$tok(l(e,1),t).$to_i(),e,t):r(n.$tok()["$=~"](d(/^\$([&`'+])$/mu,null,"")))?n.$emit("tBACK_REF",n.$tok(e,t),e,t):n.$emit("tGVAR",n.$tok(e,t),e,t)}),-1),s(U,"$emit_class_var",(function(e,t){var n=this;return null==e&&(e=n.ts),null==t&&(t=n.te),r(n.$tok(e,t)["$=~"](d(/^@@[0-9]/mu,null,"")))&&n.$diagnostic("error","cvar_name",new Map([["name",n.$tok(e,t)]])),n.$emit("tCVAR",n.$tok(e,t),e,t)}),-1),s(U,"$emit_instance_var",(function(e,t){var n=this;return null==e&&(e=n.ts),null==t&&(t=n.te),r(n.$tok(e,t)["$=~"](d(/^@[0-9]/mu,null,"")))&&n.$diagnostic("error","ivar_name",new Map([["name",n.$tok(e,t)]])),n.$emit("tIVAR",n.$tok(e,t),e,t)}),-1),s(U,"$emit_rbrace_rparen_rbrack",(function(){var e=this;return e.$emit_table(M("PUNCTUATION")),r(h(e.version,24))?(e.cond.$lexpop(),e.cmdarg.$lexpop()):(e.cond.$pop(),e.cmdarg.$pop())})),s(U,"$emit_colon_with_digits",(function(e,t,n){var a=this;return r(m(a.version,27))?a.$diagnostic("error",n,new Map([["name",a.$tok(t,a.te)]]),a.$range(t,a.te)):(a.$emit("tCOLON",a.$tok(a.ts,l(a.ts,1)),a.ts,l(a.ts,1)),e=a.ts),e})),s(U,"$emit_singleton_class",(function(){var e=this;return e.$emit("kCLASS","class".$freeze(),e.ts,l(e.ts,5)),e.$emit("tLSHFT","<<".$freeze(),a(e.te,2),e.te)})),o(E[0],"PUNCTUATION",new Map([["=","tEQL"],["&","tAMPER2"],["|","tPIPE"],["!","tBANG"],["^","tCARET"],["+","tPLUS"],["-","tMINUS"],["*","tSTAR2"],["/","tDIVIDE"],["%","tPERCENT"],["~","tTILDE"],[",","tCOMMA"],[";","tSEMI"],[".","tDOT"],["..","tDOT2"],["...","tDOT3"],["[","tLBRACK2"],["]","tRBRACK"],["(","tLPAREN2"],[")","tRPAREN"],["?","tEH"],[":","tCOLON"],["&&","tANDOP"],["||","tOROP"],["-@","tUMINUS"],["+@","tUPLUS"],["~@","tTILDE"],["**","tPOW"],["->","tLAMBDA"],["=~","tMATCH"],["!~","tNMATCH"],["==","tEQ"],["!=","tNEQ"],[">","tGT"],[">>","tRSHFT"],[">=","tGEQ"],["<","tLT"],["<<","tLSHFT"],["<=","tLEQ"],["=>","tASSOC"],["::","tCOLON2"],["===","tEQQ"],["<=>","tCMP"],["[]","tAREF"],["[]=","tASET"],["{","tLCURLY"],["}","tRCURLY"],["`","tBACK_REF2"],["!@","tBANG"],["&.","tANDDOT"]])),o(E[0],"PUNCTUATION_BEGIN",new Map([["&","tAMPER"],["*","tSTAR"],["**","tDSTAR"],["+","tUPLUS"],["-","tUMINUS"],["::","tCOLON3"],["(","tLPAREN"],["{","tLBRACE"],["[","tLBRACK"]])),o(E[0],"KEYWORDS",new Map([["if","kIF_MOD"],["unless","kUNLESS_MOD"],["while","kWHILE_MOD"],["until","kUNTIL_MOD"],["rescue","kRESCUE_MOD"],["defined?","kDEFINED"],["BEGIN","klBEGIN"],["END","klEND"]])),o(E[0],"KEYWORDS_BEGIN",new Map([["if","kIF"],["unless","kUNLESS"],["while","kWHILE"],["until","kUNTIL"],["rescue","kRESCUE"],["defined?","kDEFINED"],["BEGIN","klBEGIN"],["END","klEND"]])),o(E[0],"ESCAPE_WHITESPACE",new Map([[" ","\\s"],["\r","\\r"],["\n","\\n"],["\t","\\t"],["\v","\\v"],["\f","\\f"]])),n(e.large_array_unpack("class,module,def,undef,begin,end,then,elsif,else,ensure,case,when,for,break,next,redo,retry,in,do,return,yield,super,self,nil,true,false,and,or,not,alias,__FILE__,__LINE__,__ENCODING__"),"each",[],(function(e){var t,r;return null==e&&(e=x),t=[e,(r=[e,"k"+e.$upcase()],n(M("KEYWORDS"),"[]=",r),r[r.length-1])],n(M("KEYWORDS_BEGIN"),"[]=",t),t[t.length-1]}))}(y("Parser"),0,v)},Opal.modules["parser/lexer-strings"]=function(e){var t=e.klass,r=e.const_set,n=e.hash_rehash,a=e.send,s=e.to_a,i=e.truthy,o=e.def,l=e.rb_plus,$=e.to_ary,u=e.rb_le,c=e.eqeq,_=e.rb_gt,p=e.rb_minus,m=e.neqeq,d=e.eqeqeq,f=e.not,h=e.annotate_regexp,g=e.slice,b=e.rb_lt,v=e.rb_ge,y=e.thrower,x=e.range,w=[],k=e.$r(w),U=e.nil,E=e.$$$;return e.add_stubs("attr_accessor,private,_lex_actions=,_lex_trans_keys=,_lex_key_spans=,_lex_index_offsets=,_lex_indicies=,_lex_trans_targs=,_lex_trans_actions=,_lex_to_state_actions=,_lex_from_state_actions=,_lex_eof_trans=,lex_start=,lex_error=,lex_en_interp_words=,lex_en_interp_string=,lex_en_plain_words=,lex_en_plain_string=,lex_en_interp_backslash_delimited=,lex_en_plain_backslash_delimited=,lex_en_interp_backslash_delimited_words=,lex_en_plain_backslash_delimited_words=,lex_en_regexp_modifiers=,lex_en_character=,lex_en_unknown=,freeze,ord,union,chars,respond_to?,class,send,reset,lex_en_unknown,lex_en_interp_string,lex_en_interp_words,lex_en_plain_string,+,size,source_pts,<=,==,[],>,-,<<,!=,===,unicode_points,unescape_char,diagnostic,read_post_meta_or_ctrl_char,slash_c_char,slash_m_char,encode_escaped_char,encode_escape,%,to_i,tok,range,chr,check_invalid_escapes,literal,extend_interp_code,lex_en_expr_value,extend_string_eol_check_eof,heredoc?,extend_string_eol_heredoc_line,nest_and_try_closing,heredoc_e,pop_literal,infer_indent_level,extend_string_eol_heredoc_intertwined,extend_string_eol_words,extend_string_slice_end,!,lex_en_expr_labelarg,extend_string_for_token_range,extend_interp_digit_var,extend_interp_var,emit_interp_var,extend_string_escaped,extend_space,emit,lex_en_expr_end,scan,any?,join,slice,source_buffer,emit_character_constant,raise,lex_en_character,advance,new,push,next_state_for_literal,backslash_delimited?,words?,interpolate?,lex_en_interp_backslash_delimited_words,lex_en_plain_backslash_delimited_words,lex_en_plain_words,lex_en_interp_backslash_delimited,lex_en_plain_backslash_delimited,last,pop,dedent_level,type,lex_en_inside_string,lex_en_regexp_modifiers,end_interp_brace_and_try_closing,version?,lexpop,cond,cmdarg,saved_herebody_s,continue_lexing,protected,include?,<,nil?,regexp?,munge_escape?,match,extend_string,squiggly_heredoc?,supports_line_continuation_via_slash?,gsub,>=,flush_string,extend_content,saved_herebody_s=,start_interp_brace,command_start=,start_with?,str_s,eof_codepoint?,active?,force_encoding,encoding,source,index,end_with?,each,length,&,|,getbyte,emit_invalid_escapes?"),function(w,k,M){var q=t(w,null,"LexerStrings"),S=[q].concat(M),O=e.$r(S),A=q.$$prototype;return A._lex_actions=A.cs=A.escape_s=A.lexer=A.herebody_s=A.ts=A.te=A.root_lexer_state=A.literal_stack=A.dedent_level=A.version=A.source_buffer=A.escape=U,function(e,t){e.$attr_accessor("_lex_actions"),e.$private("_lex_actions","_lex_actions=")}(e.get_singleton_class(q)),q["$_lex_actions="](e.large_array_unpack("0,1,0,1,18,1,22,1,23,1,24,1,25,1,26,1,27,1,28,1,32,1,33,1,34,1,35,1,36,1,37,1,38,1,42,1,43,1,44,1,46,1,47,1,48,1,49,1,52,1,53,1,54,1,55,1,56,1,57,1,60,1,61,1,62,1,63,1,64,1,65,1,66,1,69,1,70,1,71,1,72,1,73,1,74,1,75,1,76,1,77,1,79,1,80,1,81,2,0,27,2,0,37,2,0,46,2,0,52,2,0,56,2,0,62,2,0,65,2,0,72,2,0,77,2,1,31,2,1,41,2,1,78,2,2,31,2,2,41,2,2,78,2,3,31,2,3,41,2,3,78,2,8,31,2,8,41,2,8,78,2,10,31,2,10,41,2,10,78,2,11,31,2,11,41,2,11,78,2,12,31,2,12,41,2,12,78,2,13,31,2,13,41,2,13,78,2,14,31,2,14,41,2,14,78,2,15,31,2,15,41,2,15,78,2,16,31,2,16,41,2,16,78,2,17,31,2,17,41,2,17,78,2,18,45,2,18,51,2,19,30,2,19,40,2,19,59,2,19,68,2,20,29,2,20,30,2,20,39,2,20,40,2,20,58,2,20,59,2,20,67,2,20,68,2,21,29,2,21,30,2,21,39,2,21,40,2,21,58,2,21,59,2,21,67,2,21,68,2,22,78,2,25,0,3,0,50,18,3,2,5,31,3,2,5,41,3,2,5,78,3,2,6,31,3,2,6,41,3,2,6,78,3,4,5,31,3,4,5,41,3,4,5,78,3,4,6,31,3,4,6,41,3,4,6,78,3,8,6,31,3,8,6,41,3,8,6,78,3,9,5,31,3,9,5,41,3,9,5,78,3,15,16,31,3,15,16,41,3,15,16,78,3,18,17,31,3,18,17,41,3,18,17,78,4,2,5,6,31,4,2,5,6,41,4,2,5,6,78,4,4,5,6,31,4,4,5,6,41,4,4,5,6,78,4,7,5,6,31,4,7,5,6,41,4,7,5,6,78,4,9,5,6,31,4,9,5,6,41,4,9,5,6,78")),function(e,t){e.$attr_accessor("_lex_trans_keys"),e.$private("_lex_trans_keys","_lex_trans_keys=")}(e.get_singleton_class(q)),q["$_lex_trans_keys="](e.large_array_unpack("0,0,0,127,0,127,0,127,0,127,0,45,0,120,0,120,0,92,0,120,0,120,0,45,0,120,0,120,67,99,45,45,0,92,0,120,0,102,0,127,0,127,0,127,0,127,0,45,0,120,0,120,0,92,0,120,0,120,0,45,0,120,0,120,67,99,45,45,0,92,0,120,0,102,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,122,0,45,0,120,0,120,0,92,0,120,0,120,0,45,0,120,0,120,67,99,45,45,0,92,0,120,0,102,0,26,0,92,9,32,36,123,0,127,0,0,48,57,0,127,0,127,0,127,0,127,0,120,0,0,0,0,48,55,48,55,0,0,0,0,0,92,0,0,0,0,0,0,0,92,45,45,0,0,0,0,0,0,0,92,48,102,48,102,0,0,48,102,48,102,0,0,0,45,0,92,0,92,0,0,0,0,0,92,48,102,48,102,0,0,0,45,10,10,0,92,48,123,48,102,48,102,48,102,0,0,0,125,0,125,0,0,0,125,0,0,0,125,0,125,0,125,0,125,0,0,0,125,0,125,0,125,0,125,0,125,0,125,0,0,0,0,48,102,0,0,0,92,36,123,0,127,0,0,48,57,0,127,0,127,0,127,0,127,0,120,0,0,0,0,48,55,48,55,0,0,0,0,0,92,0,0,0,0,0,0,0,92,45,45,0,0,0,0,0,0,0,92,48,102,48,102,0,0,48,102,48,102,0,0,0,45,0,92,0,92,0,0,0,0,0,92,48,102,48,102,0,0,0,45,10,10,0,92,48,123,48,102,48,102,48,102,0,0,0,125,0,125,0,0,0,125,0,0,0,125,0,125,0,125,0,125,0,0,0,125,0,125,0,125,0,125,0,125,0,125,0,0,0,0,48,102,0,0,0,92,9,32,0,26,0,92,0,26,0,35,36,123,0,127,0,0,48,57,0,127,0,127,0,127,0,127,0,26,0,35,9,32,36,123,0,127,0,0,48,57,0,127,0,127,0,127,0,127,0,32,9,32,65,122,65,122,63,63,0,0,0,127,0,127,0,120,0,0,0,0,48,55,48,55,0,0,0,0,0,92,0,0,0,0,0,0,0,92,45,45,0,0,0,0,0,0,0,92,48,102,48,102,0,0,48,102,48,102,0,0,0,45,0,92,0,92,0,0,0,0,0,92,48,102,48,102,0,0,0,45,10,10,0,92,48,123,48,102,48,102,48,102,0,0,0,125,0,125,0,0,0,125,0,0,0,125,0,125,0,125,0,125,0,0,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,0,0,0,48,102,0,0,0")),function(e,t){e.$attr_accessor("_lex_key_spans"),e.$private("_lex_key_spans","_lex_key_spans=")}(e.get_singleton_class(q)),q["$_lex_key_spans="](e.large_array_unpack("0,128,128,128,128,46,121,121,93,121,121,46,121,121,33,1,93,121,103,128,128,128,128,46,121,121,93,121,121,46,121,121,33,1,93,121,103,128,128,128,128,128,128,128,128,123,46,121,121,93,121,121,46,121,121,33,1,93,121,103,27,93,24,88,128,0,10,128,128,128,128,121,0,0,8,8,0,0,93,0,0,0,93,1,0,0,0,93,55,55,0,55,55,0,46,93,93,0,0,93,55,55,0,46,1,93,76,55,55,55,0,126,126,0,126,0,126,126,126,126,0,126,126,126,126,126,126,0,0,55,0,93,88,128,0,10,128,128,128,128,121,0,0,8,8,0,0,93,0,0,0,93,1,0,0,0,93,55,55,0,55,55,0,46,93,93,0,0,93,55,55,0,46,1,93,76,55,55,55,0,126,126,0,126,0,126,126,126,126,0,126,126,126,126,126,126,0,0,55,0,93,24,27,93,27,36,88,128,0,10,128,128,128,128,27,36,24,88,128,0,10,128,128,128,128,33,24,58,58,1,0,128,128,121,0,0,8,8,0,0,93,0,0,0,93,1,0,0,0,93,55,55,0,55,55,0,46,93,93,0,0,93,55,55,0,46,1,93,76,55,55,55,0,126,126,0,126,0,126,126,126,126,0,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,0,0,55,0")),function(e,t){e.$attr_accessor("_lex_index_offsets"),e.$private("_lex_index_offsets","_lex_index_offsets=")}(e.get_singleton_class(q)),q["$_lex_index_offsets="](e.large_array_unpack("0,0,129,258,387,516,563,685,807,901,1023,1145,1192,1314,1436,1470,1472,1566,1688,1792,1921,2050,2179,2308,2355,2477,2599,2693,2815,2937,2984,3106,3228,3262,3264,3358,3480,3584,3713,3842,3971,4100,4229,4358,4487,4616,4740,4787,4909,5031,5125,5247,5369,5416,5538,5660,5694,5696,5790,5912,6016,6044,6138,6163,6252,6381,6382,6393,6522,6651,6780,6909,7031,7032,7033,7042,7051,7052,7053,7147,7148,7149,7150,7244,7246,7247,7248,7249,7343,7399,7455,7456,7512,7568,7569,7616,7710,7804,7805,7806,7900,7956,8012,8013,8060,8062,8156,8233,8289,8345,8401,8402,8529,8656,8657,8784,8785,8912,9039,9166,9293,9294,9421,9548,9675,9802,9929,10056,10057,10058,10114,10115,10209,10298,10427,10428,10439,10568,10697,10826,10955,11077,11078,11079,11088,11097,11098,11099,11193,11194,11195,11196,11290,11292,11293,11294,11295,11389,11445,11501,11502,11558,11614,11615,11662,11756,11850,11851,11852,11946,12002,12058,12059,12106,12108,12202,12279,12335,12391,12447,12448,12575,12702,12703,12830,12831,12958,13085,13212,13339,13340,13467,13594,13721,13848,13975,14102,14103,14104,14160,14161,14255,14280,14308,14402,14430,14467,14556,14685,14686,14697,14826,14955,15084,15213,15241,15278,15303,15392,15521,15522,15533,15662,15791,15920,16049,16083,16108,16167,16226,16228,16229,16358,16487,16609,16610,16611,16620,16629,16630,16631,16725,16726,16727,16728,16822,16824,16825,16826,16827,16921,16977,17033,17034,17090,17146,17147,17194,17288,17382,17383,17384,17478,17534,17590,17591,17638,17640,17734,17811,17867,17923,17979,17980,18107,18234,18235,18362,18363,18490,18617,18744,18871,18872,18999,19126,19253,19380,19507,19634,19761,19888,20015,20142,20269,20396,20523,20650,20777,20904,21031,21158,21285,21286,21287,21343")),function(e,t){e.$attr_accessor("_lex_indicies"),e.$private("_lex_indicies","_lex_indicies=")}(e.get_singleton_class(q)),q["$_lex_indicies="](e.large_array_unpack("0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,0,2,0,2,2,0,0,2,2,2,3,2,2,4,4,4,4,4,4,4,4,4,4,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,2,0,0,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,2,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,2,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,6,6,6,6,6,6,6,6,6,0,0,0,0,0,0,7,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,5,0,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,9,9,9,9,9,9,9,9,9,0,0,0,0,0,0,0,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,0,0,0,0,8,0,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,0,0,0,0,0,8,10,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,10,13,13,13,10,13,13,13,13,13,14,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,10,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,15,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,16,13,10,13,13,13,10,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,10,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,17,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,16,13,10,18,18,18,10,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,10,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,19,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,20,18,10,21,21,21,10,21,21,21,21,21,22,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,10,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,23,21,10,21,21,21,10,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,10,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,23,21,10,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,24,11,10,25,25,25,10,25,25,25,25,25,26,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,10,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,27,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,28,25,25,25,25,25,25,29,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,30,25,10,25,25,25,10,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,10,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,30,25,31,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,32,10,32,10,10,33,33,33,10,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,10,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,34,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,35,33,10,13,13,13,10,13,13,13,13,13,14,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,10,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,17,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,16,13,10,36,36,36,10,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,10,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,37,37,37,37,37,37,37,37,37,37,36,36,36,36,36,36,36,37,37,37,37,37,37,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,37,37,37,37,37,37,36,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,40,40,38,40,38,40,40,38,38,40,40,40,41,40,40,42,42,42,42,42,42,42,42,42,42,40,40,40,40,40,40,40,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,38,40,38,38,39,40,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,38,38,38,40,38,39,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,40,40,40,40,40,40,40,40,40,40,38,38,38,38,38,38,38,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,38,38,38,38,40,38,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,38,38,38,38,38,40,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,44,44,44,44,44,44,44,44,44,44,38,38,38,38,38,38,45,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,38,38,38,38,43,38,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,38,38,38,38,38,43,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,47,47,47,47,47,47,47,47,47,47,38,38,38,38,38,38,38,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,38,38,38,38,46,38,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,38,38,38,38,38,46,48,49,49,49,48,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,48,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,50,49,48,51,51,51,48,51,51,51,51,51,52,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,48,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,53,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,54,51,48,51,51,51,48,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,48,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,55,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,54,51,48,56,56,56,48,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,48,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,57,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,58,56,48,59,59,59,48,59,59,59,59,59,60,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,48,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,61,59,48,59,59,59,48,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,48,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,61,59,48,49,49,49,48,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,48,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,62,49,48,63,63,63,48,63,63,63,63,63,64,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,48,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,65,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,66,63,63,63,63,63,63,67,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,68,63,48,63,63,63,48,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,48,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,68,63,69,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,70,48,70,48,48,71,71,71,48,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,48,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,72,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,73,71,48,51,51,51,48,51,51,51,51,51,52,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,48,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,55,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,54,51,48,74,74,74,48,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,48,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,75,75,75,75,75,75,75,75,75,75,74,74,74,74,74,74,74,75,75,75,75,75,75,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,75,75,75,75,75,75,74,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,78,78,76,78,76,78,78,76,76,78,78,78,79,78,78,80,80,80,80,80,80,80,80,80,80,78,78,78,78,78,78,78,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,76,78,76,76,77,78,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,76,76,76,78,76,77,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,78,78,78,78,78,78,78,78,78,78,76,76,76,76,76,76,76,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,76,76,76,76,78,76,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,76,76,76,76,76,78,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,82,82,82,82,82,82,82,82,82,82,76,76,76,76,76,76,83,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,76,76,76,76,81,76,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,76,76,76,76,76,81,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,85,85,85,85,85,85,85,85,85,85,76,76,76,76,76,76,76,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,76,76,76,76,84,76,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,76,76,76,76,76,84,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,88,88,86,88,86,88,88,86,86,88,88,88,89,88,88,90,90,90,90,90,90,90,90,90,90,88,88,88,88,88,88,88,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,86,88,86,86,87,88,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,86,86,86,88,86,87,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,88,88,88,88,88,88,88,88,88,88,86,86,86,86,86,86,86,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,86,86,86,86,88,86,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,86,86,86,86,86,88,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,92,92,92,92,92,92,92,92,92,92,86,86,86,86,86,86,93,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,86,86,86,86,91,86,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,86,86,86,86,86,91,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,95,95,95,95,95,95,95,95,95,95,86,86,86,86,86,86,86,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,86,86,86,86,94,86,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,86,86,86,86,86,94,97,96,96,96,97,96,96,96,96,98,99,98,98,98,96,96,96,96,96,96,96,96,96,96,96,96,97,96,96,96,96,96,98,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,96,101,96,96,100,96,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,96,102,103,103,103,102,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,102,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,104,103,102,105,105,105,102,105,105,105,105,105,106,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,102,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,107,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,108,105,102,105,105,105,102,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,102,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,109,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,108,105,102,110,110,110,102,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,102,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,111,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,112,110,102,113,113,113,102,113,113,113,113,113,114,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,102,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,115,113,102,113,113,113,102,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,102,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,115,113,102,103,103,103,102,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,102,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,116,103,102,117,117,117,102,117,117,117,117,117,118,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,102,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,119,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,120,117,117,117,117,117,117,121,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,122,117,102,117,117,117,102,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,102,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,122,117,123,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,124,102,124,102,102,125,125,125,102,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,102,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,126,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,127,125,102,105,105,105,102,105,105,105,105,105,106,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,102,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,109,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,108,105,102,128,128,128,102,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,102,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,129,129,129,129,129,129,129,129,129,129,128,128,128,128,128,128,128,129,129,129,129,129,129,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,129,129,129,129,129,129,128,97,130,130,130,97,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,97,130,132,131,131,131,132,131,131,131,131,133,134,133,133,133,131,131,131,131,131,131,131,131,131,131,131,131,132,131,131,131,131,131,133,131,131,135,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,136,131,133,137,133,133,133,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,133,137,139,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,140,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,141,138,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,1,1,1,1,1,1,1,1,1,1,142,142,142,142,142,142,142,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,142,142,142,142,1,142,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,142,142,142,142,142,1,142,4,4,4,4,4,4,4,4,4,4,142,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,5,5,5,5,5,5,5,5,5,5,143,143,143,143,143,143,143,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,143,143,143,143,5,143,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,143,143,143,143,143,5,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,5,5,5,5,5,5,5,5,5,5,144,144,144,144,144,144,144,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,144,144,144,144,6,144,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,144,144,144,144,144,6,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,8,8,8,8,8,8,8,8,8,8,145,145,145,145,145,145,145,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,145,145,145,145,8,145,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,145,145,145,145,145,8,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,8,8,8,8,8,8,8,8,8,8,146,146,146,146,146,146,146,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,146,146,146,146,9,146,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,146,146,146,146,146,9,149,148,148,148,149,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,149,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,150,150,150,150,150,150,150,150,148,148,148,148,148,148,148,148,148,148,148,151,148,148,148,148,148,148,148,148,148,152,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,153,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,154,148,148,155,148,156,157,159,159,159,159,159,159,159,159,158,160,160,160,160,160,160,160,160,158,158,161,161,33,33,33,161,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,161,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,34,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,162,33,163,164,165,165,33,33,33,165,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,165,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,34,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,166,33,32,165,167,168,169,169,18,18,18,169,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,169,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,19,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,170,18,171,171,171,171,171,171,171,171,171,171,169,169,169,169,169,169,169,171,171,171,171,171,171,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,171,171,171,171,171,171,169,173,173,173,173,173,173,173,173,173,173,172,172,172,172,172,172,172,173,173,173,173,173,173,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,173,173,173,173,173,173,172,172,174,174,174,174,174,174,174,174,174,174,165,165,165,165,165,165,165,174,174,174,174,174,174,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,174,174,174,174,174,174,165,176,176,176,176,176,176,176,176,176,176,175,175,175,175,175,175,175,176,176,176,176,176,176,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,176,176,176,176,176,176,175,175,165,11,11,11,165,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,165,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,177,11,161,18,18,18,161,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,161,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,19,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,20,18,161,178,178,178,161,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,161,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,179,178,180,181,181,178,178,178,181,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,181,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,182,178,183,183,183,183,183,183,183,183,183,183,181,181,181,181,181,181,181,183,183,183,183,183,183,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,183,183,183,183,183,183,181,185,185,185,185,185,185,185,185,185,185,184,184,184,184,184,184,184,185,185,185,185,185,185,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,185,185,185,185,185,185,184,184,181,11,11,11,181,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,181,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,177,11,186,181,181,18,18,18,181,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,181,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,19,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,20,18,188,188,188,188,188,188,188,188,188,188,187,187,187,187,187,187,187,188,188,188,188,188,188,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,188,188,188,188,188,188,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,189,187,190,190,190,190,190,190,190,190,190,190,187,187,187,187,187,187,187,190,190,190,190,190,190,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,190,190,190,190,190,190,187,191,191,191,191,191,191,191,191,191,191,187,187,187,187,187,187,187,191,191,191,191,191,191,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,191,191,191,191,191,191,187,192,192,192,192,192,192,192,192,192,192,187,187,187,187,187,187,187,192,192,192,192,192,192,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,192,192,192,192,192,192,187,193,196,195,195,195,196,195,195,195,195,197,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,196,195,195,195,195,195,197,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,198,198,198,198,198,198,198,198,198,198,195,195,195,195,195,195,195,198,198,198,198,198,198,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,198,198,198,198,198,198,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,199,195,196,195,195,195,196,195,195,195,195,194,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,196,195,195,195,195,195,194,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,200,200,200,200,200,200,200,200,200,200,195,195,195,195,195,195,195,200,200,200,200,200,200,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,200,200,200,200,200,200,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,201,195,194,196,200,200,200,196,200,200,200,200,194,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,196,200,200,200,200,200,194,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,194,200,202,196,203,203,203,196,203,203,203,203,197,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,196,203,203,203,203,203,197,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,198,198,198,198,198,198,198,198,198,198,203,203,203,203,203,203,203,198,198,198,198,198,198,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,198,198,198,198,198,198,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,194,203,196,203,203,203,196,203,203,203,203,194,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,196,203,203,203,203,203,194,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,200,200,200,200,200,200,200,200,200,200,203,203,203,203,203,203,203,200,200,200,200,200,200,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,200,200,200,200,200,200,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,196,203,196,203,203,203,196,203,203,203,203,204,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,196,203,203,203,203,203,204,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,205,205,205,205,205,205,205,205,205,205,203,203,203,203,203,203,203,205,205,205,205,205,205,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,205,205,205,205,205,205,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,206,203,196,203,203,203,196,203,203,203,203,204,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,196,203,203,203,203,203,204,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,198,198,198,198,198,198,198,198,198,198,203,203,203,203,203,203,203,198,198,198,198,198,198,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,198,198,198,198,198,198,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,206,203,207,196,203,203,203,196,203,203,203,203,204,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,196,203,203,203,203,203,204,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,208,208,208,208,208,208,208,208,208,208,203,203,203,203,203,203,203,208,208,208,208,208,208,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,208,208,208,208,208,208,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,206,203,196,203,203,203,196,203,203,203,203,204,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,196,203,203,203,203,203,204,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,209,209,209,209,209,209,209,209,209,209,203,203,203,203,203,203,203,209,209,209,209,209,209,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,209,209,209,209,209,209,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,206,203,196,203,203,203,196,203,203,203,203,204,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,196,203,203,203,203,203,204,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,210,210,210,210,210,210,210,210,210,210,203,203,203,203,203,203,203,210,210,210,210,210,210,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,210,210,210,210,210,210,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,206,203,196,203,203,203,196,203,203,203,203,204,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,196,203,203,203,203,203,204,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,211,211,211,211,211,211,211,211,211,211,203,203,203,203,203,203,203,211,211,211,211,211,211,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,211,211,211,211,211,211,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,206,203,196,203,203,203,196,203,203,203,203,204,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,196,203,203,203,203,203,204,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,212,212,212,212,212,212,212,212,212,212,203,203,203,203,203,203,203,212,212,212,212,212,212,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,212,212,212,212,212,212,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,206,203,196,203,203,203,196,203,203,203,203,194,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,196,203,203,203,203,203,194,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,212,212,212,212,212,212,212,212,212,212,203,203,203,203,203,203,203,212,212,212,212,212,212,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,212,212,212,212,212,212,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,203,194,203,213,214,216,216,216,216,216,216,216,216,216,216,215,215,215,215,215,215,215,216,216,216,216,216,216,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,216,216,216,216,216,216,215,215,218,217,217,217,218,217,217,217,217,217,219,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,218,217,217,217,217,217,217,217,217,220,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,221,217,223,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,224,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,225,222,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,39,39,39,39,39,39,39,39,39,39,226,226,226,226,226,226,226,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,226,226,226,226,39,226,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,226,226,226,226,226,39,226,42,42,42,42,42,42,42,42,42,42,226,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,43,43,43,43,43,43,43,43,43,43,227,227,227,227,227,227,227,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,227,227,227,227,43,227,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,227,227,227,227,227,43,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,43,43,43,43,43,43,43,43,43,43,228,228,228,228,228,228,228,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,228,228,228,228,44,228,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,228,228,228,228,228,44,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,46,46,46,46,46,46,46,46,46,46,229,229,229,229,229,229,229,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,229,229,229,229,46,229,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,229,229,229,229,229,46,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,46,46,46,46,46,46,46,46,46,46,230,230,230,230,230,230,230,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,230,230,230,230,47,230,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,230,230,230,230,230,47,233,232,232,232,233,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,233,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,234,234,234,234,234,234,234,234,232,232,232,232,232,232,232,232,232,232,232,235,232,232,232,232,232,232,232,232,232,236,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,237,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,238,232,232,239,232,240,241,243,243,243,243,243,243,243,243,242,244,244,244,244,244,244,244,244,242,242,245,245,71,71,71,245,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,245,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,72,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,246,71,247,248,249,249,71,71,71,249,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,249,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,72,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,250,71,70,249,251,252,253,253,56,56,56,253,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,253,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,57,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,254,56,255,255,255,255,255,255,255,255,255,255,253,253,253,253,253,253,253,255,255,255,255,255,255,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,255,255,255,255,255,255,253,257,257,257,257,257,257,257,257,257,257,256,256,256,256,256,256,256,257,257,257,257,257,257,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,257,257,257,257,257,257,256,256,258,258,258,258,258,258,258,258,258,258,249,249,249,249,249,249,249,258,258,258,258,258,258,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,258,258,258,258,258,258,249,260,260,260,260,260,260,260,260,260,260,259,259,259,259,259,259,259,260,260,260,260,260,260,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,260,260,260,260,260,260,259,259,249,49,49,49,249,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,249,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,261,49,245,56,56,56,245,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,245,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,57,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,58,56,245,262,262,262,245,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,245,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,263,262,264,265,265,262,262,262,265,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,265,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,266,262,267,267,267,267,267,267,267,267,267,267,265,265,265,265,265,265,265,267,267,267,267,267,267,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,267,267,267,267,267,267,265,269,269,269,269,269,269,269,269,269,269,268,268,268,268,268,268,268,269,269,269,269,269,269,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,269,269,269,269,269,269,268,268,265,49,49,49,265,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,265,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,261,49,270,265,265,56,56,56,265,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,265,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,57,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,58,56,272,272,272,272,272,272,272,272,272,272,271,271,271,271,271,271,271,272,272,272,272,272,272,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,272,272,272,272,272,272,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,273,271,274,274,274,274,274,274,274,274,274,274,271,271,271,271,271,271,271,274,274,274,274,274,274,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,274,274,274,274,274,274,271,275,275,275,275,275,275,275,275,275,275,271,271,271,271,271,271,271,275,275,275,275,275,275,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,275,275,275,275,275,275,271,276,276,276,276,276,276,276,276,276,276,271,271,271,271,271,271,271,276,276,276,276,276,276,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,276,276,276,276,276,276,271,277,280,279,279,279,280,279,279,279,279,281,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,280,279,279,279,279,279,281,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,282,282,282,282,282,282,282,282,282,282,279,279,279,279,279,279,279,282,282,282,282,282,282,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,282,282,282,282,282,282,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,283,279,280,279,279,279,280,279,279,279,279,278,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,280,279,279,279,279,279,278,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,284,284,284,284,284,284,284,284,284,284,279,279,279,279,279,279,279,284,284,284,284,284,284,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,284,284,284,284,284,284,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,285,279,278,280,284,284,284,280,284,284,284,284,278,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,280,284,284,284,284,284,278,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,278,284,286,280,287,287,287,280,287,287,287,287,281,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,280,287,287,287,287,287,281,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,282,282,282,282,282,282,282,282,282,282,287,287,287,287,287,287,287,282,282,282,282,282,282,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,282,282,282,282,282,282,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,278,287,280,287,287,287,280,287,287,287,287,278,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,280,287,287,287,287,287,278,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,284,284,284,284,284,284,284,284,284,284,287,287,287,287,287,287,287,284,284,284,284,284,284,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,284,284,284,284,284,284,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,280,287,280,287,287,287,280,287,287,287,287,288,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,280,287,287,287,287,287,288,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,289,289,289,289,289,289,289,289,289,289,287,287,287,287,287,287,287,289,289,289,289,289,289,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,289,289,289,289,289,289,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,290,287,280,287,287,287,280,287,287,287,287,288,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,280,287,287,287,287,287,288,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,282,282,282,282,282,282,282,282,282,282,287,287,287,287,287,287,287,282,282,282,282,282,282,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,282,282,282,282,282,282,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,290,287,291,280,287,287,287,280,287,287,287,287,288,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,280,287,287,287,287,287,288,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,292,292,292,292,292,292,292,292,292,292,287,287,287,287,287,287,287,292,292,292,292,292,292,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,292,292,292,292,292,292,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,290,287,280,287,287,287,280,287,287,287,287,288,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,280,287,287,287,287,287,288,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,293,293,293,293,293,293,293,293,293,293,287,287,287,287,287,287,287,293,293,293,293,293,293,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,293,293,293,293,293,293,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,290,287,280,287,287,287,280,287,287,287,287,288,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,280,287,287,287,287,287,288,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,294,294,294,294,294,294,294,294,294,294,287,287,287,287,287,287,287,294,294,294,294,294,294,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,294,294,294,294,294,294,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,290,287,280,287,287,287,280,287,287,287,287,288,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,280,287,287,287,287,287,288,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,295,295,295,295,295,295,295,295,295,295,287,287,287,287,287,287,287,295,295,295,295,295,295,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,295,295,295,295,295,295,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,290,287,280,287,287,287,280,287,287,287,287,288,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,280,287,287,287,287,287,288,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,296,296,296,296,296,296,296,296,296,296,287,287,287,287,287,287,287,296,296,296,296,296,296,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,296,296,296,296,296,296,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,290,287,280,287,287,287,280,287,287,287,287,278,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,280,287,287,287,287,287,278,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,296,296,296,296,296,296,296,296,296,296,287,287,287,287,287,287,287,296,296,296,296,296,296,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,296,296,296,296,296,296,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,287,278,287,297,298,300,300,300,300,300,300,300,300,300,300,299,299,299,299,299,299,299,300,300,300,300,300,300,299,299,299,299,299,299,299,299,299,299,299,299,299,299,299,299,299,299,299,299,299,299,299,299,299,299,300,300,300,300,300,300,299,299,302,301,301,301,302,301,301,301,301,303,304,303,303,303,301,301,301,301,301,301,301,301,301,301,301,301,302,301,301,301,301,301,303,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,305,301,303,306,303,303,303,306,306,306,306,306,306,306,306,306,306,306,306,306,306,306,306,306,306,303,306,307,308,308,308,307,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,307,308,310,309,309,309,310,309,309,309,309,309,311,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,310,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,309,312,309,313,314,314,314,313,314,314,314,314,314,315,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,313,314,317,316,316,316,317,316,316,316,316,316,318,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,317,316,316,316,316,316,316,316,316,319,316,321,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,322,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,323,320,324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,77,77,77,77,77,77,77,77,77,77,324,324,324,324,324,324,324,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,324,324,324,324,77,324,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,324,324,324,324,324,77,324,80,80,80,80,80,80,80,80,80,80,324,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,81,81,81,81,81,81,81,81,81,81,325,325,325,325,325,325,325,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,325,325,325,325,81,325,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,325,325,325,325,325,81,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,81,81,81,81,81,81,81,81,81,81,326,326,326,326,326,326,326,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,326,326,326,326,82,326,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,326,326,326,326,326,82,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,84,84,84,84,84,84,84,84,84,84,327,327,327,327,327,327,327,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,327,327,327,327,84,327,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,327,327,327,327,327,84,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,84,84,84,84,84,84,84,84,84,84,328,328,328,328,328,328,328,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,328,328,328,328,85,328,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,328,328,328,328,328,85,330,329,329,329,330,329,329,329,329,329,331,329,329,329,329,329,329,329,329,329,329,329,329,329,329,329,330,329,333,332,332,332,333,332,332,332,332,334,335,334,334,334,332,332,332,332,332,332,332,332,332,332,332,332,333,332,332,332,332,332,334,332,332,336,332,334,337,334,334,334,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,337,334,337,339,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,340,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,341,338,342,342,342,342,342,342,342,342,342,342,342,342,342,342,342,342,342,342,342,342,342,342,342,342,342,342,342,342,342,342,342,342,342,342,342,342,342,342,342,342,342,342,342,342,342,342,342,342,87,87,87,87,87,87,87,87,87,87,342,342,342,342,342,342,342,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,342,342,342,342,87,342,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,342,342,342,342,342,87,342,90,90,90,90,90,90,90,90,90,90,342,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,91,91,91,91,91,91,91,91,91,91,343,343,343,343,343,343,343,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,343,343,343,343,91,343,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,343,343,343,343,343,91,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,91,91,91,91,91,91,91,91,91,91,344,344,344,344,344,344,344,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,344,344,344,344,92,344,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,344,344,344,344,344,92,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,94,94,94,94,94,94,94,94,94,94,345,345,345,345,345,345,345,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,345,345,345,345,94,345,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,345,345,345,345,345,94,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,94,94,94,94,94,94,94,94,94,94,346,346,346,346,346,346,346,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,346,346,346,346,95,346,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,346,346,346,346,346,95,348,347,347,347,348,347,347,347,347,349,350,349,349,349,347,347,347,347,347,347,347,347,347,347,347,347,348,347,347,347,347,347,349,347,349,351,349,349,349,351,351,351,351,351,351,351,351,351,351,351,351,351,351,351,351,351,351,349,351,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,352,352,352,352,352,352,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,352,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,354,354,354,354,354,354,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,354,355,97,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,356,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,356,356,356,356,357,356,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,356,356,356,356,356,357,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,358,359,359,359,359,359,359,359,359,359,359,358,358,358,358,358,358,358,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,358,358,358,358,359,358,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,358,358,358,358,358,359,362,361,361,361,362,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,362,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,363,363,363,363,363,363,363,363,361,361,361,361,361,361,361,361,361,361,361,364,361,361,361,361,361,361,361,361,361,365,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,366,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,361,367,361,361,368,361,369,370,372,372,372,372,372,372,372,372,371,373,373,373,373,373,373,373,373,371,371,374,374,125,125,125,374,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,374,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,126,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,375,125,376,377,378,378,125,125,125,378,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,378,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,126,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,379,125,124,378,380,381,382,382,110,110,110,382,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,382,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,111,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,383,110,384,384,384,384,384,384,384,384,384,384,382,382,382,382,382,382,382,384,384,384,384,384,384,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,384,384,384,384,384,384,382,386,386,386,386,386,386,386,386,386,386,385,385,385,385,385,385,385,386,386,386,386,386,386,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,386,386,386,386,386,386,385,385,387,387,387,387,387,387,387,387,387,387,378,378,378,378,378,378,378,387,387,387,387,387,387,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,387,387,387,387,387,387,378,389,389,389,389,389,389,389,389,389,389,388,388,388,388,388,388,388,389,389,389,389,389,389,388,388,388,388,388,388,388,388,388,388,388,388,388,388,388,388,388,388,388,388,388,388,388,388,388,388,389,389,389,389,389,389,388,388,378,103,103,103,378,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,378,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,390,103,374,110,110,110,374,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,374,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,111,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,112,110,374,391,391,391,374,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,374,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,392,391,393,394,394,391,391,391,394,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,394,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,395,391,396,396,396,396,396,396,396,396,396,396,394,394,394,394,394,394,394,396,396,396,396,396,396,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,396,396,396,396,396,396,394,398,398,398,398,398,398,398,398,398,398,397,397,397,397,397,397,397,398,398,398,398,398,398,397,397,397,397,397,397,397,397,397,397,397,397,397,397,397,397,397,397,397,397,397,397,397,397,397,397,398,398,398,398,398,398,397,397,394,103,103,103,394,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,394,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,390,103,399,394,394,110,110,110,394,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,394,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,111,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,112,110,401,401,401,401,401,401,401,401,401,401,400,400,400,400,400,400,400,401,401,401,401,401,401,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,401,401,401,401,401,401,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,402,400,403,403,403,403,403,403,403,403,403,403,400,400,400,400,400,400,400,403,403,403,403,403,403,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,403,403,403,403,403,403,400,404,404,404,404,404,404,404,404,404,404,400,400,400,400,400,400,400,404,404,404,404,404,404,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,404,404,404,404,404,404,400,405,405,405,405,405,405,405,405,405,405,400,400,400,400,400,400,400,405,405,405,405,405,405,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,400,405,405,405,405,405,405,400,406,409,408,408,408,409,408,408,408,408,410,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,409,408,408,408,408,408,410,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,411,411,411,411,411,411,411,411,411,411,408,408,408,408,408,408,408,411,411,411,411,411,411,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,411,411,411,411,411,411,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,412,408,409,408,408,408,409,408,408,408,408,407,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,409,408,408,408,408,408,407,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,413,413,413,413,413,413,413,413,413,413,408,408,408,408,408,408,408,413,413,413,413,413,413,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,413,413,413,413,413,413,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,414,408,407,409,413,413,413,409,413,413,413,413,407,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,409,413,413,413,413,413,407,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,413,407,413,415,409,416,416,416,409,416,416,416,416,410,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,409,416,416,416,416,416,410,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,417,417,417,417,417,417,417,417,417,417,416,416,416,416,416,416,416,417,417,417,417,417,417,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,417,417,417,417,417,417,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,407,416,409,416,416,416,409,416,416,416,416,407,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,409,416,416,416,416,416,407,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,413,413,413,413,413,413,413,413,413,413,416,416,416,416,416,416,416,413,413,413,413,413,413,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,413,413,413,413,413,413,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,409,416,409,416,416,416,409,416,416,416,416,418,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,409,416,416,416,416,416,418,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,419,419,419,419,419,419,419,419,419,419,416,416,416,416,416,416,416,419,419,419,419,419,419,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,419,419,419,419,419,419,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,420,416,409,416,416,416,409,416,416,416,416,418,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,409,416,416,416,416,416,418,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,417,417,417,417,417,417,417,417,417,417,416,416,416,416,416,416,416,417,417,417,417,417,417,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,417,417,417,417,417,417,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,420,416,421,409,416,416,416,409,416,416,416,416,418,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,409,416,416,416,416,416,418,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,422,422,422,422,422,422,422,422,422,422,416,416,416,416,416,416,416,422,422,422,422,422,422,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,422,422,422,422,422,422,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,420,416,409,416,416,416,409,416,416,416,416,418,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,409,416,416,416,416,416,418,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,423,423,423,423,423,423,423,423,423,423,416,416,416,416,416,416,416,423,423,423,423,423,423,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,423,423,423,423,423,423,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,420,416,409,416,416,416,409,416,416,416,416,418,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,409,416,416,416,416,416,418,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,424,424,424,424,424,424,424,424,424,424,416,416,416,416,416,416,416,424,424,424,424,424,424,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,424,424,424,424,424,424,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,420,416,409,416,416,416,409,416,416,416,416,418,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,409,416,416,416,416,416,418,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,425,425,425,425,425,425,425,425,425,425,416,416,416,416,416,416,416,425,425,425,425,425,425,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,425,425,425,425,425,425,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,420,416,409,416,416,416,409,416,416,416,416,418,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,409,416,416,416,416,416,418,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,426,426,426,426,426,426,426,426,426,426,416,416,416,416,416,416,416,426,426,426,426,426,426,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,426,426,426,426,426,426,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,420,416,409,416,416,416,409,416,416,416,416,407,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,409,416,416,416,416,416,407,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,426,426,426,426,426,426,426,426,426,426,416,416,416,416,416,416,416,426,426,426,426,426,426,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,426,426,426,426,426,426,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,407,416,409,416,416,416,409,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,409,416,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,428,428,428,428,428,428,428,428,428,428,416,416,416,416,416,416,416,428,428,428,428,428,428,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,428,428,428,428,428,428,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,420,416,409,416,416,416,409,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,409,416,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,429,429,429,429,429,429,429,429,429,429,416,416,416,416,416,416,416,429,429,429,429,429,429,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,429,429,429,429,429,429,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,420,416,409,416,416,416,409,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,409,416,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,430,430,430,430,430,430,430,430,430,430,416,416,416,416,416,416,416,430,430,430,430,430,430,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,430,430,430,430,430,430,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,407,416,409,416,416,416,409,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,409,416,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,431,431,431,431,431,431,431,431,431,431,416,416,416,416,416,416,416,431,431,431,431,431,431,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,431,431,431,431,431,431,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,407,416,409,416,416,416,409,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,409,416,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,432,432,432,432,432,432,432,432,432,432,416,416,416,416,416,416,416,432,432,432,432,432,432,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,432,432,432,432,432,432,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,407,416,409,416,416,416,409,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,409,416,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,433,433,433,433,433,433,433,433,433,433,416,416,416,416,416,416,416,433,433,433,433,433,433,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,433,433,433,433,433,433,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,407,416,409,416,416,416,409,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,409,416,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,434,434,434,434,434,434,434,434,434,434,416,416,416,416,416,416,416,434,434,434,434,434,434,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,434,434,434,434,434,434,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,407,416,409,416,416,416,409,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,409,416,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,426,426,426,426,426,426,426,426,426,426,416,416,416,416,416,416,416,426,426,426,426,426,426,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,426,426,426,426,426,426,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,407,416,409,416,416,416,409,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,409,416,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,435,435,435,435,435,435,435,435,435,435,416,416,416,416,416,416,416,435,435,435,435,435,435,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,435,435,435,435,435,435,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,420,416,409,416,416,416,409,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,409,416,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,436,436,436,436,436,436,436,436,436,436,416,416,416,416,416,416,416,436,436,436,436,436,436,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,436,436,436,436,436,436,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,420,416,409,416,416,416,409,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,409,416,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,437,437,437,437,437,437,437,437,437,437,416,416,416,416,416,416,416,437,437,437,437,437,437,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,437,437,437,437,437,437,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,420,416,409,416,416,416,409,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,409,416,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,438,438,438,438,438,438,438,438,438,438,416,416,416,416,416,416,416,438,438,438,438,438,438,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,438,438,438,438,438,438,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,420,416,409,416,416,416,409,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,409,416,416,416,416,416,427,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,426,426,426,426,426,426,426,426,426,426,416,416,416,416,416,416,416,426,426,426,426,426,426,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,426,426,426,426,426,426,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,420,416,439,440,442,442,442,442,442,442,442,442,442,442,441,441,441,441,441,441,441,442,442,442,442,442,442,441,441,441,441,441,441,441,441,441,441,441,441,441,441,441,441,441,441,441,441,441,441,441,441,441,441,442,442,442,442,442,442,441,441,0")),function(e,t){e.$attr_accessor("_lex_trans_targs"),e.$private("_lex_trans_targs","_lex_trans_targs=")}(e.get_singleton_class(q)),q["$_lex_trans_targs="](e.large_array_unpack("61,64,65,2,66,67,68,4,69,70,61,77,78,81,82,94,91,83,84,85,9,86,87,88,96,98,99,103,104,105,100,15,8,79,80,17,128,129,131,133,134,20,135,136,137,22,138,139,131,146,147,150,151,163,160,152,153,154,27,155,156,157,165,167,168,172,173,174,169,33,26,148,149,35,197,198,205,207,208,38,209,210,211,40,212,213,215,218,219,42,220,221,222,44,223,224,230,0,229,229,231,233,229,239,240,243,244,256,253,245,246,247,50,248,249,250,258,260,261,265,266,267,262,56,49,241,242,58,303,304,60,61,61,62,61,63,71,61,61,1,3,61,61,61,61,61,61,61,72,73,74,5,11,16,106,18,61,61,61,75,76,61,6,61,61,61,7,61,61,61,10,89,61,90,92,61,93,95,97,12,61,61,13,101,61,102,14,61,107,111,108,109,110,61,61,112,113,116,118,127,114,115,61,117,119,121,120,61,122,123,124,125,126,61,61,61,130,131,131,131,132,140,131,19,21,131,131,131,131,131,131,131,141,142,143,23,29,34,175,36,131,131,131,144,145,131,24,131,131,131,25,131,131,131,28,158,131,159,161,131,162,164,166,30,131,131,31,170,131,171,32,131,176,180,177,178,179,131,131,181,182,185,187,196,183,184,131,186,188,190,189,131,191,192,193,194,195,131,131,131,199,200,200,201,200,202,200,200,200,203,203,203,204,203,203,203,205,205,205,206,205,37,39,205,205,205,205,205,205,214,214,214,215,215,216,215,217,215,215,41,43,215,215,215,215,215,215,225,225,226,225,225,227,228,227,45,229,232,229,232,229,234,235,236,46,52,57,268,59,229,229,229,237,238,229,47,229,229,229,48,229,229,229,51,251,229,252,254,229,255,257,259,53,229,229,54,263,229,264,55,229,269,273,270,271,272,229,229,274,275,278,289,302,276,277,229,279,280,281,283,282,229,284,285,286,287,288,290,297,291,292,293,294,295,296,298,299,300,301,229,229,229,305")),function(e,t){e.$attr_accessor("_lex_trans_actions"),e.$private("_lex_trans_actions","_lex_trans_actions=")}(e.get_singleton_class(q)),q["$_lex_trans_actions="](e.large_array_unpack("25,0,0,0,0,0,0,0,0,0,23,0,11,0,301,0,0,11,0,0,0,0,301,0,11,0,301,0,11,11,0,0,0,0,0,0,0,0,37,0,0,0,0,0,0,0,0,0,35,0,11,0,301,0,0,11,0,0,0,0,301,0,11,0,301,0,11,11,0,0,0,0,0,0,0,0,61,0,0,0,0,0,0,0,0,0,77,0,0,0,0,0,0,0,0,0,0,0,89,121,0,11,93,0,11,0,301,0,0,11,0,0,0,0,301,0,11,0,301,0,11,11,0,0,0,0,0,0,0,0,95,17,15,0,97,11,11,19,21,0,0,13,238,277,274,253,250,392,3,3,3,3,3,3,3,3,133,223,160,0,0,142,0,332,151,308,0,419,356,404,0,0,449,0,0,368,0,11,0,0,344,320,0,0,434,0,1,196,0,0,0,0,0,187,214,0,0,0,0,0,0,0,380,0,0,0,0,124,0,0,0,0,0,205,178,169,0,31,29,100,11,11,33,0,0,27,241,283,280,259,256,396,3,3,3,3,3,3,3,3,136,226,163,0,0,145,0,336,154,312,0,424,360,409,0,0,454,0,0,372,0,11,0,0,348,324,0,0,439,0,1,199,0,0,0,0,0,190,217,0,0,0,0,0,0,0,384,0,0,0,0,127,0,0,0,0,0,208,181,172,0,41,39,0,103,0,43,45,232,49,47,106,0,51,235,304,57,55,109,11,59,0,0,53,244,289,286,265,262,65,63,112,71,69,0,115,11,73,75,0,0,67,247,295,292,271,268,81,79,0,118,83,85,0,87,0,298,5,91,0,400,3,3,3,3,3,3,3,3,139,229,166,0,0,148,0,340,157,316,0,429,364,414,0,0,459,0,0,376,0,11,0,0,352,328,0,0,444,0,1,202,0,0,0,0,0,193,220,0,0,0,0,0,0,0,388,0,0,0,0,0,130,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,211,184,175,0")),function(e,t){e.$attr_accessor("_lex_to_state_actions"),e.$private("_lex_to_state_actions","_lex_to_state_actions=")}(e.get_singleton_class(q)),q["$_lex_to_state_actions="](e.large_array_unpack("0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,7,0,7,0,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,0,0,7,0,7,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0")),function(e,t){e.$attr_accessor("_lex_from_state_actions"),e.$private("_lex_from_state_actions","_lex_from_state_actions=")}(e.get_singleton_class(q)),q["$_lex_from_state_actions="](e.large_array_unpack("0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,0,9,0,9,0,0,0,0,0,0,0,0,9,9,0,0,0,0,0,0,0,0,0,9,0,9,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0")),function(e,t){e.$attr_accessor("_lex_eof_trans"),e.$private("_lex_eof_trans","_lex_eof_trans=")}(e.get_singleton_class(q)),q["$_lex_eof_trans="](e.large_array_unpack("0,1,1,1,1,11,11,11,11,11,11,11,11,11,11,11,11,11,11,39,39,39,39,49,49,49,49,49,49,49,49,49,49,49,49,49,49,77,77,77,77,87,87,87,87,0,103,103,103,103,103,103,103,103,103,103,103,103,103,103,0,0,138,139,143,143,143,144,145,146,147,148,157,158,159,159,159,162,162,164,165,166,166,166,168,169,170,170,170,173,173,166,176,176,166,162,162,181,182,182,182,185,185,182,182,182,188,188,188,188,194,195,195,195,195,203,195,195,195,195,208,195,195,195,195,195,195,214,215,216,216,0,223,227,227,227,228,229,230,231,232,241,242,243,243,243,246,246,248,249,250,250,250,252,253,254,254,254,257,257,250,260,260,250,246,246,265,266,266,266,269,269,266,266,266,272,272,272,272,278,279,279,279,279,287,279,279,279,279,292,279,279,279,279,279,279,298,299,300,300,0,307,308,0,314,0,321,325,325,325,326,327,328,329,0,0,338,339,343,343,343,344,345,346,347,0,352,0,355,0,357,357,359,361,370,371,372,372,372,375,375,377,378,379,379,379,381,382,383,383,383,386,386,379,389,389,379,375,375,394,395,395,395,398,398,395,395,395,401,401,401,401,407,408,408,408,408,416,408,408,408,408,422,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,440,441,442,442")),function(e,t){e.$attr_accessor("lex_start")}(e.get_singleton_class(q)),q["$lex_start="](60),function(e,t){e.$attr_accessor("lex_error")}(e.get_singleton_class(q)),q["$lex_error="](0),function(e,t){e.$attr_accessor("lex_en_interp_words")}(e.get_singleton_class(q)),q["$lex_en_interp_words="](61),function(e,t){e.$attr_accessor("lex_en_interp_string")}(e.get_singleton_class(q)),q["$lex_en_interp_string="](131),function(e,t){e.$attr_accessor("lex_en_plain_words")}(e.get_singleton_class(q)),q["$lex_en_plain_words="](200),function(e,t){e.$attr_accessor("lex_en_plain_string")}(e.get_singleton_class(q)),q["$lex_en_plain_string="](203),function(e,t){e.$attr_accessor("lex_en_interp_backslash_delimited")}(e.get_singleton_class(q)),q["$lex_en_interp_backslash_delimited="](205),function(e,t){e.$attr_accessor("lex_en_plain_backslash_delimited")}(e.get_singleton_class(q)),q["$lex_en_plain_backslash_delimited="](214),function(e,t){e.$attr_accessor("lex_en_interp_backslash_delimited_words")}(e.get_singleton_class(q)),q["$lex_en_interp_backslash_delimited_words="](215),function(e,t){e.$attr_accessor("lex_en_plain_backslash_delimited_words")}(e.get_singleton_class(q)),q["$lex_en_plain_backslash_delimited_words="](225),function(e,t){e.$attr_accessor("lex_en_regexp_modifiers")}(e.get_singleton_class(q)),q["$lex_en_regexp_modifiers="](227),function(e,t){e.$attr_accessor("lex_en_character")}(e.get_singleton_class(q)),q["$lex_en_character="](229),function(e,t){e.$attr_accessor("lex_en_unknown")}(e.get_singleton_class(q)),q["$lex_en_unknown="](60),r(S[0],"ESCAPES",n(new Map([["a".$ord(),""],["b".$ord(),"\b"],["e".$ord(),""],["f".$ord(),"\f"],["n".$ord(),"\n"],["r".$ord(),"\r"],["s".$ord()," "],["t".$ord(),"\t"],["v".$ord(),"\v"],["\\".$ord(),"\\"]])).$freeze()),r(S[0],"REGEXP_META_CHARACTERS",a(O("Regexp"),"union",s("\\$()*+.<>?[]^{|}".$chars())).$freeze()),q.$attr_accessor("herebody_s"),q.$attr_accessor("source_buffer","source_pts"),o(q,"$initialize",(function(e,t){var r=this;return r.lexer=e,r.version=t,r._lex_actions=i(r.$class()["$respond_to?"]("_lex_actions",!0))?r.$class().$send("_lex_actions"):[],r.$reset()})),o(q,"$reset",(function(){var e=this;return e.cs=e.$class().$lex_en_unknown(),e.literal_stack=[],e.escape_s=U,e.escape=U,e.herebody_s=U,e.dedent_level=U})),r(S[0],"LEX_STATES",new Map([["interp_string",q.$lex_en_interp_string()],["interp_words",q.$lex_en_interp_words()],["plain_string",q.$lex_en_plain_string()],["plain_words",q.$lex_en_plain_string()]])),o(q,"$advance",(function(e){var t,r,n,a,s=this,o=U,g=U,b=U,v=U,y=U,x=U,w=U,k=U,M=U,q=U,S=U,A=U,T=U,N=U,z=U,R=U,I=U,C=U,P=U,L=U,F=U,D=U,j=U,B=U,G=U,H=U,Y=U,V=U,X=U,K=U;for(g=(o=s.$class()).$send("_lex_trans_keys"),b=o.$send("_lex_key_spans"),v=o.$send("_lex_index_offsets"),y=o.$send("_lex_indicies"),x=o.$send("_lex_trans_targs"),w=o.$send("_lex_trans_actions"),k=o.$send("_lex_to_state_actions"),M=o.$send("_lex_from_state_actions"),q=o.$send("_lex_eof_trans"),S=s._lex_actions,n=r=l(s.$source_pts().$size(),2),!1,A=null==(t=$(U))[0]?U:t[0],T=null==t[1]?U:t[1],N=null==t[2]?U:t[2],z=null==t[3]?U:t[3],R=null==t[4]?U:t[4],I=null==t[5]?U:t[5],C=0,10,15,20,30,a=40;i(!0);){if(P=!1,i(u(C,0))){if(c(e,r)){C=30;continue}if(c(s.cs,0)){C=a;continue}}if(i(u(C,10))){for(R=M["$[]"](s.cs),I=S["$[]"](R),R=l(R,1);i(_(I,0));)if(I=p(I,1),R=l(R,1),24===S["$[]"](p(R,1)).valueOf())s.ts=e;if(i(P))continue;N=s.cs["$<<"](1),z=v["$[]"](s.cs),A=b["$[]"](s.cs),L=i(F=s.$source_pts()["$[]"](e))?F:0,T=i(_(A,0))&&i(u(g["$[]"](N),L))&&i(u(L,g["$[]"](l(N,1))))?y["$[]"](p(l(z,L),g["$[]"](N))):y["$[]"](l(z,A))}if(i(u(C,15))){if(s.cs=x["$[]"](T),m(w["$[]"](T),0))for(R=w["$[]"](T),I=S["$[]"](R),R=l(R,1);i(_(I,0));)if(I=p(I,1),R=l(R,1),d(0,F=S["$[]"](p(R,1))))s.newline_s=e;else if(d(1,F))s.$unicode_points(e);else if(d(2,F))s.$unescape_char(e);else if(d(3,F))s.$diagnostic("fatal","invalid_escape");else if(d(4,F))s.$read_post_meta_or_ctrl_char(e);else if(d(5,F))s.$slash_c_char();else if(d(6,F))s.$slash_m_char();else if(d(7,F))s.$encode_escaped_char(e);else if(d(8,F))s.escape="";else if(d(9,F))s.$encode_escaped_char(e);else if(d(10,F))s.escape=s.$encode_escape(s.$tok(s.escape_s,e).$to_i(8)["$%"](256));else if(d(11,F))s.escape=s.$encode_escape(s.$tok(l(s.escape_s,1),e).$to_i(16));else if(d(12,F))s.$diagnostic("fatal","invalid_hex_escape",U,s.$range(p(s.escape_s,1),l(e,2)));else if(d(13,F))s.escape=s.$tok(l(s.escape_s,1),e).$to_i(16).$chr(E(O("Encoding"),"UTF_8"));else if(d(14,F))s.$check_invalid_escapes(e);else if(d(15,F))s.$check_invalid_escapes(e);else if(d(16,F))s.$diagnostic("fatal","unterminated_unicode",U,s.$range(p(e,1),e));else if(d(17,F))s.$diagnostic("fatal","escape_eof",U,s.$range(p(e,1),e));else if(d(18,F))s.escape_s=e,s.escape=U;else if(d(19,F))D="gvar";else if(d(20,F))D="cvar";else if(d(21,F))D="ivar";else if(d(22,F))s.escape=U;else if(d(25,F))s.te=l(e,1);else{if(d(26,F)){s.te=l(e,1),j=s.$literal(),s.$extend_interp_code(j),s.root_lexer_state=s.lexer.$class().$lex_en_expr_value(),e=l(e,1),P=!0,C=a;break}if(d(27,F)){if(s.te=l(e,1),j=s.$literal(),s.$extend_string_eol_check_eof(j,r),i(j["$heredoc?"]())){if(B=s.$extend_string_eol_heredoc_line(),i(j.$nest_and_try_closing(B,s.herebody_s,s.ts))){s.herebody_s=s.te,e=p(j.$heredoc_e(),1),s.cs=s.$pop_literal(),e=l(e,1),P=!0,C=a;break}j.$infer_indent_level(B),s.herebody_s=s.te}else{if(i(j.$nest_and_try_closing(s.$tok(),s.ts,s.te))){s.cs=s.$pop_literal(),e=l(e,1),P=!0,C=a;break}e=s.$extend_string_eol_heredoc_intertwined(e)}s.$extend_string_eol_words(j,e)}else if(d(28,F)){if(s.te=l(e,1),G=s.$tok(),H=s.$extend_string_slice_end(H),j=s.$literal(),f(j["$heredoc?"]())&&i(Y=j.$nest_and_try_closing(G,s.ts,s.te,H))){c(Y["$[]"](0),"tLABEL_END")?(e=l(e,1),s.$pop_literal(),s.root_lexer_state=s.lexer.$class().$lex_en_expr_labelarg()):i(V=s.$pop_literal())&&(s.cs=V),e=l(e,1),P=!0,C=a;break}s.$extend_string_for_token_range(j,G)}else if(d(29,F))s.te=e,e=p(e,1),s.$extend_interp_digit_var();else if(d(30,F))s.te=e,e=p(e,1),j=s.$literal(),s.$extend_interp_var(j),s.$emit_interp_var(D);else if(d(31,F))s.te=e,e=p(e,1),s.$extend_string_escaped();else if(d(32,F))s.te=e,e=p(e,1),s.$literal().$extend_space(s.ts,s.te);else if(d(33,F)){if(s.te=e,e=p(e,1),G=s.$tok(),H=s.$extend_string_slice_end(H),j=s.$literal(),f(j["$heredoc?"]())&&i(Y=j.$nest_and_try_closing(G,s.ts,s.te,H))){c(Y["$[]"](0),"tLABEL_END")?(e=l(e,1),s.$pop_literal(),s.root_lexer_state=s.lexer.$class().$lex_en_expr_labelarg()):i(V=s.$pop_literal())&&(s.cs=V),e=l(e,1),P=!0,C=a;break}s.$extend_string_for_token_range(j,G)}else if(d(34,F))e=p(s.te,1),s.$extend_string_escaped();else if(d(35,F)){if(e=p(s.te,1),G=s.$tok(),H=s.$extend_string_slice_end(H),j=s.$literal(),f(j["$heredoc?"]())&&i(Y=j.$nest_and_try_closing(G,s.ts,s.te,H))){c(Y["$[]"](0),"tLABEL_END")?(e=l(e,1),s.$pop_literal(),s.root_lexer_state=s.lexer.$class().$lex_en_expr_labelarg()):i(V=s.$pop_literal())&&(s.cs=V),e=l(e,1),P=!0,C=a;break}s.$extend_string_for_token_range(j,G)}else{if(d(36,F)){s.te=l(e,1),j=s.$literal(),s.$extend_interp_code(j),s.root_lexer_state=s.lexer.$class().$lex_en_expr_value(),e=l(e,1),P=!0,C=a;break}if(d(37,F)){if(s.te=l(e,1),j=s.$literal(),s.$extend_string_eol_check_eof(j,r),i(j["$heredoc?"]())){if(B=s.$extend_string_eol_heredoc_line(),i(j.$nest_and_try_closing(B,s.herebody_s,s.ts))){s.herebody_s=s.te,e=p(j.$heredoc_e(),1),s.cs=s.$pop_literal(),e=l(e,1),P=!0,C=a;break}j.$infer_indent_level(B),s.herebody_s=s.te}else{if(i(j.$nest_and_try_closing(s.$tok(),s.ts,s.te))){s.cs=s.$pop_literal(),e=l(e,1),P=!0,C=a;break}e=s.$extend_string_eol_heredoc_intertwined(e)}s.$extend_string_eol_words(j,e)}else if(d(38,F)){if(s.te=l(e,1),G=s.$tok(),H=s.$extend_string_slice_end(H),j=s.$literal(),f(j["$heredoc?"]())&&i(Y=j.$nest_and_try_closing(G,s.ts,s.te,H))){c(Y["$[]"](0),"tLABEL_END")?(e=l(e,1),s.$pop_literal(),s.root_lexer_state=s.lexer.$class().$lex_en_expr_labelarg()):i(V=s.$pop_literal())&&(s.cs=V),e=l(e,1),P=!0,C=a;break}s.$extend_string_for_token_range(j,G)}else if(d(39,F))s.te=e,e=p(e,1),s.$extend_interp_digit_var();else if(d(40,F))s.te=e,e=p(e,1),j=s.$literal(),s.$extend_interp_var(j),s.$emit_interp_var(D);else if(d(41,F))s.te=e,e=p(e,1),s.$extend_string_escaped();else if(d(42,F)){if(s.te=e,e=p(e,1),G=s.$tok(),H=s.$extend_string_slice_end(H),j=s.$literal(),f(j["$heredoc?"]())&&i(Y=j.$nest_and_try_closing(G,s.ts,s.te,H))){c(Y["$[]"](0),"tLABEL_END")?(e=l(e,1),s.$pop_literal(),s.root_lexer_state=s.lexer.$class().$lex_en_expr_labelarg()):i(V=s.$pop_literal())&&(s.cs=V),e=l(e,1),P=!0,C=a;break}s.$extend_string_for_token_range(j,G)}else if(d(43,F))e=p(s.te,1),s.$extend_string_escaped();else if(d(44,F)){if(e=p(s.te,1),G=s.$tok(),H=s.$extend_string_slice_end(H),j=s.$literal(),f(j["$heredoc?"]())&&i(Y=j.$nest_and_try_closing(G,s.ts,s.te,H))){c(Y["$[]"](0),"tLABEL_END")?(e=l(e,1),s.$pop_literal(),s.root_lexer_state=s.lexer.$class().$lex_en_expr_labelarg()):i(V=s.$pop_literal())&&(s.cs=V),e=l(e,1),P=!0,C=a;break}s.$extend_string_for_token_range(j,G)}else if(d(45,F))s.te=l(e,1),s.$extend_string_escaped();else if(d(46,F)){if(s.te=l(e,1),j=s.$literal(),s.$extend_string_eol_check_eof(j,r),i(j["$heredoc?"]())){if(B=s.$extend_string_eol_heredoc_line(),i(j.$nest_and_try_closing(B,s.herebody_s,s.ts))){s.herebody_s=s.te,e=p(j.$heredoc_e(),1),s.cs=s.$pop_literal(),e=l(e,1),P=!0,C=a;break}j.$infer_indent_level(B),s.herebody_s=s.te}else{if(i(j.$nest_and_try_closing(s.$tok(),s.ts,s.te))){s.cs=s.$pop_literal(),e=l(e,1),P=!0,C=a;break}e=s.$extend_string_eol_heredoc_intertwined(e)}s.$extend_string_eol_words(j,e)}else if(d(47,F)){if(s.te=l(e,1),G=s.$tok(),H=s.$extend_string_slice_end(H),j=s.$literal(),f(j["$heredoc?"]())&&i(Y=j.$nest_and_try_closing(G,s.ts,s.te,H))){c(Y["$[]"](0),"tLABEL_END")?(e=l(e,1),s.$pop_literal(),s.root_lexer_state=s.lexer.$class().$lex_en_expr_labelarg()):i(V=s.$pop_literal())&&(s.cs=V),e=l(e,1),P=!0,C=a;break}s.$extend_string_for_token_range(j,G)}else if(d(48,F))s.te=e,e=p(e,1),s.$literal().$extend_space(s.ts,s.te);else if(d(49,F)){if(s.te=e,e=p(e,1),G=s.$tok(),H=s.$extend_string_slice_end(H),j=s.$literal(),f(j["$heredoc?"]())&&i(Y=j.$nest_and_try_closing(G,s.ts,s.te,H))){c(Y["$[]"](0),"tLABEL_END")?(e=l(e,1),s.$pop_literal(),s.root_lexer_state=s.lexer.$class().$lex_en_expr_labelarg()):i(V=s.$pop_literal())&&(s.cs=V),e=l(e,1),P=!0,C=a;break}s.$extend_string_for_token_range(j,G)}else if(d(50,F)){if(s.te=l(e,1),j=s.$literal(),s.$extend_string_eol_check_eof(j,r),i(j["$heredoc?"]())){if(B=s.$extend_string_eol_heredoc_line(),i(j.$nest_and_try_closing(B,s.herebody_s,s.ts))){s.herebody_s=s.te,e=p(j.$heredoc_e(),1),s.cs=s.$pop_literal(),e=l(e,1),P=!0,C=a;break}j.$infer_indent_level(B),s.herebody_s=s.te}else{if(i(j.$nest_and_try_closing(s.$tok(),s.ts,s.te))){s.cs=s.$pop_literal(),e=l(e,1),P=!0,C=a;break}e=s.$extend_string_eol_heredoc_intertwined(e)}s.$extend_string_eol_words(j,e)}else if(d(51,F))s.te=l(e,1),s.$extend_string_escaped();else if(d(52,F)){if(s.te=l(e,1),j=s.$literal(),s.$extend_string_eol_check_eof(j,r),i(j["$heredoc?"]())){if(B=s.$extend_string_eol_heredoc_line(),i(j.$nest_and_try_closing(B,s.herebody_s,s.ts))){s.herebody_s=s.te,e=p(j.$heredoc_e(),1),s.cs=s.$pop_literal(),e=l(e,1),P=!0,C=a;break}j.$infer_indent_level(B),s.herebody_s=s.te}else{if(i(j.$nest_and_try_closing(s.$tok(),s.ts,s.te))){s.cs=s.$pop_literal(),e=l(e,1),P=!0,C=a;break}e=s.$extend_string_eol_heredoc_intertwined(e)}s.$extend_string_eol_words(j,e)}else if(d(53,F)){if(s.te=l(e,1),G=s.$tok(),H=s.$extend_string_slice_end(H),j=s.$literal(),f(j["$heredoc?"]())&&i(Y=j.$nest_and_try_closing(G,s.ts,s.te,H))){c(Y["$[]"](0),"tLABEL_END")?(e=l(e,1),s.$pop_literal(),s.root_lexer_state=s.lexer.$class().$lex_en_expr_labelarg()):i(V=s.$pop_literal())&&(s.cs=V),e=l(e,1),P=!0,C=a;break}s.$extend_string_for_token_range(j,G)}else if(d(54,F)){if(s.te=e,e=p(e,1),G=s.$tok(),H=s.$extend_string_slice_end(H),j=s.$literal(),f(j["$heredoc?"]())&&i(Y=j.$nest_and_try_closing(G,s.ts,s.te,H))){c(Y["$[]"](0),"tLABEL_END")?(e=l(e,1),s.$pop_literal(),s.root_lexer_state=s.lexer.$class().$lex_en_expr_labelarg()):i(V=s.$pop_literal())&&(s.cs=V),e=l(e,1),P=!0,C=a;break}s.$extend_string_for_token_range(j,G)}else{if(d(55,F)){s.te=l(e,1),j=s.$literal(),s.$extend_interp_code(j),s.root_lexer_state=s.lexer.$class().$lex_en_expr_value(),e=l(e,1),P=!0,C=a;break}if(d(56,F)){if(s.te=l(e,1),j=s.$literal(),s.$extend_string_eol_check_eof(j,r),i(j["$heredoc?"]())){if(B=s.$extend_string_eol_heredoc_line(),i(j.$nest_and_try_closing(B,s.herebody_s,s.ts))){s.herebody_s=s.te,e=p(j.$heredoc_e(),1),s.cs=s.$pop_literal(),e=l(e,1),P=!0,C=a;break}j.$infer_indent_level(B),s.herebody_s=s.te}else{if(i(j.$nest_and_try_closing(s.$tok(),s.ts,s.te))){s.cs=s.$pop_literal(),e=l(e,1),P=!0,C=a;break}e=s.$extend_string_eol_heredoc_intertwined(e)}s.$extend_string_eol_words(j,e)}else if(d(57,F)){if(s.te=l(e,1),G=s.$tok(),H=s.$extend_string_slice_end(H),j=s.$literal(),f(j["$heredoc?"]())&&i(Y=j.$nest_and_try_closing(G,s.ts,s.te,H))){c(Y["$[]"](0),"tLABEL_END")?(e=l(e,1),s.$pop_literal(),s.root_lexer_state=s.lexer.$class().$lex_en_expr_labelarg()):i(V=s.$pop_literal())&&(s.cs=V),e=l(e,1),P=!0,C=a;break}s.$extend_string_for_token_range(j,G)}else if(d(58,F))s.te=e,e=p(e,1),s.$extend_interp_digit_var();else if(d(59,F))s.te=e,e=p(e,1),j=s.$literal(),s.$extend_interp_var(j),s.$emit_interp_var(D);else if(d(60,F)){if(s.te=e,e=p(e,1),G=s.$tok(),H=s.$extend_string_slice_end(H),j=s.$literal(),f(j["$heredoc?"]())&&i(Y=j.$nest_and_try_closing(G,s.ts,s.te,H))){c(Y["$[]"](0),"tLABEL_END")?(e=l(e,1),s.$pop_literal(),s.root_lexer_state=s.lexer.$class().$lex_en_expr_labelarg()):i(V=s.$pop_literal())&&(s.cs=V),e=l(e,1),P=!0,C=a;break}s.$extend_string_for_token_range(j,G)}else if(d(61,F)){if(e=p(s.te,1),G=s.$tok(),H=s.$extend_string_slice_end(H),j=s.$literal(),f(j["$heredoc?"]())&&i(Y=j.$nest_and_try_closing(G,s.ts,s.te,H))){c(Y["$[]"](0),"tLABEL_END")?(e=l(e,1),s.$pop_literal(),s.root_lexer_state=s.lexer.$class().$lex_en_expr_labelarg()):i(V=s.$pop_literal())&&(s.cs=V),e=l(e,1),P=!0,C=a;break}s.$extend_string_for_token_range(j,G)}else if(d(62,F)){if(s.te=l(e,1),j=s.$literal(),s.$extend_string_eol_check_eof(j,r),i(j["$heredoc?"]())){if(B=s.$extend_string_eol_heredoc_line(),i(j.$nest_and_try_closing(B,s.herebody_s,s.ts))){s.herebody_s=s.te,e=p(j.$heredoc_e(),1),s.cs=s.$pop_literal(),e=l(e,1),P=!0,C=a;break}j.$infer_indent_level(B),s.herebody_s=s.te}else{if(i(j.$nest_and_try_closing(s.$tok(),s.ts,s.te))){s.cs=s.$pop_literal(),e=l(e,1),P=!0,C=a;break}e=s.$extend_string_eol_heredoc_intertwined(e)}s.$extend_string_eol_words(j,e)}else if(d(63,F)){if(s.te=l(e,1),G=s.$tok(),H=s.$extend_string_slice_end(H),j=s.$literal(),f(j["$heredoc?"]())&&i(Y=j.$nest_and_try_closing(G,s.ts,s.te,H))){c(Y["$[]"](0),"tLABEL_END")?(e=l(e,1),s.$pop_literal(),s.root_lexer_state=s.lexer.$class().$lex_en_expr_labelarg()):i(V=s.$pop_literal())&&(s.cs=V),e=l(e,1),P=!0,C=a;break}s.$extend_string_for_token_range(j,G)}else{if(d(64,F)){s.te=l(e,1),j=s.$literal(),s.$extend_interp_code(j),s.root_lexer_state=s.lexer.$class().$lex_en_expr_value(),e=l(e,1),P=!0,C=a;break}if(d(65,F)){if(s.te=l(e,1),j=s.$literal(),s.$extend_string_eol_check_eof(j,r),i(j["$heredoc?"]())){if(B=s.$extend_string_eol_heredoc_line(),i(j.$nest_and_try_closing(B,s.herebody_s,s.ts))){s.herebody_s=s.te,e=p(j.$heredoc_e(),1),s.cs=s.$pop_literal(),e=l(e,1),P=!0,C=a;break}j.$infer_indent_level(B),s.herebody_s=s.te}else{if(i(j.$nest_and_try_closing(s.$tok(),s.ts,s.te))){s.cs=s.$pop_literal(),e=l(e,1),P=!0,C=a;break}e=s.$extend_string_eol_heredoc_intertwined(e)}s.$extend_string_eol_words(j,e)}else if(d(66,F)){if(s.te=l(e,1),G=s.$tok(),H=s.$extend_string_slice_end(H),j=s.$literal(),f(j["$heredoc?"]())&&i(Y=j.$nest_and_try_closing(G,s.ts,s.te,H))){c(Y["$[]"](0),"tLABEL_END")?(e=l(e,1),s.$pop_literal(),s.root_lexer_state=s.lexer.$class().$lex_en_expr_labelarg()):i(V=s.$pop_literal())&&(s.cs=V),e=l(e,1),P=!0,C=a;break}s.$extend_string_for_token_range(j,G)}else if(d(67,F))s.te=e,e=p(e,1),s.$extend_interp_digit_var();else if(d(68,F))s.te=e,e=p(e,1),j=s.$literal(),s.$extend_interp_var(j),s.$emit_interp_var(D);else if(d(69,F))s.te=e,e=p(e,1),s.$literal().$extend_space(s.ts,s.te);else if(d(70,F)){if(s.te=e,e=p(e,1),G=s.$tok(),H=s.$extend_string_slice_end(H),j=s.$literal(),f(j["$heredoc?"]())&&i(Y=j.$nest_and_try_closing(G,s.ts,s.te,H))){c(Y["$[]"](0),"tLABEL_END")?(e=l(e,1),s.$pop_literal(),s.root_lexer_state=s.lexer.$class().$lex_en_expr_labelarg()):i(V=s.$pop_literal())&&(s.cs=V),e=l(e,1),P=!0,C=a;break}s.$extend_string_for_token_range(j,G)}else if(d(71,F)){if(e=p(s.te,1),G=s.$tok(),H=s.$extend_string_slice_end(H),j=s.$literal(),f(j["$heredoc?"]())&&i(Y=j.$nest_and_try_closing(G,s.ts,s.te,H))){c(Y["$[]"](0),"tLABEL_END")?(e=l(e,1),s.$pop_literal(),s.root_lexer_state=s.lexer.$class().$lex_en_expr_labelarg()):i(V=s.$pop_literal())&&(s.cs=V),e=l(e,1),P=!0,C=a;break}s.$extend_string_for_token_range(j,G)}else if(d(72,F)){if(s.te=l(e,1),j=s.$literal(),s.$extend_string_eol_check_eof(j,r),i(j["$heredoc?"]())){if(B=s.$extend_string_eol_heredoc_line(),i(j.$nest_and_try_closing(B,s.herebody_s,s.ts))){s.herebody_s=s.te,e=p(j.$heredoc_e(),1),s.cs=s.$pop_literal(),e=l(e,1),P=!0,C=a;break}j.$infer_indent_level(B),s.herebody_s=s.te}else{if(i(j.$nest_and_try_closing(s.$tok(),s.ts,s.te))){s.cs=s.$pop_literal(),e=l(e,1),P=!0,C=a;break}e=s.$extend_string_eol_heredoc_intertwined(e)}s.$extend_string_eol_words(j,e)}else if(d(73,F)){if(s.te=l(e,1),G=s.$tok(),H=s.$extend_string_slice_end(H),j=s.$literal(),f(j["$heredoc?"]())&&i(Y=j.$nest_and_try_closing(G,s.ts,s.te,H))){c(Y["$[]"](0),"tLABEL_END")?(e=l(e,1),s.$pop_literal(),s.root_lexer_state=s.lexer.$class().$lex_en_expr_labelarg()):i(V=s.$pop_literal())&&(s.cs=V),e=l(e,1),P=!0,C=a;break}s.$extend_string_for_token_range(j,G)}else if(d(74,F))s.te=e,e=p(e,1),s.$literal().$extend_space(s.ts,s.te);else{if(d(75,F)){s.te=l(e,1),s.$emit("tREGEXP_OPT",s.$tok(s.ts,p(s.te,1)),s.ts,p(s.te,1)),e=p(e,1),s.root_lexer_state=s.lexer.$class().$lex_en_expr_end(),e=l(e,1),P=!0,C=a;break}if(d(76,F)){s.te=e,e=p(e,1),X=s.$tok().$scan(h(/[^imxouesn]/u,null,"")),i(X["$any?"]())&&s.$diagnostic("error","regexp_options",new Map([["options",X.$join()]])),s.$emit("tREGEXP_OPT"),s.root_lexer_state=s.lexer.$class().$lex_en_expr_end(),e=l(e,1),P=!0,C=a;break}if(d(77,F)){s.te=l(e,1),K=O("ESCAPE_WHITESPACE")["$[]"](s.$source_buffer().$slice(l(s.ts,1),1)),s.$diagnostic("warning","invalid_escape_use",new Map([["escape",K]]),s.$range()),e=p(s.ts,1),s.root_lexer_state=s.lexer.$class().$lex_en_expr_end(),e=l(e,1),P=!0,C=a;break}if(d(78,F)){s.te=e,e=p(e,1),s.$emit_character_constant(),s.root_lexer_state=s.lexer.$class().$lex_en_expr_end(),e=l(e,1),P=!0,C=a;break}if(d(79,F)){s.te=e,e=p(e,1),e=p(s.ts,1),s.root_lexer_state=s.lexer.$class().$lex_en_expr_end(),e=l(e,1),P=!0,C=a;break}if(d(80,F)){e=p(s.te,1),s.$emit_character_constant(),s.root_lexer_state=s.lexer.$class().$lex_en_expr_end(),e=l(e,1),P=!0,C=a;break}d(81,F)&&(s.te=l(e,1),s.$raise("bug"))}}}}}if(i(P))continue}if(i(u(C,20))){for(R=k["$[]"](s.cs),I=S["$[]"](R),R=l(R,1);i(_(I,0));)if(I=p(I,1),R=l(R,1),23===S["$[]"](p(R,1)).valueOf())s.ts=U;if(i(P))continue;if(c(s.cs,0)){C=a;continue}if(e=l(e,1),m(e,r)){C=10;continue}}if(i(u(C,30))&&c(e,n)&&i(_(q["$[]"](s.cs),0)))T=p(q["$[]"](s.cs),1),C=15;else if(i(u(C,a)))break}return i(!1),[e,s.root_lexer_state]})),o(q,"$read_character_constant",(function(e){var t=this;return t.cs=t.$class().$lex_en_character(),t.$advance(e)})),o(q,"$push_literal",(function(e){var t,r,n=this;return t=g(arguments),r=a(E(E(O("Parser"),"Lexer"),"Literal"),"new",[n].concat(s(t))),n.literal_stack.$push(r),n.cs=n.$next_state_for_literal(r)}),-1),o(q,"$next_state_for_literal",(function(e){var t=this;return i(e["$words?"]())&&i(e["$backslash_delimited?"]())?i(e["$interpolate?"]())?t.$class().$lex_en_interp_backslash_delimited_words():t.$class().$lex_en_plain_backslash_delimited_words():i(e["$words?"]())&&f(e["$backslash_delimited?"]())?i(e["$interpolate?"]())?t.$class().$lex_en_interp_words():t.$class().$lex_en_plain_words():f(e["$words?"]())&&i(e["$backslash_delimited?"]())?i(e["$interpolate?"]())?t.$class().$lex_en_interp_backslash_delimited():t.$class().$lex_en_plain_backslash_delimited():i(e["$interpolate?"]())?t.$class().$lex_en_interp_string():t.$class().$lex_en_plain_string()})),o(q,"$continue_lexing",(function(e){return this.cs=this.$next_state_for_literal(e)})),o(q,"$literal",(function(){return this.literal_stack.$last()})),o(q,"$pop_literal",(function(){var e=this,t=U;return t=e.literal_stack.$pop(),e.dedent_level=t.$dedent_level(),c(t.$type(),"tREGEXP_BEG")?(e.root_lexer_state=e.lexer.$class().$lex_en_inside_string(),e.$class().$lex_en_regexp_modifiers()):(e.root_lexer_state=e.lexer.$class().$lex_en_expr_end(),U)})),o(q,"$close_interp_on_current_literal",(function(e){var t=this,r=U;return r=t.$literal(),i(r)&&i(r.$end_interp_brace_and_try_closing())?(i(t["$version?"](18,19))?(t.$emit("tRCURLY","}".$freeze(),p(e,1),e),t.lexer.$cond().$lexpop(),t.lexer.$cmdarg().$lexpop()):t.$emit("tSTRING_DEND","}".$freeze(),p(e,1),e),i(r.$saved_herebody_s())&&(t.herebody_s=r.$saved_herebody_s()),t.$continue_lexing(r),!0):U})),o(q,"$dedent_level",(function(){var e,t;return t=(e=[this.dedent_level,U])[0],this.dedent_level=e[1],t})),o(q,"$on_newline",(function(e){var t=this;return i(t.herebody_s)&&(e=t.herebody_s,t.herebody_s=U),e})),q.$protected(),o(q,"$eof_codepoint?",(function(e){return[4,26,0]["$include?"](e)})),o(q,"$version?",(function(e){return g(arguments)["$include?"](this.version)}),-1),o(q,"$tok",(function(e,t){var r=this;return null==e&&(e=r.ts),null==t&&(t=r.te),r.source_buffer.$slice(e,p(t,e))}),-1),o(q,"$range",(function(e,t){var r=this;return null==e&&(e=r.ts),null==t&&(t=r.te),E(E(O("Parser"),"Source"),"Range").$new(r.source_buffer,e,t)}),-1),o(q,"$emit",(function(e,t,r,n){var a=this;return null==t&&(t=a.$tok()),null==r&&(r=a.ts),null==n&&(n=a.te),a.lexer.$send("emit",e,t,r,n)}),-2),o(q,"$diagnostic",(function(e,t,r,n,a){return null==r&&(r=U),null==n&&(n=this.$range()),null==a&&(a=[]),this.lexer.$send("diagnostic",e,t,r,n,a)}),-3),o(q,"$cond",(function(){return this.lexer.$cond()})),o(q,"$emit_invalid_escapes?",(function(){var e=this;return!!i(b(e.version,32))||(!!i(e.$literal()["$nil?"]())||e.$literal()["$regexp?"]()["$!"]())})),o(q,"$extend_string_escaped",(function(){var e,t=this,r=U,n=U;return r=t.$literal(),e=t.$source_buffer().$slice(t.escape_s,1).$chr(),i(r["$munge_escape?"](e))?i(r["$regexp?"]())&&i(O("REGEXP_META_CHARACTERS").$match(e))?r.$extend_string(t.$tok(),t.ts,t.te):r.$extend_string(e,t.ts,t.te):i(r["$squiggly_heredoc?"]())&&c(e,"\n".$freeze())?r.$extend_string(t.$tok(),t.ts,t.te):i(r["$supports_line_continuation_via_slash?"]())&&c(e,"\n".$freeze())?r.$extend_string(t.$tok().$gsub("\\\n".$freeze(),"".$freeze()),t.ts,t.te):i(r["$regexp?"]())&&i(v(t.version,31))&&i(["c","C","m","M"]["$include?"](e))?r.$extend_string(t.escape,t.ts,t.te):i(r["$regexp?"]())?r.$extend_string(t.$tok().$gsub("\\\n".$freeze(),"".$freeze()),t.ts,t.te):r.$extend_string(i(n=t.escape)?n:t.$tok(),t.ts,t.te)})),o(q,"$extend_interp_code",(function(e){var t,r=this;return e.$flush_string(),e.$extend_content(),r.$emit("tSTRING_DBEG","#{".$freeze()),i(e["$heredoc?"]())&&(e["$saved_herebody_s="](r.herebody_s),r.herebody_s=U),e.$start_interp_brace(),t=[!0],a(r.lexer,"command_start=",t),t[t.length-1]})),o(q,"$extend_interp_digit_var",(function(){var e=this,t=U;return i(v(e.version,27))?e.$literal().$extend_string(e.$tok(),e.ts,e.te):(t=i(e.$tok()["$start_with?"]("#@@"))?"cvar_name":"ivar_name",e.$diagnostic("error",t,new Map([["name",e.$tok(l(e.ts,1),e.te)]]),e.$range(l(e.ts,1),e.te)))})),o(q,"$extend_string_eol_check_eof",(function(e,t){var r=this;return c(r.te,t)?r.$diagnostic("fatal","string_eof",U,r.$range(e.$str_s(),l(e.$str_s(),1))):U})),o(q,"$extend_string_eol_heredoc_line",(function(){var e=this,t=U;return t=e.$tok(e.herebody_s,e.ts).$gsub(h(/\r+$/m,null,""),"".$freeze()),i(e["$version?"](18,19,20))&&(t=t.$gsub(h(/\r.*$/mu,null,""),"".$freeze())),t})),o(q,"$extend_string_eol_heredoc_intertwined",(function(e){var t=this;return i(t.herebody_s)&&(e=p(t.herebody_s,1),t.herebody_s=U),e})),o(q,"$extend_string_eol_words",(function(e,t){var r=this;return i(e["$words?"]())&&f(r["$eof_codepoint?"](r.$source_pts()["$[]"](t)))?e.$extend_space(r.ts,r.te):(e.$extend_string(r.$tok(),r.ts,r.te),e.$flush_string())})),o(q,"$extend_string_slice_end",(function(e){var t=this;return i(v(t.version,22))&&f(t.$cond()["$active?"]())&&(e=t.$source_buffer().$slice(t.te,2)),e})),o(q,"$extend_string_for_token_range",(function(e,t){return e.$extend_string(t,this.ts,this.te)})),o(q,"$encode_escape",(function(e){return e.$chr().$force_encoding(this.$source_buffer().$source().$encoding())})),o(q,"$unescape_char",(function(e){var t,r=this;return t=r.$source_pts()["$[]"](p(e,1)),i(v(r.version,30))&&(c(t,117)||c(t,85))&&r.$diagnostic("fatal","invalid_escape"),i((r.escape=O("ESCAPES")["$[]"](t))["$nil?"]())?r.escape=r.$encode_escape(r.$source_buffer().$slice(p(e,1),1)):U})),o(q,"$unicode_points",(function(e){var t=this,r=U,n=U,s=U;return t.escape="",r=t.$tok(l(t.escape_s,2),p(e,1)),n=l(t.escape_s,2),i(b(t.version,24))&&((i(r["$start_with?"](" "))||i(r["$start_with?"]("\t")))&&t.$diagnostic("fatal","invalid_unicode_escape",U,t.$range(l(t.escape_s,2),l(t.escape_s,3))),i(s=r.$index(h(/[ \t]{2}/u,null,"")))&&t.$diagnostic("fatal","invalid_unicode_escape",U,t.$range(l(l(n,s),1),l(l(n,s),2))),(i(r["$end_with?"](" "))||i(r["$end_with?"]("\t")))&&t.$diagnostic("fatal","invalid_unicode_escape",U,t.$range(p(e,1),e))),function(){try{var e=y("break");return a(r.$scan(h(/([0-9a-fA-F]+)|([ \t]+)/u,null,"")),"each",[],(function t(r){var a,s=null==t.$$s?this:t.$$s,o=U,u=U,c=U;return null==s.escape&&(s.escape=U),null==r&&(r=U),o=null==(a=$(r))[0]?U:a[0],u=null==a[1]?U:a[1],i(u)?n=l(n,u.$length()):(c=o.$to_i(16),i(v(c,1114112))&&(s.$diagnostic("error","unicode_point_too_large",U,s.$range(n,l(n,o.$length()))),e.$throw(U,t.$$is_lambda)),s.escape=l(s.escape,c.$chr(E(O("Encoding"),"UTF_8"))),n=l(n,o.$length()))}),{$$s:t,$$has_top_level_mlhs_arg:!0})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}()})),o(q,"$read_post_meta_or_ctrl_char",(function(e){var t=this;return t.escape=t.$source_buffer().$slice(p(e,1),1).$chr(),i(v(t.version,27))&&(i(x(0,8,!1)["$include?"](t.escape.$ord()))||i(x(14,31,!1)["$include?"](t.escape.$ord())))?t.$diagnostic("fatal","invalid_escape"):U})),o(q,"$extend_interp_var",(function(e){var t=this;return e.$flush_string(),e.$extend_content(),t.$emit("tSTRING_DVAR",U,t.ts,l(t.ts,1)),t.ts})),o(q,"$emit_interp_var",(function(e){var t=this;switch(e.valueOf()){case"cvar":return t.lexer.$send("emit_class_var",l(t.ts,1),t.te);case"ivar":return t.lexer.$send("emit_instance_var",l(t.ts,1),t.te);case"gvar":return t.lexer.$send("emit_global_var",l(t.ts,1),t.te);default:return U}})),o(q,"$encode_escaped_char",(function(e){var t=this;return t.escape=t.$encode_escape(t.$tok(p(e,2),e).$to_i(16))})),o(q,"$slash_c_char",(function(){var e=this;return e.escape=e.$encode_escape(e.escape["$[]"](0).$ord()["$&"](159))})),o(q,"$slash_m_char",(function(){var e=this;return e.escape=e.$encode_escape(e.escape["$[]"](0).$ord()["$|"](128))})),o(q,"$emit_character_constant",(function(){var e,t=this,r=U;return r=i(e=t.escape)?e:t.$tok(l(t.ts,1)),i(t["$version?"](18))?t.$emit("tINTEGER",r.$getbyte(0)):t.$emit("tCHARACTER",r)})),o(q,"$check_ambiguous_slash",(function(e){var t=this;return c(t.$tok(e,l(e,1)),"/".$freeze())?i(b(t.version,30))?t.$diagnostic("warning","ambiguous_literal",U,t.$range(e,l(e,1))):t.$diagnostic("warning","ambiguous_regexp",U,t.$range(e,l(e,1))):U})),o(q,"$check_invalid_escapes",(function(e){var t=this;return i(t["$emit_invalid_escapes?"]())?t.$diagnostic("fatal","invalid_unicode_escape",U,t.$range(p(t.escape_s,1),e)):U})),r(S[0],"ESCAPE_WHITESPACE",new Map([[" ","\\s"],["\r","\\r"],["\n","\\n"],["\t","\\t"],["\v","\\v"],["\f","\\f"]]))}(k("Parser"),0,w)},Opal.modules["parser/lexer/literal"]=function(e){var t=e.module,r=e.klass,n=e.const_set,a=e.enc,s=e.truthy,i=e.rb_plus,o=e.to_ary,l=e.def,$=e.return_ivar,u=e.annotate_regexp,c=e.eqeq,_=e.rb_minus,p=e.neqeq,m=e.not,d=e.send,f=e.eqeqeq,h=e.rb_gt,g=e.thrower,b=e.assign_ivar_val,v=e.regexp,y=[],x=e.nil;return e.add_stubs("ord,attr_reader,attr_accessor,coerce_encoding,include?,send,+,[],fetch,==,!,heredoc?,start_with?,freeze,clear_buffer,emit_start_tok,type,=~,words?,delimiter?,-,extend_space,!=,flush_string,emit,each_char,===,%,>,nil?,<<,empty?,extend_content,protected,end_with?,all?,bytes,sub,escape,lstrip,b,dup,force_encoding,encoding,source,source_buffer,length"),function(y,w){var k=[t(y,"Parser")].concat(w);return function(t,y,w){var k=r(t,null,"Literal"),U=[k].concat(w),E=e.$r(U),M=k.$$prototype;return M.lexer=M.start_tok=M.str_type=M.monolithic=M.heredoc_e=M.dedent_body=M.end_delim=M.start_delim=M.nesting=M.label_allowed=M.buffer=M.str_s=M.interp_braces=M.buffer_s=M.buffer_e=M.space_emitted=M.interpolate=M.indent=x,n(U[0],"DELIMITERS",new Map([["(",a(")","ASCII-8BIT")],["[",a("]","ASCII-8BIT")],["{",a("}","ASCII-8BIT")],["<",a(">","ASCII-8BIT")]])),n(U[0],"SPACE",a(" ","ASCII-8BIT").$ord()),n(U[0],"TAB",a("\t","ASCII-8BIT").$ord()),n(U[0],"TYPES",new Map([["'",["tSTRING_BEG",!1]],["<<'",["tSTRING_BEG",!1]],["%q",["tSTRING_BEG",!1]],['"',["tSTRING_BEG",!0]],['<<"',["tSTRING_BEG",!0]],["%",["tSTRING_BEG",!0]],["%Q",["tSTRING_BEG",!0]],["%w",["tQWORDS_BEG",!1]],["%W",["tWORDS_BEG",!0]],["%i",["tQSYMBOLS_BEG",!1]],["%I",["tSYMBOLS_BEG",!0]],[":'",["tSYMBEG",!1]],["%s",["tSYMBEG",!1]],[':"',["tSYMBEG",!0]],["/",["tREGEXP_BEG",!0]],["%r",["tREGEXP_BEG",!0]],["%x",["tXSTRING_BEG",!0]],["`",["tXSTRING_BEG",!0]],["<<`",["tXSTRING_BEG",!0]]])),k.$attr_reader("heredoc_e","str_s","dedent_level"),k.$attr_accessor("saved_herebody_s"),l(k,"$initialize",(function(e,t,r,n,l,$,u,c){var _,p,m,d,f=this;return null==l&&(l=x),null==$&&($=!1),null==u&&(u=!1),null==c&&(c=!1),f.lexer=e,f.nesting=1,t=f.$coerce_encoding(t),r=f.$coerce_encoding(r),s(E("TYPES")["$include?"](t))||e.$send("diagnostic","error","unexpected_percent_str",new Map([["type",t]]),f.lexer.$send("range",n,i(n,2))),f.str_type=t,f.str_s=n,p=E("TYPES")["$[]"](t),_=o(p),f.start_tok=null==_[0]?x:_[0],f.interpolate=null==_[1]?x:_[1],f.start_delim=s(E("DELIMITERS")["$include?"](r))?r:x,f.end_delim=E("DELIMITERS").$fetch(r,r),f.heredoc_e=l,f.indent=$,f.label_allowed=c,f.dedent_body=u,f.dedent_level=x,f.interp_braces=0,f.space_emitted=!0,f.monolithic=s(m=s(d=f.start_tok["$=="]("tSTRING_BEG"))?[a("'","ASCII-8BIT"),a('"',"ASCII-8BIT")]["$include?"](t):d)?f["$heredoc?"]()["$!"]():m,s(f.str_type["$start_with?"](a("%","ASCII-8BIT").$freeze()))&&(f.str_type=i(f.str_type,r)),f.$clear_buffer(),s(f.monolithic)?x:f.$emit_start_tok()}),-5),l(k,"$interpolate?",$("interpolate")),l(k,"$words?",(function(){var e,t,r,n=this;return s(e=s(t=s(r=n.$type()["$=="]("tWORDS_BEG"))?r:n.$type()["$=="]("tQWORDS_BEG"))?t:n.$type()["$=="]("tSYMBOLS_BEG"))?e:n.$type()["$=="]("tQSYMBOLS_BEG")})),l(k,"$regexp?",(function(){return this.$type()["$=="]("tREGEXP_BEG")})),l(k,"$heredoc?",(function(){return this.heredoc_e["$!"]()["$!"]()})),l(k,"$plain_heredoc?",(function(){var e;return s(e=this["$heredoc?"]())?this.dedent_body["$!"]():e})),l(k,"$squiggly_heredoc?",(function(){var e;return s(e=this["$heredoc?"]())?this.dedent_body:e})),l(k,"$backslash_delimited?",(function(){return this.end_delim["$=="](a("\\","ASCII-8BIT").$freeze())})),l(k,"$type",$("start_tok")),l(k,"$munge_escape?",(function(e){var t=this;return e=t.$coerce_encoding(e),!(!s(t["$words?"]())||!s(e["$=~"](u(/[ \t\v\r\f\n]/u,null,""))))||[a("\\","ASCII-8BIT").$freeze(),t.start_delim,t.end_delim]["$include?"](e)})),l(k,"$nest_and_try_closing",(function(e,t,r,n){var o=this;return null==n&&(n=x),e=o.$coerce_encoding(e),s(o.start_delim)&&c(o.start_delim,e)?o.nesting=i(o.nesting,1):s(o["$delimiter?"](e))&&(o.nesting=_(o.nesting,1)),c(o.nesting,0)?(s(o["$words?"]())&&o.$extend_space(t,t),s(n)&&s(o.label_allowed)&&c(n["$[]"](0),a(":","ASCII-8BIT"))&&p(n["$[]"](1),a(":","ASCII-8BIT"))&&c(o.start_tok,"tSTRING_BEG")?(o.$flush_string(),o.$emit("tLABEL_END",o.end_delim,t,i(r,1))):s(o.monolithic)?o.$emit("tSTRING",o.buffer,o.str_s,r):(s(o["$heredoc?"]())||o.$flush_string(),o.$emit("tSTRING_END",o.end_delim,t,r))):x}),-4),l(k,"$infer_indent_level",(function(e){var t=this,r=x;return m(t.dedent_body)?x:(r=0,function(){try{var n=g("break");return d(e,"each_char",[],(function e(t){var a,o=null==e.$$s?this:e.$$s;return null==o.dedent_level&&(o.dedent_level=x),null==t&&(t=x),f(" ",a=t)?r=i(r,1):f("\t",a)?r=i(r,_(8,r["$%"](8))):((s(o.dedent_level["$nil?"]())||s(h(o.dedent_level,r)))&&(o.dedent_level=r),void n.$throw(x,e.$$is_lambda))}),{$$s:t})}catch(e){if(e===n)return e.$v;throw e}finally{n.is_orphan=!0}}())})),l(k,"$start_interp_brace",(function(){return this.interp_braces=i(this.interp_braces,1)})),l(k,"$end_interp_brace_and_try_closing",(function(){var e=this;return e.interp_braces=_(e.interp_braces,1),e.interp_braces["$=="](0)})),l(k,"$extend_string",(function(e,t,r){var n,a=this;return a.buffer_s=s(n=a.buffer_s)?n:t,a.buffer_e=r,a.buffer["$<<"](e)})),l(k,"$flush_string",(function(){var e=this;return s(e.monolithic)&&(e.$emit_start_tok(),e.monolithic=!1),s(e.buffer["$empty?"]())?x:(e.$emit("tSTRING_CONTENT",e.buffer,e.buffer_s,e.buffer_e),e.$clear_buffer(),e.$extend_content())})),l(k,"$extend_content",b("space_emitted",!1)),l(k,"$extend_space",(function(e,t){var r=this;return r.$flush_string(),s(r.space_emitted)?x:(r.$emit("tSPACE",x,e,t),r.space_emitted=!0)})),l(k,"$supports_line_continuation_via_slash?",(function(){var e;return s(e=this["$words?"]()["$!"]())?this.interpolate:e})),k.$protected(),l(k,"$delimiter?",(function(e){var t=this,r=x;return s(t["$heredoc?"]())?s(r=e["$end_with?"](t.end_delim))?d(e.$sub(v([E("Regexp").$escape(t.end_delim),a("\\z","ASCII-8BIT")]),a("","ASCII-8BIT")).$bytes(),"all?",[],(function(e){var t;return null==e&&(e=x),s(t=e["$=="](E("SPACE")))?t:e["$=="](E("TAB"))})):r:s(t.indent)?t.end_delim["$=="](e.$lstrip()):t.end_delim["$=="](e)})),l(k,"$coerce_encoding",(function(e){return e.$b()})),l(k,"$clear_buffer",(function(){var e=this;return e.buffer=a("","ASCII-8BIT").$dup(),e.buffer.$force_encoding(e.lexer.$source_buffer().$source().$encoding()),e.buffer_s=x,e.buffer_e=x})),l(k,"$emit_start_tok",(function(){var e,t,r=this;return e=s(t=r.heredoc_e)?t:i(r.str_s,r.str_type.$length()),r.$emit(r.start_tok,r.str_type,r.str_s,e)})),l(k,"$emit",(function(e,t,r,n){return this.lexer.$send("emit",e,t,r,n)}))}(e.$r(k)("Lexer"),0,k)}(y[0],y)},Opal.modules["parser/lexer/stack_state"]=function(e){var t=e.module,r=e.klass,n=e.def,a=e.assign_ivar_val,s=e.truthy,i=e.alias,o=[],l=e.nil;return e.add_stubs("freeze,clear,|,<<,&,>>,==,[],to_s"),function(o,$){var u=[t(o,"Parser")].concat($);return function(e,t){var o=r(e,null,"StackState"),$=o.$$prototype;return $.stack=$.name=l,n(o,"$initialize",(function(e){return this.name=e.$freeze(),this.$clear()})),n(o,"$clear",a("stack",0)),n(o,"$push",(function(e){var t;return t=s(e)?1:0,this.stack=this.stack["$<<"](1)["$|"](t),e})),n(o,"$pop",(function(){var e=this,t=l;return t=e.stack["$&"](1),e.stack=e.stack["$>>"](1),t["$=="](1)})),n(o,"$lexpop",(function(){var e=this;return e.stack=e.stack["$>>"](1)["$|"](e.stack["$&"](1)),e.stack["$[]"](0)["$=="](1)})),n(o,"$active?",(function(){return this.stack["$[]"](0)["$=="](1)})),n(o,"$empty?",(function(){return this.stack["$=="](0)})),n(o,"$to_s",(function(){return"["+this.stack.$to_s(2)+" <= "+this.name+"]"})),i(o,"inspect","to_s")}(e.$r(u)("Lexer"))}(o[0],o)},Opal.modules["parser/lexer/dedenter"]=function(e){var t=e.module,r=e.klass,n=e.const_set,a=e.def,s=e.eqeq,i=e.send,o=e.truthy,l=e.to_ary,$=e.slice,u=e.rb_le,c=e.eqeqeq,_=e.rb_plus,p=e.rb_minus,m=e.rb_gt,d=e.rb_times,f=e.rb_divide,h=e.thrower,g=e.assign_ivar_val,b=[],v=e.nil,y=e.$$$;return e.add_stubs("encoding,split,force_encoding,==,length,map!,each,each_char,<=,===,+,-,>,*,/,slice!,replace,join,end_with?"),function(b,x){var w=[t(b,"Parser")].concat(x);return function(t,b,x){var w=r(t,null,"Dedenter"),k=[w].concat(x),U=e.$r(k);return w.$$prototype.at_line_begin=v,n(k[0],"TAB_WIDTH",8),a(w,"$initialize",(function(e){var t=this;return t.dedent_level=e,t.at_line_begin=!0,t.indent_level=0})),a(w,"$dedent",(function(e){var t,r,n=this,a=v,g=v;return r=e.$encoding(),a=e.$force_encoding(y(U("Encoding"),"BINARY")).$split("\\\n"),s(a.$length(),1)?a=[e.$force_encoding(r)]:i(a,"map!",[],(function(e){return null==e&&(e=v),e.$force_encoding(r)})),o(n.at_line_begin)?g=a:(null==(t=l(a))[0]?v:t[0],g=$(t,1)),i(g,"each",[],(function e(t){var r=null==e.$$s?this:e.$$s,n=v,a=v;return null==r.dedent_level&&(r.dedent_level=v),null==t&&(t=v),n=r.dedent_level,a=0,function(){try{var e=h("break");return i(t,"each_char",[],(function t(r){var s,i=null==t.$$s?this:t.$$s;return null==i.dedent_level&&(i.dedent_level=v),null==r&&(r=v),o(u(n,0))&&e.$throw(v,t.$$is_lambda),c(" ",s=r)?(a=_(a,1),n=p(n,1)):c("\t",s)?(o(m(d(U("TAB_WIDTH"),_(f(a,U("TAB_WIDTH")),1)),i.dedent_level))&&e.$throw(v,t.$$is_lambda),a=_(a,1),n=p(n,U("TAB_WIDTH"))):void e.$throw(v,t.$$is_lambda)}),{$$s:r})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}(),t["$slice!"](0,a)}),{$$s:n}),e.$replace(a.$join()),n.at_line_begin=e["$end_with?"]("\n")})),a(w,"$interrupt",g("at_line_begin",!1))}(e.$r(w)("Lexer"),0,w)}(b[0],b)},Opal.modules["parser/builders/default"]=function(e){var t=e.module,r=e.klass,n=e.def,a=e.assign_ivar_val,s=e.to_a,i=e.truthy,o=e.eqeq,l=e.not,$=e.send,u=e.neqeq,c=e.to_ary,_=e.annotate_regexp,p=e.rb_ge,m=e.rb_gt,d=e.range,f=e.rb_minus,h=e.slice,g=e.rb_plus,b=e.rb_le,v=e.eqeqeq,y=e.rb_lt,x=e.thrower,w=[],k=e.nil,U=e.$$$;return e.add_stubs("attr_accessor,n0,token_map,numeric,n,value,new,loc,private,+@,-@,updated,join,expression,string_value,delimited_string_map,unquoted_map,collapse_string_parts?,nil?,first,children,string_map,prefix_string_map,to_sym,collection_map,empty?,==,version,diagnostic,!,type,dedent,map,interrupt,compact,uniq,sort,each_char,to_proc,static_regexp,message,<<,regexp_map,unary_op_map,binary_op_map,!=,%,size,last,each_slice,pair_keyword_map,pair_quoted_map,symbol_compose,adjust,=~,pair_keyword,accessible,each,eql?,>=,add?,range_map,variable_map,>,length,start_with?,name,source_buffer,dup,line,emit_encoding,class,any?,end_with?,to_s,try_declare_numparam,declared?,static_env,has_ordinary_params?,max_numparam_stack,in_block,context,var_send_map,top,current_arg_stack,parser,constant_map,in_def,[],check_assignment_to_numparam,check_reserved_for_numparam,declare,with_expression,with_operator,join_exprs,module_definition_map,definition_map,endless_definition_map,validate_definee,keyword_map,check_duplicate_args,validate_no_forward_arg_after_restarg,emit_forward_arg,forward_arg,arg_prefix_map,kwarg_map,emit_procarg0,emit_arg_inside_procarg0,location,resize,-,end,call_type_for_dot,emit_kwargs,rewrite_hash_args_to_kwargs,send_map,emit_lambda,expr_map,keyword,include?,block_map,array,+,emit_index,index_map,send_index_map,send_binary_op_map,static_regexp_node,names,send_unary_op_map,check_condition,condition_map,keyword_mod_map,ternary_map,for_map,count,rescue_body_map,eh_keyword_map,push,none?,one?,begin,guard_map,check_lvar_name,check_duplicate_pattern_variable,match_hash_var_from_str,match_var,check_duplicate_pattern_key,static_string,pair_quoted,match_hash_var,<=,===,check_duplicate_arg,is_a?,[]=,arg_name_collides?,<,in_dynamic_block?,has_numparams?,pattern_variables,pattern_hash_keys,with,begin_pos,end_pos,encode,valid_encoding?,process,diagnostics,send,kwargs?"),function(w,E){var M=[t(w,"Parser")].concat(E);return function(t,w,E){var M=r(t,null,"Default"),q=[M].concat(E),S=e.$r(q),O=M.$$prototype;return O.parser=O.emit_file_line_as_literals=k,function(e,t){e.$attr_accessor("emit_lambda")}(e.get_singleton_class(M)),M.emit_lambda=!1,function(e,t){e.$attr_accessor("emit_procarg0")}(e.get_singleton_class(M)),M.emit_procarg0=!1,function(e,t){e.$attr_accessor("emit_encoding")}(e.get_singleton_class(M)),M.emit_encoding=!1,function(e,t){e.$attr_accessor("emit_index")}(e.get_singleton_class(M)),M.emit_index=!1,function(e,t){e.$attr_accessor("emit_arg_inside_procarg0")}(e.get_singleton_class(M)),M.emit_arg_inside_procarg0=!1,function(e,t){e.$attr_accessor("emit_forward_arg")}(e.get_singleton_class(M)),M.emit_forward_arg=!1,function(e,t){e.$attr_accessor("emit_kwargs")}(e.get_singleton_class(M)),M.emit_kwargs=!1,function(e,t){e.$attr_accessor("emit_match_pattern")}(e.get_singleton_class(M)),M.emit_match_pattern=!1,function(e,t){n(e,"$modernize",(function(){var e=this;return e.emit_lambda=!0,e.emit_procarg0=!0,e.emit_encoding=!0,e.emit_index=!0,e.emit_arg_inside_procarg0=!0,e.emit_forward_arg=!0,e.emit_kwargs=!0,e.emit_match_pattern=!0}))}(e.get_singleton_class(M)),M.$attr_accessor("parser"),M.$attr_accessor("emit_file_line_as_literals"),n(M,"$initialize",a("emit_file_line_as_literals",!0)),n(M,"$nil",(function(e){return this.$n0("nil",this.$token_map(e))})),n(M,"$true",(function(e){return this.$n0("true",this.$token_map(e))})),n(M,"$false",(function(e){return this.$n0("false",this.$token_map(e))})),n(M,"$integer",(function(e){return this.$numeric("int",e)})),n(M,"$float",(function(e){return this.$numeric("float",e)})),n(M,"$rational",(function(e){return this.$numeric("rational",e)})),n(M,"$complex",(function(e){return this.$numeric("complex",e)})),n(M,"$numeric",(function(e,t){var r=this;return r.$n(e,[r.$value(t)],U(U(S("Source"),"Map"),"Operator").$new(k,r.$loc(t)))})),M.$private("numeric"),n(M,"$unary_num",(function(e,t){var r,n=k,a=k;switch(n=null==(r=[].concat(s(t)))[0]?k:r[0],a=this.$loc(e),this.$value(e).valueOf()){case"+":n=n["$+@"]();break;case"-":n=n["$-@"]()}return t.$updated(k,[n],new Map([["location",U(U(S("Source"),"Map"),"Operator").$new(a,a.$join(t.$loc().$expression()))]]))})),n(M,"$__LINE__",(function(e){return this.$n0("__LINE__",this.$token_map(e))})),n(M,"$string",(function(e){var t=this;return t.$n("str",[t.$string_value(e)],t.$delimited_string_map(e))})),n(M,"$string_internal",(function(e){var t=this;return t.$n("str",[t.$string_value(e)],t.$unquoted_map(e))})),n(M,"$string_compose",(function(e,t,r){var n=this;return i(n["$collapse_string_parts?"](t))?i(e["$nil?"]())&&i(r["$nil?"]())?t.$first():n.$n("str",t.$first().$children(),n.$string_map(e,t,r)):n.$n("dstr",[].concat(s(t)),n.$string_map(e,t,r))})),n(M,"$character",(function(e){var t=this;return t.$n("str",[t.$string_value(e)],t.$prefix_string_map(e))})),n(M,"$__FILE__",(function(e){return this.$n0("__FILE__",this.$token_map(e))})),n(M,"$symbol",(function(e){var t=this;return t.$n("sym",[t.$string_value(e).$to_sym()],t.$prefix_string_map(e))})),n(M,"$symbol_internal",(function(e){var t=this;return t.$n("sym",[t.$string_value(e).$to_sym()],t.$unquoted_map(e))})),n(M,"$symbol_compose",(function(e,t,r){var n=this,a=k;return i(n["$collapse_string_parts?"](t))?(a=t.$first(),n.$n("sym",[a.$children().$first().$to_sym()],n.$collection_map(e,a.$loc().$expression(),r))):o(n.parser.$version(),18)&&i(t["$empty?"]())?n.$diagnostic("error","empty_symbol",k,n.$loc(e).$join(n.$loc(r))):n.$n("dsym",[].concat(s(t)),n.$collection_map(e,t,r))})),n(M,"$xstring_compose",(function(e,t,r){return this.$n("xstr",[].concat(s(t)),this.$string_map(e,t,r))})),n(M,"$dedent_string",(function(e,t){var r=k,n=k,a=k;if(l(t["$nil?"]()))switch(r=U(S("Lexer"),"Dedenter").$new(t),e.$type().valueOf()){case"str":n=e.$children().$first(),r.$dedent(n);break;case"dstr":case"xstr":a=$(e.$children(),"map",[],(function(e){if(null==e&&(e=k),o(e.$type(),"str")){if(n=e.$children().$first(),r.$dedent(n),i(n["$empty?"]()))return k}else r.$interrupt();return e})),e=e.$updated(k,a.$compact())}return e})),n(M,"$regexp_options",(function(e){var t,r=this;return t=$(r.$value(e).$each_char().$sort().$uniq(),"map",[],"to_sym".$to_proc()),r.$n("regopt",t,r.$token_map(e))})),n(M,"$regexp_compose",(function(t,r,n,a){var s=this,i=k;try{s.$static_regexp(r,a)}catch(r){if(!e.rescue(r,[S("RegexpError"),U(S("Encoding"),"UndefinedConversionError")]))throw r;i=r;try{s.$diagnostic("error","invalid_regexp",new Map([["message",i.$message()]]),s.$loc(t).$join(s.$loc(n)))}finally{e.pop_exception(r)}}return s.$n("regexp",r["$<<"](a),s.$regexp_map(t,n,a))})),n(M,"$array",(function(e,t,r){return this.$n("array",t,this.$collection_map(e,t,r))})),n(M,"$splat",(function(e,t){var r=this;return null==t&&(t=k),i(t["$nil?"]())?r.$n0("splat",r.$unary_op_map(e)):r.$n("splat",[t],r.$unary_op_map(e,t))}),-2),n(M,"$word",(function(e){var t=this;return i(t["$collapse_string_parts?"](e))?e.$first():t.$n("dstr",[].concat(s(e)),t.$collection_map(k,e,k))})),n(M,"$words_compose",(function(e,t,r){return this.$n("array",[].concat(s(t)),this.$collection_map(e,t,r))})),n(M,"$symbols_compose",(function(e,t,r){return t=$(t,"map",[],(function(e){var t,r=k;switch(null==e&&(e=k),e.$type().valueOf()){case"str":return r=null==(t=[].concat(s(e)))[0]?k:t[0],e.$updated("sym",[r.$to_sym()]);case"dstr":return e.$updated("dsym");default:return e}})),this.$n("array",[].concat(s(t)),this.$collection_map(e,t,r))})),n(M,"$pair",(function(e,t,r){return this.$n("pair",[e,r],this.$binary_op_map(e,t,r))})),n(M,"$pair_list_18",(function(e){return u(e.$size()["$%"](2),0)?this.$diagnostic("error","odd_hash",k,e.$last().$loc().$expression()):$(e.$each_slice(2),"map",[],(function e(t,r){var n=null==e.$$s?this:e.$$s;return null==t&&(t=k),null==r&&(r=k),n.$n("pair",[t,r],n.$binary_op_map(t,k,r))}),{$$s:this})})),n(M,"$pair_keyword",(function(e,t){var r,n,a,s,i,o=this;return n=o.$pair_keyword_map(e,t),a=null==(r=c(n))[0]?k:r[0],s=null==r[1]?k:r[1],i=o.$n("sym",[o.$value(e).$to_sym()],a),o.$n("pair",[i,t],s)})),n(M,"$pair_quoted",(function(e,t,r,n){var a,s,i,o,l=this;return s=l.$pair_quoted_map(e,r,n),r=null==(a=c(s))[0]?k:a[0],i=null==a[1]?k:a[1],o=l.$symbol_compose(e,t,r),l.$n("pair",[o,n],i)})),n(M,"$pair_label",(function(e){var t,r,n=this,a=k;return t=n.$loc(e).$adjust(new Map([["end_pos",-1]])),a=n.$value(e),r=i(a["$=~"](_(/^[\p{Lowercase_Letter}]/u,"\\A[[:lower:]]","")))?n.$n("ident",[a.$to_sym()],U(U(S("Source"),"Map"),"Variable").$new(t)):n.$n("const",[k,a.$to_sym()],U(U(S("Source"),"Map"),"Constant").$new(k,t,t)),n.$pair_keyword(e,n.$accessible(r))})),n(M,"$kwsplat",(function(e,t){return this.$n("kwsplat",[t],this.$unary_op_map(e,t))})),n(M,"$associate",(function(e,t,r){var n=this,a=k;return a=S("Set").$new(),$(t,"each",[],(function e(t){var r,n=null==e.$$s?this:e.$$s,o=k;if(null==n.parser&&(n.parser=k),null==t&&(t=k),!i(t.$type()["$eql?"]("pair")))return k;switch((o=null==(r=[].concat(s(t)))[0]?k:r[0]).$type().valueOf()){case"sym":case"str":case"int":case"float":break;case"rational":case"complex":case"regexp":if(!i(p(n.parser.$version(),31)))return k;break;default:return k}return i(a["$add?"](o))?k:n.$diagnostic("warning","duplicate_hash_key",k,o.$loc().$expression())}),{$$s:n}),n.$n("hash",[].concat(s(t)),n.$collection_map(e,t,r))})),n(M,"$range_inclusive",(function(e,t,r){return this.$n("irange",[e,r],this.$range_map(e,t,r))})),n(M,"$range_exclusive",(function(e,t,r){return this.$n("erange",[e,r],this.$range_map(e,t,r))})),n(M,"$self",(function(e){return this.$n0("self",this.$token_map(e))})),n(M,"$ident",(function(e){var t=this;return t.$n("ident",[t.$value(e).$to_sym()],t.$variable_map(e))})),n(M,"$ivar",(function(e){var t=this;return t.$n("ivar",[t.$value(e).$to_sym()],t.$variable_map(e))})),n(M,"$gvar",(function(e){var t=this,r=k;return r=t.$value(e),i(r["$start_with?"]("$0"))&&i(m(r.$length(),2))&&t.$diagnostic("error","gvar_name",new Map([["name",r]]),t.$loc(e)),t.$n("gvar",[r.$to_sym()],t.$variable_map(e))})),n(M,"$cvar",(function(e){var t=this;return t.$n("cvar",[t.$value(e).$to_sym()],t.$variable_map(e))})),n(M,"$back_ref",(function(e){var t=this;return t.$n("back_ref",[t.$value(e).$to_sym()],t.$token_map(e))})),n(M,"$nth_ref",(function(e){var t=this;return t.$n("nth_ref",[t.$value(e)],t.$token_map(e))})),n(M,"$accessible",(function(e){var t,r=this,n=k;switch(e.$type().valueOf()){case"__FILE__":return i(r.emit_file_line_as_literals)?r.$n("str",[e.$loc().$expression().$source_buffer().$name()],e.$loc().$dup()):e;case"__LINE__":return i(r.emit_file_line_as_literals)?r.$n("int",[e.$loc().$expression().$line()],e.$loc().$dup()):e;case"__ENCODING__":return l(r.$class().$emit_encoding())?r.$n("const",[r.$n("const",[k,"Encoding"],k),"UTF_8"],e.$loc().$dup()):e;case"ident":return t=[].concat(s(e)),n=null==t[0]?k:t[0],i($(["?","!"],"any?",[],(function(e){return null==e&&(e=k),n.$to_s()["$end_with?"](e)})))&&r.$diagnostic("error","invalid_id_to_get",new Map([["identifier",n.$to_s()]]),e.$loc().$expression()),i(p(r.parser.$version(),27))&&i(r.parser.$try_declare_numparam(e))?e.$updated("lvar"):i(r.parser.$static_env()["$declared?"](n))?(o(n.$to_s(),r.$parser().$current_arg_stack().$top())&&r.$diagnostic("error","circular_argument_reference",new Map([["var_name",n.$to_s()]]),e.$loc().$expression()),e.$updated("lvar")):(o(r.parser.$version(),33)&&o(n,"it")&&i(r.parser.$context().$in_block())&&l(r.parser.$max_numparam_stack()["$has_ordinary_params?"]())&&r.$diagnostic("warning","ambiguous_it_call",k,e.$loc().$expression()),r.$n("send",[k,n],r.$var_send_map(e)));default:return e}})),n(M,"$const",(function(e){var t=this;return t.$n("const",[k,t.$value(e).$to_sym()],t.$constant_map(k,k,e))})),n(M,"$const_global",(function(e,t){var r,n=this;return r=n.$n0("cbase",n.$token_map(e)),n.$n("const",[r,n.$value(t).$to_sym()],n.$constant_map(r,e,t))})),n(M,"$const_fetch",(function(e,t,r){var n=this;return n.$n("const",[e,n.$value(r).$to_sym()],n.$constant_map(e,t,r))})),n(M,"$__ENCODING__",(function(e){return this.$n0("__ENCODING__",this.$token_map(e))})),n(M,"$assignable",(function(e){var t,r=this,n=k,a=k,o=k;switch(e.$type().valueOf()){case"cvar":return e.$updated("cvasgn");case"ivar":return e.$updated("ivasgn");case"gvar":return e.$updated("gvasgn");case"const":return i(r.parser.$context().$in_def())&&r.$diagnostic("error","dynamic_const",k,e.$loc().$expression()),e.$updated("casgn");case"ident":return n=null==(t=[].concat(s(e)))[0]?k:t[0],a=e.$children()["$[]"](0).$to_s(),o=e.$loc().$expression(),r.$check_assignment_to_numparam(a,o),r.$check_reserved_for_numparam(a,o),r.parser.$static_env().$declare(n),e.$updated("lvasgn");case"match_var":return n=null==(t=[].concat(s(e)))[0]?k:t[0],a=e.$children()["$[]"](0).$to_s(),o=e.$loc().$expression(),r.$check_assignment_to_numparam(a,o),r.$check_reserved_for_numparam(a,o),e;case"nil":case"self":case"true":case"false":case"__FILE__":case"__LINE__":case"__ENCODING__":return r.$diagnostic("error","invalid_assignment",k,e.$loc().$expression());case"back_ref":case"nth_ref":return r.$diagnostic("error","backref_assignment",k,e.$loc().$expression());default:return k}})),n(M,"$const_op_assignable",(function(e){return e.$updated("casgn")})),n(M,"$assign",(function(e,t,r){return e["$<<"](r).$updated(k,k,new Map([["location",e.$loc().$with_operator(this.$loc(t)).$with_expression(this.$join_exprs(e,r))]]))})),n(M,"$op_assign",(function(e,t,r){var n=this,a=k,s=k;switch(e.$type().valueOf()){case"gvasgn":case"ivasgn":case"lvasgn":case"cvasgn":case"casgn":case"send":case"csend":case"index":switch(a=n.$value(t)["$[]"](d(0,-1,!1)).$to_sym(),s=e.$loc().$with_operator(n.$loc(t)).$with_expression(n.$join_exprs(e,r)),o(e.$type(),"index")&&(e=e.$updated("indexasgn")),a.valueOf()){case"&&":return n.$n("and_asgn",[e,r],s);case"||":return n.$n("or_asgn",[e,r],s);default:return n.$n("op_asgn",[e,a,r],s)}break;case"back_ref":case"nth_ref":return n.$diagnostic("error","backref_assignment",k,e.$loc().$expression());default:return k}})),n(M,"$multi_lhs",(function(e,t,r){return this.$n("mlhs",[].concat(s(t)),this.$collection_map(e,t,r))})),n(M,"$multi_assign",(function(e,t,r){return this.$n("masgn",[e,r],this.$binary_op_map(e,t,r))})),n(M,"$def_class",(function(e,t,r,n,a,s){return this.$n("class",[t,n,a],this.$module_definition_map(e,t,r,s))})),n(M,"$def_sclass",(function(e,t,r,n,a){return this.$n("sclass",[r,n],this.$module_definition_map(e,k,t,a))})),n(M,"$def_module",(function(e,t,r,n){return this.$n("module",[t,r],this.$module_definition_map(e,t,k,n))})),n(M,"$def_method",(function(e,t,r,n,a){var s=this;return s.$check_reserved_for_numparam(s.$value(t),s.$loc(t)),s.$n("def",[s.$value(t).$to_sym(),r,n],s.$definition_map(e,k,t,a))})),n(M,"$def_endless_method",(function(e,t,r,n,a){var s=this;return s.$check_reserved_for_numparam(s.$value(t),s.$loc(t)),s.$n("def",[s.$value(t).$to_sym(),r,a],s.$endless_definition_map(e,k,t,n,a))})),n(M,"$def_singleton",(function(e,t,r,n,a,s,i){var o=this;return o.$validate_definee(t),o.$check_reserved_for_numparam(o.$value(n),o.$loc(n)),o.$n("defs",[t,o.$value(n).$to_sym(),a,s],o.$definition_map(e,r,n,i))})),n(M,"$def_endless_singleton",(function(e,t,r,n,a,s,i){var o=this;return o.$validate_definee(t),o.$check_reserved_for_numparam(o.$value(n),o.$loc(n)),o.$n("defs",[t,o.$value(n).$to_sym(),a,i],o.$endless_definition_map(e,r,n,s,i))})),n(M,"$undef_method",(function(e,t){return this.$n("undef",[].concat(s(t)),this.$keyword_map(e,k,t,k))})),n(M,"$alias",(function(e,t,r){return this.$n("alias",[t,r],this.$keyword_map(e,k,[t,r],k))})),n(M,"$args",(function(e,t,r,n){var a,s=this;return null==n&&(n=!0),i(n)&&(t=s.$check_duplicate_args(t)),s.$validate_no_forward_arg_after_restarg(t),a=s.$collection_map(e,t,r),l(s.$class().$emit_forward_arg())&&o(t.$length(),1)&&o(t["$[]"](0).$type(),"forward_arg")?s.$n("forward_args",[],a):s.$n("args",t,a)}),-4),n(M,"$numargs",(function(e){return this.$n("numargs",[e],k)})),n(M,"$forward_only_args",(function(e,t,r){var n=this,a=k;return i(n.$class().$emit_forward_arg())?(a=n.$forward_arg(t),n.$n("args",[a],n.$collection_map(e,[a],r))):n.$n("forward_args",[],n.$collection_map(e,n.$token_map(t),r))})),n(M,"$forward_arg",(function(e){return this.$n("forward_arg",[],this.$token_map(e))})),n(M,"$arg",(function(e){var t=this;return t.$check_reserved_for_numparam(t.$value(e),t.$loc(e)),t.$n("arg",[t.$value(e).$to_sym()],t.$variable_map(e))})),n(M,"$optarg",(function(e,t,r){var n=this;return n.$check_reserved_for_numparam(n.$value(e),n.$loc(e)),n.$n("optarg",[n.$value(e).$to_sym(),r],n.$variable_map(e).$with_operator(n.$loc(t)).$with_expression(n.$loc(e).$join(r.$loc().$expression())))})),n(M,"$restarg",(function(e,t){var r=this;return null==t&&(t=k),i(t)?(r.$check_reserved_for_numparam(r.$value(t),r.$loc(t)),r.$n("restarg",[r.$value(t).$to_sym()],r.$arg_prefix_map(e,t))):r.$n0("restarg",r.$arg_prefix_map(e))}),-2),n(M,"$kwarg",(function(e){var t=this;return t.$check_reserved_for_numparam(t.$value(e),t.$loc(e)),t.$n("kwarg",[t.$value(e).$to_sym()],t.$kwarg_map(e))})),n(M,"$kwoptarg",(function(e,t){var r=this;return r.$check_reserved_for_numparam(r.$value(e),r.$loc(e)),r.$n("kwoptarg",[r.$value(e).$to_sym(),t],r.$kwarg_map(e,t))})),n(M,"$kwrestarg",(function(e,t){var r=this;return null==t&&(t=k),i(t)?(r.$check_reserved_for_numparam(r.$value(t),r.$loc(t)),r.$n("kwrestarg",[r.$value(t).$to_sym()],r.$arg_prefix_map(e,t))):r.$n0("kwrestarg",r.$arg_prefix_map(e))}),-2),n(M,"$kwnilarg",(function(e,t){return this.$n0("kwnilarg",this.$arg_prefix_map(e,t))})),n(M,"$shadowarg",(function(e){var t=this;return t.$check_reserved_for_numparam(t.$value(e),t.$loc(e)),t.$n("shadowarg",[t.$value(e).$to_sym()],t.$variable_map(e))})),n(M,"$blockarg",(function(e,t){var r,n=this;return l(t["$nil?"]())&&n.$check_reserved_for_numparam(n.$value(t),n.$loc(t)),r=i(t)?n.$value(t).$to_sym():k,n.$n("blockarg",[r],n.$arg_prefix_map(e,t))})),n(M,"$procarg0",(function(e){var t=this;return i(t.$class().$emit_procarg0())?o(e.$type(),"arg")&&i(t.$class().$emit_arg_inside_procarg0())?t.$n("procarg0",[e],U(U(S("Source"),"Map"),"Collection").$new(k,k,e.$location().$expression())):e.$updated("procarg0"):e})),n(M,"$arg_expr",(function(e){return o(e.$type(),"lvasgn")?e.$updated("arg"):this.$n("arg_expr",[e],e.$loc().$dup())})),n(M,"$restarg_expr",(function(e,t){var r=this;return null==t&&(t=k),i(t["$nil?"]())?r.$n0("restarg",r.$token_map(e)):o(t.$type(),"lvasgn")?t.$updated("restarg"):r.$n("restarg_expr",[t],t.$loc().$dup())}),-2),n(M,"$blockarg_expr",(function(e,t){return o(t.$type(),"lvasgn")?t.$updated("blockarg"):this.$n("blockarg_expr",[t],t.$loc().$dup())})),n(M,"$objc_kwarg",(function(e,t,r){var n=this,a=k,s=k;return a=n.$loc(e),s=i(t["$nil?"]())?(a=a.$resize(f(a.$size(),1))).$end().$resize(1):n.$loc(t),n.$n("objc_kwarg",[n.$value(e).$to_sym(),n.$value(r).$to_sym()],U(U(S("Source"),"Map"),"ObjcKwarg").$new(a,s,n.$loc(r),a.$join(n.$loc(r))))})),n(M,"$objc_restarg",(function(e,t){var r=this;return null==t&&(t=k),i(t["$nil?"]())?r.$n0("restarg",r.$arg_prefix_map(e)):o(t.$type(),"arg")?t.$updated("restarg",k,new Map([["location",t.$loc().$with_operator(r.$loc(e))]])):r.$n("objc_restarg",[t],r.$unary_op_map(e,t))}),-2),n(M,"$call_type_for_dot",(function(e){return l(e["$nil?"]())&&o(this.$value(e),"anddot")?"csend":"send"})),n(M,"$forwarded_args",(function(e){return this.$n("forwarded_args",[],this.$token_map(e))})),n(M,"$forwarded_restarg",(function(e){return this.$n("forwarded_restarg",[],this.$token_map(e))})),n(M,"$forwarded_kwrestarg",(function(e){return this.$n("forwarded_kwrestarg",[],this.$token_map(e))})),n(M,"$call_method",(function(e,t,r,n,a,o){var l,$=this;return null==n&&(n=k),null==a&&(a=[]),null==o&&(o=k),l=$.$call_type_for_dot(t),i($.$class().$emit_kwargs())&&$.$rewrite_hash_args_to_kwargs(a),i(r["$nil?"]())?$.$n(l,[e,"call"].concat(s(a)),$.$send_map(e,t,k,n,a,o)):$.$n(l,[e,$.$value(r).$to_sym()].concat(s(a)),$.$send_map(e,t,r,n,a,o))}),-4),n(M,"$call_lambda",(function(e){var t=this;return i(t.$class().$emit_lambda())?t.$n0("lambda",t.$expr_map(t.$loc(e))):t.$n("send",[k,"lambda"],t.$send_map(k,k,e))})),n(M,"$block",(function(e,t,r,n,a){var l,$=this,u=k,c=k,_=k,p=k,m=k;return null==(l=[].concat(s(e)))[0]?k:l[0],null==l[1]?k:l[1],u=h(l,2),o(e.$type(),"yield")&&$.$diagnostic("error","block_given_to_yield",k,e.$loc().$keyword(),[$.$loc(t)]),c=u.$last(),i(c)&&(o(c.$type(),"block_pass")||o(c.$type(),"forwarded_args"))&&$.$diagnostic("error","block_and_blockarg",k,c.$loc().$expression(),[$.$loc(t)]),o(r.$type(),"numargs")?(_="numblock",r=r.$children()["$[]"](0)):_="block",i(["send","csend","index","super","zsuper","lambda"]["$include?"](e.$type()))?$.$n(_,[e,r,n],$.$block_map(e.$loc().$expression(),t,a)):(p=null==(l=[].concat(s(e)))[0]?k:l[0],m=$.$n(_,[p,r,n],$.$block_map(p.$loc().$expression(),t,a)),$.$n(e.$type(),[m],e.$loc().$with_expression($.$join_exprs(e,m))))})),n(M,"$block_pass",(function(e,t){return this.$n("block_pass",[t],this.$unary_op_map(e,t))})),n(M,"$objc_varargs",(function(e,t){var r,n,a=k,i=k;return n=null==(r=[].concat(s(e)))[0]?k:r[0],a=null==r[1]?k:r[1],i=this.$array(k,[a].concat(s(t)),k).$updated("objc_varargs"),e.$updated(k,[n,i],new Map([["location",e.$loc().$with_expression(e.$loc().$expression().$join(i.$loc().$expression()))]]))})),n(M,"$attr_asgn",(function(e,t,r){var n,a,s=this;return n=g(s.$value(r),"=").$to_sym(),a=s.$call_type_for_dot(t),s.$n(a,[e,n],s.$send_map(e,t,r))})),n(M,"$index",(function(e,t,r,n){var a=this;return i(a.$class().$emit_kwargs())&&a.$rewrite_hash_args_to_kwargs(r),i(a.$class().$emit_index())?a.$n("index",[e].concat(s(r)),a.$index_map(e,t,n)):a.$n("send",[e,"[]"].concat(s(r)),a.$send_index_map(e,t,n))})),n(M,"$index_asgn",(function(e,t,r,n){var a=this;return i(a.$class().$emit_index())?a.$n("indexasgn",[e].concat(s(r)),a.$index_map(e,t,n)):a.$n("send",[e,"[]="].concat(s(r)),a.$send_index_map(e,t,n))})),n(M,"$binary_op",(function(e,t,r){var n=this,a=k,s=k,l=k;return a=n.$send_binary_op_map(e,t,r),o(n.parser.$version(),18)&&(s=n.$value(t),o(s,"!=")?l=n.$n("send",[e,"==",r],a):o(s,"!~")&&(l=n.$n("send",[e,"=~",r],a)),i(["!=","!~"]["$include?"](s)))?n.$n("not",[l],n.$expr_map(a.$expression())):n.$n("send",[e,n.$value(t).$to_sym(),r],a)})),n(M,"$match_op",(function(e,t,r){var n,a=this,s=k;return n=a.$send_binary_op_map(e,t,r),i(s=a.$static_regexp_node(e))?($(s.$names(),"each",[],(function e(t){var r=null==e.$$s?this:e.$$s;return null==r.parser&&(r.parser=k),null==t&&(t=k),r.parser.$static_env().$declare(t)}),{$$s:a}),a.$n("match_with_lvasgn",[e,r],n)):a.$n("send",[e,"=~",r],n)})),n(M,"$unary_op",(function(e,t){var r=this,n=k;switch(r.$value(e).valueOf()){case"+":case"-":n=g(r.$value(e),"@");break;default:n=r.$value(e)}return r.$n("send",[t,n.$to_sym()],r.$send_unary_op_map(e,t))})),n(M,"$not_op",(function(e,t,r,n){var a=this,s=k;return null==t&&(t=k),null==r&&(r=k),null==n&&(n=k),o(a.parser.$version(),18)?a.$n("not",[a.$check_condition(r)],a.$unary_op_map(e,r)):i(r["$nil?"]())?(s=a.$n0("begin",a.$collection_map(t,k,n)),a.$n("send",[s,"!"],a.$send_unary_op_map(e,s))):a.$n("send",[a.$check_condition(r),"!"],a.$send_map(k,k,e,t,[r],n))}),-2),n(M,"$logical_op",(function(e,t,r,n){return this.$n(e,[t,n],this.$binary_op_map(t,r,n))})),n(M,"$condition",(function(e,t,r,n,a,s,i){var o=this;return o.$n("if",[o.$check_condition(t),n,s],o.$condition_map(e,t,r,n,a,s,i))})),n(M,"$condition_mod",(function(e,t,r,n){var a,s=this;return s.$n("if",[s.$check_condition(n),e,t],s.$keyword_mod_map(i(a=e)?a:t,r,n))})),n(M,"$ternary",(function(e,t,r,n,a){var s=this;return s.$n("if",[s.$check_condition(e),r,a],s.$ternary_map(e,t,r,n,a))})),n(M,"$when",(function(e,t,r,n){var a;return a=t["$<<"](n),this.$n("when",a,this.$keyword_map(e,r,a,k))})),n(M,"$case",(function(e,t,r,n,a,i){return this.$n("case",[t].concat(s(r["$<<"](a))),this.$condition_map(e,t,k,k,n,a,i))})),n(M,"$loop",(function(e,t,r,n,a,s){var i=this;return i.$n(e,[i.$check_condition(r),a],i.$keyword_map(t,n,k,s))})),n(M,"$loop_mod",(function(e,t,r,n){var a=this;return o(t.$type(),"kwbegin")&&(e+="_post"),a.$n(e,[a.$check_condition(n),t],a.$keyword_mod_map(t,r,n))})),n(M,"$for",(function(e,t,r,n,a,s,i){return this.$n("for",[t,n,s],this.$for_map(e,r,a,i))})),n(M,"$keyword_cmd",(function(e,t,r,n,a){var s=this,l=k;return null==r&&(r=k),null==n&&(n=[]),null==a&&(a=k),o(e,"yield")&&i(m(n.$count(),0))&&(l=n.$last(),o(l.$type(),"block_pass")&&s.$diagnostic("error","block_given_to_yield",k,s.$loc(t),[l.$loc().$expression()])),i(["yield","super"]["$include?"](e))&&i(s.$class().$emit_kwargs())&&s.$rewrite_hash_args_to_kwargs(n),s.$n(e,n,s.$keyword_map(t,r,n,a))}),-3),n(M,"$preexe",(function(e,t,r,n){return this.$n("preexe",[r],this.$keyword_map(e,t,[],n))})),n(M,"$postexe",(function(e,t,r,n){return this.$n("postexe",[r],this.$keyword_map(e,t,[],n))})),n(M,"$rescue_body",(function(e,t,r,n,a,s){return this.$n("resbody",[t,n,s],this.$rescue_body_map(e,t,r,n,a,s))})),n(M,"$begin_body",(function(e,t,r,n,a,$){var u=this,c=k;return null==t&&(t=[]),null==r&&(r=k),null==n&&(n=k),null==a&&(a=k),null==$&&($=k),i(t["$any?"]())?e=i(r)?u.$n("rescue",[e].concat(s(g(t,[n]))),u.$eh_keyword_map(e,k,t,r,n)):u.$n("rescue",[e].concat(s(g(t,[k]))),u.$eh_keyword_map(e,k,t,k,k)):i(r)&&(c=[],l(e["$nil?"]())&&(o(e.$type(),"begin")?c=g(c,e.$children()):c.$push(e)),c.$push(u.$n("begin",[n],u.$collection_map(r,[n],k))),e=u.$n("begin",c,u.$collection_map(k,c,k))),i(a)&&(e=u.$n("ensure",[e,$],u.$eh_keyword_map(e,a,[$],k,k))),e}),-2),n(M,"$compstmt",(function(e){return i(e["$none?"]())?k:i(e["$one?"]())?e.$first():this.$n("begin",e,this.$collection_map(k,e,k))})),n(M,"$begin",(function(e,t,r){var n=this;return i(t["$nil?"]())?n.$n0("begin",n.$collection_map(e,k,r)):o(t.$type(),"mlhs")||o(t.$type(),"begin")&&i(t.$loc().$begin()["$nil?"]())&&i(t.$loc().$end()["$nil?"]())?n.$n(t.$type(),t.$children(),n.$collection_map(e,t.$children(),r)):n.$n("begin",[t],n.$collection_map(e,[t],r))})),n(M,"$begin_keyword",(function(e,t,r){var n=this;return i(t["$nil?"]())?n.$n0("kwbegin",n.$collection_map(e,k,r)):o(t.$type(),"begin")&&i(t.$loc().$begin()["$nil?"]())&&i(t.$loc().$end()["$nil?"]())?n.$n("kwbegin",t.$children(),n.$collection_map(e,t.$children(),r)):n.$n("kwbegin",[t],n.$collection_map(e,[t],r))})),n(M,"$case_match",(function(e,t,r,n,a,o){var $=this;return i(n)&&l(a)&&(a=$.$n("empty_else",k,$.$token_map(n))),$.$n("case_match",[t].concat(s(r["$<<"](a))),$.$condition_map(e,t,k,k,n,a,o))})),n(M,"$in_match",(function(e,t,r){return this.$n("in_match",[e,r],this.$binary_op_map(e,t,r))})),n(M,"$match_pattern",(function(e,t,r){return this.$n("match_pattern",[e,r],this.$binary_op_map(e,t,r))})),n(M,"$match_pattern_p",(function(e,t,r){return this.$n("match_pattern_p",[e,r],this.$binary_op_map(e,t,r))})),n(M,"$in_pattern",(function(e,t,r,n,a){var s=k;return s=[t,r,a],this.$n("in_pattern",s,this.$keyword_map(e,n,s.$compact(),k))})),n(M,"$if_guard",(function(e,t){return this.$n("if_guard",[t],this.$guard_map(e,t))})),n(M,"$unless_guard",(function(e,t){return this.$n("unless_guard",[t],this.$guard_map(e,t))})),n(M,"$match_var",(function(e){var t,r,n=this;return t=n.$value(e).$to_sym(),r=n.$loc(e),n.$check_lvar_name(t,r),n.$check_duplicate_pattern_variable(t,r),n.parser.$static_env().$declare(t),n.$n("match_var",[t],n.$variable_map(e))})),n(M,"$match_hash_var",(function(e){var t,r,n=this,a=k;return t=n.$value(e).$to_sym(),r=(a=n.$loc(e)).$adjust(new Map([["end_pos",-1]])),n.$check_lvar_name(t,r),n.$check_duplicate_pattern_variable(t,r),n.parser.$static_env().$declare(t),n.$n("match_var",[t],U(U(S("Source"),"Map"),"Variable").$new(r,a))})),n(M,"$match_hash_var_from_str",(function(e,t,r){var n,a=this,o=k,l=k,$=k,u=k,c=k,_=k;switch(i(m(t.$length(),1))&&a.$diagnostic("error","pm_interp_in_var_name",k,a.$loc(e).$join(a.$loc(r))),(o=t["$[]"](0)).$type().valueOf()){case"str":return l=null==(n=[].concat(s(o)))[0]?k:n[0],$=o.$loc().$expression(),a.$check_lvar_name(l,$),a.$check_duplicate_pattern_variable(l,$),a.parser.$static_env().$declare(l),i(u=o.$loc().$begin())&&($=$.$adjust(new Map([["begin_pos",u.$length()]]))),i(c=o.$loc().$end())&&($=$.$adjust(new Map([["end_pos",c.$length()["$-@"]()]]))),_=a.$loc(e).$join(o.$loc().$expression()).$join(a.$loc(r)),a.$n("match_var",[l.$to_sym()],U(U(S("Source"),"Map"),"Variable").$new($,_));case"begin":return a.$match_hash_var_from_str(e,o.$children(),r);default:return a.$diagnostic("error","pm_interp_in_var_name",k,a.$loc(e).$join(a.$loc(r)))}})),n(M,"$match_rest",(function(e,t){var r=this,n=k;return null==t&&(t=k),i(t["$nil?"]())?r.$n0("match_rest",r.$unary_op_map(e)):(n=r.$match_var(t),r.$n("match_rest",[n],r.$unary_op_map(e,n)))}),-2),n(M,"$hash_pattern",(function(e,t,r){var n,a=this;return n=a.$check_duplicate_args(t),a.$n("hash_pattern",n,a.$collection_map(e,n,r))})),n(M,"$array_pattern",(function(e,t,r){var n,a,s=this,l=k;return i(t["$nil?"]())?s.$n("array_pattern",k,s.$collection_map(e,[],r)):(l=!1,n=$(t,"map",[],(function(e){return null==e&&(e=k),o(e.$type(),"match_with_trailing_comma")?(l=!0,e.$children().$first()):(l=!1,e)})),a=i(l)?"array_pattern_with_tail":"array_pattern",s.$n(a,n,s.$collection_map(e,t,r)))})),n(M,"$find_pattern",(function(e,t,r){return this.$n("find_pattern",t,this.$collection_map(e,t,r))})),n(M,"$match_with_trailing_comma",(function(e,t){var r=this;return r.$n("match_with_trailing_comma",[e],r.$expr_map(e.$loc().$expression().$join(r.$loc(t))))})),n(M,"$const_pattern",(function(e,t,r,n){var a=this;return a.$n("const_pattern",[e,r],U(U(S("Source"),"Map"),"Collection").$new(a.$loc(t),a.$loc(n),e.$loc().$expression().$join(a.$loc(n))))})),n(M,"$pin",(function(e,t){return this.$n("pin",[t],this.$send_unary_op_map(e,t))})),n(M,"$match_alt",(function(e,t,r){var n;return n=this.$binary_op_map(e,t,r),this.$n("match_alt",[e,r],n)})),n(M,"$match_as",(function(e,t,r){var n;return n=this.$binary_op_map(e,t,r),this.$n("match_as",[e,r],n)})),n(M,"$match_nil_pattern",(function(e,t){return this.$n0("match_nil_pattern",this.$arg_prefix_map(e,t))})),n(M,"$match_pair",(function(e,t,r){var n,a=this,s=k,l=k,$=k,u=k,_=k;return o(e,"label")?(a.$check_duplicate_pattern_key(t["$[]"](0),t["$[]"](1)),a.$pair_keyword(t,r)):(s=null==(n=c(t))[0]?k:n[0],l=null==n[1]?k:n[1],$=null==n[2]?k:n[2],u=a.$loc(s).$join(a.$loc($)),i(_=a.$static_string(l))?a.$check_duplicate_pattern_key(_,u):a.$diagnostic("error","pm_interp_in_var_name",k,u),a.$pair_quoted(s,l,$,r))})),n(M,"$match_label",(function(e,t){var r,n=k,a=k,s=k;return o(e,"label")?this.$match_hash_var(t):(n=null==(r=c(t))[0]?k:r[0],a=null==r[1]?k:r[1],s=null==r[2]?k:r[2],this.$match_hash_var_from_str(n,a,s))})),M.$private(),n(M,"$check_condition",(function(e){var t,r=this,n=k,a=k,l=k,$=k,u=k,c=k;switch(e.$type().valueOf()){case"masgn":return i(b(r.parser.$version(),23))?r.$diagnostic("error","masgn_as_condition",k,e.$loc().$expression()):e;case"begin":return o(e.$children().$count(),1)?e.$updated(k,[r.$check_condition(e.$children().$last())]):e;case"and":case"or":return n=null==(t=[].concat(s(e)))[0]?k:t[0],a=null==t[1]?k:t[1],o(r.parser.$version(),18)?e:e.$updated(e.$type(),[r.$check_condition(n),r.$check_condition(a)]);case"irange":case"erange":return n=null==(t=[].concat(s(e)))[0]?k:t[0],a=null==t[1]?k:t[1],l=v("irange",$=e.$type())?"iflipflop":v("erange",$)?"eflipflop":k,i(n["$nil?"]())||(u=r.$check_condition(n)),i(a["$nil?"]())||(c=r.$check_condition(a)),e.$updated(l,[u,c]);case"regexp":return r.$n("match_current_line",[e],r.$expr_map(e.$loc().$expression()));default:return e}})),n(M,"$check_duplicate_args",(function(e,t){return null==t&&(t=new Map),$(e,"each",[],(function e(r){var n=null==e.$$s?this:e.$$s;switch(null==r&&(r=k),r.$type().valueOf()){case"arg":case"optarg":case"restarg":case"blockarg":case"kwarg":case"kwoptarg":case"kwrestarg":case"shadowarg":return n.$check_duplicate_arg(r,t);case"procarg0":return i(r.$children()["$[]"](0)["$is_a?"](S("Symbol")))?n.$check_duplicate_arg(r,t):n.$check_duplicate_args(r.$children(),t);case"mlhs":return n.$check_duplicate_args(r.$children(),t);default:return k}}),{$$s:this})}),-2),n(M,"$check_duplicate_arg",(function(e,t){var r,n,a,o=k;return null==t&&(t=new Map),n=null==(r=[].concat(s(e)))[0]?k:r[0],o=t["$[]"](n),a=null==(r=[].concat(s(o)))[0]?k:r[0],i(o["$nil?"]())?($(t,"[]=",r=[n,e]),r[r.length-1]):i(this["$arg_name_collides?"](n,a))?this.$diagnostic("error","duplicate_argument",k,e.$loc().$name(),[o.$loc().$name()]):k}),-2),n(M,"$validate_no_forward_arg_after_restarg",(function(e){var t=k,r=k;return t=k,r=k,$(e,"each",[],(function(e){switch(null==e&&(e=k),e.$type().valueOf()){case"restarg":return t=e;case"forward_arg":return r=e;default:return k}})),l(r["$nil?"]())&&l(t["$nil?"]())?this.$diagnostic("error","forward_arg_after_restarg",k,r.$loc().$expression(),[t.$loc().$expression()]):k})),n(M,"$check_assignment_to_numparam",(function(e,t){var r,n,a,s=this;return i(y(s.parser.$version(),27))?k:(r=i(n=i(a=s.parser.$context()["$in_dynamic_block?"]())?e["$=~"](_(/^_([1-9])$/u,"\\A_([1-9])\\z","")):a)?s.parser.$max_numparam_stack()["$has_numparams?"]():n,i(r)?s.$diagnostic("error","cant_assign_to_numparam",new Map([["name",e]]),t):k)})),n(M,"$check_reserved_for_numparam",(function(e,t){return i(y(this.parser.$version(),30))?k:i(e["$=~"](_(/^_([1-9])$/u,"\\A_([1-9])\\z","")))?this.$diagnostic("error","reserved_for_numparam",new Map([["name",e]]),t):k})),n(M,"$arg_name_collides?",(function(e,t){var r=k,n=k;switch(this.parser.$version().valueOf()){case 18:return e["$=="](t);case 19:return i(r=e["$!="]("_"))?e["$=="](t):r;default:return i(r=i(n=e)?e["$[]"](0)["$!="]("_"):n)?e["$=="](t):r}})),n(M,"$check_lvar_name",(function(e,t){return i(e["$=~"](_(/^[\p{Lowercase_Letter}_][\p{Alphabetic}\p{Number}_]*$/u,"\\A[[[:lower:]]_][[[:alnum:]]_]*\\z","")))?k:this.$diagnostic("error","lvar_name",new Map([["name",e]]),t)})),n(M,"$check_duplicate_pattern_variable",(function(e,t){var r=this;return i(e.$to_s()["$start_with?"]("_"))?k:(i(r.parser.$pattern_variables()["$declared?"](e))&&r.$diagnostic("error","duplicate_variable_name",new Map([["name",e.$to_s()]]),t),r.parser.$pattern_variables().$declare(e))})),n(M,"$check_duplicate_pattern_key",(function(e,t){var r=this;return i(r.parser.$pattern_hash_keys()["$declared?"](e))&&r.$diagnostic("error","duplicate_pattern_key",new Map([["name",e.$to_s()]]),t),r.parser.$pattern_hash_keys().$declare(e)})),n(M,"$n",(function(e,t,r){return U(S("AST"),"Node").$new(e,t,new Map([["location",r]]))})),n(M,"$n0",(function(e,t){return this.$n(e,[],t)})),n(M,"$join_exprs",(function(e,t){return e.$loc().$expression().$join(t.$loc().$expression())})),n(M,"$token_map",(function(e){return U(S("Source"),"Map").$new(this.$loc(e))})),n(M,"$delimited_string_map",(function(e){var t,r,n=k;return t=(n=this.$loc(e)).$with(new Map([["end_pos",g(n.$begin_pos(),1)]])),r=n.$with(new Map([["begin_pos",f(n.$end_pos(),1)]])),U(U(S("Source"),"Map"),"Collection").$new(t,r,this.$loc(e))})),n(M,"$prefix_string_map",(function(e){var t,r=k;return t=(r=this.$loc(e)).$with(new Map([["end_pos",g(r.$begin_pos(),1)]])),U(U(S("Source"),"Map"),"Collection").$new(t,k,this.$loc(e))})),n(M,"$unquoted_map",(function(e){return U(U(S("Source"),"Map"),"Collection").$new(k,k,this.$loc(e))})),n(M,"$pair_keyword_map",(function(e,t){var r,n,a=k;return r=(a=this.$loc(e)).$adjust(new Map([["end_pos",-1]])),n=a.$with(new Map([["begin_pos",f(a.$end_pos(),1)]])),[U(U(S("Source"),"Map"),"Collection").$new(k,k,r),U(U(S("Source"),"Map"),"Operator").$new(n,a.$join(t.$loc().$expression()))]})),n(M,"$pair_quoted_map",(function(e,t,r){var n,a,s=this,i=k;return n=(i=s.$loc(t)).$with(new Map([["begin_pos",f(i.$end_pos(),2)],["end_pos",f(i.$end_pos(),1)]])),a=i.$with(new Map([["begin_pos",f(i.$end_pos(),1)]])),[[s.$value(t),n],U(U(S("Source"),"Map"),"Operator").$new(a,s.$loc(e).$join(r.$loc().$expression()))]})),n(M,"$expr_map",(function(e){return U(S("Source"),"Map").$new(e)})),n(M,"$collection_map",(function(e,t,r){var n=this,a=k;return i(e["$nil?"]())||i(r["$nil?"]())?i(t["$any?"]())?a=n.$join_exprs(t.$first(),t.$last()):l(e["$nil?"]())?a=n.$loc(e):l(r["$nil?"]())&&(a=n.$loc(r)):a=n.$loc(e).$join(n.$loc(r)),U(U(S("Source"),"Map"),"Collection").$new(n.$loc(e),n.$loc(r),a)})),n(M,"$string_map",(function(e,t,r){var n=this,a=k;return i(e)&&i(n.$value(e)["$start_with?"]("<<"))?(a=i(t["$any?"]())?n.$join_exprs(t.$first(),t.$last()):n.$loc(r).$begin(),U(U(S("Source"),"Map"),"Heredoc").$new(n.$loc(e),a,n.$loc(r))):n.$collection_map(e,t,r)})),n(M,"$regexp_map",(function(e,t,r){var n=this;return U(U(S("Source"),"Map"),"Collection").$new(n.$loc(e),n.$loc(t),n.$loc(e).$join(r.$loc().$expression()))})),n(M,"$constant_map",(function(e,t,r){var n=this,a=k;return a=i(e["$nil?"]())?n.$loc(r):e.$loc().$expression().$join(n.$loc(r)),U(U(S("Source"),"Map"),"Constant").$new(n.$loc(t),n.$loc(r),a)})),n(M,"$variable_map",(function(e){return U(U(S("Source"),"Map"),"Variable").$new(this.$loc(e))})),n(M,"$binary_op_map",(function(e,t,r){return U(U(S("Source"),"Map"),"Operator").$new(this.$loc(t),this.$join_exprs(e,r))})),n(M,"$unary_op_map",(function(e,t){var r=this,n=k;return null==t&&(t=k),n=i(t["$nil?"]())?r.$loc(e):r.$loc(e).$join(t.$loc().$expression()),U(U(S("Source"),"Map"),"Operator").$new(r.$loc(e),n)}),-2),n(M,"$range_map",(function(e,t,r){var n=this,a=k;return i(e)&&i(r)?a=n.$join_exprs(e,r):i(e)?a=e.$loc().$expression().$join(n.$loc(t)):i(r)&&(a=n.$loc(t).$join(r.$loc().$expression())),U(U(S("Source"),"Map"),"Operator").$new(n.$loc(t),a)})),n(M,"$arg_prefix_map",(function(e,t){var r=this,n=k;return null==t&&(t=k),n=i(t["$nil?"]())?r.$loc(e):r.$loc(e).$join(r.$loc(t)),U(U(S("Source"),"Map"),"Variable").$new(r.$loc(t),n)}),-2),n(M,"$kwarg_map",(function(e,t){var r,n=this,a=k;return null==t&&(t=k),r=n.$loc(e).$adjust(new Map([["end_pos",-1]])),a=i(t)?n.$loc(e).$join(t.$loc().$expression()):n.$loc(e),U(U(S("Source"),"Map"),"Variable").$new(r,a)}),-2),n(M,"$module_definition_map",(function(e,t,r,n){var a=this,s=k;return i(t)&&(s=t.$loc().$expression()),U(U(S("Source"),"Map"),"Definition").$new(a.$loc(e),a.$loc(r),s,a.$loc(n))})),n(M,"$definition_map",(function(e,t,r,n){var a=this;return U(U(S("Source"),"Map"),"MethodDefinition").$new(a.$loc(e),a.$loc(t),a.$loc(r),a.$loc(n),k,k)})),n(M,"$endless_definition_map",(function(e,t,r,n,a){var s,i=this;return s=a.$loc().$expression(),U(U(S("Source"),"Map"),"MethodDefinition").$new(i.$loc(e),i.$loc(t),i.$loc(r),k,i.$loc(n),s)})),n(M,"$send_map",(function(e,t,r,n,a,s){var o=this,l=k,$=k;return null==n&&(n=k),null==a&&(a=[]),null==s&&(s=k),i(e)?l=e.$loc().$expression():i(r)&&(l=o.$loc(r)),i(s)?$=o.$loc(s):i(a["$any?"]())?$=a.$last().$loc().$expression():i(r)&&($=o.$loc(r)),U(U(S("Source"),"Map"),"Send").$new(o.$loc(t),o.$loc(r),o.$loc(n),o.$loc(s),l.$join($))}),-4),n(M,"$var_send_map",(function(e){return U(U(S("Source"),"Map"),"Send").$new(k,e.$loc().$expression(),k,k,e.$loc().$expression())})),n(M,"$send_binary_op_map",(function(e,t,r){return U(U(S("Source"),"Map"),"Send").$new(k,this.$loc(t),k,k,this.$join_exprs(e,r))})),n(M,"$send_unary_op_map",(function(e,t){var r=this,n=k;return n=i(t["$nil?"]())?r.$loc(e):r.$loc(e).$join(t.$loc().$expression()),U(U(S("Source"),"Map"),"Send").$new(k,r.$loc(e),k,k,n)})),n(M,"$index_map",(function(e,t,r){var n=this;return U(U(S("Source"),"Map"),"Index").$new(n.$loc(t),n.$loc(r),e.$loc().$expression().$join(n.$loc(r)))})),n(M,"$send_index_map",(function(e,t,r){var n=this;return U(U(S("Source"),"Map"),"Send").$new(k,n.$loc(t).$join(n.$loc(r)),k,k,e.$loc().$expression().$join(n.$loc(r)))})),n(M,"$block_map",(function(e,t,r){var n=this;return U(U(S("Source"),"Map"),"Collection").$new(n.$loc(t),n.$loc(r),e.$join(n.$loc(r)))})),n(M,"$keyword_map",(function(e,t,r,n){var a,s=this,o=k;return r=i(a=r)?a:[],o=i(n)?s.$loc(n):i(r["$any?"]())&&l(r.$last()["$nil?"]())?r.$last().$loc().$expression():i(r["$any?"]())&&i(m(r.$count(),1))?r["$[]"](-2).$loc().$expression():s.$loc(e),U(U(S("Source"),"Map"),"Keyword").$new(s.$loc(e),s.$loc(t),s.$loc(n),s.$loc(e).$join(o))})),n(M,"$keyword_mod_map",(function(e,t,r){return U(U(S("Source"),"Map"),"Keyword").$new(this.$loc(t),k,k,this.$join_exprs(e,r))})),n(M,"$condition_map",(function(e,t,r,n,a,s,o){var l=this,$=k;return $=i(o)?l.$loc(o):i(s)&&i(s.$loc().$expression())?s.$loc().$expression():i(l.$loc(a))?l.$loc(a):i(n)&&i(n.$loc().$expression())?n.$loc().$expression():i(l.$loc(r))?l.$loc(r):t.$loc().$expression(),U(U(S("Source"),"Map"),"Condition").$new(l.$loc(e),l.$loc(r),l.$loc(a),l.$loc(o),l.$loc(e).$join($))})),n(M,"$ternary_map",(function(e,t,r,n,a){var s=this;return U(U(S("Source"),"Map"),"Ternary").$new(s.$loc(t),s.$loc(n),s.$join_exprs(e,a))})),n(M,"$for_map",(function(e,t,r,n){var a=this;return U(U(S("Source"),"Map"),"For").$new(a.$loc(e),a.$loc(t),a.$loc(r),a.$loc(n),a.$loc(e).$join(a.$loc(n)))})),n(M,"$rescue_body_map",(function(e,t,r,n,a,s){var o=this,l=k;return i(s)&&(l=s.$loc().$expression()),i(l["$nil?"]())&&i(a)&&(l=o.$loc(a)),i(l["$nil?"]())&&i(n)&&(l=n.$loc().$expression()),i(l["$nil?"]())&&i(t)&&(l=t.$loc().$expression()),i(l["$nil?"]())&&(l=o.$loc(e)),U(U(S("Source"),"Map"),"RescueBody").$new(o.$loc(e),o.$loc(r),o.$loc(a),o.$loc(e).$join(l))})),n(M,"$eh_keyword_map",(function(e,t,r,n,a){var s=this,o=k,$=k;return o=i(e["$nil?"]())?i(t["$nil?"]())?r.$first().$loc().$expression():s.$loc(t):e.$loc().$expression(),$=i(n)?i(a["$nil?"]())?s.$loc(n):a.$loc().$expression():l(r.$last()["$nil?"]())?r.$last().$loc().$expression():s.$loc(t),U(U(S("Source"),"Map"),"Condition").$new(s.$loc(t),k,s.$loc(n),k,o.$join($))})),n(M,"$guard_map",(function(e,t){var r,n=k;return n=this.$loc(e),r=t.$loc().$expression(),U(U(S("Source"),"Map"),"Keyword").$new(n,k,k,n.$join(r))})),n(M,"$static_string",(function(e){try{var t=x("return");return $(e,"map",[],(function e(r){var n=null==e.$$s?this:e.$$s,a=k;switch(null==r&&(r=k),r.$type().valueOf()){case"str":return r.$children()["$[]"](0);case"begin":if(i(a=n.$static_string(r.$children())))return a;t.$throw(k,e.$$is_lambda);break;default:t.$throw(k,e.$$is_lambda)}}),{$$s:this,$$ret:t}).$join()}catch(e){if(e===t)return e.$v;throw e}finally{t.is_orphan=!0}})),n(M,"$static_regexp",(function(e,t){var r=k;return r=this.$static_string(e),i(r["$nil?"]())?k:(r=i(t.$children()["$include?"]("u"))?r.$encode(U(S("Encoding"),"UTF_8")):i(t.$children()["$include?"]("e"))?r.$encode(U(S("Encoding"),"EUC_JP")):i(t.$children()["$include?"]("s"))?r.$encode(U(S("Encoding"),"WINDOWS_31J")):i(t.$children()["$include?"]("n"))?r.$encode(U(S("Encoding"),"BINARY")):r,S("Regexp").$new(r,i(t.$children()["$include?"]("x"))?U(S("Regexp"),"EXTENDED"):k))})),n(M,"$static_regexp_node",(function(e){var t,r=k,n=k;return o(e.$type(),"regexp")?i(p(this.parser.$version(),33))&&i($(e.$children()["$[]"](d(0,-2,!1)),"any?",[],(function(e){return null==e&&(e=k),e.$type()["$!="]("str")})))?k:(r=(t=[e.$children()["$[]"](d(0,-2,!1)),e.$children()["$[]"](-1)])[0],n=t[1],this.$static_regexp(r,n)):k})),n(M,"$collapse_string_parts?",(function(e){var t;return i(t=e["$one?"]())?["str","dstr"]["$include?"](e.$first().$type()):t})),n(M,"$value",(function(e){return e["$[]"](0)})),n(M,"$string_value",(function(e){return i(e["$[]"](0)["$valid_encoding?"]())||this.$diagnostic("error","invalid_encoding",k,e["$[]"](1)),e["$[]"](0)})),n(M,"$loc",(function(e){return i(e)&&i(e["$[]"](0))?e["$[]"](1):k})),n(M,"$diagnostic",(function(e,t,r,n,a){return null==a&&(a=[]),this.parser.$diagnostics().$process(S("Diagnostic").$new(e,t,r,n,a)),o(e,"error")?this.parser.$send("yyerror"):k}),-5),n(M,"$validate_definee",(function(e){switch(e.$type().valueOf()){case"int":case"str":case"dstr":case"sym":case"dsym":case"regexp":case"array":case"hash":return this.$diagnostic("error","singleton_literal",k,e.$loc().$expression()),!1;default:return!0}})),n(M,"$rewrite_hash_args_to_kwargs",(function(e){var t;return i(e["$any?"]())&&i(this["$kwargs?"](e.$last()))?(t=[f(e.$length(),1),e["$[]"](f(e.$length(),1)).$updated("kwargs")],$(e,"[]=",t),t[t.length-1]):i(m(e.$length(),1))&&o(e.$last().$type(),"block_pass")&&i(this["$kwargs?"](e["$[]"](f(e.$length(),2))))?(t=[f(e.$length(),2),e["$[]"](f(e.$length(),2)).$updated("kwargs")],$(e,"[]=",t),t[t.length-1]):k})),n(M,"$kwargs?",(function(e){var t,r;return i(t=i(r=e.$type()["$=="]("hash"))?e.$loc().$begin()["$nil?"]():r)?e.$loc().$end()["$nil?"]():t}))}(e.$r(M)("Builders"),0,M)}(w[0],w)},Opal.modules["parser/context"]=function(e){var t=e.module,r=e.klass,n=e.const_set,a=e.def,s=e.send,i=e.to_a,o=e.truthy,l=[];e.nil;return e.add_stubs("reset,attr_accessor,in_block,in_lambda"),function(l,$){var u=[t(l,"Parser")].concat($);return function(t,l,$){var u=r(t,null,"Context"),c=[u].concat($),_=e.$r(c);return n(c[0],"FLAGS",["in_defined","in_kwarg","in_argdef","in_def","in_class","in_block","in_lambda"]),a(u,"$initialize",(function(){return this.$reset()})),a(u,"$reset",(function(){var e=this;return e.in_defined=!1,e.in_kwarg=!1,e.in_argdef=!1,e.in_def=!1,e.in_class=!1,e.in_block=!1,e.in_lambda=!1})),s(u,"attr_accessor",i(_("FLAGS"))),a(u,"$in_dynamic_block?",(function(){var e;return o(e=this.$in_block())?e:this.$in_lambda()}))}(u[0],0,u)}(l[0],l)},Opal.modules["parser/max_numparam_stack"]=function(e){var t=e.module,r=e.klass,n=e.const_set,a=e.def,s=e.truthy,i=e.rb_gt,o=e.ensure_kwargs,l=e.get_kwarg,$=e.send,u=[],c=e.nil;return e.add_stubs("attr_reader,==,size,set,top,>,max,[],last,push,pop,private,[]="),function(u,_){var p=[t(u,"Parser")].concat(_);return function(t,u,_){var p=r(t,null,"MaxNumparamStack"),m=[p].concat(_),d=e.$r(m);return p.$$prototype.stack=c,p.$attr_reader("stack"),n(m[0],"ORDINARY_PARAMS",-1),a(p,"$initialize",(function(){return this.stack=[]})),a(p,"$empty?",(function(){return this.stack.$size()["$=="](0)})),a(p,"$has_ordinary_params!",(function(){return this.$set(d("ORDINARY_PARAMS"))})),a(p,"$has_ordinary_params?",(function(){return this.$top()["$=="](d("ORDINARY_PARAMS"))})),a(p,"$has_numparams?",(function(){var e;return s(e=this.$top())?i(this.$top(),0):e})),a(p,"$register",(function(e){return this.$set([this.$top(),e].$max())})),a(p,"$top",(function(){return this.stack.$last()["$[]"]("value")})),a(p,"$push",(function(e){var t;return e=o(e),t=l(e,"static"),this.stack.$push(new Map([["value",0],["static",t]]))})),a(p,"$pop",(function(){return this.stack.$pop()["$[]"]("value")})),p.$private(),a(p,"$set",(function(e){var t;return t=["value",e],$(this.stack.$last(),"[]=",t),t[t.length-1]}))}(p[0],0,p)}(u[0],u)},Opal.modules["parser/current_arg_stack"]=function(e){var t,r=e.module,n=e.klass,a=e.def,s=e.rb_minus,i=e.send,o=[],l=e.nil;return e.add_stubs("attr_reader,freeze,==,size,<<,[]=,-,length,pop,clear,last"),t=o,function(e,t){var r=n(e,null,"CurrentArgStack");return r.$$prototype.stack=l,r.$attr_reader("stack"),a(r,"$initialize",(function(){return this.stack=[],this.$freeze()})),a(r,"$empty?",(function(){return this.stack.$size()["$=="](0)})),a(r,"$push",(function(e){return this.stack["$<<"](e)})),a(r,"$set",(function(e){var t;return t=[s(this.stack.$length(),1),e],i(this.stack,"[]=",t),t[t.length-1]})),a(r,"$pop",(function(){return this.stack.$pop()})),a(r,"$reset",(function(){return this.stack.$clear()})),a(r,"$top",(function(){return this.stack.$last()}))}([r(o[0],"Parser")].concat(t)[0])},Opal.modules["parser/variables_stack"]=function(e){var t=e.module,r=e.klass,n=e.def,a=[],s=e.nil;return e.add_stubs("push,empty?,<<,new,pop,clear,last,to_sym,include?"),function(a,i){var o=[t(a,"Parser")].concat(i);return function(t,a,i){var o=r(t,null,"VariablesStack"),l=[o].concat(i),$=e.$r(l);return o.$$prototype.stack=s,n(o,"$initialize",(function(){return this.stack=[],this.$push()})),n(o,"$empty?",(function(){return this.stack["$empty?"]()})),n(o,"$push",(function(){return this.stack["$<<"]($("Set").$new())})),n(o,"$pop",(function(){return this.stack.$pop()})),n(o,"$reset",(function(){return this.stack.$clear()})),n(o,"$declare",(function(e){return this.stack.$last()["$<<"](e.$to_sym())})),n(o,"$declared?",(function(e){return this.stack.$last()["$include?"](e.$to_sym())}))}(o[0],0,o)}(a[0],a)},Opal.modules["parser/base"]=function(e){var t=e.module,r=e.klass,n=e.defs,a=e.send,s=e.gvars,i=e.eqeq,o=e.truthy,l=e.def,$=e.not,u=e.eqeqeq,c=e.annotate_regexp,_=e.to_ary,p=[],m=e.nil,d=e.$$$;return e.add_stubs("default_parser,setup_source_buffer,default_encoding,parse,parse_with_comments,read,new,all_errors_are_fatal=,diagnostics,ignore_warnings=,consumer=,lambda,puts,render,force_encoding,dup,==,name,raw_source=,source=,private_class_method,attr_reader,version,diagnostics=,static_env=,context=,parser=,[],class,reset,source_buffer=,do_parse,comments=,comments,tokens=,!,raise,tokens,private,advance,===,diagnostic,map,process,yyerror,token_to_str"),function(p,f){var h=[t(p,"Parser")].concat(f),g=e.$r(h);return function(t,p,f){var h=r(t,p,"Base"),g=[h].concat(f),b=e.$r(g),v=h.$$prototype;return v.lexer=v.diagnostics=v.static_env=v.context=v.builder=v.current_arg_stack=v.pattern_variables=v.pattern_hash_keys=m,n(h,"$parse",(function(e,t,r){var n,a=m;return null==t&&(t="(string)"),null==r&&(r=1),a=this.$default_parser(),n=this.$setup_source_buffer(t,r,e,a.$default_encoding()),a.$parse(n)}),-2),n(h,"$parse_with_comments",(function(e,t,r){var n,a=m;return null==t&&(t="(string)"),null==r&&(r=1),a=this.$default_parser(),n=this.$setup_source_buffer(t,r,e,a.$default_encoding()),a.$parse_with_comments(n)}),-2),n(h,"$parse_file",(function(e){return this.$parse(b("File").$read(e),e)})),n(h,"$parse_file_with_comments",(function(e){return this.$parse_with_comments(b("File").$read(e),e)})),n(h,"$default_parser",(function(){var e=m;return(e=this.$new()).$diagnostics()["$all_errors_are_fatal="](!0),e.$diagnostics()["$ignore_warnings="](!0),e.$diagnostics()["$consumer="](a(this,"lambda",[],(function(e){return null==s.stderr&&(s.stderr=m),null==e&&(e=m),s.stderr.$puts(e.$render())}))),e})),n(h,"$setup_source_buffer",(function(e,t,r,n){var a=m;return r=r.$dup().$force_encoding(n),a=d(b("Source"),"Buffer").$new(e,t),i(this.$name(),"Parser::Ruby18")?a["$raw_source="](r):a["$source="](r),a})),h.$private_class_method("setup_source_buffer"),h.$attr_reader("lexer"),h.$attr_reader("diagnostics"),h.$attr_reader("builder"),h.$attr_reader("static_env"),h.$attr_reader("source_buffer"),h.$attr_reader("context"),h.$attr_reader("max_numparam_stack"),h.$attr_reader("current_arg_stack"),h.$attr_reader("pattern_variables"),h.$attr_reader("pattern_hash_keys"),l(h,"$initialize",(function(e){var t=this;return null==e&&(e=d(d(b("Parser"),"Builders"),"Default").$new()),t.diagnostics=d(b("Diagnostic"),"Engine").$new(),t.static_env=b("StaticEnvironment").$new(),t.context=b("Context").$new(),t.max_numparam_stack=b("MaxNumparamStack").$new(),t.current_arg_stack=b("CurrentArgStack").$new(),t.pattern_variables=b("VariablesStack").$new(),t.pattern_hash_keys=b("VariablesStack").$new(),t.lexer=b("Lexer").$new(t.$version()),t.lexer["$diagnostics="](t.diagnostics),t.lexer["$static_env="](t.static_env),t.lexer["$context="](t.context),t.builder=e,t.builder["$parser="](t),t.last_token=m,o(d(t.$class(),"Racc_debug_parser"))&&o(b("ENV")["$[]"]("RACC_DEBUG"))&&(t.yydebug=!0),t.$reset()}),-1),l(h,"$reset",(function(){var e=this;return e.source_buffer=m,e.lexer.$reset(),e.static_env.$reset(),e.context.$reset(),e.current_arg_stack.$reset(),e.pattern_variables.$reset(),e.pattern_hash_keys.$reset(),e})),l(h,"$parse",(function(e){var t,r=this,n=m;return function(){try{return r.lexer["$source_buffer="](e),r.source_buffer=e,o(n=r.$do_parse())?n:m}finally{r.source_buffer=m,t=[m],a(r.lexer,"source_buffer=",t)}}()})),l(h,"$parse_with_comments",(function(e){var t,r=this;return function(){try{return r.lexer["$comments="]([]),[r.$parse(e),r.lexer.$comments()]}finally{t=[m],a(r.lexer,"comments=",t)}}()})),l(h,"$tokenize",(function(t,r){var n,s=this,i=m;return null==r&&(r=!1),function(){try{s.lexer["$tokens="]([]),s.lexer["$comments="]([]);try{i=s.$parse(t)}catch(t){if(!e.rescue(t,[d(b("Parser"),"SyntaxError")]))throw t;try{$(r)&&s.$raise()}finally{e.pop_exception(t)}}return[i,s.lexer.$comments(),s.lexer.$tokens()]}finally{n=[m],a(s.lexer,"tokens=",n),n[n.length-1],n=[m],a(s.lexer,"comments=",n),n[n.length-1]}}()}),-2),h.$private(),l(h,"$next_token",(function(){var e;return e=this.lexer.$advance(),this.last_token=e,e})),l(h,"$check_kwarg_name",(function(e){var t;return u(c(/^[a-z_]/mu,null,""),t=e["$[]"](0))?m:u(c(/^[A-Z]/mu,null,""),t)?this.$diagnostic("error","argument_const",m,e):m})),l(h,"$diagnostic",(function(e,t,r,n,s){var o,l,$;return null==s&&(s=[]),o=_(n),null==o[0]?m:o[0],l=null==o[1]?m:o[1],$=a(s,"map",[],(function(e){var t;return null==e&&(e=m),t=_(e),null==t[0]?m:t[0],null==t[1]?m:t[1]})),this.diagnostics.$process(b("Diagnostic").$new(e,t,r,l,$)),i(e,"error")?this.$yyerror():m}),-5),l(h,"$on_error",(function(e,t,r){var n,a,s;return a=this.$token_to_str(e),null==(n=_(t))[0]?m:n[0],s=null==n[1]?m:n[1],this.diagnostics.$process(b("Diagnostic").$new("error","unexpected_token",new Map([["token",a]]),s))}))}(h[0],d(g("Racc"),"Parser"),h)}(p[0],p)},Opal.modules["parser/rewriter"]=function(e){var t=e.module,r=e.klass,n=e.def,a=e.const_set,s=e.slice,i=e.send2,o=e.find_super,l=e.to_a,$=[],u=e.nil,c=e.$$$;return e.add_stubs("new,process,include?,type,remove,wrap,insert_before,insert_after,replace,freeze,join,extend,warn_of_deprecation,class,warned_of_deprecation="),function($,_){var p=[t($,"Parser")].concat(_),m=e.$r(p);return function(t,$,_){var p=r(t,$,"Rewriter"),m=[p].concat(_),d=e.$r(m);return p.$$prototype.source_rewriter=u,n(p,"$rewrite",(function(e,t){var r=this;return r.source_rewriter=c(d("Source"),"Rewriter").$new(e),r.$process(t),r.source_rewriter.$process()})),n(p,"$assignment?",(function(e){return["lvasgn","ivasgn","gvasgn","cvasgn","casgn"]["$include?"](e.$type())})),n(p,"$remove",(function(e){return this.source_rewriter.$remove(e)})),n(p,"$wrap",(function(e,t,r){return this.source_rewriter.$wrap(e,t,r)})),n(p,"$insert_before",(function(e,t){return this.source_rewriter.$insert_before(e,t)})),n(p,"$insert_after",(function(e,t){return this.source_rewriter.$insert_after(e,t)})),n(p,"$replace",(function(e,t){return this.source_rewriter.$replace(e,t)})),a(m[0],"DEPRECATION_WARNING",["Parser::Rewriter is deprecated.","Please update your code to use Parser::TreeRewriter instead"].$join("\n").$freeze()),p.$extend(d("Deprecation")),n(p,"$initialize",(function e(t){var r,n=e.$$p||u,a=this;return e.$$p=null,r=s(arguments),a.$class().$warn_of_deprecation(),c(d("Source"),"Rewriter")["$warned_of_deprecation="](!0),i(a,o(a,"initialize",e,!1,!0),"initialize",l(r),n)}),-1)}(p[0],c(c(m("Parser"),"AST"),"Processor"),p)}($[0],$)},Opal.modules["parser/tree_rewriter"]=function(e){var t=e.module,r=e.klass,n=e.ensure_kwargs,a=e.kwrestargs,s=e.def,i=[],o=e.nil,l=e.$$$;return e.add_stubs("new,process,include?,type,remove,wrap,insert_before,insert_after,replace"),function(i,$){var u=[t(i,"Parser")].concat($),c=e.$r(u);return function(t,i,$){var u=r(t,i,"TreeRewriter"),c=[u].concat($),_=e.$r(c);return u.$$prototype.source_rewriter=o,s(u,"$rewrite",(function(t,r,s){var i,o=this;return s=n(s),i=a(s,{}),o.source_rewriter=l(l(_("Parser"),"Source"),"TreeRewriter").$new(t,e.to_hash(i)),o.$process(r),o.source_rewriter.$process()}),-3),s(u,"$assignment?",(function(e){return["lvasgn","ivasgn","gvasgn","cvasgn","casgn"]["$include?"](e.$type())})),s(u,"$remove",(function(e){return this.source_rewriter.$remove(e)})),s(u,"$wrap",(function(e,t,r){return this.source_rewriter.$wrap(e,t,r)})),s(u,"$insert_before",(function(e,t){return this.source_rewriter.$insert_before(e,t)})),s(u,"$insert_after",(function(e,t){return this.source_rewriter.$insert_after(e,t)})),s(u,"$replace",(function(e,t){return this.source_rewriter.$replace(e,t)}))}(u[0],l(l(c("Parser"),"AST"),"Processor"),u)}(i[0],i)},Opal.modules.parser=function(e){var t=e.truthy,r=e.annotate_regexp,n=e.module,a=e.eqeq,s=e.top,i=[],o=e.$r(i),l=(e.nil,e.$$$);return e.add_stubs("=~,raise,require,=="),t(o("RUBY_VERSION")["$=~"](r(/^1\.[89]\./mu,null,"")))&&(s.$require("./parser.rb/../parser/version"),s.$raise(o("LoadError"),"parser v"+l(o("Parser"),"VERSION")+" cannot run on Ruby "+o("RUBY_VERSION")+".\nPlease upgrade to Ruby 2.0.0 or higher, or use an older version of the parser gem.\n")),s.$require("set"),s.$require("racc/parser"),s.$require("ast"),function(t,r){var s=n(t,"Parser"),i=[s].concat(r),o=e.$r(i);return s.$require("./parser.rb/../parser/version"),s.$require("./parser.rb/../parser/messages"),s.$require("./parser.rb/../parser/deprecation"),function(e){var t=n(e,"AST");t.$require("./parser.rb/../parser/ast/node"),t.$require("./parser.rb/../parser/ast/processor"),t.$require("./parser.rb/../parser/meta")}(i[0]),function(e){var t=n(e,"Source");t.$require("./parser.rb/../parser/source/buffer"),t.$require("./parser.rb/../parser/source/range"),t.$require("./parser.rb/../parser/source/comment"),t.$require("./parser.rb/../parser/source/comment/associator"),t.$require("./parser.rb/../parser/source/rewriter"),t.$require("./parser.rb/../parser/source/rewriter/action"),t.$require("./parser.rb/../parser/source/tree_rewriter"),t.$require("./parser.rb/../parser/source/tree_rewriter/action"),t.$require("./parser.rb/../parser/source/map"),t.$require("./parser.rb/../parser/source/map/operator"),t.$require("./parser.rb/../parser/source/map/collection"),t.$require("./parser.rb/../parser/source/map/constant"),t.$require("./parser.rb/../parser/source/map/variable"),t.$require("./parser.rb/../parser/source/map/keyword"),t.$require("./parser.rb/../parser/source/map/definition"),t.$require("./parser.rb/../parser/source/map/method_definition"),t.$require("./parser.rb/../parser/source/map/send"),t.$require("./parser.rb/../parser/source/map/index"),t.$require("./parser.rb/../parser/source/map/condition"),t.$require("./parser.rb/../parser/source/map/ternary"),t.$require("./parser.rb/../parser/source/map/for"),t.$require("./parser.rb/../parser/source/map/rescue_body"),t.$require("./parser.rb/../parser/source/map/heredoc"),t.$require("./parser.rb/../parser/source/map/objc_kwarg")}(i[0]),s.$require("./parser.rb/../parser/syntax_error"),s.$require("./parser.rb/../parser/clobbering_error"),s.$require("./parser.rb/../parser/unknown_encoding_in_magic_comment_error"),s.$require("./parser.rb/../parser/diagnostic"),s.$require("./parser.rb/../parser/diagnostic/engine"),s.$require("./parser.rb/../parser/static_environment"),a(o("RUBY_ENGINE"),"truffleruby")?s.$require("./parser.rb/../parser/lexer-F0"):s.$require("./parser.rb/../parser/lexer-F1"),s.$require("./parser.rb/../parser/lexer-strings"),s.$require("./parser.rb/../parser/lexer/literal"),s.$require("./parser.rb/../parser/lexer/stack_state"),s.$require("./parser.rb/../parser/lexer/dedenter"),function(e){n(e,"Builders").$require("./parser.rb/../parser/builders/default")}(i[0]),s.$require("./parser.rb/../parser/context"),s.$require("./parser.rb/../parser/max_numparam_stack"),s.$require("./parser.rb/../parser/current_arg_stack"),s.$require("./parser.rb/../parser/variables_stack"),s.$require("./parser.rb/../parser/base"),s.$require("./parser.rb/../parser/rewriter"),s.$require("./parser.rb/../parser/tree_rewriter")}(i[0],i)},Opal.modules["parser/ruby32"]=function(e){var t=e.module,r=e.klass,n=e.return_val,a=e.def,s=e.truthy,i=e.not,o=e.annotate_regexp,l=e.send,$=e.rb_gt,u=e.thrower,c=e.hash_rehash,_=e.const_set,p=e.to_a,m=e.to_ary,d=e.eqeq,f=e.slice,h=e.top,g=[],b=e.nil,v=e.$$$;return e.add_stubs("require,end_with?,[],!,include?,diagnostic,extend_static,push,cmdarg,cond,unextend,pop,children,in_dynamic_block?,declared?,static_env,=~,expression,loc,has_ordinary_params?,max_numparam_stack,dup,stack,reverse_each,>,declare,register,to_i,make_shareable,compstmt,<<,preexe,nil?,empty?,begin_body,state=,alias,gvar,back_ref,undef_method,condition_mod,loop_mod,rescue_body,postexe,multi_assign,assign,array,op_assign,index,call_method,const_op_assignable,const_fetch,endless_method_name,def_endless_method,local_pop,in_def=,in_def,def_endless_singleton,logical_op,not_op,command_start=,in_kwarg,in_kwarg=,match_pattern,match_pattern_p,local_push,in_argdef=,in_block=,in_block,block,keyword_cmd,multi_lhs,begin,splat,concat,assignable,index_asgn,==,attr_asgn,const_global,const,symbol_internal,range_inclusive,range_exclusive,binary_op,unary_op,match_op,in_defined=,ternary,associate,declared_forward_args?,forwarded_args,block_pass,declared_anonymous_blockarg?,declared_anonymous_restarg?,forwarded_restarg,begin_keyword,condition,loop,case,case_match,for,in_class=,def_class,in_class,def_sclass,def_module,def_method,def_singleton,context,in_lambda,arg,restarg,size,procarg0,args,has_ordinary_params!,set,shadowarg,extend_dynamic,in_lambda=,call_lambda,has_numparams?,numargs,top,any?,when,in_pattern,if_guard,unless_guard,match_with_trailing_comma,array_pattern,find_pattern,hash_pattern,match_as,match_alt,const_pattern,match_rest,match_pair,match_label,match_nil_pattern,accessible,match_var,ident,pin,string_compose,dedent_string,dedent_level,string,character,xstring_compose,regexp_options,regexp_compose,words_compose,word,symbols_compose,string_internal,ivar,cvar,symbol,symbol_compose,respond_to?,negate,unary_num,integer,float,rational,complex,nil,self,true,false,__FILE__,__LINE__,__ENCODING__,nth_ref,declare_forward_args,forward_arg,check_kwarg_name,kwoptarg,kwarg,kwnilarg,kwrestarg,declare_anonymous_kwrestarg,optarg,declare_anonymous_restarg,blockarg,declare_anonymous_blockarg,pair,pair_keyword,pair_label,pair_quoted,kwsplat,declared_anonymous_kwrestarg?,forwarded_kwrestarg,yyerrok"),h.$require("racc/parser.rb"),h.$require("parser/ruby32.rb/../../parser"),function(h,g){var y=[t(h,"Parser")].concat(g),x=e.$r(y);return function(t,h,g){var y,x,w,k,U,E,M,q,S,O,A=r(t,h,"Ruby32"),T=[A].concat(g),N=e.$r(T),z=A.$$prototype;return z.static_env=z.lexer=z.max_numparam_stack=z.context=z.current_arg_stack=z.builder=z.pattern_variables=z.pattern_hash_keys=z.last_token=b,a(A,"$version",n(32)),a(A,"$default_encoding",(function(){return v(N("Encoding"),"UTF_8")})),a(A,"$endless_method_name",(function(e){return i(["===","==","!=","<=",">="]["$include?"](e["$[]"](0)))&&s(e["$[]"](0)["$end_with?"]("="))?this.$diagnostic("error","endless_setter",b,e):b})),a(A,"$local_push",(function(){var e=this;return e.static_env.$extend_static(),e.lexer.$cmdarg().$push(!1),e.lexer.$cond().$push(!1),e.max_numparam_stack.$push(new Map([["static",!0]]))})),a(A,"$local_pop",(function(){var e=this;return e.static_env.$unextend(),e.lexer.$cmdarg().$pop(),e.lexer.$cond().$pop(),e.max_numparam_stack.$pop()})),a(A,"$try_declare_numparam",(function(e){var t=this,r=b,n=b,a=b;return r=e.$children()["$[]"](0),!!(s(r["$=~"](o(/^_[1-9]$/u,"\\A_[1-9]\\z","")))&&i(t.$static_env()["$declared?"](r))&&s(t.context["$in_dynamic_block?"]()))&&(n=e.$loc().$expression(),s(t.$max_numparam_stack()["$has_ordinary_params?"]())&&t.$diagnostic("error","ordinary_param_defined",b,[b,n]),(a=t.$max_numparam_stack().$stack().$dup()).$pop(),function(){try{var e=u("break");return l(a,"reverse_each",[],(function t(r){var a=null==t.$$s?this:t.$$s,i=b;if(null==r&&(r=b),!s(r["$[]"]("static")))return i=$(r["$[]"]("value"),0),s(i)?a.$diagnostic("error","numparam_used_in_outer_scope",b,[b,n]):b;e.$throw(b,t.$$is_lambda)}),{$$s:t})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}(),t.$static_env().$declare(r),t.$max_numparam_stack().$register(r["$[]"](1).$to_i()),!0)})),y=e.large_array_unpack("-614,222,223,222,223,234,-116,-614,-614,-614,928,623,-614,-614,-614,228,-614,312,240,664,127,265,227,623,-614,126,-614,-614,-614,222,223,225,699,666,-117,-124,-614,-614,623,-614,-614,-614,-614,-614,623,623,623,-116,-117,-729,700,-123,895,262,-124,928,927,264,263,241,312,-740,836,-626,-119,-121,-614,-614,-614,-614,-614,-614,-614,-614,-614,-614,-614,-614,-614,-614,229,307,-614,-614,-614,663,-614,-614,831,241,-614,1000,-118,-614,-614,241,-614,241,-614,665,-614,-511,-614,-614,311,-614,-614,-614,-614,-614,-123,-614,-615,-614,-119,-107,312,222,223,-615,-615,-615,-116,241,-615,-615,-615,-614,-615,127,-614,-614,-614,-614,126,-614,-615,-614,-615,-615,-615,127,-614,-108,-115,-614,126,311,-615,-615,-121,-615,-615,-615,-615,-615,127,-120,-118,989,-114,126,127,127,127,-116,-117,126,126,126,-116,-117,-124,-110,-112,-120,-122,-124,-615,-615,-615,-615,-615,-615,-615,-615,-615,-615,-615,-615,-615,-615,127,-122,-615,-615,-615,126,-615,-615,999,-109,-615,311,3,-615,-615,-729,-615,928,-615,127,-615,651,-615,-615,126,-615,-615,-615,-615,-615,-322,-615,241,-615,123,-627,-123,-322,-322,-322,-119,-123,-715,-322,-322,-119,-322,-615,-715,-716,-615,-615,-615,-615,-322,-615,228,-615,312,234,241,651,-615,305,136,-615,-322,-322,-110,-322,-322,-322,-322,-322,104,105,-121,241,-716,219,614,-121,-112,-120,-118,653,652,525,-120,-118,104,105,-111,-113,-117,862,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,220,228,-322,-322,-322,-740,690,-322,305,-122,-322,229,307,-322,-122,653,652,649,-322,221,-322,651,-322,-322,-110,-322,-322,-322,-322,-322,238,-322,-720,-322,699,311,-124,603,-112,-720,-720,-720,106,107,-729,-720,-720,-322,-720,127,-322,-322,951,-113,126,-322,-720,-720,106,107,-109,922,-322,224,-110,-122,229,-110,-720,-720,923,-720,-720,-720,-720,-720,-102,-614,-112,-110,241,-112,-111,301,-614,653,652,651,-88,-124,685,651,127,-112,234,864,-123,126,-720,-720,-720,-720,-720,-720,-720,-720,-720,-720,-720,-720,-720,-720,362,757,-720,-720,-720,-358,691,-720,-119,363,-720,502,-358,-720,-109,686,651,-121,-720,1034,-720,-358,-720,-720,651,-720,-720,-720,-720,-720,-614,-720,-720,-720,241,-715,-111,-119,-740,653,652,649,651,653,652,649,238,-720,651,503,-720,-720,-715,-111,-109,-720,803,-109,651,-720,1062,1055,-720,234,432,-120,-720,-720,-720,-109,-358,-720,-720,-720,-121,-720,-111,127,-118,-111,653,652,126,-720,-720,-720,-720,-720,653,652,654,-111,-716,-115,473,-720,-720,1062,-720,-720,-720,-720,-720,-633,-614,-124,653,652,656,651,630,-614,653,652,658,513,-715,878,836,-740,-614,524,653,652,662,-720,-720,-720,-720,-720,-720,-720,-720,-720,-720,-720,-720,-720,-720,-715,526,-720,-720,-720,-615,924,-720,222,223,-720,636,-615,-720,-720,637,-720,-716,-720,127,-720,-615,-720,-720,126,-720,-720,-720,-720,-720,-614,-720,-720,-720,653,652,667,-118,228,-615,-716,-622,-621,282,283,522,-615,-720,-622,-621,-720,-720,-720,-720,523,-720,-623,-720,-626,-322,222,223,-720,-623,-627,-120,-322,-322,-322,527,-615,-322,-322,-322,-620,-322,895,240,630,281,280,-620,-617,-322,561,-322,-322,-322,429,-617,510,509,573,431,430,-322,-322,603,-322,-322,-322,-322,-322,229,-615,-107,-622,-621,-618,-619,636,-108,575,934,959,-618,-619,-116,930,577,636,-623,931,-117,959,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-620,757,-322,-322,-322,-114,925,-322,-617,685,-322,502,241,-322,-322,617,-322,-123,-322,136,-322,241,-322,-322,617,-322,-322,-322,-322,-322,-322,-322,-87,-322,-618,-619,90,-322,-322,-322,952,953,241,-322,-322,617,-322,-322,91,503,-322,-322,-322,-322,-322,-322,-110,-322,92,984,895,1055,-322,686,241,-122,-322,-322,-119,-322,-322,-322,-322,-322,241,1147,1148,1194,494,-624,491,490,489,499,492,588,-624,878,494,589,491,490,489,502,492,-624,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-112,596,-322,-322,-322,497,690,-322,984,895,-322,316,-121,-322,507,506,510,509,-322,241,-322,503,-322,-322,-109,-322,-322,-322,-322,-322,234,-322,-720,-322,-624,234,-118,307,600,-720,-720,-720,606,265,609,-720,-720,-322,-720,241,-322,-322,618,-322,619,-322,-720,-720,577,630,421,488,-322,634,635,-122,643,668,-720,-720,671,-720,-720,-720,-720,-720,672,-293,674,675,494,-625,491,490,489,499,492,956,-625,109,108,679,241,110,683,502,684,-625,-720,-720,-720,-720,-720,-720,-720,-720,-720,-720,-720,-720,-720,-720,307,697,-720,-720,-720,497,691,-720,698,241,-720,702,958,-720,507,506,510,509,-720,705,-720,503,-720,-720,706,-720,-720,-720,-720,-720,499,-720,-720,-720,-625,708,228,710,-387,722,502,-313,228,595,723,727,729,-720,-313,605,-720,-720,593,-720,735,-720,228,-313,523,736,265,488,-720,633,265,-120,7,81,82,83,11,65,631,510,509,71,72,265,503,265,75,-720,73,74,76,35,36,79,80,130,131,132,133,134,84,33,32,115,114,116,117,229,241,23,791,241,-313,229,241,10,53,9,12,119,118,120,111,64,109,108,112,229,110,121,122,228,104,105,49,50,48,228,639,-720,241,-323,-102,806,678,241,-720,641,-323,609,817,-715,822,676,241,-720,45,-323,824,38,827,832,66,67,-323,833,68,837,40,861,865,-323,52,866,-720,-294,265,879,856,857,-323,24,858,121,122,561,102,90,93,94,561,95,97,96,98,891,229,895,913,91,101,916,229,917,-720,241,-323,85,262,92,106,107,264,263,46,47,334,81,82,83,11,65,920,241,929,71,72,946,947,-323,75,948,73,74,76,35,36,79,80,257,961,963,301,969,84,33,32,115,114,116,117,971,1157,23,491,490,489,973,492,10,53,336,12,119,118,120,111,64,109,108,112,575,110,121,122,577,104,105,49,50,48,265,269,270,271,272,282,283,277,278,273,274,-322,258,259,817,241,275,276,-322,45,307,256,338,-716,307,66,67,-322,817,68,265,40,262,895,268,52,264,263,986,260,261,281,280,266,24,267,987,241,241,102,90,93,94,228,95,97,96,98,997,241,1162,-296,91,101,241,279,1008,1012,-293,1160,85,1016,92,106,107,705,-322,46,47,7,81,82,83,11,65,700,1019,1021,71,72,1023,1025,1025,75,241,73,74,76,35,36,79,80,130,131,132,133,134,84,33,32,115,114,116,117,777,241,23,241,229,1053,1056,680,10,53,9,12,119,118,120,111,64,109,108,112,928,110,121,122,971,104,105,49,50,48,265,269,270,271,272,282,283,277,278,273,274,-322,258,259,1068,241,275,276,-322,45,817,1085,38,-716,1087,66,67,-322,1092,68,1093,40,262,1098,268,52,264,263,1099,260,261,281,280,266,24,267,1100,-297,1113,102,90,93,94,228,95,97,96,98,1114,1115,1185,241,91,101,241,279,241,-265,241,641,85,241,92,106,107,241,-322,46,47,334,81,82,83,11,65,928,1122,1123,71,72,241,1127,241,75,1130,73,74,76,35,36,79,80,130,131,132,133,134,84,33,32,115,114,116,117,705,1133,23,1136,229,1138,1140,680,10,53,336,12,119,118,120,111,64,109,108,112,241,110,121,122,-387,104,105,49,50,48,265,269,270,271,272,282,283,277,278,273,274,228,258,259,1152,1163,275,276,1185,45,1164,1025,38,499,1025,66,67,641,1025,68,1183,40,262,502,268,52,264,263,1186,260,261,281,280,266,24,267,1191,1192,697,102,90,93,94,1114,95,97,96,98,1202,1202,705,1204,91,101,1206,279,510,509,1208,1210,85,503,92,106,107,1210,229,46,47,334,81,82,83,11,65,241,1025,-716,71,72,-715,1227,1210,75,1210,73,74,76,35,36,79,80,130,131,132,133,134,84,33,32,115,114,116,117,1210,1210,23,,,,,892,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,269,270,271,272,282,283,277,278,273,274,,258,259,,,275,276,,45,,,38,,,66,67,,,68,,40,262,,268,52,264,263,,260,261,281,280,266,24,267,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,279,,,,,85,,92,106,107,,,46,47,334,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,921,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,269,270,271,272,282,283,277,278,273,274,,258,259,,,275,276,,45,,,38,,,66,67,,,68,,40,262,,268,52,264,263,,260,261,281,280,266,24,267,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,279,,,,,85,,92,106,107,,,46,47,334,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,1157,23,491,490,489,,492,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,269,270,271,272,282,283,277,278,273,274,,258,259,,,275,276,,45,,,38,,,66,67,,,68,,40,262,,268,52,264,263,,260,261,281,280,266,24,267,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,279,,,,,85,,92,106,107,,,46,47,334,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,269,270,271,272,282,283,277,278,273,274,,258,259,,,275,276,,45,,,338,,,66,67,,,68,,40,262,,268,52,264,263,,260,261,281,280,266,24,267,,,,102,90,93,94,,95,97,96,98,,,,,91,101,241,279,,,,,85,,92,106,107,,,46,47,334,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,269,270,271,272,282,283,277,278,273,274,,258,259,,,275,276,,45,,,338,,,66,67,,,68,,40,262,,268,52,264,263,,260,261,281,280,266,24,267,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,279,,,,,85,,92,106,107,,,46,47,334,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,269,270,271,272,282,283,277,278,273,274,,258,259,,,275,276,,45,,,38,,,66,67,,,68,,40,262,,268,52,264,263,,260,261,281,280,266,24,267,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,279,,,,,85,,92,106,107,,,46,47,334,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,269,270,271,272,282,283,277,278,273,274,,258,259,,,275,276,,45,,,38,,,66,67,,,68,,40,262,,268,52,264,263,,260,261,281,280,266,24,267,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,279,,,,,85,,92,106,107,,,46,47,334,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,269,270,271,272,282,283,277,278,273,274,,258,259,,,275,276,,45,,,38,,,66,67,,,68,,40,262,,268,52,264,263,,260,261,281,280,266,24,267,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,279,,,,,85,,92,106,107,,,46,47,334,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,269,270,271,272,282,283,277,278,273,274,,258,259,,,275,276,,45,,,38,,,66,67,,,68,,40,262,,268,52,264,263,,260,261,281,280,266,24,267,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,279,,,,,85,,92,106,107,,,46,47,334,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,269,270,271,272,282,283,277,278,273,274,,258,259,,,275,276,,45,,,38,,,66,67,,,68,,40,262,,268,52,264,263,,260,261,281,280,266,24,267,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,279,,,,,85,,92,106,107,,,46,47,334,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,269,270,271,272,282,283,277,278,273,274,,258,259,,,275,276,,45,,,38,,,66,67,,,68,,40,262,,268,52,264,263,,260,261,281,280,266,24,267,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,279,,,,,85,,92,106,107,,,46,47,334,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,494,23,491,490,489,,492,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,494,,491,490,489,,492,,715,,494,,491,490,489,,492,719,,45,,,38,,,66,67,,,68,494,40,491,490,489,52,492,715,,,,,,,24,,719,715,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,715,,,85,,92,106,107,,719,46,47,334,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,269,270,271,272,282,283,277,278,273,274,,-741,-741,,,275,276,,45,,,38,,,66,67,,265,68,,40,262,,268,52,264,263,,260,261,281,280,266,24,267,,,,102,90,93,94,,95,97,96,98,,,262,,91,101,264,263,,260,261,,85,,92,106,107,,,46,47,334,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,269,270,271,272,282,283,277,278,273,274,,-741,-741,,,275,276,,45,,,38,,,66,67,,265,68,,40,262,,268,52,264,263,,260,261,281,280,266,24,267,,,,102,90,93,94,,95,97,96,98,,,262,,91,101,264,263,,260,261,,85,,92,106,107,,,46,47,334,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,269,270,271,272,282,283,277,278,273,274,,-741,-741,,,275,276,,45,,,38,,,66,67,,,68,,40,262,,268,52,264,263,,260,261,281,280,266,24,267,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,494,,491,490,489,85,492,92,106,107,,,46,47,334,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,715,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,269,270,271,272,282,283,277,278,273,274,,-741,-741,,,275,276,,45,,,38,,,66,67,,,68,,40,262,,268,52,264,263,,260,261,281,280,266,24,267,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,494,,491,490,489,85,492,92,106,107,,,46,47,334,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,715,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,-741,-741,-741,-741,282,283,,,-741,-741,,,,,,275,276,,45,,,38,,,66,67,,,68,,40,262,,268,52,264,263,,260,261,281,280,266,24,267,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,46,47,334,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,-741,-741,-741,-741,282,283,,,-741,-741,,,,,,275,276,,45,,,38,,,66,67,,,68,,40,262,,268,52,264,263,,260,261,281,280,266,24,267,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,46,47,334,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,-741,-741,-741,-741,282,283,,,-741,-741,,,,,,275,276,,45,,,38,,,66,67,,,68,,40,262,,268,52,264,263,,260,261,281,280,266,24,267,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,46,47,334,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,-741,-741,-741,-741,282,283,,,-741,-741,,,,,,275,276,,45,,,38,,,66,67,,,68,,40,262,,268,52,264,263,,260,261,281,280,266,24,267,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,46,47,334,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,-741,-741,-741,-741,282,283,,,-741,-741,,,,,,275,276,,45,,,38,,,66,67,,,68,,40,262,,268,52,264,263,,260,261,281,280,266,24,267,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,46,47,334,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,-741,-741,-741,-741,282,283,,,-741,-741,,,,,,275,276,,45,,,38,,,66,67,,,68,,40,262,,268,52,264,263,,260,261,281,280,266,24,267,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,46,47,334,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,269,270,271,272,282,283,,,273,274,,,,,,275,276,,45,,,38,,,66,67,,,68,,40,262,,268,52,264,263,,260,261,281,280,266,24,267,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,46,47,334,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,269,270,271,272,282,283,277,,273,274,,,,,,275,276,,45,,,38,,,66,67,,,68,,40,262,,268,52,264,263,,260,261,281,280,266,24,267,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,46,47,334,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,,,,,,,,,,,,,,,,275,276,,45,,,38,,,66,67,,,68,,40,262,,268,52,264,263,,260,261,,,266,24,267,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,46,47,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,9,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,,,,,,,,,,,,,,,,275,276,,45,,,38,,,66,67,,,68,,40,262,,268,52,264,263,,260,261,,,266,24,267,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,265,,,,,,,,,,,,,,,,275,276,,246,,,254,,,66,67,,,68,,,262,,268,52,264,263,,260,261,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,-443,,46,47,,,,-443,-443,-443,,,-443,-443,-443,265,-443,,,,,,,,-443,-443,-443,-443,,,,275,276,,,,-443,-443,,-443,-443,-443,-443,-443,,,,262,,268,,264,263,,260,261,,,,,,,,,,,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,,,-443,-443,-443,,,-443,,307,-443,,,-443,-443,,-443,,-443,,-443,,-443,-443,,-443,-443,-443,-443,-443,-329,-443,-443,-443,,,,-329,-329,-329,,,-329,-329,-329,,-329,-443,265,,-443,-443,,-443,-329,-443,-329,-329,,,,,-443,,275,276,-329,-329,,-329,-329,-329,-329,-329,,,,,,,262,,,,264,263,,260,261,,,,,,,,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,,,-329,-329,-329,,,-329,,316,-329,,,-329,-329,,-329,,-329,,-329,,-329,-329,,-329,-329,-329,-329,-329,,-329,,-329,,,,,,,,,,,,,,-329,,,-329,-329,,-329,,-329,81,82,83,,65,,-329,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,328,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,325,,323,,52,,,329,,,,,,251,,,,,102,326,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,328,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,325,,323,,52,,,329,,,,,,251,,,,,102,326,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,328,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,325,,323,,52,,,329,,,,,,251,,,,,102,326,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,-314,,46,47,,,,-314,-314,-314,,,-314,-314,-314,,-314,,,,,,,,-314,,-314,-314,-314,,,,115,114,116,117,-314,-314,,-314,-314,-314,-314,-314,,,,,119,118,120,,,,,,,,,,,104,105,,,359,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,,,-314,-314,-314,,,-314,,,-314,,,-314,-314,,-314,,-314,,-314,,-314,-314,,-314,-314,-314,-314,-314,,-314,,-314,,102,90,93,94,,95,97,96,98,,,,-314,91,101,-314,-314,-314,-314,,-314,85,-314,92,106,107,,-314,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,45,,,38,,,66,67,,,68,,40,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,328,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,325,,,,52,,,329,,,,,,251,,,,,102,326,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,328,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,329,,,,,,251,,,,,102,326,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,127,,,,,126,85,,92,106,107,,,46,47,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,9,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,45,,,38,,,66,67,,,68,,40,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,421,85,,92,106,107,,,46,47,81,82,83,,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,46,47,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,45,,,38,,,66,67,,,68,,40,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,437,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,437,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,328,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,325,,323,,52,,,329,,,,,,251,,,,,102,326,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,241,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,328,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,325,,323,,52,,,329,,,,,,251,,,,,102,326,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,563,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,328,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,325,,323,,52,,,329,,,,,,251,,,,,102,326,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,328,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,325,,323,,52,,,329,,,,,,251,,,,,102,326,93,94,,95,97,96,98,,,,,91,101,241,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,46,47,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,45,,,38,,,66,67,,,68,,40,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,-275,,46,47,,,,-275,-275,-275,,,-275,-275,-275,,-275,,,,,,,,-275,-275,-275,-275,,,,,,,,,-275,-275,,-275,-275,-275,-275,-275,,,,,,,,,,,,,,,,,,,,,,,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,,,-275,-275,-275,,,-275,,307,-275,,,-275,-275,,-275,,-275,,-275,,-275,-275,,-275,-275,-275,-275,-275,,-275,-275,-275,494,,491,490,489,499,492,,,,,,,-275,,502,-275,-275,-721,-275,,-275,,,,-721,-721,-721,-275,,-721,-721,-721,,-721,,,497,,,,,-721,-721,-721,-721,-721,,510,509,,,,503,-721,-721,,-721,-721,-721,-721,-721,,,,,,,,,,,,,,,,,,,,,,,-721,-721,-721,-721,-721,-721,-721,-721,-721,-721,-721,-721,-721,-721,,,-721,-721,-721,,,-721,,,-721,,,-721,-721,,-721,,-721,,-721,,-721,-721,,-721,-721,-721,-721,-721,,-721,-721,-721,,,,,,,,,,,,,,-721,,,-721,-721,-721,-721,,-721,-722,-721,,,,,-721,-722,-722,-722,,,-722,-722,-722,,-722,,,,,,,,-722,-722,-722,-722,-722,,,,,,,,-722,-722,,-722,-722,-722,-722,-722,,,,,,,,,,,,,,,,,,,,,,,-722,-722,-722,-722,-722,-722,-722,-722,-722,-722,-722,-722,-722,-722,,,-722,-722,-722,,,-722,,,-722,,,-722,-722,,-722,,-722,,-722,,-722,-722,,-722,-722,-722,-722,-722,,-722,-722,-722,,,,,,,,,,,,,,-722,,,-722,-722,-722,-722,,-722,,-722,,81,82,83,-722,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,328,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,325,,323,,52,,,329,,,,,,251,,,,,102,326,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,-275,,46,47,,,,-275,-275,-275,,,-275,-275,-275,494,-275,491,490,489,499,492,,,-275,-275,-275,,,,502,,,,,,-275,-275,,-275,-275,-275,-275,-275,,494,,491,490,489,499,492,497,647,,,,,,,502,507,506,510,509,,,,503,,494,,491,490,489,499,492,-275,,,,,497,,-275,502,,,,307,-275,507,506,510,509,,,,503,,,,,,,,,497,488,,,,-275,-275,,,507,506,510,509,,,,503,,,,-275,,,-275,,81,82,83,-275,65,,488,,71,72,-275,,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,328,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,800,,323,,52,,,329,,,,,,251,,,,,102,326,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,328,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,323,,52,,,329,,,,,,251,,,,,102,326,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,46,47,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,336,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,45,,,38,,,66,67,,,68,,40,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,421,85,,92,106,107,,,46,47,81,82,83,,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,328,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,325,,323,,52,,,329,,,,,,251,,,,,102,326,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,328,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,800,,,,52,,,329,,,,,,251,,,,,102,326,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,328,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,329,,,,,,251,,,,,102,326,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,325,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,328,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,325,,323,,52,,,329,,,,,,251,,,,,102,326,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,328,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,325,,323,,52,,,329,,,,,,251,,,,,102,326,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,46,47,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,45,,,38,,,66,67,,,68,,40,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,870,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,328,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,325,,323,,52,,,329,,,,,,251,,,,,102,326,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,46,47,81,82,83,11,65,,,,71,72,,,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,10,53,,12,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,45,,,38,,,66,67,,,68,,40,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,328,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,800,,323,,52,,,329,,,,,,251,,,,,102,326,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,328,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,323,,52,,,329,,,,,,251,,,,,102,326,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,437,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,328,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,800,,323,,52,,,329,,,,,,251,,,,,102,326,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,563,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,800,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,328,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,323,,52,,,329,,,,,,251,,,,,102,326,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,251,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,23,,,,,,,53,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,,,,,52,,,,,,,,,24,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,35,36,79,80,,,,,,84,33,32,115,114,116,117,,,255,,,,,,,53,,,119,118,120,111,64,109,108,112,328,110,121,122,,104,105,49,50,48,,,,,,,,,,,,,,,,,,,,246,,,254,,,66,67,,,68,,325,,323,,52,,,329,,,,,,251,,,,,102,326,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,46,47,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,351,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,,,359,,,,,,,,,,,,,,,,,,,,347,,,343,,,66,67,,,68,,342,,,,,,,,,,,,,,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,,,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,351,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,,,359,,,,,,,,,,,,,,,,,,,,347,,,254,,,66,67,,,68,,,494,,491,490,489,499,492,,,,,,,,,502,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,361,,497,85,,92,106,107,81,82,83,,65,510,509,,71,72,503,,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,351,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,,,359,,,,,,,,,,,,,,,,,,,,396,,,38,,,66,67,,,68,,40,,,,,,,,,,,,,,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,,,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,351,,,119,118,120,401,64,109,108,402,,110,121,122,,104,105,,,359,,,,,,,,,,,,,,,,,408,,,403,,,254,,,66,67,,,68,,,,,,,,,,,,,,,,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,,,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,351,,,119,118,120,401,64,109,108,402,,110,121,122,,104,105,,,359,,,,,,,,,,,,,,,,,,,,403,,,254,,,66,67,,,68,,,,,,,,,,,,,,,,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,,,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,351,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,,,359,,,,,,,,,,,,,,,,,,,,347,,,254,,,66,67,,,68,,,494,,491,490,489,499,492,,,,,,,,,502,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,591,,497,85,,92,106,107,81,82,83,,65,510,509,,71,72,503,,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,351,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,,,359,,,,,,,,,,,,,,,,,,,,347,,,343,,,66,67,,,68,,,,,,,,,,,,,,,,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,,,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,351,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,,,359,,,,,,,,,,,,,,,,,,,,347,,,343,,,66,67,,,68,,,,,,,,,,,,,,,,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,,,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,351,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,,,359,,,,,,,,,,,,,,,,,,,,347,,,343,,,66,67,,,68,,,,,,,,,,,,,,,,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,,,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,351,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,,,359,,,,,,,,,,,,,,,,,,,,347,,,343,,,66,67,,,68,,,,,,,,,,,,,,,,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,,,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,351,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,,,359,,,,,,,,,,,,,,,,,,,,347,,,343,,,66,67,,,68,,,,,,,,,,,,,,,,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,,,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,351,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,,,359,,,,,,,,,,,,,,,,,,,,1106,,,254,,,66,67,,,68,,,,,,,,,,,,,,,,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,,,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,351,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,,,359,,,,,,,,,,,,,,,,,,,,1144,,,254,,,66,67,,,68,,,,,,,,,,,,,,,,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,81,82,83,85,65,92,106,107,71,72,,,,75,,73,74,76,355,356,79,80,,,,,,84,350,358,115,114,116,117,,,255,,,,,,,351,,,119,118,120,111,64,109,108,112,,110,121,122,,104,105,,,359,,,,,,,,,,,,,,,,,,,,1144,,,254,,,66,67,,,68,,,,,,,,,,,,,,,,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,186,197,187,210,183,203,193,192,213,214,208,191,190,185,211,215,216,195,184,198,202,204,196,189,,,,205,212,207,206,199,209,194,182,201,200,,,,,,181,188,179,180,176,177,178,139,141,138,,140,,,,,,,,170,171,,167,149,150,151,158,155,157,,,152,153,,,,172,173,159,160,,,,,,,,,,,,,,164,163,,148,169,166,165,174,161,162,156,154,146,168,147,,,175,102,,,,,,,,,,,,,,101,186,197,187,210,183,203,193,192,213,214,208,191,190,185,211,215,216,195,184,198,202,204,196,189,,,,205,212,207,206,199,209,194,182,201,200,,,,,,181,188,179,180,176,177,178,139,141,,,140,,,,,,,,170,171,,167,149,150,151,158,155,157,,,152,153,,,,172,173,159,160,,,,,,,,,,,,,,164,163,,148,169,166,165,174,161,162,156,154,146,168,147,,,175,102,,,,,,,,,,,,,,101,186,197,187,210,183,203,193,192,213,214,208,191,190,185,211,215,216,195,184,198,202,204,196,189,,,,205,212,207,206,199,209,194,182,201,200,,,,,,181,188,179,180,176,177,178,139,141,,,140,,,,,,,,170,171,,167,149,150,151,158,155,157,,,152,153,,,,172,173,159,160,,,,,,,,,,,,,,164,163,,148,169,166,165,174,161,162,156,154,146,168,147,,,175,102,,,,,,,,,,,,,,101,186,197,187,210,183,203,193,192,213,214,208,191,190,185,211,215,216,195,184,198,202,204,196,189,,,,205,212,207,206,199,209,194,182,201,200,,,,,,181,188,179,180,176,177,178,139,141,,,140,,,,,,,,170,171,,167,149,150,151,158,155,157,,,152,153,,,,172,173,159,160,,,,,,,,,,,,,,164,163,,148,169,166,165,174,161,162,156,154,146,168,147,,,175,102,,,,,,,,,,,,,,101,186,197,187,210,183,203,193,192,213,214,208,191,190,185,211,215,216,195,184,198,202,204,196,189,,,,205,212,207,295,294,296,293,182,201,200,,,,,,181,188,179,180,290,291,292,288,141,109,108,289,,110,,,,,,170,171,,167,149,150,151,158,155,157,,,152,153,,,,172,173,159,160,,,,,,300,,,,,,,,164,163,,148,169,166,165,174,161,162,156,154,146,168,147,,,175,115,114,116,117,,,494,,491,490,489,499,492,,,,119,118,120,777,,502,,780,757,,,,,104,105,,,359,502,,,,,,,,,497,,,,,,,,,,779,510,509,750,,,503,748,,,749,,752,,,,,,,503,,,,,,,778,,,,102,758,93,94,,95,97,96,98,,,,,91,101,115,114,116,117,,,85,,92,106,107,,,765,766,,119,118,120,777,,,,780,757,,,,,104,105,,,359,502,,,,,,,,,,,,,,,,,,,779,,,750,,,,748,,,749,,752,,,,,,,503,,,,,,,778,,,,102,758,93,94,,95,97,96,98,,,,,91,101,115,114,116,117,,,85,,92,106,107,,,765,766,,119,118,120,777,,,,780,,,,,,104,105,,,359,,,,,,,,,,,,,,,,,,,,779,,,750,,,,748,,,749,,752,,,,,,,494,,491,490,489,499,492,778,,,,102,90,93,94,502,95,97,96,98,,,,,91,101,241,115,114,116,117,,85,,92,106,107,497,,765,766,,,119,118,120,777,,510,509,780,,,503,,,104,105,,,359,,,,,,,,,,,,,,,,,,,,779,,,750,,,,748,,,749,,,488,,,,,,,,,,,,,778,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,765,766,186,197,187,210,183,203,193,192,213,214,208,191,190,185,211,215,216,195,184,198,202,204,196,189,,,,205,212,207,206,199,209,194,182,201,200,,,,,,181,188,179,180,176,177,178,139,141,,,140,,,,,,,,170,171,,167,149,150,151,158,155,157,,,152,153,,,,172,173,159,160,,,,,,,,,,,,,,164,163,,148,169,166,165,174,161,162,156,154,146,168,147,,,175,115,114,116,117,,,,,,494,,491,490,489,499,492,119,118,120,777,,,,780,502,,,,,104,105,,,359,,,,,,,,,,,,,497,,,,,,,779,,,750,510,509,,748,,503,749,,752,,,,,,,,,,,,,,778,,,,102,90,93,94,,95,97,96,98,,,,,91,101,115,114,116,117,488,,85,,92,106,107,,,765,766,,119,118,120,777,,,494,780,491,490,489,499,492,104,105,,,359,,,,502,,,,,,,,,,,,,,,,779,,,750,,,497,748,,,749,,,,,507,506,510,509,,,,503,,,,778,,,,102,90,93,94,,95,97,96,98,,,,,91,101,115,114,116,117,,,85,,92,106,107,,,765,766,,119,118,120,777,,,,780,757,,,,,104,105,,,359,502,,,,,,,,,,,,,,,,,,,779,,,750,,,,748,,,749,,752,,,,,,,503,,,,,,,778,,,,102,758,93,94,,95,97,96,98,,,,,91,101,115,114,116,117,,,85,,92,106,107,,,765,766,,119,118,120,777,,,,780,757,,,,,104,105,,,359,502,,,,,,,,,,,,,,,,,,,779,,,750,,,,748,,,749,,752,,,,,,,503,,,,,,,778,,,,102,758,93,94,,95,97,96,98,,,,,91,101,115,114,116,117,,,85,,92,106,107,,,765,766,,119,118,120,777,,,494,780,491,490,489,499,492,104,105,,,359,,,,502,,,,,,,,,,,,,,,,779,,,750,,,497,748,,,749,,752,,,507,506,510,509,,,,503,,,,778,,,,102,90,93,94,,95,97,96,98,,,,,91,101,115,114,116,117,,,85,,92,106,107,,,765,766,,119,118,120,777,,,494,780,491,490,489,499,492,104,105,,,359,,,,502,,,,,,,,,,,,,,,,779,,,750,,,497,748,,,749,,,,,,,510,509,,,,503,,,,778,,,,102,90,93,94,,95,97,96,98,,,,,91,101,115,114,116,117,,,85,,92,106,107,,,765,766,,119,118,120,777,,,,780,,,,,,104,105,,,359,,,,,,,,,,,,,,,,,,,,779,,,750,,,,748,,,749,,,,,,,,,,,,,,,,778,,,,102,90,93,94,,95,97,96,98,,,,,91,101,115,114,116,117,,,85,,92,106,107,,,765,766,,119,118,120,777,,,,780,757,,,,,104,105,,,359,502,,,,,,,,,,,,,,,,,,,779,,,750,,,,748,,,749,,752,,,,,,,503,,,,,,,778,,,,102,758,93,94,,95,97,96,98,,,,,91,101,115,114,116,117,,,85,,92,106,107,,,765,766,,119,118,120,777,,,,780,,,,,,104,105,,,359,,,,,,,,,,,,,,,,,,,,779,,,750,,,,748,,,749,,,,,,,,,,,,,,,,778,,,,102,90,93,94,,95,97,96,98,,,,,91,101,115,114,116,117,,,85,,92,106,107,,,765,766,,119,118,120,777,,,,780,,,,,,104,105,,,359,,,,,,,,,,,,,,,,,,,,779,,,750,,,,748,,,749,,,,,,,,,,,,,,,,778,,,,102,90,93,94,,95,97,96,98,,,,,91,101,115,114,116,117,,,85,,92,106,107,,,765,766,,119,118,120,777,,,,780,,,,,,104,105,,,359,,,,,,,,,,,,,,,,,,,,779,,,750,,,,748,,,749,,752,,,,,,,,,,,,,,778,,,,102,90,93,94,,95,97,96,98,,,,,91,101,115,114,116,117,,,85,,92,106,107,,,765,766,,119,118,120,777,,,,780,,,,,,104,105,,,359,,,,,,,,115,114,116,117,,,,,,,,,779,,,750,119,118,120,748,,,749,,,,,,,104,105,,,359,,,,,778,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,765,766,494,,491,490,489,499,492,,,,,102,90,93,94,502,95,97,96,98,,,,,91,101,115,114,116,117,,,85,,92,106,107,497,,,,,119,118,120,,507,506,510,509,,,,503,,104,105,,,359,115,114,116,117,,,,,,,,,,,,,119,118,120,241,,,,,,,,,,104,105,,,359,,,,,,,,,,,,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,,,,,,,,,102,90,93,94,,95,97,96,98,,,,,91,101,,,,,,,85,,92,106,107,494,,491,490,489,499,492,,494,,491,490,489,499,492,502,,,,,,,,502,,494,,491,490,489,499,492,,,,,,497,,,502,,,,,497,507,506,510,509,,,,503,507,506,510,509,,,,503,497,,,,,,,,,507,506,510,509,,,494,503,491,490,489,499,492,494,,491,490,489,499,492,,502,488,,,,,,502,,488,494,,491,490,489,499,492,,,,,,497,,,502,488,,,497,,,,510,509,,,,503,,510,509,,,,503,,497,,,,,,,,,,,510,509,,,,503,,,,,,,,,,,,459,463,,488,460,,,,,,488,,170,171,,167,149,150,151,158,155,157,,,152,153,,,488,172,173,159,160,,,,,,307,,,,,,,,164,163,,148,169,166,165,174,161,162,156,154,146,168,147,467,471,175,,466,,,,,,,,170,171,,167,149,150,151,158,155,157,,,152,153,,,,172,173,159,160,,,,,,307,,,,,,,,164,163,,148,169,166,165,174,161,162,156,154,146,168,147,559,463,175,,560,,,,,,,,170,171,,167,149,150,151,158,155,157,,,152,153,,,,172,173,159,160,,,,,,,,,,,,,,164,163,,148,169,166,165,174,161,162,156,154,146,168,147,730,463,175,,731,,,,,,,,170,171,,167,149,150,151,158,155,157,,,152,153,,,,172,173,159,160,,,,,,307,,,,,,,,164,163,,148,169,166,165,174,161,162,156,154,146,168,147,732,471,175,,733,,,,,,,,170,171,,167,149,150,151,158,155,157,,,152,153,,,,172,173,159,160,,,,,,307,,,,,,,,164,163,,148,169,166,165,174,161,162,156,154,146,168,147,810,463,175,,811,,,,,,,,170,171,,167,149,150,151,158,155,157,,,152,153,,,,172,173,159,160,,,,,,307,,,,,,,,164,163,,148,169,166,165,174,161,162,156,154,146,168,147,813,471,175,,814,,,,,,,,170,171,,167,149,150,151,158,155,157,,,152,153,,,,172,173,159,160,,,,,,307,,,,,,,,164,163,,148,169,166,165,174,161,162,156,154,146,168,147,730,463,175,,731,,,,,,,,170,171,,167,149,150,151,158,155,157,,,152,153,,,,172,173,159,160,,,,,,307,,,,,,,,164,163,,148,169,166,165,174,161,162,156,154,146,168,147,732,471,175,,733,,,,,,,,170,171,,167,149,150,151,158,155,157,,,152,153,,,,172,173,159,160,,,,,,307,,,,,,,,164,163,,148,169,166,165,174,161,162,156,154,146,168,147,840,463,175,,841,,,,,,,,170,171,,167,149,150,151,158,155,157,,,152,153,,,,172,173,159,160,,,,,,307,,,,,,,,164,163,,148,169,166,165,174,161,162,156,154,146,168,147,842,471,175,,843,,,,,,,,170,171,,167,149,150,151,158,155,157,,,152,153,,,,172,173,159,160,,,,,,307,,,,,,,,164,163,,148,169,166,165,174,161,162,156,154,146,168,147,845,471,175,,846,,,,,,,,170,171,,167,149,150,151,158,155,157,,,152,153,,,,172,173,159,160,,,,,,307,,,,,,,,164,163,,148,169,166,165,174,161,162,156,154,146,168,147,559,463,175,,560,,,,,,,,170,171,,167,149,150,151,158,155,157,,,152,153,,,,172,173,159,160,,,,,,307,,,,,,,,164,163,,148,169,166,165,174,161,162,156,154,146,168,147,872,463,175,,873,,,,,,,,170,171,,167,149,150,151,158,155,157,,,152,153,,,,172,173,159,160,,,,,,307,,,,,,,,164,163,,148,169,166,165,174,161,162,156,154,146,168,147,875,471,175,,874,,,,,,,,170,171,,167,149,150,151,158,155,157,,,152,153,,,,172,173,159,160,,,,,,307,,,,,,,,164,163,,148,169,166,165,174,161,162,156,154,146,168,147,1197,463,175,,1198,,,,,,,,170,171,,167,149,150,151,158,155,157,,,152,153,,,,172,173,159,160,,,,,,307,,,,,,,,164,163,,148,169,166,165,174,161,162,156,154,146,168,147,1199,471,175,,1200,,,,,,,,170,171,,167,149,150,151,158,155,157,,,152,153,,,,172,173,159,160,,,,,,307,,,,,,,,164,163,,148,169,166,165,174,161,162,156,154,146,168,147,1214,471,175,,1213,,,,,,,,170,171,,167,149,150,151,158,155,157,,,152,153,,,,172,173,159,160,,,,,,307,,,,,,,,164,163,,148,169,166,165,174,161,162,156,154,146,168,147,,,175"),x=e.large_array_unpack("111,518,518,556,556,19,393,111,111,111,738,385,111,111,111,18,111,31,23,417,5,534,18,386,111,5,111,111,111,980,980,18,478,418,394,397,111,111,838,111,111,111,111,111,1015,1086,1088,1103,1104,930,478,634,1216,534,1107,935,738,534,534,23,69,19,1216,244,840,841,111,111,111,111,111,111,111,111,111,111,111,111,111,111,18,31,111,111,111,417,111,111,625,930,111,853,991,111,111,518,111,556,111,418,111,935,111,111,31,111,111,111,111,111,1163,111,112,111,1197,393,788,644,644,112,112,112,244,980,112,112,112,111,112,385,111,111,111,111,385,111,112,111,112,112,112,386,111,394,397,111,386,69,112,112,1198,112,112,112,112,112,838,1199,1218,838,634,838,1015,1086,1088,1103,1104,1015,1086,1088,1103,1104,1107,840,841,842,843,1107,112,112,112,112,112,112,112,112,112,112,112,112,112,112,625,1200,112,112,112,625,112,112,853,991,112,788,1,112,112,749,112,1057,112,644,112,659,112,112,644,112,112,112,112,112,466,112,749,112,3,245,1163,466,466,466,1197,1163,1199,466,466,1197,466,112,842,843,112,112,112,112,466,112,29,112,352,20,1057,412,112,29,9,112,466,466,810,466,466,466,466,466,48,48,1198,377,1200,12,377,1198,811,1199,1218,659,659,247,1199,1218,359,359,842,843,245,659,466,466,466,466,466,466,466,466,466,466,466,466,466,466,14,287,466,466,466,20,466,466,287,1200,466,29,352,466,1200,412,412,412,466,15,466,661,466,466,810,466,466,466,466,466,444,466,467,466,759,352,247,524,811,467,467,467,48,48,931,467,467,466,467,332,466,466,759,466,332,466,467,467,359,359,978,730,466,17,810,466,287,810,467,467,731,467,467,467,467,467,805,288,811,810,931,811,813,27,288,661,661,579,805,444,872,950,390,811,252,661,524,390,467,467,467,467,467,467,467,467,467,467,467,467,467,467,42,942,467,467,467,54,467,467,730,45,467,942,54,467,978,873,1125,731,467,926,467,54,467,467,413,467,467,467,467,467,288,467,467,467,53,813,813,872,252,579,579,579,414,950,950,950,21,467,415,942,467,467,401,467,978,467,579,978,416,732,950,942,467,253,217,467,732,732,732,978,54,732,732,732,873,732,813,512,926,813,1125,1125,512,732,732,732,732,732,413,413,413,813,402,21,230,732,732,1125,732,732,732,732,732,232,401,21,414,414,414,419,628,401,415,415,415,236,401,1005,628,253,401,246,416,416,416,732,732,732,732,732,732,732,732,732,732,732,732,732,732,401,248,732,732,732,402,732,732,16,16,732,403,402,732,732,403,732,402,732,995,732,402,732,732,995,732,732,732,732,732,401,732,732,732,419,419,419,1005,243,289,402,290,291,51,51,243,289,732,290,291,732,732,732,732,243,732,292,732,43,733,384,384,732,292,44,732,733,733,733,249,402,733,733,733,293,733,1091,255,1091,51,51,293,294,733,306,733,733,733,138,294,705,705,320,138,138,733,733,363,733,733,733,733,733,243,289,43,290,291,295,296,779,44,321,747,779,295,296,43,747,324,934,292,747,44,934,733,733,733,733,733,733,733,733,733,733,733,733,733,733,293,948,733,733,733,363,733,733,294,459,733,948,378,733,733,378,733,363,733,336,733,381,733,733,381,733,733,733,733,733,874,733,337,733,295,296,88,874,874,874,762,762,825,874,874,825,874,733,88,948,733,733,733,733,874,733,459,733,88,826,826,948,733,460,339,733,874,874,459,874,874,874,874,874,1155,1089,1089,1155,234,344,234,234,234,234,234,340,344,681,719,341,719,719,719,234,719,344,874,874,874,874,874,874,874,874,874,874,874,874,874,874,460,347,874,874,874,234,874,874,1187,1187,874,350,460,874,234,234,234,234,874,351,874,234,874,874,681,874,874,874,874,874,353,874,875,874,344,354,681,358,360,875,875,875,367,369,372,875,875,874,875,375,874,874,379,874,380,874,875,875,382,391,392,234,874,396,398,874,407,427,875,875,433,875,875,875,875,875,435,436,438,441,235,345,235,235,235,235,235,778,345,778,778,445,455,778,457,235,458,345,875,875,875,875,875,875,875,875,875,875,875,875,875,875,468,474,875,875,875,235,875,875,475,479,875,480,778,875,235,235,235,235,875,481,875,235,875,875,484,875,875,875,875,875,702,875,875,875,345,485,346,486,496,508,702,348,364,346,511,514,520,875,348,364,875,875,346,875,528,875,395,348,364,529,536,235,875,395,537,875,2,2,2,2,2,2,395,702,702,2,2,538,702,539,2,845,2,2,2,2,2,2,2,8,8,8,8,8,2,2,2,2,2,2,2,346,564,2,565,566,348,364,570,2,2,2,2,2,2,2,2,2,2,2,2,395,2,2,2,405,2,2,2,2,2,443,405,845,586,596,587,590,443,592,845,405,596,597,601,845,610,443,611,845,2,596,612,2,622,626,2,2,637,627,2,629,2,656,664,637,2,666,845,673,535,682,652,652,637,2,652,652,652,687,2,2,2,2,692,2,2,2,2,694,405,696,712,2,2,717,443,718,845,720,596,2,535,2,2,2,535,535,2,2,38,38,38,38,38,38,725,734,743,38,38,751,752,637,38,753,38,38,38,38,38,38,38,25,782,785,787,793,38,38,38,38,38,38,38,794,1098,38,1098,1098,1098,795,1098,38,38,38,38,38,38,38,38,38,38,38,38,797,38,38,38,799,38,38,38,38,38,25,25,25,25,25,25,25,25,25,25,25,814,25,25,807,809,25,25,814,38,812,25,38,814,815,38,38,814,816,38,819,38,25,828,25,38,25,25,834,25,25,25,25,25,38,25,835,839,848,38,38,38,38,1105,38,38,38,38,852,854,1105,869,38,38,871,25,880,893,896,1105,38,897,38,38,38,900,814,38,38,136,136,136,136,136,136,902,905,906,136,136,908,909,911,136,915,136,136,136,136,136,136,136,335,335,335,335,335,136,136,136,136,136,136,136,928,936,136,937,1105,941,944,448,136,136,136,136,136,136,136,136,136,136,136,136,949,136,136,136,964,136,136,136,136,136,448,448,448,448,448,448,448,448,448,448,448,846,448,448,967,968,448,448,846,136,977,982,136,846,985,136,136,846,992,136,994,136,448,1001,448,136,448,448,1002,448,448,448,448,448,136,448,1003,1004,1030,136,136,136,136,1143,136,136,136,136,1031,1036,1143,1041,136,136,1042,448,1043,448,1044,1143,136,1045,136,136,136,1046,846,136,136,219,219,219,219,219,219,1050,1051,1052,219,219,1054,1058,1065,219,1070,219,219,219,219,219,219,219,374,374,374,374,374,219,219,219,219,219,219,219,1071,1073,219,1074,1143,1075,1077,454,219,219,219,219,219,219,219,219,219,219,219,219,1078,219,219,219,1079,219,219,219,219,219,454,454,454,454,454,454,454,454,454,454,454,1184,454,454,1095,1106,454,454,1184,219,1109,1110,219,1130,1111,219,219,1184,1112,219,1141,219,454,1130,454,219,454,454,1144,454,454,454,454,454,219,454,1153,1154,1159,219,219,219,219,1169,219,219,219,219,1170,1171,1174,1177,219,219,1178,454,1130,1130,1179,1180,219,1130,219,219,219,1182,1184,219,219,231,231,231,231,231,231,1196,1201,1213,231,231,1214,1220,1221,231,1222,231,231,231,231,231,231,231,584,584,584,584,584,231,231,231,231,231,231,231,1223,1232,231,,,,,695,231,231,231,231,231,231,231,231,231,231,231,231,,231,231,231,,231,231,231,231,231,695,695,695,695,695,695,695,695,695,695,695,,695,695,,,695,695,,231,,,231,,,231,231,,,231,,231,695,,695,231,695,695,,695,695,695,695,695,231,695,,,,231,231,231,231,,231,231,231,231,,,,,231,231,,695,,,,,231,,231,231,231,,,231,231,237,237,237,237,237,237,,,,237,237,,,,237,,237,237,237,237,237,237,237,,,,,,237,237,237,237,237,237,237,,,237,,,,,726,237,237,237,237,237,237,237,237,237,237,237,237,,237,237,237,,237,237,237,237,237,726,726,726,726,726,726,726,726,726,726,726,,726,726,,,726,726,,237,,,237,,,237,237,,,237,,237,726,,726,237,726,726,,726,726,726,726,726,237,726,,,,237,237,237,237,,237,237,237,237,,,,,237,237,,726,,,,,237,,237,237,237,,,237,237,254,254,254,254,254,254,,,,254,254,,,,254,,254,254,254,254,254,254,254,,,,,,254,254,254,254,254,254,254,,1194,254,1194,1194,1194,,1194,254,254,254,254,254,254,254,254,254,254,254,254,,254,254,254,,254,254,254,254,254,318,318,318,318,318,318,318,318,318,318,318,,318,318,,,318,318,,254,,,254,,,254,254,,,254,,254,318,,318,254,318,318,,318,318,318,318,318,254,318,,,,254,254,254,254,,254,254,254,254,,,,,254,254,,318,,,,,254,,254,254,254,,,254,254,338,338,338,338,338,338,,,,338,338,,,,338,,338,338,338,338,338,338,338,,,,,,338,338,338,338,338,338,338,,,338,,,,,,338,338,338,338,338,338,338,338,338,338,338,338,,338,338,338,,338,338,338,338,338,553,553,553,553,553,553,553,553,553,553,553,,553,553,,,553,553,,338,,,338,,,338,338,,,338,,338,553,,553,338,553,553,,553,553,553,553,553,338,553,,,,338,338,338,338,,338,338,338,338,,,,,338,338,553,553,,,,,338,,338,338,338,,,338,338,343,343,343,343,343,343,,,,343,343,,,,343,,343,343,343,343,343,343,343,,,,,,343,343,343,343,343,343,343,,,343,,,,,,343,343,343,343,343,343,343,343,343,343,343,343,,343,343,343,,343,343,343,343,343,820,820,820,820,820,820,820,820,820,820,820,,820,820,,,820,820,,343,,,343,,,343,343,,,343,,343,820,,820,343,820,820,,820,820,820,820,820,343,820,,,,343,343,343,343,,343,343,343,343,,,,,343,343,,820,,,,,343,,343,343,343,,,343,343,373,373,373,373,373,373,,,,373,373,,,,373,,373,373,373,373,373,373,373,,,,,,373,373,373,373,373,373,373,,,373,,,,,,373,373,373,373,373,373,373,373,373,373,373,373,,373,373,373,,373,373,373,373,373,877,877,877,877,877,877,877,877,877,877,877,,877,877,,,877,877,,373,,,373,,,373,373,,,373,,373,877,,877,373,877,877,,877,877,877,877,877,373,877,,,,373,373,373,373,,373,373,373,373,,,,,373,373,,877,,,,,373,,373,373,373,,,373,373,388,388,388,388,388,388,,,,388,388,,,,388,,388,388,388,388,388,388,388,,,,,,388,388,388,388,388,388,388,,,388,,,,,,388,388,388,388,388,388,388,388,388,388,388,388,,388,388,388,,388,388,388,388,388,1009,1009,1009,1009,1009,1009,1009,1009,1009,1009,1009,,1009,1009,,,1009,1009,,388,,,388,,,388,388,,,388,,388,1009,,1009,388,1009,1009,,1009,1009,1009,1009,1009,388,1009,,,,388,388,388,388,,388,388,388,388,,,,,388,388,,1009,,,,,388,,388,388,388,,,388,388,389,389,389,389,389,389,,,,389,389,,,,389,,389,389,389,389,389,389,389,,,,,,389,389,389,389,389,389,389,,,389,,,,,,389,389,389,389,389,389,389,389,389,389,389,389,,389,389,389,,389,389,389,389,389,1010,1010,1010,1010,1010,1010,1010,1010,1010,1010,1010,,1010,1010,,,1010,1010,,389,,,389,,,389,389,,,389,,389,1010,,1010,389,1010,1010,,1010,1010,1010,1010,1010,389,1010,,,,389,389,389,389,,389,389,389,389,,,,,389,389,,1010,,,,,389,,389,389,389,,,389,389,621,621,621,621,621,621,,,,621,621,,,,621,,621,621,621,621,621,621,621,,,,,,621,621,621,621,621,621,621,,,621,,,,,,621,621,621,621,621,621,621,621,621,621,621,621,,621,621,621,,621,621,621,621,621,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,,1032,1032,,,1032,1032,,621,,,621,,,621,621,,,621,,621,1032,,1032,621,1032,1032,,1032,1032,1032,1032,1032,621,1032,,,,621,621,621,621,,621,621,621,621,,,,,621,621,,1032,,,,,621,,621,621,621,,,621,621,624,624,624,624,624,624,,,,624,624,,,,624,,624,624,624,624,624,624,624,,,,,,624,624,624,624,624,624,624,,,624,,,,,,624,624,624,624,624,624,624,624,624,624,624,624,,624,624,624,,624,624,624,624,624,1033,1033,1033,1033,1033,1033,1033,1033,1033,1033,1033,,1033,1033,,,1033,1033,,624,,,624,,,624,624,,,624,,624,1033,,1033,624,1033,1033,,1033,1033,1033,1033,1033,624,1033,,,,624,624,624,624,,624,624,624,624,,,,,624,624,,1033,,,,,624,,624,624,624,,,624,624,645,645,645,645,645,645,,,,645,645,,,,645,,645,645,645,645,645,645,645,,,,,,645,645,645,645,645,645,645,,,645,,,,,,645,645,645,645,645,645,645,645,645,645,645,645,,645,645,645,,645,645,645,645,645,1066,1066,1066,1066,1066,1066,1066,1066,1066,1066,1066,,1066,1066,,,1066,1066,,645,,,645,,,645,645,,,645,,645,1066,,1066,645,1066,1066,,1066,1066,1066,1066,1066,645,1066,,,,645,645,645,645,,645,645,645,645,,,,,645,645,,1066,,,,,645,,645,645,645,,,645,645,844,844,844,844,844,844,,,,844,844,,,,844,,844,844,844,844,844,844,844,,,,,,844,844,844,844,844,844,844,,497,844,497,497,497,,497,844,844,844,844,844,844,844,844,844,844,844,844,,844,844,844,,844,844,844,844,844,715,,715,715,715,,715,,497,,917,,917,917,917,,917,497,,844,,,844,,,844,844,,,844,916,844,916,916,916,844,916,715,,,,,,,844,,715,917,,844,844,844,844,,844,844,844,844,,,,,844,844,,,,916,,,844,,844,844,844,,916,844,844,849,849,849,849,849,849,,,,849,849,,,,849,,849,849,849,849,849,849,849,,,,,,849,849,849,849,849,849,849,,,849,,,,,,849,849,849,849,849,849,849,849,849,849,849,849,,849,849,849,,849,849,849,849,849,365,365,365,365,365,365,365,365,365,365,365,,365,365,,,365,365,,849,,,849,,,849,849,,549,849,,849,365,,365,849,365,365,,365,365,365,365,365,849,365,,,,849,849,849,849,,849,849,849,849,,,549,,849,849,549,549,,549,549,,849,,849,849,849,,,849,849,860,860,860,860,860,860,,,,860,860,,,,860,,860,860,860,860,860,860,860,,,,,,860,860,860,860,860,860,860,,,860,,,,,,860,860,860,860,860,860,860,860,860,860,860,860,,860,860,860,,860,860,860,860,860,366,366,366,366,366,366,366,366,366,366,366,,366,366,,,366,366,,860,,,860,,,860,860,,550,860,,860,366,,366,860,366,366,,366,366,366,366,366,860,366,,,,860,860,860,860,,860,860,860,860,,,550,,860,860,550,550,,550,550,,860,,860,860,860,,,860,860,895,895,895,895,895,895,,,,895,895,,,,895,,895,895,895,895,895,895,895,,,,,,895,895,895,895,895,895,895,,,895,,,,,,895,895,895,895,895,895,895,895,895,895,895,895,,895,895,895,,895,895,895,895,895,532,532,532,532,532,532,532,532,532,532,532,,532,532,,,532,532,,895,,,895,,,895,895,,,895,,895,532,,532,895,532,532,,532,532,532,532,532,895,532,,,,895,895,895,895,,895,895,895,895,,,,,895,895,,1113,,1113,1113,1113,895,1113,895,895,895,,,895,895,972,972,972,972,972,972,,,,972,972,,,,972,,972,972,972,972,972,972,972,1113,,,,,972,972,972,972,972,972,972,,,972,,,,,,972,972,972,972,972,972,972,972,972,972,972,972,,972,972,972,,972,972,972,972,972,533,533,533,533,533,533,533,533,533,533,533,,533,533,,,533,533,,972,,,972,,,972,972,,,972,,972,533,,533,972,533,533,,533,533,533,533,533,972,533,,,,972,972,972,972,,972,972,972,972,,,,,972,972,,1114,,1114,1114,1114,972,1114,972,972,972,,,972,972,990,990,990,990,990,990,,,,990,990,,,,990,,990,990,990,990,990,990,990,1114,,,,,990,990,990,990,990,990,990,,,990,,,,,,990,990,990,990,990,990,990,990,990,990,990,990,,990,990,990,,990,990,990,990,990,543,543,543,543,543,543,543,,,543,543,,,,,,543,543,,990,,,990,,,990,990,,,990,,990,543,,543,990,543,543,,543,543,543,543,543,990,543,,,,990,990,990,990,,990,990,990,990,,,,,990,990,,,,,,,990,,990,990,990,,,990,990,996,996,996,996,996,996,,,,996,996,,,,996,,996,996,996,996,996,996,996,,,,,,996,996,996,996,996,996,996,,,996,,,,,,996,996,996,996,996,996,996,996,996,996,996,996,,996,996,996,,996,996,996,996,996,544,544,544,544,544,544,544,,,544,544,,,,,,544,544,,996,,,996,,,996,996,,,996,,996,544,,544,996,544,544,,544,544,544,544,544,996,544,,,,996,996,996,996,,996,996,996,996,,,,,996,996,,,,,,,996,,996,996,996,,,996,996,1012,1012,1012,1012,1012,1012,,,,1012,1012,,,,1012,,1012,1012,1012,1012,1012,1012,1012,,,,,,1012,1012,1012,1012,1012,1012,1012,,,1012,,,,,,1012,1012,1012,1012,1012,1012,1012,1012,1012,1012,1012,1012,,1012,1012,1012,,1012,1012,1012,1012,1012,545,545,545,545,545,545,545,,,545,545,,,,,,545,545,,1012,,,1012,,,1012,1012,,,1012,,1012,545,,545,1012,545,545,,545,545,545,545,545,1012,545,,,,1012,1012,1012,1012,,1012,1012,1012,1012,,,,,1012,1012,,,,,,,1012,,1012,1012,1012,,,1012,1012,1067,1067,1067,1067,1067,1067,,,,1067,1067,,,,1067,,1067,1067,1067,1067,1067,1067,1067,,,,,,1067,1067,1067,1067,1067,1067,1067,,,1067,,,,,,1067,1067,1067,1067,1067,1067,1067,1067,1067,1067,1067,1067,,1067,1067,1067,,1067,1067,1067,1067,1067,546,546,546,546,546,546,546,,,546,546,,,,,,546,546,,1067,,,1067,,,1067,1067,,,1067,,1067,546,,546,1067,546,546,,546,546,546,546,546,1067,546,,,,1067,1067,1067,1067,,1067,1067,1067,1067,,,,,1067,1067,,,,,,,1067,,1067,1067,1067,,,1067,1067,1096,1096,1096,1096,1096,1096,,,,1096,1096,,,,1096,,1096,1096,1096,1096,1096,1096,1096,,,,,,1096,1096,1096,1096,1096,1096,1096,,,1096,,,,,,1096,1096,1096,1096,1096,1096,1096,1096,1096,1096,1096,1096,,1096,1096,1096,,1096,1096,1096,1096,1096,547,547,547,547,547,547,547,,,547,547,,,,,,547,547,,1096,,,1096,,,1096,1096,,,1096,,1096,547,,547,1096,547,547,,547,547,547,547,547,1096,547,,,,1096,1096,1096,1096,,1096,1096,1096,1096,,,,,1096,1096,,,,,,,1096,,1096,1096,1096,,,1096,1096,1097,1097,1097,1097,1097,1097,,,,1097,1097,,,,1097,,1097,1097,1097,1097,1097,1097,1097,,,,,,1097,1097,1097,1097,1097,1097,1097,,,1097,,,,,,1097,1097,1097,1097,1097,1097,1097,1097,1097,1097,1097,1097,,1097,1097,1097,,1097,1097,1097,1097,1097,548,548,548,548,548,548,548,,,548,548,,,,,,548,548,,1097,,,1097,,,1097,1097,,,1097,,1097,548,,548,1097,548,548,,548,548,548,548,548,1097,548,,,,1097,1097,1097,1097,,1097,1097,1097,1097,,,,,1097,1097,,,,,,,1097,,1097,1097,1097,,,1097,1097,1102,1102,1102,1102,1102,1102,,,,1102,1102,,,,1102,,1102,1102,1102,1102,1102,1102,1102,,,,,,1102,1102,1102,1102,1102,1102,1102,,,1102,,,,,,1102,1102,1102,1102,1102,1102,1102,1102,1102,1102,1102,1102,,1102,1102,1102,,1102,1102,1102,1102,1102,551,551,551,551,551,551,551,,,551,551,,,,,,551,551,,1102,,,1102,,,1102,1102,,,1102,,1102,551,,551,1102,551,551,,551,551,551,551,551,1102,551,,,,1102,1102,1102,1102,,1102,1102,1102,1102,,,,,1102,1102,,,,,,,1102,,1102,1102,1102,,,1102,1102,1145,1145,1145,1145,1145,1145,,,,1145,1145,,,,1145,,1145,1145,1145,1145,1145,1145,1145,,,,,,1145,1145,1145,1145,1145,1145,1145,,,1145,,,,,,1145,1145,1145,1145,1145,1145,1145,1145,1145,1145,1145,1145,,1145,1145,1145,,1145,1145,1145,1145,1145,552,552,552,552,552,552,552,552,,552,552,,,,,,552,552,,1145,,,1145,,,1145,1145,,,1145,,1145,552,,552,1145,552,552,,552,552,552,552,552,1145,552,,,,1145,1145,1145,1145,,1145,1145,1145,1145,,,,,1145,1145,,,,,,,1145,,1145,1145,1145,,,1145,1145,1188,1188,1188,1188,1188,1188,,,,1188,1188,,,,1188,,1188,1188,1188,1188,1188,1188,1188,,,,,,1188,1188,1188,1188,1188,1188,1188,,,1188,,,,,,1188,1188,1188,1188,1188,1188,1188,1188,1188,1188,1188,1188,,1188,1188,1188,,1188,1188,1188,1188,1188,554,,,,,,,,,,,,,,,,554,554,,1188,,,1188,,,1188,1188,,,1188,,1188,554,,554,1188,554,554,,554,554,,,554,1188,554,,,,1188,1188,1188,1188,,1188,1188,1188,1188,,,,,1188,1188,,,,,,,1188,,1188,1188,1188,,,1188,1188,7,7,7,7,7,,,,7,7,,,,7,,7,7,7,7,7,7,7,,,,,,7,7,7,7,7,7,7,,,7,,,,,,7,7,7,7,7,7,7,7,7,7,7,7,,7,7,7,,7,7,7,7,7,607,,,,,,,,,,,,,,,,607,607,,7,,,7,,,7,7,,,7,,7,607,,607,7,607,607,,607,607,,,607,7,607,,,,7,7,7,7,,7,7,7,7,,,,,7,7,,,,24,24,24,7,24,7,7,7,24,24,7,7,,24,,24,24,24,24,24,24,24,,,,,,24,24,24,24,24,24,24,,,24,,,,,,,24,,,24,24,24,24,24,24,24,24,,24,24,24,,24,24,24,24,24,540,,,,,,,,,,,,,,,,540,540,,24,,,24,,,24,24,,,24,,,540,,540,24,540,540,,540,540,,,,24,,,,,24,24,24,24,,24,24,24,24,,,,,24,24,,,,,,,24,,24,24,24,32,,24,24,,,,32,32,32,,,32,32,32,541,32,,,,,,,,32,32,32,32,,,,541,541,,,,32,32,,32,32,32,32,32,,,,541,,541,,541,541,,541,541,,,,,,,,,,,32,32,32,32,32,32,32,32,32,32,32,32,32,32,,,32,32,32,,,32,,32,32,,,32,32,,32,,32,,32,,32,32,,32,32,32,32,32,33,32,32,32,,,,33,33,33,,,33,33,33,,33,32,542,,32,32,,32,33,32,33,33,,,,,32,,542,542,33,33,,33,33,33,33,33,,,,,,,542,,,,542,542,,542,542,,,,,,,,33,33,33,33,33,33,33,33,33,33,33,33,33,33,,,33,33,33,,,33,,33,33,,,33,33,,33,,33,,33,,33,33,,33,33,33,33,33,,33,,33,,,,,,,,,,,,,,33,,,33,33,,33,,33,34,34,34,,34,,33,,34,34,,,,34,,34,34,34,34,34,34,34,,,,,,34,34,34,34,34,34,34,,,34,,,,,,,34,,,34,34,34,34,34,34,34,34,34,34,34,34,,34,34,34,34,34,,,,,,,,,,,,,,,,,,,,34,,,34,,,34,34,,,34,,34,,34,,34,,,34,,,,,,34,,,,,34,34,34,34,,34,34,34,34,,,,,34,34,,,,35,35,35,34,35,34,34,34,35,35,34,34,,35,,35,35,35,35,35,35,35,,,,,,35,35,35,35,35,35,35,,,35,,,,,,,35,,,35,35,35,35,35,35,35,35,35,35,35,35,,35,35,35,35,35,,,,,,,,,,,,,,,,,,,,35,,,35,,,35,35,,,35,,35,,35,,35,,,35,,,,,,35,,,,,35,35,35,35,,35,35,35,35,,,,,35,35,,,,36,36,36,35,36,35,35,35,36,36,35,35,,36,,36,36,36,36,36,36,36,,,,,,36,36,36,36,36,36,36,,,36,,,,,,,36,,,36,36,36,36,36,36,36,36,36,36,36,36,,36,36,36,36,36,,,,,,,,,,,,,,,,,,,,36,,,36,,,36,36,,,36,,36,,36,,36,,,36,,,,,,36,,,,,36,36,36,36,,36,36,36,36,,,,,36,36,,,,46,46,46,36,46,36,36,36,46,46,36,36,,46,,46,46,46,46,46,46,46,,,,,,46,46,46,46,46,46,46,,,46,,,,,,,46,,,46,46,46,46,46,46,46,46,,46,46,46,,46,46,46,46,46,,,,,,,,,,,,,,,,,,,,46,,,46,,,46,46,,,46,,,,,,46,,,,,,,,,46,,,,,46,46,46,46,,46,46,46,46,,,,,46,46,,,,47,47,47,46,47,46,46,46,47,47,46,46,,47,,47,47,47,47,47,47,47,,,,,,47,47,47,47,47,47,47,,,47,,,,,,,47,,,47,47,47,47,47,47,47,47,,47,47,47,,47,47,47,47,47,,,,,,,,,,,,,,,,,,,,47,,,47,,,47,47,,,47,,,,,,47,,,,,,,,,47,,,,,47,47,47,47,,47,47,47,47,,,,,47,47,,,,49,49,49,47,49,47,47,47,49,49,47,47,,49,,49,49,49,49,49,49,49,,,,,,49,49,49,49,49,49,49,,,49,,,,,,,49,,,49,49,49,49,49,49,49,49,,49,49,49,,49,49,49,49,49,,,,,,,,,,,,,,,,,,,,49,,,49,,,49,49,,,49,,,,,,49,,,,,,,,,49,,,,,49,49,49,49,,49,49,49,49,,,,,49,49,,,,50,50,50,49,50,49,49,49,50,50,49,49,,50,,50,50,50,50,50,50,50,,,,,,50,50,50,50,50,50,50,,,50,,,,,,,50,,,50,50,50,50,50,50,50,50,,50,50,50,,50,50,50,50,50,,,,,,,,,,,,,,,,,,,,50,,,50,,,50,50,,,50,,,,,,50,,,,,,,,,50,,,,,50,50,50,50,,50,50,50,50,,,,,50,50,,,,52,52,52,50,52,50,50,50,52,52,50,50,,52,,52,52,52,52,52,52,52,,,,,,52,52,52,52,52,52,52,,,52,,,,,,,52,,,52,52,52,52,52,52,52,52,,52,52,52,,52,52,52,52,52,,,,,,,,,,,,,,,,,,,,52,,,52,,,52,52,,,52,,,,,,52,,,,,,,,,52,,,,,52,52,52,52,,52,52,52,52,,,,,52,52,,,,,,,52,,52,52,52,64,,52,52,,,,64,64,64,,,64,64,64,,64,,,,,,,,64,,64,64,64,,,,765,765,765,765,64,64,,64,64,64,64,64,,,,,765,765,765,,,,,,,,,,,765,765,,,765,64,64,64,64,64,64,64,64,64,64,64,64,64,64,,,64,64,64,,,64,,,64,,,64,64,,64,,64,,64,,64,64,,64,64,64,64,64,,64,,64,,765,765,765,765,,765,765,765,765,,,,64,765,765,64,64,64,64,,64,765,64,765,765,765,,64,66,66,66,66,66,,,,66,66,,,,66,,66,66,66,66,66,66,66,,,,,,66,66,66,66,66,66,66,,,66,,,,,,66,66,,66,66,66,66,66,66,66,66,66,,66,66,66,,66,66,66,66,66,,,,,,,,,,,,,,,,,,,,66,,,66,,,66,66,,,66,,66,,,,66,,,,,,,,,66,,,,,66,66,66,66,,66,66,66,66,,,,,66,66,,,,67,67,67,66,67,66,66,66,67,67,66,66,,67,,67,67,67,67,67,67,67,,,,,,67,67,67,67,67,67,67,,,67,,,,,,,67,,,67,67,67,67,67,67,67,67,67,67,67,67,,67,67,67,67,67,,,,,,,,,,,,,,,,,,,,67,,,67,,,67,67,,,67,,67,,,,67,,,67,,,,,,67,,,,,67,67,67,67,,67,67,67,67,,,,,67,67,,,,68,68,68,67,68,67,67,67,68,68,67,67,,68,,68,68,68,68,68,68,68,,,,,,68,68,68,68,68,68,68,,,68,,,,,,,68,,,68,68,68,68,68,68,68,68,68,68,68,68,,68,68,68,68,68,,,,,,,,,,,,,,,,,,,,68,,,68,,,68,68,,,68,,,,,,68,,,68,,,,,,68,,,,,68,68,68,68,,68,68,68,68,,,,,68,68,,,,71,71,71,68,71,68,68,68,71,71,68,68,,71,,71,71,71,71,71,71,71,,,,,,71,71,71,71,71,71,71,,,71,,,,,,,71,,,71,71,71,71,71,71,71,71,,71,71,71,,71,71,71,71,71,,,,,,,,,,,,,,,,,,,,71,,,71,,,71,71,,,71,,,,,,71,,,,,,,,,71,,,,,71,71,71,71,,71,71,71,71,,,,,71,71,,,,72,72,72,71,72,71,71,71,72,72,71,71,,72,,72,72,72,72,72,72,72,,,,,,72,72,72,72,72,72,72,,,72,,,,,,,72,,,72,72,72,72,72,72,72,72,,72,72,72,,72,72,72,72,72,,,,,,,,,,,,,,,,,,,,72,,,72,,,72,72,,,72,,,,,,72,,,,,,,,,72,,,,,72,72,72,72,,72,72,72,72,,,,,72,72,,,,75,75,75,72,75,72,72,72,75,75,72,72,,75,,75,75,75,75,75,75,75,,,,,,75,75,75,75,75,75,75,,,75,,,,,,,75,,,75,75,75,75,75,75,75,75,,75,75,75,,75,75,75,75,75,,,,,,,,,,,,,,,,,,,,75,,,75,,,75,75,,,75,,,,,,75,,,,,,,,,75,,,,,75,75,75,75,,75,75,75,75,,,,,75,75,75,,,,,75,75,,75,75,75,,,75,75,125,125,125,125,125,,,,125,125,,,,125,,125,125,125,125,125,125,125,,,,,,125,125,125,125,125,125,125,,,125,,,,,,125,125,125,125,125,125,125,125,125,125,125,125,,125,125,125,,125,125,125,125,125,,,,,,,,,,,,,,,,,,,,125,,,125,,,125,125,,,125,,125,,,,125,,,,,,,,,125,,,,,125,125,125,125,,125,125,125,125,,,,,125,125,,,,,,125,125,,125,125,125,,,125,125,130,130,130,,130,,,,130,130,,,,130,,130,130,130,130,130,130,130,,,,,,130,130,130,130,130,130,130,,,130,,,,,,,130,,,130,130,130,130,130,130,130,130,,130,130,130,,130,130,130,130,130,,,,,,,,,,,,,,,,,,,,130,,,130,,,130,130,,,130,,,,,,130,,,,,,,,,130,,,,,130,130,130,130,,130,130,130,130,,,,,130,130,,,,131,131,131,130,131,130,130,130,131,131,130,130,,131,,131,131,131,131,131,131,131,,,,,,131,131,131,131,131,131,131,,,131,,,,,,,131,,,131,131,131,131,131,131,131,131,,131,131,131,,131,131,131,131,131,,,,,,,,,,,,,,,,,,,,131,,,131,,,131,131,,,131,,,,,,131,,,,,,,,,131,,,,,131,131,131,131,,131,131,131,131,,,,,131,131,,,,132,132,132,131,132,131,131,131,132,132,131,131,,132,,132,132,132,132,132,132,132,,,,,,132,132,132,132,132,132,132,,,132,,,,,,,132,,,132,132,132,132,132,132,132,132,,132,132,132,,132,132,132,132,132,,,,,,,,,,,,,,,,,,,,132,,,132,,,132,132,,,132,,,,,,132,,,,,,,,,132,,,,,132,132,132,132,,132,132,132,132,,,,,132,132,,,,133,133,133,132,133,132,132,132,133,133,132,132,,133,,133,133,133,133,133,133,133,,,,,,133,133,133,133,133,133,133,,,133,,,,,,,133,,,133,133,133,133,133,133,133,133,,133,133,133,,133,133,133,133,133,,,,,,,,,,,,,,,,,,,,133,,,133,,,133,133,,,133,,,,,,133,,,,,,,,,133,,,,,133,133,133,133,,133,133,133,133,,,,,133,133,,,,,,,133,,133,133,133,,,133,133,134,134,134,134,134,,,,134,134,,,,134,,134,134,134,134,134,134,134,,,,,,134,134,134,134,134,134,134,,,134,,,,,,134,134,,134,134,134,134,134,134,134,134,134,,134,134,134,,134,134,134,134,134,,,,,,,,,,,,,,,,,,,,134,,,134,,,134,134,,,134,,134,,,,134,,,,,,,,,134,,,,,134,134,134,134,,134,134,134,134,,,,,134,134,,,,220,220,220,134,220,134,134,134,220,220,134,134,,220,,220,220,220,220,220,220,220,,,,,,220,220,220,220,220,220,220,,,220,,,,,,,220,,,220,220,220,220,220,220,220,220,,220,220,220,,220,220,220,220,220,,,,,,,,,,,,,,,,,,,,220,,,220,,,220,220,,,220,,220,,,,220,,,,,,,,,220,,,,,220,220,220,220,,220,220,220,220,,,,,220,220,,,,221,221,221,220,221,220,220,220,221,221,220,220,,221,,221,221,221,221,221,221,221,,,,,,221,221,221,221,221,221,221,,,221,,,,,,,221,,,221,221,221,221,221,221,221,221,,221,221,221,,221,221,221,221,221,,,,,,,,,,,,,,,,,,,,221,,,221,,,221,221,,,221,,221,,,,221,,,,,,,,,221,,,,,221,221,221,221,,221,221,221,221,,,,,221,221,,,,222,222,222,221,222,221,221,221,222,222,221,221,,222,,222,222,222,222,222,222,222,,,,,,222,222,222,222,222,222,222,,,222,,,,,,,222,,,222,222,222,222,222,222,222,222,,222,222,222,,222,222,222,222,222,,,,,,,,,,,,,,,,,,,,222,,,222,,,222,222,,,222,,,,,,222,,,,,,,,,222,,,,,222,222,222,222,,222,222,222,222,,,,,222,222,,,,223,223,223,222,223,222,222,222,223,223,222,222,,223,,223,223,223,223,223,223,223,,,,,,223,223,223,223,223,223,223,,,223,,,,,,,223,,,223,223,223,223,223,223,223,223,,223,223,223,,223,223,223,223,223,,,,,,,,,,,,,,,,,,,,223,,,223,,,223,223,,,223,,,,,,223,,,,,,,,,223,,,,,223,223,223,223,,223,223,223,223,,,,,223,223,,,,224,224,224,223,224,223,223,223,224,224,223,223,,224,,224,224,224,224,224,224,224,,,,,,224,224,224,224,224,224,224,,,224,,,,,,,224,,,224,224,224,224,224,224,224,224,,224,224,224,,224,224,224,224,224,,,,,,,,,,,,,,,,,,,,224,,,224,,,224,224,,,224,,,,,,224,,,,,,,,,224,,,,,224,224,224,224,,224,224,224,224,,,,,224,224,,,,225,225,225,224,225,224,224,224,225,225,224,224,,225,,225,225,225,225,225,225,225,,,,,,225,225,225,225,225,225,225,,,225,,,,,,,225,,,225,225,225,225,225,225,225,225,225,225,225,225,,225,225,225,225,225,,,,,,,,,,,,,,,,,,,,225,,,225,,,225,225,,,225,,225,,225,,225,,,225,,,,,,225,,,,,225,225,225,225,,225,225,225,225,,,,,225,225,,,,238,238,238,225,238,225,225,225,238,238,225,225,,238,,238,238,238,238,238,238,238,,,,,,238,238,238,238,238,238,238,,,238,,,,,,,238,,,238,238,238,238,238,238,238,238,,238,238,238,,238,238,238,238,238,,,,,,,,,,,,,,,,,,,,238,,,238,,,238,238,,,238,,,,,,238,,,,,,,,,238,,,,,238,238,238,238,,238,238,238,238,,,,,238,238,,,,239,239,239,238,239,238,238,238,239,239,238,238,,239,,239,239,239,239,239,239,239,,,,,,239,239,239,239,239,239,239,,,239,,,,,,,239,,,239,239,239,239,239,239,239,239,,239,239,239,,239,239,239,239,239,,,,,,,,,,,,,,,,,,,,239,,,239,,,239,239,,,239,,,,,,239,,,,,,,,,239,,,,,239,239,239,239,,239,239,239,239,,,,,239,239,,,,240,240,240,239,240,239,239,239,240,240,239,239,,240,,240,240,240,240,240,240,240,,,,,,240,240,240,240,240,240,240,,,240,,,,,,,240,,,240,240,240,240,240,240,240,240,,240,240,240,,240,240,240,240,240,,,,,,,,,,,,,,,,,,,,240,,,240,,,240,240,,,240,,,,,,240,,,,,,,,,240,,,,,240,240,240,240,,240,240,240,240,,,,,240,240,240,,,251,251,251,240,251,240,240,240,251,251,240,240,,251,,251,251,251,251,251,251,251,,,,,,251,251,251,251,251,251,251,,,251,,,,,,,251,,,251,251,251,251,251,251,251,251,,251,251,251,,251,251,251,251,251,,,,,,,,,,,,,,,,,,,,251,,,251,,,251,251,,,251,,,,,,251,,,,,,,,,251,,,,,251,251,251,251,,251,251,251,251,,,,,251,251,,,,258,258,258,251,258,251,251,251,258,258,251,251,,258,,258,258,258,258,258,258,258,,,,,,258,258,258,258,258,258,258,,,258,,,,,,,258,,,258,258,258,258,258,258,258,258,,258,258,258,,258,258,258,258,258,,,,,,,,,,,,,,,,,,,,258,,,258,,,258,258,,,258,,,,,,258,,,,,,,,,258,,,,,258,258,258,258,,258,258,258,258,,,,,258,258,,,,259,259,259,258,259,258,258,258,259,259,258,258,,259,,259,259,259,259,259,259,259,,,,,,259,259,259,259,259,259,259,,,259,,,,,,,259,,,259,259,259,259,259,259,259,259,,259,259,259,,259,259,259,259,259,,,,,,,,,,,,,,,,,,,,259,,,259,,,259,259,,,259,,,,,,259,,,,,,,,,259,,,,,259,259,259,259,,259,259,259,259,,,,,259,259,,,,260,260,260,259,260,259,259,259,260,260,259,259,,260,,260,260,260,260,260,260,260,,,,,,260,260,260,260,260,260,260,,,260,,,,,,,260,,,260,260,260,260,260,260,260,260,,260,260,260,,260,260,260,260,260,,,,,,,,,,,,,,,,,,,,260,,,260,,,260,260,,,260,,,,,,260,,,,,,,,,260,,,,,260,260,260,260,,260,260,260,260,,,,,260,260,,,,261,261,261,260,261,260,260,260,261,261,260,260,,261,,261,261,261,261,261,261,261,,,,,,261,261,261,261,261,261,261,,,261,,,,,,,261,,,261,261,261,261,261,261,261,261,,261,261,261,,261,261,261,261,261,,,,,,,,,,,,,,,,,,,,261,,,261,,,261,261,,,261,,,,,,261,,,,,,,,,261,,,,,261,261,261,261,,261,261,261,261,,,,,261,261,,,,262,262,262,261,262,261,261,261,262,262,261,261,,262,,262,262,262,262,262,262,262,,,,,,262,262,262,262,262,262,262,,,262,,,,,,,262,,,262,262,262,262,262,262,262,262,,262,262,262,,262,262,262,262,262,,,,,,,,,,,,,,,,,,,,262,,,262,,,262,262,,,262,,,,,,262,,,,,,,,,262,,,,,262,262,262,262,,262,262,262,262,,,,,262,262,,,,263,263,263,262,263,262,262,262,263,263,262,262,,263,,263,263,263,263,263,263,263,,,,,,263,263,263,263,263,263,263,,,263,,,,,,,263,,,263,263,263,263,263,263,263,263,,263,263,263,,263,263,263,263,263,,,,,,,,,,,,,,,,,,,,263,,,263,,,263,263,,,263,,,,,,263,,,,,,,,,263,,,,,263,263,263,263,,263,263,263,263,,,,,263,263,,,,264,264,264,263,264,263,263,263,264,264,263,263,,264,,264,264,264,264,264,264,264,,,,,,264,264,264,264,264,264,264,,,264,,,,,,,264,,,264,264,264,264,264,264,264,264,,264,264,264,,264,264,264,264,264,,,,,,,,,,,,,,,,,,,,264,,,264,,,264,264,,,264,,,,,,264,,,,,,,,,264,,,,,264,264,264,264,,264,264,264,264,,,,,264,264,,,,265,265,265,264,265,264,264,264,265,265,264,264,,265,,265,265,265,265,265,265,265,,,,,,265,265,265,265,265,265,265,,,265,,,,,,,265,,,265,265,265,265,265,265,265,265,,265,265,265,,265,265,265,265,265,,,,,,,,,,,,,,,,,,,,265,,,265,,,265,265,,,265,,,,,,265,,,,,,,,,265,,,,,265,265,265,265,,265,265,265,265,,,,,265,265,,,,266,266,266,265,266,265,265,265,266,266,265,265,,266,,266,266,266,266,266,266,266,,,,,,266,266,266,266,266,266,266,,,266,,,,,,,266,,,266,266,266,266,266,266,266,266,,266,266,266,,266,266,266,266,266,,,,,,,,,,,,,,,,,,,,266,,,266,,,266,266,,,266,,,,,,266,,,,,,,,,266,,,,,266,266,266,266,,266,266,266,266,,,,,266,266,,,,267,267,267,266,267,266,266,266,267,267,266,266,,267,,267,267,267,267,267,267,267,,,,,,267,267,267,267,267,267,267,,,267,,,,,,,267,,,267,267,267,267,267,267,267,267,,267,267,267,,267,267,267,267,267,,,,,,,,,,,,,,,,,,,,267,,,267,,,267,267,,,267,,,,,,267,,,,,,,,,267,,,,,267,267,267,267,,267,267,267,267,,,,,267,267,,,,268,268,268,267,268,267,267,267,268,268,267,267,,268,,268,268,268,268,268,268,268,,,,,,268,268,268,268,268,268,268,,,268,,,,,,,268,,,268,268,268,268,268,268,268,268,,268,268,268,,268,268,268,268,268,,,,,,,,,,,,,,,,,,,,268,,,268,,,268,268,,,268,,,,,,268,,,,,,,,,268,,,,,268,268,268,268,,268,268,268,268,,,,,268,268,,,,269,269,269,268,269,268,268,268,269,269,268,268,,269,,269,269,269,269,269,269,269,,,,,,269,269,269,269,269,269,269,,,269,,,,,,,269,,,269,269,269,269,269,269,269,269,,269,269,269,,269,269,269,269,269,,,,,,,,,,,,,,,,,,,,269,,,269,,,269,269,,,269,,,,,,269,,,,,,,,,269,,,,,269,269,269,269,,269,269,269,269,,,,,269,269,,,,270,270,270,269,270,269,269,269,270,270,269,269,,270,,270,270,270,270,270,270,270,,,,,,270,270,270,270,270,270,270,,,270,,,,,,,270,,,270,270,270,270,270,270,270,270,,270,270,270,,270,270,270,270,270,,,,,,,,,,,,,,,,,,,,270,,,270,,,270,270,,,270,,,,,,270,,,,,,,,,270,,,,,270,270,270,270,,270,270,270,270,,,,,270,270,,,,271,271,271,270,271,270,270,270,271,271,270,270,,271,,271,271,271,271,271,271,271,,,,,,271,271,271,271,271,271,271,,,271,,,,,,,271,,,271,271,271,271,271,271,271,271,,271,271,271,,271,271,271,271,271,,,,,,,,,,,,,,,,,,,,271,,,271,,,271,271,,,271,,,,,,271,,,,,,,,,271,,,,,271,271,271,271,,271,271,271,271,,,,,271,271,,,,272,272,272,271,272,271,271,271,272,272,271,271,,272,,272,272,272,272,272,272,272,,,,,,272,272,272,272,272,272,272,,,272,,,,,,,272,,,272,272,272,272,272,272,272,272,,272,272,272,,272,272,272,272,272,,,,,,,,,,,,,,,,,,,,272,,,272,,,272,272,,,272,,,,,,272,,,,,,,,,272,,,,,272,272,272,272,,272,272,272,272,,,,,272,272,,,,273,273,273,272,273,272,272,272,273,273,272,272,,273,,273,273,273,273,273,273,273,,,,,,273,273,273,273,273,273,273,,,273,,,,,,,273,,,273,273,273,273,273,273,273,273,,273,273,273,,273,273,273,273,273,,,,,,,,,,,,,,,,,,,,273,,,273,,,273,273,,,273,,,,,,273,,,,,,,,,273,,,,,273,273,273,273,,273,273,273,273,,,,,273,273,,,,274,274,274,273,274,273,273,273,274,274,273,273,,274,,274,274,274,274,274,274,274,,,,,,274,274,274,274,274,274,274,,,274,,,,,,,274,,,274,274,274,274,274,274,274,274,,274,274,274,,274,274,274,274,274,,,,,,,,,,,,,,,,,,,,274,,,274,,,274,274,,,274,,,,,,274,,,,,,,,,274,,,,,274,274,274,274,,274,274,274,274,,,,,274,274,,,,275,275,275,274,275,274,274,274,275,275,274,274,,275,,275,275,275,275,275,275,275,,,,,,275,275,275,275,275,275,275,,,275,,,,,,,275,,,275,275,275,275,275,275,275,275,,275,275,275,,275,275,275,275,275,,,,,,,,,,,,,,,,,,,,275,,,275,,,275,275,,,275,,,,,,275,,,,,,,,,275,,,,,275,275,275,275,,275,275,275,275,,,,,275,275,,,,276,276,276,275,276,275,275,275,276,276,275,275,,276,,276,276,276,276,276,276,276,,,,,,276,276,276,276,276,276,276,,,276,,,,,,,276,,,276,276,276,276,276,276,276,276,,276,276,276,,276,276,276,276,276,,,,,,,,,,,,,,,,,,,,276,,,276,,,276,276,,,276,,,,,,276,,,,,,,,,276,,,,,276,276,276,276,,276,276,276,276,,,,,276,276,,,,277,277,277,276,277,276,276,276,277,277,276,276,,277,,277,277,277,277,277,277,277,,,,,,277,277,277,277,277,277,277,,,277,,,,,,,277,,,277,277,277,277,277,277,277,277,,277,277,277,,277,277,277,277,277,,,,,,,,,,,,,,,,,,,,277,,,277,,,277,277,,,277,,,,,,277,,,,,,,,,277,,,,,277,277,277,277,,277,277,277,277,,,,,277,277,,,,278,278,278,277,278,277,277,277,278,278,277,277,,278,,278,278,278,278,278,278,278,,,,,,278,278,278,278,278,278,278,,,278,,,,,,,278,,,278,278,278,278,278,278,278,278,,278,278,278,,278,278,278,278,278,,,,,,,,,,,,,,,,,,,,278,,,278,,,278,278,,,278,,,,,,278,,,,,,,,,278,,,,,278,278,278,278,,278,278,278,278,,,,,278,278,,,,279,279,279,278,279,278,278,278,279,279,278,278,,279,,279,279,279,279,279,279,279,,,,,,279,279,279,279,279,279,279,,,279,,,,,,,279,,,279,279,279,279,279,279,279,279,,279,279,279,,279,279,279,279,279,,,,,,,,,,,,,,,,,,,,279,,,279,,,279,279,,,279,,,,,,279,,,,,,,,,279,,,,,279,279,279,279,,279,279,279,279,,,,,279,279,,,,284,284,284,279,284,279,279,279,284,284,279,279,,284,,284,284,284,284,284,284,284,,,,,,284,284,284,284,284,284,284,,,284,,,,,,,284,,,284,284,284,284,284,284,284,284,,284,284,284,,284,284,284,284,284,,,,,,,,,,,,,,,,,,,,284,,,284,,,284,284,,,284,,,,,,284,,,,,,,,,284,,,,,284,284,284,284,,284,284,284,284,,,,,284,284,,,,300,300,300,284,300,284,284,284,300,300,284,284,,300,,300,300,300,300,300,300,300,,,,,,300,300,300,300,300,300,300,,,300,,,,,,,300,,,300,300,300,300,300,300,300,300,,300,300,300,,300,300,300,300,300,,,,,,,,,,,,,,,,,,,,300,,,300,,,300,300,,,300,,,,,,300,,,,,,,,,300,,,,,300,300,300,300,,300,300,300,300,,,,,300,300,,,,307,307,307,300,307,300,300,300,307,307,300,300,,307,,307,307,307,307,307,307,307,,,,,,307,307,307,307,307,307,307,,,307,,,,,,,307,,,307,307,307,307,307,307,307,307,307,307,307,307,,307,307,307,307,307,,,,,,,,,,,,,,,,,,,,307,,,307,,,307,307,,,307,,307,,307,,307,,,307,,,,,,307,,,,,307,307,307,307,,307,307,307,307,,,,,307,307,,,,308,308,308,307,308,307,307,307,308,308,307,307,,308,,308,308,308,308,308,308,308,,,,,,308,308,308,308,308,308,308,,,308,,,,,,,308,,,308,308,308,308,308,308,308,308,308,308,308,308,,308,308,308,308,308,,,,,,,,,,,,,,,,,,,,308,,,308,,,308,308,,,308,,308,,308,,308,,,308,,,,,,308,,,,,308,308,308,308,,308,308,308,308,,,,,308,308,,,,316,316,316,308,316,308,308,308,316,316,308,308,,316,,316,316,316,316,316,316,316,,,,,,316,316,316,316,316,316,316,,,316,,,,,,,316,,,316,316,316,316,316,316,316,316,316,316,316,316,,316,316,316,316,316,,,,,,,,,,,,,,,,,,,,316,,,316,,,316,316,,,316,,316,,316,,316,,,316,,,,,,316,,,,,316,316,316,316,,316,316,316,316,,,,,316,316,316,,,323,323,323,316,323,316,316,316,323,323,316,316,,323,,323,323,323,323,323,323,323,,,,,,323,323,323,323,323,323,323,,,323,,,,,,,323,,,323,323,323,323,323,323,323,323,,323,323,323,,323,323,323,323,323,,,,,,,,,,,,,,,,,,,,323,,,323,,,323,323,,,323,,,,,,323,,,,,,,,,323,,,,,323,323,323,323,,323,323,323,323,,,,,323,323,,,,325,325,325,323,325,323,323,323,325,325,323,323,,325,,325,325,325,325,325,325,325,,,,,,325,325,325,325,325,325,325,,,325,,,,,,,325,,,325,325,325,325,325,325,325,325,,325,325,325,,325,325,325,325,325,,,,,,,,,,,,,,,,,,,,325,,,325,,,325,325,,,325,,,,,,325,,,,,,,,,325,,,,,325,325,325,325,,325,325,325,325,,,,,325,325,,,,328,328,328,325,328,325,325,325,328,328,325,325,,328,,328,328,328,328,328,328,328,,,,,,328,328,328,328,328,328,328,,,328,,,,,,,328,,,328,328,328,328,328,328,328,328,,328,328,328,,328,328,328,328,328,,,,,,,,,,,,,,,,,,,,328,,,328,,,328,328,,,328,,,,,,328,,,,,,,,,328,,,,,328,328,328,328,,328,328,328,328,,,,,328,328,,,,329,329,329,328,329,328,328,328,329,329,328,328,,329,,329,329,329,329,329,329,329,,,,,,329,329,329,329,329,329,329,,,329,,,,,,,329,,,329,329,329,329,329,329,329,329,,329,329,329,,329,329,329,329,329,,,,,,,,,,,,,,,,,,,,329,,,329,,,329,329,,,329,,,,,,329,,,,,,,,,329,,,,,329,329,329,329,,329,329,329,329,,,,,329,329,,,,,,,329,,329,329,329,,,329,329,334,334,334,334,334,,,,334,334,,,,334,,334,334,334,334,334,334,334,,,,,,334,334,334,334,334,334,334,,,334,,,,,,334,334,,334,334,334,334,334,334,334,334,334,,334,334,334,,334,334,334,334,334,,,,,,,,,,,,,,,,,,,,334,,,334,,,334,334,,,334,,334,,,,334,,,,,,,,,334,,,,,334,334,334,334,,334,334,334,334,,,,,334,334,,,,370,370,370,334,370,334,334,334,370,370,334,334,,370,,370,370,370,370,370,370,370,,,,,,370,370,370,370,370,370,370,,,370,,,,,,,370,,,370,370,370,370,370,370,370,370,,370,370,370,,370,370,370,370,370,,,,,,,,,,,,,,,,,,,,370,,,370,,,370,370,,,370,,,,,,370,,,,,,,,,370,,,,,370,370,370,370,,370,370,370,370,,,,,370,370,,,,387,387,387,370,387,370,370,370,387,387,370,370,,387,,387,387,387,387,387,387,387,,,,,,387,387,387,387,387,387,387,,,387,,,,,,,387,,,387,387,387,387,387,387,387,387,,387,387,387,,387,387,387,387,387,,,,,,,,,,,,,,,,,,,,387,,,387,,,387,387,,,387,,,,,,387,,,,,,,,,387,,,,,387,387,387,387,,387,387,387,387,,,,,387,387,,,,408,408,408,387,408,387,387,387,408,408,387,387,,408,,408,408,408,408,408,408,408,,,,,,408,408,408,408,408,408,408,,,408,,,,,,,408,,,408,408,408,408,408,408,408,408,,408,408,408,,408,408,408,408,408,,,,,,,,,,,,,,,,,,,,408,,,408,,,408,408,,,408,,,,,,408,,,,,,,,,408,,,,,408,408,408,408,,408,408,408,408,,,,,408,408,,,,437,437,437,408,437,408,408,408,437,437,408,408,,437,,437,437,437,437,437,437,437,,,,,,437,437,437,437,437,437,437,,,437,,,,,,,437,,,437,437,437,437,437,437,437,437,,437,437,437,,437,437,437,437,437,,,,,,,,,,,,,,,,,,,,437,,,437,,,437,437,,,437,,,,,,437,,,,,,,,,437,,,,,437,437,437,437,,437,437,437,437,,,,,437,437,,,,,,,437,,437,437,437,461,,437,437,,,,461,461,461,,,461,461,461,,461,,,,,,,,461,461,461,461,,,,,,,,,461,461,,461,461,461,461,461,,,,,,,,,,,,,,,,,,,,,,,461,461,461,461,461,461,461,461,461,461,461,461,461,461,,,461,461,461,,,461,,461,461,,,461,461,,461,,461,,461,,461,461,,461,461,461,461,461,,461,461,461,1138,,1138,1138,1138,1138,1138,,,,,,,461,,1138,461,461,471,461,,461,,,,471,471,471,461,,471,471,471,,471,,,1138,,,,,471,471,471,471,471,,1138,1138,,,,1138,471,471,,471,471,471,471,471,,,,,,,,,,,,,,,,,,,,,,,471,471,471,471,471,471,471,471,471,471,471,471,471,471,,,471,471,471,,,471,,,471,,,471,471,,471,,471,,471,,471,471,,471,471,471,471,471,,471,471,471,,,,,,,,,,,,,,471,,,471,471,471,471,,471,472,471,,,,,471,472,472,472,,,472,472,472,,472,,,,,,,,472,472,472,472,472,,,,,,,,472,472,,472,472,472,472,472,,,,,,,,,,,,,,,,,,,,,,,472,472,472,472,472,472,472,472,472,472,472,472,472,472,,,472,472,472,,,472,,,472,,,472,472,,472,,472,,472,,472,472,,472,472,472,472,472,,472,472,472,,,,,,,,,,,,,,472,,,472,472,472,472,,472,,472,,473,473,473,472,473,,,,473,473,,,,473,,473,473,473,473,473,473,473,,,,,,473,473,473,473,473,473,473,,,473,,,,,,,473,,,473,473,473,473,473,473,473,473,,473,473,473,,473,473,473,473,473,,,,,,,,,,,,,,,,,,,,473,,,473,,,473,473,,,473,,,,,,473,,,,,,,,,473,,,,,473,473,473,473,,473,473,473,473,,,,,473,473,,,,500,500,500,473,500,473,473,473,500,500,473,473,,500,,500,500,500,500,500,500,500,,,,,,500,500,500,500,500,500,500,,,500,,,,,,,500,,,500,500,500,500,500,500,500,500,,500,500,500,,500,500,500,500,500,,,,,,,,,,,,,,,,,,,,500,,,500,,,500,500,,,500,,,,,,500,,,,,,,,,500,,,,,500,500,500,500,,500,500,500,500,,,,,500,500,,,,513,513,513,500,513,500,500,500,513,513,500,500,,513,,513,513,513,513,513,513,513,,,,,,513,513,513,513,513,513,513,,,513,,,,,,,513,,,513,513,513,513,513,513,513,513,,513,513,513,,513,513,513,513,513,,,,,,,,,,,,,,,,,,,,513,,,513,,,513,513,,,513,,,,,,513,,,,,,,,,513,,,,,513,513,513,513,,513,513,513,513,,,,,513,513,,,,523,523,523,513,523,513,513,513,523,523,513,513,,523,,523,523,523,523,523,523,523,,,,,,523,523,523,523,523,523,523,,,523,,,,,,,523,,,523,523,523,523,523,523,523,523,523,523,523,523,,523,523,523,523,523,,,,,,,,,,,,,,,,,,,,523,,,523,,,523,523,,,523,,523,,523,,523,,,523,,,,,,523,,,,,523,523,523,523,,523,523,523,523,,,,,523,523,,,,525,525,525,523,525,523,523,523,525,525,523,523,,525,,525,525,525,525,525,525,525,,,,,,525,525,525,525,525,525,525,,,525,,,,,,,525,,,525,525,525,525,525,525,525,525,,525,525,525,,525,525,525,525,525,,,,,,,,,,,,,,,,,,,,525,,,525,,,525,525,,,525,,,,,,525,,,,,,,,,525,,,,,525,525,525,525,,525,525,525,525,,,,,525,525,,,,526,526,526,525,526,525,525,525,526,526,525,525,,526,,526,526,526,526,526,526,526,,,,,,526,526,526,526,526,526,526,,,526,,,,,,,526,,,526,526,526,526,526,526,526,526,,526,526,526,,526,526,526,526,526,,,,,,,,,,,,,,,,,,,,526,,,526,,,526,526,,,526,,,,,,526,,,,,,,,,526,,,,,526,526,526,526,,526,526,526,526,,,,,526,526,,,,527,527,527,526,527,526,526,526,527,527,526,526,,527,,527,527,527,527,527,527,527,,,,,,527,527,527,527,527,527,527,,,527,,,,,,,527,,,527,527,527,527,527,527,527,527,,527,527,527,,527,527,527,527,527,,,,,,,,,,,,,,,,,,,,527,,,527,,,527,527,,,527,,,,,,527,,,,,,,,,527,,,,,527,527,527,527,,527,527,527,527,,,,,527,527,,,,,,,527,,527,527,527,558,,527,527,,,,558,558,558,,,558,558,558,410,558,410,410,410,410,410,,,558,558,558,,,,410,,,,,,558,558,,558,558,558,558,558,,647,,647,647,647,647,647,410,410,,,,,,,647,410,410,410,410,,,,410,,1133,,1133,1133,1133,1133,1133,558,,,,,647,,558,1133,,,,558,558,647,647,647,647,,,,647,,,,,,,,,1133,410,,,,558,558,,,1133,1133,1133,1133,,,,1133,,,,558,,,558,,563,563,563,558,563,,647,,563,563,558,,,563,,563,563,563,563,563,563,563,,,,,,563,563,563,563,563,563,563,,,563,,,,,,,563,,,563,563,563,563,563,563,563,563,,563,563,563,,563,563,563,563,563,,,,,,,,,,,,,,,,,,,,563,,,563,,,563,563,,,563,,,,,,563,,,,,,,,,563,,,,,563,563,563,563,,563,563,563,563,,,,,563,563,,,,573,573,573,563,573,563,563,563,573,573,563,563,,573,,573,573,573,573,573,573,573,,,,,,573,573,573,573,573,573,573,,,573,,,,,,,573,,,573,573,573,573,573,573,573,573,573,573,573,573,,573,573,573,573,573,,,,,,,,,,,,,,,,,,,,573,,,573,,,573,573,,,573,,573,,573,,573,,,573,,,,,,573,,,,,573,573,573,573,,573,573,573,573,,,,,573,573,,,,575,575,575,573,575,573,573,573,575,575,573,573,,575,,575,575,575,575,575,575,575,,,,,,575,575,575,575,575,575,575,,,575,,,,,,,575,,,575,575,575,575,575,575,575,575,575,575,575,575,,575,575,575,575,575,,,,,,,,,,,,,,,,,,,,575,,,575,,,575,575,,,575,,,,575,,575,,,575,,,,,,575,,,,,575,575,575,575,,575,575,575,575,,,,,575,575,,,,577,577,577,575,577,575,575,575,577,577,575,575,,577,,577,577,577,577,577,577,577,,,,,,577,577,577,577,577,577,577,,,577,,,,,,,577,,,577,577,577,577,577,577,577,577,,577,577,577,,577,577,577,577,577,,,,,,,,,,,,,,,,,,,,577,,,577,,,577,577,,,577,,,,,,577,,,,,,,,,577,,,,,577,577,577,577,,577,577,577,577,,,,,577,577,,,,,,,577,,577,577,577,,,577,577,583,583,583,583,583,,,,583,583,,,,583,,583,583,583,583,583,583,583,,,,,,583,583,583,583,583,583,583,,,583,,,,,,583,583,583,583,583,583,583,583,583,583,583,583,,583,583,583,,583,583,583,583,583,,,,,,,,,,,,,,,,,,,,583,,,583,,,583,583,,,583,,583,,,,583,,,,,,,,,583,,,,,583,583,583,583,,583,583,583,583,,,,,583,583,,,,,,583,583,,583,583,583,,,583,583,593,593,593,,593,,,,593,593,,,,593,,593,593,593,593,593,593,593,,,,,,593,593,593,593,593,593,593,,,593,,,,,,,593,,,593,593,593,593,593,593,593,593,593,593,593,593,,593,593,593,593,593,,,,,,,,,,,,,,,,,,,,593,,,593,,,593,593,,,593,,593,,593,,593,,,593,,,,,,593,,,,,593,593,593,593,,593,593,593,593,,,,,593,593,,,,603,603,603,593,603,593,593,593,603,603,593,593,,603,,603,603,603,603,603,603,603,,,,,,603,603,603,603,603,603,603,,,603,,,,,,,603,,,603,603,603,603,603,603,603,603,,603,603,603,,603,603,603,603,603,,,,,,,,,,,,,,,,,,,,603,,,603,,,603,603,,,603,,,,,,603,,,,,,,,,603,,,,,603,603,603,603,,603,603,603,603,,,,,603,603,,,,606,606,606,603,606,603,603,603,606,606,603,603,,606,,606,606,606,606,606,606,606,,,,,,606,606,606,606,606,606,606,,,606,,,,,,,606,,,606,606,606,606,606,606,606,606,,606,606,606,,606,606,606,606,606,,,,,,,,,,,,,,,,,,,,606,,,606,,,606,606,,,606,,,,,,606,,,,,,,,,606,,,,,606,606,606,606,,606,606,606,606,,,,,606,606,,,,608,608,608,606,608,606,606,606,608,608,606,606,,608,,608,608,608,608,608,608,608,,,,,,608,608,608,608,608,608,608,,,608,,,,,,,608,,,608,608,608,608,608,608,608,608,,608,608,608,,608,608,608,608,608,,,,,,,,,,,,,,,,,,,,608,,,608,,,608,608,,,608,,,,,,608,,,,,,,,,608,,,,,608,608,608,608,,608,608,608,608,,,,,608,608,,,,614,614,614,608,614,608,608,608,614,614,608,608,,614,,614,614,614,614,614,614,614,,,,,,614,614,614,614,614,614,614,,,614,,,,,,,614,,,614,614,614,614,614,614,614,614,614,614,614,614,,614,614,614,614,614,,,,,,,,,,,,,,,,,,,,614,,,614,,,614,614,,,614,,614,,,,614,,,614,,,,,,614,,,,,614,614,614,614,,614,614,614,614,,,,,614,614,,,,617,617,617,614,617,614,614,614,617,617,614,614,,617,,617,617,617,617,617,617,617,,,,,,617,617,617,617,617,617,617,,,617,,,,,,,617,,,617,617,617,617,617,617,617,617,617,617,617,617,,617,617,617,617,617,,,,,,,,,,,,,,,,,,,,617,,,617,,,617,617,,,617,,,,,,617,,,617,,,,,,617,,,,,617,617,617,617,,617,617,617,617,,,,,617,617,,,,630,630,630,617,630,617,617,617,630,630,617,617,,630,,630,630,630,630,630,630,630,,,,,,630,630,630,630,630,630,630,,,630,,,,,,,630,,,630,630,630,630,630,630,630,630,,630,630,630,,630,630,630,630,630,,,,,,,,,,,,,,,,,,,,630,,,630,,,630,630,,,630,,630,,,,630,,,,,,,,,630,,,,,630,630,630,630,,630,630,630,630,,,,,630,630,,,,631,631,631,630,631,630,630,630,631,631,630,630,,631,,631,631,631,631,631,631,631,,,,,,631,631,631,631,631,631,631,,,631,,,,,,,631,,,631,631,631,631,631,631,631,631,631,631,631,631,,631,631,631,631,631,,,,,,,,,,,,,,,,,,,,631,,,631,,,631,631,,,631,,631,,631,,631,,,631,,,,,,631,,,,,631,631,631,631,,631,631,631,631,,,,,631,631,,,,641,641,641,631,641,631,631,631,641,641,631,631,,641,,641,641,641,641,641,641,641,,,,,,641,641,641,641,641,641,641,,,641,,,,,,,641,,,641,641,641,641,641,641,641,641,641,641,641,641,,641,641,641,641,641,,,,,,,,,,,,,,,,,,,,641,,,641,,,641,641,,,641,,641,,641,,641,,,641,,,,,,641,,,,,641,641,641,641,,641,641,641,641,,,,,641,641,,,,,,,641,,641,641,641,,,641,641,672,672,672,672,672,,,,672,672,,,,672,,672,672,672,672,672,672,672,,,,,,672,672,672,672,672,672,672,,,672,,,,,,672,672,,672,672,672,672,672,672,672,672,672,,672,672,672,,672,672,672,672,672,,,,,,,,,,,,,,,,,,,,672,,,672,,,672,672,,,672,,672,,,,672,,,,,,,,,672,,,,,672,672,672,672,,672,672,672,672,,,,,672,672,,,,674,674,674,672,674,672,672,672,674,674,672,672,,674,,674,674,674,674,674,674,674,,,,,,674,674,674,674,674,674,674,,,674,,,,,,,674,,,674,674,674,674,674,674,674,674,,674,674,674,,674,674,674,674,674,,,,,,,,,,,,,,,,,,,,674,,,674,,,674,674,,,674,,674,,,,674,,,,,,,,,674,,,,,674,674,674,674,,674,674,674,674,,,,,674,674,,,,675,675,675,674,675,674,674,674,675,675,674,674,,675,,675,675,675,675,675,675,675,,,,,,675,675,675,675,675,675,675,,,675,,,,,,,675,,,675,675,675,675,675,675,675,675,,675,675,675,,675,675,675,675,675,,,,,,,,,,,,,,,,,,,,675,,,675,,,675,675,,,675,,,,,,675,,,,,,,,,675,,,,,675,675,675,675,,675,675,675,675,,,,,675,675,,,,676,676,676,675,676,675,675,675,676,676,675,675,,676,,676,676,676,676,676,676,676,,,,,,676,676,676,676,676,676,676,,,676,,,,,,,676,,,676,676,676,676,676,676,676,676,676,676,676,676,,676,676,676,676,676,,,,,,,,,,,,,,,,,,,,676,,,676,,,676,676,,,676,,676,,676,,676,,,676,,,,,,676,,,,,676,676,676,676,,676,676,676,676,,,,,676,676,,,,,,,676,,676,676,676,,,676,676,679,679,679,679,679,,,,679,679,,,,679,,679,679,679,679,679,679,679,,,,,,679,679,679,679,679,679,679,,,679,,,,,,679,679,,679,679,679,679,679,679,679,679,679,,679,679,679,,679,679,679,679,679,,,,,,,,,,,,,,,,,,,,679,,,679,,,679,679,,,679,,679,,,,679,,,,,,,,,679,,,,,679,679,679,679,,679,679,679,679,,,,,679,679,,,,680,680,680,679,680,679,679,679,680,680,679,679,,680,,680,680,680,680,680,680,680,,,,,,680,680,680,680,680,680,680,,,680,,,,,,,680,,,680,680,680,680,680,680,680,680,,680,680,680,,680,680,680,680,680,,,,,,,,,,,,,,,,,,,,680,,,680,,,680,680,,,680,,,,,,680,,,,,,,,,680,,,,,680,680,680,680,,680,680,680,680,,,,,680,680,,,,683,683,683,680,683,680,680,680,683,683,680,680,,683,,683,683,683,683,683,683,683,,,,,,683,683,683,683,683,683,683,,,683,,,,,,,683,,,683,683,683,683,683,683,683,683,683,683,683,683,,683,683,683,683,683,,,,,,,,,,,,,,,,,,,,683,,,683,,,683,683,,,683,,683,,683,,683,,,683,,,,,,683,,,,,683,683,683,683,,683,683,683,683,,,,,683,683,,,,684,684,684,683,684,683,683,683,684,684,683,683,,684,,684,684,684,684,684,684,684,,,,,,684,684,684,684,684,684,684,,,684,,,,,,,684,,,684,684,684,684,684,684,684,684,684,684,684,684,,684,684,684,684,684,,,,,,,,,,,,,,,,,,,,684,,,684,,,684,684,,,684,,,,684,,684,,,684,,,,,,684,,,,,684,684,684,684,,684,684,684,684,,,,,684,684,,,,685,685,685,684,685,684,684,684,685,685,684,684,,685,,685,685,685,685,685,685,685,,,,,,685,685,685,685,685,685,685,,,685,,,,,,,685,,,685,685,685,685,685,685,685,685,,685,685,685,,685,685,685,685,685,,,,,,,,,,,,,,,,,,,,685,,,685,,,685,685,,,685,,,,,,685,,,,,,,,,685,,,,,685,685,685,685,,685,685,685,685,,,,,685,685,,,,686,686,686,685,686,685,685,685,686,686,685,685,,686,,686,686,686,686,686,686,686,,,,,,686,686,686,686,686,686,686,,,686,,,,,,,686,,,686,686,686,686,686,686,686,686,,686,686,686,,686,686,686,686,686,,,,,,,,,,,,,,,,,,,,686,,,686,,,686,686,,,686,,,,,,686,,,,,,,,,686,,,,,686,686,686,686,,686,686,686,686,,,,,686,686,,,,690,690,690,686,690,686,686,686,690,690,686,686,,690,,690,690,690,690,690,690,690,,,,,,690,690,690,690,690,690,690,,,690,,,,,,,690,,,690,690,690,690,690,690,690,690,,690,690,690,,690,690,690,690,690,,,,,,,,,,,,,,,,,,,,690,,,690,,,690,690,,,690,,,,,,690,,,,,,,,,690,,,,,690,690,690,690,,690,690,690,690,,,,,690,690,,,,691,691,691,690,691,690,690,690,691,691,690,690,,691,,691,691,691,691,691,691,691,,,,,,691,691,691,691,691,691,691,,,691,,,,,,,691,,,691,691,691,691,691,691,691,691,,691,691,691,,691,691,691,691,691,,,,,,,,,,,,,,,,,,,,691,,,691,,,691,691,,,691,,,,,,691,,,,,,,,,691,,,,,691,691,691,691,,691,691,691,691,,,,,691,691,,,,697,697,697,691,697,691,691,691,697,697,691,691,,697,,697,697,697,697,697,697,697,,,,,,697,697,697,697,697,697,697,,,697,,,,,,,697,,,697,697,697,697,697,697,697,697,,697,697,697,,697,697,697,697,697,,,,,,,,,,,,,,,,,,,,697,,,697,,,697,697,,,697,,697,,,,697,,,,,,,,,697,,,,,697,697,697,697,,697,697,697,697,,,,,697,697,,,,713,713,713,697,713,697,697,697,713,713,697,697,,713,,713,713,713,713,713,713,713,,,,,,713,713,713,713,713,713,713,,,713,,,,,,,713,,,713,713,713,713,713,713,713,713,,713,713,713,,713,713,713,713,713,,,,,,,,,,,,,,,,,,,,713,,,713,,,713,713,,,713,,,,,,713,,,,,,,,,713,,,,,713,713,713,713,,713,713,713,713,,,,,713,713,,,,735,735,735,713,735,713,713,713,735,735,713,713,,735,,735,735,735,735,735,735,735,,,,,,735,735,735,735,735,735,735,,,735,,,,,,,735,,,735,735,735,735,735,735,735,735,,735,735,735,,735,735,735,735,735,,,,,,,,,,,,,,,,,,,,735,,,735,,,735,735,,,735,,,,,,735,,,,,,,,,735,,,,,735,735,735,735,,735,735,735,735,,,,,735,735,,,,736,736,736,735,736,735,735,735,736,736,735,735,,736,,736,736,736,736,736,736,736,,,,,,736,736,736,736,736,736,736,,,736,,,,,,,736,,,736,736,736,736,736,736,736,736,,736,736,736,,736,736,736,736,736,,,,,,,,,,,,,,,,,,,,736,,,736,,,736,736,,,736,,,,,,736,,,,,,,,,736,,,,,736,736,736,736,,736,736,736,736,,,,,736,736,,,,791,791,791,736,791,736,736,736,791,791,736,736,,791,,791,791,791,791,791,791,791,,,,,,791,791,791,791,791,791,791,,,791,,,,,,,791,,,791,791,791,791,791,791,791,791,791,791,791,791,,791,791,791,791,791,,,,,,,,,,,,,,,,,,,,791,,,791,,,791,791,,,791,,791,,791,,791,,,791,,,,,,791,,,,,791,791,791,791,,791,791,791,791,,,,,791,791,,,,800,800,800,791,800,791,791,791,800,800,791,791,,800,,800,800,800,800,800,800,800,,,,,,800,800,800,800,800,800,800,,,800,,,,,,,800,,,800,800,800,800,800,800,800,800,,800,800,800,,800,800,800,800,800,,,,,,,,,,,,,,,,,,,,800,,,800,,,800,800,,,800,,,,,,800,,,,,,,,,800,,,,,800,800,800,800,,800,800,800,800,,,,,800,800,,,,803,803,803,800,803,800,800,800,803,803,800,800,,803,,803,803,803,803,803,803,803,,,,,,803,803,803,803,803,803,803,,,803,,,,,,,803,,,803,803,803,803,803,803,803,803,,803,803,803,,803,803,803,803,803,,,,,,,,,,,,,,,,,,,,803,,,803,,,803,803,,,803,,,,,,803,,,,,,,,,803,,,,,803,803,803,803,,803,803,803,803,,,,,803,803,,,,821,821,821,803,821,803,803,803,821,821,803,803,,821,,821,821,821,821,821,821,821,,,,,,821,821,821,821,821,821,821,,,821,,,,,,,821,,,821,821,821,821,821,821,821,821,,821,821,821,,821,821,821,821,821,,,,,,,,,,,,,,,,,,,,821,,,821,,,821,821,,,821,,,,,,821,,,,,,,,,821,,,,,821,821,821,821,,821,821,821,821,,,,,821,821,,,,850,850,850,821,850,821,821,821,850,850,821,821,,850,,850,850,850,850,850,850,850,,,,,,850,850,850,850,850,850,850,,,850,,,,,,,850,,,850,850,850,850,850,850,850,850,,850,850,850,,850,850,850,850,850,,,,,,,,,,,,,,,,,,,,850,,,850,,,850,850,,,850,,,,,,850,,,,,,,,,850,,,,,850,850,850,850,,850,850,850,850,,,,,850,850,,,,870,870,870,850,870,850,850,850,870,870,850,850,,870,,870,870,870,870,870,870,870,,,,,,870,870,870,870,870,870,870,,,870,,,,,,,870,,,870,870,870,870,870,870,870,870,,870,870,870,,870,870,870,870,870,,,,,,,,,,,,,,,,,,,,870,,,870,,,870,870,,,870,,,,,,870,,,,,,,,,870,,,,,870,870,870,870,,870,870,870,870,,,,,870,870,,,,878,878,878,870,878,870,870,870,878,878,870,870,,878,,878,878,878,878,878,878,878,,,,,,878,878,878,878,878,878,878,,,878,,,,,,,878,,,878,878,878,878,878,878,878,878,,878,878,878,,878,878,878,878,878,,,,,,,,,,,,,,,,,,,,878,,,878,,,878,878,,,878,,,,,,878,,,,,,,,,878,,,,,878,878,878,878,,878,878,878,878,,,,,878,878,,,,891,891,891,878,891,878,878,878,891,891,878,878,,891,,891,891,891,891,891,891,891,,,,,,891,891,891,891,891,891,891,,,891,,,,,,,891,,,891,891,891,891,891,891,891,891,,891,891,891,,891,891,891,891,891,,,,,,,,,,,,,,,,,,,,891,,,891,,,891,891,,,891,,,,,,891,,,,,,,,,891,,,,,891,891,891,891,,891,891,891,891,,,,,891,891,,,,892,892,892,891,892,891,891,891,892,892,891,891,,892,,892,892,892,892,892,892,892,,,,,,892,892,892,892,892,892,892,,,892,,,,,,,892,,,892,892,892,892,892,892,892,892,,892,892,892,,892,892,892,892,892,,,,,,,,,,,,,,,,,,,,892,,,892,,,892,892,,,892,,,,,,892,,,,,,,,,892,,,,,892,892,892,892,,892,892,892,892,,,,,892,892,,,,920,920,920,892,920,892,892,892,920,920,892,892,,920,,920,920,920,920,920,920,920,,,,,,920,920,920,920,920,920,920,,,920,,,,,,,920,,,920,920,920,920,920,920,920,920,,920,920,920,,920,920,920,920,920,,,,,,,,,,,,,,,,,,,,920,,,920,,,920,920,,,920,,,,,,920,,,,,,,,,920,,,,,920,920,920,920,,920,920,920,920,,,,,920,920,,,,921,921,921,920,921,920,920,920,921,921,920,920,,921,,921,921,921,921,921,921,921,,,,,,921,921,921,921,921,921,921,,,921,,,,,,,921,,,921,921,921,921,921,921,921,921,,921,921,921,,921,921,921,921,921,,,,,,,,,,,,,,,,,,,,921,,,921,,,921,921,,,921,,,,,,921,,,,,,,,,921,,,,,921,921,921,921,,921,921,921,921,,,,,921,921,,,,922,922,922,921,922,921,921,921,922,922,921,921,,922,,922,922,922,922,922,922,922,,,,,,922,922,922,922,922,922,922,,,922,,,,,,,922,,,922,922,922,922,922,922,922,922,,922,922,922,,922,922,922,922,922,,,,,,,,,,,,,,,,,,,,922,,,922,,,922,922,,,922,,,,,,922,,,,,,,,,922,,,,,922,922,922,922,,922,922,922,922,,,,,922,922,,,,923,923,923,922,923,922,922,922,923,923,922,922,,923,,923,923,923,923,923,923,923,,,,,,923,923,923,923,923,923,923,,,923,,,,,,,923,,,923,923,923,923,923,923,923,923,,923,923,923,,923,923,923,923,923,,,,,,,,,,,,,,,,,,,,923,,,923,,,923,923,,,923,,,,,,923,,,,,,,,,923,,,,,923,923,923,923,,923,923,923,923,,,,,923,923,,,,924,924,924,923,924,923,923,923,924,924,923,923,,924,,924,924,924,924,924,924,924,,,,,,924,924,924,924,924,924,924,,,924,,,,,,,924,,,924,924,924,924,924,924,924,924,,924,924,924,,924,924,924,924,924,,,,,,,,,,,,,,,,,,,,924,,,924,,,924,924,,,924,,,,,,924,,,,,,,,,924,,,,,924,924,924,924,,924,924,924,924,,,,,924,924,,,,925,925,925,924,925,924,924,924,925,925,924,924,,925,,925,925,925,925,925,925,925,,,,,,925,925,925,925,925,925,925,,,925,,,,,,,925,,,925,925,925,925,925,925,925,925,,925,925,925,,925,925,925,925,925,,,,,,,,,,,,,,,,,,,,925,,,925,,,925,925,,,925,,,,,,925,,,,,,,,,925,,,,,925,925,925,925,,925,925,925,925,,,,,925,925,,,,958,958,958,925,958,925,925,925,958,958,925,925,,958,,958,958,958,958,958,958,958,,,,,,958,958,958,958,958,958,958,,,958,,,,,,,958,,,958,958,958,958,958,958,958,958,,958,958,958,,958,958,958,958,958,,,,,,,,,,,,,,,,,,,,958,,,958,,,958,958,,,958,,,,,,958,,,,,,,,,958,,,,,958,958,958,958,,958,958,958,958,,,,,958,958,,,,961,961,961,958,961,958,958,958,961,961,958,958,,961,,961,961,961,961,961,961,961,,,,,,961,961,961,961,961,961,961,,,961,,,,,,,961,,,961,961,961,961,961,961,961,961,,961,961,961,,961,961,961,961,961,,,,,,,,,,,,,,,,,,,,961,,,961,,,961,961,,,961,,,,,,961,,,,,,,,,961,,,,,961,961,961,961,,961,961,961,961,,,,,961,961,,,,984,984,984,961,984,961,961,961,984,984,961,961,,984,,984,984,984,984,984,984,984,,,,,,984,984,984,984,984,984,984,,,984,,,,,,,984,,,984,984,984,984,984,984,984,984,,984,984,984,,984,984,984,984,984,,,,,,,,,,,,,,,,,,,,984,,,984,,,984,984,,,984,,,,,,984,,,,,,,,,984,,,,,984,984,984,984,,984,984,984,984,,,,,984,984,,,,989,989,989,984,989,984,984,984,989,989,984,984,,989,,989,989,989,989,989,989,989,,,,,,989,989,989,989,989,989,989,,,989,,,,,,,989,,,989,989,989,989,989,989,989,989,,989,989,989,,989,989,989,989,989,,,,,,,,,,,,,,,,,,,,989,,,989,,,989,989,,,989,,989,,,,989,,,,,,,,,989,,,,,989,989,989,989,,989,989,989,989,,,,,989,989,,,,1008,1008,1008,989,1008,989,989,989,1008,1008,989,989,,1008,,1008,1008,1008,1008,1008,1008,1008,,,,,,1008,1008,1008,1008,1008,1008,1008,,,1008,,,,,,,1008,,,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,,1008,1008,1008,1008,1008,,,,,,,,,,,,,,,,,,,,1008,,,1008,,,1008,1008,,,1008,,,,1008,,1008,,,1008,,,,,,1008,,,,,1008,1008,1008,1008,,1008,1008,1008,1008,,,,,1008,1008,,,,1034,1034,1034,1008,1034,1008,1008,1008,1034,1034,1008,1008,,1034,,1034,1034,1034,1034,1034,1034,1034,,,,,,1034,1034,1034,1034,1034,1034,1034,,,1034,,,,,,,1034,,,1034,1034,1034,1034,1034,1034,1034,1034,,1034,1034,1034,,1034,1034,1034,1034,1034,,,,,,,,,,,,,,,,,,,,1034,,,1034,,,1034,1034,,,1034,,,,,,1034,,,,,,,,,1034,,,,,1034,1034,1034,1034,,1034,1034,1034,1034,,,,,1034,1034,,,,1147,1147,1147,1034,1147,1034,1034,1034,1147,1147,1034,1034,,1147,,1147,1147,1147,1147,1147,1147,1147,,,,,,1147,1147,1147,1147,1147,1147,1147,,,1147,,,,,,,1147,,,1147,1147,1147,1147,1147,1147,1147,1147,,1147,1147,1147,,1147,1147,1147,1147,1147,,,,,,,,,,,,,,,,,,,,1147,,,1147,,,1147,1147,,,1147,,,,,,1147,,,,,,,,,1147,,,,,1147,1147,1147,1147,,1147,1147,1147,1147,,,,,1147,1147,,,,1148,1148,1148,1147,1148,1147,1147,1147,1148,1148,1147,1147,,1148,,1148,1148,1148,1148,1148,1148,1148,,,,,,1148,1148,1148,1148,1148,1148,1148,,,1148,,,,,,,1148,,,1148,1148,1148,1148,1148,1148,1148,1148,,1148,1148,1148,,1148,1148,1148,1148,1148,,,,,,,,,,,,,,,,,,,,1148,,,1148,,,1148,1148,,,1148,,,,,,1148,,,,,,,,,1148,,,,,1148,1148,1148,1148,,1148,1148,1148,1148,,,,,1148,1148,,,,1160,1160,1160,1148,1160,1148,1148,1148,1160,1160,1148,1148,,1160,,1160,1160,1160,1160,1160,1160,1160,,,,,,1160,1160,1160,1160,1160,1160,1160,,,1160,,,,,,,1160,,,1160,1160,1160,1160,1160,1160,1160,1160,1160,1160,1160,1160,,1160,1160,1160,1160,1160,,,,,,,,,,,,,,,,,,,,1160,,,1160,,,1160,1160,,,1160,,1160,,1160,,1160,,,1160,,,,,,1160,,,,,1160,1160,1160,1160,,1160,1160,1160,1160,,,,,1160,1160,,,,39,39,39,1160,39,1160,1160,1160,39,39,1160,1160,,39,,39,39,39,39,39,39,39,,,,,,39,39,39,39,39,39,39,,,39,,,,,,,39,,,39,39,39,39,39,39,39,39,,39,39,39,,39,39,,,39,,,,,,,,,,,,,,,,,,,,39,,,39,,,39,39,,,39,,39,,,,,,,,,,,,,,,,,,39,39,39,39,,39,39,39,39,,,,,39,39,,,,40,40,40,39,40,39,39,39,40,40,,,,40,,40,40,40,40,40,40,40,,,,,,40,40,40,40,40,40,40,,,40,,,,,,,40,,,40,40,40,40,40,40,40,40,,40,40,40,,40,40,,,40,,,,,,,,,,,,,,,,,,,,40,,,40,,,40,40,,,40,,,1206,,1206,1206,1206,1206,1206,,,,,,,,,1206,,40,40,40,40,,40,40,40,40,,,,,40,40,,,,40,,1206,40,,40,40,40,76,76,76,,76,1206,1206,,76,76,1206,,,76,,76,76,76,76,76,76,76,,,,,,76,76,76,76,76,76,76,,,76,,,,,,,76,,,76,76,76,76,76,76,76,76,,76,76,76,,76,76,,,76,,,,,,,,,,,,,,,,,,,,76,,,76,,,76,76,,,76,,76,,,,,,,,,,,,,,,,,,76,76,76,76,,76,76,76,76,,,,,76,76,,,,77,77,77,76,77,76,76,76,77,77,,,,77,,77,77,77,77,77,77,77,,,,,,77,77,77,77,77,77,77,,,77,,,,,,,77,,,77,77,77,77,77,77,77,77,,77,77,77,,77,77,,,77,,,,,,,,,,,,,,,,,77,,,77,,,77,,,77,77,,,77,,,,,,,,,,,,,,,,,,,,77,77,77,77,,77,77,77,77,,,,,77,77,,,,78,78,78,77,78,77,77,77,78,78,,,,78,,78,78,78,78,78,78,78,,,,,,78,78,78,78,78,78,78,,,78,,,,,,,78,,,78,78,78,78,78,78,78,78,,78,78,78,,78,78,,,78,,,,,,,,,,,,,,,,,,,,78,,,78,,,78,78,,,78,,,,,,,,,,,,,,,,,,,,78,78,78,78,,78,78,78,78,,,,,78,78,,,,342,342,342,78,342,78,78,78,342,342,,,,342,,342,342,342,342,342,342,342,,,,,,342,342,342,342,342,342,342,,,342,,,,,,,342,,,342,342,342,342,342,342,342,342,,342,342,342,,342,342,,,342,,,,,,,,,,,,,,,,,,,,342,,,342,,,342,342,,,342,,,1208,,1208,1208,1208,1208,1208,,,,,,,,,1208,,342,342,342,342,,342,342,342,342,,,,,342,342,,,,342,,1208,342,,342,342,342,361,361,361,,361,1208,1208,,361,361,1208,,,361,,361,361,361,361,361,361,361,,,,,,361,361,361,361,361,361,361,,,361,,,,,,,361,,,361,361,361,361,361,361,361,361,,361,361,361,,361,361,,,361,,,,,,,,,,,,,,,,,,,,361,,,361,,,361,361,,,361,,,,,,,,,,,,,,,,,,,,361,361,361,361,,361,361,361,361,,,,,361,361,,,,591,591,591,361,591,361,361,361,591,591,,,,591,,591,591,591,591,591,591,591,,,,,,591,591,591,591,591,591,591,,,591,,,,,,,591,,,591,591,591,591,591,591,591,591,,591,591,591,,591,591,,,591,,,,,,,,,,,,,,,,,,,,591,,,591,,,591,591,,,591,,,,,,,,,,,,,,,,,,,,591,591,591,591,,591,591,591,591,,,,,591,591,,,,600,600,600,591,600,591,591,591,600,600,,,,600,,600,600,600,600,600,600,600,,,,,,600,600,600,600,600,600,600,,,600,,,,,,,600,,,600,600,600,600,600,600,600,600,,600,600,600,,600,600,,,600,,,,,,,,,,,,,,,,,,,,600,,,600,,,600,600,,,600,,,,,,,,,,,,,,,,,,,,600,600,600,600,,600,600,600,600,,,,,600,600,,,,806,806,806,600,806,600,600,600,806,806,,,,806,,806,806,806,806,806,806,806,,,,,,806,806,806,806,806,806,806,,,806,,,,,,,806,,,806,806,806,806,806,806,806,806,,806,806,806,,806,806,,,806,,,,,,,,,,,,,,,,,,,,806,,,806,,,806,806,,,806,,,,,,,,,,,,,,,,,,,,806,806,806,806,,806,806,806,806,,,,,806,806,,,,817,817,817,806,817,806,806,806,817,817,,,,817,,817,817,817,817,817,817,817,,,,,,817,817,817,817,817,817,817,,,817,,,,,,,817,,,817,817,817,817,817,817,817,817,,817,817,817,,817,817,,,817,,,,,,,,,,,,,,,,,,,,817,,,817,,,817,817,,,817,,,,,,,,,,,,,,,,,,,,817,817,817,817,,817,817,817,817,,,,,817,817,,,,1016,1016,1016,817,1016,817,817,817,1016,1016,,,,1016,,1016,1016,1016,1016,1016,1016,1016,,,,,,1016,1016,1016,1016,1016,1016,1016,,,1016,,,,,,,1016,,,1016,1016,1016,1016,1016,1016,1016,1016,,1016,1016,1016,,1016,1016,,,1016,,,,,,,,,,,,,,,,,,,,1016,,,1016,,,1016,1016,,,1016,,,,,,,,,,,,,,,,,,,,1016,1016,1016,1016,,1016,1016,1016,1016,,,,,1016,1016,,,,1080,1080,1080,1016,1080,1016,1016,1016,1080,1080,,,,1080,,1080,1080,1080,1080,1080,1080,1080,,,,,,1080,1080,1080,1080,1080,1080,1080,,,1080,,,,,,,1080,,,1080,1080,1080,1080,1080,1080,1080,1080,,1080,1080,1080,,1080,1080,,,1080,,,,,,,,,,,,,,,,,,,,1080,,,1080,,,1080,1080,,,1080,,,,,,,,,,,,,,,,,,,,1080,1080,1080,1080,,1080,1080,1080,1080,,,,,1080,1080,,,,1142,1142,1142,1080,1142,1080,1080,1080,1142,1142,,,,1142,,1142,1142,1142,1142,1142,1142,1142,,,,,,1142,1142,1142,1142,1142,1142,1142,,,1142,,,,,,,1142,,,1142,1142,1142,1142,1142,1142,1142,1142,,1142,1142,1142,,1142,1142,,,1142,,,,,,,,,,,,,,,,,,,,1142,,,1142,,,1142,1142,,,1142,,,,,,,,,,,,,,,,,,,,1142,1142,1142,1142,,1142,1142,1142,1142,,,,,1142,1142,,,,,,,1142,,1142,1142,1142,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,,,,10,10,10,10,10,10,10,10,10,10,,,,,,10,10,10,10,10,10,10,10,10,10,,10,,,,,,,,10,10,,10,10,10,10,10,10,10,,,10,10,,,,10,10,10,10,,,,,,,,,,,,,,10,10,,10,10,10,10,10,10,10,10,10,10,10,10,,,10,10,,,,,,,,,,,,,,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,,,,11,11,11,11,11,11,11,11,11,11,,,,,,11,11,11,11,11,11,11,11,11,,,11,,,,,,,,11,11,,11,11,11,11,11,11,11,,,11,11,,,,11,11,11,11,,,,,,,,,,,,,,11,11,,11,11,11,11,11,11,11,11,11,11,11,11,,,11,11,,,,,,,,,,,,,,11,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,,,,428,428,428,428,428,428,428,428,428,428,,,,,,428,428,428,428,428,428,428,428,428,,,428,,,,,,,,428,428,,428,428,428,428,428,428,428,,,428,428,,,,428,428,428,428,,,,,,,,,,,,,,428,428,,428,428,428,428,428,428,428,428,428,428,428,428,,,428,428,,,,,,,,,,,,,,428,670,670,670,670,670,670,670,670,670,670,670,670,670,670,670,670,670,670,670,670,670,670,670,670,,,,670,670,670,670,670,670,670,670,670,670,,,,,,670,670,670,670,670,670,670,670,670,,,670,,,,,,,,670,670,,670,670,670,670,670,670,670,,,670,670,,,,670,670,670,670,,,,,,,,,,,,,,670,670,,670,670,670,670,670,670,670,670,670,670,670,670,,,670,670,,,,,,,,,,,,,,670,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,,,,26,26,26,26,26,26,26,26,26,26,,,,,,26,26,26,26,26,26,26,26,26,26,26,26,,26,,,,,,26,26,,26,26,26,26,26,26,26,,,26,26,,,,26,26,26,26,,,,,,26,,,,,,,,26,26,,26,26,26,26,26,26,26,26,26,26,26,26,,,26,530,530,530,530,,,1210,,1210,1210,1210,1210,1210,,,,530,530,530,530,,1210,,530,530,,,,,530,530,,,530,530,,,,,,,,,1210,,,,,,,,,,530,1210,1210,530,,,1210,530,,,530,,530,,,,,,,530,,,,,,,530,,,,530,530,530,530,,530,530,530,530,,,,,530,530,531,531,531,531,,,530,,530,530,530,,,530,530,,531,531,531,531,,,,531,531,,,,,531,531,,,531,531,,,,,,,,,,,,,,,,,,,531,,,531,,,,531,,,531,,531,,,,,,,531,,,,,,,531,,,,531,531,531,531,,531,531,531,531,,,,,531,531,748,748,748,748,,,531,,531,531,531,,,531,531,,748,748,748,748,,,,748,,,,,,748,748,,,748,,,,,,,,,,,,,,,,,,,,748,,,748,,,,748,,,748,,748,,,,,,,710,,710,710,710,710,710,748,,,,748,748,748,748,710,748,748,748,748,,,,,748,748,748,756,756,756,756,,748,,748,748,748,710,,748,748,,,756,756,756,756,,710,710,756,,,710,,,756,756,,,756,,,,,,,,,,,,,,,,,,,,756,,,756,,,,756,,,756,,,710,,,,,,,,,,,,,756,,,,756,756,756,756,,756,756,756,756,,,,,756,756,,,,,,,756,,756,756,756,,,756,756,783,783,783,783,783,783,783,783,783,783,783,783,783,783,783,783,783,783,783,783,783,783,783,783,,,,783,783,783,783,783,783,783,783,783,783,,,,,,783,783,783,783,783,783,783,783,783,,,783,,,,,,,,783,783,,783,783,783,783,783,783,783,,,783,783,,,,783,783,783,783,,,,,,,,,,,,,,783,783,,783,783,783,783,783,783,783,783,783,783,783,783,,,783,927,927,927,927,,,,,,1021,,1021,1021,1021,1021,1021,927,927,927,927,,,,927,1021,,,,,927,927,,,927,,,,,,,,,,,,,1021,,,,,,,927,,,927,1021,1021,,927,,1021,927,,927,,,,,,,,,,,,,,927,,,,927,927,927,927,,927,927,927,927,,,,,927,927,929,929,929,929,1021,,927,,927,927,927,,,927,927,,929,929,929,929,,,1136,929,1136,1136,1136,1136,1136,929,929,,,929,,,,1136,,,,,,,,,,,,,,,,929,,,929,,,1136,929,,,929,,,,,1136,1136,1136,1136,,,,1136,,,,929,,,,929,929,929,929,,929,929,929,929,,,,,929,929,932,932,932,932,,,929,,929,929,929,,,929,929,,932,932,932,932,,,,932,932,,,,,932,932,,,932,932,,,,,,,,,,,,,,,,,,,932,,,932,,,,932,,,932,,932,,,,,,,932,,,,,,,932,,,,932,932,932,932,,932,932,932,932,,,,,932,932,933,933,933,933,,,932,,932,932,932,,,932,932,,933,933,933,933,,,,933,933,,,,,933,933,,,933,933,,,,,,,,,,,,,,,,,,,933,,,933,,,,933,,,933,,933,,,,,,,933,,,,,,,933,,,,933,933,933,933,,933,933,933,933,,,,,933,933,939,939,939,939,,,933,,933,933,933,,,933,933,,939,939,939,939,,,1204,939,1204,1204,1204,1204,1204,939,939,,,939,,,,1204,,,,,,,,,,,,,,,,939,,,939,,,1204,939,,,939,,939,,,1204,1204,1204,1204,,,,1204,,,,939,,,,939,939,939,939,,939,939,939,939,,,,,939,939,945,945,945,945,,,939,,939,939,939,,,939,939,,945,945,945,945,,,1227,945,1227,1227,1227,1227,1227,945,945,,,945,,,,1227,,,,,,,,,,,,,,,,945,,,945,,,1227,945,,,945,,,,,,,1227,1227,,,,1227,,,,945,,,,945,945,945,945,,945,945,945,945,,,,,945,945,946,946,946,946,,,945,,945,945,945,,,945,945,,946,946,946,946,,,,946,,,,,,946,946,,,946,,,,,,,,,,,,,,,,,,,,946,,,946,,,,946,,,946,,,,,,,,,,,,,,,,946,,,,946,946,946,946,,946,946,946,946,,,,,946,946,988,988,988,988,,,946,,946,946,946,,,946,946,,988,988,988,988,,,,988,988,,,,,988,988,,,988,988,,,,,,,,,,,,,,,,,,,988,,,988,,,,988,,,988,,988,,,,,,,988,,,,,,,988,,,,988,988,988,988,,988,988,988,988,,,,,988,988,1115,1115,1115,1115,,,988,,988,988,988,,,988,988,,1115,1115,1115,1115,,,,1115,,,,,,1115,1115,,,1115,,,,,,,,,,,,,,,,,,,,1115,,,1115,,,,1115,,,1115,,,,,,,,,,,,,,,,1115,,,,1115,1115,1115,1115,,1115,1115,1115,1115,,,,,1115,1115,1123,1123,1123,1123,,,1115,,1115,1115,1115,,,1115,1115,,1123,1123,1123,1123,,,,1123,,,,,,1123,1123,,,1123,,,,,,,,,,,,,,,,,,,,1123,,,1123,,,,1123,,,1123,,,,,,,,,,,,,,,,1123,,,,1123,1123,1123,1123,,1123,1123,1123,1123,,,,,1123,1123,1127,1127,1127,1127,,,1123,,1123,1123,1123,,,1123,1123,,1127,1127,1127,1127,,,,1127,,,,,,1127,1127,,,1127,,,,,,,,,,,,,,,,,,,,1127,,,1127,,,,1127,,,1127,,1127,,,,,,,,,,,,,,1127,,,,1127,1127,1127,1127,,1127,1127,1127,1127,,,,,1127,1127,1202,1202,1202,1202,,,1127,,1127,1127,1127,,,1127,1127,,1202,1202,1202,1202,,,,1202,,,,,,1202,1202,,,1202,,,,,,,,766,766,766,766,,,,,,,,,1202,,,1202,766,766,766,1202,,,1202,,,,,,,766,766,,,766,,,,,1202,,,,1202,1202,1202,1202,,1202,1202,1202,1202,,,,,1202,1202,,,,,,,1202,,1202,1202,1202,,,1202,1202,971,,971,971,971,971,971,,,,,766,766,766,766,971,766,766,766,766,,,,,766,766,952,952,952,952,,,766,,766,766,766,971,,,,,952,952,952,,971,971,971,971,,,,971,,952,952,,,952,953,953,953,953,,,,,,,,,,,,,953,953,953,971,,,,,,,,,,953,953,,,953,,,,,,,,,,,,,,,,952,952,952,952,,952,952,952,952,,,,,952,952,,,,,,,952,,952,952,952,,,,,,,,,953,953,953,953,,953,953,953,953,,,,,953,953,,,,,,,953,,953,953,953,706,,706,706,706,706,706,,708,,708,708,708,708,708,706,,,,,,,,708,,1019,,1019,1019,1019,1019,1019,,,,,,706,,,1019,,,,,708,706,706,706,706,,,,706,708,708,708,708,,,,708,1019,,,,,,,,,1019,1019,1019,1019,,,1023,1019,1023,1023,1023,1023,1023,1025,,1025,1025,1025,1025,1025,,1023,706,,,,,,1025,,708,1164,,1164,1164,1164,1164,1164,,,,,,1023,,,1164,1019,,,1025,,,,1023,1023,,,,1023,,1025,1025,,,,1025,,1164,,,,,,,,,,,1164,1164,,,,1164,,,,,,,,,,,,226,226,,1023,226,,,,,,1025,,226,226,,226,226,226,226,226,226,226,,,226,226,,,1164,226,226,226,226,,,,,,226,,,,,,,,226,226,,226,226,226,226,226,226,226,226,226,226,226,226,227,227,226,,227,,,,,,,,227,227,,227,227,227,227,227,227,227,,,227,227,,,,227,227,227,227,,,,,,227,,,,,,,,227,227,,227,227,227,227,227,227,227,227,227,227,227,227,303,303,227,,303,,,,,,,,303,303,,303,303,303,303,303,303,303,,,303,303,,,,303,303,303,303,,,,,,,,,,,,,,303,303,,303,303,303,303,303,303,303,303,303,303,303,303,521,521,303,,521,,,,,,,,521,521,,521,521,521,521,521,521,521,,,521,521,,,,521,521,521,521,,,,,,521,,,,,,,,521,521,,521,521,521,521,521,521,521,521,521,521,521,521,522,522,521,,522,,,,,,,,522,522,,522,522,522,522,522,522,522,,,522,522,,,,522,522,522,522,,,,,,522,,,,,,,,522,522,,522,522,522,522,522,522,522,522,522,522,522,522,594,594,522,,594,,,,,,,,594,594,,594,594,594,594,594,594,594,,,594,594,,,,594,594,594,594,,,,,,594,,,,,,,,594,594,,594,594,594,594,594,594,594,594,594,594,594,594,595,595,594,,595,,,,,,,,595,595,,595,595,595,595,595,595,595,,,595,595,,,,595,595,595,595,,,,,,595,,,,,,,,595,595,,595,595,595,595,595,595,595,595,595,595,595,595,604,604,595,,604,,,,,,,,604,604,,604,604,604,604,604,604,604,,,604,604,,,,604,604,604,604,,,,,,604,,,,,,,,604,604,,604,604,604,604,604,604,604,604,604,604,604,604,605,605,604,,605,,,,,,,,605,605,,605,605,605,605,605,605,605,,,605,605,,,,605,605,605,605,,,,,,605,,,,,,,,605,605,,605,605,605,605,605,605,605,605,605,605,605,605,632,632,605,,632,,,,,,,,632,632,,632,632,632,632,632,632,632,,,632,632,,,,632,632,632,632,,,,,,632,,,,,,,,632,632,,632,632,632,632,632,632,632,632,632,632,632,632,633,633,632,,633,,,,,,,,633,633,,633,633,633,633,633,633,633,,,633,633,,,,633,633,633,633,,,,,,633,,,,,,,,633,633,,633,633,633,633,633,633,633,633,633,633,633,633,639,639,633,,639,,,,,,,,639,639,,639,639,639,639,639,639,639,,,639,639,,,,639,639,639,639,,,,,,639,,,,,,,,639,639,,639,639,639,639,639,639,639,639,639,639,639,639,640,640,639,,640,,,,,,,,640,640,,640,640,640,640,640,640,640,,,640,640,,,,640,640,640,640,,,,,,640,,,,,,,,640,640,,640,640,640,640,640,640,640,640,640,640,640,640,677,677,640,,677,,,,,,,,677,677,,677,677,677,677,677,677,677,,,677,677,,,,677,677,677,677,,,,,,677,,,,,,,,677,677,,677,677,677,677,677,677,677,677,677,677,677,677,678,678,677,,678,,,,,,,,678,678,,678,678,678,678,678,678,678,,,678,678,,,,678,678,678,678,,,,,,678,,,,,,,,678,678,,678,678,678,678,678,678,678,678,678,678,678,678,1161,1161,678,,1161,,,,,,,,1161,1161,,1161,1161,1161,1161,1161,1161,1161,,,1161,1161,,,,1161,1161,1161,1161,,,,,,1161,,,,,,,,1161,1161,,1161,1161,1161,1161,1161,1161,1161,1161,1161,1161,1161,1161,1162,1162,1161,,1162,,,,,,,,1162,1162,,1162,1162,1162,1162,1162,1162,1162,,,1162,1162,,,,1162,1162,1162,1162,,,,,,1162,,,,,,,,1162,1162,,1162,1162,1162,1162,1162,1162,1162,1162,1162,1162,1162,1162,1185,1185,1162,,1185,,,,,,,,1185,1185,,1185,1185,1185,1185,1185,1185,1185,,,1185,1185,,,,1185,1185,1185,1185,,,,,,1185,,,,,,,,1185,1185,,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,,,1185"),w=e.large_array_unpack(",204,979,226,,-110,,5154,964,144,24967,25095,159,,157,176,525,279,-62,-84,162,374,,-71,5285,1123,25479,358,,171,,-8,5426,5536,5670,5801,5932,,1123,23109,23240,,281,525,531,368,6063,6194,205,6325,6456,525,6587,318,342,,,,,,,,,,6728,,6869,7000,7131,35,,7262,7393,,,7524,23379,23510,23641,,,,,,,,,,612,,,,,,,,,,,,,,,,,,,,,,,0,112,,,,,,,,,,,,,7667,,,,,7810,7941,8072,8203,8346,,1267,,588,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,345,,1411,8477,8608,8739,8870,9001,9132,27591,27652,,,363,1555,372,,719,831,384,1699,9263,9394,9525,,,514,-23,141,480,193,409,536,,9656,307,388,1843,541,,,9787,9918,10049,10180,10311,10442,10573,10704,10835,10966,11097,11228,11359,11490,11621,11752,11883,12014,12145,12276,12407,12538,,,,,12669,,,226,302,515,517,518,532,550,558,584,585,,,,12800,,,27713,,,541,12931,13062,,,,,,,,13193,,1843,,512,532,,13324,585,13455,,,13586,13717,,,221,,13860,1252,599,579,1987,626,687,648,23772,2131,694,806,873,748,878,,724,691,225,743,748,,,,750,221,707,23911,,564,879,3283,3427,778,,779,13991,,757,2275,1396,721,,139,574,760,743,583,773,,577,-1,11,14122,2419,2563,264,845,727,-18,10,893,810,11,842,,,441,481,513,,962,,761,14253,,15821,,193,378,396,402,412,-41,-27,463,,,,,,,,756,25223,,,,,759,,835,746,14384,747,,,736,,968,246,850,,,1267,,,,,,1411,764,,763,765,615,669,14525,,,,,222,334,825,,,14657,14793,14930,908,913,,,-1,793,792,800,,,805,816,818,,,,,,,,,,807,3125,,,15061,,,,,,,,902,,,907,361,15192,950,,,,-35,,870,27774,27835,15323,253,15454,15585,15716,823,828,25562,25660,3571,3715,-45,1018,908,912,925,927,5285,5375,5488,3859,4003,4147,4291,4435,4579,3311,3455,4723,4867,1987,5011,,-33,,15857,,,,,15987,886,885,889,,,,892,,,16118,,16249,,16380,,329,,,,16523,1540,,918,917,,,918,24042,923,16666,27896,27957,972,968,,,24173,925,,16797,28018,28079,16928,5154,17059,,1051,932,976,,17190,,,17321,,,,2707,1056,,2851,62,1060,1064,508,1066,17452,17583,28140,28201,27,,,995,,28262,28323,17714,,,81,2995,,15851,,,,,1033,,,,958,,,153,,263,,,944,,947,,,,25351,,17857,950,17988,18119,18250,28384,28445,18393,18524,693,991,18655,18786,18917,19048,997,,,19179,19310,1002,,1060,1555,1091,19441,,,,,888,,,544,27424,,27432,,25811,,961,19572,,3154,,976,978,729,983,,,,,1087,1699,,,,277,286,473,612,1001,19703,19834,,-77,,,,,1023,,,,582,25758,94,,1002,1085,1006,,,25857,,,303,,,654,,,6728,27202,,,,,,,,,,,,838,612,,,1016,26000,,1140,,1123,91,,,19965,,1038,1050,1156,,1046,,1096,20096,,,20227,,245,24304,1070,,1074,236,250,1120,360,1123,1124,1084,24435,,1153,2131,20358,,,,604,738,,1208,,,,,,1218,1226,,,26,1106,40,41,151,152,3139,970,1267,,1107,3283,20489,,1238,63,1118,,,,,,3427,,,,,,,,,1117,20620,1123,306,343,722,834,,2275,20751,,1122,,,,,,,,,,,20882,21013,1248,,3571,1124,1173,,,1131,,1223,,,1142,1143,,1146,1147,,1148,,,,1153,3184,3164,,,21144,21275,21406,21537,21668,21799,347,26083,1252,26181,-41,252,26279,26377,622,-32,1174,1176,,26475,,1175,359,,1196,26573,26671,,637,1236,333,,27300,27334,,,,,21930,,,22061,,,1218,,,1234,1218,,,27255,3715,,,,,1220,338,,-7,,1345,,22192,1348,,,26769,22323,3859,68,1352,,1354,442,4003,,,,,1231,1281,1252,1247,445,,,22454,2419,2563,,4147,,,32,24566,,,27449,,26073,,27501,,27508,,,,,1248,1258,2707,2851,22585,,1259,,,,,1264,1267,1269,1271,1274,1278,,,,1331,1286,1287,,1293,,,122,1291,,,,,,,1295,2995,4291,,,1294,1314,,1315,1317,1319,,1344,1337,1326,24697,,,,,,33,,34,728,,615,,,,1482,4435,4579,1109,,,,4723,35,36,1165,1437,42,,1364,1365,1368,1372,3651,3795,26867,,,,,,,,26965,,370,,27063,,,1444,,,15876,,,26184,,14588,,,1398,24828,1309,1460,4867,,22716,22847,,,,,1410,1515,636,,,,1518,22978,28506,28567,98,27526,,,,,1397,1402,1403,,,1404,,,1405,1408,1412,1413,,1419,,1411,28628,,797,5011,,,,,,1829,,1432,102,138,145,181,1430,27161,,26478,,23287,,23819,,25549,,,1475,1478,,38,,146,,1435,1436,1438,1458,,,,26576,,,,,1459,"),k=e.large_array_unpack("-1,-741,-4,-741,-2,-727,-5,-741,-8,-741,-741,-741,-741,-31,-741,-741,-36,-741,-741,-637,-637,-313,-52,-729,-741,-61,-741,-69,-70,-71,-75,-287,-287,-287,-326,-354,-355,-87,-13,-91,-99,-101,-741,-624,-625,-741,-741,-741,-741,-741,-741,-239,-741,-729,-258,-304,-305,-306,-307,-308,-309,-310,-311,-312,-717,-315,-319,-740,-705,-335,-337,-741,-741,-63,-63,-727,-741,-741,-741,-356,-357,-359,-360,-361,-362,-421,-563,-564,-565,-566,-587,-569,-570,-589,-591,-574,-579,-583,-585,-601,-602,-603,-587,-605,-607,-608,-609,-610,-611,-612,-613,-715,-716,-616,-617,-618,-619,-620,-621,-622,-623,-628,-629,1234,-3,-728,-736,-737,-738,-7,-741,-741,-741,-741,-741,-9,-4,-19,-741,-130,-131,-132,-133,-134,-135,-136,-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,-24,-137,-13,-741,-741,-741,-741,-741,-277,-741,-741,-725,-726,-741,-13,-636,-634,-660,-660,-741,-13,-741,-741,-729,-730,-56,-741,-624,-625,-741,-313,-741,-741,-245,-741,-637,-637,-13,-741,-57,-59,-222,-223,-741,-741,-741,-741,-741,-741,-741,-741,-741,-741,-741,-741,-741,-741,-741,-741,-741,-741,-741,-741,-259,-260,-261,-262,-741,-65,-66,-741,-130,-131,-170,-171,-172,-188,-193,-200,-203,-624,-625,-703,-741,-430,-432,-741,-723,-724,-76,-277,-741,-334,-436,-445,-447,-82,-442,-83,-729,-84,-265,-282,-292,-292,-286,-290,-293,-295,-587,-707,-711,-714,-85,-86,-727,-14,-741,-17,-741,-89,-13,-729,-741,-92,-95,-13,-107,-108,-741,-741,-115,-326,-329,-729,-741,-637,-637,-354,-355,-358,-443,-741,-97,-741,-103,-323,-741,-224,-225,-606,-233,-234,-741,-246,-251,-13,-317,-729,-266,-729,-729,-741,-741,-729,-741,-336,-62,-741,-741,-741,-13,-13,-727,-741,-728,-624,-625,-741,-741,-313,-741,-372,-373,-125,-126,-741,-128,-741,-313,-632,-741,-350,-660,-567,-741,-741,-741,-741,-741,-741,-741,-741,-6,-739,-25,-26,-27,-28,-29,-741,-741,-21,-22,-23,-138,-741,-32,-35,-300,-295,-741,-299,-33,-741,-37,-741,-313,-49,-51,-211,-270,-293,-53,-54,-38,-212,-270,-729,-278,-292,-292,-715,-716,-287,-440,-717,-718,-719,-716,-715,-287,-439,-441,-717,-719,-741,-555,-741,-385,-386,-686,-729,-702,-702,-642,-643,-645,-645,-645,-659,-661,-662,-663,-664,-665,-666,-667,-668,-669,-741,-671,-673,-675,-680,-682,-683,-684,-691,-693,-694,-696,-697,-698,-700,-741,-741,-741,-48,-219,-55,-729,-333,-741,-741,-741,-277,-323,-741,-741,-741,-741,-741,-741,-741,-220,-221,-226,-227,-228,-229,-230,-231,-235,-236,-237,-238,-240,-241,-242,-243,-244,-247,-248,-249,-250,-729,-263,-67,-729,-451,-287,-715,-716,-73,-77,-661,-729,-292,-729,-288,-449,-451,-729,-328,-283,-741,-284,-741,-289,-741,-294,-741,-710,-713,-12,-728,-16,-18,-729,-88,-321,-104,-93,-741,-729,-277,-741,-741,-114,-741,-636,-606,-741,-100,-105,-741,-741,-741,-741,-264,-741,-330,-741,-729,-741,-267,-735,-734,-269,-735,-324,-325,-706,-13,-363,-364,-13,-741,-741,-741,-741,-741,-741,-277,-741,-741,-323,-63,-125,-126,-127,-741,-741,-277,-346,-630,-741,-13,-422,-660,-425,-568,-588,-593,-741,-595,-571,-590,-741,-592,-573,-741,-576,-741,-578,-581,-741,-582,-741,-604,-10,-20,-741,-30,-741,-303,-741,-741,-277,-741,-741,-741,-741,-444,-741,-279,-281,-741,-741,-78,-276,-437,-741,-741,-80,-438,-44,-254,-740,-740,-352,-524,-685,-635,-741,-640,-641,-741,-741,-652,-741,-655,-741,-657,-741,-741,-374,-741,-376,-378,-381,-384,-729,-674,-695,-699,-638,-46,-256,-353,-332,-731,-715,-716,-715,-716,-729,-741,-741,-58,-465,-468,-469,-470,-471,-473,-475,-478,-479,-534,-729,-491,-494,-504,-508,-513,-515,-516,-519,-520,-587,-523,-525,-526,-527,-532,-533,-741,-741,-537,-538,-539,-540,-541,-542,-543,-544,-545,-546,-547,-741,-741,-553,-60,-741,-741,-704,-741,-452,-72,-433,-449,-272,-279,-274,-741,-411,-741,-327,-292,-291,-296,-298,-708,-709,-741,-15,-90,-741,-96,-102,-729,-715,-716,-275,-720,-113,-741,-98,-741,-218,-232,-252,-741,-316,-318,-320,-729,-740,-365,-740,-64,-366,-367,-340,-341,-741,-741,-457,-343,-741,-729,-715,-716,-720,-322,-13,-125,-126,-129,-729,-13,-741,-348,-741,-741,-729,-594,-597,-598,-599,-600,-13,-572,-575,-577,-580,-584,-586,-139,-34,-301,-298,-729,-715,-716,-716,-715,-50,-271,-741,-732,-292,-40,-214,-41,-215,-79,-42,-217,-43,-216,-81,-741,-741,-740,-370,-13,-556,-740,-557,-558,-702,-681,-686,-701,-644,-645,-645,-672,-645,-645,-692,-645,-669,-388,-687,-729,-741,-741,-383,-670,-741,-741,-741,-741,-741,-741,-444,-466,-741,-741,-476,-477,-741,-741,-741,-496,-729,-729,-490,-497,-501,-741,-741,-493,-741,-741,-741,-507,-514,-518,-741,-522,-530,-531,-535,-536,-548,-549,-741,-126,-551,-741,-68,-431,-411,-435,-434,-741,-729,-446,-412,-729,-13,-448,-285,-297,-712,-94,-444,-106,-729,-268,-741,-368,-741,-741,-342,-344,-741,-741,-13,-444,-741,-444,-741,-741,-13,-351,-423,-426,-428,-415,-741,-741,-302,-444,-39,-213,-280,-45,-255,-11,-13,-562,-371,-741,-741,-560,-639,-741,-648,-741,-650,-741,-653,-741,-656,-658,-375,-377,-379,-382,-47,-257,-741,-467,-504,-472,-474,-483,-487,-729,-729,-729,-729,-729,-729,-552,-488,-489,-511,-498,-499,-502,-729,-587,-733,-729,-505,-509,-512,-517,-521,-528,-529,-729,-253,-13,-74,-273,-702,-702,-392,-394,-394,-394,-410,-741,-729,-669,-677,-678,-689,-450,-331,-338,-741,-339,-741,-462,-296,-740,-345,-347,-631,-741,-13,-13,-741,-424,-596,-561,-13,-624,-625,-741,-741,-313,-559,-645,-645,-645,-645,-741,-741,-741,-480,-481,-482,-484,-485,-486,-503,-741,-492,-741,-495,-741,-550,-453,-741,-390,-391,-395,-401,-403,-741,-406,-741,-408,-413,-741,-741,-676,-741,-13,-458,-741,-741,-454,-455,-456,-349,-741,-741,-729,-417,-419,-420,-555,-277,-741,-741,-323,-741,-646,-649,-651,-654,-380,-505,-500,-506,-510,-702,-679,-393,-394,-394,-394,-394,-690,-394,-414,-688,-741,-323,-740,-13,-463,-464,-427,-429,-416,-741,-554,-729,-715,-716,-720,-322,-645,-741,-389,-741,-398,-741,-400,-741,-404,-741,-407,-409,-322,-720,-369,-740,-418,-444,-647,-394,-394,-394,-394,-459,-460,-461,-741,-396,-399,-402,-405,-394,-397"),U=e.large_array_unpack("44,412,475,341,340,44,142,142,514,319,319,319,696,419,233,233,226,302,286,638,496,496,142,285,298,383,128,304,455,385,386,714,893,390,137,218,44,345,345,145,145,713,15,629,357,357,835,15,388,389,566,703,704,900,461,468,907,621,624,737,781,562,376,125,44,135,574,310,314,982,439,440,242,124,394,298,298,798,15,798,801,357,357,357,306,313,315,237,422,423,424,425,367,910,303,906,128,908,793,17,740,740,446,360,17,446,15,337,1029,601,564,613,616,479,512,620,399,487,487,446,720,1031,801,44,707,709,711,1036,320,320,320,558,44,1002,44,17,4,972,339,1052,943,452,129,391,610,785,1074,1,903,1156,1158,903,2,1181,1011,515,804,795,936,1043,1046,377,217,17,985,15,407,409,400,1054,659,661,598,598,15,435,15,954,955,8,317,330,331,428,8,433,530,798,798,801,531,829,1051,287,783,789,496,759,759,1059,319,670,370,574,1058,608,379,788,299,380,398,642,373,655,657,660,660,44,611,375,340,1181,17,472,821,849,996,645,1030,44,937,17,1076,17,1134,44,1078,579,1155,230,236,521,646,374,998,1217,1158,233,233,714,1077,410,44,918,853,847,738,738,1096,15,420,441,462,1097,441,557,568,569,434,445,427,15,445,964,1149,1088,1224,15,441,988,834,1188,319,319,1037,304,445,1038,932,648,933,319,942,487,15,798,321,321,321,945,1060,1061,8,957,340,897,1029,1067,1177,340,1015,426,411,8,438,438,17,1169,17,967,237,17,464,464,413,602,734,1172,17,378,381,414,44,415,17,17,44,1035,915,807,345,44,1041,1044,594,625,416,357,816,461,468,17,555,128,626,627,417,1141,418,345,1075,855,604,860,1063,1064,357,850,1059,902,905,44,901,1170,15,907,1059,1175,15,,1173,1171,,15,,,44,44,310,,583,,585,632,314,960,809,,,464,582,565,320,599,910,590,,337,1109,,320,128,337,15,1042,1045,852,1072,,,,237,812,,142,761,761,1150,15,15,1215,17,812,496,839,17,,,586,,17,677,885,592,848,1124,,890,694,,714,714,669,,567,1173,,145,628,863,812,863,570,,,,239,,812,,17,1018,528,529,935,,384,384,,871,384,1174,949,907,,17,17,,725,,,,496,519,496,,372,688,319,,,,,,693,461,468,,,,990,584,798,801,687,,,1089,472,,,692,1178,,,1179,854,,775,775,487,,,724,968,384,384,384,384,909,,911,974,,,1020,1022,898,1024,1026,1047,1027,1225,,977,602,446,462,740,981,907,,,,602,,446,446,319,571,321,446,446,,,,903,,321,1072,,44,1072,,1072,,,826,,345,828,472,587,1220,688,,357,,345,759,759,472,881,883,,357,319,886,888,759,844,787,,,,759,319,464,464,44,994,,44,15,1142,974,,450,451,472,462,,,,1226,472,,,,,462,1131,1132,44,517,518,830,714,714,,1072,319,1072,935,1072,759,1072,,935,935,,15,,,15,851,142,,462,950,44,1057,,1072,472,,462,44,,,17,,,,,15,,1102,,,464,464,899,,867,,,1195,,145,464,464,,,,556,,,,,,,15,462,738,441,,,17,15,,17,,445,838,441,441,,464,464,441,441,701,445,445,464,464,,445,445,,,17,1151,966,1203,775,,1071,1165,1166,1167,1168,,775,,,1079,1145,446,1146,,,775,775,,,1095,,17,602,728,17,464,464,962,17,965,,142,285,979,17,17,,,,17,17,,,438,384,,597,1006,,902,,,,,1073,,345,496,,,995,784,992,357,,644,,345,,790,612,792,615,615,357,796,615,,1003,761,761,,,,,,,797,,761,1129,805,1080,1219,44,761,,808,,44,688,868,1110,693,1111,,1112,,876,,44,,,1014,,,823,,,,1154,,,,,,,,825,,,,,,,761,15,,,453,1013,15,,,1017,44,,,,,682,,15,516,,,,,,,,,1071,,,1071,382,1071,1065,,441,1079,,,1079,,,775,445,775,,,775,775,,,,15,,775,1083,,,17,1086,775,775,880,17,,,,775,775,,,,,1091,17,,,,,,1196,,,1125,1180,,1182,44,,,919,,17,,,1101,,,1071,,1071,,1071,775,1071,44,812,1079,,17,,44,1201,782,,,1080,,,1080,,1071,1080,,1080,,,44,,15,,1104,,1094,,,,,357,,,,,,,,,15,,,,,1221,15,1222,,1223,,,,,,,,,,,,,15,880,,,1108,,1232,,,,1153,,,44,436,449,1159,17,,,,1080,,1080,,1080,298,1080,,,,,,357,18,17,,,,18,,17,44,44,1080,1135,1137,1139,44,,,1161,,1189,1190,15,243,17,,1187,,775,,,,,243,243,243,775,18,346,346,775,,,,,,,681,,,319,15,15,,,298,,15,44,,,,357,,,18,,,,1216,243,243,,472,243,395,405,405,,17,,,,1028,576,,578,,,580,581,,682,,,,472,,1039,,15,44,,516,,453,682,944,17,17,,,462,,17,775,1205,1207,1209,1211,,1212,,,18,,,,,243,243,243,243,18,,18,1069,,,,,980,,15,,,,,1084,,,,,,,,,17,,1228,1229,1230,1231,,,,,682,,,384,1233,464,464,,,,,,,,818,,615,,,,,,,,,767,767,,,464,682,673,,17,,,,,,682,,,1116,1117,1118,1001,,,,,,18,243,443,243,243,443,243,1126,,,,682,18,,,1128,,,18,443,243,243,,,,,,,,19,,,,,19,18,,,,,,,,721,,882,884,,,,887,889,,,,,,,,,384,,,,,19,353,353,,,,682,,,,,682,682,,,,243,768,768,,,384,,243,243,,,,19,,,,243,,,,,20,353,353,353,,20,926,,,1001,,,,18,799,,382,18,802,,938,346,18,,,,,,,,,,,,,,20,354,354,,346,,,,,,,,,,19,,18,,,799,,,382,19,,19,,,20,,243,18,18,,,449,,,354,354,354,,,,,978,682,682,682,,,243,,,767,,944,,,,,,767,,,,,,,,,767,767,,,991,,,,869,1001,,,,993,,,20,799,382,,,,,,,20,,20,,1007,,896,,,,,1005,19,,19,384,384,19,,,243,,914,,19,,,,,,19,19,,,,,,,,,,,,,,,,19,882,884,889,887,,,,,,,,,243,1193,,,,,768,,,,243,1040,,,768,,1048,1049,,,,,,768,768,20,,20,,,20,,,,,,,20,,,799,,682,20,20,,,,,975,,,976,,,,,,,,20,,,,769,769,,19,,,18,19,,,,353,19,767,346,767,243,,767,767,,,,346,,767,,,,,353,767,767,,,,1007,,767,767,,,19,,18,,,18,,,,,,,243,1004,,19,19,,1119,1120,1121,,243,,,,18,,,,,,767,,20,,,,20,,,,354,20,,,,,,,,,,18,,,443,243,,,18,354,,,,,443,443,,,,443,443,20,,,,,,768,,768,,,768,768,,,20,20,,768,,,,,,768,768,,,,,,768,768,,,,,,,,,,,,,,,,,,,,,,,,,,,1090,,,,,,,,768,,,,,,,,,,,382,,,,,,,,767,,,,,,,,767,,,1218,767,,,,,769,,,,,,,,769,,,346,,,,,,769,769,,,,346,,,,243,,,,21,,,,19,21,,,,,,,353,,,,,,,18,,353,,,18,243,,,,,,,,770,770,18,21,348,348,,767,,19,,,19,,,,,,,,443,,,,,,,,768,,,21,,19,,,768,18,771,771,768,397,406,406,20,,,,,,,,354,,,,,,,,19,354,,19,,,,19,,,,,,19,19,,,,19,19,,,20,,,20,,,,,21,,,,,,772,772,,21,243,21,,,,,20,,,,,,,,18,768,769,,769,,,769,769,,,,243,,769,,,,18,20,769,769,20,,18,,20,769,769,,,,20,20,,,,20,20,,18,,,,1105,,,,,,,,,,,,,,,,,,,769,,,,,,,21,,444,,,444,,,,,353,,21,,,,,,21,444,,353,,,,18,,,,,,,,,770,21,,,1143,,,,770,,,,,,19,,,770,770,19,18,18,,,,,18,,,,19,,,,,,,,771,,,,,,,,771,,19,354,,,,,,771,771,,,,354,,,,,19,1184,,,18,,243,243,,,,,,,,,21,,,243,21,769,20,,348,21,,20,,769,,772,,769,,,,,20,772,,,,348,,,,18,772,772,,,,,,21,20,,,,,,,,,,,,,,21,21,,20,,,,19,,,,,,,,,,,,,,,,,,19,,,,,,19,,,,,,,769,,,,,,770,,770,19,,770,770,353,,,,,770,,,,,,770,770,,,,,,770,770,,,,,,,,,,20,,771,,771,,,771,771,,,,,,771,,,,20,,771,771,19,,20,770,,771,771,,,,,,,353,,,,,20,,,,354,,,,,,,19,19,,,,,19,,,772,,772,771,,772,772,,,,,,772,,,,,,772,772,,,,,,772,772,,,,,,,,,20,,353,773,773,19,,,,,,,,354,,,,,,,21,,,,,,772,,348,20,20,,,,,20,,348,,,,,,,,,,,19,,,,,,,,,770,21,,,21,,,,770,,,,770,,,31,,,354,,31,20,,,,21,,,,,,,859,,,,,31,771,,,,,,,,771,31,31,31,771,31,21,,,444,,43,,21,,,43,,20,444,444,,,,444,444,,,,,,,,31,,297,,,31,31,,770,31,,,,,43,344,344,772,,,,,,,,772,,,,772,,,,,,,,,,,,,43,,,,771,,,,,,393,297,297,,,,,31,,,,,31,31,31,31,31,,31,,,,,,,,,,,,,,,773,,,,,,,,773,,,,,,,,43,773,773,772,,,348,,,43,,43,,,,,,348,,,,,,,,774,774,,,,,,,,,,,,,,,,,,21,,,,,21,,,31,31,31,31,31,31,31,,21,,,,31,,,,,,31,31,31,31,,,,,444,,,,,,,,,31,,,,,,,43,21,,,,,,,,,,,43,,,,,,43,,,,,,,,,,,,,,,,,43,,,,31,,,,,,,31,31,,,,,,,,31,,,,,,,,,,,,,,773,,773,,31,773,773,,31,21,,,773,31,,,,,773,773,,,,,,773,773,21,,,,,,21,,,,,,,,,,31,,,43,,,21,43,,,1107,344,43,,31,31,31,,773,,,,,,,,,,,,344,,,,,31,,774,,,,,43,,34,774,,,,34,,,,,774,774,,43,43,,,21,,,,,34,,,,,,,,406,,34,34,34,,34,,,,,,,,,,21,21,,,,,21,,,,31,,,,,,,,34,,,,,34,34,,,34,,,,,,,,,,,,,,,,,,,406,776,776,21,31,,,,,773,,,,,31,,,773,,,,773,,,,,,,,,,34,,,,,34,34,34,34,34,,34,,,,21,,,,,,,,,,,,,,,,,,,,,,,,,,,,31,,,,,,774,,774,,31,774,774,,,,,,774,,,,773,,774,774,,,,,,774,774,,,,,,31,,,31,43,,,,,,31,,344,34,34,34,34,34,34,34,31,344,,,31,34,,,,774,,34,34,34,34,,,,,,,,43,,,43,,,34,,,31,,,31,31,,,31,,,,,,31,31,43,,,31,31,,,,,,,,,,,,,,,,,,,,,,,43,34,,,,,,43,34,34,,,,,776,,,34,,,,,776,,,,,,,,,776,776,,,34,,,,34,,,,,34,,,,,,,,,,,,,,,,,,,774,,,,,,,,774,,,34,774,,,,,,,,,,,,,34,34,34,,,,,,,,,,,,,,,,,31,,34,,,,,,,,,,,,,,,,,,,,,31,,,,344,31,31,,,,,,,,,344,31,,,,774,,,,,,,,,,,,,,31,,,,,,,,43,,34,,,43,,,,31,,,,,,,43,,,,,776,,776,,,776,776,,,,,,776,,,,,,776,776,,34,,,,776,776,,,,43,34,,,,,,,,,,,,,,,,,,,,31,,,,,,,,,,776,,,,31,,,,,,,,,,,,31,,,,,,31,,,,,,31,,34,,,,,,,,,,34,,,,31,,43,,,,,,,,,,,,,,,,,,43,,,,34,,43,34,,,,,,,34,,,,,,,,43,,34,,1103,,34,,,,,,,31,,,,,,,,,,,,,,,,,,,,34,,,34,34,,,34,776,31,31,,,34,34,31,776,,34,34,776,250,43,,,,,,,,,318,318,318,,297,,,,,,,,365,366,,368,369,,371,,43,43,,,,,43,31,,31,31,,,318,318,,,,,,,,31,,,,,,,,,,,,,,,,,,,,,,776,,297,,,43,31,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,43,,,,,,34,,,,,,,,,,,,,,,,,,,,,,,34,,,,,34,34,,,,,,,,,,34,,,,,,,,,,,,,,,,,,34,,,,,,,,,,,318,448,,,454,318,34,,,,,,,,,,,,454,,,,,,,,,,,,,250,,,,,,,532,533,534,535,536,537,538,539,540,541,542,543,544,545,546,547,548,549,550,551,552,553,,,,,554,,,,,34,,,,,,,,,,,,,,34,,,,318,318,,,,,,,34,318,,,,,34,,318,,318,,34,318,318,,,,,,,,,,,,,,34,,,,,,,,,,,,,,,,,,,,,,,,,,,607,,,,,,,,,,,,,,,,,,,,,,,,,,,,34,,,,,,,,,,,,,,,,,,,,,,,,,,,,,34,34,,,,,34,,,,318,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,695,,,34,,34,34,,,,,,,,,,,,34,,,,,,,,,318,,,,,,,,,,,,,726,,,,,,34,,,,318,,454,454,454,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,366,,,,,,,,,,318,,318,,318,,,,,,,,,,,,,,,,318,,,,,,,,,,454,,,819,,820,,,,,,318,,,318,,,,,,,,,,,,,318,318,,,,,,,,,,318,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,318,454,318,,,,877,,,318,318,454,454,,,,454,454,,,,,,318,,,,,,,,,,,,,,,,318,,,,,,,,,,,,,,,,,,,,,,695,726,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,318,,,,,,,,,318,,,318,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,318,,,,,,,,454,,,,,,,,,,,,,1009,1010,,,,,,,,,,,,,,,,,,,,,,,,,,,,1032,1033,454,454,454,454,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1066,,,,,,,,,,,,,,,,,,,,,,,,,,,,318,,,,,,,,,,,,,,,,,,,318,,,,,,,,,,,,,,,,,,,,,,,,,,454,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,318"),E=e.large_array_unpack("72,198,10,68,11,72,75,75,10,36,36,36,12,198,87,87,33,158,46,73,230,230,75,48,72,107,117,33,31,19,19,128,13,19,17,17,72,72,72,77,77,135,23,112,82,82,113,23,44,44,92,139,139,133,55,55,231,110,110,41,41,57,87,7,72,9,94,91,91,111,24,24,22,5,72,72,72,95,23,95,239,82,82,82,56,56,56,119,19,19,19,19,80,235,51,146,117,146,58,29,177,177,20,69,29,20,23,64,127,70,31,89,89,157,157,89,23,225,225,20,129,130,239,72,228,228,228,192,88,88,88,55,72,149,72,29,2,147,65,192,187,28,6,5,10,161,145,1,140,151,152,140,3,236,14,28,16,161,175,178,178,88,18,29,13,23,74,74,21,178,214,214,224,224,23,25,23,202,202,8,63,63,63,27,8,11,42,95,95,239,43,45,191,50,52,60,230,200,200,191,36,78,83,94,193,84,86,93,105,106,114,116,120,215,215,215,215,72,121,122,11,236,29,75,123,124,125,126,131,72,176,29,136,29,142,72,143,198,150,35,35,33,153,8,154,151,152,87,87,128,149,155,72,128,156,73,174,174,159,23,6,23,91,160,23,162,164,165,22,22,2,23,22,168,169,170,171,23,23,172,112,173,36,36,180,33,22,182,183,157,184,36,188,225,23,95,90,90,90,189,195,196,8,205,11,206,127,147,145,11,207,8,210,8,88,88,29,130,29,58,119,29,61,61,211,68,31,192,29,90,90,212,72,213,29,29,72,175,129,70,72,72,175,175,33,19,216,82,70,55,55,29,51,117,11,11,217,149,218,72,146,219,33,220,202,202,82,223,191,200,229,72,233,193,23,231,191,234,23,,191,193,,23,,,72,72,91,,7,,9,33,91,73,31,,,61,5,88,88,80,235,69,,64,146,,88,117,64,23,176,176,10,140,,,,119,55,,75,201,201,13,23,23,111,29,55,230,31,29,,,65,,29,33,57,65,31,187,,57,36,,128,128,17,,63,191,,77,5,215,55,215,63,,,,40,,55,,29,139,35,35,174,,26,26,,31,26,133,174,231,,29,29,,36,,,,230,66,230,,40,91,36,,,,,,91,55,55,,,,110,8,95,239,56,,,41,75,,,56,146,,,146,157,,72,72,225,,,117,92,26,26,26,26,144,,144,94,,,228,228,24,228,228,73,228,13,,70,68,20,91,177,89,231,,,,68,,20,20,36,66,90,20,20,,,,140,,90,140,,72,140,,140,,,11,,72,11,75,66,146,91,,82,,72,200,200,75,28,28,,82,36,28,28,200,44,56,,,,200,36,61,61,72,10,,72,23,135,94,,26,26,75,91,,,,113,75,,,,,91,139,139,72,26,26,117,128,128,,140,36,140,174,140,200,140,,174,174,,23,,,23,117,75,,91,198,72,174,,140,75,,91,72,,,29,,,,,23,,110,,,61,61,87,,17,,,12,,77,61,61,,,,26,,,,,,,23,91,174,23,,,29,23,,29,,22,88,23,23,,61,61,23,23,66,22,22,61,61,,22,22,,,29,112,107,139,72,,132,228,228,228,228,,72,,,230,110,20,110,,,72,72,,,10,,29,68,66,29,61,61,46,29,158,,75,48,68,29,29,,,,29,29,,,88,26,,40,28,,200,,,,,144,,72,230,,,19,66,11,82,,26,,72,,66,40,66,40,40,82,66,40,,11,201,201,,,,,,,90,,201,10,66,232,228,72,201,,66,,72,91,8,144,91,144,,144,,8,,72,,,11,,,66,,,,10,,,,,,,,90,,,,,,,201,23,,,79,87,23,,,87,72,,,,,40,,23,79,,,,,,,,,132,,,132,85,132,19,,23,230,,,230,,,72,22,72,,,72,72,,,,23,,72,11,,,29,19,72,72,90,29,,,,72,72,,,,,11,29,,,,,,31,,,198,144,,144,72,,,66,,29,,,11,,,132,,132,,132,72,132,72,55,230,,29,,72,144,40,,,232,,,232,,132,232,,232,,,72,,23,,72,,117,,,,,82,,,,,,,,,23,,,,,144,23,144,,144,,,,,,,,,,,,,23,90,,,23,,144,,,,11,,,72,85,85,11,29,,,,232,,232,,232,72,232,,,,,,82,30,29,,,,30,,29,72,72,232,141,141,141,72,,,33,,19,19,23,30,29,,11,,72,,,,,30,30,30,72,30,30,30,72,,,,,,,32,,,36,23,23,,,72,,23,72,,,,82,,,30,,,,11,30,30,,75,30,30,30,30,,29,,,,66,85,,85,,,85,85,,40,,,,75,,66,,23,72,,79,,79,40,40,29,29,,,91,,29,72,141,141,141,141,,141,,,30,,,,,30,30,30,30,30,,30,66,,,,,26,,23,,,,,66,,,,,,,,,29,,141,141,141,141,,,,,40,,,26,141,61,61,,,,,,,,79,,40,,,,,,,,,97,97,,,61,40,85,,29,,,,,,40,,,66,66,66,40,,,,,,30,30,30,30,30,30,30,66,,,,40,30,,,66,,,30,30,30,30,,,,,,,,34,,,,,34,30,,,,,,,,85,,79,79,,,,79,79,,,,,,,,,26,,,,,34,34,34,,,,40,,,,,40,40,,,,30,98,98,,,26,,30,30,,,,34,,,,30,,,,,38,34,34,34,,38,32,,,40,,,,30,85,,85,30,85,,32,30,30,,,,,,,,,,,,,,38,38,38,,30,,,,,,,,,,34,,30,,,85,,,85,34,,34,,,38,,30,30,30,,,85,,,38,38,38,,,,,32,40,40,40,,,30,,,97,,40,,,,,,97,,,,,,,,,97,97,,,32,,,,85,40,,,,32,,,38,85,85,,,,,,,38,,38,,79,,85,,,,,32,34,,34,26,26,34,,,30,,85,,34,,,,,,34,34,,,,,,,,,,,,,,,,34,79,79,79,79,,,,,,,,,30,40,,,,,98,,,,30,32,,,98,,32,32,,,,,,98,98,38,,38,,,38,,,,,,,38,,,85,,40,38,38,,,,,85,,,85,,,,,,,,38,,,,99,99,,34,,,30,34,,,,34,34,97,30,97,30,,97,97,,,,30,,97,,,,,34,97,97,,,,79,,97,97,,,34,,30,,,30,,,,,,,30,85,,34,34,,32,32,32,,30,,,,30,,,,,,97,,38,,,,38,,,,38,38,,,,,,,,,,30,,,30,30,,,30,38,,,,,30,30,,,,30,30,38,,,,,,98,,98,,,98,98,,,38,38,,98,,,,,,98,98,,,,,,98,98,,,,,,,,,,,,,,,,,,,,,,,,,,,85,,,,,,,,98,,,,,,,,,,,85,,,,,,,,97,,,,,,,,97,,,32,97,,,,,99,,,,,,,,99,,,30,,,,,,99,99,,,,30,,,,30,,,,39,,,,34,39,,,,,,,34,,,,,,,30,,34,,,30,30,,,,,,,,100,100,30,39,39,39,,97,,34,,,34,,,,,,,,30,,,,,,,,98,,,39,,34,,,98,30,101,101,98,39,39,39,38,,,,,,,,38,,,,,,,,34,38,,34,,,,34,,,,,,34,34,,,,34,34,,,38,,,38,,,,,39,,,,,,102,102,,39,30,39,,,,,38,,,,,,,,30,98,99,,99,,,99,99,,,,30,,99,,,,30,38,99,99,38,,30,,38,99,99,,,,38,38,,,,38,38,,30,,,,30,,,,,,,,,,,,,,,,,,,99,,,,,,,39,,39,,,39,,,,,34,,39,,,,,,39,39,,34,,,,30,,,,,,,,,100,39,,,30,,,,100,,,,,,34,,,100,100,34,30,30,,,,,30,,,,34,,,,,,,,101,,,,,,,,101,,34,38,,,,,,101,101,,,,38,,,,,34,30,,,30,,30,30,,,,,,,,,39,,,30,39,99,38,,39,39,,38,,99,,102,,99,,,,,38,102,,,,39,,,,30,102,102,,,,,,39,38,,,,,,,,,,,,,,39,39,,38,,,,34,,,,,,,,,,,,,,,,,,34,,,,,,34,,,,,,,99,,,,,,100,,100,34,,100,100,34,,,,,100,,,,,,100,100,,,,,,100,100,,,,,,,,,,38,,101,,101,,,101,101,,,,,,101,,,,38,,101,101,34,,38,100,,101,101,,,,,,,34,,,,,38,,,,38,,,,,,,34,34,,,,,34,,,102,,102,101,,102,102,,,,,,102,,,,,,102,102,,,,,,102,102,,,,,,,,,38,,34,103,103,34,,,,,,,,38,,,,,,,39,,,,,,102,,39,38,38,,,,,38,,39,,,,,,,,,,,34,,,,,,,,,100,39,,,39,,,,100,,,,100,,,59,,,38,,59,38,,,,39,,,,,,,39,,,,,59,101,,,,,,,,101,59,59,59,101,59,39,,,39,,71,,39,,,71,,38,39,39,,,,39,39,,,,,,,,59,,71,,,59,59,,100,59,,,,,71,71,71,102,,,,,,,,102,,,,102,,,,,,,,,,,,,71,,,,101,,,,,,71,71,71,,,,,59,,,,,59,59,59,59,59,,59,,,,,,,,,,,,,,,103,,,,,,,,103,,,,,,,,71,103,103,102,,,39,,,71,,71,,,,,,39,,,,,,,,104,104,,,,,,,,,,,,,,,,,,39,,,,,39,,,59,59,59,59,59,59,59,,39,,,,59,,,,,,59,59,59,59,,,,,39,,,,,,,,,59,,,,,,,71,39,,,,,,,,,,,71,,,,,,71,,,,,,,,,,,,,,,,,71,,,,59,,,,,,,59,59,,,,,,,,59,,,,,,,,,,,,,,103,,103,,59,103,103,,59,39,,,103,59,,,,,103,103,,,,,,103,103,39,,,,,,39,,,,,,,,,,59,,,71,,,39,71,,,39,71,71,,59,59,59,,103,,,,,,,,,,,,71,,,,,59,,104,,,,,71,,62,104,,,,62,,,,,104,104,,71,71,,,39,,,,,62,,,,,,,,39,,62,62,62,,62,,,,,,,,,,39,39,,,,,39,,,,59,,,,,,,,62,,,,,62,62,,,62,,,,,,,,,,,,,,,,,,,39,109,109,39,59,,,,,103,,,,,59,,,103,,,,103,,,,,,,,,,62,,,,,62,62,62,62,62,,62,,,,39,,,,,,,,,,,,,,,,,,,,,,,,,,,,59,,,,,,104,,104,,59,104,104,,,,,,104,,,,103,,104,104,,,,,,104,104,,,,,,59,,,59,71,,,,,,59,,71,62,62,62,62,62,62,62,59,71,,,59,62,,,,104,,62,62,62,62,,,,,,,,71,,,71,,,62,,,59,,,59,59,,,59,,,,,,59,59,71,,,59,59,,,,,,,,,,,,,,,,,,,,,,,71,62,,,,,,71,62,62,,,,,109,,,62,,,,,109,,,,,,,,,109,109,,,62,,,,62,,,,,62,,,,,,,,,,,,,,,,,,,104,,,,,,,,104,,,62,104,,,,,,,,,,,,,62,62,62,,,,,,,,,,,,,,,,,59,,62,,,,,,,,,,,,,,,,,,,,,59,,,,71,59,59,,,,,,,,,71,59,,,,104,,,,,,,,,,,,,,59,,,,,,,,71,,62,,,71,,,,59,,,,,,,71,,,,,109,,109,,,109,109,,,,,,109,,,,,,109,109,,62,,,,109,109,,,,71,62,,,,,,,,,,,,,,,,,,,,59,,,,,,,,,,109,,,,59,,,,,,,,,,,,59,,,,,,59,,,,,,59,,62,,,,,,,,,,62,,,,59,,71,,,,,,,,,,,,,,,,,,71,,,,62,,71,62,,,,,,,62,,,,,,,,71,,62,,71,,62,,,,,,,59,,,,,,,,,,,,,,,,,,,,62,,,62,62,,,62,109,59,59,,,62,62,59,109,,62,62,109,37,71,,,,,,,,,37,37,37,,71,,,,,,,,37,37,,37,37,,37,,71,71,,,,,71,59,,59,59,,,37,37,,,,,,,,59,,,,,,,,,,,,,,,,,,,,,,109,,71,,,71,59,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,71,,,,,,62,,,,,,,,,,,,,,,,,,,,,,,62,,,,,62,62,,,,,,,,,,62,,,,,,,,,,,,,,,,,,62,,,,,,,,,,,37,37,,,37,37,62,,,,,,,,,,,,37,,,,,,,,,,,,,37,,,,,,,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,,,,,37,,,,,62,,,,,,,,,,,,,,62,,,,37,37,,,,,,,62,37,,,,,62,,37,,37,,62,37,37,,,,,,,,,,,,,,62,,,,,,,,,,,,,,,,,,,,,,,,,,,37,,,,,,,,,,,,,,,,,,,,,,,,,,,,62,,,,,,,,,,,,,,,,,,,,,,,,,,,,,62,62,,,,,62,,,,37,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,37,,,62,,62,62,,,,,,,,,,,,62,,,,,,,,,37,,,,,,,,,,,,,37,,,,,,62,,,,37,,37,37,37,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,37,,,,,,,,,,37,,37,,37,,,,,,,,,,,,,,,,37,,,,,,,,,,37,,,37,,37,,,,,,37,,,37,,,,,,,,,,,,,37,37,,,,,,,,,,37,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,37,37,37,,,,37,,,37,37,37,37,,,,37,37,,,,,,37,,,,,,,,,,,,,,,,37,,,,,,,,,,,,,,,,,,,,,,37,37,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,37,,,,,,,,,37,,,37,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,37,,,,,,,,37,,,,,,,,,,,,,37,37,,,,,,,,,,,,,,,,,,,,,,,,,,,,37,37,37,37,37,37,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,37,,,,,,,,,,,,,,,,,,,,,,,,,,,,37,,,,,,,,,,,,,,,,,,,37,,,,,,,,,,,,,,,,,,,,,,,,,,37,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,37"),M=e.large_array_unpack(",147,134,152,,68,135,58,177,56,-229,-34,-462,-664,-739,,-427,24,151,-42,-119,92,48,40,-150,-45,405,46,-83,97,1084,-197,677,-2,1330,220,-25,3624,1403,1907,443,-471,-70,-67,-25,-434,-8,,-3,,167,65,-361,,,-172,53,-245,-470,2540,-366,96,2955,146,69,100,253,,-36,63,-252,2582,-2,-384,89,-4,,29,-231,663,44,,5,151,-167,846,139,-5,94,-266,262,36,-257,-351,-255,-496,,747,855,1131,1412,1450,1508,1943,2202,182,141,-44,,2520,-328,-757,-348,-582,134,,-196,21,,67,147,-156,153,-385,-417,-625,-182,-808,-466,-377,-796,-688,-223,-649,,-455,-739,,,-429,-554,24,-839,-735,-169,-825,-611,-657,,-721,-860,-949,-948,-168,-609,166,-392,-121,-10,-741,-737,-412,-36,,-45,-45,,,-513,-817,-713,-940,-557,-865,-274,-590,-518,-430,-773,,-644,,-642,-459,-457,,,-609,-457,-451,,-747,-800,-742,,-648,-647,,-89,,-333,-105,-588,,,-475,-392,-587,,,224,231,237,238,-245,-200,250,259,260,-291,-290,,,-276,-181,-117,,,-360,-336,-214,-650,-131,-330,-753,-615,-983,,,-495"),q=e.large_array_unpack(",,,,5,,6,392,335,,,474,,983,,332,333,,,,13,14,22,248,,,16,,442,249,364,,,640,252,,27,25,253,247,520,,,,,,,387,144,26,,,,28,29,815,,,,352,,30,349,456,37,,,39,42,41,,244,245,404,,465,143,87,,447,103,51,54,284,,324,,894,457,,458,470,483,689,572,322,308,55,56,57,58,59,60,61,62,63,,309,69,70,,,,,,77,,622,78,231,,,,,,,,716,495,,717,718,481,476,477,,1176,712,1070,,482,,,,484,,486,,970,,,,493,,,,,,,,,,,469,,,794,786,,,,,,,1050,,739,940,741,742,746,743,744,,,745,747,,,,939,941,751,,753,754,755,756,,760,478,504,762,763,764,113,,,86,88,89,,,,,650,,,,,,99,100,,232,904,235,480,,485,912,498,500,501,1081,505,1082,508,511,327"),S=e.large_array_unpack("0,0,racc_error,0,150,_reduce_1,2,148,_reduce_2,2,149,_reduce_3,0,151,_reduce_4,1,151,_reduce_5,3,151,_reduce_6,2,151,_reduce_7,1,153,_reduce_none,2,153,_reduce_9,3,156,_reduce_10,4,157,_reduce_11,2,158,_reduce_12,0,162,_reduce_13,1,162,_reduce_14,3,162,_reduce_15,2,162,_reduce_16,1,163,_reduce_none,2,163,_reduce_18,0,174,_reduce_19,4,155,_reduce_20,3,155,_reduce_21,3,155,_reduce_22,3,155,_reduce_23,2,155,_reduce_24,3,155,_reduce_25,3,155,_reduce_26,3,155,_reduce_27,3,155,_reduce_28,3,155,_reduce_29,4,155,_reduce_30,1,155,_reduce_none,3,155,_reduce_32,3,155,_reduce_33,5,155,_reduce_34,3,155,_reduce_35,1,155,_reduce_none,3,167,_reduce_37,3,167,_reduce_38,6,167,_reduce_39,5,167,_reduce_40,5,167,_reduce_41,5,167,_reduce_42,5,167,_reduce_43,4,167,_reduce_44,6,167,_reduce_45,4,167,_reduce_46,6,167,_reduce_47,3,167,_reduce_48,1,175,_reduce_none,3,175,_reduce_50,1,175,_reduce_none,1,173,_reduce_none,3,173,_reduce_53,3,173,_reduce_54,3,173,_reduce_55,2,173,_reduce_56,0,189,_reduce_57,4,173,_reduce_58,0,190,_reduce_59,4,173,_reduce_60,1,173,_reduce_none,1,166,_reduce_none,0,194,_reduce_63,3,191,_reduce_64,1,193,_reduce_65,2,181,_reduce_66,0,199,_reduce_67,5,185,_reduce_68,1,169,_reduce_none,1,169,_reduce_none,1,200,_reduce_none,4,200,_reduce_72,0,207,_reduce_73,4,204,_reduce_74,1,206,_reduce_none,2,183,_reduce_76,3,183,_reduce_77,4,183,_reduce_78,5,183,_reduce_79,4,183,_reduce_80,5,183,_reduce_81,2,183,_reduce_82,2,183,_reduce_83,2,183,_reduce_84,2,183,_reduce_85,2,183,_reduce_86,1,168,_reduce_87,3,168,_reduce_88,1,212,_reduce_89,3,212,_reduce_90,1,211,_reduce_none,2,211,_reduce_92,3,211,_reduce_93,5,211,_reduce_94,2,211,_reduce_95,4,211,_reduce_96,2,211,_reduce_97,4,211,_reduce_98,1,211,_reduce_99,3,211,_reduce_100,1,215,_reduce_none,3,215,_reduce_102,2,214,_reduce_103,3,214,_reduce_104,1,217,_reduce_105,3,217,_reduce_106,1,216,_reduce_107,1,216,_reduce_108,4,216,_reduce_109,3,216,_reduce_110,3,216,_reduce_111,3,216,_reduce_112,3,216,_reduce_113,2,216,_reduce_114,1,216,_reduce_115,1,170,_reduce_116,1,170,_reduce_117,4,170,_reduce_118,3,170,_reduce_119,3,170,_reduce_120,3,170,_reduce_121,3,170,_reduce_122,2,170,_reduce_123,1,170,_reduce_124,1,220,_reduce_125,1,220,_reduce_none,2,221,_reduce_127,1,221,_reduce_128,3,221,_reduce_129,1,195,_reduce_none,1,195,_reduce_none,1,195,_reduce_none,1,195,_reduce_none,1,195,_reduce_none,1,164,_reduce_135,1,164,_reduce_none,1,165,_reduce_137,0,225,_reduce_138,4,165,_reduce_139,1,222,_reduce_none,1,222,_reduce_none,1,222,_reduce_none,1,222,_reduce_none,1,222,_reduce_none,1,222,_reduce_none,1,222,_reduce_none,1,222,_reduce_none,1,222,_reduce_none,1,222,_reduce_none,1,222,_reduce_none,1,222,_reduce_none,1,222,_reduce_none,1,222,_reduce_none,1,222,_reduce_none,1,222,_reduce_none,1,222,_reduce_none,1,222,_reduce_none,1,222,_reduce_none,1,222,_reduce_none,1,222,_reduce_none,1,222,_reduce_none,1,222,_reduce_none,1,222,_reduce_none,1,222,_reduce_none,1,222,_reduce_none,1,222,_reduce_none,1,222,_reduce_none,1,222,_reduce_none,1,222,_reduce_none,1,223,_reduce_none,1,223,_reduce_none,1,223,_reduce_none,1,223,_reduce_none,1,223,_reduce_none,1,223,_reduce_none,1,223,_reduce_none,1,223,_reduce_none,1,223,_reduce_none,1,223,_reduce_none,1,223,_reduce_none,1,223,_reduce_none,1,223,_reduce_none,1,223,_reduce_none,1,223,_reduce_none,1,223,_reduce_none,1,223,_reduce_none,1,223,_reduce_none,1,223,_reduce_none,1,223,_reduce_none,1,223,_reduce_none,1,223,_reduce_none,1,223,_reduce_none,1,223,_reduce_none,1,223,_reduce_none,1,223,_reduce_none,1,223,_reduce_none,1,223,_reduce_none,1,223,_reduce_none,1,223,_reduce_none,1,223,_reduce_none,1,223,_reduce_none,1,223,_reduce_none,1,223,_reduce_none,1,223,_reduce_none,1,223,_reduce_none,1,223,_reduce_none,1,223,_reduce_none,1,223,_reduce_none,1,223,_reduce_none,1,223,_reduce_none,3,184,_reduce_211,3,184,_reduce_212,6,184,_reduce_213,5,184,_reduce_214,5,184,_reduce_215,5,184,_reduce_216,5,184,_reduce_217,4,184,_reduce_218,3,184,_reduce_219,3,184,_reduce_220,3,184,_reduce_221,2,184,_reduce_222,2,184,_reduce_223,2,184,_reduce_224,2,184,_reduce_225,3,184,_reduce_226,3,184,_reduce_227,3,184,_reduce_228,3,184,_reduce_229,3,184,_reduce_230,3,184,_reduce_231,4,184,_reduce_232,2,184,_reduce_233,2,184,_reduce_234,3,184,_reduce_235,3,184,_reduce_236,3,184,_reduce_237,3,184,_reduce_238,1,184,_reduce_none,3,184,_reduce_240,3,184,_reduce_241,3,184,_reduce_242,3,184,_reduce_243,3,184,_reduce_244,2,184,_reduce_245,2,184,_reduce_246,3,184,_reduce_247,3,184,_reduce_248,3,184,_reduce_249,3,184,_reduce_250,0,231,_reduce_251,4,184,_reduce_252,6,184,_reduce_253,4,184,_reduce_254,6,184,_reduce_255,4,184,_reduce_256,6,184,_reduce_257,1,184,_reduce_none,1,230,_reduce_none,1,230,_reduce_none,1,230,_reduce_none,1,230,_reduce_none,3,228,_reduce_263,3,228,_reduce_264,1,232,_reduce_none,1,233,_reduce_none,2,233,_reduce_none,4,233,_reduce_268,2,233,_reduce_269,1,226,_reduce_none,3,226,_reduce_271,3,238,_reduce_272,5,238,_reduce_273,3,238,_reduce_274,0,240,_reduce_275,1,240,_reduce_none,0,178,_reduce_277,1,178,_reduce_none,2,178,_reduce_none,4,178,_reduce_280,2,178,_reduce_281,1,210,_reduce_282,2,210,_reduce_283,2,210,_reduce_284,4,210,_reduce_285,1,210,_reduce_286,0,243,_reduce_287,2,203,_reduce_288,2,242,_reduce_289,1,242,_reduce_290,2,241,_reduce_291,0,241,_reduce_292,1,235,_reduce_293,2,235,_reduce_294,1,235,_reduce_295,3,235,_reduce_296,4,235,_reduce_297,3,235,_reduce_298,1,172,_reduce_299,1,172,_reduce_none,3,171,_reduce_301,4,171,_reduce_302,2,171,_reduce_303,1,229,_reduce_none,1,229,_reduce_none,1,229,_reduce_none,1,229,_reduce_none,1,229,_reduce_none,1,229,_reduce_none,1,229,_reduce_none,1,229,_reduce_none,1,229,_reduce_none,1,229,_reduce_none,1,229,_reduce_314,0,267,_reduce_315,4,229,_reduce_316,0,268,_reduce_317,4,229,_reduce_318,0,269,_reduce_319,4,229,_reduce_320,3,229,_reduce_321,3,229,_reduce_322,2,229,_reduce_323,3,229,_reduce_324,3,229,_reduce_325,1,229,_reduce_326,4,229,_reduce_327,3,229,_reduce_328,1,229,_reduce_329,0,270,_reduce_330,6,229,_reduce_331,4,229,_reduce_332,3,229,_reduce_333,2,229,_reduce_334,1,229,_reduce_none,2,229,_reduce_336,1,229,_reduce_none,6,229,_reduce_338,6,229,_reduce_339,4,229,_reduce_340,4,229,_reduce_341,5,229,_reduce_342,4,229,_reduce_343,5,229,_reduce_344,6,229,_reduce_345,0,271,_reduce_346,6,229,_reduce_347,0,272,_reduce_348,7,229,_reduce_349,0,273,_reduce_350,5,229,_reduce_351,4,229,_reduce_352,4,229,_reduce_353,1,229,_reduce_354,1,229,_reduce_355,1,229,_reduce_356,1,229,_reduce_357,1,177,_reduce_none,1,262,_reduce_359,1,265,_reduce_360,1,196,_reduce_361,1,209,_reduce_362,1,257,_reduce_none,1,257,_reduce_none,2,257,_reduce_365,1,192,_reduce_none,1,192,_reduce_none,1,258,_reduce_none,5,258,_reduce_369,1,160,_reduce_none,2,160,_reduce_371,1,261,_reduce_none,1,261,_reduce_none,1,274,_reduce_374,3,274,_reduce_375,1,277,_reduce_376,3,277,_reduce_377,1,276,_reduce_none,3,276,_reduce_379,5,276,_reduce_380,1,276,_reduce_381,3,276,_reduce_382,2,278,_reduce_383,1,278,_reduce_384,1,279,_reduce_none,1,279,_reduce_none,0,284,_reduce_387,2,282,_reduce_388,4,283,_reduce_389,2,283,_reduce_390,2,283,_reduce_391,1,283,_reduce_392,2,288,_reduce_393,0,288,_reduce_394,1,289,_reduce_none,6,290,_reduce_396,8,290,_reduce_397,4,290,_reduce_398,6,290,_reduce_399,4,290,_reduce_400,2,290,_reduce_none,6,290,_reduce_402,2,290,_reduce_403,4,290,_reduce_404,6,290,_reduce_405,2,290,_reduce_406,4,290,_reduce_407,2,290,_reduce_408,4,290,_reduce_409,1,290,_reduce_none,0,294,_reduce_411,1,294,_reduce_412,3,295,_reduce_413,4,295,_reduce_414,1,296,_reduce_415,4,296,_reduce_416,1,297,_reduce_417,3,297,_reduce_418,1,298,_reduce_419,1,298,_reduce_none,0,302,_reduce_421,0,303,_reduce_422,5,256,_reduce_423,4,300,_reduce_424,1,300,_reduce_425,0,306,_reduce_426,4,301,_reduce_427,0,307,_reduce_428,4,301,_reduce_429,0,309,_reduce_430,4,305,_reduce_431,2,201,_reduce_432,4,201,_reduce_433,5,201,_reduce_434,5,201,_reduce_435,2,255,_reduce_436,4,255,_reduce_437,4,255,_reduce_438,3,255,_reduce_439,3,255,_reduce_440,3,255,_reduce_441,2,255,_reduce_442,1,255,_reduce_443,4,255,_reduce_444,0,311,_reduce_445,4,254,_reduce_446,0,312,_reduce_447,4,254,_reduce_448,0,313,_reduce_449,3,205,_reduce_450,0,314,_reduce_451,0,315,_reduce_452,4,308,_reduce_453,5,259,_reduce_454,1,316,_reduce_455,1,316,_reduce_none,0,319,_reduce_457,0,320,_reduce_458,7,260,_reduce_459,1,318,_reduce_460,1,318,_reduce_none,1,317,_reduce_462,3,317,_reduce_463,3,317,_reduce_464,1,188,_reduce_none,2,188,_reduce_466,3,188,_reduce_467,1,188,_reduce_468,1,188,_reduce_469,1,188,_reduce_470,1,321,_reduce_none,3,326,_reduce_472,1,326,_reduce_none,3,328,_reduce_474,1,328,_reduce_none,1,330,_reduce_476,1,331,_reduce_477,1,329,_reduce_none,1,329,_reduce_none,4,329,_reduce_480,4,329,_reduce_481,4,329,_reduce_482,3,329,_reduce_483,4,329,_reduce_484,4,329,_reduce_485,4,329,_reduce_486,3,329,_reduce_487,3,329,_reduce_488,3,329,_reduce_489,2,329,_reduce_490,0,335,_reduce_491,4,329,_reduce_492,2,329,_reduce_493,0,336,_reduce_494,4,329,_reduce_495,1,322,_reduce_496,1,322,_reduce_497,2,322,_reduce_498,2,322,_reduce_499,4,322,_reduce_500,1,322,_reduce_none,2,337,_reduce_502,3,337,_reduce_503,1,324,_reduce_504,3,324,_reduce_505,5,323,_reduce_506,2,339,_reduce_507,1,339,_reduce_508,1,340,_reduce_509,3,340,_reduce_510,1,338,_reduce_none,3,325,_reduce_512,1,325,_reduce_513,2,325,_reduce_514,1,325,_reduce_515,1,341,_reduce_516,3,341,_reduce_517,2,343,_reduce_518,1,343,_reduce_519,1,344,_reduce_520,3,344,_reduce_521,2,346,_reduce_522,1,346,_reduce_523,2,348,_reduce_524,1,342,_reduce_none,1,342,_reduce_526,1,332,_reduce_none,3,332,_reduce_528,3,332,_reduce_529,2,332,_reduce_530,2,332,_reduce_531,1,332,_reduce_none,1,332,_reduce_none,1,332,_reduce_none,2,332,_reduce_535,2,332,_reduce_536,1,349,_reduce_none,1,349,_reduce_none,1,349,_reduce_none,1,349,_reduce_none,1,349,_reduce_none,1,349,_reduce_none,1,349,_reduce_none,1,349,_reduce_none,1,349,_reduce_545,1,349,_reduce_none,1,327,_reduce_547,2,350,_reduce_548,2,350,_reduce_549,4,351,_reduce_550,2,333,_reduce_551,3,333,_reduce_552,1,333,_reduce_553,6,159,_reduce_554,0,159,_reduce_555,1,353,_reduce_556,1,353,_reduce_none,1,353,_reduce_none,2,354,_reduce_559,1,354,_reduce_none,2,161,_reduce_561,1,161,_reduce_none,1,244,_reduce_none,1,244,_reduce_none,1,245,_reduce_565,1,356,_reduce_566,2,356,_reduce_567,3,357,_reduce_568,1,357,_reduce_569,1,357,_reduce_570,3,246,_reduce_571,4,247,_reduce_572,3,248,_reduce_573,0,360,_reduce_574,3,360,_reduce_575,1,361,_reduce_576,2,361,_reduce_577,3,250,_reduce_578,0,363,_reduce_579,3,363,_reduce_580,3,249,_reduce_581,3,251,_reduce_582,0,364,_reduce_583,3,364,_reduce_584,0,365,_reduce_585,3,365,_reduce_586,0,345,_reduce_587,2,345,_reduce_588,0,358,_reduce_589,2,358,_reduce_590,0,359,_reduce_591,2,359,_reduce_592,1,362,_reduce_593,2,362,_reduce_594,0,367,_reduce_595,4,362,_reduce_596,1,366,_reduce_597,1,366,_reduce_598,1,366,_reduce_599,1,366,_reduce_none,1,224,_reduce_none,1,224,_reduce_none,1,368,_reduce_603,3,369,_reduce_604,1,355,_reduce_605,2,355,_reduce_606,1,227,_reduce_607,1,227,_reduce_608,1,227,_reduce_609,1,227,_reduce_610,1,352,_reduce_611,1,352,_reduce_612,1,352,_reduce_613,1,218,_reduce_614,1,218,_reduce_615,1,218,_reduce_none,1,219,_reduce_617,1,219,_reduce_618,1,219,_reduce_619,1,219,_reduce_620,1,219,_reduce_621,1,219,_reduce_622,1,219,_reduce_623,1,252,_reduce_624,1,252,_reduce_625,1,176,_reduce_626,1,176,_reduce_627,1,186,_reduce_628,1,186,_reduce_629,0,370,_reduce_630,4,263,_reduce_631,0,263,_reduce_632,1,182,_reduce_none,1,182,_reduce_634,3,371,_reduce_635,1,266,_reduce_none,0,373,_reduce_637,3,266,_reduce_638,4,372,_reduce_639,2,372,_reduce_640,2,372,_reduce_641,1,372,_reduce_642,1,372,_reduce_643,2,375,_reduce_644,0,375,_reduce_645,6,304,_reduce_646,8,304,_reduce_647,4,304,_reduce_648,6,304,_reduce_649,4,304,_reduce_650,6,304,_reduce_651,2,304,_reduce_652,4,304,_reduce_653,6,304,_reduce_654,2,304,_reduce_655,4,304,_reduce_656,2,304,_reduce_657,4,304,_reduce_658,1,304,_reduce_659,0,304,_reduce_660,1,239,_reduce_661,1,299,_reduce_662,1,299,_reduce_663,1,299,_reduce_664,1,299,_reduce_665,1,275,_reduce_none,1,275,_reduce_667,1,377,_reduce_668,1,378,_reduce_669,3,378,_reduce_670,1,291,_reduce_671,3,291,_reduce_672,1,379,_reduce_673,2,380,_reduce_674,1,380,_reduce_675,2,381,_reduce_676,1,381,_reduce_677,1,285,_reduce_678,3,285,_reduce_679,1,374,_reduce_680,3,374,_reduce_681,1,347,_reduce_none,1,347,_reduce_none,1,281,_reduce_684,2,280,_reduce_685,1,280,_reduce_686,3,382,_reduce_687,3,383,_reduce_688,1,292,_reduce_689,3,292,_reduce_690,1,376,_reduce_691,3,376,_reduce_692,1,384,_reduce_none,1,384,_reduce_none,2,293,_reduce_695,1,293,_reduce_696,1,385,_reduce_none,1,385,_reduce_none,2,287,_reduce_699,1,287,_reduce_700,2,286,_reduce_701,0,286,_reduce_702,1,197,_reduce_none,3,197,_reduce_704,0,253,_reduce_705,2,253,_reduce_none,1,237,_reduce_707,3,237,_reduce_708,3,386,_reduce_709,2,386,_reduce_710,1,386,_reduce_711,4,386,_reduce_712,2,386,_reduce_713,1,386,_reduce_714,1,208,_reduce_none,1,208,_reduce_none,1,208,_reduce_none,1,202,_reduce_none,1,202,_reduce_none,1,310,_reduce_none,1,310,_reduce_none,1,310,_reduce_none,1,198,_reduce_none,1,198,_reduce_none,1,180,_reduce_725,1,180,_reduce_726,0,152,_reduce_none,1,152,_reduce_none,0,187,_reduce_none,1,187,_reduce_none,2,213,_reduce_731,2,179,_reduce_732,2,334,_reduce_733,1,236,_reduce_none,1,236,_reduce_none,1,264,_reduce_736,1,264,_reduce_none,1,154,_reduce_none,2,154,_reduce_none,0,234,_reduce_740"),741,1234,O=c(new Map([[!1,0],["error",1],["kCLASS",2],["kMODULE",3],["kDEF",4],["kUNDEF",5],["kBEGIN",6],["kRESCUE",7],["kENSURE",8],["kEND",9],["kIF",10],["kUNLESS",11],["kTHEN",12],["kELSIF",13],["kELSE",14],["kCASE",15],["kWHEN",16],["kWHILE",17],["kUNTIL",18],["kFOR",19],["kBREAK",20],["kNEXT",21],["kREDO",22],["kRETRY",23],["kIN",24],["kDO",25],["kDO_COND",26],["kDO_BLOCK",27],["kDO_LAMBDA",28],["kRETURN",29],["kYIELD",30],["kSUPER",31],["kSELF",32],["kNIL",33],["kTRUE",34],["kFALSE",35],["kAND",36],["kOR",37],["kNOT",38],["kIF_MOD",39],["kUNLESS_MOD",40],["kWHILE_MOD",41],["kUNTIL_MOD",42],["kRESCUE_MOD",43],["kALIAS",44],["kDEFINED",45],["klBEGIN",46],["klEND",47],["k__LINE__",48],["k__FILE__",49],["k__ENCODING__",50],["tIDENTIFIER",51],["tFID",52],["tGVAR",53],["tIVAR",54],["tCONSTANT",55],["tLABEL",56],["tCVAR",57],["tNTH_REF",58],["tBACK_REF",59],["tSTRING_CONTENT",60],["tINTEGER",61],["tFLOAT",62],["tUPLUS",63],["tUMINUS",64],["tUNARY_NUM",65],["tPOW",66],["tCMP",67],["tEQ",68],["tEQQ",69],["tNEQ",70],["tGEQ",71],["tLEQ",72],["tANDOP",73],["tOROP",74],["tMATCH",75],["tNMATCH",76],["tDOT",77],["tDOT2",78],["tDOT3",79],["tAREF",80],["tASET",81],["tLSHFT",82],["tRSHFT",83],["tCOLON2",84],["tCOLON3",85],["tOP_ASGN",86],["tASSOC",87],["tLPAREN",88],["tLPAREN2",89],["tRPAREN",90],["tLPAREN_ARG",91],["tLBRACK",92],["tLBRACK2",93],["tRBRACK",94],["tLBRACE",95],["tLBRACE_ARG",96],["tSTAR",97],["tSTAR2",98],["tAMPER",99],["tAMPER2",100],["tTILDE",101],["tPERCENT",102],["tDIVIDE",103],["tDSTAR",104],["tPLUS",105],["tMINUS",106],["tLT",107],["tGT",108],["tPIPE",109],["tBANG",110],["tCARET",111],["tLCURLY",112],["tRCURLY",113],["tBACK_REF2",114],["tSYMBEG",115],["tSTRING_BEG",116],["tXSTRING_BEG",117],["tREGEXP_BEG",118],["tREGEXP_OPT",119],["tWORDS_BEG",120],["tQWORDS_BEG",121],["tSYMBOLS_BEG",122],["tQSYMBOLS_BEG",123],["tSTRING_DBEG",124],["tSTRING_DVAR",125],["tSTRING_END",126],["tSTRING_DEND",127],["tSTRING",128],["tSYMBOL",129],["tNL",130],["tEH",131],["tCOLON",132],["tCOMMA",133],["tSPACE",134],["tSEMI",135],["tLAMBDA",136],["tLAMBEG",137],["tCHARACTER",138],["tRATIONAL",139],["tIMAGINARY",140],["tLABEL_END",141],["tANDDOT",142],["tBDOT2",143],["tBDOT3",144],["tEQL",145],["tLOWEST",146]])),147,!0,_(T[0],"Racc_arg",[y,x,k,w,U,E,q,M,147,S,O,1234,741,true]),s(N("Ractor","skip_raise")?"constant":b)&&N("Ractor").$make_shareable(N("Racc_arg")),_(T[0],"Racc_token_to_s_table",e.large_array_unpack("$end,error,kCLASS,kMODULE,kDEF,kUNDEF,kBEGIN,kRESCUE,kENSURE,kEND,kIF,kUNLESS,kTHEN,kELSIF,kELSE,kCASE,kWHEN,kWHILE,kUNTIL,kFOR,kBREAK,kNEXT,kREDO,kRETRY,kIN,kDO,kDO_COND,kDO_BLOCK,kDO_LAMBDA,kRETURN,kYIELD,kSUPER,kSELF,kNIL,kTRUE,kFALSE,kAND,kOR,kNOT,kIF_MOD,kUNLESS_MOD,kWHILE_MOD,kUNTIL_MOD,kRESCUE_MOD,kALIAS,kDEFINED,klBEGIN,klEND,k__LINE__,k__FILE__,k__ENCODING__,tIDENTIFIER,tFID,tGVAR,tIVAR,tCONSTANT,tLABEL,tCVAR,tNTH_REF,tBACK_REF,tSTRING_CONTENT,tINTEGER,tFLOAT,tUPLUS,tUMINUS,tUNARY_NUM,tPOW,tCMP,tEQ,tEQQ,tNEQ,tGEQ,tLEQ,tANDOP,tOROP,tMATCH,tNMATCH,tDOT,tDOT2,tDOT3,tAREF,tASET,tLSHFT,tRSHFT,tCOLON2,tCOLON3,tOP_ASGN,tASSOC,tLPAREN,tLPAREN2,tRPAREN,tLPAREN_ARG,tLBRACK,tLBRACK2,tRBRACK,tLBRACE,tLBRACE_ARG,tSTAR,tSTAR2,tAMPER,tAMPER2,tTILDE,tPERCENT,tDIVIDE,tDSTAR,tPLUS,tMINUS,tLT,tGT,tPIPE,tBANG,tCARET,tLCURLY,tRCURLY,tBACK_REF2,tSYMBEG,tSTRING_BEG,tXSTRING_BEG,tREGEXP_BEG,tREGEXP_OPT,tWORDS_BEG,tQWORDS_BEG,tSYMBOLS_BEG,tQSYMBOLS_BEG,tSTRING_DBEG,tSTRING_DVAR,tSTRING_END,tSTRING_DEND,tSTRING,tSYMBOL,tNL,tEH,tCOLON,tCOMMA,tSPACE,tSEMI,tLAMBDA,tLAMBEG,tCHARACTER,tRATIONAL,tIMAGINARY,tLABEL_END,tANDDOT,tBDOT2,tBDOT3,tEQL,tLOWEST,$start,program,top_compstmt,@1,top_stmts,opt_terms,top_stmt,terms,stmt,begin_block,bodystmt,compstmt,opt_rescue,opt_else,opt_ensure,stmts,stmt_or_begin,fitem,undef_list,expr_value,command_asgn,mlhs,command_call,lhs,mrhs,mrhs_arg,expr,@2,command_rhs,var_lhs,primary_value,opt_call_args,rbracket,call_op,defn_head,f_opt_paren_args,command,arg,defs_head,backref,opt_nl,p_top_expr_body,@3,@4,expr_value_do,do,def_name,@5,fname,k_def,singleton,dot_or_colon,@6,block_command,block_call,operation2,command_args,cmd_brace_block,brace_body,fcall,@7,operation,k_return,call_args,mlhs_basic,mlhs_inner,rparen,mlhs_head,mlhs_item,mlhs_node,mlhs_post,user_variable,keyword_variable,cname,cpath,op,reswords,symbol,@8,arg_rhs,simple_numeric,rel_expr,primary,relop,@9,arg_value,aref_args,none,args,trailer,assocs,paren_args,args_forward,opt_paren_args,opt_block_arg,block_arg,@10,literal,strings,xstring,regexp,words,qwords,symbols,qsymbols,var_ref,assoc_list,brace_block,method_call,lambda,then,if_tail,case_body,p_case_body,for_var,k_class,superclass,term,k_module,f_arglist,@11,@12,@13,@14,@15,@16,@17,f_marg,f_norm_arg,f_margs,f_marg_list,f_rest_marg,f_any_kwrest,f_kwrest,f_no_kwarg,f_eq,block_args_tail,@18,f_block_kwarg,opt_f_block_arg,f_block_arg,opt_block_args_tail,excessed_comma,block_param,f_arg,f_block_optarg,f_rest_arg,opt_block_param,block_param_def,opt_bv_decl,bv_decls,bvar,f_bad_arg,f_larglist,lambda_body,@19,@20,f_args,do_block,@21,@22,do_body,@23,operation3,@24,@25,@26,@27,@28,cases,p_top_expr,p_cases,@29,@30,p_expr,p_args,p_find,p_args_tail,p_kwargs,p_as,p_variable,p_alt,p_expr_basic,p_lparen,p_lbracket,p_value,p_const,rbrace,@31,@32,p_args_head,p_arg,p_rest,p_args_post,p_kwarg,p_any_kwrest,p_kw,p_kw_label,string_contents,p_kwrest,kwrest_mark,p_kwnorest,p_primitive,p_var_ref,p_expr_ref,nonlocal_var,exc_list,exc_var,numeric,string,string1,xstring_contents,regexp_contents,word_list,word,string_content,symbol_list,qword_list,qsym_list,string_dvar,@33,ssym,dsym,@34,f_paren_args,args_tail,@35,f_kwarg,opt_args_tail,f_optarg,f_arg_asgn,f_arg_item,f_label,f_kw,f_block_kw,f_opt,f_block_opt,restarg_mark,blkarg_mark,assoc")),s(N("Ractor","skip_raise")?"constant":b)&&N("Ractor").$make_shareable(N("Racc_token_to_s_table")),_(T[0],"Racc_debug_parser",!1),a(A,"$_reduce_1",(function(e,t,r){return this.current_arg_stack.$push(b),this.max_numparam_stack.$push(new Map([["static",!0]])),r})),a(A,"$_reduce_2",(function(e,t,r){return r=e["$[]"](1),this.current_arg_stack.$pop(),this.max_numparam_stack.$pop(),r})),a(A,"$_reduce_3",(function(e,t,r){return this.builder.$compstmt(e["$[]"](0))})),a(A,"$_reduce_4",(function(e,t,r){return[]})),a(A,"$_reduce_5",(function(e,t,r){return[e["$[]"](0)]})),a(A,"$_reduce_6",(function(e,t,r){return e["$[]"](0)["$<<"](e["$[]"](2))})),a(A,"$_reduce_7",(function(e,t,r){return[e["$[]"](1)]})),a(A,"$_reduce_9",(function(e,t,r){return l(this.builder,"preexe",[e["$[]"](0)].concat(p(e["$[]"](1))))})),a(A,"$_reduce_10",(function(e,t,r){return e})),a(A,"$_reduce_11",(function(e,t,r){var n,a,o,l,$,u=b,c=b;return u=e["$[]"](1),a=e["$[]"](2),c=null==(n=m(a))[0]?b:n[0],o=null==n[1]?b:n[1],a=e["$[]"](3),l=null==(n=m(a))[0]?b:n[0],$=null==n[1]?b:n[1],s(u["$empty?"]())&&i(c["$nil?"]())&&this.$diagnostic("error","useless_else",b,c),this.builder.$begin_body(e["$[]"](0),u,c,o,l,$)})),a(A,"$_reduce_12",(function(e,t,r){return this.builder.$compstmt(e["$[]"](0))})),a(A,"$_reduce_13",(function(e,t,r){return[]})),a(A,"$_reduce_14",(function(e,t,r){return[e["$[]"](0)]})),a(A,"$_reduce_15",(function(e,t,r){return e["$[]"](0)["$<<"](e["$[]"](2))})),a(A,"$_reduce_16",(function(e,t,r){return[e["$[]"](1)]})),a(A,"$_reduce_18",(function(e,t,r){return this.$diagnostic("error","begin_in_method",b,e["$[]"](0)),r})),a(A,"$_reduce_19",(function(e,t,r){return this.lexer["$state="]("expr_fname"),r})),a(A,"$_reduce_20",(function(e,t,r){return this.builder.$alias(e["$[]"](0),e["$[]"](1),e["$[]"](3))})),a(A,"$_reduce_21",(function(e,t,r){var n=this;return n.builder.$alias(e["$[]"](0),n.builder.$gvar(e["$[]"](1)),n.builder.$gvar(e["$[]"](2)))})),a(A,"$_reduce_22",(function(e,t,r){var n=this;return n.builder.$alias(e["$[]"](0),n.builder.$gvar(e["$[]"](1)),n.builder.$back_ref(e["$[]"](2)))})),a(A,"$_reduce_23",(function(e,t,r){return this.$diagnostic("error","nth_ref_alias",b,e["$[]"](2)),r})),a(A,"$_reduce_24",(function(e,t,r){return this.builder.$undef_method(e["$[]"](0),e["$[]"](1))})),a(A,"$_reduce_25",(function(e,t,r){return this.builder.$condition_mod(e["$[]"](0),b,e["$[]"](1),e["$[]"](2))})),a(A,"$_reduce_26",(function(e,t,r){return this.builder.$condition_mod(b,e["$[]"](0),e["$[]"](1),e["$[]"](2))})),a(A,"$_reduce_27",(function(e,t,r){return this.builder.$loop_mod("while",e["$[]"](0),e["$[]"](1),e["$[]"](2))})),a(A,"$_reduce_28",(function(e,t,r){return this.builder.$loop_mod("until",e["$[]"](0),e["$[]"](1),e["$[]"](2))})),a(A,"$_reduce_29",(function(e,t,r){var n;return n=this.builder.$rescue_body(e["$[]"](1),b,b,b,b,e["$[]"](2)),this.builder.$begin_body(e["$[]"](0),[n])})),a(A,"$_reduce_30",(function(e,t,r){return this.builder.$postexe(e["$[]"](0),e["$[]"](1),e["$[]"](2),e["$[]"](3))})),a(A,"$_reduce_32",(function(e,t,r){return this.builder.$multi_assign(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),a(A,"$_reduce_33",(function(e,t,r){return this.builder.$assign(e["$[]"](0),e["$[]"](1),this.builder.$array(b,e["$[]"](2),b))})),a(A,"$_reduce_34",(function(e,t,r){var n,a,s=this;return n=s.builder.$rescue_body(e["$[]"](3),b,b,b,b,e["$[]"](4)),a=s.builder.$begin_body(e["$[]"](2),[n]),s.builder.$multi_assign(e["$[]"](0),e["$[]"](1),a)})),a(A,"$_reduce_35",(function(e,t,r){return this.builder.$multi_assign(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),a(A,"$_reduce_37",(function(e,t,r){return this.builder.$assign(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),a(A,"$_reduce_38",(function(e,t,r){return this.builder.$op_assign(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),a(A,"$_reduce_39",(function(e,t,r){return this.builder.$op_assign(this.builder.$index(e["$[]"](0),e["$[]"](1),e["$[]"](2),e["$[]"](3)),e["$[]"](4),e["$[]"](5))})),a(A,"$_reduce_40",(function(e,t,r){return this.builder.$op_assign(this.builder.$call_method(e["$[]"](0),e["$[]"](1),e["$[]"](2)),e["$[]"](3),e["$[]"](4))})),a(A,"$_reduce_41",(function(e,t,r){return this.builder.$op_assign(this.builder.$call_method(e["$[]"](0),e["$[]"](1),e["$[]"](2)),e["$[]"](3),e["$[]"](4))})),a(A,"$_reduce_42",(function(e,t,r){var n,a=this;return n=a.builder.$const_op_assignable(a.builder.$const_fetch(e["$[]"](0),e["$[]"](1),e["$[]"](2))),a.builder.$op_assign(n,e["$[]"](3),e["$[]"](4))})),a(A,"$_reduce_43",(function(e,t,r){return this.builder.$op_assign(this.builder.$call_method(e["$[]"](0),e["$[]"](1),e["$[]"](2)),e["$[]"](3),e["$[]"](4))})),a(A,"$_reduce_44",(function(e,t,r){var n,a,s,i,o,l=this,$=b;return a=e["$[]"](0),i=null==(n=m(a))[0]?b:n[0],o=null==(s=m(null==n[1]?b:n[1]))[0]?b:s[0],$=null==s[1]?b:s[1],l.$endless_method_name(o),r=l.builder.$def_endless_method(i,o,e["$[]"](1),e["$[]"](2),e["$[]"](3)),l.$local_pop(),l.current_arg_stack.$pop(),l.context["$in_def="]($.$in_def()),r})),a(A,"$_reduce_45",(function(e,t,r){var n,a,s,i,o,l,$,u=this,c=b;return a=e["$[]"](0),i=null==(n=m(a))[0]?b:n[0],o=null==(s=m(null==n[1]?b:n[1]))[0]?b:s[0],c=null==s[1]?b:s[1],u.$endless_method_name(o),l=u.builder.$rescue_body(e["$[]"](4),b,b,b,b,e["$[]"](5)),$=u.builder.$begin_body(e["$[]"](3),[l]),r=u.builder.$def_endless_method(i,o,e["$[]"](1),e["$[]"](2),$),u.$local_pop(),u.current_arg_stack.$pop(),u.context["$in_def="](c.$in_def()),r})),a(A,"$_reduce_46",(function(e,t,r){var n,a,s,i,o,l,$,u=this,c=b;return a=e["$[]"](0),i=null==(n=m(a))[0]?b:n[0],o=null==n[1]?b:n[1],l=null==n[2]?b:n[2],$=null==(s=m(null==n[3]?b:n[3]))[0]?b:s[0],c=null==s[1]?b:s[1],u.$endless_method_name($),r=u.builder.$def_endless_singleton(i,o,l,$,e["$[]"](1),e["$[]"](2),e["$[]"](3)),u.$local_pop(),u.current_arg_stack.$pop(),u.context["$in_def="](c.$in_def()),r})),a(A,"$_reduce_47",(function(e,t,r){var n,a,s,i,o,l,$,u,c,_=this,p=b;return a=e["$[]"](0),i=null==(n=m(a))[0]?b:n[0],o=null==n[1]?b:n[1],l=null==n[2]?b:n[2],$=null==(s=m(null==n[3]?b:n[3]))[0]?b:s[0],p=null==s[1]?b:s[1],_.$endless_method_name($),u=_.builder.$rescue_body(e["$[]"](4),b,b,b,b,e["$[]"](5)),c=_.builder.$begin_body(e["$[]"](3),[u]),r=_.builder.$def_endless_singleton(i,o,l,$,e["$[]"](1),e["$[]"](2),c),_.$local_pop(),_.current_arg_stack.$pop(),_.context["$in_def="](p.$in_def()),r})),a(A,"$_reduce_48",(function(e,t,r){return this.builder.$op_assign(e["$[]"](0),e["$[]"](1),e["$[]"](2)),r})),a(A,"$_reduce_50",(function(e,t,r){var n;return n=this.builder.$rescue_body(e["$[]"](1),b,b,b,b,e["$[]"](2)),this.builder.$begin_body(e["$[]"](0),[n])})),a(A,"$_reduce_53",(function(e,t,r){return this.builder.$logical_op("and",e["$[]"](0),e["$[]"](1),e["$[]"](2))})),a(A,"$_reduce_54",(function(e,t,r){return this.builder.$logical_op("or",e["$[]"](0),e["$[]"](1),e["$[]"](2))})),a(A,"$_reduce_55",(function(e,t,r){return this.builder.$not_op(e["$[]"](0),b,e["$[]"](2),b)})),a(A,"$_reduce_56",(function(e,t,r){return this.builder.$not_op(e["$[]"](0),b,e["$[]"](1),b)})),a(A,"$_reduce_57",(function(e,t,r){var n=this;return n.lexer["$state="]("expr_beg"),n.lexer["$command_start="](!1),n.pattern_variables.$push(),n.pattern_hash_keys.$push(),r=n.context.$in_kwarg(),n.context["$in_kwarg="](!0),r})),a(A,"$_reduce_58",(function(e,t,r){var n=this;return n.pattern_variables.$pop(),n.pattern_hash_keys.$pop(),n.context["$in_kwarg="](e["$[]"](2)),n.builder.$match_pattern(e["$[]"](0),e["$[]"](1),e["$[]"](3))})),a(A,"$_reduce_59",(function(e,t,r){var n=this;return n.lexer["$state="]("expr_beg"),n.lexer["$command_start="](!1),n.pattern_variables.$push(),n.pattern_hash_keys.$push(),r=n.context.$in_kwarg(),n.context["$in_kwarg="](!0),r})),a(A,"$_reduce_60",(function(e,t,r){var n=this;return n.pattern_variables.$pop(),n.pattern_hash_keys.$pop(),n.context["$in_kwarg="](e["$[]"](2)),n.builder.$match_pattern_p(e["$[]"](0),e["$[]"](1),e["$[]"](3))})),a(A,"$_reduce_63",(function(e,t,r){return this.lexer.$cond().$push(!0),r})),a(A,"$_reduce_64",(function(e,t,r){return this.lexer.$cond().$pop(),[e["$[]"](1),e["$[]"](2)]})),a(A,"$_reduce_65",(function(e,t,r){var n=this;return n.$local_push(),n.current_arg_stack.$push(b),r=[e["$[]"](0),n.context.$dup()],n.context["$in_def="](!0),r})),a(A,"$_reduce_66",(function(e,t,r){return[e["$[]"](0),e["$[]"](1)]})),a(A,"$_reduce_67",(function(e,t,r){return this.lexer["$state="]("expr_fname"),this.context["$in_argdef="](!0),r})),a(A,"$_reduce_68",(function(e,t,r){return[e["$[]"](0),e["$[]"](1),e["$[]"](2),e["$[]"](4)]})),a(A,"$_reduce_72",(function(e,t,r){return this.builder.$call_method(e["$[]"](0),e["$[]"](1),e["$[]"](2),b,e["$[]"](3),b)})),a(A,"$_reduce_73",(function(e,t,r){return r=this.context.$dup(),this.context["$in_block="](!0),r})),a(A,"$_reduce_74",(function(e,t,r){return this.context["$in_block="](e["$[]"](1).$in_block()),[e["$[]"](0)].concat(p(e["$[]"](2))).concat([e["$[]"](3)])})),a(A,"$_reduce_76",(function(e,t,r){return this.builder.$call_method(b,b,e["$[]"](0),b,e["$[]"](1),b)})),a(A,"$_reduce_77",(function(e,t,r){var n,a,s,i,o,l,$;return s=this.builder.$call_method(b,b,e["$[]"](0),b,e["$[]"](1),b),a=e["$[]"](2),i=null==(n=m(a))[0]?b:n[0],o=null==n[1]?b:n[1],l=null==n[2]?b:n[2],$=null==n[3]?b:n[3],this.builder.$block(s,i,o,l,$)})),a(A,"$_reduce_78",(function(e,t,r){return this.builder.$call_method(e["$[]"](0),e["$[]"](1),e["$[]"](2),b,e["$[]"](3),b)})),a(A,"$_reduce_79",(function(e,t,r){var n,a,s,i,o,l,$;return s=this.builder.$call_method(e["$[]"](0),e["$[]"](1),e["$[]"](2),b,e["$[]"](3),b),a=e["$[]"](4),i=null==(n=m(a))[0]?b:n[0],o=null==n[1]?b:n[1],l=null==n[2]?b:n[2],$=null==n[3]?b:n[3],this.builder.$block(s,i,o,l,$)})),a(A,"$_reduce_80",(function(e,t,r){return this.builder.$call_method(e["$[]"](0),e["$[]"](1),e["$[]"](2),b,e["$[]"](3),b)})),a(A,"$_reduce_81",(function(e,t,r){var n,a,s,i,o,l,$;return s=this.builder.$call_method(e["$[]"](0),e["$[]"](1),e["$[]"](2),b,e["$[]"](3),b),a=e["$[]"](4),i=null==(n=m(a))[0]?b:n[0],o=null==n[1]?b:n[1],l=null==n[2]?b:n[2],$=null==n[3]?b:n[3],this.builder.$block(s,i,o,l,$)})),a(A,"$_reduce_82",(function(e,t,r){return this.builder.$keyword_cmd("super",e["$[]"](0),b,e["$[]"](1),b)})),a(A,"$_reduce_83",(function(e,t,r){return this.builder.$keyword_cmd("yield",e["$[]"](0),b,e["$[]"](1),b)})),a(A,"$_reduce_84",(function(e,t,r){return this.builder.$keyword_cmd("return",e["$[]"](0),b,e["$[]"](1),b)})),a(A,"$_reduce_85",(function(e,t,r){return this.builder.$keyword_cmd("break",e["$[]"](0),b,e["$[]"](1),b)})),a(A,"$_reduce_86",(function(e,t,r){return this.builder.$keyword_cmd("next",e["$[]"](0),b,e["$[]"](1),b)})),a(A,"$_reduce_87",(function(e,t,r){return this.builder.$multi_lhs(b,e["$[]"](0),b)})),a(A,"$_reduce_88",(function(e,t,r){return this.builder.$begin(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),a(A,"$_reduce_89",(function(e,t,r){return this.builder.$multi_lhs(b,e["$[]"](0),b)})),a(A,"$_reduce_90",(function(e,t,r){return this.builder.$multi_lhs(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),a(A,"$_reduce_92",(function(e,t,r){return e["$[]"](0).$push(e["$[]"](1))})),a(A,"$_reduce_93",(function(e,t,r){return e["$[]"](0).$push(this.builder.$splat(e["$[]"](1),e["$[]"](2)))})),a(A,"$_reduce_94",(function(e,t,r){return e["$[]"](0).$push(this.builder.$splat(e["$[]"](1),e["$[]"](2))).$concat(e["$[]"](4))})),a(A,"$_reduce_95",(function(e,t,r){return e["$[]"](0).$push(this.builder.$splat(e["$[]"](1)))})),a(A,"$_reduce_96",(function(e,t,r){return e["$[]"](0).$push(this.builder.$splat(e["$[]"](1))).$concat(e["$[]"](3))})),a(A,"$_reduce_97",(function(e,t,r){return[this.builder.$splat(e["$[]"](0),e["$[]"](1))]})),a(A,"$_reduce_98",(function(e,t,r){return[this.builder.$splat(e["$[]"](0),e["$[]"](1))].concat(p(e["$[]"](3)))})),a(A,"$_reduce_99",(function(e,t,r){return[this.builder.$splat(e["$[]"](0))]})),a(A,"$_reduce_100",(function(e,t,r){return[this.builder.$splat(e["$[]"](0))].concat(p(e["$[]"](2)))})),a(A,"$_reduce_102",(function(e,t,r){return this.builder.$begin(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),a(A,"$_reduce_103",(function(e,t,r){return[e["$[]"](0)]})),a(A,"$_reduce_104",(function(e,t,r){return e["$[]"](0)["$<<"](e["$[]"](1))})),a(A,"$_reduce_105",(function(e,t,r){return[e["$[]"](0)]})),a(A,"$_reduce_106",(function(e,t,r){return e["$[]"](0)["$<<"](e["$[]"](2))})),a(A,"$_reduce_107",(function(e,t,r){return this.builder.$assignable(e["$[]"](0))})),a(A,"$_reduce_108",(function(e,t,r){return this.builder.$assignable(e["$[]"](0))})),a(A,"$_reduce_109",(function(e,t,r){return this.builder.$index_asgn(e["$[]"](0),e["$[]"](1),e["$[]"](2),e["$[]"](3))})),a(A,"$_reduce_110",(function(e,t,r){return d(e["$[]"](1)["$[]"](0),"anddot")&&this.$diagnostic("error","csend_in_lhs_of_masgn",b,e["$[]"](1)),this.builder.$attr_asgn(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),a(A,"$_reduce_111",(function(e,t,r){return this.builder.$attr_asgn(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),a(A,"$_reduce_112",(function(e,t,r){return d(e["$[]"](1)["$[]"](0),"anddot")&&this.$diagnostic("error","csend_in_lhs_of_masgn",b,e["$[]"](1)),this.builder.$attr_asgn(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),a(A,"$_reduce_113",(function(e,t,r){return this.builder.$assignable(this.builder.$const_fetch(e["$[]"](0),e["$[]"](1),e["$[]"](2)))})),a(A,"$_reduce_114",(function(e,t,r){return this.builder.$assignable(this.builder.$const_global(e["$[]"](0),e["$[]"](1)))})),a(A,"$_reduce_115",(function(e,t,r){return this.builder.$assignable(e["$[]"](0))})),a(A,"$_reduce_116",(function(e,t,r){return this.builder.$assignable(e["$[]"](0))})),a(A,"$_reduce_117",(function(e,t,r){return this.builder.$assignable(e["$[]"](0))})),a(A,"$_reduce_118",(function(e,t,r){return this.builder.$index_asgn(e["$[]"](0),e["$[]"](1),e["$[]"](2),e["$[]"](3))})),a(A,"$_reduce_119",(function(e,t,r){return this.builder.$attr_asgn(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),a(A,"$_reduce_120",(function(e,t,r){return this.builder.$attr_asgn(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),a(A,"$_reduce_121",(function(e,t,r){return this.builder.$attr_asgn(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),a(A,"$_reduce_122",(function(e,t,r){return this.builder.$assignable(this.builder.$const_fetch(e["$[]"](0),e["$[]"](1),e["$[]"](2)))})),a(A,"$_reduce_123",(function(e,t,r){return this.builder.$assignable(this.builder.$const_global(e["$[]"](0),e["$[]"](1)))})),a(A,"$_reduce_124",(function(e,t,r){return this.builder.$assignable(e["$[]"](0))})),a(A,"$_reduce_125",(function(e,t,r){return this.$diagnostic("error","module_name_const",b,e["$[]"](0)),r})),a(A,"$_reduce_127",(function(e,t,r){return this.builder.$const_global(e["$[]"](0),e["$[]"](1))})),a(A,"$_reduce_128",(function(e,t,r){return this.builder.$const(e["$[]"](0))})),a(A,"$_reduce_129",(function(e,t,r){return this.builder.$const_fetch(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),a(A,"$_reduce_135",(function(e,t,r){return this.builder.$symbol_internal(e["$[]"](0))})),a(A,"$_reduce_137",(function(e,t,r){return[e["$[]"](0)]})),a(A,"$_reduce_138",(function(e,t,r){return this.lexer["$state="]("expr_fname"),r})),a(A,"$_reduce_139",(function(e,t,r){return e["$[]"](0)["$<<"](e["$[]"](3))})),a(A,"$_reduce_211",(function(e,t,r){return this.builder.$assign(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),a(A,"$_reduce_212",(function(e,t,r){return this.builder.$op_assign(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),a(A,"$_reduce_213",(function(e,t,r){return this.builder.$op_assign(this.builder.$index(e["$[]"](0),e["$[]"](1),e["$[]"](2),e["$[]"](3)),e["$[]"](4),e["$[]"](5))})),a(A,"$_reduce_214",(function(e,t,r){return this.builder.$op_assign(this.builder.$call_method(e["$[]"](0),e["$[]"](1),e["$[]"](2)),e["$[]"](3),e["$[]"](4))})),a(A,"$_reduce_215",(function(e,t,r){return this.builder.$op_assign(this.builder.$call_method(e["$[]"](0),e["$[]"](1),e["$[]"](2)),e["$[]"](3),e["$[]"](4))})),a(A,"$_reduce_216",(function(e,t,r){return this.builder.$op_assign(this.builder.$call_method(e["$[]"](0),e["$[]"](1),e["$[]"](2)),e["$[]"](3),e["$[]"](4))})),a(A,"$_reduce_217",(function(e,t,r){var n,a=this;return n=a.builder.$const_op_assignable(a.builder.$const_fetch(e["$[]"](0),e["$[]"](1),e["$[]"](2))),a.builder.$op_assign(n,e["$[]"](3),e["$[]"](4))})),a(A,"$_reduce_218",(function(e,t,r){var n,a=this;return n=a.builder.$const_op_assignable(a.builder.$const_global(e["$[]"](0),e["$[]"](1))),a.builder.$op_assign(n,e["$[]"](2),e["$[]"](3))})),a(A,"$_reduce_219",(function(e,t,r){return this.builder.$op_assign(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),a(A,"$_reduce_220",(function(e,t,r){return this.builder.$range_inclusive(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),a(A,"$_reduce_221",(function(e,t,r){return this.builder.$range_exclusive(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),a(A,"$_reduce_222",(function(e,t,r){return this.builder.$range_inclusive(e["$[]"](0),e["$[]"](1),b)})),a(A,"$_reduce_223",(function(e,t,r){return this.builder.$range_exclusive(e["$[]"](0),e["$[]"](1),b)})),a(A,"$_reduce_224",(function(e,t,r){return this.builder.$range_inclusive(b,e["$[]"](0),e["$[]"](1))})),a(A,"$_reduce_225",(function(e,t,r){return this.builder.$range_exclusive(b,e["$[]"](0),e["$[]"](1))})),a(A,"$_reduce_226",(function(e,t,r){return this.builder.$binary_op(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),a(A,"$_reduce_227",(function(e,t,r){return this.builder.$binary_op(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),a(A,"$_reduce_228",(function(e,t,r){return this.builder.$binary_op(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),a(A,"$_reduce_229",(function(e,t,r){return this.builder.$binary_op(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),a(A,"$_reduce_230",(function(e,t,r){return this.builder.$binary_op(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),a(A,"$_reduce_231",(function(e,t,r){return this.builder.$binary_op(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),a(A,"$_reduce_232",(function(e,t,r){return this.builder.$unary_op(e["$[]"](0),this.builder.$binary_op(e["$[]"](1),e["$[]"](2),e["$[]"](3)))})),a(A,"$_reduce_233",(function(e,t,r){return this.builder.$unary_op(e["$[]"](0),e["$[]"](1))})),a(A,"$_reduce_234",(function(e,t,r){return this.builder.$unary_op(e["$[]"](0),e["$[]"](1))})),a(A,"$_reduce_235",(function(e,t,r){return this.builder.$binary_op(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),a(A,"$_reduce_236",(function(e,t,r){return this.builder.$binary_op(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),a(A,"$_reduce_237",(function(e,t,r){return this.builder.$binary_op(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),a(A,"$_reduce_238",(function(e,t,r){return this.builder.$binary_op(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),a(A,"$_reduce_240",(function(e,t,r){return this.builder.$binary_op(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),a(A,"$_reduce_241",(function(e,t,r){return this.builder.$binary_op(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),a(A,"$_reduce_242",(function(e,t,r){return this.builder.$binary_op(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),a(A,"$_reduce_243",(function(e,t,r){return this.builder.$match_op(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),a(A,"$_reduce_244",(function(e,t,r){return this.builder.$binary_op(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),a(A,"$_reduce_245",(function(e,t,r){return this.builder.$not_op(e["$[]"](0),b,e["$[]"](1),b)})),a(A,"$_reduce_246",(function(e,t,r){return this.builder.$unary_op(e["$[]"](0),e["$[]"](1))})),a(A,"$_reduce_247",(function(e,t,r){return this.builder.$binary_op(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),a(A,"$_reduce_248",(function(e,t,r){return this.builder.$binary_op(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),a(A,"$_reduce_249",(function(e,t,r){return this.builder.$logical_op("and",e["$[]"](0),e["$[]"](1),e["$[]"](2))})),a(A,"$_reduce_250",(function(e,t,r){return this.builder.$logical_op("or",e["$[]"](0),e["$[]"](1),e["$[]"](2))})),a(A,"$_reduce_251",(function(e,t,r){return this.context["$in_defined="](!0),r})),a(A,"$_reduce_252",(function(e,t,r){return this.context["$in_defined="](!1),this.builder.$keyword_cmd("defined?",e["$[]"](0),b,[e["$[]"](3)],b)})),a(A,"$_reduce_253",(function(e,t,r){return this.builder.$ternary(e["$[]"](0),e["$[]"](1),e["$[]"](2),e["$[]"](4),e["$[]"](5))})),a(A,"$_reduce_254",(function(e,t,r){var n,a,s,i,o,l=this,$=b;return a=e["$[]"](0),i=null==(n=m(a))[0]?b:n[0],o=null==(s=m(null==n[1]?b:n[1]))[0]?b:s[0],$=null==s[1]?b:s[1],l.$endless_method_name(o),r=l.builder.$def_endless_method(i,o,e["$[]"](1),e["$[]"](2),e["$[]"](3)),l.$local_pop(),l.current_arg_stack.$pop(),l.context["$in_def="]($.$in_def()),r})),a(A,"$_reduce_255",(function(e,t,r){var n,a,s,i,o,l,$,u=this,c=b;return a=e["$[]"](0),i=null==(n=m(a))[0]?b:n[0],o=null==(s=m(null==n[1]?b:n[1]))[0]?b:s[0],c=null==s[1]?b:s[1],u.$endless_method_name(o),l=u.builder.$rescue_body(e["$[]"](4),b,b,b,b,e["$[]"](5)),$=u.builder.$begin_body(e["$[]"](3),[l]),r=u.builder.$def_endless_method(i,o,e["$[]"](1),e["$[]"](2),$),u.$local_pop(),u.current_arg_stack.$pop(),u.context["$in_def="](c.$in_def()),r})),a(A,"$_reduce_256",(function(e,t,r){var n,a,s,i,o,l,$,u=this,c=b;return a=e["$[]"](0),i=null==(n=m(a))[0]?b:n[0],o=null==n[1]?b:n[1],l=null==n[2]?b:n[2],$=null==(s=m(null==n[3]?b:n[3]))[0]?b:s[0],c=null==s[1]?b:s[1],u.$endless_method_name($),r=u.builder.$def_endless_singleton(i,o,l,$,e["$[]"](1),e["$[]"](2),e["$[]"](3)),u.$local_pop(),u.current_arg_stack.$pop(),u.context["$in_def="](c.$in_def()),r})),a(A,"$_reduce_257",(function(e,t,r){var n,a,s,i,o,l,$,u,c,_=this,p=b;return a=e["$[]"](0),i=null==(n=m(a))[0]?b:n[0],o=null==n[1]?b:n[1],l=null==n[2]?b:n[2],$=null==(s=m(null==n[3]?b:n[3]))[0]?b:s[0],p=null==s[1]?b:s[1],_.$endless_method_name($),u=_.builder.$rescue_body(e["$[]"](4),b,b,b,b,e["$[]"](5)),c=_.builder.$begin_body(e["$[]"](3),[u]),r=_.builder.$def_endless_singleton(i,o,l,$,e["$[]"](1),e["$[]"](2),c),_.$local_pop(),_.current_arg_stack.$pop(),_.context["$in_def="](p.$in_def()),r})),a(A,"$_reduce_263",(function(e,t,r){return this.builder.$binary_op(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),a(A,"$_reduce_264",(function(e,t,r){return this.builder.$binary_op(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),a(A,"$_reduce_268",(function(e,t,r){return e["$[]"](0)["$<<"](this.builder.$associate(b,e["$[]"](2),b))})),a(A,"$_reduce_269",(function(e,t,r){return[this.builder.$associate(b,e["$[]"](0),b)]})),a(A,"$_reduce_271",(function(e,t,r){var n;return n=this.builder.$rescue_body(e["$[]"](1),b,b,b,b,e["$[]"](2)),this.builder.$begin_body(e["$[]"](0),[n])})),a(A,"$_reduce_272",(function(e,t,r){return e})),a(A,"$_reduce_273",(function(e,t,r){var n=this;return s(n.static_env["$declared_forward_args?"]())||n.$diagnostic("error","unexpected_token",new Map([["token","tBDOT3"]]),e["$[]"](3)),[e["$[]"](0),[].concat(p(e["$[]"](1))).concat([n.builder.$forwarded_args(e["$[]"](3))]),e["$[]"](4)]})),a(A,"$_reduce_274",(function(e,t,r){var n=this;return s(n.static_env["$declared_forward_args?"]())||n.$diagnostic("error","unexpected_token",new Map([["token","tBDOT3"]]),e["$[]"](1)),[e["$[]"](0),[n.builder.$forwarded_args(e["$[]"](1))],e["$[]"](2)]})),a(A,"$_reduce_275",(function(e,t,r){return[b,[],b]})),a(A,"$_reduce_277",(function(e,t,r){return[]})),a(A,"$_reduce_280",(function(e,t,r){return e["$[]"](0)["$<<"](this.builder.$associate(b,e["$[]"](2),b))})),a(A,"$_reduce_281",(function(e,t,r){return[this.builder.$associate(b,e["$[]"](0),b)]})),a(A,"$_reduce_282",(function(e,t,r){return[e["$[]"](0)]})),a(A,"$_reduce_283",(function(e,t,r){return e["$[]"](0).$concat(e["$[]"](1))})),a(A,"$_reduce_284",(function(e,t,r){return(r=[this.builder.$associate(b,e["$[]"](0),b)]).$concat(e["$[]"](1)),r})),a(A,"$_reduce_285",(function(e,t,r){var n;return n=this.builder.$associate(b,e["$[]"](2),b),(r=e["$[]"](0)["$<<"](n)).$concat(e["$[]"](3)),r})),a(A,"$_reduce_286",(function(e,t,r){return[e["$[]"](0)]})),a(A,"$_reduce_287",(function(e,t,r){var n,a,i=this,o=b,l=b;return o=i.last_token["$[]"](0),n=s(a=o["$=="]("tLBRACK"))?a:o["$=="]("tLPAREN_ARG"),s(n)?(l=i.lexer.$cmdarg().$pop(),i.lexer.$cmdarg().$push(!0),i.lexer.$cmdarg().$push(l)):i.lexer.$cmdarg().$push(!0),r})),a(A,"$_reduce_288",(function(e,t,r){var n,a=this,i=b;return n=a.last_token["$[]"](0)["$=="]("tLBRACE_ARG"),s(n)?(i=a.lexer.$cmdarg().$pop(),a.lexer.$cmdarg().$pop(),a.lexer.$cmdarg().$push(i)):a.lexer.$cmdarg().$pop(),e["$[]"](1)})),a(A,"$_reduce_289",(function(e,t,r){return this.builder.$block_pass(e["$[]"](0),e["$[]"](1))})),a(A,"$_reduce_290",(function(e,t,r){var n=this;return i(n.static_env["$declared_anonymous_blockarg?"]())&&n.$diagnostic("error","no_anonymous_blockarg",b,e["$[]"](0)),n.builder.$block_pass(e["$[]"](0),b)})),a(A,"$_reduce_291",(function(e,t,r){return[e["$[]"](1)]})),a(A,"$_reduce_292",(function(e,t,r){return[]})),a(A,"$_reduce_293",(function(e,t,r){return[e["$[]"](0)]})),a(A,"$_reduce_294",(function(e,t,r){return[this.builder.$splat(e["$[]"](0),e["$[]"](1))]})),a(A,"$_reduce_295",(function(e,t,r){var n=this;return i(n.static_env["$declared_anonymous_restarg?"]())&&n.$diagnostic("error","no_anonymous_restarg",b,e["$[]"](0)),[n.builder.$forwarded_restarg(e["$[]"](0))]})),a(A,"$_reduce_296",(function(e,t,r){return e["$[]"](0)["$<<"](e["$[]"](2))})),a(A,"$_reduce_297",(function(e,t,r){return e["$[]"](0)["$<<"](this.builder.$splat(e["$[]"](2),e["$[]"](3)))})),a(A,"$_reduce_298",(function(e,t,r){var n=this;return i(n.static_env["$declared_anonymous_restarg?"]())&&n.$diagnostic("error","no_anonymous_restarg",b,e["$[]"](2)),e["$[]"](0)["$<<"](n.builder.$forwarded_restarg(e["$[]"](2)))})),a(A,"$_reduce_299",(function(e,t,r){return this.builder.$array(b,e["$[]"](0),b)})),a(A,"$_reduce_301",(function(e,t,r){return e["$[]"](0)["$<<"](e["$[]"](2))})),a(A,"$_reduce_302",(function(e,t,r){return e["$[]"](0)["$<<"](this.builder.$splat(e["$[]"](2),e["$[]"](3)))})),a(A,"$_reduce_303",(function(e,t,r){return[this.builder.$splat(e["$[]"](0),e["$[]"](1))]})),a(A,"$_reduce_314",(function(e,t,r){return this.builder.$call_method(b,b,e["$[]"](0))})),a(A,"$_reduce_315",(function(e,t,r){return this.lexer.$cmdarg().$push(!1),r})),a(A,"$_reduce_316",(function(e,t,r){return this.lexer.$cmdarg().$pop(),this.builder.$begin_keyword(e["$[]"](0),e["$[]"](2),e["$[]"](3))})),a(A,"$_reduce_317",(function(e,t,r){return this.lexer["$state="]("expr_endarg"),r})),a(A,"$_reduce_318",(function(e,t,r){return this.builder.$begin(e["$[]"](0),e["$[]"](1),e["$[]"](3))})),a(A,"$_reduce_319",(function(e,t,r){return this.lexer["$state="]("expr_endarg"),r})),a(A,"$_reduce_320",(function(e,t,r){return this.builder.$begin(e["$[]"](0),b,e["$[]"](3))})),a(A,"$_reduce_321",(function(e,t,r){return this.builder.$begin(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),a(A,"$_reduce_322",(function(e,t,r){return this.builder.$const_fetch(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),a(A,"$_reduce_323",(function(e,t,r){return this.builder.$const_global(e["$[]"](0),e["$[]"](1))})),a(A,"$_reduce_324",(function(e,t,r){return this.builder.$array(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),a(A,"$_reduce_325",(function(e,t,r){return this.builder.$associate(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),a(A,"$_reduce_326",(function(e,t,r){return this.builder.$keyword_cmd("return",e["$[]"](0))})),a(A,"$_reduce_327",(function(e,t,r){return this.builder.$keyword_cmd("yield",e["$[]"](0),e["$[]"](1),e["$[]"](2),e["$[]"](3))})),a(A,"$_reduce_328",(function(e,t,r){return this.builder.$keyword_cmd("yield",e["$[]"](0),e["$[]"](1),[],e["$[]"](2))})),a(A,"$_reduce_329",(function(e,t,r){return this.builder.$keyword_cmd("yield",e["$[]"](0))})),a(A,"$_reduce_330",(function(e,t,r){return this.context["$in_defined="](!0),r})),a(A,"$_reduce_331",(function(e,t,r){return this.context["$in_defined="](!1),this.builder.$keyword_cmd("defined?",e["$[]"](0),e["$[]"](2),[e["$[]"](4)],e["$[]"](5))})),a(A,"$_reduce_332",(function(e,t,r){return this.builder.$not_op(e["$[]"](0),e["$[]"](1),e["$[]"](2),e["$[]"](3))})),a(A,"$_reduce_333",(function(e,t,r){return this.builder.$not_op(e["$[]"](0),e["$[]"](1),b,e["$[]"](2))})),a(A,"$_reduce_334",(function(e,t,r){var n,a,s,i,o,l,$;return s=this.builder.$call_method(b,b,e["$[]"](0)),a=e["$[]"](1),i=null==(n=m(a))[0]?b:n[0],o=null==n[1]?b:n[1],l=null==n[2]?b:n[2],$=null==n[3]?b:n[3],this.builder.$block(s,i,o,l,$)})),a(A,"$_reduce_336",(function(e,t,r){var n,a,s,i,o,l;return a=e["$[]"](1),s=null==(n=m(a))[0]?b:n[0],i=null==n[1]?b:n[1],o=null==n[2]?b:n[2],l=null==n[3]?b:n[3],this.builder.$block(e["$[]"](0),s,i,o,l)})),a(A,"$_reduce_338",(function(e,t,r){var n,a,s,i;return a=e["$[]"](4),s=null==(n=m(a))[0]?b:n[0],i=null==n[1]?b:n[1],this.builder.$condition(e["$[]"](0),e["$[]"](1),e["$[]"](2),e["$[]"](3),s,i,e["$[]"](5))})),a(A,"$_reduce_339",(function(e,t,r){var n,a,s,i;return a=e["$[]"](4),s=null==(n=m(a))[0]?b:n[0],i=null==n[1]?b:n[1],this.builder.$condition(e["$[]"](0),e["$[]"](1),e["$[]"](2),i,s,e["$[]"](3),e["$[]"](5))})),a(A,"$_reduce_340",(function(e,t,r){return l(this.builder,"loop",["while",e["$[]"](0)].concat(p(e["$[]"](1))).concat([e["$[]"](2),e["$[]"](3)]))})),a(A,"$_reduce_341",(function(e,t,r){return l(this.builder,"loop",["until",e["$[]"](0)].concat(p(e["$[]"](1))).concat([e["$[]"](2),e["$[]"](3)]))})),a(A,"$_reduce_342",(function(e,t,r){var n,a,s,i,o,l;return a=(n=[].concat(p(e["$[]"](3)))).length-1,i=f(n,0,a=a<0?0:a),o=null==(s=m(null==n[a]?b:n[a]))[0]?b:s[0],l=null==s[1]?b:s[1],this.builder.$case(e["$[]"](0),e["$[]"](1),i,o,l,e["$[]"](4))})),a(A,"$_reduce_343",(function(e,t,r){var n,a,s,i,o,l;return a=(n=[].concat(p(e["$[]"](2)))).length-1,i=f(n,0,a=a<0?0:a),o=null==(s=m(null==n[a]?b:n[a]))[0]?b:s[0],l=null==s[1]?b:s[1],this.builder.$case(e["$[]"](0),b,i,o,l,e["$[]"](3))})),a(A,"$_reduce_344",(function(e,t,r){var n,a,s,i,o,l;return a=(n=[].concat(p(e["$[]"](3)))).length-1,i=f(n,0,a=a<0?0:a),o=null==(s=m(null==n[a]?b:n[a]))[0]?b:s[0],l=null==s[1]?b:s[1],this.builder.$case_match(e["$[]"](0),e["$[]"](1),i,o,l,e["$[]"](4))})),a(A,"$_reduce_345",(function(e,t,r){return l(this.builder,"for",[e["$[]"](0),e["$[]"](1),e["$[]"](2)].concat(p(e["$[]"](3))).concat([e["$[]"](4),e["$[]"](5)]))})),a(A,"$_reduce_346",(function(e,t,r){return this.context["$in_class="](!0),this.$local_push(),r})),a(A,"$_reduce_347",(function(e,t,r){var n,a,i,o,l,$=this,u=b;return a=e["$[]"](0),i=null==(n=m(a))[0]?b:n[0],u=null==n[1]?b:n[1],s($.context.$in_def())&&$.$diagnostic("error","class_in_def",b,i),a=e["$[]"](2),o=null==(n=m(a))[0]?b:n[0],l=null==n[1]?b:n[1],r=$.builder.$def_class(i,e["$[]"](1),o,l,e["$[]"](4),e["$[]"](5)),$.$local_pop(),$.context["$in_class="](u.$in_class()),r})),a(A,"$_reduce_348",(function(e,t,r){var n=this;return n.context["$in_def="](!1),n.context["$in_class="](!1),n.$local_push(),r})),a(A,"$_reduce_349",(function(e,t,r){var n,a,s,i=this,o=b;return a=e["$[]"](0),s=null==(n=m(a))[0]?b:n[0],o=null==n[1]?b:n[1],r=i.builder.$def_sclass(s,e["$[]"](1),e["$[]"](2),e["$[]"](5),e["$[]"](6)),i.$local_pop(),i.context["$in_def="](o.$in_def()),i.context["$in_class="](o.$in_class()),r})),a(A,"$_reduce_350",(function(e,t,r){return this.context["$in_class="](!0),this.$local_push(),r})),a(A,"$_reduce_351",(function(e,t,r){var n,a,i,o=this,l=b;return a=e["$[]"](0),i=null==(n=m(a))[0]?b:n[0],l=null==n[1]?b:n[1],s(o.context.$in_def())&&o.$diagnostic("error","module_in_def",b,i),r=o.builder.$def_module(i,e["$[]"](1),e["$[]"](3),e["$[]"](4)),o.$local_pop(),o.context["$in_class="](l.$in_class()),r})),a(A,"$_reduce_352",(function(e,t,r){var n,a,s,i,o,l=this,$=b;return a=e["$[]"](0),i=null==(n=m(a))[0]?b:n[0],o=null==(s=m(null==n[1]?b:n[1]))[0]?b:s[0],$=null==s[1]?b:s[1],r=l.builder.$def_method(i,o,e["$[]"](1),e["$[]"](2),e["$[]"](3)),l.$local_pop(),l.current_arg_stack.$pop(),l.context["$in_def="]($.$in_def()),r})),a(A,"$_reduce_353",(function(e,t,r){var n,a,s,i,o,l,$,u=this,c=b;return a=e["$[]"](0),i=null==(n=m(a))[0]?b:n[0],o=null==n[1]?b:n[1],l=null==n[2]?b:n[2],$=null==(s=m(null==n[3]?b:n[3]))[0]?b:s[0],c=null==s[1]?b:s[1],r=u.builder.$def_singleton(i,o,l,$,e["$[]"](1),e["$[]"](2),e["$[]"](3)),u.$local_pop(),u.current_arg_stack.$pop(),u.context["$in_def="](c.$in_def()),r})),a(A,"$_reduce_354",(function(e,t,r){return this.builder.$keyword_cmd("break",e["$[]"](0))})),a(A,"$_reduce_355",(function(e,t,r){return this.builder.$keyword_cmd("next",e["$[]"](0))})),a(A,"$_reduce_356",(function(e,t,r){return this.builder.$keyword_cmd("redo",e["$[]"](0))})),a(A,"$_reduce_357",(function(e,t,r){return this.builder.$keyword_cmd("retry",e["$[]"](0))})),a(A,"$_reduce_359",(function(e,t,r){return[e["$[]"](0),this.context.$dup()]})),a(A,"$_reduce_360",(function(e,t,r){return[e["$[]"](0),this.context.$dup()]})),a(A,"$_reduce_361",(function(e,t,r){return r=e["$[]"](0),this.context["$in_argdef="](!0),r})),a(A,"$_reduce_362",(function(e,t,r){var n=this,a=b;return s(n.context.$in_class())&&i(n.context.$in_def())&&i(s(a=n.$context().$in_block())?a:n.$context().$in_lambda())&&n.$diagnostic("error","invalid_return",b,e["$[]"](0)),r})),a(A,"$_reduce_365",(function(e,t,r){return e["$[]"](1)})),a(A,"$_reduce_369",(function(e,t,r){var n,a,s,i;return a=e["$[]"](4),s=null==(n=m(a))[0]?b:n[0],i=null==n[1]?b:n[1],[e["$[]"](0),this.builder.$condition(e["$[]"](0),e["$[]"](1),e["$[]"](2),e["$[]"](3),s,i,b)]})),a(A,"$_reduce_371",(function(e,t,r){return e})),a(A,"$_reduce_374",(function(e,t,r){return this.builder.$arg(e["$[]"](0))})),a(A,"$_reduce_375",(function(e,t,r){return this.builder.$multi_lhs(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),a(A,"$_reduce_376",(function(e,t,r){return[e["$[]"](0)]})),a(A,"$_reduce_377",(function(e,t,r){return e["$[]"](0)["$<<"](e["$[]"](2))})),a(A,"$_reduce_379",(function(e,t,r){return e["$[]"](0).$push(e["$[]"](2))})),a(A,"$_reduce_380",(function(e,t,r){return e["$[]"](0).$push(e["$[]"](2)).$concat(e["$[]"](4))})),a(A,"$_reduce_381",(function(e,t,r){return[e["$[]"](0)]})),a(A,"$_reduce_382",(function(e,t,r){return[e["$[]"](0)].concat(p(e["$[]"](2)))})),a(A,"$_reduce_383",(function(e,t,r){return this.builder.$restarg(e["$[]"](0),e["$[]"](1))})),a(A,"$_reduce_384",(function(e,t,r){return this.builder.$restarg(e["$[]"](0))})),a(A,"$_reduce_387",(function(e,t,r){return this.context["$in_argdef="](!1),r})),a(A,"$_reduce_388",(function(e,t,r){return e["$[]"](1)})),a(A,"$_reduce_389",(function(e,t,r){return e["$[]"](0).$concat(e["$[]"](2)).$concat(e["$[]"](3))})),a(A,"$_reduce_390",(function(e,t,r){return e["$[]"](0).$concat(e["$[]"](1))})),a(A,"$_reduce_391",(function(e,t,r){return e["$[]"](0).$concat(e["$[]"](1))})),a(A,"$_reduce_392",(function(e,t,r){return[e["$[]"](0)]})),a(A,"$_reduce_393",(function(e,t,r){return e["$[]"](1)})),a(A,"$_reduce_394",(function(e,t,r){return[]})),a(A,"$_reduce_396",(function(e,t,r){return e["$[]"](0).$concat(e["$[]"](2)).$concat(e["$[]"](4)).$concat(e["$[]"](5))})),a(A,"$_reduce_397",(function(e,t,r){return e["$[]"](0).$concat(e["$[]"](2)).$concat(e["$[]"](4)).$concat(e["$[]"](6)).$concat(e["$[]"](7))})),a(A,"$_reduce_398",(function(e,t,r){return e["$[]"](0).$concat(e["$[]"](2)).$concat(e["$[]"](3))})),a(A,"$_reduce_399",(function(e,t,r){return e["$[]"](0).$concat(e["$[]"](2)).$concat(e["$[]"](4)).$concat(e["$[]"](5))})),a(A,"$_reduce_400",(function(e,t,r){return e["$[]"](0).$concat(e["$[]"](2)).$concat(e["$[]"](3))})),a(A,"$_reduce_402",(function(e,t,r){return e["$[]"](0).$concat(e["$[]"](2)).$concat(e["$[]"](4)).$concat(e["$[]"](5))})),a(A,"$_reduce_403",(function(e,t,r){return s(e["$[]"](1)["$empty?"]())&&d(e["$[]"](0).$size(),1)?[this.builder.$procarg0(e["$[]"](0)["$[]"](0))]:e["$[]"](0).$concat(e["$[]"](1))})),a(A,"$_reduce_404",(function(e,t,r){return e["$[]"](0).$concat(e["$[]"](2)).$concat(e["$[]"](3))})),a(A,"$_reduce_405",(function(e,t,r){return e["$[]"](0).$concat(e["$[]"](2)).$concat(e["$[]"](4)).$concat(e["$[]"](5))})),a(A,"$_reduce_406",(function(e,t,r){return e["$[]"](0).$concat(e["$[]"](1))})),a(A,"$_reduce_407",(function(e,t,r){return e["$[]"](0).$concat(e["$[]"](2)).$concat(e["$[]"](3))})),a(A,"$_reduce_408",(function(e,t,r){return e["$[]"](0).$concat(e["$[]"](1))})),a(A,"$_reduce_409",(function(e,t,r){return e["$[]"](0).$concat(e["$[]"](2)).$concat(e["$[]"](3))})),a(A,"$_reduce_411",(function(e,t,r){return this.builder.$args(b,[],b)})),a(A,"$_reduce_412",(function(e,t,r){return this.lexer["$state="]("expr_value"),r})),a(A,"$_reduce_413",(function(e,t,r){var n=this;return n.max_numparam_stack["$has_ordinary_params!"](),n.current_arg_stack.$set(b),n.context["$in_argdef="](!1),n.builder.$args(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),a(A,"$_reduce_414",(function(e,t,r){var n=this;return n.max_numparam_stack["$has_ordinary_params!"](),n.current_arg_stack.$set(b),n.context["$in_argdef="](!1),n.builder.$args(e["$[]"](0),e["$[]"](1).$concat(e["$[]"](2)),e["$[]"](3))})),a(A,"$_reduce_415",(function(e,t,r){return[]})),a(A,"$_reduce_416",(function(e,t,r){return e["$[]"](2)})),a(A,"$_reduce_417",(function(e,t,r){return[e["$[]"](0)]})),a(A,"$_reduce_418",(function(e,t,r){return e["$[]"](0)["$<<"](e["$[]"](2))})),a(A,"$_reduce_419",(function(e,t,r){return this.static_env.$declare(e["$[]"](0)["$[]"](0)),this.builder.$shadowarg(e["$[]"](0))})),a(A,"$_reduce_421",(function(e,t,r){var n=this;return n.static_env.$extend_dynamic(),n.max_numparam_stack.$push(new Map([["static",!1]])),r=n.context.$dup(),n.context["$in_lambda="](!0),r})),a(A,"$_reduce_422",(function(e,t,r){return this.lexer.$cmdarg().$push(!1),r})),a(A,"$_reduce_423",(function(e,t,r){var n,a,i,o,l,$,u,c=this;return i=c.builder.$call_lambda(e["$[]"](0)),o=s(c.max_numparam_stack["$has_numparams?"]())?c.builder.$numargs(c.max_numparam_stack.$top()):e["$[]"](2),a=e["$[]"](4),l=null==(n=m(a))[0]?b:n[0],$=null==n[1]?b:n[1],u=null==n[2]?b:n[2],c.max_numparam_stack.$pop(),c.static_env.$unextend(),c.lexer.$cmdarg().$pop(),c.context["$in_lambda="](e["$[]"](1).$in_lambda()),c.builder.$block(i,l,o,$,u)})),a(A,"$_reduce_424",(function(e,t,r){var n=this;return n.context["$in_argdef="](!1),n.max_numparam_stack["$has_ordinary_params!"](),n.builder.$args(e["$[]"](0),e["$[]"](1).$concat(e["$[]"](2)),e["$[]"](3))})),a(A,"$_reduce_425",(function(e,t,r){var n=this;return n.context["$in_argdef="](!1),s(e["$[]"](0)["$any?"]())&&n.max_numparam_stack["$has_ordinary_params!"](),n.builder.$args(b,e["$[]"](0),b)})),a(A,"$_reduce_426",(function(e,t,r){return r=this.context.$dup(),this.context["$in_lambda="](!0),r})),a(A,"$_reduce_427",(function(e,t,r){return this.context["$in_lambda="](e["$[]"](1).$in_lambda()),[e["$[]"](0),e["$[]"](2),e["$[]"](3)]})),a(A,"$_reduce_428",(function(e,t,r){return r=this.context.$dup(),this.context["$in_lambda="](!0),r})),a(A,"$_reduce_429",(function(e,t,r){return this.context["$in_lambda="](e["$[]"](1).$in_lambda()),[e["$[]"](0),e["$[]"](2),e["$[]"](3)]})),a(A,"$_reduce_430",(function(e,t,r){return r=this.context.$dup(),this.context["$in_block="](!0),r})),a(A,"$_reduce_431",(function(e,t,r){return this.context["$in_block="](e["$[]"](1).$in_block()),[e["$[]"](0)].concat(p(e["$[]"](2))).concat([e["$[]"](3)])})),a(A,"$_reduce_432",(function(e,t,r){var n,a,s,i,o,l;return a=e["$[]"](1),s=null==(n=m(a))[0]?b:n[0],i=null==n[1]?b:n[1],o=null==n[2]?b:n[2],l=null==n[3]?b:n[3],this.builder.$block(e["$[]"](0),s,i,o,l)})),a(A,"$_reduce_433",(function(e,t,r){var n,a,s,i,o;return a=e["$[]"](3),s=null==(n=m(a))[0]?b:n[0],i=null==n[1]?b:n[1],o=null==n[2]?b:n[2],this.builder.$call_method(e["$[]"](0),e["$[]"](1),e["$[]"](2),s,i,o)})),a(A,"$_reduce_434",(function(e,t,r){var n,a,s,i,o,l,$,u,c=b;return a=e["$[]"](3),s=null==(n=m(a))[0]?b:n[0],c=null==n[1]?b:n[1],i=null==n[2]?b:n[2],o=this.builder.$call_method(e["$[]"](0),e["$[]"](1),e["$[]"](2),s,c,i),a=e["$[]"](4),l=null==(n=m(a))[0]?b:n[0],c=null==n[1]?b:n[1],$=null==n[2]?b:n[2],u=null==n[3]?b:n[3],this.builder.$block(o,l,c,$,u)})),a(A,"$_reduce_435",(function(e,t,r){var n,a,s,i,o,l,$;return s=this.builder.$call_method(e["$[]"](0),e["$[]"](1),e["$[]"](2),b,e["$[]"](3),b),a=e["$[]"](4),i=null==(n=m(a))[0]?b:n[0],o=null==n[1]?b:n[1],l=null==n[2]?b:n[2],$=null==n[3]?b:n[3],this.builder.$block(s,i,o,l,$)})),a(A,"$_reduce_436",(function(e,t,r){var n,a,s,i,o;return a=e["$[]"](1),s=null==(n=m(a))[0]?b:n[0],i=null==n[1]?b:n[1],o=null==n[2]?b:n[2],this.builder.$call_method(b,b,e["$[]"](0),s,i,o)})),a(A,"$_reduce_437",(function(e,t,r){var n,a,s,i,o;return a=e["$[]"](3),s=null==(n=m(a))[0]?b:n[0],i=null==n[1]?b:n[1],o=null==n[2]?b:n[2],this.builder.$call_method(e["$[]"](0),e["$[]"](1),e["$[]"](2),s,i,o)})),a(A,"$_reduce_438",(function(e,t,r){var n,a,s,i,o;return a=e["$[]"](3),s=null==(n=m(a))[0]?b:n[0],i=null==n[1]?b:n[1],o=null==n[2]?b:n[2],this.builder.$call_method(e["$[]"](0),e["$[]"](1),e["$[]"](2),s,i,o)})),a(A,"$_reduce_439",(function(e,t,r){return this.builder.$call_method(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),a(A,"$_reduce_440",(function(e,t,r){var n,a,s,i,o;return a=e["$[]"](2),s=null==(n=m(a))[0]?b:n[0],i=null==n[1]?b:n[1],o=null==n[2]?b:n[2],this.builder.$call_method(e["$[]"](0),e["$[]"](1),b,s,i,o)})),a(A,"$_reduce_441",(function(e,t,r){var n,a,s,i,o;return a=e["$[]"](2),s=null==(n=m(a))[0]?b:n[0],i=null==n[1]?b:n[1],o=null==n[2]?b:n[2],this.builder.$call_method(e["$[]"](0),e["$[]"](1),b,s,i,o)})),a(A,"$_reduce_442",(function(e,t,r){var n,a,s,i,o;return a=e["$[]"](1),s=null==(n=m(a))[0]?b:n[0],i=null==n[1]?b:n[1],o=null==n[2]?b:n[2],this.builder.$keyword_cmd("super",e["$[]"](0),s,i,o)})),a(A,"$_reduce_443",(function(e,t,r){return this.builder.$keyword_cmd("zsuper",e["$[]"](0))})),a(A,"$_reduce_444",(function(e,t,r){return this.builder.$index(e["$[]"](0),e["$[]"](1),e["$[]"](2),e["$[]"](3))})),a(A,"$_reduce_445",(function(e,t,r){return r=this.context.$dup(),this.context["$in_block="](!0),r})),a(A,"$_reduce_446",(function(e,t,r){return this.context["$in_block="](e["$[]"](1).$in_block()),[e["$[]"](0)].concat(p(e["$[]"](2))).concat([e["$[]"](3)])})),a(A,"$_reduce_447",(function(e,t,r){return r=this.context.$dup(),this.context["$in_block="](!0),r})),a(A,"$_reduce_448",(function(e,t,r){return this.context["$in_block="](e["$[]"](1).$in_block()),[e["$[]"](0)].concat(p(e["$[]"](2))).concat([e["$[]"](3)])})),a(A,"$_reduce_449",(function(e,t,r){return this.static_env.$extend_dynamic(),this.max_numparam_stack.$push(new Map([["static",!1]])),r})),a(A,"$_reduce_450",(function(e,t,r){var n=this;return r=[s(n.max_numparam_stack["$has_numparams?"]())?n.builder.$numargs(n.max_numparam_stack.$top()):e["$[]"](1),e["$[]"](2)],n.max_numparam_stack.$pop(),n.static_env.$unextend(),r})),a(A,"$_reduce_451",(function(e,t,r){return this.static_env.$extend_dynamic(),this.max_numparam_stack.$push(new Map([["static",!1]])),r})),a(A,"$_reduce_452",(function(e,t,r){return this.lexer.$cmdarg().$push(!1),r})),a(A,"$_reduce_453",(function(e,t,r){var n=this;return r=[s(n.max_numparam_stack["$has_numparams?"]())?n.builder.$numargs(n.max_numparam_stack.$top()):e["$[]"](2),e["$[]"](3)],n.max_numparam_stack.$pop(),n.static_env.$unextend(),n.lexer.$cmdarg().$pop(),r})),a(A,"$_reduce_454",(function(e,t,r){return[this.builder.$when(e["$[]"](0),e["$[]"](1),e["$[]"](2),e["$[]"](3))].concat(p(e["$[]"](4)))})),a(A,"$_reduce_455",(function(e,t,r){return[e["$[]"](0)]})),a(A,"$_reduce_457",(function(e,t,r){var n=this;return n.lexer["$state="]("expr_beg"),n.lexer["$command_start="](!1),n.pattern_variables.$push(),n.pattern_hash_keys.$push(),r=n.context.$in_kwarg(),n.context["$in_kwarg="](!0),r})),a(A,"$_reduce_458",(function(e,t,r){var n=this;return n.pattern_variables.$pop(),n.pattern_hash_keys.$pop(),n.context["$in_kwarg="](e["$[]"](1)),r})),a(A,"$_reduce_459",(function(e,t,r){return[l(this.builder,"in_pattern",[e["$[]"](0)].concat(p(e["$[]"](2))).concat([e["$[]"](3),e["$[]"](5)]))].concat(p(e["$[]"](6)))})),a(A,"$_reduce_460",(function(e,t,r){return[e["$[]"](0)]})),a(A,"$_reduce_462",(function(e,t,r){return[e["$[]"](0),b]})),a(A,"$_reduce_463",(function(e,t,r){return[e["$[]"](0),this.builder.$if_guard(e["$[]"](1),e["$[]"](2))]})),a(A,"$_reduce_464",(function(e,t,r){return[e["$[]"](0),this.builder.$unless_guard(e["$[]"](1),e["$[]"](2))]})),a(A,"$_reduce_466",(function(e,t,r){var n;return n=this.builder.$match_with_trailing_comma(e["$[]"](0),e["$[]"](1)),this.builder.$array_pattern(b,[n],b)})),a(A,"$_reduce_467",(function(e,t,r){return this.builder.$array_pattern(b,[e["$[]"](0)].$concat(e["$[]"](2)),b)})),a(A,"$_reduce_468",(function(e,t,r){return this.builder.$find_pattern(b,e["$[]"](0),b)})),a(A,"$_reduce_469",(function(e,t,r){return this.builder.$array_pattern(b,e["$[]"](0),b)})),a(A,"$_reduce_470",(function(e,t,r){return this.builder.$hash_pattern(b,e["$[]"](0),b)})),a(A,"$_reduce_472",(function(e,t,r){return this.builder.$match_as(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),a(A,"$_reduce_474",(function(e,t,r){return this.builder.$match_alt(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),a(A,"$_reduce_476",(function(e,t,r){return r=e["$[]"](0),this.pattern_hash_keys.$push(),r})),a(A,"$_reduce_477",(function(e,t,r){return r=e["$[]"](0),this.pattern_hash_keys.$push(),r})),a(A,"$_reduce_480",(function(e,t,r){var n,a=this;return a.pattern_hash_keys.$pop(),n=a.builder.$array_pattern(b,e["$[]"](2),b),a.builder.$const_pattern(e["$[]"](0),e["$[]"](1),n,e["$[]"](3))})),a(A,"$_reduce_481",(function(e,t,r){var n,a=this;return a.pattern_hash_keys.$pop(),n=a.builder.$find_pattern(b,e["$[]"](2),b),a.builder.$const_pattern(e["$[]"](0),e["$[]"](1),n,e["$[]"](3))})),a(A,"$_reduce_482",(function(e,t,r){var n,a=this;return a.pattern_hash_keys.$pop(),n=a.builder.$hash_pattern(b,e["$[]"](2),b),a.builder.$const_pattern(e["$[]"](0),e["$[]"](1),n,e["$[]"](3))})),a(A,"$_reduce_483",(function(e,t,r){var n;return n=this.builder.$array_pattern(e["$[]"](1),b,e["$[]"](2)),this.builder.$const_pattern(e["$[]"](0),e["$[]"](1),n,e["$[]"](2))})),a(A,"$_reduce_484",(function(e,t,r){var n,a=this;return a.pattern_hash_keys.$pop(),n=a.builder.$array_pattern(b,e["$[]"](2),b),a.builder.$const_pattern(e["$[]"](0),e["$[]"](1),n,e["$[]"](3))})),a(A,"$_reduce_485",(function(e,t,r){var n,a=this;return a.pattern_hash_keys.$pop(),n=a.builder.$find_pattern(b,e["$[]"](2),b),a.builder.$const_pattern(e["$[]"](0),e["$[]"](1),n,e["$[]"](3))})),a(A,"$_reduce_486",(function(e,t,r){var n,a=this;return a.pattern_hash_keys.$pop(),n=a.builder.$hash_pattern(b,e["$[]"](2),b),a.builder.$const_pattern(e["$[]"](0),e["$[]"](1),n,e["$[]"](3))})),a(A,"$_reduce_487",(function(e,t,r){var n;return n=this.builder.$array_pattern(e["$[]"](1),b,e["$[]"](2)),this.builder.$const_pattern(e["$[]"](0),e["$[]"](1),n,e["$[]"](2))})),a(A,"$_reduce_488",(function(e,t,r){return this.builder.$array_pattern(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),a(A,"$_reduce_489",(function(e,t,r){return this.builder.$find_pattern(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),a(A,"$_reduce_490",(function(e,t,r){return this.builder.$array_pattern(e["$[]"](0),[],e["$[]"](1))})),a(A,"$_reduce_491",(function(e,t,r){var n=this;return n.pattern_hash_keys.$push(),r=n.context.$in_kwarg(),n.context["$in_kwarg="](!1),r})),a(A,"$_reduce_492",(function(e,t,r){var n=this;return n.pattern_hash_keys.$pop(),n.context["$in_kwarg="](e["$[]"](1)),n.builder.$hash_pattern(e["$[]"](0),e["$[]"](2),e["$[]"](3))})),a(A,"$_reduce_493",(function(e,t,r){return this.builder.$hash_pattern(e["$[]"](0),[],e["$[]"](1))})),a(A,"$_reduce_494",(function(e,t,r){return this.pattern_hash_keys.$push(),r})),a(A,"$_reduce_495",(function(e,t,r){return this.pattern_hash_keys.$pop(),this.builder.$begin(e["$[]"](0),e["$[]"](2),e["$[]"](3))})),a(A,"$_reduce_496",(function(e,t,r){return[e["$[]"](0)]})),a(A,"$_reduce_497",(function(e,t,r){return e["$[]"](0)})),a(A,"$_reduce_498",(function(e,t,r){return[].concat(p(e["$[]"](0))).concat([e["$[]"](1)])})),a(A,"$_reduce_499",(function(e,t,r){return[].concat(p(e["$[]"](0))).concat([e["$[]"](1)])})),a(A,"$_reduce_500",(function(e,t,r){return[].concat(p(e["$[]"](0))).concat([e["$[]"](1)]).concat(p(e["$[]"](3)))})),a(A,"$_reduce_502",(function(e,t,r){return[this.builder.$match_with_trailing_comma(e["$[]"](0),e["$[]"](1))]})),a(A,"$_reduce_503",(function(e,t,r){var n;return n=this.builder.$match_with_trailing_comma(e["$[]"](1),e["$[]"](2)),[].concat(p(e["$[]"](0))).concat([n])})),a(A,"$_reduce_504",(function(e,t,r){return[e["$[]"](0)]})),a(A,"$_reduce_505",(function(e,t,r){return[e["$[]"](0)].concat(p(e["$[]"](2)))})),a(A,"$_reduce_506",(function(e,t,r){return[e["$[]"](0)].concat(p(e["$[]"](2))).concat([e["$[]"](4)])})),a(A,"$_reduce_507",(function(e,t,r){return this.builder.$match_rest(e["$[]"](0),e["$[]"](1))})),a(A,"$_reduce_508",(function(e,t,r){return this.builder.$match_rest(e["$[]"](0))})),a(A,"$_reduce_509",(function(e,t,r){return[e["$[]"](0)]})),a(A,"$_reduce_510",(function(e,t,r){return[].concat(p(e["$[]"](0))).concat([e["$[]"](2)])})),a(A,"$_reduce_512",(function(e,t,r){return[].concat(p(e["$[]"](0))).concat(p(e["$[]"](2)))})),a(A,"$_reduce_513",(function(e,t,r){return e["$[]"](0)})),a(A,"$_reduce_514",(function(e,t,r){return e["$[]"](0)})),a(A,"$_reduce_515",(function(e,t,r){return e["$[]"](0)})),a(A,"$_reduce_516",(function(e,t,r){return[e["$[]"](0)]})),a(A,"$_reduce_517",(function(e,t,r){return[].concat(p(e["$[]"](0))).concat([e["$[]"](2)])})),a(A,"$_reduce_518",(function(e,t,r){return l(this.builder,"match_pair",p(e["$[]"](0)).concat([e["$[]"](1)]))})),a(A,"$_reduce_519",(function(e,t,r){return l(this.builder,"match_label",p(e["$[]"](0)))})),a(A,"$_reduce_520",(function(e,t,r){return["label",e["$[]"](0)]})),a(A,"$_reduce_521",(function(e,t,r){return["quoted",[e["$[]"](0),e["$[]"](1),e["$[]"](2)]]})),a(A,"$_reduce_522",(function(e,t,r){return[this.builder.$match_rest(e["$[]"](0),e["$[]"](1))]})),a(A,"$_reduce_523",(function(e,t,r){return[this.builder.$match_rest(e["$[]"](0),b)]})),a(A,"$_reduce_524",(function(e,t,r){return e})),a(A,"$_reduce_526",(function(e,t,r){return[this.builder.$match_nil_pattern(e["$[]"](0)["$[]"](0),e["$[]"](0)["$[]"](1))]})),a(A,"$_reduce_528",(function(e,t,r){return this.builder.$range_inclusive(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),a(A,"$_reduce_529",(function(e,t,r){return this.builder.$range_exclusive(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),a(A,"$_reduce_530",(function(e,t,r){return this.builder.$range_inclusive(e["$[]"](0),e["$[]"](1),b)})),a(A,"$_reduce_531",(function(e,t,r){return this.builder.$range_exclusive(e["$[]"](0),e["$[]"](1),b)})),a(A,"$_reduce_535",(function(e,t,r){return this.builder.$range_inclusive(b,e["$[]"](0),e["$[]"](1))})),a(A,"$_reduce_536",(function(e,t,r){return this.builder.$range_exclusive(b,e["$[]"](0),e["$[]"](1))})),a(A,"$_reduce_545",(function(e,t,r){return this.builder.$accessible(e["$[]"](0))})),a(A,"$_reduce_547",(function(e,t,r){return this.builder.$assignable(this.builder.$match_var(e["$[]"](0)))})),a(A,"$_reduce_548",(function(e,t,r){var n,a,i=this;return n=e["$[]"](1)["$[]"](0),s(i.$static_env()["$declared?"](n))||i.$diagnostic("error","undefined_lvar",new Map([["name",n]]),e["$[]"](1)),a=i.builder.$accessible(i.builder.$ident(e["$[]"](1))),i.builder.$pin(e["$[]"](0),a)})),a(A,"$_reduce_549",(function(e,t,r){var n;return n=this.builder.$accessible(e["$[]"](1)),this.builder.$pin(e["$[]"](0),n)})),a(A,"$_reduce_550",(function(e,t,r){var n;return n=this.builder.$begin(e["$[]"](1),e["$[]"](2),e["$[]"](3)),this.builder.$pin(e["$[]"](0),n)})),a(A,"$_reduce_551",(function(e,t,r){return this.builder.$const_global(e["$[]"](0),e["$[]"](1))})),a(A,"$_reduce_552",(function(e,t,r){return this.builder.$const_fetch(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),a(A,"$_reduce_553",(function(e,t,r){return this.builder.$const(e["$[]"](0))})),a(A,"$_reduce_554",(function(e,t,r){var n,a,i,o,l=b;return a=e["$[]"](2),i=null==(n=m(a))[0]?b:n[0],o=null==n[1]?b:n[1],s(e["$[]"](1))&&(l=this.builder.$array(b,e["$[]"](1),b)),[this.builder.$rescue_body(e["$[]"](0),l,i,o,e["$[]"](3),e["$[]"](4))].concat(p(e["$[]"](5)))})),a(A,"$_reduce_555",(function(e,t,r){return[]})),a(A,"$_reduce_556",(function(e,t,r){return[e["$[]"](0)]})),a(A,"$_reduce_559",(function(e,t,r){return[e["$[]"](0),e["$[]"](1)]})),a(A,"$_reduce_561",(function(e,t,r){return[e["$[]"](0),e["$[]"](1)]})),a(A,"$_reduce_565",(function(e,t,r){return this.builder.$string_compose(b,e["$[]"](0),b)})),a(A,"$_reduce_566",(function(e,t,r){return[e["$[]"](0)]})),a(A,"$_reduce_567",(function(e,t,r){return e["$[]"](0)["$<<"](e["$[]"](1))})),a(A,"$_reduce_568",(function(e,t,r){var n,a=this;return n=a.builder.$string_compose(e["$[]"](0),e["$[]"](1),e["$[]"](2)),a.builder.$dedent_string(n,a.lexer.$dedent_level())})),a(A,"$_reduce_569",(function(e,t,r){var n,a=this;return n=a.builder.$string(e["$[]"](0)),a.builder.$dedent_string(n,a.lexer.$dedent_level())})),a(A,"$_reduce_570",(function(e,t,r){return this.builder.$character(e["$[]"](0))})),a(A,"$_reduce_571",(function(e,t,r){var n,a=this;return n=a.builder.$xstring_compose(e["$[]"](0),e["$[]"](1),e["$[]"](2)),a.builder.$dedent_string(n,a.lexer.$dedent_level())})),a(A,"$_reduce_572",(function(e,t,r){var n;return n=this.builder.$regexp_options(e["$[]"](3)),this.builder.$regexp_compose(e["$[]"](0),e["$[]"](1),e["$[]"](2),n)})),a(A,"$_reduce_573",(function(e,t,r){return this.builder.$words_compose(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),a(A,"$_reduce_574",(function(e,t,r){return[]})),a(A,"$_reduce_575",(function(e,t,r){return e["$[]"](0)["$<<"](this.builder.$word(e["$[]"](1)))})),a(A,"$_reduce_576",(function(e,t,r){return[e["$[]"](0)]})),a(A,"$_reduce_577",(function(e,t,r){return e["$[]"](0)["$<<"](e["$[]"](1))})),a(A,"$_reduce_578",(function(e,t,r){return this.builder.$symbols_compose(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),a(A,"$_reduce_579",(function(e,t,r){return[]})),a(A,"$_reduce_580",(function(e,t,r){return e["$[]"](0)["$<<"](this.builder.$word(e["$[]"](1)))})),a(A,"$_reduce_581",(function(e,t,r){return this.builder.$words_compose(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),a(A,"$_reduce_582",(function(e,t,r){return this.builder.$symbols_compose(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),a(A,"$_reduce_583",(function(e,t,r){return[]})),a(A,"$_reduce_584",(function(e,t,r){return e["$[]"](0)["$<<"](this.builder.$string_internal(e["$[]"](1)))})),a(A,"$_reduce_585",(function(e,t,r){return[]})),a(A,"$_reduce_586",(function(e,t,r){return e["$[]"](0)["$<<"](this.builder.$symbol_internal(e["$[]"](1)))})),a(A,"$_reduce_587",(function(e,t,r){return[]})),a(A,"$_reduce_588",(function(e,t,r){return e["$[]"](0)["$<<"](e["$[]"](1))})),a(A,"$_reduce_589",(function(e,t,r){return[]})),a(A,"$_reduce_590",(function(e,t,r){return e["$[]"](0)["$<<"](e["$[]"](1))})),a(A,"$_reduce_591",(function(e,t,r){return[]})),a(A,"$_reduce_592",(function(e,t,r){return e["$[]"](0)["$<<"](e["$[]"](1))})),a(A,"$_reduce_593",(function(e,t,r){return this.builder.$string_internal(e["$[]"](0))})),a(A,"$_reduce_594",(function(e,t,r){return e["$[]"](1)})),a(A,"$_reduce_595",(function(e,t,r){return this.lexer.$cmdarg().$push(!1),this.lexer.$cond().$push(!1),r})),a(A,"$_reduce_596",(function(e,t,r){var n=this;return n.lexer.$cmdarg().$pop(),n.lexer.$cond().$pop(),n.builder.$begin(e["$[]"](0),e["$[]"](2),e["$[]"](3))})),a(A,"$_reduce_597",(function(e,t,r){return this.builder.$gvar(e["$[]"](0))})),a(A,"$_reduce_598",(function(e,t,r){return this.builder.$ivar(e["$[]"](0))})),a(A,"$_reduce_599",(function(e,t,r){return this.builder.$cvar(e["$[]"](0))})),a(A,"$_reduce_603",(function(e,t,r){return this.lexer["$state="]("expr_end"),this.builder.$symbol(e["$[]"](0))})),a(A,"$_reduce_604",(function(e,t,r){return this.lexer["$state="]("expr_end"),this.builder.$symbol_compose(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),a(A,"$_reduce_605",(function(e,t,r){return e["$[]"](0)})),a(A,"$_reduce_606",(function(e,t,r){var n=this;return s(n.builder["$respond_to?"]("negate"))?n.builder.$negate(e["$[]"](0),e["$[]"](1)):n.builder.$unary_num(e["$[]"](0),e["$[]"](1))})),a(A,"$_reduce_607",(function(e,t,r){return this.lexer["$state="]("expr_end"),this.builder.$integer(e["$[]"](0))})),a(A,"$_reduce_608",(function(e,t,r){return this.lexer["$state="]("expr_end"),this.builder.$float(e["$[]"](0))})),a(A,"$_reduce_609",(function(e,t,r){return this.lexer["$state="]("expr_end"),this.builder.$rational(e["$[]"](0))})),a(A,"$_reduce_610",(function(e,t,r){return this.lexer["$state="]("expr_end"),this.builder.$complex(e["$[]"](0))})),a(A,"$_reduce_611",(function(e,t,r){return this.builder.$ivar(e["$[]"](0))})),a(A,"$_reduce_612",(function(e,t,r){return this.builder.$gvar(e["$[]"](0))})),a(A,"$_reduce_613",(function(e,t,r){return this.builder.$cvar(e["$[]"](0))})),a(A,"$_reduce_614",(function(e,t,r){return this.builder.$ident(e["$[]"](0))})),a(A,"$_reduce_615",(function(e,t,r){return this.builder.$const(e["$[]"](0))})),a(A,"$_reduce_617",(function(e,t,r){return this.builder.$nil(e["$[]"](0))})),a(A,"$_reduce_618",(function(e,t,r){return this.builder.$self(e["$[]"](0))})),a(A,"$_reduce_619",(function(e,t,r){return this.builder.$true(e["$[]"](0))})),a(A,"$_reduce_620",(function(e,t,r){return this.builder.$false(e["$[]"](0))})),a(A,"$_reduce_621",(function(e,t,r){return this.builder.$__FILE__(e["$[]"](0))})),a(A,"$_reduce_622",(function(e,t,r){return this.builder.$__LINE__(e["$[]"](0))})),a(A,"$_reduce_623",(function(e,t,r){return this.builder.$__ENCODING__(e["$[]"](0))})),a(A,"$_reduce_624",(function(e,t,r){return this.builder.$accessible(e["$[]"](0))})),a(A,"$_reduce_625",(function(e,t,r){return this.builder.$accessible(e["$[]"](0))})),a(A,"$_reduce_626",(function(e,t,r){return this.builder.$assignable(e["$[]"](0))})),a(A,"$_reduce_627",(function(e,t,r){return this.builder.$assignable(e["$[]"](0))})),a(A,"$_reduce_628",(function(e,t,r){return this.builder.$nth_ref(e["$[]"](0))})),a(A,"$_reduce_629",(function(e,t,r){return this.builder.$back_ref(e["$[]"](0))})),a(A,"$_reduce_630",(function(e,t,r){return this.lexer["$state="]("expr_value"),r})),a(A,"$_reduce_631",(function(e,t,r){return[e["$[]"](0),e["$[]"](2)]})),a(A,"$_reduce_632",n(b)),a(A,"$_reduce_634",(function(e,t,r){return this.context["$in_argdef="](!1),this.builder.$args(b,[],b)})),a(A,"$_reduce_635",(function(e,t,r){var n=this;return r=n.builder.$args(e["$[]"](0),e["$[]"](1),e["$[]"](2)),n.lexer["$state="]("expr_value"),n.context["$in_argdef="](!1),r})),a(A,"$_reduce_637",(function(e,t,r){var n=this;return r=n.context.$dup(),n.context["$in_kwarg="](!0),n.context["$in_argdef="](!0),r})),a(A,"$_reduce_638",(function(e,t,r){var n=this;return n.context["$in_kwarg="](e["$[]"](0).$in_kwarg()),n.context["$in_argdef="](!1),n.builder.$args(b,e["$[]"](1),b)})),a(A,"$_reduce_639",(function(e,t,r){return e["$[]"](0).$concat(e["$[]"](2)).$concat(e["$[]"](3))})),a(A,"$_reduce_640",(function(e,t,r){return e["$[]"](0).$concat(e["$[]"](1))})),a(A,"$_reduce_641",(function(e,t,r){return e["$[]"](0).$concat(e["$[]"](1))})),a(A,"$_reduce_642",(function(e,t,r){return[e["$[]"](0)]})),a(A,"$_reduce_643",(function(e,t,r){return this.static_env.$declare_forward_args(),[this.builder.$forward_arg(e["$[]"](0))]})),a(A,"$_reduce_644",(function(e,t,r){return e["$[]"](1)})),a(A,"$_reduce_645",(function(e,t,r){return[]})),a(A,"$_reduce_646",(function(e,t,r){return e["$[]"](0).$concat(e["$[]"](2)).$concat(e["$[]"](4)).$concat(e["$[]"](5))})),a(A,"$_reduce_647",(function(e,t,r){return e["$[]"](0).$concat(e["$[]"](2)).$concat(e["$[]"](4)).$concat(e["$[]"](6)).$concat(e["$[]"](7))})),a(A,"$_reduce_648",(function(e,t,r){return e["$[]"](0).$concat(e["$[]"](2)).$concat(e["$[]"](3))})),a(A,"$_reduce_649",(function(e,t,r){return e["$[]"](0).$concat(e["$[]"](2)).$concat(e["$[]"](4)).$concat(e["$[]"](5))})),a(A,"$_reduce_650",(function(e,t,r){return e["$[]"](0).$concat(e["$[]"](2)).$concat(e["$[]"](3))})),a(A,"$_reduce_651",(function(e,t,r){return e["$[]"](0).$concat(e["$[]"](2)).$concat(e["$[]"](4)).$concat(e["$[]"](5))})),a(A,"$_reduce_652",(function(e,t,r){return e["$[]"](0).$concat(e["$[]"](1))})),a(A,"$_reduce_653",(function(e,t,r){return e["$[]"](0).$concat(e["$[]"](2)).$concat(e["$[]"](3))})),a(A,"$_reduce_654",(function(e,t,r){return e["$[]"](0).$concat(e["$[]"](2)).$concat(e["$[]"](4)).$concat(e["$[]"](5))})),a(A,"$_reduce_655",(function(e,t,r){return e["$[]"](0).$concat(e["$[]"](1))})),a(A,"$_reduce_656",(function(e,t,r){return e["$[]"](0).$concat(e["$[]"](2)).$concat(e["$[]"](3))})),a(A,"$_reduce_657",(function(e,t,r){return e["$[]"](0).$concat(e["$[]"](1))})),a(A,"$_reduce_658",(function(e,t,r){return e["$[]"](0).$concat(e["$[]"](2)).$concat(e["$[]"](3))})),a(A,"$_reduce_659",(function(e,t,r){return e["$[]"](0)})),a(A,"$_reduce_660",(function(e,t,r){return[]})),a(A,"$_reduce_661",(function(e,t,r){return e["$[]"](0)})),a(A,"$_reduce_662",(function(e,t,r){return this.$diagnostic("error","argument_const",b,e["$[]"](0)),r})),a(A,"$_reduce_663",(function(e,t,r){return this.$diagnostic("error","argument_ivar",b,e["$[]"](0)),r})),a(A,"$_reduce_664",(function(e,t,r){return this.$diagnostic("error","argument_gvar",b,e["$[]"](0)),r})),a(A,"$_reduce_665",(function(e,t,r){return this.$diagnostic("error","argument_cvar",b,e["$[]"](0)),r})),a(A,"$_reduce_667",(function(e,t,r){return this.static_env.$declare(e["$[]"](0)["$[]"](0)),this.max_numparam_stack["$has_ordinary_params!"](),e["$[]"](0)})),a(A,"$_reduce_668",(function(e,t,r){return this.current_arg_stack.$set(e["$[]"](0)["$[]"](0)),e["$[]"](0)})),a(A,"$_reduce_669",(function(e,t,r){return this.current_arg_stack.$set(0),this.builder.$arg(e["$[]"](0))})),a(A,"$_reduce_670",(function(e,t,r){return this.builder.$multi_lhs(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),a(A,"$_reduce_671",(function(e,t,r){return[e["$[]"](0)]})),a(A,"$_reduce_672",(function(e,t,r){return e["$[]"](0)["$<<"](e["$[]"](2))})),a(A,"$_reduce_673",(function(e,t,r){var n=this;return n.$check_kwarg_name(e["$[]"](0)),n.static_env.$declare(e["$[]"](0)["$[]"](0)),n.max_numparam_stack["$has_ordinary_params!"](),n.current_arg_stack.$set(e["$[]"](0)["$[]"](0)),n.context["$in_argdef="](!1),e["$[]"](0)})),a(A,"$_reduce_674",(function(e,t,r){var n=this;return n.current_arg_stack.$set(b),n.context["$in_argdef="](!0),n.builder.$kwoptarg(e["$[]"](0),e["$[]"](1))})),a(A,"$_reduce_675",(function(e,t,r){var n=this;return n.current_arg_stack.$set(b),n.context["$in_argdef="](!0),n.builder.$kwarg(e["$[]"](0))})),a(A,"$_reduce_676",(function(e,t,r){return this.context["$in_argdef="](!0),this.builder.$kwoptarg(e["$[]"](0),e["$[]"](1))})),a(A,"$_reduce_677",(function(e,t,r){return this.context["$in_argdef="](!0),this.builder.$kwarg(e["$[]"](0))})),a(A,"$_reduce_678",(function(e,t,r){return[e["$[]"](0)]})),a(A,"$_reduce_679",(function(e,t,r){return e["$[]"](0)["$<<"](e["$[]"](2))})),a(A,"$_reduce_680",(function(e,t,r){return[e["$[]"](0)]})),a(A,"$_reduce_681",(function(e,t,r){return e["$[]"](0)["$<<"](e["$[]"](2))})),a(A,"$_reduce_684",(function(e,t,r){return[this.builder.$kwnilarg(e["$[]"](0)["$[]"](0),e["$[]"](0)["$[]"](1))]})),a(A,"$_reduce_685",(function(e,t,r){return this.static_env.$declare(e["$[]"](1)["$[]"](0)),[this.builder.$kwrestarg(e["$[]"](0),e["$[]"](1))]})),a(A,"$_reduce_686",(function(e,t,r){return this.static_env.$declare_anonymous_kwrestarg(),[this.builder.$kwrestarg(e["$[]"](0))]})),a(A,"$_reduce_687",(function(e,t,r){var n=this;return n.current_arg_stack.$set(0),n.context["$in_argdef="](!0),n.builder.$optarg(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),a(A,"$_reduce_688",(function(e,t,r){var n=this;return n.current_arg_stack.$set(0),n.context["$in_argdef="](!0),n.builder.$optarg(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),a(A,"$_reduce_689",(function(e,t,r){return[e["$[]"](0)]})),a(A,"$_reduce_690",(function(e,t,r){return e["$[]"](0)["$<<"](e["$[]"](2))})),a(A,"$_reduce_691",(function(e,t,r){return[e["$[]"](0)]})),a(A,"$_reduce_692",(function(e,t,r){return e["$[]"](0)["$<<"](e["$[]"](2))})),a(A,"$_reduce_695",(function(e,t,r){return this.static_env.$declare(e["$[]"](1)["$[]"](0)),[this.builder.$restarg(e["$[]"](0),e["$[]"](1))]})),a(A,"$_reduce_696",(function(e,t,r){return this.static_env.$declare_anonymous_restarg(),[this.builder.$restarg(e["$[]"](0))]})),a(A,"$_reduce_699",(function(e,t,r){return this.static_env.$declare(e["$[]"](1)["$[]"](0)),this.builder.$blockarg(e["$[]"](0),e["$[]"](1))})),a(A,"$_reduce_700",(function(e,t,r){return this.static_env.$declare_anonymous_blockarg(),this.builder.$blockarg(e["$[]"](0),b)})),a(A,"$_reduce_701",(function(e,t,r){return[e["$[]"](1)]})),a(A,"$_reduce_702",(function(e,t,r){return[]})),a(A,"$_reduce_704",(function(e,t,r){return e["$[]"](1)})),a(A,"$_reduce_705",(function(e,t,r){return[]})),a(A,"$_reduce_707",(function(e,t,r){return[e["$[]"](0)]})),a(A,"$_reduce_708",(function(e,t,r){return e["$[]"](0)["$<<"](e["$[]"](2))})),a(A,"$_reduce_709",(function(e,t,r){return this.builder.$pair(e["$[]"](0),e["$[]"](1),e["$[]"](2))})),a(A,"$_reduce_710",(function(e,t,r){return this.builder.$pair_keyword(e["$[]"](0),e["$[]"](1))})),a(A,"$_reduce_711",(function(e,t,r){return this.builder.$pair_label(e["$[]"](0))})),a(A,"$_reduce_712",(function(e,t,r){return this.builder.$pair_quoted(e["$[]"](0),e["$[]"](1),e["$[]"](2),e["$[]"](3))})),a(A,"$_reduce_713",(function(e,t,r){return this.builder.$kwsplat(e["$[]"](0),e["$[]"](1))})),a(A,"$_reduce_714",(function(e,t,r){var n=this;return i(n.static_env["$declared_anonymous_kwrestarg?"]())&&n.$diagnostic("error","no_anonymous_kwrestarg",b,e["$[]"](0)),n.builder.$forwarded_kwrestarg(e["$[]"](0))})),a(A,"$_reduce_725",(function(e,t,r){return["dot",e["$[]"](0)["$[]"](1)]})),a(A,"$_reduce_726",(function(e,t,r){return["anddot",e["$[]"](0)["$[]"](1)]})),a(A,"$_reduce_731",(function(e,t,r){return e["$[]"](1)})),a(A,"$_reduce_732",(function(e,t,r){return e["$[]"](1)})),a(A,"$_reduce_733",(function(e,t,r){return e["$[]"](1)})),a(A,"$_reduce_736",(function(e,t,r){return this.$yyerrok(),r})),a(A,"$_reduce_740",n(b)),a(A,"$_reduce_none",(function(e,t,r){return e["$[]"](0)}))}(y[0],v(x("Parser"),"Base"),y)}(g[0],g)},Opal.modules["opal/ast/builder"]=function(e){var t=e.module,r=e.klass,n=e.Opal,a=e.def,s=e.top,i=[],o=(e.nil,e.$$$);return e.add_stubs("require,emit_lambda=,new"),s.$require("opal/ast/node"),s.$require("parser/ruby32"),function(e,s){var i=[t(e,"Opal")].concat(s);return function(e,s){return function(e,t){var s=r(e,t,"Builder");return s["$emit_lambda="](!0),a(s,"$n",(function(e,t,r){return o(o(n,"AST"),"Node").$new(e,t,new Map([["location",r]]))}))}([t(e,"AST")].concat(s)[0],o(o(o("Parser"),"Builders"),"Default"))}(i[0],i)}(i[0],i)},Opal.modules["opal/rewriters/base"]=function(e){var t=e.module,r=e.klass,n=e.slice,a=e.def,s=e.return_self,i=e.return_val,o=e.const_set,l=e.truthy,$=e.Opal,u=e.defs,c=e.alias,_=e.rb_plus,p=e.send,m=e.to_a,d=e.send2,f=e.find_super,h=e.assign_ivar_val,g=e.top,b=[],v=e.nil,y=e.$$$;return e.add_stubs("require,new,current_node,loc,process_regular_node,on_send,+,stmts_of,begin_with_stmts,nil?,include?,type,children,length,[],s,attr_accessor,current_node=,location=,raise,[]=,meta"),g.$require("parser"),g.$require("opal/ast/node"),function(g,b){var x=[t(g,"Opal")].concat(b);return function(g,b){var x=[t(g,"Rewriters")].concat(b);return function(t,g,b){var x=r(t,g,"Base"),w=[x].concat(b),k=e.$r(w);return x.$$prototype.dynamic_cache_result=v,function(t,o,l){var $=r(t,null,"DummyLocation"),u=[$].concat(l),c=e.$r(u);a($,"$node=",(function(e){return n(arguments),v}),-1),a($,"$expression",s),a($,"$begin_pos",i(0)),a($,"$end_pos",i(0)),a($,"$source",i("")),a($,"$line",i(0)),a($,"$column",i(0)),a($,"$last_line",(function(){return y(c("Float"),"INFINITY")}))}(w[0],0,w),o(w[0],"DUMMY_LOCATION",k("DummyLocation").$new()),a(x,"$s",(function(e,t){var r,a;return r=n(arguments,1),a=l(this.$current_node())?this.$current_node().$loc():k("DUMMY_LOCATION"),y(y($,"AST"),"Node").$new(e,r,new Map([["location",a]]))}),-2),u(x,"$s",(function(e,t){var r;return r=n(arguments,1),y(y($,"AST"),"Node").$new(e,r,new Map([["location",k("DUMMY_LOCATION")]]))}),-2),c(x,"on_iter","process_regular_node"),c(x,"on_zsuper","process_regular_node"),c(x,"on_jscall","on_send"),c(x,"on_jsattr","process_regular_node"),c(x,"on_jsattrasgn","process_regular_node"),c(x,"on_kwsplat","process_regular_node"),a(x,"$prepend_to_body",(function(e,t){var r,n=this;return r=_(n.$stmts_of(t),n.$stmts_of(e)),n.$begin_with_stmts(r)})),a(x,"$append_to_body",(function(e,t){var r,n=this;return r=_(n.$stmts_of(e),n.$stmts_of(t)),n.$begin_with_stmts(r)})),a(x,"$stmts_of",(function(e){return l(e["$nil?"]())?[]:l(["begin","kwbegin"]["$include?"](e.$type()))?e.$children():[e]})),a(x,"$begin_with_stmts",(function(e){switch(e.$length().valueOf()){case 0:return v;case 1:return e["$[]"](0);default:return p(this,"s",["begin"].concat(m(e)))}})),x.$attr_accessor("current_node"),a(x,"$process",(function e(t){var r=e.$$p||v,n=this;return e.$$p=null,function(){try{return n["$current_node="](t),d(n,f(n,"process",e,!1,!0),"process",[t],r)}finally{p(n,"current_node=",[v])}}()})),a(x,"$error",(function(e){var t=this,r=v;return r=y($,"RewritingError").$new(e),l(t.$current_node())&&r["$location="](t.$current_node().$loc()),t.$raise(r)})),a(x,"$on_top",(function(e){return e=this.$process_regular_node(e),l(this.dynamic_cache_result)&&e.$meta()["$[]="]("dynamic_cache_result",!0),e})),a(x,"$dynamic!",h("dynamic_cache_result",!0))}(x[0],y(y(y("Parser"),"AST"),"Processor"),x)}(x[0],x)}(b[0],b)},Opal.modules["opal/rewriters/opal_engine_check"]=function(e){var t=e.module,r=e.klass,n=e.to_a,a=e.truthy,s=e.send2,i=e.find_super,o=e.def,l=e.const_set,$=e.top,u=[],c=e.nil;return e.add_stubs("require,children,skip_check_present?,process,s,skip_check_present_not?,=="),$.$require("opal/rewriters/base"),function($,u){var _=[t($,"Opal")].concat(u);return function($,u){var _=[t($,"Rewriters")].concat(u),p=e.$r(_);return function(t,$,u){var _=r(t,$,"OpalEngineCheck"),p=[_].concat(u),m=e.$r(p);return o(_,"$on_if",(function e(t){var r,o,l,$,u=e.$$p||c,_=this,p=c;return e.$$p=null,o=null==(r=[].concat(n(t.$children())))[0]?c:r[0],l=null==r[1]?c:r[1],$=null==r[2]?c:r[2],a(_["$skip_check_present?"](o))?_.$process(a(p=l)?p:_.$s("nil")):a(_["$skip_check_present_not?"](o))?_.$process(a(p=$)?p:_.$s("nil")):s(_,i(_,"on_if",e,!1,!0),"on_if",[t],u)})),o(_,"$skip_check_present?",(function(e){var t;return a(t=e["$=="](m("RUBY_ENGINE_CHECK")))?t:e["$=="](m("RUBY_PLATFORM_CHECK"))})),o(_,"$skip_check_present_not?",(function(e){var t;return a(t=e["$=="](m("RUBY_ENGINE_CHECK_NOT")))?t:e["$=="](m("RUBY_PLATFORM_CHECK_NOT"))})),l(p[0],"RUBY_ENGINE_CHECK",_.$s("send",_.$s("const",c,"RUBY_ENGINE"),"==",_.$s("str","opal"))),l(p[0],"RUBY_ENGINE_CHECK_NOT",_.$s("send",_.$s("const",c,"RUBY_ENGINE"),"!=",_.$s("str","opal"))),l(p[0],"RUBY_PLATFORM_CHECK",_.$s("send",_.$s("const",c,"RUBY_PLATFORM"),"==",_.$s("str","opal"))),l(p[0],"RUBY_PLATFORM_CHECK_NOT",_.$s("send",_.$s("const",c,"RUBY_PLATFORM"),"!=",_.$s("str","opal")))}(_[0],p("Base"),_)}(_[0],_)}(u[0],u)},Opal.modules["opal/rewriters/targeted_patches"]=function(e){var t=e.module,r=e.klass,n=e.to_a,a=e.truthy,s=e.rb_ge,i=e.eqeq,o=e.to_ary,l=e.range,$=e.send2,u=e.find_super,c=e.def,_=e.rb_gt,p=e.send,m=e.annotate_regexp,d=e.not,f=e.top,h=[],g=e.nil;return e.add_stubs("require,>=,length,children,==,type,last,first,updated,[],<<,>,all?,include?,=~,to_s,!,cover?,join,map,s"),f.$require("opal/rewriters/base"),function(f,h){var b=[t(f,"Opal")].concat(h);return function(f,h){var b=[t(f,"Rewriters")].concat(h),v=e.$r(b);return function(e,t){var f=r(e,t,"TargetedPatches");return c(f,"$on_def",(function e(t){var r,c,_,p,m=e.$$p||g,d=this,f=g,h=g,b=g,v=g;return e.$$p=null,_=null==(r=[].concat(n(t)))[0]?g:r[0],p=null==r[1]?g:r[1],f=null==r[2]?g:r[2],a(f)&&i(f.$type(),"begin")&&a(s(f.$children().$length(),2))?(c=(h=f.$children()).$last(2),b=null==(r=o(c))[0]?g:r[0],v=null==r[1]?g:r[1],i(b.$type(),"lvasgn")&&i(v.$type(),"lvar")&&i(b.$children().$first(),v.$children().$first())?i(h.$length(),2)?t.$updated(g,[_,p,b.$children()["$[]"](1)]):(h=h["$[]"](l(0,-3,!1))["$<<"](b.$children()["$[]"](1)),t.$updated(g,[_,p,f.$updated(g,h)])):$(d,u(d,"on_def",e,!1,!0),"on_def",[t],m)):$(d,u(d,"on_def",e,!1,!0),"on_def",[t],m)})),c(f,"$on_array",(function e(t){var r=e.$$p||g,n=this,s=g,o=g,c=g;return e.$$p=null,s=t.$children(),a(_(s.$length(),32))?(o=p(s,"all?",[],(function(e){return null==e&&(e=g),!!a(["str","sym","int","nil"]["$include?"](e.$type()))&&((!a(["str","sym"]["$include?"](e.$type()))||!a(e.$children().$first().$to_s()["$=~"](m(/^[0-9-]|^$|,/u,"\\A[0-9-]|\\A\\z|,",""))))&&(!i(e.$type(),"int")||!d(l(-1e6,1e6,!1)["$cover?"](e.$children().$first()))))})),a(o)?(c=p(s,"map",[],(function(e){return null==e&&(e=g),e.$children().$first().$to_s()})).$join(","),t.$updated("jscall",[n.$s("js_tmp","Opal"),"large_array_unpack",n.$s("sym",c)])):$(n,u(n,"on_array",e,!1,!0),"on_array",[t],r)):$(n,u(n,"on_array",e,!1,!0),"on_array",[t],r)}))}(b[0],v("Base"))}(b[0],b)}(h[0],h)},Opal.modules["opal/rewriters/for_rewriter"]=function(e){var t=e.module,r=e.klass,n=e.assign_ivar_val,a=e.defs,s=e.truthy,i=e.rb_plus,o=e.to_a,l=e.def,$=e.send,u=e.send2,c=e.find_super,_=e.top,p=[],m=e.nil;return e.add_stubs("require,+,generate_outer_assignments,next_tmp,class,s,prepend_to_body,assign_loop_variable,transform_for_to_each_loop,updated,private,find,map,type,<<,process,attr_reader,new,to_a,result"),_.$require("opal/rewriters/base"),function(_,p){var d=[t(_,"Opal")].concat(p);return function(_,p){var d=[t(_,"Rewriters")].concat(p),f=e.$r(d);return function(t,_,p){var d=r(t,_,"ForRewriter"),f=[d].concat(p),h=e.$r(f);return a(d,"$reset_tmp_counter!",n("counter",0)),a(d,"$next_tmp",(function(){var e,t=this;return null==t.counter&&(t.counter=m),t.counter=s(e=t.counter)?e:0,t.counter=i(t.counter,1),"$for_tmp"+t.counter})),l(d,"$on_for",(function(e){var t,r,n,a,s,i,l=this,$=m;return r=null==(t=[].concat(o(e)))[0]?m:t[0],n=null==t[1]?m:t[1],$=null==t[2]?m:t[2],a=l.$generate_outer_assignments(r,$),s=l.$class().$next_tmp(),i=l.$s("js_tmp",s),$=l.$prepend_to_body($,l.$assign_loop_variable(r,i)),(e=l.$transform_for_to_each_loop(e,n,s,$)).$updated("begin",[].concat(o(a)).concat([e]))})),d.$private(),l(d,"$generate_outer_assignments",(function(e,t){var r,n;return r=h("LocalVariableAssigns").$find(e),n=h("LocalVariableAssigns").$find(t),$(i(r,n),"map",[],(function e(t){return null==t&&(t=m),(null==e.$$s?this:e.$$s).$s("lvdeclare",t)}),{$$s:this})})),l(d,"$assign_loop_variable",(function(e,t){return"mlhs"===e.$type().valueOf()?e.$updated("masgn",[e,t]):e["$<<"](t)})),l(d,"$transform_for_to_each_loop",(function(e,t,r,n){var a=this;return e.$updated("send",[t,"each",e.$updated("iter",[a.$s("args",a.$s("arg",r)),a.$process(n)])])})),function(t,n,s){var i=r(t,n,"LocalVariableAssigns"),$=[i].concat(s),_=e.$r($);return i.$attr_reader("result"),a(i,"$find",(function(e){var t=m;return(t=this.$new()).$process(e),t.$result().$to_a()})),l(i,"$initialize",(function(){return this.result=_("Set").$new()})),l(i,"$on_lvasgn",(function e(t){var r,n,a=e.$$p||m,s=this;return e.$$p=null,n=null==(r=[].concat(o(t)))[0]?m:r[0],null==r[1]?m:r[1],s.$result()["$<<"](n),u(s,c(s,"on_lvasgn",e,!1,!0),"on_lvasgn",[t],a)}))}(f[0],h("Base"),f)}(d[0],f("Base"),d)}(d[0],d)}(p[0],p)},Opal.modules["opal/rewriters/js_reserved_words"]=function(e){var t=e.module,r=e.klass,n=e.const_set,a=e.regexp,s=e.truthy,i=e.defs,o=e.def,l=e.range,$=e.to_a,u=e.send2,c=e.find_super,_=e.alias,p=e.top,m=[],d=e.nil;return e.add_stubs("require,freeze,=~,!,valid_name?,class,to_sym,valid_ivar_name?,[],to_s,updated,fix_var_name,fix_ivar_name,on_restarg"),p.$require("opal/rewriters/base"),p.$require("opal/regexp_anchors"),function(p,m){var f=[t(p,"Opal")].concat(m);return function(p,m){var f=[t(p,"Rewriters")].concat(m),h=e.$r(f);return function(t,p,m){var f=r(t,p,"JsReservedWords"),h=[f].concat(m),g=e.$r(h);return n(h[0],"ES51_RESERVED_WORD",a([g("REGEXP_START"),"(?:do|if|in|for|let|new|try|var|case|else|enum|eval|false|null|this|true|void|with|break|catch|class|const|super|throw|while|yield|delete|export|import|public|return|static|switch|typeof|default|extends|finally|package|private|continue|debugger|function|arguments|interface|protected|implements|instanceof)",g("REGEXP_END")]).$freeze()),n(h[0],"ES3_RESERVED_WORD_EXCLUSIVE",a([g("REGEXP_START"),"(?:int|byte|char|goto|long|final|float|short|double|native|throws|boolean|abstract|volatile|transient|synchronized)",g("REGEXP_END")]).$freeze()),n(h[0],"PROTO_SPECIAL_PROPS",a([g("REGEXP_START"),"(?:constructor|displayName|__proto__|__parent__|__noSuchMethod__|__count__)",g("REGEXP_END")]).$freeze()),n(h[0],"PROTO_SPECIAL_METHODS",a([g("REGEXP_START"),"(?:hasOwnProperty|valueOf)",g("REGEXP_END")]).$freeze()),n(h[0],"IMMUTABLE_PROPS",a([g("REGEXP_START"),"(?:NaN|Infinity|undefined)",g("REGEXP_END")]).$freeze()),n(h[0],"BASIC_IDENTIFIER_RULES",a([g("REGEXP_START"),"[$_a-z][$_a-z\\d]*",g("REGEXP_END")],"i").$freeze()),n(h[0],"RESERVED_FUNCTION_NAMES",a([g("REGEXP_START"),"(?:Array)",g("REGEXP_END")]).$freeze()),i(f,"$valid_name?",(function(e){var t,r=d,n=d;return s(t=g("BASIC_IDENTIFIER_RULES")["$=~"](e))?(s(r=s(n=g("ES51_RESERVED_WORD")["$=~"](e))?n:g("ES3_RESERVED_WORD_EXCLUSIVE")["$=~"](e))?r:g("IMMUTABLE_PROPS")["$=~"](e))["$!"]():t})),i(f,"$valid_ivar_name?",(function(e){var t;return(s(t=g("PROTO_SPECIAL_PROPS")["$=~"](e))?t:g("PROTO_SPECIAL_METHODS")["$=~"](e))["$!"]()})),o(f,"$fix_var_name",(function(e){return s(this.$class()["$valid_name?"](e))?e:(e+"$").$to_sym()})),o(f,"$fix_ivar_name",(function(e){return s(this.$class()["$valid_ivar_name?"](e.$to_s()["$[]"](l(1,-1,!1))))?e:(e+"$").$to_sym()})),o(f,"$on_lvar",(function e(t){var r,n,a=this;return e.$$p=null,n=null==(r=[].concat($(t)))[0]?d:r[0],null==r[1]?d:r[1],t=t.$updated(d,[a.$fix_var_name(n)]),u(a,c(a,"on_lvar",e,!1,!0),"on_lvar",[t],null)})),o(f,"$on_lvasgn",(function e(t){var r,n,a,i=this;return e.$$p=null,n=null==(r=[].concat($(t)))[0]?d:r[0],a=null==r[1]?d:r[1],t=s(a)?t.$updated(d,[i.$fix_var_name(n),a]):t.$updated(d,[i.$fix_var_name(n)]),u(i,c(i,"on_lvasgn",e,!1,!0),"on_lvasgn",[t],null)})),o(f,"$on_ivar",(function e(t){var r,n,a=this;return e.$$p=null,n=null==(r=[].concat($(t)))[0]?d:r[0],null==r[1]?d:r[1],t=t.$updated(d,[a.$fix_ivar_name(n)]),u(a,c(a,"on_ivar",e,!1,!0),"on_ivar",[t],null)})),o(f,"$on_ivasgn",(function e(t){var r,n,a,i=this;return e.$$p=null,n=null==(r=[].concat($(t)))[0]?d:r[0],a=null==r[1]?d:r[1],t=s(a)?t.$updated(d,[i.$fix_ivar_name(n),a]):t.$updated(d,[i.$fix_ivar_name(n)]),u(i,c(i,"on_ivasgn",e,!1,!0),"on_ivasgn",[t],null)})),o(f,"$on_restarg",(function(e){var t,r;return r=null==(t=[].concat($(e)))[0]?d:t[0],null==t[1]?d:t[1],s(r)&&(e=e.$updated(d,[this.$fix_var_name(r)],new Map([["meta",new Map([["arg_name",r]])]]))),e})),_(f,"on_kwrestarg","on_restarg"),o(f,"$on_argument",(function e(t){var r,n,a,i,o,l=this;return e.$$p=null,t=u(l,c(l,"on_argument",e,!1,!0),"on_argument",[t],null),n=null==(r=[].concat($(t)))[0]?d:r[0],a=null==r[1]?d:r[1],i=l.$fix_var_name(n),o=s(a)?[i,a]:[i],t.$updated(d,o,new Map([["meta",new Map([["arg_name",n]])]]))}))}(f[0],h("Base"),f)}(f[0],f)}(m[0],m)},Opal.modules["opal/rewriters/block_to_iter"]=function(e){var t=e.module,r=e.klass,n=e.to_a,a=e.rb_plus,s=e.def,i=e.top,o=[],l=e.nil;return e.add_stubs("require,s,process,updated,+,children"),i.$require("opal/rewriters/base"),function(i,o){var $=[t(i,"Opal")].concat(o);return function(i,o){var $=[t(i,"Rewriters")].concat(o),u=e.$r($);return function(e,t){var i=r(e,t,"BlockToIter");return s(i,"$on_block",(function(e){var t,r,s,i,o=l;return o=null==(t=[].concat(n(e)))[0]?l:t[0],r=null==t[1]?l:t[1],s=null==t[2]?l:t[2],i=this.$s("iter",r,s),this.$process(o.$updated(l,a(o.$children(),[i])))}))}($[0],u("Base"))}($[0],$)}(o[0],o)},Opal.modules["opal/rewriters/dot_js_syntax"]=function(e){var t=e.module,r=e.klass,n=e.to_a,a=e.slice,s=e.eqeq,i=e.truthy,o=e.neqeq,l=e.send2,$=e.find_super,u=e.def,c=e.send,_=e.top,p=[],m=e.nil;return e.add_stubs("require,==,type,!=,size,error,first,to_js_attr_call,to_js_attr_assign_call,to_native_js_call,s"),_.$require("opal/rewriters/base"),function(_,p){var d=[t(_,"Opal")].concat(p);return function(_,p){var d=[t(_,"Rewriters")].concat(p),f=e.$r(d);return function(e,t){var _=r(e,t,"DotJsSyntax");return u(_,"$on_send",(function e(t){var r,u=e.$$p||m,c=this,_=m,p=m,d=m,f=m,h=m,g=m,b=m;if(e.$$p=null,_=null==(r=[].concat(n(t)))[0]?m:r[0],p=null==r[1]?m:r[1],d=a(r,2),i(_)&&s(_.$type(),"send")){if(f=null==(r=[].concat(n(_)))[0]?m:r[0],h=null==r[1]?m:r[1],null==r[2]?m:r[2],s(h,"JS")){switch(p.valueOf()){case"[]":o(d.$size(),1)&&c.$error(".JS[:property] syntax supports only one argument"),g=d.$first(),t=c.$to_js_attr_call(f,g);break;case"[]=":o(d.$size(),2)&&c.$error(".JS[:property]= syntax supports only two arguments"),g=null==(r=[].concat(n(d)))[0]?m:r[0],b=null==r[1]?m:r[1],t=c.$to_js_attr_assign_call(f,g,b);break;default:t=c.$to_native_js_call(f,p,d)}return l(c,$(c,"on_send",e,!1,!0),"on_send",[t],null)}return l(c,$(c,"on_send",e,!1,!0),"on_send",[t],u)}return l(c,$(c,"on_send",e,!1,!0),"on_send",[t],u)})),u(_,"$to_native_js_call",(function(e,t,r){return c(this,"s",["jscall",e,t].concat(n(r)))})),u(_,"$to_js_attr_call",(function(e,t){return this.$s("jsattr",e,t)})),u(_,"$to_js_attr_assign_call",(function(e,t,r){return this.$s("jsattrasgn",e,t,r)}))}(d[0],f("Base"))}(d[0],d)}(p[0],p)},Opal.modules["opal/rewriters/pattern_matching"]=function(e){var t=e.module,r=e.klass,n=e.send2,a=e.find_super,s=e.def,i=e.to_a,o=e.rb_plus,l=e.slice,$=e.truthy,u=e.send,c=e.not,_=e.neqeq,p=e.eqeq,m=e.return_ivar,d=e.alias,f=e.eqeqeq,h=e.Opal,g=e.top,b=[],v=e.nil,y=e.$$$;return e.add_stubs("require,s,convert_full_pattern,raise_no_matching_pattern_error,+,process,single_case_match,private,shift,type,!,empty?,!=,==,class,new,run!,variables,pattern,map,<<,array,on_literal,first,children,to_proc,method,each,to_ast,on_array_pattern,compact,[],==="),g.$require("opal/rewriters/base"),function(g,b){var x=[t(g,"Opal")].concat(b);return function(g,b){var x=[t(g,"Rewriters")].concat(b),w=e.$r(x);return function(t,g,b){var x=r(t,g,"PatternMatching"),w=[x].concat(b),k=e.$r(w);return x.$$prototype.depth=v,s(x,"$initialize",(function e(){var t=e.$$p||v,r=this;return e.$$p=null,r.depth=0,n(r,a(r,"initialize",e,!1,!0),"initialize",[],t)})),s(x,"$on_match_pattern",(function(e){var t,r,n,a=this;return r=null==(t=[].concat(i(e)))[0]?v:t[0],n=null==t[1]?v:t[1],a.$s("begin",a.$s("lvasgn","$pmvar",r),a.$s("if",a.$convert_full_pattern(r,n),v,a.$raise_no_matching_pattern_error("$pmvar")))})),s(x,"$on_match_pattern_p",(function(e){var t,r,n,a=this;return r=null==(t=[].concat(i(e)))[0]?v:t[0],n=null==t[1]?v:t[1],a.$s("if",a.$convert_full_pattern(r,n),a.$s("true"),a.$s("false"))})),s(x,"$on_case_match",(function(e){var t,r,n,a,s=this,c=v,_=v;return s.depth=o(s.depth,1),c="$cmvar"+s.depth,n=null==(t=[].concat(i(e)))[0]?v:t[0],r=t.length-1,a=l(t,1,r=r<1?1:r),_=null==t[r]?v:t[r],$(_)?s.$process(_):_=s.$raise_no_matching_pattern_error(c),s.$s("begin",s.$s("lvasgn",c,n),u(s,"single_case_match",[c].concat(i(a)).concat([_])))})),x.$private(),s(x,"$raise_no_matching_pattern_error",(function(e){var t=this;return t.$s("send",v,"raise",t.$s("const",t.$s("cbase"),"NoMatchingPatternError"),t.$s("lvar",e))})),s(x,"$single_case_match",(function(e,t,r){var n,a,s,o,p,m,d=this,f=v,h=v,g=v;if(a=(n=l(arguments,1)).splice(0,n.length-1),null==(s=n.shift())&&(s=v),p=a.$shift(),f=null==(o=[].concat(i(p)))[0]?v:o[0],h=null==o[1]?v:o[1],m=null==o[2]?v:o[2],f=d.$convert_full_pattern(e,f),$(h))switch(g=null==(o=[].concat(i(h)))[0]?v:o[0],h.$type().valueOf()){case"if_guard":f=d.$s("and",f,g);break;case"unless_guard":f=d.$s("and",f,d.$s("send",g,"!"))}return d.$s("if",f,d.$process(m),c(a["$empty?"]())?u(d,"single_case_match",[e].concat(i(a)).concat([s])):_(s,d.$s("empty_else"))?s:v)}),-3),s(x,"$convert_full_pattern",(function(e,t){var r=this,n=v;return p(e.$class(),k("Symbol"))&&(e=r.$s("lvar",e)),(n=k("PatternConverter").$new(t))["$run!"](),r.$s("masgn",u(r,"s",["mlhs"].concat(i(n.$variables()))),r.$s("send",r.$s("const",r.$s("cbase"),"PatternMatching"),"call",e,n.$pattern()))})),function(t,n,a){var c=r(t,n,"PatternConverter"),_=[c].concat(a),p=e.$r(_),h=c.$$prototype;return h.pat=h.variables=v,s(c,"$initialize",(function(e){return this.pat=e,this.variables=[]})),s(c,"$run!",(function(){var e=this;return e.outpat=e.$process(e.pat)})),s(c,"$pattern",m("outpat")),s(c,"$variables",(function(){return u(this.variables,"map",[],(function e(t){return null==t&&(t=v),(null==e.$$s?this:e.$$s).$s("lvasgn",t)}),{$$s:this})})),s(c,"$on_match_var",(function(e){var t,r;return r=null==(t=[].concat(i(e)))[0]?v:t[0],this.variables["$<<"](r),this.$s("sym","var")})),s(c,"$on_match_as",(function(e){var t,r,n,a=this;return r=null==(t=[].concat(i(e)))[0]?v:t[0],n=null==t[1]?v:t[1],a.$process(n),a.$array(a.$s("sym","save"),a.$process(r))})),s(c,"$on_literal",(function(e){return this.$array(this.$s("sym","lit"),e)})),d(c,"on_int","on_literal"),d(c,"on_float","on_literal"),d(c,"on_complex","on_literal"),d(c,"on_rational","on_literal"),d(c,"on_array","on_literal"),d(c,"on_str","on_literal"),d(c,"on_dstr","on_literal"),d(c,"on_xstr","on_literal"),d(c,"on_sym","on_literal"),d(c,"on_irange","on_literal"),d(c,"on_erange","on_literal"),d(c,"on_const","on_literal"),d(c,"on_regexp","on_literal"),d(c,"on_lambda","on_literal"),d(c,"on_begin","on_literal"),s(c,"$on_pin",(function(e){return this.$on_literal(e.$children().$first())})),s(c,"$on_match_rest",(function(e){var t=this;return $(e.$children()["$empty?"]())?t.$array(t.$s("sym","rest")):t.$array(t.$s("sym","rest"),t.$process(e.$children().$first()))})),s(c,"$on_match_alt",(function(e){var t=this;return u(t,"array",[t.$s("sym","any")].concat(i(u(e.$children(),"map",[],t.$method("process").$to_proc()))))})),s(c,"$on_const_pattern",(function(e){var t=this;return u(t,"array",[t.$s("sym","all")].concat(i(u(e.$children(),"map",[],t.$method("process").$to_proc()))))})),s(c,"$on_array_pattern",(function(e,t){var r=this,n=v,a=v,s=v;return null==t&&(t=!1),n=[].concat(i(e)),$(t)&&n["$<<"](r.$s("match_rest")),a=!0,s=0,n=u(n,"each",[],(function(e){return null==e&&(e=v),"match_rest"===e.$type().valueOf()?a=!1:s=o(s,1)})),r.$array(r.$s("sym","array"),r.$to_ast(a),r.$to_ast(s),r.$to_ast(u(n,"map",[],r.$method("process").$to_proc())))}),-2),s(c,"$on_array_pattern_with_tail",(function(e){return this.$on_array_pattern(e,!0)})),s(c,"$on_hash_pattern",(function(e){var t=this,r=v,n=v;return r=[].concat(i(e)),n=$(r["$empty?"]())?t.$to_ast(!1):t.$to_ast(!0),r=u(r,"map",[],(function e(t){var r=null==e.$$s?this:e.$$s;switch(null==t&&(t=v),t.$type().valueOf()){case"pair":return r.$array(t.$children()["$[]"](0),r.$process(t.$children()["$[]"](1)));case"match_var":return r.$array(r.$s("sym",t.$children()["$[]"](0)),r.$process(t));case"match_nil_pattern":return n=r.$to_ast(!1),v;case"match_rest":return n=$(t.$children().$first())?r.$process(t.$children().$first()):r.$to_ast(!0),v;default:return v}}),{$$s:t}).$compact(),t.$array(t.$s("sym","hash"),n,u(t,"array",i(r)))})),s(c,"$on_find_pattern",(function(e){var t=this,r=v;return r=[].concat(i(e)),r=u(r,"map",[],t.$method("process").$to_proc()),t.$array(t.$s("sym","find"),u(t,"array",i(r)))})),c.$private(),s(c,"$array",(function(e){var t;return t=l(arguments),this.$to_ast(t)}),-1),s(c,"$to_ast",(function(e){var t,r=this;return f(p("Array"),t=e)?u(r,"s",["array"].concat(i(e))):f(p("Integer"),t)?r.$s("int",e):f(!0,t)?r.$s("true"):f(!1,t)?r.$s("false"):f(v,t)?r.$s("nil"):v}))}(w[0],y(y(h,"Rewriters"),"Base"),w)}(x[0],w("Base"),x)}(x[0],x)}(b[0],b)},Opal.modules["opal/rewriters/logical_operator_assignment"]=function(e){var t=e.module,r=e.klass,n=e.class_variable_set,a=e.defs,s=e.truthy,i=e.class_variable_get,o=e.rb_plus,l=e.const_set,$=e.lambda,u=e.eqeq,c=e.to_a,_=e.slice,p=e.send,m=e.def,d=e.send2,f=e.find_super,h=e.top,g=[],b=e.nil;return e.add_stubs("require,+,updated,s,==,include?,[],type,new_temp,freeze,call,fetch,error,process"),h.$require("opal/rewriters/base"),function(h,g){var v=[t(h,"Opal")].concat(g);return function(h,g){var v=[t(h,"Rewriters")].concat(g),y=e.$r(v);return function(t,h,g){var v=r(t,h,"LogicalOperatorAssignment"),y=[v].concat(g),x=e.$r(y);return a(v,"$reset_tmp_counter!",(function(){return n(y[0],"@@counter",0)})),a(v,"$new_temp",(function(){var e=b;return n(y[0],"@@counter",s(null!=y[0].$$cvars["@@counter"]?"class variable":b)&&s(e=i(y[0],"@@counter",!1))?e:0),n(y[0],"@@counter",o(i(y[0],"@@counter",!1),1)),"$logical_op_recvr_tmp_"+i(y[0],"@@counter",!1)})),l(y[0],"GET_SET",$((function e(t,r){return null==t&&(t=b),null==r&&(r=b),$((function e(n,a,i){var o,l=null==e.$$s?this:e.$$s,$=b,_=b;return null==n&&(n=b),null==a&&(a=b),null==i&&(i=b),o=n.$updated(t),$=l.$s(i,o,a),s(["const","cvar"]["$include?"](t))&&u(i,"or")&&(_=l.$s("defined?",o),$=l.$s("if",_,l.$s("begin",$),a)),n.$updated(r,[].concat(c(n)).concat([$]))}),{$$s:null==e.$$s?this:e.$$s})}),{$$s:v})),l(y[0],"LocalVariableHandler",x("GET_SET")["$[]"]("lvar","lvasgn")),l(y[0],"InstanceVariableHandler",x("GET_SET")["$[]"]("ivar","ivasgn")),l(y[0],"ConstantHandler",x("GET_SET")["$[]"]("const","casgn")),l(y[0],"GlobalVariableHandler",x("GET_SET")["$[]"]("gvar","gvasgn")),l(y[0],"ClassVariableHandler",x("GET_SET")["$[]"]("cvar","cvasgn")),function(e,t){var n=r(e,t,"SendHandler");a(n,"$call",(function(e,t,r){var n,a,i,o,l,$=this,p=b,m=b,d=b,f=b,h=b;return p=null==(n=[].concat(c(e)))[0]?b:n[0],m=null==n[1]?b:n[1],a=_(n,2),s(p)&&u(p.$type(),"send")&&(d=$.$new_temp(),f=$.$s("lvasgn",d,p),p=$.$s("js_tmp",d)),h=m+"=",i=e.$updated("send",[p,m].concat(c(a))),o=e.$updated("send",[p,h].concat(c(a)).concat([t])),l=$.$s(r,i,o),s(f)?$.$s("begin",f,l):l}))}(y[0],v),function(e,t){var n=r(e,t,"ConditionalSendHandler");a(n,"$call",(function(e,t,r){var n,a,s,i,o,l,$,u=this,p=b,m=b;return r+="_asgn",p=null==(n=[].concat(c(e)))[0]?b:n[0],m=null==n[1]?b:n[1],a=_(n,2),s=u.$new_temp(),i=u.$s("lvasgn",s,p),p=u.$s("js_tmp",s),o=u.$s("send",p,"nil?"),l=e.$updated("send",[p,m].concat(c(a))),$=u.$s(r,l,t),u.$s("begin",i,u.$s("if",o,u.$s("nil"),$))}))}(y[0],v),l(y[0],"HANDLERS",new Map([["lvasgn",x("LocalVariableHandler")],["ivasgn",x("InstanceVariableHandler")],["casgn",x("ConstantHandler")],["gvasgn",x("GlobalVariableHandler")],["cvasgn",x("ClassVariableHandler")],["send",x("SendHandler")],["csend",x("ConditionalSendHandler")]]).$freeze()),m(v,"$on_or_asgn",(function(e){var t,r,n,a=b;return t=[].concat(c(e)),a=null==t[0]?b:t[0],r=null==t[1]?b:t[1],n=p(x("HANDLERS"),"fetch",[a.$type()],(function e(){return(null==e.$$s?this:e.$$s).$error("cannot handle LHS type: "+a.$type())}),{$$s:this}).$call(a,r,"or"),this.$process(n)})),m(v,"$on_and_asgn",(function(e){var t,r,n,a=b;return t=[].concat(c(e)),a=null==t[0]?b:t[0],r=null==t[1]?b:t[1],n=p(x("HANDLERS"),"fetch",[a.$type()],(function e(){return(null==e.$$s?this:e.$$s).$error("cannot handle LHS type: "+a.$type())}),{$$s:this}).$call(a,r,"and"),this.$process(n)})),l(y[0],"ASSIGNMENT_STRING_NODE",v.$s("str","assignment")),m(v,"$on_defined?",(function e(t){var r,n=b;return e.$$p=null,n=null==(r=[].concat(c(t)))[0]?b:r[0],null==r[1]?b:r[1],s(["or_asgn","and_asgn"]["$include?"](n.$type()))?x("ASSIGNMENT_STRING_NODE"):d(this,f(this,"on_defined?",e,!1,!0),"on_defined?",[t],null)}))}(v[0],y("Base"),v)}(v[0],v)}(g[0],g)},Opal.modules["opal/rewriters/binary_operator_assignment"]=function(e){var t=e.module,r=e.klass,n=e.class_variable_set,a=e.defs,s=e.truthy,i=e.class_variable_get,o=e.rb_plus,l=e.const_set,$=e.lambda,u=e.to_a,c=e.slice,_=e.eqeq,p=e.send,m=e.def,d=e.send2,f=e.find_super,h=e.top,g=[],b=e.nil;return e.add_stubs("require,+,updated,[],==,type,new_temp,s,freeze,call,fetch,error,process"),h.$require("opal/rewriters/base"),function(h,g){var v=[t(h,"Opal")].concat(g);return function(h,g){var v=[t(h,"Rewriters")].concat(g),y=e.$r(v);return function(t,h,g){var v=r(t,h,"BinaryOperatorAssignment"),y=[v].concat(g),x=e.$r(y);return a(v,"$reset_tmp_counter!",(function(){return n(y[0],"@@counter",0)})),a(v,"$new_temp",(function(){var e=b;return n(y[0],"@@counter",s(null!=y[0].$$cvars["@@counter"]?"class variable":b)&&s(e=i(y[0],"@@counter",!1))?e:0),n(y[0],"@@counter",o(i(y[0],"@@counter",!1),1)),"$binary_op_recvr_tmp_"+i(y[0],"@@counter",!1)})),l(y[0],"GET_SET",$((function(e,t){return null==e&&(e=b),null==t&&(t=b),$((function(r,n,a,s){var i,o;return null==r&&(r=b),null==n&&(n=b),null==a&&(a=b),null==s&&(s=b),i=n.$updated(e),o=r.$updated("send",[i,a,s]),n.$updated(t,[].concat(u(n)).concat([o]))}))}))),l(y[0],"LocalVariableHandler",x("GET_SET")["$[]"]("lvar","lvasgn")),l(y[0],"InstanceVariableHandler",x("GET_SET")["$[]"]("ivar","ivasgn")),l(y[0],"ConstantHandler",x("GET_SET")["$[]"]("const","casgn")),l(y[0],"GlobalVariableHandler",x("GET_SET")["$[]"]("gvar","gvasgn")),l(y[0],"ClassVariableHandler",x("GET_SET")["$[]"]("cvar","cvasgn")),function(e,t){var n=r(e,t,"SendHandler");a(n,"$call",(function(e,t,r,n){var a,i,o,l,$,p=this,m=b,d=b,f=b,h=b,g=b;return m=null==(a=[].concat(u(t)))[0]?b:a[0],d=null==a[1]?b:a[1],i=c(a,2),s(m)&&_(m.$type(),"send")&&(f=p.$new_temp(),h=p.$s("lvasgn",f,m),m=p.$s("js_tmp",f)),g=d+"=",o=t.$updated("send",[m,d].concat(u(i))),l=e.$updated("send",[o,r,n]),$=t.$updated("send",[m,g].concat(u(i)).concat([l])),s(h)?e.$updated("begin",[h,$]):$}))}(y[0],v),function(e,t){var n=r(e,t,"ConditionalSendHandler");a(n,"$call",(function(e,t,r,n){var a,s,i,o,l,$,_,p=this,m=b,d=b;return m=null==(a=[].concat(u(t)))[0]?b:a[0],d=null==a[1]?b:a[1],s=c(a,2),i=p.$new_temp(),o=p.$s("lvasgn",i,m),m=p.$s("js_tmp",i),l=p.$s("send",m,"nil?"),$=t.$updated("send",[m,d].concat(u(s))),_=e.$updated("op_asgn",[$,r,n]),p.$s("begin",o,p.$s("if",l,p.$s("nil"),_))}))}(y[0],v),l(y[0],"HANDLERS",new Map([["lvasgn",x("LocalVariableHandler")],["ivasgn",x("InstanceVariableHandler")],["casgn",x("ConstantHandler")],["gvasgn",x("GlobalVariableHandler")],["cvasgn",x("ClassVariableHandler")],["send",x("SendHandler")],["csend",x("ConditionalSendHandler")]]).$freeze()),m(v,"$on_op_asgn",(function(e){var t,r,n,a,s=b;return t=[].concat(u(e)),s=null==t[0]?b:t[0],r=null==t[1]?b:t[1],n=null==t[2]?b:t[2],a=p(x("HANDLERS"),"fetch",[s.$type()],(function e(){return(null==e.$$s?this:e.$$s).$error("cannot handle LHS type: "+s.$type())}),{$$s:this}).$call(e,s,r,n),this.$process(a)})),l(y[0],"ASSIGNMENT_STRING_NODE",v.$s("str","assignment")),m(v,"$on_defined?",(function e(t){var r,n=b;return e.$$p=null,n=null==(r=[].concat(u(t)))[0]?b:r[0],null==r[1]?b:r[1],_(n.$type(),"op_asgn")?x("ASSIGNMENT_STRING_NODE"):d(this,f(this,"on_defined?",e,!1,!0),"on_defined?",[t],null)}))}(v[0],y("Base"),v)}(v[0],v)}(g[0],g)},Opal.modules["opal/rewriters/hashes/key_duplicates_rewriter"]=function(e){var t=e.module,r=e.klass,n=e.def,a=e.send2,s=e.find_super,i=e.to_a,o=e.truthy,l=e.eqeq,$=e.Opal,u=e.top,c=[],_=e.nil,p=e.$$$;return e.add_stubs("require,new,include?,type,<<,==,process_regular_node,updated,inspect,warn"),u.$require("opal/rewriters/base"),u.$require("set"),function(u,c){var m=[t(u,"Opal")].concat(c);return function(u,c){var m=[t(u,"Rewriters")].concat(c);return function(u,c){var m=[t(u,"Hashes")].concat(c);return function(t,$,u){var c=r(t,$,"KeyDuplicatesRewriter"),p=[c].concat(u),m=e.$r(p);return c.$$prototype.keys=_,n(c,"$initialize",(function(){return this.keys=m("UniqKeysSet").$new()})),n(c,"$on_hash",(function e(t){var r,n=this,i=_;return e.$$p=null,function(){try{return r=[n.keys,m("UniqKeysSet").$new()],i=r[0],n.keys=r[1],a(n,s(n,"on_hash",e,!1,!0),"on_hash",[t],null)}finally{n.keys=i}}()})),n(c,"$on_pair",(function e(t){var r,n=this,l=_;return e.$$p=null,l=null==(r=[].concat(i(t)))[0]?_:r[0],null==r[1]?_:r[1],o(["str","sym"]["$include?"](l.$type()))&&n.keys["$<<"](l),a(n,s(n,"on_pair",e,!1,!0),"on_pair",[t],null)})),n(c,"$on_kwsplat",(function(e){var t,r=_;return r=null==(t=[].concat(i(e)))[0]?_:t[0],null==t[1]?_:t[1],l(r.$type(),"hash")&&(r=this.$process_regular_node(r)),e.$updated(_,[r])})),function(t,a,s){var $=r(t,null,"UniqKeysSet"),u=[$].concat(s),c=e.$r(u);return $.$$prototype.set=_,n($,"$initialize",(function(){return this.set=c("Set").$new()})),n($,"$<<",(function(e){var t,r=_;return o(this.set["$include?"](e))?(r=null==(t=[].concat(i(e)))[0]?_:t[0],null==t[1]?_:t[1],r=l(e.$type(),"str")?r.$inspect():":"+r,c("Kernel").$warn("warning: key "+r+" is duplicated and overwritten")):this.set["$<<"](e)}))}(p[0],0,p)}(m[0],p(p($,"Rewriters"),"Base"),m)}(m[0],m)}(m[0],m)}(c[0],c)},Opal.modules["opal/rewriters/dump_args"]=function(e){var t=e.module,r=e.klass,n=e.send2,a=e.find_super,s=e.to_a,i=e.def,o=e.top,l=[],$=e.nil;return e.add_stubs("require,updated"),o.$require("opal/rewriters/base"),function(o,l){var u=[t(o,"Opal")].concat(l);return function(o,l){var u=[t(o,"Rewriters")].concat(l),c=e.$r(u);return function(e,t){var o=r(e,t,"DumpArgs");return i(o,"$on_def",(function e(t){var r,i;return e.$$p=null,t=n(this,a(this,"on_def",e,!1,!0),"on_def",[t],null),null==(r=[].concat(s(t)))[0]?$:r[0],i=null==r[1]?$:r[1],null==r[2]?$:r[2],t.$updated($,$,new Map([["meta",new Map([["original_args",i]])]]))})),i(o,"$on_defs",(function e(t){var r,i;return e.$$p=null,t=n(this,a(this,"on_defs",e,!1,!0),"on_defs",[t],null),null==(r=[].concat(s(t)))[0]?$:r[0],null==r[1]?$:r[1],i=null==r[2]?$:r[2],null==r[3]?$:r[3],t.$updated($,$,new Map([["meta",new Map([["original_args",i]])]]))})),i(o,"$on_iter",(function e(t){var r,i;return e.$$p=null,t=n(this,a(this,"on_iter",e,!1,!0),"on_iter",[t],null),i=null==(r=[].concat(s(t)))[0]?$:r[0],null==r[1]?$:r[1],t.$updated($,$,new Map([["meta",new Map([["original_args",i]])]]))}))}(u[0],c("Base"))}(u[0],u)}(l[0],l)},Opal.modules["opal/rewriters/deduplicate_arg_name"]=function(e){var t=e.module,r=e.klass,n=e.send,a=e.send2,s=e.find_super,i=e.def,o=e.truthy,l=e.to_ary,$=e.rb_plus,u=e.rb_gt,c=[],_=e.nil;return e.add_stubs("new,map,children,rename_arg,updated,type,[],unique_name,[]=,+,>"),function(c,p){var m=[t(c,"Opal")].concat(p);return function(c,p){var m=[t(c,"Rewriters")].concat(p),d=e.$r(m);return function(t,c,p){var m=r(t,c,"DeduplicateArgName"),d=[m].concat(p),f=e.$r(d);return m.$$prototype.arg_name_count=_,i(m,"$on_args",(function e(t){var r,i=this;return e.$$p=null,i.arg_name_count=f("Hash").$new(0),r=n(t.$children(),"map",[],(function e(t){return null==t&&(t=_),(null==e.$$s?this:e.$$s).$rename_arg(t)}),{$$s:i}),a(i,s(i,"on_args",e,!1,!0),"on_args",[t.$updated(_,r)],null)})),i(m,"$rename_arg",(function(e){var t,r,a=this,s=_,i=_,$=_;switch(e.$type().valueOf()){case"arg":case"restarg":case"kwarg":case"kwrestarg":case"blockarg":return s=e.$children()["$[]"](0),o(s)?e.$updated(_,[a.$unique_name(s)]):e;case"optarg":case"kwoptarg":return r=e.$children(),s=null==(t=l(r))[0]?_:t[0],i=null==t[1]?_:t[1],e.$updated(_,[a.$unique_name(s),i]);case"mlhs":return $=n(e.$children(),"map",[],(function e(t){return null==t&&(t=_),(null==e.$$s?this:e.$$s).$rename_arg(t)}),{$$s:a}),e.$updated(_,$);default:return e}})),i(m,"$unique_name",(function(e){var t,r=_;return t=[e,$(this.arg_name_count["$[]"](e),1)],n(this.arg_name_count,"[]=",t),o(u(r=t[t.length-1],1))?e+"_$"+r:e}))}(m[0],d("Base"),m)}(m[0],m)}(c[0],c)},Opal.modules["opal/rewriters/mlhs_args"]=function(e){var t=e.module,r=e.klass,n=e.send2,a=e.find_super,s=e.to_a,i=e.truthy,o=e.def,l=e.assign_ivar_val,$=e.rb_plus,u=e.send,c=e.eqeq,_=e.top,p=[],m=e.nil;return e.add_stubs("require,new,updated,rewritten,initialization,s,prepend_to_body,attr_reader,split!,+,each,children,==,type,new_mlhs_tmp,process,<<,length,[],empty?"),_.$require("opal/rewriters/base"),function(_,p){var d=[t(_,"Opal")].concat(p);return function(_,p){var d=[t(_,"Rewriters")].concat(p),f=e.$r(d);return function(t,_,p){var d=r(t,_,"MlhsArgs"),f=[d].concat(p),h=e.$r(f);return o(d,"$on_def",(function e(t){var r,o,l=this,$=m,u=m,c=m,_=m;return e.$$p=null,t=n(l,a(l,"on_def",e,!1,!0),"on_def",[t],null),o=null==(r=[].concat(s(t)))[0]?m:r[0],$=null==r[1]?m:r[1],u=null==r[2]?m:r[2],c=h("Arguments").$new($),$=$.$updated(m,c.$rewritten()),i(c.$initialization())&&(u=i(_=u)?_:l.$s("nil"),u=l.$prepend_to_body(u,c.$initialization())),t.$updated(m,[o,$,u])})),o(d,"$on_defs",(function e(t){var r,o,l,$=this,u=m,c=m,_=m,p=m;return e.$$p=null,t=n($,a($,"on_defs",e,!1,!0),"on_defs",[t],null),o=null==(r=[].concat(s(t)))[0]?m:r[0],l=null==r[1]?m:r[1],u=null==r[2]?m:r[2],c=null==r[3]?m:r[3],_=h("Arguments").$new(u),u=u.$updated(m,_.$rewritten()),i(_.$initialization())&&(c=i(p=c)?p:$.$s("nil"),c=$.$prepend_to_body(c,_.$initialization())),t.$updated(m,[o,l,u,c])})),o(d,"$on_iter",(function e(t){var r,o=this,l=m,$=m,u=m,c=m;return e.$$p=null,t=n(o,a(o,"on_iter",e,!1,!0),"on_iter",[t],null),l=null==(r=[].concat(s(t)))[0]?m:r[0],$=null==r[1]?m:r[1],u=h("Arguments").$new(l),l=l.$updated(m,u.$rewritten()),i(u.$initialization())&&($=i(c=$)?c:o.$s("nil"),$=o.$prepend_to_body($,u.$initialization())),t.$updated(m,[l,$])})),function(t,n,a){var _=r(t,n,"Arguments"),p=[_].concat(a),d=e.$r(p),f=_.$$prototype;f.counter=f.args=f.initialization=m,_.$attr_reader("rewritten","initialization"),o(_,"$initialize",(function(e){var t=this;return t.args=e,t.rewritten=[],t.initialization=[],t.rewriter=d("MlhsRewriter").$new(),t["$split!"]()})),o(_,"$reset_tmp_counter!",l("counter",0)),o(_,"$new_mlhs_tmp",(function(){var e,t=this;return t.counter=i(e=t.counter)?e:0,t.counter=$(t.counter,1),"$mlhs_tmp"+t.counter})),o(_,"$split!",(function(){var e=this;return u(e.args.$children(),"each",[],(function e(t){var r=null==e.$$s?this:e.$$s,n=m,a=m,s=m;return null==r.rewriter&&(r.rewriter=m),null==r.initialization&&(r.initialization=m),null==r.rewritten&&(r.rewritten=m),null==t&&(t=m),c(t.$type(),"mlhs")?(n=r.$new_mlhs_tmp(),a=r.$s("lvar",n),s=r.rewriter.$process(t),r.initialization["$<<"](r.$s("masgn",s,a)),r.rewritten["$<<"](r.$s("arg",n).$updated(m,m,new Map([["meta",new Map([["arg_name",n]])]])))):r.rewritten["$<<"](t)}),{$$s:e}),c(e.initialization.$length(),1)?e.initialization=e.initialization["$[]"](0):i(e.initialization["$empty?"]())?e.initialization=m:e.initialization=u(e,"s",["begin"].concat(s(e.initialization)))}))}(f[0],h("Base"),f),function(e,t){var n=r(e,t,"MlhsRewriter");return o(n,"$on_arg",(function(e){return e.$updated("lvasgn")})),o(n,"$on_restarg",(function(e){var t;return t=e.$children()["$[]"](0),i(t)?this.$s("splat",e.$updated("lvasgn")):this.$s("splat")}))}(f[0],h("Base"))}(d[0],f("Base"),d)}(d[0],d)}(p[0],p)},Opal.modules["opal/rewriters/arguments"]=function(e){var t=e.module,r=e.klass,n=e.send,a=e.truthy,s=e.def,i=[],o=e.nil;return e.add_stubs("attr_reader,each,type,<<,any?,raise,!,nil?,has_any_kwargs?,can_inline_kwargs?,empty?"),function(e,i){var l=[t(e,"Opal")].concat(i);return function(e,i){return function(e,t){var i=r(e,null,"Arguments"),l=i.$$prototype;return l.restarg=l.postargs=l.kwargs=l.kwoptargs=l.kwrestarg=l.optargs=o,i.$attr_reader("args","optargs","restarg","postargs","kwargs","kwoptargs","kwrestarg","kwnilarg","shadowargs","blockarg"),s(i,"$initialize",(function(e){var t=this;return t.args=[],t.optargs=[],t.restarg=o,t.postargs=[],t.kwargs=[],t.kwoptargs=[],t.kwrestarg=o,t.kwnilarg=!1,t.shadowargs=[],t.blockarg=o,n(e,"each",[],(function e(t){var r=null==e.$$s?this:e.$$s;switch(null==r.optargs&&(r.optargs=o),null==r.restarg&&(r.restarg=o),null==r.postargs&&(r.postargs=o),null==r.args&&(r.args=o),null==r.kwargs&&(r.kwargs=o),null==r.kwoptargs&&(r.kwoptargs=o),null==r.shadowargs&&(r.shadowargs=o),null==t&&(t=o),t.$type().valueOf()){case"arg":case"mlhs":return(a(r.restarg)||a(r.optargs["$any?"]())?r.postargs:r.args)["$<<"](t);case"optarg":return r.optargs["$<<"](t);case"restarg":return r.restarg=t;case"kwarg":return r.kwargs["$<<"](t);case"kwoptarg":return r.kwoptargs["$<<"](t);case"kwnilarg":return r.kwnilarg=!0;case"kwrestarg":return r.kwrestarg=t;case"shadowarg":return r.shadowargs["$<<"](t);case"blockarg":return r.blockarg=t;default:return r.$raise("Unsupported arg type "+t.$type())}}),{$$s:t})})),s(i,"$has_post_args?",(function(){var e,t=this,r=o;return a(e=a(r=t.restarg["$nil?"]()["$!"]())?r:t.postargs["$any?"]())?e:a(r=t["$has_any_kwargs?"]())?t["$can_inline_kwargs?"]()["$!"]():r})),s(i,"$has_any_kwargs?",(function(){var e,t,r=this;return a(e=a(t=r.kwargs["$any?"]())?t:r.kwoptargs["$any?"]())?e:r.kwrestarg["$nil?"]()["$!"]()})),s(i,"$can_inline_kwargs?",(function(){var e,t,r=this;return a(e=a(t=r.optargs["$empty?"]())?r.restarg["$nil?"]():t)?r.postargs["$empty?"]():e}))}([t(e,"Rewriters")].concat(i)[0])}(l[0],l)}(i[0],i)},Opal.modules["opal/rewriters/inline_args"]=function(e){var t=e.module,r=e.klass,n=e.send2,a=e.find_super,s=e.to_a,i=e.truthy,o=e.def,l=e.const_set,$=e.ensure_kwargs,u=e.get_kwarg,c=e.send,_=e.eqeq,p=e.Opal,m=e.top,d=[],f=e.nil,h=e.$$$;return e.add_stubs("require,s,new,updated,inline,prepend_to_body,initialization,attr_reader,freeze,children,each,send,any?,blockarg,<<,shadowargs,args,==,has_post_args?,length,has_any_kwargs?,can_inline_kwargs?,kwargs,kwoptargs,kwrestarg,postargs,optargs,args_to_keep,restarg,[]"),m.$require("opal/rewriters/base"),m.$require("opal/rewriters/arguments"),function(m,d){var g=[t(m,"Opal")].concat(d);return function(m,d){var g=[t(m,"Rewriters")].concat(d),b=e.$r(g);return function(t,m,d){var g=r(t,m,"InlineArgs"),b=[g].concat(d),v=e.$r(b);return o(g,"$on_def",(function e(t){var r,o,l,$,u=this,c=f,_=f,p=f;return e.$$p=null,t=n(u,a(u,"on_def",e,!1,!0),"on_def",[t],null),o=null==(r=[].concat(s(t)))[0]?f:r[0],c=null==r[1]?f:r[1],_=null==r[2]?f:r[2],_=i(l=_)?l:u.$s("nil"),p=v("Initializer").$new(c,new Map([["type","def"]])),$=c.$updated(f,p.$inline()),_=u.$prepend_to_body(_,p.$initialization()),t.$updated(f,[o,$,_])})),o(g,"$on_defs",(function e(t){var r,o,l,$,u,c=this,_=f,p=f,m=f;return e.$$p=null,t=n(c,a(c,"on_defs",e,!1,!0),"on_defs",[t],null),o=null==(r=[].concat(s(t)))[0]?f:r[0],l=null==r[1]?f:r[1],_=null==r[2]?f:r[2],p=null==r[3]?f:r[3],p=i($=p)?$:c.$s("nil"),m=v("Initializer").$new(_,new Map([["type","defs"]])),u=_.$updated(f,m.$inline()),p=c.$prepend_to_body(p,m.$initialization()),t.$updated(f,[o,l,u,p])})),o(g,"$on_iter",(function e(t){var r,o,l,$=this,u=f,c=f,_=f;return e.$$p=null,t=n($,a($,"on_iter",e,!1,!0),"on_iter",[t],null),u=null==(r=[].concat(s(t)))[0]?f:r[0],c=null==r[1]?f:r[1],c=i(o=c)?o:$.$s("nil"),_=v("Initializer").$new(u,new Map([["type","iter"]])),l=u.$updated(f,_.$inline()),c=$.$prepend_to_body(c,_.$initialization()),t.$updated(f,[l,c])})),function(t,n,a){var p=r(t,n,"Initializer"),m=[p].concat(a),d=e.$r(m),h=p.$$prototype;return h.initialization=h.args=h.inline=f,p.$attr_reader("inline","initialization"),l(m[0],"STEPS",["extract_blockarg","initialize_shadowargs","extract_args","prepare_post_args","prepare_kwargs","extract_optargs","extract_restarg","extract_post_args","extract_kwargs","extract_kwoptargs","extract_kwrestarg"].$freeze()),o(p,"$initialize",(function(e,t){var r,n=this;return t=$(t),r=u(t,"type"),n.args=d("Arguments").$new(e.$children()),n.inline=[],n.initialization=[],n.type=r,c(d("STEPS"),"each",[],(function e(t){return null==t&&(t=f),(null==e.$$s?this:e.$$s).$send(t)}),{$$s:n}),i(n.initialization["$any?"]())?n.initialization=c(n,"s",["begin"].concat(s(n.initialization))):n.initialization=f})),o(p,"$extract_blockarg",(function(){var e=f;return i(e=this.args.$blockarg())?this.initialization["$<<"](e.$updated("extract_blockarg")):f})),o(p,"$initialize_shadowargs",(function(){return c(this.args.$shadowargs(),"each",[],(function e(t){var r=null==e.$$s?this:e.$$s;return null==r.initialization&&(r.initialization=f),null==t&&(t=f),r.initialization["$<<"](t.$updated("initialize_shadowarg"))}),{$$s:this})})),o(p,"$extract_args",(function(){return c(this.args.$args(),"each",[],(function e(t){var r=null==e.$$s?this:e.$$s;return null==r.type&&(r.type=f),null==r.initialization&&(r.initialization=f),null==r.inline&&(r.inline=f),null==t&&(t=f),_(r.type,"iter")&&r.initialization["$<<"](t.$updated("initialize_iter_arg")),r.inline["$<<"](t)}),{$$s:this})})),o(p,"$prepare_post_args",(function(){var e=this;return i(e.args["$has_post_args?"]())?e.initialization["$<<"](e.$s("prepare_post_args",e.args.$args().$length())):f})),o(p,"$prepare_kwargs",(function(){var e=this;return i(e.args["$has_any_kwargs?"]())?(i(e.args["$can_inline_kwargs?"]())?e.inline["$<<"](e.$s("arg","$kwargs")):(e.initialization["$<<"](e.$s("extract_kwargs")),e.inline["$<<"](e.$s("fake_arg"))),e.initialization["$<<"](e.$s("ensure_kwargs_are_kwargs"))):f})),o(p,"$extract_kwargs",(function(){return c(this.args.$kwargs(),"each",[],(function e(t){var r=null==e.$$s?this:e.$$s;return null==r.initialization&&(r.initialization=f),null==t&&(t=f),r.initialization["$<<"](t.$updated("extract_kwarg"))}),{$$s:this})})),o(p,"$extract_kwoptargs",(function(){return c(this.args.$kwoptargs(),"each",[],(function e(t){var r=null==e.$$s?this:e.$$s;return null==r.initialization&&(r.initialization=f),null==t&&(t=f),r.initialization["$<<"](t.$updated("extract_kwoptarg"))}),{$$s:this})})),o(p,"$extract_kwrestarg",(function(){var e=f;return i(e=this.args.$kwrestarg())?this.initialization["$<<"](e.$updated("extract_kwrestarg")):f})),o(p,"$extract_post_args",(function(){return c(this.args.$postargs(),"each",[],(function e(t){var r=null==e.$$s?this:e.$$s;return null==r.initialization&&(r.initialization=f),null==r.inline&&(r.inline=f),null==t&&(t=f),r.initialization["$<<"](t.$updated("extract_post_arg")),r.inline["$<<"](r.$s("fake_arg"))}),{$$s:this})})),o(p,"$extract_optargs",(function(){var e,t=this;return e=t.args["$has_post_args?"](),c(t.args.$optargs(),"each",[],(function t(r){var n,a=null==t.$$s?this:t.$$s,o=f,l=f;return null==a.initialization&&(a.initialization=f),null==a.inline&&(a.inline=f),null==r&&(r=f),i(e)?(o=null==(n=[].concat(s(r)))[0]?f:n[0],l=null==n[1]?f:n[1],a.initialization["$<<"](r.$updated("extract_post_optarg",[o,l,a.$args_to_keep()])),a.inline["$<<"](a.$s("fake_arg"))):(a.inline["$<<"](r.$updated("arg")),a.initialization["$<<"](r.$updated("extract_optarg")))}),{$$s:t})})),o(p,"$extract_restarg",(function(){var e=this,t=f,r=f;return i(t=e.args.$restarg())?(r=t.$children()["$[]"](0),e.initialization["$<<"](t.$updated("extract_restarg",[r,e.$args_to_keep()])),e.inline["$<<"](e.$s("fake_arg"))):f})),o(p,"$args_to_keep",(function(){return this.args.$postargs().$length()}))}(b[0],h(h(p,"Rewriters"),"Base"),b)}(g[0],b("Base"),g)}(g[0],g)}(d[0],d)},Opal.modules["opal/rewriters/numblocks"]=function(e){var t=e.module,r=e.klass,n=e.to_ary,a=e.send,s=e.to_a,i=e.def,o=e.top,l=[],$=e.nil;return e.add_stubs("require,children,s,gen_args,map"),o.$require("opal/rewriters/base"),function(o,l){var u=[t(o,"Opal")].concat(l);return function(o,l){var u=[t(o,"Rewriters")].concat(l),c=e.$r(u);return function(t,o){var l=r(t,o,"Numblocks");return i(l,"$on_numblock",(function(e){var t,r,i,o,l,u=this;return r=e.$children(),i=null==(t=n(r))[0]?$:t[0],o=null==t[1]?$:t[1],l=null==t[2]?$:t[2],u.$s("block",i,a(u,"s",["args"].concat(s(u.$gen_args(o)))),l)})),i(l,"$gen_args",(function(t){return a(e.Range.$new(1,t,!1),"map",[],(function e(t){return null==t&&(t=$),(null==e.$$s?this:e.$$s).$s("arg","_"+t)}),{$$s:this})}))}(u[0],c("Base"))}(u[0],u)}(l[0],l)},Opal.modules["opal/rewriters/returnable_logic"]=function(e){var t=e.module,r=e.klass,n=e.truthy,a=e.rb_plus,s=e.def,i=e.rb_minus,o=e.assign_ivar_val,l=e.to_a,$=e.send2,u=e.find_super,c=e.slice,_=e.send,p=e.eqeq,m=e.top,d=[],f=e.nil;return e.add_stubs("require,+,-,children,check_control_flow!,[]=,meta,s,next_tmp,build_if_from_when,free_tmp,[],process,updated,==,count,first,delete,private,type,error,build_rule_from_parts,empty?"),m.$require("opal/rewriters/base"),function(m,d){var h=[t(m,"Opal")].concat(d);return function(m,d){var h=[t(m,"Rewriters")].concat(d),g=e.$r(h);return function(e,t){var m=r(e,t,"ReturnableLogic");return m.$$prototype.counter=f,s(m,"$next_tmp",(function(){var e,t=this;return t.counter=n(e=t.counter)?e:0,t.counter=a(t.counter,1),"$ret_or_"+t.counter})),s(m,"$free_tmp",(function(){return this.counter=i(this.counter,1)})),s(m,"$reset_tmp_counter!",o("counter",f)),s(m,"$on_if",(function e(t){var r,a=e.$$p||f,s=this,i=f;return e.$$p=null,i=null==(r=[].concat(l(t.$children())))[0]?f:r[0],s["$check_control_flow!"](i),n(i)&&i.$meta()["$[]="]("if_test",!0),$(s,u(s,"on_if",e,!1,!0),"on_if",[t],a)})),s(m,"$on_case",(function(e){var t,r,a,s,i,o,$=this,u=f,_=f;return a=null==(t=[].concat(l(e.$children())))[0]?f:t[0],r=t.length-1,s=c(t,1,r=r<1?1:r),u=null==t[r]?f:t[r],u=n(i=u)?i:$.$s("nil"),n(a)&&(_=$.$next_tmp()),o=$.$build_if_from_when(e,a,_,s,u),n(a)&&$.$free_tmp(),o})),s(m,"$on_or",(function(e){var t,r=this,a=f,s=f,i=f,o=f;return a=null==(t=[].concat(l(e.$children())))[0]?f:t[0],s=null==t[1]?f:t[1],r["$check_control_flow!"](a),n(e.$meta()["$[]"]("if_test"))?(a.$meta()["$[]="]("if_test",(t=["if_test",!0],_(s.$meta(),"[]=",t),t[t.length-1])),i=r.$process(e.$updated("if",[a,r.$s("true"),s]))):(o=r.$next_tmp(),i=r.$process(e.$updated("if",[r.$s("lvasgn",o,a),r.$s("js_tmp",o),s])),r.$free_tmp()),i})),s(m,"$on_and",(function(e){var t,r=this,a=f,s=f,i=f,o=f;return a=null==(t=[].concat(l(e.$children())))[0]?f:t[0],s=null==t[1]?f:t[1],r["$check_control_flow!"](a),n(e.$meta()["$[]"]("if_test"))?(a.$meta()["$[]="]("if_test",(t=["if_test",!0],_(s.$meta(),"[]=",t),t[t.length-1])),i=r.$process(e.$updated("if",[a,s,r.$s("false")]))):(o=r.$next_tmp(),i=r.$process(e.$updated("if",[r.$s("lvasgn",o,a),s,r.$s("js_tmp",o)])),r.$free_tmp()),i})),s(m,"$on_begin",(function e(t){var r=e.$$p||f;return e.$$p=null,n(t.$meta()["$[]"]("if_test"))&&p(t.$children().$count(),1)&&t.$children().$first().$meta()["$[]="]("if_test",!0),t.$meta().$delete("if_test"),$(this,u(this,"on_begin",e,!1,!0),"on_begin",[t],r)})),m.$private(),s(m,"$check_control_flow!",(function(e){switch(e.$type().valueOf()){case"break":case"next":case"redo":case"retry":case"return":return this.$error("void value expression");default:return f}})),s(m,"$build_if_from_when",(function(e,t,r,a,s){var i,o,$,u,_,p=this,m=f,d=f;return m=null==(i=[].concat(l(a)))[0]?f:i[0],d=c(i,1),o=(i=[].concat(l(m.$children()))).length-1,$=c(i,0,o=o<0?0:o),u=null==i[o]?f:i[o],_=p.$build_rule_from_parts(e,t,r,$),m.$updated("if",[_,p.$process(u),n(d["$empty?"]())?p.$process(s):p.$build_if_from_when(f,f,r,d,s)])})),s(m,"$build_rule_from_parts",(function(e,t,r,a){var s,i,o=this,$=f,u=f,_=f,m=f,d=f;return t=n(e)&&n(r)?e.$updated("lvasgn",[r,o.$process(t)]):o.$s("js_tmp",r),$=null==(s=[].concat(l(a)))[0]?f:s[0],u=c(s,1),i=p($.$type(),"splat")?(_=$.$children().$first(),m=o.$next_tmp(),d=o.$s("send",o.$process(_),"any?",o.$s("iter",o.$s("args",o.$s("arg",m)),o.$build_rule_from_parts(f,f,r,[o.$s("lvar",m)]))),n(e)&&n(r)?o.$s("begin",t,d):d):n(r)?o.$s("send",o.$process($),"===",t):o.$process($),n(u["$empty?"]())?i:o.$s("if",i,o.$s("true"),o.$build_rule_from_parts(f,f,r,u))}))}(h[0],g("Base"))}(h[0],h)}(d[0],d)},Opal.modules["opal/rewriters/forward_args"]=function(e){var t=e.module,r=e.klass,n=e.def,a=e.not,s=e.send2,i=e.find_super,o=e.eqeq,l=e.truthy,$=e.range,u=e.to_a,c=e.neqeq,_=e.top,p=[],m=e.nil;return e.add_stubs("require,process,s,!,first,children,updated,==,type,last,[],!=,class"),_.$require("opal/rewriters/base"),function(_,p){var d=[t(_,"Opal")].concat(p);return function(_,p){var d=[t(_,"Rewriters")].concat(p),f=e.$r(d);return function(t,_,p){var d=r(t,_,"ForwardArgs"),f=[d].concat(p),h=e.$r(f);return n(d,"$on_forward_args",(function(e){var t=this;return t.$process(t.$s("args",t.$s("forward_arg","$")))})),n(d,"$on_forwarded_restarg",(function(e){var t=this;return t.$process(t.$s("splat",t.$s("lvar","$fwd_rest")))})),n(d,"$on_forwarded_kwrestarg",(function(e){var t=this;return t.$process(t.$s("kwsplat",t.$s("lvar","$fwd_kwrest")))})),n(d,"$on_block_pass",(function e(t){var r=e.$$p||m,n=this;return e.$$p=null,a(t.$children().$first())?n.$process(t.$updated(m,[n.$s("lvar","$fwd_block")])):s(n,i(n,"on_block_pass",e,!1,!0),"on_block_pass",[t],r)})),n(d,"$on_args",(function e(t){var r=e.$$p||m,n=this,a=m;return e.$$p=null,l(t.$children().$last())&&o(t.$children().$last().$type(),"forward_arg")?(a=t.$children()["$[]"]($(0,-2,!1)),s(n,i(n,"on_args",e,!1,!0),"on_args",[t.$updated(m,[].concat(u(a)).concat([n.$s("restarg","$fwd_rest"),n.$s("blockarg","$fwd_block")]))],null)):s(n,i(n,"on_args",e,!1,!0),"on_args",[t],r)})),n(d,"$on_restarg",(function e(t){var r=e.$$p||m;return e.$$p=null,a(t.$children().$first())?t.$updated(m,["$fwd_rest"]):s(this,i(this,"on_restarg",e,!1,!0),"on_restarg",[t],r)})),n(d,"$on_kwrestarg",(function e(t){var r=e.$$p||m;return e.$$p=null,a(t.$children().$first())?t.$updated(m,["$fwd_kwrest"]):s(this,i(this,"on_kwrestarg",e,!1,!0),"on_kwrestarg",[t],r)})),n(d,"$on_blockarg",(function e(t){var r=e.$$p||m;return e.$$p=null,a(t.$children().$first())?t.$updated(m,["$fwd_block"]):s(this,i(this,"on_blockarg",e,!1,!0),"on_blockarg",[t],r)})),n(d,"$on_send",(function e(t){var r=e.$$p||m,n=this,a=m;return e.$$p=null,l(t.$children().$last())&&c(t.$children().$last().$class(),h("Symbol"))&&o(t.$children().$last().$type(),"forwarded_args")?(a=t.$children()["$[]"]($(0,-2,!1)),s(n,i(n,"on_send",e,!1,!0),"on_send",[t.$updated(m,[].concat(u(a)).concat([n.$s("splat",n.$s("lvar","$fwd_rest")),n.$s("block_pass",n.$s("lvar","$fwd_block"))]))],null)):s(n,i(n,"on_send",e,!1,!0),"on_send",[t],r)}))}(d[0],f("Base"),d)}(d[0],d)}(p[0],p)},Opal.modules["opal/rewriters/thrower_finder"]=function(e){var t=e.module,r=e.klass,n=e.def,a=e.send2,s=e.find_super,i=e.send,o=e.find_block_super,l=e.truthy,$=e.range,u=e.slice,c=[],_=e.nil,p=e.$$$;return e.add_stubs("tracking,pushing,to_proc,on_loop,detect,[],children,!=,type,private,each,push,map,last,[]=,meta"),function(c,m){var d=[t(c,"Opal")].concat(m);return function(c,m){var d=[t(c,"Rewriters")].concat(m),f=e.$r(d);return function(t,c){var p=r(t,c,"ThrowerFinder"),m=p.$$prototype;return m.break_stack=m.redo_stack=m.retry_stack=m.rescue_else_stack=_,n(p,"$initialize",(function(){var e=this;return e.break_stack=[],e.redo_stack=[],e.retry_stack=[],e.rescue_else_stack=[]})),n(p,"$on_break",(function e(t){var r=e.$$p||_,n=this;return e.$$p=null,n.$tracking("break",n.break_stack),a(n,s(n,"on_break",e,!1,!0),"on_break",[t],r)})),n(p,"$on_redo",(function e(t){var r=e.$$p||_,n=this;return e.$$p=null,n.$tracking("redo",n.redo_stack),a(n,s(n,"on_redo",e,!1,!0),"on_redo",[t],r)})),n(p,"$on_retry",(function e(t){var r=e.$$p||_,n=this;return e.$$p=null,n.$tracking("retry",n.retry_stack),a(n,s(n,"on_retry",e,!1,!0),"on_retry",[t],r)})),n(p,"$on_iter",(function e(t){var r=e.$$p||_,n=this;return e.$$p=null,i(n,"pushing",[[n.break_stack,t]],(function n(){var s=null==n.$$s?this:n.$$s;return a(s,o(s,"on_iter",n.$$def||e,!1,!0),"on_iter",[t],r)}),{$$s:n})})),n(p,"$on_loop",(function e(t){var r=e.$$p||_,n=this;return e.$$p=null,i(n,"pushing",[[n.redo_stack,t],[n.break_stack,_]],r.$to_proc())})),n(p,"$on_for",(function e(t){var r=e.$$p||_;return e.$$p=null,i(this,"on_loop",[t],(function n(){var s=null==n.$$s?this:n.$$s;return a(s,o(s,"on_for",n.$$def||e,!1,!0),"on_for",[t],r)}),{$$s:this})})),n(p,"$on_while",(function e(t){var r=e.$$p||_;return e.$$p=null,i(this,"on_loop",[t],(function n(){var s=null==n.$$s?this:n.$$s;return a(s,o(s,"on_while",n.$$def||e,!1,!0),"on_while",[t],r)}),{$$s:this})})),n(p,"$on_while_post",(function e(t){var r=e.$$p||_;return e.$$p=null,i(this,"on_loop",[t],(function n(){var s=null==n.$$s?this:n.$$s;return a(s,o(s,"on_while_post",n.$$def||e,!1,!0),"on_while_post",[t],r)}),{$$s:this})})),n(p,"$on_until",(function e(t){var r=e.$$p||_;return e.$$p=null,i(this,"on_loop",[t],(function n(){var s=null==n.$$s?this:n.$$s;return a(s,o(s,"on_until",n.$$def||e,!1,!0),"on_until",[t],r)}),{$$s:this})})),n(p,"$on_until_post",(function e(t){var r=e.$$p||_;return e.$$p=null,i(this,"on_loop",[t],(function n(){var s=null==n.$$s?this:n.$$s;return a(s,o(s,"on_until_post",n.$$def||e,!1,!0),"on_until_post",[t],r)}),{$$s:this})})),n(p,"$on_defined",(function e(t){var r=e.$$p||_,n=this;return e.$$p=null,i(n,"pushing",[[n.redo_stack,_],[n.break_stack,_],[n.retry_stack,_]],(function n(){var s=null==n.$$s?this:n.$$s;return a(s,o(s,"on_defined",n.$$def||e,!1,!0),"on_defined",[t],r)}),{$$s:n})})),n(p,"$on_ensure",(function e(t){var r=e.$$p||_,n=this;return e.$$p=null,i(n,"pushing",[[n.rescue_else_stack,t]],(function n(){var s=null==n.$$s?this:n.$$s;return a(s,o(s,"on_ensure",n.$$def||e,!1,!0),"on_ensure",[t],r)}),{$$s:n})})),n(p,"$on_rescue",(function e(t){var r=e.$$p||_,n=this;return e.$$p=null,l(i(t.$children()["$[]"]($(1,-1,!1)),"detect",[],(function(e){var t;return null==e&&(e=_),l(t=e)?e.$type()["$!="]("resbody"):t})))&&n.$tracking("rescue_else",n.rescue_else_stack),i(n,"pushing",[[n.rescue_else_stack,_],[n.retry_stack,t]],(function n(){var s=null==n.$$s?this:n.$$s;return a(s,o(s,"on_rescue",n.$$def||e,!1,!0),"on_rescue",[t],r)}),{$$s:n})})),p.$private(),n(p,"$pushing",(function t(r){var n,a,s,o=t.$$p||_;return t.$$p=null,n=u(arguments),i(a=n,"each",[],(function(e,t){return null==e&&(e=_),null==t&&(t=_),e.$push(t)})),s=e.yieldX(o,[]),i(i(a,"map",[],"first".$to_proc()),"each",[],"pop".$to_proc()),s}),-1),n(p,"$tracking",(function(e,t){var r;return l(t.$last())?(r=["has_"+e,!0],i(t.$last().$meta(),"[]=",r),r[r.length-1]):_}))}(d[0],p(p(f("Opal"),"Rewriters"),"Base"))}(d[0],d)}(c[0],c)},Opal.modules["opal/rewriter"]=function(e){var t=e.module,r=e.klass,n=e.truthy,a=e.def,s=e.ensure_kwargs,i=e.hash_get,o=e.eqeq,l=e.assign_ivar,$=e.send,u=e.top,c=[],_=e.nil,p=e.$$$;return e.add_stubs("require,<<,list,delete,==,!=,use,disabled?,class,each,rewritter_disabled?,new,process"),u.$require("opal/rewriters/opal_engine_check"),u.$require("opal/rewriters/targeted_patches"),u.$require("opal/rewriters/for_rewriter"),u.$require("opal/rewriters/js_reserved_words"),u.$require("opal/rewriters/block_to_iter"),u.$require("opal/rewriters/dot_js_syntax"),u.$require("opal/rewriters/pattern_matching"),u.$require("opal/rewriters/logical_operator_assignment"),u.$require("opal/rewriters/binary_operator_assignment"),u.$require("opal/rewriters/hashes/key_duplicates_rewriter"),u.$require("opal/rewriters/dump_args"),u.$require("opal/rewriters/deduplicate_arg_name"),u.$require("opal/rewriters/mlhs_args"),u.$require("opal/rewriters/inline_args"),u.$require("opal/rewriters/numblocks"),u.$require("opal/rewriters/returnable_logic"),u.$require("opal/rewriters/forward_args"),u.$require("opal/rewriters/thrower_finder"),function(u,c){var m=[t(u,"Opal")].concat(c);return function(t,u,c){var m=r(t,null,"Rewriter"),d=[m].concat(c),f=e.$r(d);return m.$$prototype.sexp=_,m.disabled=!1,function(t,r){a(t,"$list",(function(){var e,t=this;return null==t.list&&(t.list=_),t.list=n(e=t.list)?e:[]})),a(t,"$use",(function(e){return this.$list()["$<<"](e)})),a(t,"$delete",(function(e){return this.$list().$delete(e)})),a(t,"$disable",(function t(r){var a,o=t.$$p||_,l=this,$=_,u=_;return null==l.disabled&&(l.disabled=_),t.$$p=null,r=s(r),null==(a=i(r,"except"))&&(a=_),function(){try{return $=l.disabled,l.disabled=!n(u=a)||u,e.yieldX(o,[])}finally{l.disabled=$}}()}),-1),a(t,"$disabled?",(function(){var e=this;return null==e.disabled&&(e.disabled=_),e.disabled["$=="](!0)})),a(t,"$rewritter_disabled?",(function(e){var t=this;return null==t.disabled&&(t.disabled=_),!o(t.disabled,!1)&&t.disabled["$!="](e)}))}(e.get_singleton_class(m)),m.$use(p(f("Rewriters"),"OpalEngineCheck")),m.$use(p(f("Rewriters"),"ForRewriter")),m.$use(p(f("Rewriters"),"Numblocks")),m.$use(p(f("Rewriters"),"ForwardArgs")),m.$use(p(f("Rewriters"),"BlockToIter")),m.$use(p(f("Rewriters"),"TargetedPatches")),m.$use(p(f("Rewriters"),"DotJsSyntax")),m.$use(p(f("Rewriters"),"PatternMatching")),m.$use(p(f("Rewriters"),"JsReservedWords")),m.$use(p(f("Rewriters"),"LogicalOperatorAssignment")),m.$use(p(f("Rewriters"),"BinaryOperatorAssignment")),m.$use(p(p(f("Rewriters"),"Hashes"),"KeyDuplicatesRewriter")),m.$use(p(f("Rewriters"),"ReturnableLogic")),m.$use(p(f("Rewriters"),"DeduplicateArgName")),m.$use(p(f("Rewriters"),"DumpArgs")),m.$use(p(f("Rewriters"),"MlhsArgs")),m.$use(p(f("Rewriters"),"InlineArgs")),m.$use(p(f("Rewriters"),"ThrowerFinder")),a(m,"$initialize",l("sexp")),a(m,"$process",(function(){var e=this;return n(e.$class()["$disabled?"]())||$(e.$class().$list(),"each",[],(function e(t){var r=null==e.$$s?this:e.$$s,a=_;return null==r.sexp&&(r.sexp=_),null==t&&(t=_),n(r.$class()["$rewritter_disabled?"](t))?_:(a=t.$new(),r.sexp=a.$process(r.sexp))}),{$$s:e}),e.sexp}))}(m[0],0,m)}(c[0],c)},Opal.modules["opal/parser/source_buffer"]=function(e){var t=e.module,r=e.klass,n=e.truthy,a=e.send2,s=e.find_super,i=e.defs,o=[],l=e.nil,$=e.$$$;return function(o,u){var c=[t(o,"Opal")].concat(u);return function(o,u){var c=[t(o,"Parser")].concat(u);return function(t,o,u){var c=r(t,o,"SourceBuffer"),_=[c].concat(u),p=e.$r(_);return i(c,"$recognize_encoding",(function e(t){var r,i=e.$$p||l;return e.$$p=null,n(r=a(this,s(this,"recognize_encoding",e,!1,!0),"recognize_encoding",[t],i))?r:$(p("Encoding"),"UTF_8")}))}(c[0],$($($("Parser"),"Source"),"Buffer"),c)}(c[0],c)}(o[0],o)},Opal.modules["opal/parser/default_config"]=function(e){var t=e.module,r=e.send2,n=e.find_super,a=e.def,s=e.lambda,i=e.send,o=e.defs,l=e.slice,$=e.truthy,u=e.Opal,c=[],_=e.nil,p=e.$$$;return e.add_stubs("attr_accessor,all_errors_are_fatal=,diagnostics,ignore_warnings=,consumer=,diagnostics_consumer,extend,diagnostics_consumer=,new,rewrite,process,default_parser,default_parser_class"),function(c,m){var d=[t(c,"Opal")].concat(m);return function(c,m){var d=t(c,"Parser"),f=[d].concat(m);return function(c,m){var d=t(c,"DefaultConfig"),f=[d].concat(m),h=e.$r(f);(function(e){var s=t(e,"ClassMethods");s.$attr_accessor("diagnostics_consumer"),a(s,"$default_parser",(function e(){var t=e.$$p||_,a=this,s=_;return e.$$p=null,(s=r(a,n(a,"default_parser",e,!1,!0),"default_parser",[],t)).$diagnostics()["$all_errors_are_fatal="](!0),s.$diagnostics()["$ignore_warnings="](!1),s.$diagnostics()["$consumer="](a.$diagnostics_consumer()),s}))})(f[0]),o(d,"$included",(function(e){var t;return e.$extend(h("ClassMethods")),t=[s((function(e){return null==e&&(e=_),_}))],i(e,"diagnostics_consumer=",t),t[t.length-1]})),a(d,"$initialize",(function e(t){return e.$$p=null,l(arguments),r(this,n(this,"initialize",e,!1,!0),"initialize",[p(p(h("Opal"),"AST"),"Builder").$new()],null)}),-1),a(d,"$parse",(function e(t){var a,s,i,o=e.$$p||_,l=this;return e.$$p=null,a=$(s=r(l,n(l,"parse",e,!1,!0),"parse",[t],o))?s:p(p(u,"AST"),"Node").$new("nil"),i=p(p(u,"AST"),"Node").$new("top",[a]),l.$rewrite(i)})),a(d,"$rewrite",(function(e){return p(h("Opal"),"Rewriter").$new(e).$process()}))}(f[0],f),function(e,t){return e.$attr_accessor("default_parser_class"),a(e,"$default_parser",(function(){return this.$default_parser_class().$default_parser()}))}(e.get_singleton_class(d))}(d[0],d)}(c[0],c)},Opal.modules["opal/parser/with_ruby_lexer"]=function(e){var t=e.klass,r=e.send,n=[],a=e.$r(n),s=(e.nil,e.$$$);return e.add_stubs("include,default_parser_class="),function(n,a,i){var o,l=t(n,a,"WithRubyLexer"),$=[l].concat(i),u=e.$r($);return l.$include(s(s(u("Opal"),"Parser"),"DefaultConfig")),o=[l],r(s(u("Opal"),"Parser"),"default_parser_class=",o),o[o.length-1]}(s(a("Opal"),"Parser"),s(a("Parser"),"Ruby32"),n)},Opal.modules["opal/parser/patch"]=function(e){var t=e.klass,r=e.truthy,n=e.send,a=e.def,s=e.rb_plus,i=e.eqeq,o=e.not,l=e.rb_le,$=e.eqeqeq,u=e.rb_minus,c=e.rb_gt,_=e.rb_times,p=e.rb_divide,m=e.thrower,d=e.module,f=[],h=e.$r(f),g=e.nil,b=e.$$$;return e.add_stubs("source,unpack,source_buffer=,source_pts=,+,to_a,lines,end_with?,<<,map,chomp,=~,diagnostic,nil?,new,type,updated,dedent,first,children,==,empty?,interrupt,compact,encoding,split,force_encoding,length,map!,each_with_index,!,each_char,<=,===,-,>,*,/,[]=,[],join,respond_to?,send,value"),function(e,s){var i=t(e,null,"Lexer"),o=i.$$prototype;o.source_buffer=o.strings=o.source_pts=g,a(i,"$source_buffer=",(function(e){var t,a=this,s=g;return a.source_buffer=e,r(a.source_buffer)?(s=a.source_buffer.$source(),a.source_pts=s.$unpack("U*")):a.source_pts=g,r(a.strings)?(a.strings["$source_buffer="](a.source_buffer),t=[a.source_pts],n(a.strings,"source_pts=",t),t[t.length-1]):g}))}(h("Parser")),function(n,i){var o=t(n,null,"Literal"),l=o.$$prototype;l.buffer_s=l.buffer=g,e.udef(o,"$extend_string"),a(o,"$extend_string",(function(e,t,n){var a,i=this;return i.buffer_s=r(a=i.buffer_s)?a:t,i.buffer_e=n,i.buffer=s(i.buffer,e)}))}(b(h("Parser"),"Lexer")),function(e,s){var i=t(e,null,"Buffer"),o=i.$$prototype;o.lines=o.source=g,a(i,"$source_lines",(function(){var e,t=this,a=g;return t.lines=r(e=t.lines)?e:(a=t.source.$lines().$to_a(),r(t.source["$end_with?"]("\n"))&&a["$<<"](""),n(a,"map",[],(function(e){return null==e&&(e=g),e.$chomp("\n")})))}))}(b(h("Parser"),"Source")),function(e,s){var o=t(e,null,"Default");a(o,"$check_lvar_name",(function(e,t){return r(e["$=~"](new RegExp("^[\\p{Ll}|_][\\p{L}\\p{Nl}\\p{Nd}_]*$","u")))?g:this.$diagnostic("error","lvar_name",new Map([["name",e]]),t)})),a(o,"$dedent_string",(function(e,t){var a=g,s=g;if(!r(t["$nil?"]()))switch(a=b(b(b("Parser"),"Lexer"),"Dedenter").$new(t),e.$type().valueOf()){case"str":e=e.$updated(g,[a.$dedent(e.$children().$first())]);break;case"dstr":case"xstr":s=n(e.$children(),"map",[],(function(e){if(null==e&&(e=g),i(e.$type(),"str")){if(e=e.$updated(g,[a.$dedent(e.$children().$first())]),r(e.$children().$first()["$empty?"]()))return g}else a.$interrupt();return e})),e=e.$updated(g,s.$compact())}return e}))}(b(h("Parser"),"Builders")),function(d,f,h){var v=t(d,null,"Dedenter"),y=[v].concat(h),x=e.$r(y);a(v,"$dedent",(function(t){var a,d=g;return a=t.$encoding(),d=t.$force_encoding(b(x("Encoding"),"BINARY")).$split("\\\n"),i(d.$length(),1)?d=[t.$force_encoding(a)]:n(d,"map!",[],(function(e){return null==e&&(e=g),e.$force_encoding(a)})),n(d,"each_with_index",[],(function t(a,f){var h,b=null==t.$$s?this:t.$$s,v=g,y=g;return null==b.at_line_begin&&(b.at_line_begin=g),null==b.dedent_level&&(b.dedent_level=g),null==a&&(a=g),null==f&&(f=g),i(f,0)&&o(b.at_line_begin)?g:(v=b.dedent_level,y=0,function(){try{var e=m("break");return n(a,"each_char",[],(function t(n){var a,i=null==t.$$s?this:t.$$s;return null==i.dedent_level&&(i.dedent_level=g),null==n&&(n=g),r(l(v,0))&&e.$throw(g,t.$$is_lambda),$(" ",a=n)?(y=s(y,1),v=u(v,1)):$("\t",a)?(r(c(_(x("TAB_WIDTH"),s(p(y,x("TAB_WIDTH")),1)),i.dedent_level))&&e.$throw(g,t.$$is_lambda),y=s(y,1),v=u(v,x("TAB_WIDTH"))):void e.$throw(g,t.$$is_lambda)}),{$$s:b})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}(),h=[f,a["$[]"](e.Range.$new(y,-1,!1))],n(d,"[]=",h),h[h.length-1])}),{$$s:this}),t=d.$join(),this.at_line_begin=t["$end_with?"]("\n"),t}))}(b(h("Parser"),"Lexer"),0,f),function(t){var s=d(t,"Mixin");e.udef(s,"$process"),a(s,"$process",(function(e){var t,a,s,i=this,o=g,l=g;return null==i._on_handler_cache&&(i._on_handler_cache=g),r(e["$nil?"]())?g:(i._on_handler_cache=r(o=i._on_handler_cache)?o:new Map,a=e.$type(),s=r(o=i._on_handler_cache["$[]"](a))?o:(t=[a,(l="on_"+a,r(i["$respond_to?"](l))||(l="handler_missing"),l)],n(i._on_handler_cache,"[]=",t),t[t.length-1]),r(o=i.$send(s,e))?o:e)}))}(b(h("AST"),"Processor")),function(r,n){var s=t(r,null,"Default");return e.udef(s,"$string_value"),a(s,"$string_value",(function(e){return this.$value(e)}))}(b(h("Parser"),"Builders"))},Opal.modules["opal/parser"]=function(e){var t=e.top;e.nil;return e.add_stubs("require"),t.$require("opal/ast/builder"),t.$require("opal/rewriter"),t.$require("opal/parser/source_buffer"),t.$require("opal/parser/default_config"),t.$require("opal/parser/with_ruby_lexer"),t.$require("opal/parser/patch")},Opal.modules["opal/fragment"]=function(e){var t=e.module,r=e.klass,n=e.def,a=e.truthy,s=e.eqeq,i=e.rb_plus,o=e.rb_gt,l=e.to_a,$=e.not,u=[],c=e.nil,_=e.$$$;return e.add_stubs("attr_reader,to_s,inspect,type,[],meta,source_map_name_for,sexp,==,class,+,parent,>,!,first,children,loc,respond_to?,dot,selector,operator,begin,line,location,column"),function(u,p){var m=[t(u,"Opal")].concat(p);return function(t,u,p){var m=r(t,null,"Fragment"),d=[m].concat(p),f=e.$r(d),h=m.$$prototype;return h.code=h.scope=h.sexp=c,m.$attr_reader("code"),n(m,"$initialize",(function(e,t,r){var n=this;return null==r&&(r=c),n.code=e.$to_s(),n.sexp=r,n.scope=t}),-3),n(m,"$inspect",(function(){return"f("+this.code.$inspect()+")"})),n(m,"$source_map_name_for",(function(e){var t,r=this,n=c,u=c,p=c,m=c,d=c;switch(e.$type().valueOf()){case"top":switch(e.$meta()["$[]"]("kind").valueOf()){case"require":return"<top (required)>";case"eval":return"(eval)";case"main":return"<main>";default:return c}break;case"begin":case"newline":case"js_return":return a(r.scope)?r.$source_map_name_for(r.scope.$sexp()):c;case"iter":for(n=r.scope,u=1;a(n)&&s(n.$class(),_(f("Nodes"),"IterNode"));)u=i(u,1),n=n.$parent();return a(o(u,1))&&(p=" ("+u+" levels)"),"block"+p+" in "+r.$source_map_name_for(n.$sexp());case"self":return"self";case"module":return m=null==(t=[].concat(l(e)))[0]?c:t[0],"<module:"+r.$source_map_name_for(m)+">";case"class":return m=null==(t=[].concat(l(e)))[0]?c:t[0],"<class:"+r.$source_map_name_for(m)+">";case"const":return n=null==(t=[].concat(l(e)))[0]?c:t[0],d=null==t[1]?c:t[1],$(n)||s(n.$type(),"cbase")?d.$to_s():r.$source_map_name_for(n)+"::"+d;case"int":case"def":case"lvar":case"lvasgn":case"lvdeclare":case"ivar":case"ivasgn":case"gvar":case"cvar":case"cvasgn":case"gvars":case"gvasgn":case"arg":return e.$children().$first();case"defs":case"send":return e.$children()["$[]"](1);case"str":case"xstr":return r.$source_map_name_for(r.scope.$sexp());default:return c}})),n(m,"$source_map_name",(function(){var e=this;return a(e.sexp)?e.$source_map_name_for(e.sexp):c})),n(m,"$location",(function(){var e=this,t=c,r=c;return $(e.sexp)?c:s(e.sexp.$type(),"send")?(t=e.sexp.$loc(),a(t["$respond_to?"]("dot"))?a(r=t.$dot())?r:t.$selector():a(t["$respond_to?"]("operator"))?t.$operator():e.sexp):s(e.sexp.$type(),"iter")&&a(t["$respond_to?"]("begin"))?e.sexp.$loc().$begin():e.sexp})),n(m,"$line",(function(){var e;return(e=this.$location())===c||null==e?c:e.$line()})),n(m,"$column",(function(){var e;return(e=this.$location())===c||null==e?c:e.$column()})),n(m,"$skip_source_map?",(function(){return this.sexp["$=="](!1)}))}(m[0],0,m)}(u[0],u)},Opal.modules["opal/nodes/closure"]=function(e){var t=e.module,r=e.klass,n=e.const_set,a=e.send,s=e.defs,i=e.def,o=e.truthy,l=e.eqeq,$=e.slice,u=e.extract_kwargs,c=e.ensure_kwargs,_=e.hash_get,p=e.neqeq,m=e.thrower,d=e.not,f=e.to_a,h=[],g=e.nil;return e.add_stubs("const_set,[]=,join,map,reject,==,&,to_proc,add_type,<<,include?,!=,type_inspect,type,class,attr_accessor,new,select_closure,closure_stack,compile_catcher,pop,last,node,push_closure,pop_closure,find,reverse,register_catcher,register_thrower,push,expr_or_nil,identify!,scope,helper,key?,throwers,[],unique_temp,compiler,parent,top_scope,add_scope_temp,|,!,generate_thrower_without_catcher,eval?,error,generate_thrower,is?,catchers,empty?,grep_v,indent,each,line,closure_is?,unshift,await_encountered,wrap"),function(h,b){var v=[t(h,"Opal")].concat(b);return function(h,b){var v=[t(h,"Nodes")].concat(b);return function(h,b,v){var y=r(h,null,"Closure"),x=[y].concat(v),w=e.$r(x),k=y.$$prototype;return k.catchers=k.throwers=k.type=k.node=g,n(x[0],"NONE",0),y.types=new Map,s(y,"$add_type",(function(e,t){var r,n=this;return null==n.types&&(n.types=g),n.$const_set(e,t),r=[e,t],a(n.types,"[]=",r),r[r.length-1]})),s(y,"$type_inspect",(function(e){var t=this;return null==t.types&&(t.types=g),a(a(t.types,"reject",[],(function(t,r){return null==t&&(t=g),null==r&&(r=g),e["$&"](r)["$=="](0)})),"map",[],"first".$to_proc()).$join("|")})),y.$add_type("JS_FUNCTION",1["$<<"](0)),y.$add_type("JS_LOOP",1["$<<"](1)),y.$add_type("JS_LOOP_INSIDE",1["$<<"](2)),y.$add_type("DEF",1["$<<"](3)),y.$add_type("LAMBDA",1["$<<"](4)),y.$add_type("ITER",1["$<<"](5)),y.$add_type("MODULE",1["$<<"](6)),y.$add_type("LOOP",1["$<<"](7)),y.$add_type("LOOP_INSIDE",1["$<<"](8)),y.$add_type("SEND",1["$<<"](9)),y.$add_type("TOP",1["$<<"](10)),y.$add_type("RESCUE_RETRIER",1["$<<"](11)),n(x[0],"ANY",4294967295),i(y,"$initialize",(function(e,t,r){var n,a=this;return n=[e,t,r],a.node=n[0],a.type=n[1],a.parent=n[2],a.catchers=[],a.throwers=new Map})),i(y,"$register_catcher",(function(e){return null==e&&(e="return"),o(this.catchers["$include?"](e))||this.catchers["$<<"](e),"$t_"+e}),-1),i(y,"$register_thrower",(function(e,t){var r;return r=[e,t],a(this.throwers,"[]=",r),r[r.length-1]})),i(y,"$is?",(function(e){return this.type["$&"](e)["$!="](0)})),i(y,"$inspect",(function(){return"#<Closure "+w("Closure").$type_inspect(this.$type())+" "+this.node.$class()+">"})),y.$attr_accessor("node","type","parent","catchers","throwers"),function(r,n){var s=t(r,"NodeSupport"),h=[s].concat(n),b=e.$r(h);i(s,"$push_closure",(function(e){var t,r=this;return null==r.compiler&&(r.compiler=g),null==e&&(e=b("JS_FUNCTION")),t=b("Closure").$new(r,e,r.$select_closure()),r.compiler.$closure_stack()["$<<"](t),r.closure=t}),-1),s.$attr_accessor("closure"),i(s,"$pop_closure",(function(){var e,t,r=this;return null==r.compiler&&(r.compiler=g),r.$compile_catcher(),r.compiler.$closure_stack().$pop(),t=r.compiler.$closure_stack().$last(),l((e=t)===g||null==e?g:e.$node(),r)?r.closure=t:g})),i(s,"$in_closure",(function t(r){var n,a,s=t.$$p||g;return t.$$p=null,null==r&&(r=b("JS_FUNCTION")),n=this.$push_closure(r),a=e.yield1(s,n),this.$pop_closure(),a}),-1),i(s,"$select_closure",(function(e,t){var r,n,s,i,o=this;return null==o.compiler&&(o.compiler=g),r=$(arguments),n=u(r),n=c(n),r.length>0&&(s=r.shift()),null==s&&(s=b("ANY")),null==(i=_(n,"break_after"))&&(i=b("NONE")),function(){try{var e=m("break");return a(o.compiler.$closure_stack().$reverse(),"find",[],(function t(r){return null==r&&(r=g),p(r.$type()["$&"](i),0)&&e.$throw(g,t.$$is_lambda),r.$type()["$&"](s)["$!="](0)}))}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}()}),-1),i(s,"$generate_thrower",(function(e,t,r){var n,a=this;return n=t.$register_catcher(e),t.$register_thrower(e,n),a.$push(n,".$throw(",a.$expr_or_nil(r),", ",a.$scope()["$identify!"](),".$$is_lambda)"),n})),i(s,"$generate_thrower_without_catcher",(function(e,t,r){var n,a=this,s=g,i=g;return a.$helper("thrower"),o(t.$throwers()["$key?"](e))?s=t.$throwers()["$[]"](e):(s=a.$compiler().$unique_temp("t_"),(o(i=(n=t.$node().$scope())===g||null==n?g:n.$parent())?i:a.$top_scope()).$add_scope_temp(s+" = $thrower('"+e+"')"),t.$register_thrower(e,s)),a.$push(s,".$throw(",a.$expr_or_nil(r),", ",a.$scope()["$identify!"](),".$$is_lambda)"),s})),i(s,"$thrower",(function(e,t){var r=this,n=g,a=g,s=g,i=g;switch(null==t&&(t=g),e.valueOf()){case"return":return n=r.$select_closure(b("DEF"),new Map([["break_after",b("MODULE")["$|"](b("TOP"))]])),a=r.$select_closure(b("JS_FUNCTION")),d(n)?(s=r.$select_closure(b("ITER"),new Map([["break_after",b("DEF")["$|"](b("MODULE"))["$|"](b("TOP"))]])),o(s)?r.$generate_thrower_without_catcher("return",s,t):o(r.$compiler()["$eval?"]())?r.$push("Opal.t_eval_return.$throw(",r.$expr_or_nil(t),", false)"):r.$error("Invalid return")):l(n,a)?r.$push("return ",r.$expr_or_nil(t)):(i=r.$generate_thrower("return",n,t),s=r.$select_closure(b("ITER"),new Map([["break_after",b("DEF")["$|"](b("MODULE"))["$|"](b("TOP"))]])),o(s)?s.$register_thrower("return",i):g);case"eval_return":return n=r.$select_closure(b("DEF")["$|"](b("LAMBDA")),new Map([["break_after",b("MODULE")["$|"](b("TOP"))]])),o(n)?n.$register_catcher("eval_return"):g;case"next":case"redo":return n=r.$select_closure(b("ITER")["$|"](b("LOOP_INSIDE")),new Map([["break_after",b("DEF")["$|"](b("MODULE"))["$|"](b("TOP"))]])),a=r.$select_closure(b("JS_FUNCTION")["$|"](b("JS_LOOP_INSIDE"))),d(n)?r.$error("Invalid next"):l(n,a)?o(n["$is?"](b("LOOP_INSIDE")))?r.$push("continue"):o(n["$is?"](b("ITER")["$|"](b("LAMBDA"))))?r.$push("return ",r.$expr_or_nil(t)):g:r.$generate_thrower("next",n,t);case"break":return n=r.$select_closure(b("SEND")["$|"](b("LAMBDA"))["$|"](b("LOOP")),new Map([["break_after",b("DEF")["$|"](b("MODULE"))["$|"](b("TOP"))]])),a=r.$select_closure(b("JS_FUNCTION")["$|"](b("JS_LOOP"))),d(n)?(s=r.$select_closure(b("ITER"),new Map([["break_after",b("DEF")["$|"](b("MODULE"))["$|"](b("TOP"))]])),o(s)?r.$generate_thrower_without_catcher("break",s,t):r.$error("Invalid break")):l(n,a)?o(n["$is?"](b("JS_FUNCTION")["$|"](b("LAMBDA"))))?r.$push("return ",r.$expr_or_nil(t)):o(n["$is?"](b("LOOP")))?r.$push("break"):g:r.$generate_thrower("break",n,t);case"retry":return n=r.$select_closure(b("RESCUE_RETRIER"),new Map([["break_after",b("DEF")["$|"](b("MODULE"))["$|"](b("TOP"))]])),a=r.$select_closure(b("JS_LOOP_INSIDE")),d(n)?r.$error("Invalid retry"):l(n,a)?r.$push("continue"):r.$generate_thrower("retry",n,t);default:return g}}),-2),i(s,"$closure_is?",(function(e){var t=this;return null==t.closure&&(t.closure=g),t.closure["$is?"](e)})),i(s,"$compile_catcher",(function(){var e=this,t=g,r=g;return null==e.closure&&(e.closure=g),t=e.closure.$catchers(),o(t["$empty?"]())?g:(e.$helper("thrower"),r=t.$grep_v("eval_return"),e.$push("} catch($e) {"),a(e,"indent",[],(function e(){var r=null==e.$$s?this:e.$$s;return a(t,"each",[],(function e(t){var r=null==e.$$s?this:e.$$s;return null==t&&(t=g),"eval_return"===t.valueOf()?r.$line("if ($e === Opal.t_eval_return) return $e.$v;"):r.$line("if ($e === $t_"+t+") return $e.$v;")}),{$$s:r}),r.$line("throw $e;")}),{$$s:e}),e.$line("}"),o(r["$empty?"]())||a(e,"push",[" finally {"].concat(f(a(r,"map",[],(function(e){return null==e&&(e=g),"$t_"+e+".is_orphan = true;"})))).concat(["}"])),o(e["$closure_is?"](b("SEND")))&&e.$unshift("return "),o(r["$empty?"]())||e.$unshift("var ",a(r,"map",[],(function(e){return null==e&&(e=g),"$t_"+e+" = $thrower('"+e+"')"})).$join(", "),"; "),e.$unshift("try { "),o(e["$closure_is?"](b("JS_FUNCTION")))?g:o(e.$scope().$await_encountered())?e.$wrap("(await (async function(){","})())"):e.$wrap("(function(){","})()"))}))}(x[0],x),function(e){var r=t(e,"CompilerSupport");return i(r,"$closure_stack",(function(){var e,t=this;return null==t.closure_stack&&(t.closure_stack=g),t.closure_stack=o(e=t.closure_stack)?e:[]}))}(x[0])}(v[0],0,v)}(v[0],v)}(h[0],h)},Opal.modules["opal/nodes/helpers"]=function(e){var t=e.module,r=e.truthy,n=e.def,a=e.annotate_regexp,s=e.rb_plus,i=e.send,o=e.slice,l=e.to_a,$=e.eqeq,u=e.top,c=[],_=e.nil,p=e.$$$;return e.add_stubs("require,valid_name?,inspect,=~,to_s,+,indent,compiler,to_proc,parser_indent,push,fragment,current_indent,js_truthy_optimize,helper,expr,type,[],handlers,include?,truthy_optimize?,==,count,record_method_call,first,children,s,[]=,meta"),u.$require("opal/regexp_anchors"),function(u,c){var m=[t(u,"Opal")].concat(c);return function(u,c){var m=[t(u,"Nodes")].concat(c);return function(u,c){var m=t(u,"Helpers"),d=[m].concat(c),f=e.$r(d);return n(m,"$property",(function(e){return r(this["$valid_name?"](e))?"."+e:"["+e.$inspect()+"]"})),n(m,"$valid_name?",(function(e){return p(p(f("Opal"),"Rewriters"),"JsReservedWords")["$valid_name?"](e)})),n(m,"$mid_to_jsid",(function(e){return r(a(/=|\+|-|\*|\/|!|\?|<|>|&|\||\^|%|~|\[|`/u,"\\=|\\+|\\-|\\*|\\/|\\!|\\?|<|\\>|\\&|\\||\\^|\\%|\\~|\\[|`","")["$=~"](e.$to_s()))?"['$"+e+"']":s(".$",e)})),n(m,"$indent",(function e(){var t=e.$$p||_;return e.$$p=null,i(this.$compiler(),"indent",[],t.$to_proc())})),n(m,"$current_indent",(function(){return this.$compiler().$parser_indent()})),n(m,"$line",(function(e){var t,r=this;return t=o(arguments),r.$push(r.$fragment("\n"+r.$current_indent(),new Map([["loc",!1]]))),i(r,"push",l(t))}),-1),n(m,"$empty_line",(function(){return this.$push(this.$fragment("\n",new Map([["loc",!1]])))})),n(m,"$js_truthy",(function(e){var t,n=this;return r(t=n.$js_truthy_optimize(e))?t:(n.$helper("truthy"),[n.$fragment("$truthy("),n.$expr(e),n.$fragment(")")])})),n(m,"$js_truthy_optimize",(function(e){var t,n=this,a=_,s=_,i=_,u=_,c=_,m=_,d=_,h=_,g=_;switch(e.$type().valueOf()){case"send":if(a=null==(t=[].concat(l(e)))[0]?_:t[0],s=null==t[1]?_:t[1],i=o(t,2),u=r(c=a)?n.$compiler().$handlers()["$[]"](a.$type()):c,m=r(c=r(d=p(f("Compiler"),"COMPARE")["$include?"](s.$to_s()))?u:d)?u["$truthy_optimize?"]():c,r(m)||$(s,"block_given?"))return n.$expr(e);if(!$(i.$count(),1))return $(i.$count(),0)&&"!"===s.valueOf()?(n.$helper("not"),n.$compiler().$record_method_call(s),[n.$fragment("$not("),n.$expr(a),n.$fragment(")")]):_;switch(s.valueOf()){case"==":return n.$helper("eqeq"),n.$compiler().$record_method_call(s),[n.$fragment("$eqeq("),n.$expr(a),n.$fragment(", "),n.$expr(i.$first()),n.$fragment(")")];case"===":return n.$helper("eqeqeq"),n.$compiler().$record_method_call(s),[n.$fragment("$eqeqeq("),n.$expr(a),n.$fragment(", "),n.$expr(i.$first()),n.$fragment(")")];case"!=":return n.$helper("neqeq"),n.$compiler().$record_method_call(s),[n.$fragment("$neqeq("),n.$expr(a),n.$fragment(", "),n.$expr(i.$first()),n.$fragment(")")];default:return _}break;case"begin":return $(e.$children().$count(),1)?n.$js_truthy_optimize(e.$children().$first()):_;case"if":return null==(t=[].concat(l(e)))[0]?_:t[0],h=null==t[1]?_:t[1],g=null==t[2]?_:t[2],$(h,n.$s("true"))?(e.$meta()["$[]="]("do_js_truthy_on_false_body",!0),n.$expr(e)):$(g,n.$s("false"))?(e.$meta()["$[]="]("do_js_truthy_on_true_body",!0),n.$expr(e)):_;default:return _}}))}(m[0],m)}(m[0],m)}(c[0],c)},Opal.modules["opal/nodes/base"]=function(e){var t=e.module,r=e.klass,n=e.truthy,a=e.defs,s=e.slice,i=e.send,o=e.return_val,l=e.def,$=e.ensure_kwargs,u=e.hash_get,c=e.Opal,_=e.neqeq,p=e.rb_plus,m=e.top,d=[],f=e.nil,h=e.$$$;return e.add_stubs("require,include,each,[]=,handlers,each_with_index,define_method,[],children,attr_reader,type,top_scope,top_scope=,compile,raise,is_a?,fragment,<<,reverse_each,unshift,push,new,scope,error,loc,==,process,expr,!=,add_scope_local,to_sym,add_scope_ivar,add_scope_gvar,add_scope_temp,helper,with_temp,to_proc,in_while?,instance_variable_get,has_rescue_else?,in_ensure,in_ensure?,in_resbody,in_resbody?,in_rescue,!,class_scope?,sclass?,+,parent,nesting,class_variable_owner_nesting_level,comments,compiler,expression,respond_to?,name,source_buffer,start_with?,end_with?,line"),m.$require("opal/nodes/helpers"),m.$require("opal/nodes/closure"),function(m,d){var g=[t(m,"Opal")].concat(d);return function(m,d){var g=[t(m,"Nodes")].concat(d);return function(t,m,d){var g=r(t,null,"Base"),b=[g].concat(d),v=e.$r(b),y=g.$$prototype;return y.compiler=y.sexp=y.fragments=y.level=f,g.$include(v("Helpers")),g.$include(h(v("Closure"),"NodeSupport")),a(g,"$handlers",(function(){var e,t=this;return null==t.handlers&&(t.handlers=f),t.handlers=n(e=t.handlers)?e:new Map})),a(g,"$handle",(function(e){var t;return t=s(arguments),i(t,"each",[],(function e(t){var r;return null==t&&(t=f),r=[t,null==e.$$s?this:e.$$s],i(v("Base").$handlers(),"[]=",r),r[r.length-1]}),{$$s:this})}),-1),a(g,"$children",(function(e){var t;return t=s(arguments),i(t,"each_with_index",[],(function e(t,r){var n=null==e.$$s?this:e.$$s;return null==t&&(t=f),null==r&&(r=f),i(n,"define_method",[t],(function e(){var t=null==e.$$s?this:e.$$s;return null==t.sexp&&(t.sexp=f),t.sexp.$children()["$[]"](r)}),{$$s:n})}),{$$s:this})}),-1),a(g,"$truthy_optimize?",o(!1)),g.$attr_reader("compiler","type","sexp"),l(g,"$initialize",(function(e,t,r){var a,s,o=this;return o.sexp=e,o.type=e.$type(),o.level=t,o.compiler=r,n(s=o.compiler.$top_scope())?s:(a=[o],i(o.compiler,"top_scope=",a),a[a.length-1])})),l(g,"$children",(function(){return this.sexp.$children()})),l(g,"$compile_to_fragments",(function(){var e,t=this;return n(null!=(e=t.fragments)&&e!==f?"instance-variable":f)||(t.fragments=[],t.$compile()),t.fragments})),l(g,"$compile",(function(){return this.$raise("Not Implemented")})),l(g,"$push",(function(e){var t;return t=s(arguments),i(t,"each",[],(function e(t){var r=null==e.$$s?this:e.$$s;return null==r.fragments&&(r.fragments=f),null==t&&(t=f),n(t["$is_a?"](v("String")))&&(t=r.$fragment(t)),r.fragments["$<<"](t)}),{$$s:this})}),-1),l(g,"$unshift",(function(e){var t;return t=s(arguments),i(t,"reverse_each",[],(function e(t){var r=null==e.$$s?this:e.$$s;return null==r.fragments&&(r.fragments=f),null==t&&(t=f),n(t["$is_a?"](v("String")))&&(t=r.$fragment(t)),r.fragments.$unshift(t)}),{$$s:this})}),-1),l(g,"$wrap",(function(e,t){return this.$unshift(e),this.$push(t)})),l(g,"$fragment",(function(e,t){var r,a;return t=$(t),null==(r=u(t,"loc"))&&(r=!0),h(v("Opal"),"Fragment").$new(e,this.$scope(),n(a=r)?this.sexp:a)}),-2),l(g,"$error",(function(e){return this.compiler.$error(e)})),l(g,"$scope",(function(){return this.compiler.$scope()})),l(g,"$top_scope",(function(){return this.compiler.$top_scope()})),l(g,"$s",(function(e,t){var r;return r=s(arguments,1),h(h(c,"AST"),"Node").$new(e,r,new Map([["location",this.sexp.$loc()]]))}),-2),l(g,"$expr?",(function(){return this.level["$=="]("expr")})),l(g,"$recv?",(function(){return this.level["$=="]("recv")})),l(g,"$stmt?",(function(){return this.level["$=="]("stmt")})),l(g,"$process",(function(e,t){return null==t&&(t="expr"),this.compiler.$process(e,t)}),-2),l(g,"$expr",(function(e){return this.compiler.$process(e,"expr")})),l(g,"$recv",(function(e){return this.compiler.$process(e,"recv")})),l(g,"$stmt",(function(e){return this.compiler.$process(e,"stmt")})),l(g,"$expr_or_nil",(function(e){return n(e)?this.$expr(e):"nil"})),l(g,"$expr_or_empty",(function(e){return n(e)&&_(e.$type(),"nil")?this.$expr(e):""})),l(g,"$add_local",(function(e){return this.$scope().$add_scope_local(e.$to_sym())})),l(g,"$add_ivar",(function(e){return this.$scope().$add_scope_ivar(e)})),l(g,"$add_gvar",(function(e){return this.$scope().$add_scope_gvar(e)})),l(g,"$add_temp",(function(e){return this.$scope().$add_scope_temp(e)})),l(g,"$helper",(function(e){return this.compiler.$helper(e)})),l(g,"$with_temp",(function e(){var t=e.$$p||f;return e.$$p=null,i(this.compiler,"with_temp",[],t.$to_proc())})),l(g,"$in_while?",(function(){return this.compiler["$in_while?"]()})),l(g,"$while_loop",(function(){return this.compiler.$instance_variable_get("@while_loop")})),l(g,"$has_rescue_else?",(function(){return this.$scope()["$has_rescue_else?"]()})),l(g,"$in_ensure",(function e(){var t=e.$$p||f;return e.$$p=null,i(this.$scope(),"in_ensure",[],t.$to_proc())})),l(g,"$in_ensure?",(function(){return this.$scope()["$in_ensure?"]()})),l(g,"$in_resbody",(function e(){var t=e.$$p||f;return e.$$p=null,i(this.$scope(),"in_resbody",[],t.$to_proc())})),l(g,"$in_resbody?",(function(){return this.$scope()["$in_resbody?"]()})),l(g,"$in_rescue",(function e(t){var r=e.$$p||f;return e.$$p=null,i(this.$scope(),"in_rescue",[t],r.$to_proc())})),l(g,"$class_variable_owner_nesting_level",(function(){var e=f,t=f,r=f;for(e=this.$scope(),t=0;n(n(r=e)?e["$class_scope?"]()["$!"]():r);)n(e["$sclass?"]())&&(t=p(t,1)),e=e.$parent();return t})),l(g,"$class_variable_owner",(function(){var e=this;return n(e.$scope())?e.$scope().$nesting()+"["+e.$class_variable_owner_nesting_level()+"]":"Opal.Object"})),l(g,"$comments",(function(){return this.$compiler().$comments()["$[]"](this.sexp.$loc())})),l(g,"$source_location",(function(){var e=f,t=f;return e=this.sexp.$loc().$expression(),n(e["$respond_to?"]("source_buffer"))?(t=e.$source_buffer().$name(),n(t["$start_with?"]("corelib/"))&&(t="<internal:"+t+">"),n(t["$end_with?"](".js"))&&(t="<js:"+t+">")):t="(eval)","['"+t+"', "+this.sexp.$loc().$line()+"]"}))}(g[0],0,g)}(g[0],g)}(d[0],d)},Opal.modules["opal/nodes/literal"]=function(e){var t=e.module,r=e.klass,n=e.def,a=e.return_val,s=e.defs,i=e.truthy,o=e.const_set,l=e.regexp,$=e.send,u=e.rb_plus,c=e.annotate_regexp,_=e.lambda,p=e.rb_le,m=e.rb_minus,d=e.slice,f=e.send2,h=e.find_super,g=e.to_a,b=e.eqeq,v=e.eqeqeq,y=e.range,x=e.to_ary,w=e.neqeq,k=e.Opal,U=e.rb_gt,E=e.top,M=[],q=e.nil,S=e.$$$;return e.add_stubs("require,handle,push,to_s,type,self,scope,children,value,recv?,wrap,freeze,join,keys,gsub,even?,length,last_match,+,chop,[],inspect,to_i,to_utf16,translate_escape_chars,valid_encoding?,helper,upcase,<=,call,-,>>,&,attr_accessor,extract_flags_and_value,select!,flags,=~,warning,compiler,==,compile_static_regexp,compile_dynamic_regexp,each_with_index,zero?,expr,any?,include,===,static_as_dynamic,new,transform_regexp,!=,flags=,map,to_proc,value=,empty?,s,single_line?,include?,is_a?,updated,delete,source,expression,loc,private,>,!,regexp,first,each,compile_inline?,compile_inline,compile_range_initialize,start,finish,raise,expr_or_nil,absolute_const,top_scope,numerator,denominator,real,imag"),E.$require("opal/nodes/base"),E.$require("opal/regexp_transpiler"),function(E,M){var O=[t(E,"Opal")].concat(M);return function(E,M){var O=[t(E,"Nodes")].concat(M),A=e.$r(O);return function(e,t){var i=r(e,t,"ValueNode");i.$handle("true","false","nil"),n(i,"$compile",(function(){return this.$push(this.$type().$to_s())})),s(i,"$truthy_optimize?",a(!0))}(O[0],A("Base")),function(e,t){var a=r(e,t,"SelfNode");a.$handle("self"),n(a,"$compile",(function(){return this.$push(this.$scope().$self())}))}(O[0],A("Base")),function(e,t){var o=r(e,t,"NumericNode");o.$handle("int","float"),o.$children("value"),n(o,"$compile",(function(){var e=this;return e.$push(e.$value().$to_s()),i(e["$recv?"]())?e.$wrap("(",")"):q})),s(o,"$truthy_optimize?",a(!0))}(O[0],A("Base")),function(t,a,s){var d=r(t,a,"StringNode"),f=[d].concat(s),h=e.$r(f);d.$handle("str"),d.$children("value"),o(f[0],"ESCAPE_CHARS",new Map([["a","\\u0007"],["e","\\u001b"]]).$freeze()),o(f[0],"ESCAPE_REGEX",l(["(\\\\+)([",h("ESCAPE_CHARS").$keys().$join(""),"])"]).$freeze()),n(d,"$translate_escape_chars",(function(e){return $(e,"gsub",[h("ESCAPE_REGEX")],(function(e){return null==e&&(e=q),i(h("Regexp").$last_match(1).$length()["$even?"]())?e:u(h("Regexp").$last_match(1).$chop(),h("ESCAPE_CHARS")["$[]"](h("Regexp").$last_match(2)))}))})),n(d,"$compile",(function(){var e,t=this,r=q;return r=t.$value(),e=$(r.$inspect(),"gsub",[c(/\\u\{([0-9a-f]+)\}/u,null,"")],(function e(){var t,r=null==e.$$s?this:e.$$s;return t=h("Regexp").$last_match(1).$to_i(16),r.$to_utf16(t)}),{$$s:t}),t.$push(t.$translate_escape_chars(e)),i(t.$value()["$valid_encoding?"]())?q:(t.$helper("binary"),t.$wrap("$binary(",")"))})),n(d,"$to_utf16",(function(e){var t,r,n=q;return 1023,n=_((function(e){return null==e&&(e=q),u("\\u",e.$to_s(16).$upcase())})),i(p(e,65535))?n.$call(e):(e=m(e,65536),t=u(55296,e["$>>"](10)),r=u(56320,e["$&"](1023)),u(n.$call(t),n.$call(r)))}))}(O[0],A("Base"),O),function(e,t){var a=r(e,t,"SymbolNode");a.$handle("sym"),a.$children("value"),n(a,"$compile",(function(){return this.$push(this.$value().$to_s().$inspect())}))}(O[0],A("Base")),function(t,a,s){var u=r(t,a,"RegexpNode"),_=[u].concat(s),p=e.$r(_);u.$$prototype.sexp=q,u.$handle("regexp"),u.$attr_accessor("value","flags"),o(_[0],"SUPPORTED_FLAGS",c(/[gimuy]/u,null,"").$freeze()),n(u,"$initialize",(function e(t){var r,n=e.$$p||q,a=this;return e.$$p=null,r=d(arguments),f(a,h(a,"initialize",e,!1,!0),"initialize",g(r),n),a.$extract_flags_and_value()}),-1),n(u,"$compile",(function(){var e=this;return $(e.$flags(),"select!",[],(function e(t){var r=null==e.$$s?this:e.$$s;return null==t&&(t=q),!!i(p("SUPPORTED_FLAGS")["$=~"](t))||(r.$compiler().$warning("Skipping the '"+t+"' Regexp flag as it's not widely supported by JavaScript vendors."),!1)}),{$$s:e}),b(e.$value().$type(),"str")?e.$compile_static_regexp():e.$compile_dynamic_regexp()})),n(u,"$compile_dynamic_regexp",(function(){var e=this;return e.$helper("regexp"),e.$push("$regexp(["),$(e.$value().$children(),"each_with_index",[],(function e(t,r){var n=null==e.$$s?this:e.$$s;return null==t&&(t=q),null==r&&(r=q),i(r["$zero?"]())||n.$push(", "),n.$push(n.$expr(t))}),{$$s:e}),e.$push("]"),i(e.$flags()["$any?"]())&&e.$push(", '"+e.$flags().$join()+"'"),e.$push(")")})),u.$include(S(p("Opal"),"RegexpTranspiler")),n(u,"$compile_static_regexp",(function(){var e,t,r,n,a=this,s=q,i=q,o=q,$=q;return r=a.$value().$children()["$[]"](0),v("",n=r)?(a.$helper("empty_regexp"),a.$push("$empty_regexp("+a.$flags().$join().$inspect()+")")):v(l(["\\(\\?[(<>#]|[*+?]\\+|\\\\G"]),n)?a.$static_as_dynamic(r):(s=p("Regexp").$new(r).$inspect()["$[]"](y(1,-2,!1)),i=a.$flags().$join(),t=a.$transform_regexp(s,i),o=null==(e=x(t))[0]?q:e[0],$=null==e[1]?q:e[1],a.$push("/"+o+"/"+$),w(s,o)||w(i,$)?(a.$helper("annotate_regexp"),a.$wrap("$annotate_regexp(",", "+(w(s,o)?s.$inspect():"null")+(w(i,$)?", "+i.$inspect():"")+")")):q)})),n(u,"$static_as_dynamic",(function(e){var t=this;return t.$helper("regexp"),t.$push('$regexp(["'),t.$push(e.$gsub("\\","\\\\\\\\").$gsub('"','\\"')),t.$push('"]'),i(t.$flags()["$any?"]())&&t.$push(", '"+t.$flags().$join()+"'"),t.$push(")")})),n(u,"$extract_flags_and_value",(function(){var e,t,r=this,n=q,a=q,s=q;return t=(e=[].concat(g(r.$children()))).length-1,n=d(e,0,t=t<0?0:t),a=null==e[t]?q:e[t],r["$flags="]($(a.$children(),"map",[],"to_s".$to_proc())),r["$value="](i(n["$empty?"]())?r.$s("str",""):i(r["$single_line?"](n))?n["$[]"](0):$(r,"s",["dstr"].concat(g(n)))),i(r.$flags()["$include?"]("x"))?(s=$(r.$value().$children(),"map",[],(function e(t){var r=null==e.$$s?this:e.$$s,n=q;return null==t&&(t=q),i(t["$is_a?"](S(S(k,"AST"),"Node")))&&b(t.$type(),"str")?(n=t.$children()["$[]"](0).$gsub(c(/^\s*#.*/u,"\\A\\s*\\#.*",""),"").$gsub(c(/\s/u,null,""),""),r.$s("str",n)):t}),{$$s:r}),r["$value="](r.$value().$updated(q,s)),r.$flags().$delete("x")):q})),n(u,"$raw_value",(function(){var e;return e=[this.sexp.$loc().$expression().$source()],$(this,"value=",e),e[e.length-1]})),u.$private(),n(u,"$single_line?",(function(e){var t,r=q;return!i(U(e.$length(),1))&&(r=e["$[]"](0),i(t=r.$type()["$!="]("str"))?t:r.$children()["$[]"](0)["$include?"]("\n")["$!"]())}))}(O[0],A("Base"),O),function(e,t){var a=r(e,t,"MatchCurrentLineNode");a.$handle("match_current_line"),a.$children("regexp"),n(a,"$compile",(function(){var e,t,r=this;return e=r.$s("gvar","$_"),t=r.$s("send",e,"=~",r.$regexp()),r.$push(r.$expr(t))}))}(O[0],A("Base")),function(e,t){var a=r(e,t,"DynamicStringNode");a.$handle("dstr"),n(a,"$compile",(function(){var e=this,t=q;return i(U(e.$children().$length(),1))&&b(e.$children().$first().$type(),"str")?t=!0:e.$push('""'),$(e.$children(),"each",[],(function e(r){var n=null==e.$$s?this:e.$$s;return null==r&&(r=q),i(t)?t=!1:n.$push(" + "),b(r.$type(),"str")?n.$push(n.$expr(r)):n.$push("(",n.$expr(r),")"),i(n["$recv?"]())?n.$wrap("(",")"):q}),{$$s:e})}))}(O[0],A("Base")),function(e,t){r(e,t,"DynamicSymbolNode").$handle("dsym")}(O[0],A("DynamicStringNode")),function(t,a,s){var l=r(t,a,"RangeNode"),$=[l].concat(s),u=e.$r($);l.$children("start","finish"),o($[0],"SIMPLE_CHILDREN_TYPES",["int","float","str","sym"].$freeze()),n(l,"$compile",(function(){var e=this;return i(e["$compile_inline?"]())?(e.$helper("range"),e.$compile_inline()):e.$compile_range_initialize()})),n(l,"$compile_inline?",(function(){var e,t=this,r=q,n=q;return i(e=i(r=t.$start()["$!"]())?r:i(n=t.$start().$type())?u("SIMPLE_CHILDREN_TYPES")["$include?"](t.$start().$type()):n)?i(r=t.$finish()["$!"]())?r:i(n=t.$finish().$type())?u("SIMPLE_CHILDREN_TYPES")["$include?"](t.$finish().$type()):n:e})),n(l,"$compile_inline",(function(){return this.$raise(u("NotImplementedError"))})),n(l,"$compile_range_initialize",(function(){return this.$raise(u("NotImplementedError"))}))}(O[0],A("Base"),O),function(e,t){var a=r(e,t,"InclusiveRangeNode");a.$handle("irange"),n(a,"$compile_inline",(function(){var e=this;return e.$push("$range(",e.$expr_or_nil(e.$start()),", ",e.$expr_or_nil(e.$finish()),", false)")})),n(a,"$compile_range_initialize",(function(){var e=this;return e.$push("Opal.Range.$new(",e.$expr_or_nil(e.$start()),", ",e.$expr_or_nil(e.$finish()),", false)")}))}(O[0],A("RangeNode")),function(e,t){var a=r(e,t,"ExclusiveRangeNode");a.$handle("erange"),n(a,"$compile_inline",(function(){var e=this;return e.$push("$range(",e.$expr_or_nil(e.$start()),", ",e.$expr_or_nil(e.$finish()),", true)")})),n(a,"$compile_range_initialize",(function(){var e=this;return e.$push("Opal.Range.$new(",e.$expr_or_nil(e.$start()),",",e.$expr_or_nil(e.$finish()),", true)")}))}(O[0],A("RangeNode")),function(e,t){var a=r(e,t,"RationalNode");a.$handle("rational"),a.$children("value"),n(a,"$compile",(function(){var e=this;return e.$push(e.$top_scope().$absolute_const()+"('Rational').$new("+e.$value().$numerator()+", "+e.$value().$denominator()+")")}))}(O[0],A("Base")),function(e,t){var a=r(e,t,"ComplexNode");return a.$handle("complex"),a.$children("value"),n(a,"$compile",(function(){var e=this;return e.$push(e.$top_scope().$absolute_const()+"('Complex').$new("+e.$value().$real()+", "+e.$value().$imag()+")")}))}(O[0],A("Base"))}(O[0],O)}(M[0],M)},Opal.modules["opal/nodes/variables"]=function(e){var t=e.module,r=e.klass,n=e.truthy,a=e.def,s=e.send,i=e.range,o=e.send2,l=e.find_super,$=e.top,u=[],c=e.nil;return e.add_stubs("require,handle,children,irb?,compiler,top?,scope,using_irb?,push,to_s,var_name,with_temp,property,wrap,add_local,expr,value,expr?,recv?,[],name,add_ivar,self,helper,add_gvar,handle_global_match,handle_post_match,handle_pre_match,raise,index,stmt?,class_variable_owner,inspect"),$.$require("opal/nodes/base"),function($,u){var _=[t($,"Opal")].concat(u);return function($,u){var _=[t($,"Nodes")].concat(u),p=e.$r(_);return function(e,t){var i=r(e,t,"LocalVariableNode");i.$handle("lvar"),i.$children("var_name"),a(i,"$using_irb?",(function(){var e;return n(e=this.$compiler()["$irb?"]())?this.$scope()["$top?"]():e})),a(i,"$compile",(function(){var e=this;return n(e["$using_irb?"]())?s(e,"with_temp",[],(function e(t){var r=null==e.$$s?this:e.$$s;return null==t&&(t=c),r.$push(r.$property(r.$var_name().$to_s())),r.$wrap("(("+t+" = Opal.irb_vars",") == null ? nil : "+t+")")}),{$$s:e}):e.$push(e.$var_name().$to_s())}))}(_[0],p("Base")),function(e,t){var s=r(e,t,"LocalAssignNode");s.$handle("lvasgn"),s.$children("var_name","value"),a(s,"$using_irb?",(function(){var e;return n(e=this.$compiler()["$irb?"]())?this.$scope()["$top?"]():e})),a(s,"$compile",(function(){var e=this;return n(e["$using_irb?"]())?e.$push("Opal.irb_vars"+e.$property(e.$var_name().$to_s())+" = "):(e.$add_local(e.$var_name().$to_s()),e.$push(e.$var_name()+" = ")),e.$push(e.$expr(e.$value())),(n(e["$recv?"]())||n(e["$expr?"]()))&&n(e.$value())?e.$wrap("(",")"):c}))}(_[0],p("Base")),function(e,t){var n=r(e,t,"LocalDeclareNode");n.$handle("lvdeclare"),n.$children("var_name"),a(n,"$compile",(function(){return this.$add_local(this.$var_name().$to_s()),c}))}(_[0],p("Base")),function(e,t){var n=r(e,t,"InstanceVariableNode");n.$handle("ivar"),n.$children("name"),a(n,"$var_name",(function(){return this.$name().$to_s()["$[]"](i(1,-1,!1))})),a(n,"$compile",(function(){var e,t=this;return e=t.$property(t.$var_name()),t.$add_ivar(e),t.$push(""+t.$scope().$self()+e)}))}(_[0],p("Base")),function(e,t){var s=r(e,t,"InstanceAssignNode");s.$handle("ivasgn"),s.$children("name","value"),a(s,"$var_name",(function(){return this.$name().$to_s()["$[]"](i(1,-1,!1))})),a(s,"$compile",(function(){var e,t=this;return e=t.$property(t.$var_name()),t.$push(""+t.$scope().$self()+e+" = "),t.$push(t.$expr(t.$value())),(n(t["$recv?"]())||n(t["$expr?"]()))&&n(t.$value())?t.$wrap("(",")"):c}))}(_[0],p("Base")),function(e,t){var n=r(e,t,"GlobalVariableNode");n.$handle("gvar"),n.$children("name"),a(n,"$var_name",(function(){return this.$name().$to_s()["$[]"](i(1,-1,!1))})),a(n,"$compile",(function(){var e,t=this;return t.$helper("gvars"),e=t.$property(t.$var_name()),t.$add_gvar(e),t.$push("$gvars"+e)}))}(_[0],p("Base")),function(t,n,i){var $=r(t,n,"BackRefNode"),u=[$].concat(i),_=e.$r(u);$.$handle("back_ref"),a($,"$compile",(function e(){var t=e.$$p||c,r=this;switch(e.$$p=null,r.$helper("gvars"),r.$var_name().valueOf()){case"&":return r.$handle_global_match();case"'":return r.$handle_post_match();case"`":return r.$handle_pre_match();case"+":return o(r,l(r,"compile",e,!1,!0),"compile",[],t);default:return r.$raise(_("NotImplementedError"))}})),a($,"$handle_global_match",(function(){return s(this,"with_temp",[],(function e(t){return null==t&&(t=c),(null==e.$$s?this:e.$$s).$push("(("+t+" = $gvars['~']) === nil ? nil : "+t+"['$[]'](0))")}),{$$s:this})})),a($,"$handle_pre_match",(function(){return s(this,"with_temp",[],(function e(t){return null==t&&(t=c),(null==e.$$s?this:e.$$s).$push("(("+t+" = $gvars['~']) === nil ? nil : "+t+".$pre_match())")}),{$$s:this})})),a($,"$handle_post_match",(function(){return s(this,"with_temp",[],(function e(t){return null==t&&(t=c),(null==e.$$s?this:e.$$s).$push("(("+t+" = $gvars['~']) === nil ? nil : "+t+".$post_match())")}),{$$s:this})}))}(_[0],p("GlobalVariableNode"),_),function(e,t){var s=r(e,t,"GlobalAssignNode");s.$handle("gvasgn"),s.$children("name","value"),a(s,"$var_name",(function(){return this.$name().$to_s()["$[]"](i(1,-1,!1))})),a(s,"$compile",(function(){var e,t=this;return t.$helper("gvars"),e=t.$property(t.$var_name()),t.$push("$gvars"+e+" = "),t.$push(t.$expr(t.$value())),(n(t["$recv?"]())||n(t["$expr?"]()))&&n(t.$value())?t.$wrap("(",")"):c}))}(_[0],p("Base")),function(e,t){var n=r(e,t,"NthrefNode");n.$handle("nth_ref"),n.$children("index"),a(n,"$compile",(function(){var e=this;return e.$helper("gvars"),s(e,"with_temp",[],(function e(t){var r=null==e.$$s?this:e.$$s;return null==t&&(t=c),r.$push("(("+t+" = $gvars['~']) === nil ? nil : "+t+"['$[]']("+r.$index()+"))")}),{$$s:e})}))}(_[0],p("Base")),function(e,t){var s=r(e,t,"ClassVariableNode");s.$handle("cvar"),s.$children("name"),a(s,"$compile",(function(){var e=this,t=c;return e.$helper("class_variable_get"),t=!1,n(e["$stmt?"]())&&(t=!0),e.$push("$class_variable_get("+e.$class_variable_owner()+", '"+e.$name()+"', "+t.$inspect()+")")}))}(_[0],p("Base")),function(e,t){var n=r(e,t,"ClassVarAssignNode");return n.$handle("cvasgn"),n.$children("name","value"),a(n,"$compile",(function(){var e=this;return e.$helper("class_variable_set"),e.$push("$class_variable_set("+e.$class_variable_owner()+", '"+e.$name()+"', ",e.$expr(e.$value()),")")}))}(_[0],p("Base"))}(_[0],_)}(u[0],u)},Opal.modules["opal/nodes/constants"]=function(e){var t=e.module,r=e.klass,n=e.truthy,a=e.eqeq,s=e.def,i=e.const_set,o=e.top,l=[];e.nil;return e.add_stubs("require,handle,children,magical_data_const?,push,optimized_access?,helper,name,==,const_scope,s,absolute_const,top_scope,recv,eval?,compiler,relative_access,scope,nil?,eof_content,freeze,include?,base,expr,value,nesting"),o.$require("opal/nodes/base"),function(o,l){var $=[t(o,"Opal")].concat(l);return function(o,l){var $=[t(o,"Nodes")].concat(l),u=e.$r($);return function(t,o,l){var $=r(t,o,"ConstNode"),u=[$].concat(l),c=e.$r(u);$.$handle("const"),$.$children("const_scope","name"),s($,"$compile",(function(){var e=this;return n(e["$magical_data_const?"]())?e.$push("$__END__"):n(e["$optimized_access?"]())?(e.$helper(""+e.$name()),e.$push("$"+e.$name())):a(e.$const_scope(),e.$s("cbase"))?e.$push(e.$top_scope().$absolute_const()+"('"+e.$name()+"')"):n(e.$const_scope())?e.$push(e.$top_scope().$absolute_const()+"(",e.$recv(e.$const_scope()),", '"+e.$name()+"')"):(n(e.$compiler()["$eval?"]()),e.$push(e.$scope().$relative_access()+"('"+e.$name()+"')"))})),s($,"$magical_data_const?",(function(){var e,t,r=this;return n(e=n(t=r.$const_scope()["$nil?"]())?r.$name()["$=="]("DATA"):t)?r.$compiler().$eof_content():e})),i(u[0],"OPTIMIZED_ACCESS_CONSTS",["BasicObject","Object","Module","Class","Opal","Kernel","NilClass"].$freeze()),s($,"$optimized_access?",(function(){var e,t=this;return n(e=t.$const_scope()["$=="](t.$s("cbase")))?c("OPTIMIZED_ACCESS_CONSTS")["$include?"](t.$name()):e}))}($[0],u("Base"),$),function(e,t){var n=r(e,t,"CbaseNode");n.$handle("cbase"),s(n,"$compile",(function(){return this.$push("'::'")}))}($[0],u("Base")),function(e,t){var a=r(e,t,"ConstAssignNode");return a.$handle("casgn"),a.$children("base","name","value"),s(a,"$compile",(function(){var e=this;return e.$helper("const_set"),n(e.$base())?e.$push("$const_set(",e.$expr(e.$base()),", '"+e.$name()+"', ",e.$expr(e.$value()),")"):e.$push("$const_set("+e.$scope().$nesting()+"[0], '"+e.$name()+"', ",e.$expr(e.$value()),")")}))}($[0],u("Base"))}($[0],$)}(l[0],l)},Opal.modules.pathname=function(e){var t=e.klass,r=e.const_set,n=e.regexp,a=e.eqeqeq,s=e.truthy,i=e.eqeq,o=e.def,l=e.defs,$=e.to_ary,u=e.annotate_regexp,c=e.slice,_=e.send,p=e.to_a,m=e.return_ivar,d=e.neqeq,f=e.rb_plus,h=e.not,g=e.thrower,b=e.alias,v=e.module,y=e.top,x=[],w=e.nil,k=e.$$$;return e.add_stubs("require,include,quote,===,to_s,path,respond_to?,to_path,is_a?,nil?,raise,class,==,new,pwd,attr_reader,!,relative?,chop_basename,basename,=~,source,[],rindex,sub,absolute?,hash,expand_path,plus,unshift,length,!=,empty?,first,shift,+,join,dirname,pop,reverse_each,directory?,extname,<=>,nonzero?,proc,casecmp,cleanpath,inspect,include?,fill,map,entries"),y.$require("corelib/comparable"),function(v,y,x){var U=t(v,null,"Pathname"),E=[U].concat(x),M=e.$r(E);U.$$prototype.path=w,U.$include(M("Comparable")),r(E[0],"SEPARATOR_PAT",n([M("Regexp").$quote(k(M("File"),"SEPARATOR"))])),o(U,"$initialize",(function(e){var t=this;return a(M("Pathname"),e)?t.path=e.$path().$to_s():s(e["$respond_to?"]("to_path"))?t.path=e.$to_path():s(e["$is_a?"](M("String")))?t.path=e:s(e["$nil?"]())?t.$raise(M("TypeError"),"no implicit conversion of nil into String"):t.$raise(M("TypeError"),"no implicit conversion of "+e.$class()+" into String"),i(t.path,"\0")?t.$raise(M("ArgumentError")):w})),l(U,"$pwd",(function(){return this.$new(M("Dir").$pwd())})),U.$attr_reader("path"),o(U,"$==",(function(e){return e.$path()["$=="](this.path)})),o(U,"$absolute?",(function(){return this["$relative?"]()["$!"]()})),o(U,"$relative?",(function(){var e,t=w,r=w;for(t=this.path;s(r=this.$chop_basename(t));)t=null==(e=$(r))[0]?w:e[0];return t["$=="]("")})),o(U,"$chop_basename",(function(e){var t;return t=M("File").$basename(e),s(M("Regexp").$new("^"+k(M("Pathname"),"SEPARATOR_PAT").$source()+"?$")["$=~"](t))?w:[e["$[]"](0,e.$rindex(t)),t]})),o(U,"$root?",(function(){return this.path["$=="]("/")})),o(U,"$parent",(function(){var e=w;return e=this.path.$sub(u(/\/([^\/]+\/?$)/mu,null,""),""),i(e,"")&&(e=s(this["$absolute?"]())?"/":"."),M("Pathname").$new(e)})),o(U,"$sub",(function(e){var t;return t=c(arguments),M("Pathname").$new(_(this.path,"sub",p(t)))}),-1),o(U,"$cleanpath",(function(){return e.normalize(this.path)})),o(U,"$to_path",m("path")),o(U,"$hash",(function(){return this.path.$hash()})),o(U,"$expand_path",(function(){return M("Pathname").$new(M("File").$expand_path(this.path))})),o(U,"$+",(function(e){return a(M("Pathname"),e)||(e=M("Pathname").$new(e)),M("Pathname").$new(this.$plus(this.path,e.$to_s()))})),o(U,"$plus",(function(t,r){var a,o=this,l=w,u=w,c=w,_=w,p=w,m=w,g=w,b=w,v=w,y=w;for(l=r,u=[],c=[];s(_=o.$chop_basename(l));)l=null==(a=$(_))[0]?w:a[0],p=null==a[1]?w:a[1],u.$unshift(l.$length()),c.$unshift(p);if(d(l,""))return r;for(m=t;s(!0);){for(;s(s(g=c["$empty?"]()["$!"]())?c.$first()["$=="]("."):g);)u.$shift(),c.$shift();if(!s(b=o.$chop_basename(m)))break;if(m=null==(a=$(b))[0]?w:a[0],v=null==a[1]?w:a[1],!i(v,".")){if(i(v,"..")||s(c["$empty?"]())||d(c.$first(),"..")){m=f(m,v);break}u.$shift(),c.$shift()}}if(b=o.$chop_basename(m),h(b)&&s(n([M("SEPARATOR_PAT")])["$=~"](M("File").$basename(m))))for(;s(s(g=c["$empty?"]()["$!"]())?c.$first()["$=="](".."):g);)u.$shift(),c.$shift();return h(c["$empty?"]())?(y=r["$[]"](e.Range.$new(u.$first(),-1,!1)),s(b)?M("File").$join(m,y):f(m,y)):s(b)?m:M("File").$dirname(m)})),o(U,"$join",(function(e){try{var t,r,n=g("return"),i=w;return t=c(arguments),s((r=t)["$empty?"]())?this:(i=r.$pop(),a(M("Pathname"),i)||(i=M("Pathname").$new(i)),s(i["$absolute?"]())?i:(_(r,"reverse_each",[],(function e(t){if(null==t&&(t=w),a(M("Pathname"),t)||(t=M("Pathname").$new(t)),i=f(t,i),!s(i["$absolute?"]()))return w;n.$throw(i,e.$$is_lambda)}),{$$ret:n}),f(this,i)))}catch(e){if(e===n)return e.$v;throw e}finally{n.is_orphan=!0}}),-1),o(U,"$split",(function(){return[this.$dirname(),this.$basename()]})),o(U,"$dirname",(function(){return M("Pathname").$new(M("File").$dirname(this.path))})),o(U,"$basename",(function(){return M("Pathname").$new(M("File").$basename(this.path))})),o(U,"$directory?",(function(){return M("File")["$directory?"](this.path)})),o(U,"$extname",(function(){return M("File").$extname(this.path)})),o(U,"$<=>",(function(e){return this.$path()["$<=>"](e.$path())})),r(E[0],"SAME_PATHS",s(k(M("File"),"FNM_SYSCASE")["$nonzero?"]())?_(U,"proc",[],(function(e,t){return null==e&&(e=w),null==t&&(t=w),e.$casecmp(t)["$=="](0)})):_(U,"proc",[],(function(e,t){return null==e&&(e=w),null==t&&(t=w),e["$=="](t)}))),o(U,"$relative_path_from",(function(e){var t,r,n=this,a=w,i=w,o=w,l=w,u=w,c=w,m=w,h=w,g=w;for(r=n.$cleanpath().$to_s(),e=e.$cleanpath().$to_s(),a=r,i=[];s(o=n.$chop_basename(a));)a=null==(t=$(o))[0]?w:t[0],l=null==t[1]?w:t[1],d(l,".")&&i.$unshift(l);for(u=e,c=[];s(o=n.$chop_basename(u));)u=null==(t=$(o))[0]?w:t[0],l=null==t[1]?w:t[1],d(l,".")&&c.$unshift(l);for(s(M("SAME_PATHS")["$[]"](a,u))||n.$raise(M("ArgumentError"),"different prefix: "+a.$inspect()+" and "+e.$inspect());s(s(m=s(h=i["$empty?"]()["$!"]())?c["$empty?"]()["$!"]():h)?M("SAME_PATHS")["$[]"](i.$first(),c.$first()):m);)i.$shift(),c.$shift();return s(c["$include?"](".."))&&n.$raise(M("ArgumentError"),"base_directory has ..: "+e.$inspect()),c.$fill(".."),g=f(c,i),s(g["$empty?"]())?M("Pathname").$new("."):M("Pathname").$new(_(M("File"),"join",p(g)))})),o(U,"$entries",(function(){return _(M("Dir").$entries(this.path),"map",[],(function e(t){return null==t&&(t=w),(null==e.$$s?this:e.$$s).$class().$new(t)}),{$$s:this})})),b(U,"===","=="),b(U,"eql?","=="),b(U,"to_s","to_path"),b(U,"to_str","to_path")}(x[0],0,x),function(t,r){var n=v(t,"Kernel"),a=[n].concat(r),s=e.$r(a);return o(n,"$Pathname",(function(e){return s("Pathname").$new(e)}))}(x[0],x)},Opal.modules["opal/nodes/call"]=function(e){var t=e.module,r=e.klass,n=e.const_set,a=e.send,s=e.defs,i=e.slice,o=e.send2,l=e.find_super,$=e.to_a,u=e.truthy,c=e.def,_=e.eqeq,p=e.rb_plus,m=e.not,d=e.neqeq,f=e.annotate_regexp,h=e.to_ary,g=e.Opal,b=e.range,v=e.top,y=[],x=e.nil,w=e.$$$;return e.add_stubs("require,handle,attr_reader,freeze,[]=,define_method,to_proc,include?,type,s,handle_special,record_method_call,compiler,meth,with_wrapper,using_eval?,compile_eval_var,using_irb?,compile_irb_var,default_compile,private,iter,[],meta,splat?,call_is_writer_that_needs_handling?,!,empty?,collect_refinements_temps,scope,==,auto_await?,push,await_encountered=,iter_has_break?,push_closure,invoke_using_refinement?,compile_using_refined_send,invoke_using_send?,compile_using_send,compile_simple_call_chain,pop_closure,helper,compile_receiver,compile_method_name,compile_arguments,compile_block_pass,compile_refinements,recv,receiver_sexp,expr,arglist,children,map,method_jsid,any?,recvr,mid_to_jsid,to_s,with_temp,intern,irb?,top?,variable_like?,eval?,scope_variables,nil?,updated,async_await,!=,match?,method,arity,each,add_special,to_sym,call,inline_operators?,fragment,resolve,new,<<,requires,file,dirname,cleanpath,join,Pathname,self,inspect,process,length,warning,autoloads,required_trees,force_encoding,encoding,+,handle_block_given_call,def?,mid,module_name,count,accepts_using?,using_refinement,first,refinements_temp,arity_check?,defines_lambda,push_nesting?,nesting,thrower,new_temp,scope_locals,source_location,size,last,csend?,handle_conditional_send,handle_writer,expr?,recv?,=~,wrap,dynamic_require_severity,handle_part,is_a?,expand_path,split,error,line,each_with_object,pop"),v.$require("set"),v.$require("pathname"),v.$require("opal/nodes/base"),function(v,y){var k=[t(v,"Opal")].concat(y);return function(v,y){var k=[t(v,"Nodes")].concat(y),U=e.$r(k);return function(t,v,y){var k=r(t,v,"CallNode"),U=[k].concat(y),E=e.$r(U),M=k.$$prototype;return M.sexp=M.conditional_recvr=M.with_writer_temp=M.compiler=x,k.$handle("send","csend"),k.$attr_reader("recvr","meth","arglist","iter"),n(U[0],"SPECIALS",new Map),n(U[0],"OPERATORS",new Map([["+","plus"],["-","minus"],["*","times"],["/","divide"],["<","lt"],["<=","le"],[">","gt"],[">=","ge"]]).$freeze()),s(k,"$add_special",(function e(t,r){var n=e.$$p||x;return e.$$p=null,null==r&&(r=new Map),E("SPECIALS")["$[]="](t,r),a(this,"define_method",["handle_"+t],n.$to_proc())}),-2),c(k,"$initialize",(function e(t){var r,n,s,c,_=e.$$p||x,p=this,m=x,d=x;return e.$$p=null,r=i(arguments),o(p,l(p,"initialize",e,!1,!0),"initialize",$(r),_),n=[].concat($(p.sexp)),p.recvr=null==n[0]?x:n[0],p.meth=null==n[1]?x:n[1],m=i(n,2),s=(n=[].concat($(m))).length-1,c=i(n,0,s=s<0?0:s),d=null==n[s]?x:n[s],u(d)&&u(["iter","block_pass"]["$include?"](d.$type()))?(p.iter=d,m=c):p.iter=x,p.arglist=a(p,"s",["arglist"].concat($(m)))}),-1),c(k,"$compile",(function(){return a(this,"handle_special",[],(function e(){var t=null==e.$$s?this:e.$$s;return t.$compiler().$record_method_call(t.$meth()),a(t,"with_wrapper",[],(function e(){var t=null==e.$$s?this:e.$$s;return u(t["$using_eval?"]())?t.$compile_eval_var():u(t["$using_irb?"]())?t.$compile_irb_var():t.$default_compile()}),{$$s:t})}),{$$s:this})})),k.$private(),c(k,"$iter_has_break?",(function(){return!!u(this.$iter())&&this.$iter().$meta()["$[]"]("has_break")})),c(k,"$invoke_using_send?",(function(){var e,t,r=this;return u(e=u(t=r.$iter())?t:r["$splat?"]())?e:r["$call_is_writer_that_needs_handling?"]()})),c(k,"$invoke_using_refinement?",(function(){return this.$scope().$scope().$collect_refinements_temps()["$empty?"]()["$!"]()})),c(k,"$csend?",(function(){return this.sexp.$type()["$=="]("csend")})),c(k,"$default_compile",(function(){var e=this;return u(e["$auto_await?"]())&&(e.$push("(await "),e.$scope()["$await_encountered="](!0)),u(e["$iter_has_break?"]())&&e.$push_closure(w(E("Closure"),"SEND")),u(e["$invoke_using_refinement?"]())?e.$compile_using_refined_send():u(e["$invoke_using_send?"]())?e.$compile_using_send():e.$compile_simple_call_chain(),u(e["$iter_has_break?"]())&&e.$pop_closure(),u(e["$auto_await?"]())?e.$push(")"):x})),c(k,"$compile_using_send",(function(){var e=this;return e.$helper("send"),e.$push("$send("),e.$compile_receiver(),e.$compile_method_name(),e.$compile_arguments(),e.$compile_block_pass(),e.$push(")")})),c(k,"$compile_using_refined_send",(function(){var e=this;return e.$helper("refined_send"),e.$push("$refined_send("),e.$compile_refinements(),e.$compile_receiver(),e.$compile_method_name(),e.$compile_arguments(),e.$compile_block_pass(),e.$push(")")})),c(k,"$compile_receiver",(function(){var e,t=this;return t.$push(u(e=t.conditional_recvr)?e:t.$recv(t.$receiver_sexp()))})),c(k,"$compile_method_name",(function(){return this.$push(", '"+this.$meth()+"'")})),c(k,"$compile_arguments",(function(e){var t=this;return null==e&&(e=!1),u(e)||t.$push(", "),u(t.with_writer_temp)?t.$push(t.with_writer_temp):u(t["$splat?"]())?t.$push(t.$expr(t.$arglist())):u(t.$arglist().$children()["$empty?"]())?t.$push("[]"):t.$push("[",t.$expr(t.$arglist()),"]")}),-1),c(k,"$compile_block_pass",(function(){var e=this;return u(e.$iter())?e.$push(", ",e.$expr(e.$iter())):x})),c(k,"$compile_refinements",(function(){var e,t=this;return e=a(t.$scope().$collect_refinements_temps(),"map",[],(function e(t){return null==t&&(t=x),(null==e.$$s?this:e.$$s).$s("js_tmp",t)}),{$$s:t}),t.$push(t.$expr(a(t,"s",["array"].concat($(e)))),", ")})),c(k,"$compile_simple_call_chain",(function(){var e=this;return e.$compile_receiver(),e.$push(e.$method_jsid(),"(",e.$expr(e.$arglist()),")")})),c(k,"$splat?",(function(){return a(this.$arglist().$children(),"any?",[],(function(e){return null==e&&(e=x),e.$type()["$=="]("splat")}))})),c(k,"$receiver_sexp",(function(){var e;return u(e=this.$recvr())?e:this.$s("self")})),c(k,"$method_jsid",(function(){return this.$mid_to_jsid(this.$meth().$to_s())})),c(k,"$compile_irb_var",(function(){return a(this,"with_temp",[],(function e(t){var r,n,a,s=null==e.$$s?this:e.$$s;return null==t&&(t=x),r=s.$meth(),n=s.$s("send",s.$s("self"),s.$meth().$intern(),s.$s("arglist")),a="(typeof "+r+" !== 'undefined') ? "+r+" : ",s.$push("(("+t+" = Opal.irb_vars."+r+") == null ? ",a,s.$expr(n)," : "+t+")")}),{$$s:this})})),c(k,"$compile_eval_var",(function(){return this.$push(this.$meth().$to_s())})),c(k,"$using_irb?",(function(){var e,t,r=this;return u(e=u(t=r.compiler["$irb?"]())?r.$scope()["$top?"]():t)?r["$variable_like?"]():e})),c(k,"$using_eval?",(function(){var e,t,r=this;return u(e=u(t=r.compiler["$eval?"]())?r.$scope()["$top?"]():t)?r.compiler.$scope_variables()["$include?"](r.$meth()):e})),c(k,"$variable_like?",(function(){var e,t,r=this;return u(e=u(t=r.$arglist()["$=="](r.$s("arglist")))?r.$recvr()["$nil?"]():t)?r.$iter()["$nil?"]():e})),c(k,"$sexp_with_arglist",(function(){var e=this;return e.sexp.$updated(x,[e.$recvr(),e.$meth(),e.$arglist()])})),c(k,"$auto_await?",(function(){var e,t,r=x;return r=this.$compiler().$async_await(),u(e=u(t=r)?r["$!="](!0):t)?r["$match?"](this.$meth().$to_s()):e})),c(k,"$handle_special",(function t(){var r=t.$$p||x,n=this,a=x;return t.$$p=null,u(E("SPECIALS")["$include?"](n.$meth()))?(a=n.$method("handle_"+n.$meth()),_(a.$arity(),1)?a["$[]"](r):a["$[]"]()):e.yieldX(r,[])})),a(E("OPERATORS"),"each",[],(function e(t,r){var n=null==e.$$s?this:e.$$s;return null==t&&(t=x),null==r&&(r=x),a(n,"add_special",[t.$to_sym()],(function e(n){var a,s=null==e.$$s?this:e.$$s,i=x,o=x;return null==n&&(n=x),u(s["$invoke_using_refinement?"]())?n.$call():u(s.$compiler()["$inline_operators?"]())?(s.$compiler().$record_method_call(t),s.$helper("rb_"+r),i=(a=[s.$expr(s.$recvr()),s.$expr(s.$arglist())])[0],o=a[1],s.$push(s.$fragment("$rb_"+r+"(")),s.$push(i),s.$push(s.$fragment(", ")),s.$push(o),s.$push(s.$fragment(")"))):n.$call()}),{$$s:n})}),{$$s:k}),a(k,"add_special",["require"],(function e(t){var r=null==e.$$s?this:e.$$s,n=x;return null==t&&(t=x),n=E("DependencyResolver").$new(r.$compiler(),r.$arglist().$children()["$[]"](0)).$resolve(),u(n["$nil?"]())||r.$compiler().$requires()["$<<"](n),t.$call()}),{$$s:k}),a(k,"add_special",["require_relative"],(function e(){var t=null==e.$$s?this:e.$$s,r=x,n=x,a=x;return r=t.$arglist().$children()["$[]"](0),n=t.$compiler().$file(),_(r.$type(),"str")&&(a=E("File").$dirname(n),t.$compiler().$requires()["$<<"](t.$Pathname(a).$join(r.$children()["$[]"](0)).$cleanpath().$to_s())),t.$push(t.$fragment(t.$scope().$self()+".$require("+n.$inspect()+"+ '/../' + ")),t.$push(t.$process(t.$arglist())),t.$push(t.$fragment(")"))}),{$$s:k}),a(k,"add_special",["autoload"],(function e(t){var r=null==e.$$s?this:e.$$s,n=x,a=x;return null==t&&(t=x),n=r.$arglist().$children(),_(n.$length(),2)&&_(n["$[]"](0).$type(),"sym")&&(a=E("DependencyResolver").$new(r.$compiler(),n["$[]"](1),"ignore").$resolve(),u(a["$nil?"]())?r.$compiler().$warning("File for autoload of constant '"+n["$[]"](0).$children()["$[]"](0)+"' could not be bundled!"):(r.$compiler().$requires()["$<<"](a),r.$compiler().$autoloads()["$<<"](a))),t.$call()}),{$$s:k}),a(k,"add_special",["require_tree"],(function e(t){var r,n,a=null==e.$$s?this:e.$$s,s=x,o=x,l=x,u=x;return null==t&&(t=x),s=null==(r=[].concat($(a.$arglist().$children())))[0]?x:r[0],n=i(r,1),_(s.$type(),"str")&&(o=s.$children()["$[]"](0),a.$compiler().$required_trees()["$<<"](o),l=E("File").$dirname(a.$compiler().$file()),(u=a.$Pathname(l).$join(o).$cleanpath().$to_s()).$force_encoding(o.$encoding()),s=s.$updated(x,[u])),a.arglist=a.$arglist().$updated(x,p([s],n)),t.$call()}),{$$s:k}),a(k,"add_special",["block_given?"],(function e(){var t=null==e.$$s?this:e.$$s;return null==t.sexp&&(t.sexp=x),t.$push(t.$compiler().$handle_block_given_call(t.sexp))}),{$$s:k}),a(k,"add_special",["__callee__"],(function e(){var t=null==e.$$s?this:e.$$s;return u(t.$scope()["$def?"]())?t.$push(t.$fragment(t.$scope().$mid().$to_s().$inspect())):t.$push(t.$fragment("nil"))}),{$$s:k}),a(k,"add_special",["__method__"],(function e(){var t=null==e.$$s?this:e.$$s;return u(t.$scope()["$def?"]())?t.$push(t.$fragment(t.$scope().$mid().$to_s().$inspect())):t.$push(t.$fragment("nil"))}),{$$s:k}),a(k,"add_special",["__dir__"],(function e(){var t=null==e.$$s?this:e.$$s;return t.$push(E("File").$dirname(w(E("Opal"),"Compiler").$module_name(t.$compiler().$file())).$inspect())}),{$$s:k}),a(k,"add_special",["using"],(function e(t){var r=null==e.$$s?this:e.$$s;return null==t&&(t=x),u(r.$scope()["$accepts_using?"]())&&_(r.$arglist().$children().$count(),1)?r.$using_refinement(r.$arglist().$children().$first()):t.$call()}),{$$s:k}),c(k,"$using_refinement",(function(e){var t,r,n,a=this;return r=null==(t=[].concat($(a.$scope().$refinements_temp())))[0]?x:t[0],n=null==t[1]?x:t[1],u(r)?a.$push("("+n+" = "+r+".slice(), "+n+".push(",a.$expr(e),"), "+a.$scope().$self()+")"):a.$push("("+n+" = [",a.$expr(e),"], "+a.$scope().$self()+")")})),a(k,"add_special",["debugger"],(function e(){var t=null==e.$$s?this:e.$$s;return t.$push(t.$fragment("debugger"))}),{$$s:k}),a(k,"add_special",["__OPAL_COMPILER_CONFIG__"],(function e(){var t=null==e.$$s?this:e.$$s;return t.$push(t.$fragment("(new Map([['arity_check', "+t.$compiler()["$arity_check?"]()+"]]))"))}),{$$s:k}),a(k,"add_special",["lambda"],(function e(t){return null==t&&(t=x),a((null==e.$$s?this:e.$$s).$scope(),"defines_lambda",[],(function(){return t.$call()}))}),{$$s:k}),a(k,"add_special",["nesting"],(function e(t){var r,n=null==e.$$s?this:e.$$s;return null==t&&(t=x),r=n["$push_nesting?"](),u(r)&&n.$push("(Opal.Module.$$nesting = "+n.$scope().$nesting()+", "),t.$call(),u(r)?n.$push(")"):x}),{$$s:k}),a(k,"add_special",["constants"],(function e(t){var r,n=null==e.$$s?this:e.$$s;return null==t&&(t=x),r=n["$push_nesting?"](),u(r)&&n.$push("(Opal.Module.$$nesting = "+n.$scope().$nesting()+", "),t.$call(),u(r)?n.$push(")"):x}),{$$s:k}),a(k,"add_special",["eval"],(function e(t){var r,n,s=null==e.$$s?this:e.$$s;return null==t&&(t=x),s.$thrower("eval_return"),d(s.$arglist().$children().$length(),1)||m([s.$s("self"),x]["$include?"](s.$recvr()))?t.$call():(s.$scope().$nesting(),r=s.$scope().$new_temp(),n=a(s.$scope().$scope_locals(),"map",[],"to_s".$to_proc()).$inspect(),s.$push("("+r+" = ",s.$expr(s.$arglist())),s.$push(", typeof Opal.compile === 'function' ? eval(Opal.compile("+r),s.$push(", {scope_variables: ",n),s.$push(", arity_check: "+s.$compiler()["$arity_check?"]()+", file: '(eval)', eval: true})) : "),s.$push(s.$scope().$self()+".$eval("+r+"))"))}),{$$s:k}),a(k,"add_special",["local_variables"],(function e(t){var r,n=null==e.$$s?this:e.$$s;return null==t&&(t=x),u([n.$s("self"),x]["$include?"](n.$recvr()))?(r=a(n.$scope().$scope_locals(),"map",[],"to_s".$to_proc()).$inspect(),n.$push(r)):t.$call()}),{$$s:k}),a(k,"add_special",["binding"],(function e(t){var r=null==e.$$s?this:e.$$s;return null==t&&(t=x),u(r.$recvr()["$nil?"]())?(r.$scope().$nesting(),r.$push("Opal.Binding.$new("),r.$push(" function($code) {"),r.$push(" return eval($code);"),r.$push(" },"),r.$push(" ",a(r.$scope().$scope_locals(),"map",[],"to_s".$to_proc()).$inspect(),","),r.$push(" ",r.$scope().$self(),","),r.$push(" ",r.$source_location()),r.$push(")")):t.$call()}),{$$s:k}),a(k,"add_special",["__await__"],(function e(t){var r,n=null==e.$$s?this:e.$$s;return null==t&&(t=x),u(n.$compiler().$async_await())?(n.$push(n.$fragment("(await (")),n.$push(n.$process(n.$recvr())),n.$push(n.$fragment("))")),r=[!0],a(n.$scope(),"await_encountered=",r),r[r.length-1]):t.$call()}),{$$s:k}),c(k,"$push_nesting?",(function(){var e,t=x,r=x,n=x;return t=this.$children().$first(),u(e=this.$children().$size()["$=="](2))?u(r=t["$nil?"]())?r:u(n=t.$type()["$=="]("const"))?t.$children().$last()["$=="]("Module"):n:e})),c(k,"$with_wrapper",(function t(){var r=t.$$p||x,n=this;return t.$$p=null,u(n["$csend?"]())&&m(n.conditional_recvr)?a(n,"handle_conditional_send",[],(function e(){return a(null==e.$$s?this:e.$$s,"with_wrapper",[],r.$to_proc())}),{$$s:n}):u(n["$call_is_writer_that_needs_handling?"]())?a(n,"handle_writer",[],r.$to_proc()):e.yieldX(r,[])})),c(k,"$call_is_writer_that_needs_handling?",(function(){var e,t=this,r=x;return u(e=u(r=t["$expr?"]())?r:t["$recv?"]())?u(r=t.$meth().$to_s()["$=~"](f(/^\w+=$/mu,null,"")))?r:t.$meth()["$=="]("[]="):e})),c(k,"$handle_conditional_send",(function t(){var r,n=t.$$p||x,a=this;return t.$$p=null,r=a.$scope().$new_temp(),a.$push(r+" = ",a.$expr(a.$receiver_sexp())),a.$push(", ("+r+" === nil || "+r+" == null) ? nil : "),a.conditional_recvr=r,e.yieldX(n,[]),a.$wrap("(",")")})),c(k,"$handle_writer",(function t(){var r=t.$$p||x;return t.$$p=null,a(this,"with_temp",[],(function t(n){var a=null==t.$$s?this:t.$$s;return null==n&&(n=x),a.$push("("+n+" = "),a.$compile_arguments(!0),a.$push(", "),a.with_writer_temp=n,e.yieldX(r,[]),a.with_writer_temp=!1,a.$push(", "),a.$push(n+"["+n+".length - 1])")}),{$$s:this})})),function(t,n,s){var o=r(t,null,"DependencyResolver"),l=[o].concat(s),p=e.$r(l),m=o.$$prototype;return m.compiler=m.sexp=m.missing_dynamic_require=x,c(o,"$initialize",(function(e,t,r){var n,a=this;return null==r&&(r=x),a.compiler=e,a.sexp=t,a.missing_dynamic_require=u(n=r)?n:a.compiler.$dynamic_require_severity()}),-3),c(o,"$resolve",(function(){return this.$handle_part(this.sexp)})),c(o,"$handle_part",(function(e,t){var r,n,s=this,o=x,l=x,c=x,m=x;if(null==t&&(t=s.missing_dynamic_require),u(e))switch(e.$type().valueOf()){case"str":return e.$children()["$[]"](0);case"dstr":return a(e.$children(),"map",[],(function e(t){return null==t&&(t=x),(null==e.$$s?this:e.$$s).$handle_part(t)}),{$$s:s}).$join();case"begin":if(_(e.$children().$length(),1))return s.$handle_part(e.$children()["$[]"](0));break;case"send":if(n=e.$children(),o=null==(r=h(n))[0]?x:r[0],l=null==r[1]?x:r[1],c=i(r,2),m=a(c,"map",[],(function e(t){return null==t&&(t=x),(null==e.$$s?this:e.$$s).$handle_part(t,"ignore")}),{$$s:s}),u(m["$include?"](x)))return x;if(u(o["$is_a?"](w(w(g,"AST"),"Node")))&&_(o.$type(),"const")&&_(o.$children().$last(),"File")){if(_(l,"expand_path"))return a(s,"expand_path",$(m));if(_(l,"join"))return s.$expand_path(m.$join("/"));if(_(l,"dirname"))return s.$expand_path(m["$[]"](0).$split("/")["$[]"](b(0,-1,!0)).$join("/"))}else if(_(l,"__dir__"))return p("File").$dirname(w(p("Opal"),"Compiler").$module_name(s.compiler.$file()))}switch(t.valueOf()){case"error":return s.compiler.$error("Cannot handle dynamic require",s.sexp.$line());case"warning":return s.compiler.$warning("Cannot handle dynamic require",s.sexp.$line());default:return x}}),-2),c(o,"$expand_path",(function(e,t){return null==t&&(t=""),a((t+"/"+e).$split("/"),"each_with_object",[[]],(function(e,t){return null==e&&(e=x),null==t&&(t=x),_(e,"")?x:_(e,"..")?t.$pop():t["$<<"](e)})).$join("/")}),-2)}(U[0],0,U)}(k[0],U("Base"),k)}(k[0],k)}(y[0],y)},Opal.modules["opal/nodes/call_special"]=function(e){var t=e.module,r=e.klass,n=e.def,a=e.slice,s=e.send2,i=e.find_super,o=e.to_a,l=e.truthy,$=e.eqeq,u=e.send,c=e.annotate_regexp,_=e.top,p=[],m=e.nil;return e.add_stubs("require,handle,children,push,recv,recvr,expr,property,value,<<,default_compile,meth,receiver_sexp,method_jsid,compile_arguments,iter,s,lhs,rhs,==,type,first,extract_names,empty?,generate_names_definition,generate_names_assignments,stmt?,handle_statement,handle_non_statement,process,private,map,flatten,scan,to_proc"),_.$require("opal/nodes/base"),_.$require("opal/nodes/call"),function(_,p){var d=[t(_,"Opal")].concat(p);return function(_,p){var d=[t(_,"Nodes")].concat(p),f=e.$r(d);return function(e,t){var a=r(e,t,"JsAttrNode");a.$handle("jsattr"),a.$children("recvr","property"),n(a,"$compile",(function(){var e=this;return e.$push(e.$recv(e.$recvr()),"[",e.$expr(e.$property()),"]")}))}(d[0],f("Base")),function(e,t){var a=r(e,t,"JsAttrAsgnNode");a.$handle("jsattrasgn"),a.$children("recvr","property","value"),n(a,"$compile",(function(){var e=this;return e.$push(e.$recv(e.$recvr()),"[",e.$expr(e.$property()),"] = ",e.$expr(e.$value()))}))}(d[0],f("Base")),function(e,t){var $=r(e,t,"JsCallNode"),u=$.$$prototype;u.iter=u.arglist=m,$.$handle("jscall"),n($,"$initialize",(function e(t){var r,n=e.$$p||m,$=this;return e.$$p=null,r=a(arguments),s($,i($,"initialize",e,!1,!0),"initialize",o(r),n),l($.iter)&&($.arglist=$.arglist["$<<"]($.iter)),$.iter=m}),-1),n($,"$compile",(function(){return this.$default_compile()})),n($,"$method_jsid",(function(){return"."+this.$meth()})),n($,"$compile_using_send",(function(){var e=this;return e.$push(e.$recv(e.$receiver_sexp()),e.$method_jsid(),".apply(null"),e.$compile_arguments(),l(e.$iter())&&e.$push(".concat(",e.$expr(e.$iter()),")"),e.$push(")")}))}(d[0],f("CallNode")),function(e,t){var a=r(e,t,"Match3Node");return a.$$prototype.level=m,a.$handle("match_with_lvasgn"),a.$children("lhs","rhs"),n(a,"$compile",(function(){var e=this,t=m,r=m,n=m,a=m;return t=e.$s("send",e.$lhs(),"=~",e.$rhs()),$(e.$lhs().$type(),"regexp")&&$(e.$lhs().$children().$first().$type(),"str")&&(r=e.$extract_names(e.$lhs()),l(r["$empty?"]())||(n=e.$generate_names_definition(),a=e.$generate_names_assignments(r),t=l(e["$stmt?"]())?e.$handle_statement(t,n,a):e.$handle_non_statement(t,n,a))),e.$push(e.$process(t,e.level))})),a.$private(),n(a,"$extract_names",(function(e){var t=m;return t=e.$children().$first().$children().$first(),u(t.$scan(c(/\(\?<([^>]*)>/u,null,"")).$flatten(),"map",[],"to_sym".$to_proc())})),n(a,"$generate_names_definition",(function(){var e=this;return e.$s("lvasgn","$m3names",e.$s("if",e.$s("gvar","$~"),e.$s("send",e.$s("gvar","$~"),"named_captures"),e.$s("hash")))})),n(a,"$generate_names_assignments",(function(e){return u(e,"map",[],(function e(t){var r=null==e.$$s?this:e.$$s;return null==t&&(t=m),r.$s("lvasgn",t,r.$s("send",r.$s("lvar","$m3names"),"[]",r.$s("sym",t)))}),{$$s:this})})),n(a,"$handle_statement",(function(e,t,r){return u(this,"s",["begin",e,t].concat(o(r)))})),n(a,"$handle_non_statement",(function(e,t,r){var n=this;return u(n,"s",["begin",n.$s("lvasgn","$m3tmp",e),t].concat(o(r)).concat([n.$s("lvar","$m3tmp")]))}))}(d[0],f("Base"))}(d[0],d)}(p[0],p)},Opal.modules["opal/nodes/scope"]=function(e){var t=e.module,r=e.klass,n=e.slice,a=e.send2,s=e.find_super,i=e.to_a,o=e.def,l=e.send,$=e.truthy,u=e.assign_ivar_val,c=e.return_ivar,_=e.not,p=e.rb_plus,m=e.eqeq,d=e.thrower,f=e.top,h=[],g=e.nil;return e.add_stubs("require,attr_accessor,attr_reader,indent,scope,compiler,scope=,==,iter?,!,class?,dup,push,map,ivars,gvars,empty?,<<,parser_indent,join,+,fragment,def_in_class?,add_proto_ivar,include?,has_local?,|,scope_locals,reject,start_with?,to_s,has_temp?,unshift,pop,next_temp,loop,succ,uses_block!,identify!,valid_name?,mid,compact,parent,name,scope_name,unique_temp,lambda?,def?,type,nil?,rescue_else_sexp,last,class,collect_refinements_temps,add_scope_local,new_refinements_temp,identity,block_name=,add_temp,block_name,line"),f.$require("opal/nodes/base"),function(f,h){var b=[t(f,"Opal")].concat(h);return function(f,h){var b=[t(f,"Nodes")].concat(h),v=e.$r(b);return function(t,f,h){var b=r(t,f,"ScopeNode"),v=[b].concat(h),y=e.$r(v),x=b.$$prototype;return x.type=x.is_lambda=x.defs=x.parent=x.temps=x.locals=x.proto_ivars=x.compiler=x.ivars=x.gvars=x.args=x.queue=x.while_stack=x.identity=x.rescues=x.next_retry_id=x.refinements_temp=x.block_prepared=g,b.$attr_accessor("parent"),b.$attr_accessor("name"),b.$attr_accessor("block_name"),b.$attr_reader("scope_name"),b.$attr_reader("locals"),b.$attr_reader("ivars"),b.$attr_reader("gvars"),b.$attr_accessor("mid"),b.$attr_accessor("defs"),b.$attr_reader("methods"),b.$attr_accessor("catch_return","has_break","has_retry"),b.$attr_accessor("rescue_else_sexp"),o(b,"$initialize",(function e(t){var r,o=e.$$p||g,l=this;return e.$$p=null,r=n(arguments),a(l,s(l,"initialize",e,!1,!0),"initialize",i(r),o),l.locals=[],l.temps=[],l.args=[],l.ivars=[],l.gvars=[],l.parent=g,l.queue=[],l.unique="a",l.while_stack=[],l.identity=g,l.defs=g,l.methods=[],l.uses_block=!1,l.in_ensure=!1,l.proto_ivars=[]}),-1),o(b,"$in_scope",(function t(){var r=t.$$p||g;return t.$$p=null,l(this,"indent",[],(function t(){var n,a=null==t.$$s?this:t.$$s;return null==a.parent&&(a.parent=g),a.parent=a.$compiler().$scope(),a.$compiler()["$scope="](a),e.yield1(r,a),n=[a.parent],l(a.$compiler(),"scope=",n),n[n.length-1]}),{$$s:this})})),o(b,"$class_scope?",(function(){var e;return $(e=this.type["$=="]("class"))?e:this.type["$=="]("module")})),o(b,"$class?",(function(){return this.type["$=="]("class")})),o(b,"$module?",(function(){return this.type["$=="]("module")})),o(b,"$sclass?",(function(){return this.type["$=="]("sclass")})),o(b,"$top?",(function(){return this.type["$=="]("top")})),o(b,"$iter?",(function(){return this.type["$=="]("iter")})),o(b,"$def?",(function(){var e;return $(e=this.type["$=="]("def"))?e:this.type["$=="]("defs")})),o(b,"$lambda?",(function(){var e;return $(e=this["$iter?"]())?this.is_lambda:e})),o(b,"$is_lambda!",u("is_lambda",!0)),o(b,"$defines_lambda",(function t(){var r=t.$$p||g;return t.$$p=null,this.lambda_definition=!0,e.yieldX(r,[]),this.lambda_definition=!1})),o(b,"$lambda_definition?",c("lambda_definition")),o(b,"$def_in_class?",(function(){var e,t,r,n=this;return $(e=$(t=$(r=n.defs["$!"]())?n.type["$=="]("def"):r)?n.parent:t)?n.parent["$class?"]():e})),o(b,"$to_vars",(function(){var e,t=this,r=g,n=g,a=g,s=g;return r=t.temps.$dup(),l(r,"push",i(l(t.locals,"map",[],(function(e){return null==e&&(e=g),e+" = nil"})))),n=l(t.$ivars(),"map",[],(function(e){return null==e&&(e=g),"if (self"+e+" == null) self"+e+" = nil;\n"})),a=l(t.$gvars(),"map",[],(function(e){return null==e&&(e=g),"if ($gvars"+e+" == null) $gvars"+e+" = nil;\n"})),$(t["$class?"]())&&_(t.proto_ivars["$empty?"]())&&r["$<<"]("$proto = self.$$prototype"),e=t.compiler.$parser_indent(),s=$(r["$empty?"]())?"":"var "+r.$join(", ")+";\n",$(t.$ivars()["$empty?"]())||(s=p(s,""+e+n.$join(e))),$(t.$gvars()["$empty?"]())||(s=p(s,""+e+a.$join(e))),$(t["$class?"]())&&_(t.proto_ivars["$empty?"]())&&(s=s+"\n"+e+l(t.proto_ivars,"map",[],(function(e){return null==e&&(e=g),"$proto"+e})).$join(" = ")+" = nil;"),t.$fragment(s)})),o(b,"$add_scope_ivar",(function(e){var t=this;return $(t["$def_in_class?"]())?t.parent.$add_proto_ivar(e):$(t.ivars["$include?"](e))?g:t.ivars["$<<"](e)})),o(b,"$add_scope_gvar",(function(e){return $(this.gvars["$include?"](e))?g:this.gvars["$<<"](e)})),o(b,"$add_proto_ivar",(function(e){return $(this.proto_ivars["$include?"](e))?g:this.proto_ivars["$<<"](e)})),o(b,"$add_arg",(function(e){return $(this.args["$include?"](e))||this.args["$<<"](e),e})),o(b,"$add_scope_local",(function(e){return $(this["$has_local?"](e))?g:this.locals["$<<"](e)})),o(b,"$has_local?",(function(e){var t=this;return!!($(t.locals["$include?"](e))||$(t.args["$include?"](e))||$(t.temps["$include?"](e)))||!(!$(t.parent)||!m(t.type,"iter"))&&t.parent["$has_local?"](e)})),o(b,"$scope_locals",(function(){var e,t=this;return e=t.locals["$|"](t.args)["$|"]($(t.parent)&&m(t.type,"iter")?t.parent.$scope_locals():[]),l(e,"reject",[],(function(e){return null==e&&(e=g),e.$to_s()["$start_with?"]("$")}))})),o(b,"$add_scope_temp",(function(e){return $(this["$has_temp?"](e))?g:this.temps.$push(e)})),o(b,"$prepend_scope_temp",(function(e){return $(this["$has_temp?"](e))?g:this.temps.$unshift(e)})),o(b,"$has_temp?",(function(e){return this.temps["$include?"](e)})),o(b,"$new_temp",(function(){var e,t=this;return $(t.queue["$empty?"]())?(e=t.$next_temp(),t.temps["$<<"](e),e):t.queue.$pop()})),o(b,"$next_temp",(function(){var e=this,t=g;return t=g,function(){try{var r=d("break");return l(e,"loop",[],(function e(){var n=null==e.$$s?this:e.$$s;if(null==n.unique&&(n.unique=g),t="$"+n.unique,n.unique=n.unique.$succ(),$(n["$has_local?"](t)))return g;r.$throw(g,e.$$is_lambda)}),{$$s:e})}catch(e){if(e===r)return e.$v;throw e}finally{r.is_orphan=!0}}(),t})),o(b,"$queue_temp",(function(e){return this.queue["$<<"](e)})),o(b,"$push_while",(function(){var e;return e=new Map,this.while_stack.$push(e),e})),o(b,"$pop_while",(function(){return this.while_stack.$pop()})),o(b,"$in_while?",(function(){return this.while_stack["$empty?"]()["$!"]()})),o(b,"$uses_block!",(function(){var e=this;return m(e.type,"iter")&&$(e.parent)?e.parent["$uses_block!"]():(e.uses_block=!0,e["$identify!"]())})),o(b,"$identify!",(function(e){var t=this,r=g,n=g,a=g;return null==e&&(e=g),$(t.identity)||($(t["$valid_name?"](t.$mid()))?t.identity="$$"+t.$mid():(e=$(r=e)?r:[$(n=t.$parent())?$(a=t.$parent().$name())?a:t.$parent().$scope_name():n,t.$mid()].$compact().$join("_"),t.identity=t.compiler.$unique_temp(e))),t.identity}),-1),b.$attr_reader("identity"),o(b,"$find_parent_def",(function(){var e=g;for(e=this;$(e=e.$parent());)if($(e["$def?"]())||$(e["$lambda?"]()))return e;return g})),o(b,"$super_chain",(function(){var e,t=g,r=g,n=g,a=g;for(t=(e=[[],this,"null","null"])[0],r=e[1],n=e[2],a=e[3];$(r);){if(!m(r.$type(),"iter")){if($(["def","defs"]["$include?"](r.$type()))){n=r["$identify!"](),a="'"+r.$mid()+"'";break}break}t["$<<"](r["$identify!"]()),$(r.$parent())&&(r=r.$parent())}return[t,n,a]})),o(b,"$uses_block?",c("uses_block")),o(b,"$has_rescue_else?",(function(){return this.$rescue_else_sexp()["$nil?"]()["$!"]()})),o(b,"$in_rescue",(function t(r){var n,a,s=t.$$p||g,i=this;return t.$$p=null,i.rescues=$(n=i.rescues)?n:[],i.rescues.$push(r),a=e.yieldX(s,[]),i.rescues.$pop(),a})),o(b,"$current_rescue",(function(){return this.rescues.$last()})),o(b,"$in_resbody",(function t(){var r,n=t.$$p||g;return t.$$p=null,n===g?g:(this.in_resbody=!0,r=e.yieldX(n,[]),this.in_resbody=!1,r)})),o(b,"$in_resbody?",c("in_resbody")),o(b,"$in_ensure",(function t(){var r,n=t.$$p||g;return t.$$p=null,n===g?g:(this.in_ensure=!0,r=e.yieldX(n,[]),this.in_ensure=!1,r)})),o(b,"$in_ensure?",c("in_ensure")),o(b,"$gen_retry_id",(function(){var e,t=this;return t.next_retry_id=$(e=t.next_retry_id)?e:"retry_0",t.next_retry_id=t.next_retry_id.$succ()})),o(b,"$accepts_using?",(function(){return[y("TopNode"),y("ModuleNode"),y("ClassNode"),y("IterNode")]["$include?"](this.$class())})),o(b,"$collect_refinements_temps",(function(e){var t=this;return null==e&&(e=[]),$(t.refinements_temp)&&e["$<<"](t.refinements_temp),$(t.$parent())?t.$parent().$collect_refinements_temps(e):e}),-1),o(b,"$new_refinements_temp",(function(){var e;return e=this.$compiler().$unique_temp("$refn"),this.$add_scope_local(e),e})),o(b,"$refinements_temp",(function(){var e,t,r,n=this;return t=(e=[n.refinements_temp,n.$new_refinements_temp()])[0],r=e[1],n.refinements_temp=r,[t,r]})),o(b,"$self",(function(){return this.define_self=!0,"self"})),o(b,"$nesting",(function(){return this.define_nesting=!0,"$nesting"})),o(b,"$relative_access",(function(){return this.define_relative_access=this.define_nesting=!0,"$$"})),o(b,"$prepare_block",(function(e){var t,r=this;return null==e&&(e=g),t=r.$scope().$identity(),$(e)&&r["$block_name="](e),r.$add_temp(r.$block_name()+" = "+t+".$$p || nil"),$(r.block_prepared)?g:(r.$line(t+".$$p = null;"),r.block_prepared=!0)}),-1),b.$attr_accessor("await_encountered")}(b[0],v("Base"),b)}(b[0],b)}(h[0],h)},Opal.modules["opal/nodes/module"]=function(e){var t=e.module,r=e.klass,n=e.to_ary,a=e.truthy,s=e.send,i=e.rb_plus,o=e.def,l=e.top,$=[],u=e.nil,c=e.$$$;return e.add_stubs("require,handle,children,name_and_base,helper,nil?,body,stmt?,unshift,line,in_scope,name=,scope,in_closure,|,compile_body,await_encountered,await_encountered=,parent,+,nesting,private,cid,expr,stmt,returns,compiler,empty_line,add_temp,to_vars"),l.$require("opal/nodes/scope"),function(l,$){var _=[t(l,"Opal")].concat($);return function(l,$){var _=[t(l,"Nodes")].concat($),p=e.$r(_);return function(t,l,$){var _=r(t,l,"ModuleNode"),p=[_].concat($),m=e.$r(p),d=_.$$prototype;return d.define_nesting=d.define_relative_access=u,_.$handle("module"),_.$children("cid","body"),o(_,"$compile",(function(){var e,t,r,o,l=this,$=u,_=u,p=u;return t=l.$name_and_base(),e=n(t),r=null==e[0]?u:e[0],o=null==e[1]?u:e[1],l.$helper("module"),a(l.$body()["$nil?"]())?a(l["$stmt?"]())?l.$unshift("$module(",o,", '"+r+"')"):l.$unshift("($module(",o,", '"+r+"'), nil)"):(l.$line(" var self = $module($base, '"+r+"');"),s(l,"in_scope",[],(function e(){var t=null==e.$$s?this:e.$$s;return t.$scope()["$name="](r),s(t,"in_closure",[c(m("Closure"),"MODULE")["$|"](c(m("Closure"),"JS_FUNCTION"))],(function e(){return(null==e.$$s?this:e.$$s).$compile_body()}),{$$s:t})}),{$$s:l}),a(l.$await_encountered())?($="(await ",_=")",p="async ",l.$parent()["$await_encountered="](!0)):($=(e=["","",""])[0],_=e[1],p=e[2]),l.$unshift($+"("+p+"function($base"+(a(l.define_nesting)?", $parent_nesting":u)+") {"),l.$line("})(",o,(a(l.define_nesting)?i(", ",l.$scope().$nesting()):u)+")"+_))})),_.$private(),o(_,"$name_and_base",(function(){var e,t,r,s=this,i=u;return t=s.$cid().$children(),i=null==(e=n(t))[0]?u:e[0],r=null==e[1]?u:e[1],a(i["$nil?"]())?[r,s.$scope().$nesting()+"[0]"]:[r,s.$expr(i)]})),o(_,"$compile_body",(function(){var e,t=this;return e=t.$stmt(t.$compiler().$returns(t.$body())),t.$empty_line(),a(t.define_nesting)&&t.$add_temp("$nesting = [self].concat($parent_nesting)"),a(t.define_relative_access)&&t.$add_temp("$$ = Opal.$r($nesting)"),t.$line(t.$scope().$to_vars()),t.$line(e)}))}(_[0],p("ScopeNode"),_)}(_[0],_)}($[0],$)},Opal.modules["opal/nodes/class"]=function(e){var t=e.module,r=e.klass,n=e.to_ary,a=e.truthy,s=e.send,i=e.rb_plus,o=e.def,l=e.top,$=[],u=e.nil,c=e.$$$;return e.add_stubs("require,handle,children,name_and_base,helper,nil?,body,stmt?,unshift,super_code,line,in_scope,name=,scope,in_closure,|,compile_body,await_encountered,await_encountered=,parent,+,nesting,sup,expr"),l.$require("opal/nodes/module"),function(l,$){var _=[t(l,"Opal")].concat($);return function(l,$){var _=[t(l,"Nodes")].concat($),p=e.$r(_);return function(t,l,$){var _=r(t,l,"ClassNode"),p=[_].concat($),m=e.$r(p);return _.$$prototype.define_nesting=u,_.$handle("class"),_.$children("cid","sup","body"),o(_,"$compile",(function(){var e,t,r,o,l=this,$=u,_=u,p=u;return t=l.$name_and_base(),e=n(t),r=null==e[0]?u:e[0],o=null==e[1]?u:e[1],l.$helper("klass"),a(l.$body()["$nil?"]())?a(l["$stmt?"]())?l.$unshift("$klass(",o,", ",l.$super_code(),", '"+r+"')"):l.$unshift("($klass(",o,", ",l.$super_code(),", '"+r+"'), nil)"):(l.$line(" var self = $klass($base, $super, '"+r+"');"),s(l,"in_scope",[],(function e(){var t=null==e.$$s?this:e.$$s;return t.$scope()["$name="](r),s(t,"in_closure",[c(m("Closure"),"MODULE")["$|"](c(m("Closure"),"JS_FUNCTION"))],(function e(){return(null==e.$$s?this:e.$$s).$compile_body()}),{$$s:t})}),{$$s:l}),a(l.$await_encountered())?($="(await ",_=")",p="async ",l.$parent()["$await_encountered="](!0)):($=(e=["","",""])[0],_=e[1],p=e[2]),l.$unshift($+"("+p+"function($base, $super"+(a(l.define_nesting)?", $parent_nesting":u)+") {"),l.$line("})(",o,", ",l.$super_code(),(a(l.define_nesting)?i(", ",l.$scope().$nesting()):u)+")"+_))})),o(_,"$super_code",(function(){var e=this;return a(e.$sup())?e.$expr(e.$sup()):"null"}))}(_[0],p("ModuleNode"),_)}(_[0],_)}($[0],$)},Opal.modules["opal/nodes/singleton_class"]=function(e){var t=e.module,r=e.klass,n=e.send,a=e.truthy,s=e.def,i=e.top,o=[],l=e.nil;return e.add_stubs("require,handle,children,push,in_scope,stmt,returns,compiler,body,add_temp,line,to_vars,scope,recv,object,nesting"),i.$require("opal/nodes/scope"),function(i,o){var $=[t(i,"Opal")].concat(o);return function(i,o){var $=[t(i,"Nodes")].concat(o),u=e.$r($);return function(e,t){var i=r(e,t,"SingletonClassNode");return i.$handle("sclass"),i.$children("object","body"),s(i,"$compile",(function(){var e=this;return e.$push("(function(self, $parent_nesting) {"),n(e,"in_scope",[],(function e(){var t,r=null==e.$$s?this:e.$$s;return null==r.define_nesting&&(r.define_nesting=l),null==r.define_relative_access&&(r.define_relative_access=l),t=r.$stmt(r.$compiler().$returns(r.$body())),a(r.define_nesting)&&r.$add_temp("$nesting = [self].concat($parent_nesting)"),a(r.define_relative_access)&&r.$add_temp("$$ = Opal.$r($nesting)"),r.$line(r.$scope().$to_vars()),r.$line(t)}),{$$s:e}),e.$line("})(Opal.get_singleton_class(",e.$recv(e.$object()),"), "+e.$scope().$nesting()+")")}))}($[0],u("ScopeNode"))}($[0],$)}(o[0],o)},Opal.modules["opal/nodes/args/arg"]=function(e){var t=e.module,r=e.klass,n=e.def,a=e.top,s=[];e.nil;return e.add_stubs("require,handle,children,add_arg,scope,name,push,to_s"),a.$require("opal/nodes/base"),function(a,s){var i=[t(a,"Opal")].concat(s);return function(a,s){var i=[t(a,"Nodes")].concat(s);return function(a,s){var i=[t(a,"Args")].concat(s),o=e.$r(i);return function(e,t){var a=r(e,t,"ArgNode");return a.$handle("arg"),a.$children("name"),n(a,"$compile",(function(){var e=this;return e.$scope().$add_arg(e.$name()),e.$push(e.$name().$to_s())}))}(i[0],o("Base"))}(i[0],i)}(i[0],i)}(s[0],s)},Opal.modules["opal/nodes/args/arity_check"]=function(e){var t=e.module,r=e.klass,n=e.slice,a=e.send2,s=e.find_super,i=e.to_a,o=e.def,l=e.truthy,$=e.rb_minus,u=e.not,c=e.rb_lt,_=e.rb_plus,p=e.rb_gt,m=e.send,d=e.top,f=[],h=e.nil,g=e.$$$;return e.add_stubs("require,handle,children,new,args_node,args,optargs,restarg,postargs,kwargs,kwoptargs,kwrestarg,kwnilarg,arity=,scope,arity,arity_check?,compiler,empty?,arity_checks,helper,inspect,to_s,mid,line,push,join,compact,size,all_args,-,!,-@,<,+,>,<<,has_only_optional_kwargs?,any?,negative_arity,positive_arity,select,include?,type,has_required_kwargs?,all?,==,def?,class_scope?,top?,parent,class?,name,module?,identity"),d.$require("opal/nodes/base"),d.$require("opal/rewriters/arguments"),function(d,f){var b=[t(d,"Opal")].concat(f);return function(d,f){var b=[t(d,"Nodes")].concat(f),v=e.$r(b);return function(t,d,f){var b=r(t,d,"ArityCheckNode"),v=[b].concat(f),y=e.$r(v),x=b.$$prototype;x.kwargs=x.kwoptargs=x.kwrestarg=x.all_args=x.args=x.optargs=x.restarg=x.postargs=x.arity_checks=h,b.$handle("arity_check"),b.$children("args_node"),o(b,"$initialize",(function e(t){var r,o=e.$$p||h,l=this,$=h;return e.$$p=null,r=n(arguments),a(l,s(l,"initialize",e,!1,!0),"initialize",i(r),o),$=g(y("Rewriters"),"Arguments").$new(l.$args_node().$children()),l.args=$.$args(),l.optargs=$.$optargs(),l.restarg=$.$restarg(),l.postargs=$.$postargs(),l.kwargs=$.$kwargs(),l.kwoptargs=$.$kwoptargs(),l.kwrestarg=$.$kwrestarg(),l.kwnilarg=$.$kwnilarg()}),-1),o(b,"$compile",(function(){var e=this,t=h;return e.$scope()["$arity="](e.$arity()),l(e.$compiler()["$arity_check?"]())?l(e.$arity_checks()["$empty?"]())?h:(e.$helper("ac"),t=e.$scope().$mid().$to_s().$inspect(),e.$line("var $arity = arguments.length;"),e.$push(" if ("+e.$arity_checks().$join(" || ")+") { $ac($arity, "+e.$arity()+", this, "+t+"); }")):h})),o(b,"$kwargs",(function(){var e=this;return[].concat(i(e.kwargs)).concat(i(e.kwoptargs)).concat([e.kwrestarg]).$compact()})),o(b,"$all_args",(function(){var e,t=this;return t.all_args=l(e=t.all_args)?e:[].concat(i(t.args)).concat(i(t.optargs)).concat([t.restarg]).concat(i(t.postargs)).concat(i(t.$kwargs())).$compact()})),o(b,"$arity_checks",(function(){var e,t=this,r=h,n=h,a=h;return l(null!=(e=t.arity_checks)&&e!==h?"instance-variable":h)||(r=t.$all_args().$size(),r=$(r,t.optargs.$size()),l(t.restarg)&&(r=$(r,1)),r=$(r,t.$kwargs().$size()),(u(t.optargs["$empty?"]())||u(t.$kwargs()["$empty?"]())||l(t.restarg))&&(r=$(r["$-@"](),1)),t.arity_checks=[],l(c(r,0))?(n=_(r,1)["$-@"](),a=t.$all_args().$size(),l(p(n,0))&&t.arity_checks["$<<"]("$arity < "+n),l(t.restarg)||t.arity_checks["$<<"]("$arity > "+a)):t.arity_checks["$<<"]("$arity !== "+r)),t.arity_checks})),o(b,"$arity",(function(){var e=this;return l(e.restarg)||l(e.optargs["$any?"]())||l(e["$has_only_optional_kwargs?"]())?e.$negative_arity():e.$positive_arity()})),o(b,"$negative_arity",(function(){var e=h;return e=m(this.$all_args(),"select",[],(function(e){return null==e&&(e=h),["arg","mlhs"]["$include?"](e.$type())})).$size(),l(this["$has_required_kwargs?"]())&&(e=_(e,1)),$(e["$-@"](),1)})),o(b,"$positive_arity",(function(){var e=this,t=h;return t=e.$all_args().$size(),t=$(t,e.$kwargs().$size()),l(e.$kwargs()["$any?"]())&&(t=_(t,1)),t})),o(b,"$has_only_optional_kwargs?",(function(){var e;return l(e=this.$kwargs()["$any?"]())?m(this.$kwargs(),"all?",[],(function(e){return null==e&&(e=h),["kwoptarg","kwrestarg"]["$include?"](e.$type())})):e})),o(b,"$has_required_kwargs?",(function(){return m(this.$kwargs(),"any?",[],(function(e){return null==e&&(e=h),e.$type()["$=="]("kwarg")}))}))}(b[0],v("Base"),b),function(e,t){var n=r(e,t,"IterArityCheckNode");return n.$handle("iter_arity_check"),o(n,"$compile",(function(){var e=this,t=h,r=h,n=h,a=h,s=h;if(e.$scope()["$arity="](e.$arity()),!l(e.$compiler()["$arity_check?"]()))return h;if(l(e.$arity_checks()["$empty?"]()))return h;for(t=e.$scope();!l(l(r=l(n=t["$def?"]())?n:t["$class_scope?"]())?r:t["$top?"]());)t=t.$parent();return a=l(t["$top?"]())?"'<main>'":l(t["$def?"]())?"'"+t.$mid()+"'":l(t["$class?"]())?"'<class:"+t.$name()+">'":l(t["$module?"]())?"'<module:"+t.$name()+">'":h,s=e.$scope().$identity(),e.$line("if ("+s+".$$is_lambda || "+s+".$$define_meth) {"),e.$line(" var $arity = arguments.length;"),e.$line(" if ("+e.$arity_checks().$join(" || ")+") { Opal.block_ac($arity, "+e.$arity()+", "+a+"); }"),e.$line("}")}))}(b[0],v("ArityCheckNode"))}(b[0],b)}(f[0],f)},Opal.modules["opal/nodes/args/ensure_kwargs_are_kwargs"]=function(e){var t=e.module,r=e.klass,n=e.def,a=e.top,s=[];e.nil;return e.add_stubs("require,handle,helper,push"),a.$require("opal/nodes/base"),function(a,s){var i=[t(a,"Opal")].concat(s);return function(a,s){var i=[t(a,"Nodes")].concat(s);return function(a,s){var i=[t(a,"Args")].concat(s),o=e.$r(i);return function(e,t){var a=r(e,t,"EnsureKwargsAreKwargs");return a.$handle("ensure_kwargs_are_kwargs"),n(a,"$compile",(function(){return this.$helper("ensure_kwargs"),this.$push("$kwargs = $ensure_kwargs($kwargs)")}))}(i[0],o("Base"))}(i[0],i)}(i[0],i)}(s[0],s)},Opal.modules["opal/nodes/args/extract_block_arg"]=function(e){var t=e.module,r=e.klass,n=e.def,a=e.top,s=[];e.nil;return e.add_stubs("require,handle,children,uses_block!,scope,add_arg,name,prepare_block"),a.$require("opal/nodes/base"),function(a,s){var i=[t(a,"Opal")].concat(s);return function(a,s){var i=[t(a,"Nodes")].concat(s);return function(a,s){var i=[t(a,"Args")].concat(s),o=e.$r(i);return function(e,t){var a=r(e,t,"ExtractBlockarg");return a.$handle("extract_blockarg"),a.$children("name"),n(a,"$compile",(function(){var e=this;return e.$scope()["$uses_block!"](),e.$scope().$add_arg(e.$name()),e.$scope().$prepare_block(e.$name())}))}(i[0],o("Base"))}(i[0],i)}(i[0],i)}(s[0],s)},Opal.modules["opal/nodes/args/extract_kwarg"]=function(e){var t=e.module,r=e.klass,n=e.def,a=e.top,s=[],i=e.nil;return e.add_stubs("require,handle,children,[],meta,<<,used_kwargs,scope,add_temp,lvar_name,helper,push,inspect,to_s"),a.$require("opal/nodes/base"),function(a,s){var o=[t(a,"Opal")].concat(s);return function(a,s){var o=[t(a,"Nodes")].concat(s);return function(a,s){var o=[t(a,"Args")].concat(s),l=e.$r(o);return function(e,t){var a=r(e,t,"ExtractKwarg");return a.$$prototype.sexp=i,a.$handle("extract_kwarg"),a.$children("lvar_name"),n(a,"$compile",(function(){var e=this,t=i;return t=e.sexp.$meta()["$[]"]("arg_name"),e.$scope().$used_kwargs()["$<<"](t),e.$add_temp(e.$lvar_name()),e.$helper("get_kwarg"),e.$push(e.$lvar_name()+" = $get_kwarg($kwargs, "+t.$to_s().$inspect()+")")}))}(o[0],l("Base"))}(o[0],o)}(o[0],o)}(s[0],s)},Opal.modules["opal/nodes/args/extract_kwargs"]=function(e){var t=e.module,r=e.klass,n=e.def,a=e.top,s=[];e.nil;return e.add_stubs("require,handle,add_temp,helper,push"),a.$require("opal/nodes/base"),function(a,s){var i=[t(a,"Opal")].concat(s);return function(a,s){var i=[t(a,"Nodes")].concat(s);return function(a,s){var i=[t(a,"Args")].concat(s),o=e.$r(i);return function(e,t){var a=r(e,t,"ExtractKwargs");return a.$handle("extract_kwargs"),n(a,"$compile",(function(){var e=this;return e.$add_temp("$kwargs"),e.$helper("extract_kwargs"),e.$push("$kwargs = $extract_kwargs($post_args)")}))}(i[0],o("Base"))}(i[0],i)}(i[0],i)}(s[0],s)},Opal.modules["opal/nodes/args/extract_kwoptarg"]=function(e){var t=e.module,r=e.klass,n=e.eqeq,a=e.def,s=e.top,i=[],o=e.nil;return e.add_stubs("require,handle,children,helper,[],meta,<<,used_kwargs,scope,add_temp,lvar_name,line,inspect,to_s,==,default_value,push,expr"),s.$require("opal/nodes/base"),function(s,i){var l=[t(s,"Opal")].concat(i);return function(s,i){var l=[t(s,"Nodes")].concat(i);return function(s,i){var l=[t(s,"Args")].concat(i),$=e.$r(l);return function(e,t){var s=r(e,t,"ExtractKwoptarg");return s.$$prototype.sexp=o,s.$handle("extract_kwoptarg"),s.$children("lvar_name","default_value"),a(s,"$compile",(function(){var e=this,t=o;return e.$helper("hash_get"),t=e.sexp.$meta()["$[]"]("arg_name"),e.$scope().$used_kwargs()["$<<"](t),e.$add_temp(e.$lvar_name()),e.$line(e.$lvar_name()+" = $hash_get($kwargs, "+t.$to_s().$inspect()+");"),n(e.$default_value().$children()["$[]"](1),"undefined")?o:e.$push("if ("+e.$lvar_name()+" == null) "+e.$lvar_name()+" = ",e.$expr(e.$default_value()))}))}(l[0],$("Base"))}(l[0],l)}(l[0],l)}(i[0],i)},Opal.modules["opal/nodes/args/extract_kwrestarg"]=function(e){var t=e.module,r=e.klass,n=e.truthy,a=e.def,s=e.send,i=e.top,o=[],l=e.nil;return e.add_stubs("require,handle,children,name,add_temp,helper,push,used_kwargs,map,scope,join"),i.$require("opal/nodes/base"),function(i,o){var $=[t(i,"Opal")].concat(o);return function(i,o){var $=[t(i,"Nodes")].concat(o);return function(i,o){var $=[t(i,"Args")].concat(o),u=e.$r($);return function(e,t){var i=r(e,t,"ExtractKwrestarg");return i.$handle("extract_kwrestarg"),i.$children("name"),a(i,"$compile",(function(){var e,t,r=this;return e=n(t=r.$name())?t:"$kw_rest_arg",r.$add_temp(e),r.$helper("kwrestargs"),r.$push(e+" = $kwrestargs($kwargs, "+r.$used_kwargs()+")")})),a(i,"$used_kwargs",(function(){return"{"+s(this.$scope().$used_kwargs(),"map",[],(function(e){return null==e&&(e=l),"'"+e+"': true"})).$join(",")+"}"}))}($[0],u("Base"))}($[0],$)}($[0],$)}(o[0],o)},Opal.modules["opal/nodes/args/extract_optarg"]=function(e){var t=e.module,r=e.klass,n=e.eqeq,a=e.def,s=e.top,i=[],o=e.nil;return e.add_stubs("require,handle,children,==,[],default_value,push,name,expr"),s.$require("opal/nodes/base"),function(s,i){var l=[t(s,"Opal")].concat(i);return function(s,i){var l=[t(s,"Nodes")].concat(i);return function(s,i){var l=[t(s,"Args")].concat(i),$=e.$r(l);return function(e,t){var s=r(e,t,"ExtractOptargNode");return s.$handle("extract_optarg"),s.$children("name","default_value"),a(s,"$compile",(function(){var e=this;return n(e.$default_value().$children()["$[]"](1),"undefined")?o:e.$push("if ("+e.$name()+" == null) "+e.$name()+" = ",e.$expr(e.$default_value()))}))}(l[0],$("Base"))}(l[0],l)}(l[0],l)}(i[0],i)},Opal.modules["opal/nodes/args/extract_post_arg"]=function(e){var t=e.module,r=e.klass,n=e.def,a=e.top,s=[];e.nil;return e.add_stubs("require,handle,children,add_temp,name,line,push"),a.$require("opal/nodes/base"),function(a,s){var i=[t(a,"Opal")].concat(s);return function(a,s){var i=[t(a,"Nodes")].concat(s);return function(a,s){var i=[t(a,"Args")].concat(s),o=e.$r(i);return function(e,t){var a=r(e,t,"ExtractPostArg");return a.$handle("extract_post_arg"),a.$children("name"),n(a,"$compile",(function(){var e=this;return e.$add_temp(e.$name()),e.$line(e.$name()+" = $post_args.shift();"),e.$push("if ("+e.$name()+" == null) "+e.$name()+" = nil")}))}(i[0],o("Base"))}(i[0],i)}(i[0],i)}(s[0],s)},Opal.modules["opal/nodes/args/extract_post_optarg"]=function(e){var t=e.module,r=e.klass,n=e.eqeq,a=e.def,s=e.top,i=[],o=e.nil;return e.add_stubs("require,handle,children,add_temp,name,line,args_to_keep,==,[],default_value,push,expr"),s.$require("opal/nodes/base"),function(s,i){var l=[t(s,"Opal")].concat(i);return function(s,i){var l=[t(s,"Nodes")].concat(i);return function(s,i){var l=[t(s,"Args")].concat(i),$=e.$r(l);return function(e,t){var s=r(e,t,"ExtractPostOptarg");return s.$handle("extract_post_optarg"),s.$children("name","default_value","args_to_keep"),a(s,"$compile",(function(){var e=this;return e.$add_temp(e.$name()),e.$line("if ($post_args.length > "+e.$args_to_keep()+") "+e.$name()+" = $post_args.shift();"),n(e.$default_value().$children()["$[]"](1),"undefined")?o:e.$push("if ("+e.$name()+" == null) "+e.$name()+" = ",e.$expr(e.$default_value()))}))}(l[0],$("Base"))}(l[0],l)}(l[0],l)}(i[0],i)},Opal.modules["opal/nodes/args/extract_restarg"]=function(e){var t=e.module,r=e.klass,n=e.truthy,a=e.eqeq,s=e.def,i=e.top,o=[];e.nil;return e.add_stubs("require,handle,children,name,add_temp,==,args_to_keep,push"),i.$require("opal/nodes/base"),function(i,o){var l=[t(i,"Opal")].concat(o);return function(i,o){var l=[t(i,"Nodes")].concat(o);return function(i,o){var l=[t(i,"Args")].concat(o),$=e.$r(l);return function(e,t){var i=r(e,t,"ExtractRestarg");return i.$handle("extract_restarg"),i.$children("name","args_to_keep"),s(i,"$compile",(function(){var e,t,r=this;return e=n(t=r.$name())?t:"$rest_arg",r.$add_temp(e),a(r.$args_to_keep(),0)?r.$push(e+" = $post_args"):r.$push(e+" = $post_args.splice(0, $post_args.length - "+r.$args_to_keep()+")")}))}(l[0],$("Base"))}(l[0],l)}(l[0],l)}(o[0],o)},Opal.modules["opal/nodes/args/fake_arg"]=function(e){var t=e.module,r=e.klass,n=e.def,a=e.top,s=[];e.nil;return e.add_stubs("require,handle,next_temp,scope,add_arg,push"),a.$require("opal/nodes/base"),function(a,s){var i=[t(a,"Opal")].concat(s);return function(a,s){var i=[t(a,"Nodes")].concat(s);return function(a,s){var i=[t(a,"Args")].concat(s),o=e.$r(i);return function(e,t){var a=r(e,t,"FakeArgNode");return a.$handle("fake_arg"),n(a,"$compile",(function(){var e,t=this;return e=t.$scope().$next_temp(),t.$scope().$add_arg(e),t.$push(e)}))}(i[0],o("Base"))}(i[0],i)}(i[0],i)}(s[0],s)},Opal.modules["opal/nodes/args/initialize_iterarg"]=function(e){var t=e.module,r=e.klass,n=e.def,a=e.top,s=[];e.nil;return e.add_stubs("require,handle,children,push,name"),a.$require("opal/nodes/base"),function(a,s){var i=[t(a,"Opal")].concat(s);return function(a,s){var i=[t(a,"Nodes")].concat(s);return function(a,s){var i=[t(a,"Args")].concat(s),o=e.$r(i);return function(e,t){var a=r(e,t,"InitializeIterarg");return a.$handle("initialize_iter_arg"),a.$children("name"),n(a,"$compile",(function(){var e=this;return e.$push("if ("+e.$name()+" == null) "+e.$name()+" = nil")}))}(i[0],o("Base"))}(i[0],i)}(i[0],i)}(s[0],s)},Opal.modules["opal/nodes/args/initialize_shadowarg"]=function(e){var t=e.module,r=e.klass,n=e.def,a=e.top,s=[];e.nil;return e.add_stubs("require,handle,children,<<,locals,scope,name,add_arg,push"),a.$require("opal/nodes/base"),function(a,s){var i=[t(a,"Opal")].concat(s);return function(a,s){var i=[t(a,"Nodes")].concat(s);return function(a,s){var i=[t(a,"Args")].concat(s),o=e.$r(i);return function(e,t){var a=r(e,t,"InitializeShadowarg");return a.$handle("initialize_shadowarg"),a.$children("name"),n(a,"$compile",(function(){var e=this;return e.$scope().$locals()["$<<"](e.$name()),e.$scope().$add_arg(e.$name()),e.$push(e.$name()+" = nil")}))}(i[0],o("Base"))}(i[0],i)}(i[0],i)}(s[0],s)},Opal.modules["opal/nodes/args/parameters"]=function(e){var t=e.module,r=e.klass,n=e.def,a=e.send,s=e.return_val,i=e.truthy,o=e.eqeq,l=[],$=e.nil;return e.add_stubs("children,map,public_send,type,join,compact,[],meta,=="),function(e,l){var u=[t(e,"Opal")].concat(l);return function(e,l){var u=[t(e,"Nodes")].concat(l);return function(e,l){return function(e,t){var l=r(e,null,"Parameters");return l.$$prototype.args=$,n(l,"$initialize",(function(e){return this.args=e.$children()})),n(l,"$to_code",(function(){return"["+a(this.args,"map",[],(function e(t){return null==t&&(t=$),(null==e.$$s?this:e.$$s).$public_send("on_"+t.$type(),t)}),{$$s:this}).$compact().$join(", ")+"]"})),n(l,"$on_arg",(function(e){return"['req', '"+e.$meta()["$[]"]("arg_name")+"']"})),n(l,"$on_mlhs",s("['req']")),n(l,"$on_optarg",(function(e){return"['opt', '"+e.$meta()["$[]"]("arg_name")+"']"})),n(l,"$on_restarg",(function(e){var t=$;return t=e.$meta()["$[]"]("arg_name"),i(t)?(o(t,"fwd_rest_arg")&&(t="*"),"['rest', '"+t+"']"):"['rest']"})),n(l,"$on_kwarg",(function(e){return"['keyreq', '"+e.$meta()["$[]"]("arg_name")+"']"})),n(l,"$on_kwoptarg",(function(e){return"['key', '"+e.$meta()["$[]"]("arg_name")+"']"})),n(l,"$on_kwrestarg",(function(e){var t;return t=e.$meta()["$[]"]("arg_name"),i(t)?"['keyrest', '"+t+"']":"['keyrest']"})),n(l,"$on_blockarg",(function(e){var t=$;return t=e.$meta()["$[]"]("arg_name"),o(t,"fwd_block_arg")&&(t="&"),"['block', '"+t+"']"})),n(l,"$on_kwnilarg",s("['nokey']")),n(l,"$on_shadowarg",s($))}([t(e,"Args")].concat(l)[0])}(u[0],u)}(u[0],u)}(l[0],l)},Opal.modules["opal/nodes/args/prepare_post_args"]=function(e){var t=e.module,r=e.klass,n=e.eqeq,a=e.def,s=e.top,i=[];e.nil;return e.add_stubs("require,handle,children,add_temp,helper,==,offset,push"),s.$require("opal/nodes/base"),function(s,i){var o=[t(s,"Opal")].concat(i);return function(s,i){var o=[t(s,"Nodes")].concat(i);return function(s,i){var o=[t(s,"Args")].concat(i),l=e.$r(o);return function(e,t){var s=r(e,t,"PreparePostArgs");return s.$handle("prepare_post_args"),s.$children("offset"),a(s,"$compile",(function(){var e=this;return e.$add_temp("$post_args"),e.$helper("slice"),n(e.$offset(),0)?e.$push("$post_args = $slice(arguments)"):e.$push("$post_args = $slice(arguments, "+e.$offset()+")")}))}(o[0],l("Base"))}(o[0],o)}(o[0],o)}(i[0],i)},Opal.modules["opal/nodes/args"]=function(e){var t=e.module,r=e.klass,n=e.send,a=e.neqeq,s=e.def,i=e.top,o=[],l=e.nil;return e.add_stubs("require,handle,each_with_index,children,!=,push,process"),i.$require("opal/nodes/base"),i.$require("opal/nodes/args/arg"),i.$require("opal/nodes/args/arity_check"),i.$require("opal/nodes/args/ensure_kwargs_are_kwargs"),i.$require("opal/nodes/args/extract_block_arg"),i.$require("opal/nodes/args/extract_kwarg"),i.$require("opal/nodes/args/extract_kwargs"),i.$require("opal/nodes/args/extract_kwoptarg"),i.$require("opal/nodes/args/extract_kwrestarg"),i.$require("opal/nodes/args/extract_optarg"),i.$require("opal/nodes/args/extract_post_arg"),i.$require("opal/nodes/args/extract_post_optarg"),i.$require("opal/nodes/args/extract_restarg"),i.$require("opal/nodes/args/fake_arg"),i.$require("opal/nodes/args/initialize_iterarg"),i.$require("opal/nodes/args/initialize_shadowarg"),i.$require("opal/nodes/args/parameters"),i.$require("opal/nodes/args/prepare_post_args"),function(i,o){var $=[t(i,"Opal")].concat(o);return function(i,o){var $=[t(i,"Nodes")].concat(o),u=e.$r($);return function(e,t){var i=r(e,t,"ArgsNode");return i.$handle("args"),s(i,"$compile",(function(){return n(this.$children(),"each_with_index",[],(function e(t,r){var n=null==e.$$s?this:e.$$s;return null==t&&(t=l),null==r&&(r=l),a(r,0)&&n.$push(", "),n.$push(n.$process(t))}),{$$s:this})}))}($[0],u("Base"))}($[0],$)}(o[0],o)},Opal.modules["opal/nodes/node_with_args/shortcuts"]=function(e){var t=e.module,r=e.klass,n=e.const_set,a=e.send,s=e.def,i=e.ensure_kwargs,o=e.kwrestargs,l=e.truthy,$=e.defs,u=e.eqeq,c=e.thrower,_=e.lambda,p=e.range,m=[],d=e.nil;return e.add_stubs("new,instance_exec,to_proc,when,helper,name,transform,[],[]=,<<,select,include?,for,arity_check?,compiler,compile_body,is_a?,each,shortcuts_for,match?,==,mid,warn,compile,define_shortcut,type,stmts,push,simple_value?,expr,to_sym,to_s,first,children,updated,length,inline_args,last"),function(m,f){var h=[t(m,"Opal")].concat(f);return function(m,f){var h=[t(m,"Nodes")].concat(f),g=e.$r(h);return function(t,m,f){var h=r(t,m,"NodeWithArgs"),g=[h].concat(f),b=e.$r(g);return n(g[0],"Shortcut",a(b("Struct"),"new",["name","for","when","transform"],(function e(){var t=null==e.$$s?this:e.$$s;return s(t,"$match?",(function(e){return a(e,"instance_exec",[],this.$when().$to_proc())})),s(t,"$compile",(function(e){return e.$helper(this.$name()),a(e,"instance_exec",[],this.$transform().$to_proc())}))}),{$$s:h})),h.shortcuts=[],h.shortcuts_for=new Map,$(h,"$define_shortcut",(function e(t,r){var n,a=e.$$p||d,s=this;return null==s.shortcuts&&(s.shortcuts=d),e.$$p=null,r=i(r),n=o(r,{}),l(n["$[]"]("for"))||n["$[]="]("for","def"),s.shortcuts["$<<"](b("Shortcut").$new(t,n["$[]"]("for"),n["$[]"]("when"),a))}),-2),$(h,"$shortcuts_for",(function(e){var t,r,n=this;return null==n.shortcuts_for&&(n.shortcuts_for=d),null==n.shortcuts&&(n.shortcuts=d),l(r=n.shortcuts_for["$[]"](e))?r:(t=[e,a(n.shortcuts,"select",[],(function(t){return null==t&&(t=d),[e,"*"]["$include?"](t.$for())}))],a(n.shortcuts_for,"[]=",t),t[t.length-1])})),s(h,"$compile_body_or_shortcut",(function(){try{var e,t=c("return"),r=this;return l(r.$compiler()["$arity_check?"]())||(e=l(r["$is_a?"](b("DefNode")))?"def":"iter",a(b("NodeWithArgs").$shortcuts_for(e),"each",[],(function r(n){var a=null==r.$$s?this:r.$$s,s=d;if(null==n&&(n=d),!l(n["$match?"](a)))return d;l(b("ENV")["$[]"]("OPAL_DEBUG_SHORTCUTS"))&&(s=u(e,"def")?"def "+a.$mid():"iter",a.$warn("* shortcut "+n.$name()+" used for "+s)),t.$throw(n.$compile(a),r.$$is_lambda)}),{$$s:r,$$ret:t})),r.$compile_body()}catch(e){if(e===t)return e.$v;throw e}finally{t.is_orphan=!0}})),a(h,"define_shortcut",["return_self",new Map([["when",_((function e(){return(null==e.$$s?this:e.$$s).$stmts().$type()["$=="]("self")}),{$$s:h})]])],(function e(){return(null==e.$$s?this:e.$$s).$push("$return_self")}),{$$s:h}),s(h,"$simple_value?",(function(e){return null==e&&(e=this.$stmts()),["true","false","nil","int","float","str","sym"]["$include?"](e.$type())}),-1),a(h,"define_shortcut",["return_val",new Map([["for","*"],["when",_((function e(){return(null==e.$$s?this:e.$$s)["$simple_value?"]()}),{$$s:h})]])],(function e(){var t=null==e.$$s?this:e.$$s;return t.$push("$return_val(",t.$expr(t.$stmts()),")")}),{$$s:h}),a(h,"define_shortcut",["return_ivar",new Map([["when",_((function e(){return(null==e.$$s?this:e.$$s).$stmts().$type()["$=="]("ivar")}),{$$s:h})]])],(function e(){var t,r=null==e.$$s?this:e.$$s;return t=r.$stmts().$children().$first().$to_s()["$[]"](p(1,-1,!1)).$to_sym(),r.$push("$return_ivar(",r.$expr(r.$stmts().$updated("sym",[t])),")")}),{$$s:h}),a(h,"define_shortcut",["assign_ivar",new Map([["when",_((function e(){var t,r,n,a,s=null==e.$$s?this:e.$$s;return l(t=l(r=l(n=l(a=s.$stmts().$type()["$=="]("ivasgn"))?s.$inline_args().$children().$length()["$=="](1):a)?s.$inline_args().$children().$last().$type()["$=="]("arg"):n)?s.$stmts().$children().$last().$type()["$=="]("lvar"):r)?s.$stmts().$children().$last().$children().$last()["$=="](s.$inline_args().$children().$last().$children().$last()):t}),{$$s:h})]])],(function e(){var t=null==e.$$s?this:e.$$s,r=d;return r=t.$stmts().$children().$first().$to_s()["$[]"](p(1,-1,!1)).$to_sym(),r=t.$expr(t.$stmts().$updated("sym",[r])),t.$push("$assign_ivar(",r,")")}),{$$s:h}),a(h,"define_shortcut",["assign_ivar_val",new Map([["when",_((function e(){var t,r=null==e.$$s?this:e.$$s;return l(t=r.$stmts().$type()["$=="]("ivasgn"))?r["$simple_value?"](r.$stmts().$children().$last()):t}),{$$s:h})]])],(function e(){var t=null==e.$$s?this:e.$$s,r=d;return r=t.$stmts().$children().$first().$to_s()["$[]"](p(1,-1,!1)).$to_sym(),r=t.$expr(t.$stmts().$updated("sym",[r])),t.$push("$assign_ivar_val(",r,", ",t.$expr(t.$stmts().$children().$last()),")")}),{$$s:h})}(h[0],g("ScopeNode"),h)}(h[0],h)}(m[0],m)},Opal.modules["opal/nodes/node_with_args"]=function(e){var t=e.module,r=e.klass,n=e.slice,a=e.send2,s=e.find_super,i=e.to_a,o=e.def,l=e.truthy,$=e.top,u=[],c=e.nil,_=e.$$$;return e.add_stubs("require,attr_reader,attr_accessor,[],meta,s,original_args,push,process,arity_check_node,uses_block?,scope,prepare_block,to_code,new"),$.$require("opal/nodes/scope"),$.$require("opal/nodes/args/parameters"),$.$require("opal/nodes/node_with_args/shortcuts"),function($,u){var p=[t($,"Opal")].concat(u);return function($,u){var p=[t($,"Nodes")].concat(u),m=e.$r(p);return function(t,$,u){var p=r(t,$,"NodeWithArgs"),m=[p].concat(u),d=e.$r(m);return p.$$prototype.sexp=c,p.$attr_reader("used_kwargs"),p.$attr_accessor("arity"),p.$attr_reader("original_args"),o(p,"$initialize",(function e(t){var r,o=e.$$p||c,l=this;return e.$$p=null,r=n(arguments),a(l,s(l,"initialize",e,!1,!0),"initialize",i(r),o),l.original_args=l.sexp.$meta()["$[]"]("original_args"),l.used_kwargs=[],l.arity=0}),-1),o(p,"$arity_check_node",(function(){return this.$s("arity_check",this.$original_args())})),o(p,"$compile_arity_check",(function(){var e=this;return e.$push(e.$process(e.$arity_check_node()))})),o(p,"$compile_block_arg",(function(){return l(this.$scope()["$uses_block?"]())?this.$scope().$prepare_block():c})),o(p,"$parameters_code",(function(){return _(d("Args"),"Parameters").$new(this.$original_args()).$to_code()}))}(p[0],m("ScopeNode"),p)}(p[0],p)}(u[0],u)},Opal.modules["opal/nodes/iter"]=function(e){var t=e.module,r=e.klass,n=e.truthy,a=e.rb_lt,s=e.eqeq,i=e.not,o=e.send,l=e.def,$=e.annotate_regexp,u=e.top,c=[],_=e.nil,p=e.$$$;return e.add_stubs("require,handle,children,lambda_definition?,scope,is_lambda!,compile_body_or_shortcut,<,arity,[]=,self,key?,throwers,[],arity_check?,compiler,parameters_code,enable_source_location?,source_location,has_top_level_mlhs_arg?,has_trailing_comma_in_args?,==,keys,push,!,empty?,join,map,nesting,relative_access,in_scope,identify!,process,inline_args,compile_arity_check,in_closure,|,stmt,returned_body,add_temp,to_vars,line,unshift,await_encountered,block_arg,prepare_block,each,args,first,<<,updated,stmts,returns,s,any?,original_args,type,expression,loc,source,match"),u.$require("opal/nodes/node_with_args"),function(u,c){var m=[t(u,"Opal")].concat(c);return function(u,c){var m=[t(u,"Nodes")].concat(c),d=e.$r(m);return function(t,u,c){var m=r(t,u,"IterNode"),d=[m].concat(c),f=e.$r(d),h=m.$$prototype;return h.define_self=h.closure=h.define_nesting=h.define_relative_access=h.sexp=_,m.$handle("iter"),m.$children("inline_args","stmts"),l(m,"$compile",(function(){var e,t,r,l,$=this,u=_;return n($.$scope()["$lambda_definition?"]())&&$["$is_lambda!"](),$.$compile_body_or_shortcut(),u=new Map,n(a($.$arity(),0))&&u["$[]="]("$$arity",$.$arity()),n($.define_self)&&u["$[]="]("$$s",$.$scope().$self()),n((e=(t=$.closure)===_||null==t?_:t.$throwers())===_||null==e?_:e["$key?"]("break"))&&u["$[]="]("$$brk",$.closure.$throwers()["$[]"]("break")),n((r=(l=$.closure)===_||null==l?_:l.$throwers())===_||null==r?_:r["$key?"]("return"))&&u["$[]="]("$$ret",$.closure.$throwers()["$[]"]("return")),n($.$compiler()["$arity_check?"]())&&u["$[]="]("$$parameters",$.$parameters_code()),n($.$compiler()["$enable_source_location?"]())&&u["$[]="]("$$source_location",$.$source_location()),n($["$has_top_level_mlhs_arg?"]())&&u["$[]="]("$$has_top_level_mlhs_arg","true"),n($["$has_trailing_comma_in_args?"]())&&u["$[]="]("$$has_trailing_comma_in_args","true"),s(u.$keys(),["$$arity"])?$.$push(", "+$.$arity()):i(u["$empty?"]())&&$.$push(", {",o(u,"map",[],(function(e,t){return null==e&&(e=_),null==t&&(t=_),e+": "+t})).$join(", "),"}"),n($.define_nesting)&&$.$scope().$nesting(),n($.define_relative_access)?$.$scope().$relative_access():_})),l(m,"$compile_body",(function(){var e=this,t=_,r=_,a=_,s=_;return t=_,r=a=s=_,o(e,"in_scope",[],(function e(){var i=null==e.$$s?this:e.$$s;return null==i.is_lambda&&(i.is_lambda=_),a=i.$scope()["$identify!"](),t=i.$process(i.$inline_args()),i.$compile_arity_check(),o(i,"in_closure",[p(f("Closure"),"JS_FUNCTION")["$|"](p(f("Closure"),"ITER"))["$|"](n(i.is_lambda)?p(f("Closure"),"LAMBDA"):0)],(function e(){var t=null==e.$$s?this:e.$$s;return null==t.define_self&&(t.define_self=_),s=t.$stmt(t.$returned_body()),n(t.define_self)&&t.$add_temp("self = "+a+".$$s == null ? this : "+a+".$$s"),r=t.$scope().$to_vars(),t.$line(s)}),{$$s:i})}),{$$s:e}),e.$unshift(r),n(e.$await_encountered())?e.$unshift("async function "+a+"(",t,"){"):e.$unshift("function "+a+"(",t,"){"),e.$push("}")})),l(m,"$compile_block_arg",(function(){return n(this.$block_arg())?this.$scope().$prepare_block():_})),l(m,"$extract_underscore_args",(function(){var e=this,t=_,r=_;return t=[],r=!1,o(e.$args().$children(),"each",[],(function(e){var a;return null==e&&(e=_),a=e.$children().$first(),s(a,"_")?n(r)?_:(r=!0,t["$<<"](e)):t["$<<"](e)})),e.sexp=e.sexp.$updated(_,[e.$args().$updated(_,t),e.$stmts()])})),l(m,"$returned_body",(function(){var e,t=this;return t.$compiler().$returns(n(e=t.$stmts())?e:t.$s("nil"))})),l(m,"$has_top_level_mlhs_arg?",(function(){return o(this.$original_args().$children(),"any?",[],(function(e){return null==e&&(e=_),e.$type()["$=="]("mlhs")}))})),l(m,"$has_trailing_comma_in_args?",(function(){var e=this;return n(e.$original_args().$loc())&&n(e.$original_args().$loc().$expression())?e.$original_args().$loc().$expression().$source().$match($(/,\s*\|/u,null,"")):_})),l(m,"$arity_check_node",(function(){return this.$s("iter_arity_check",this.$original_args())}))}(m[0],d("NodeWithArgs"),m)}(m[0],m)}(c[0],c)},Opal.modules["opal/nodes/def"]=function(e){var t=e.module,r=e.klass,n=e.truthy,a=e.rb_lt,s=e.eqeq,i=e.not,o=e.send,l=e.def,$=e.rb_plus,u=e.top,c=[],_=e.nil,p=e.$$$;return e.add_stubs("require,handle,children,compile_body_or_shortcut,<,arity,[]=,arity_check?,compiler,parameters_code,parse_comments?,comments_code,enable_source_location?,source_location,==,keys,push,!,empty?,join,map,wrap_with_definition,nesting,scope,relative_access,in_scope,mid=,mid,type,defs=,identify!,identity,block_name=,process,inline_args,in_closure,|,stmt,returns,stmts,compile_block_arg,add_temp,compile_arity_check,unshift,current_indent,to_vars,line,await_encountered,helper,wrap,self,expr?,+,comments,inspect,text"),u.$require("opal/nodes/node_with_args"),function(u,c){var m=[t(u,"Opal")].concat(c);return function(u,c){var m=[t(u,"Nodes")].concat(c),d=e.$r(m);return function(t,u,c){var m=r(t,u,"DefNode"),d=[m].concat(c),f=e.$r(d),h=m.$$prototype;return h.define_nesting=h.define_relative_access=_,m.$handle("def"),m.$children("mid","inline_args","stmts"),l(m,"$compile",(function(){var e=this,t=_;return e.$compile_body_or_shortcut(),t=new Map,n(a(e.$arity(),0))&&t["$[]="]("$$arity",e.$arity()),n(e.$compiler()["$arity_check?"]())&&t["$[]="]("$$parameters",e.$parameters_code()),n(e.$compiler()["$parse_comments?"]())&&t["$[]="]("$$comments",e.$comments_code()),n(e.$compiler()["$enable_source_location?"]())&&t["$[]="]("$$source_location",e.$source_location()),s(t.$keys(),["$$arity"])?e.$push(", "+e.$arity()):i(t["$empty?"]())&&e.$push(", {",o(t,"map",[],(function(e,t){return null==e&&(e=_),null==t&&(t=_),e+": "+t})).$join(", "),"}"),e.$wrap_with_definition(),n(e.define_nesting)&&e.$scope().$nesting(),n(e.define_relative_access)?e.$scope().$relative_access():_})),l(m,"$compile_body",(function(){var e=this,t=_,r=_;return t=_,r=_,o(e,"in_scope",[],(function e(){var a=null==e.$$s?this:e.$$s;return null==a.sexp&&(a.sexp=_),a.$scope()["$mid="](a.$mid()),s(a.sexp.$type(),"defs")&&a.$scope()["$defs="](!0),a.$scope()["$identify!"](),r=a.$scope().$identity(),a.$scope()["$block_name="]("$yield"),t=a.$process(a.$inline_args()),o(a,"in_closure",[p(f("Closure"),"DEF")["$|"](p(f("Closure"),"JS_FUNCTION"))],(function e(){var t,r=null==e.$$s?this:e.$$s;return null==r.define_self&&(r.define_self=_),t=r.$stmt(r.$compiler().$returns(r.$stmts())),r.$compile_block_arg(),n(r.define_self)&&r.$add_temp("self = this"),r.$compile_arity_check(),r.$unshift("\n"+r.$current_indent(),r.$scope().$to_vars()),r.$line(t)}),{$$s:a})}),{$$s:e}),e.$unshift(") {"),e.$unshift(t),e.$unshift("function "+r+"("),n(e.$await_encountered())&&e.$unshift("async "),e.$line("}")})),l(m,"$wrap_with_definition",(function(){var e=this;return e.$helper("def"),e.$wrap("$def("+e.$scope().$self()+", '$"+e.$mid()+"', ",")"),n(e["$expr?"]())?_:e.$unshift("\n"+e.$current_indent())})),l(m,"$comments_code",(function(){return $($("[",o(this.$comments(),"map",[],(function(e){return null==e&&(e=_),e.$text().$inspect()})).$join(", ")),"]")}))}(m[0],d("NodeWithArgs"),m)}(m[0],m)}(c[0],c)},Opal.modules["opal/nodes/defs"]=function(e){var t=e.module,r=e.klass,n=e.def,a=e.top,s=[];e.nil;return e.add_stubs("require,handle,children,helper,unshift,expr,recvr,mid,push"),a.$require("opal/nodes/def"),function(a,s){var i=[t(a,"Opal")].concat(s);return function(a,s){var i=[t(a,"Nodes")].concat(s),o=e.$r(i);return function(e,t){var a=r(e,t,"DefsNode");return a.$handle("defs"),a.$children("recvr","mid","inline_args","stmts"),n(a,"$wrap_with_definition",(function(){var e=this;return e.$helper("defs"),e.$unshift("$defs(",e.$expr(e.$recvr()),", '$"+e.$mid()+"', "),e.$push(")")}))}(i[0],o("DefNode"))}(i[0],i)}(s[0],s)},Opal.modules["opal/ast/matcher"]=function(e){var t=e.module,r=e.klass,n=e.send,a=e.def,s=e.slice,i=e.truthy,o=e.const_set,l=e.rb_plus,$=e.neqeq,u=e.eqeq,c=e.eqeqeq,_=e.range,p=e.top,m=[],d=e.nil;return e.add_stubs("require,instance_exec,to_proc,new,match,inspect,attr_accessor,nil?,+,type,children,!=,length,all?,times,[],==,is_a?,first,===,include?,<<,captures"),p.$require("ast"),p.$require("parser/ast/node"),function(p,m){var f=[t(p,"Opal")].concat(m);return function(p,m){var f=[t(p,"AST")].concat(m);return function(t,p,m){var f=r(t,null,"Matcher"),h=[f].concat(m),g=e.$r(h),b=f.$$prototype;return b.root=b.captures=d,a(f,"$initialize",(function e(){var t=e.$$p||d;return e.$$p=null,this.root=n(this,"instance_exec",[],t.$to_proc())})),a(f,"$s",(function(e,t){var r;return r=s(arguments,1),g("Node").$new(e,r)}),-2),a(f,"$cap",(function(e){return g("Node").$new("capture",[e])})),a(f,"$match",(function(e){var t=this;return t.captures=[],!!i(t.root.$match(e,t))&&t.captures})),a(f,"$inspect",(function(){return"#<Opal::AST::Matcher: "+this.root.$inspect()+">"})),f.$attr_accessor("captures"),o(h[0],"Node",n(g("Struct"),"new",["type","children"],(function e(){var t=null==e.$$s?this:e.$$s;return a(t,"$match",(function(e,t){var r=d,a=d;return!i(e["$nil?"]())&&(r=l([e.$type()],e.$children()),a=l([this.$type()],this.$children()),!$(r.$length(),a.$length())&&n(r.$length().$times(),"all?",[],(function(e){var n,s,o,l=d,$=d;return null==e&&(e=d),n=r["$[]"](e),l=a["$[]"](e),i(l["$is_a?"](g("Node")))&&u(l.$type(),"capture")&&($=!0,l=l.$children().$first()),s=c(g("Node"),o=l)?l.$match(n,t):c(g("Array"),o)?l["$include?"](n):c("*",o)||l["$=="](n),i($)&&t.$captures()["$<<"](n),s})))})),a(t,"$inspect",(function(){var e=this;return u(e.$type(),"capture")?"{"+e.$children().$first().$inspect()+"}":"s("+e.$type().$inspect()+", "+e.$children().$inspect()["$[]"](_(1,-2,!1))+")"}))}),{$$s:f}))}(f[0],0,f)}(f[0],f)}(m[0],m)},Opal.modules["opal/nodes/if"]=function(e){var t=e.module,r=e.klass,n=e.truthy,a=e.eqeq,s=e.def,i=e.not,o=e.send,l=e.eqeqeq,$=e.const_set,u=e.to_a,c=e.neqeq,_=e.return_val,p=e.top,m=[],d=e.nil,f=e.$$$;return e.add_stubs("require,handle,children,should_compile_as_simple_expression?,==,true_body,s,compile_with_binary_or,false_body,compile_with_binary_and,compile_with_ternary,could_become_switch?,compile_with_switch,compile_with_if,expects_expression?,push_closure,truthy,falsy,!,push,js_truthy,test,indent,line,stmt,type,pop_closure,returning_if?,await_encountered,scope,wrap,[],meta,returnify,returns,compiler,expr?,recv?,simple?,expr,sexp,===,single_line?,strip_empty_children,all?,new,cap,match,handle_additional_switch_rules,valid_switch_body?,could_become_switch_branch?,<<,!=,[]=,merge!,compile_switch_case,include?,last,each,returning?,compile_switch_default,helper,new_temp,top_scope,excl,start_condition,end_condition"),p.$require("opal/nodes/base"),p.$require("opal/ast/matcher"),function(p,m){var h=[t(p,"Opal")].concat(m);return function(p,m){var h=[t(p,"Nodes")].concat(m),g=e.$r(h);return function(t,_,p){var m=r(t,_,"IfNode"),h=[m].concat(p),g=e.$r(h),b=m.$$prototype;b.sexp=b.switch_variable=b.switch_first_test=b.switch_additional_rules=d,m.$handle("if"),m.$children("test","true_body","false_body"),s(m,"$compile",(function(){var e=this;return n(e["$should_compile_as_simple_expression?"]())?a(e.$true_body(),e.$s("true"))?e.$compile_with_binary_or():a(e.$false_body(),e.$s("false"))?e.$compile_with_binary_and():e.$compile_with_ternary():n(e["$could_become_switch?"]())?e.$compile_with_switch():e.$compile_with_if()})),s(m,"$compile_with_if",(function(){var e,t=this,r=d,s=d,l=d;return n(t["$expects_expression?"]())&&t.$push_closure(),r=t.$truthy(),s=t.$falsy(),n(s)&&i(r)?(t.$push("if (!",t.$js_truthy(t.$test()),") {"),s=(e=[r,s])[0],r=e[1]):t.$push("if (",t.$js_truthy(t.$test()),") {"),n(r)&&o(t,"indent",[],(function e(){var t=null==e.$$s?this:e.$$s;return t.$line(t.$stmt(r))}),{$$s:t}),n(s)?a(s.$type(),"if")?t.$line("} else ",t.$stmt(s)):(t.$line("} else {"),o(t,"indent",[],(function e(){var t=null==e.$$s?this:e.$$s;return t.$line(t.$stmt(s))}),{$$s:t}),t.$line("}")):(t.$line("}"),n(t["$expects_expression?"]())&&t.$line("return nil;")),n(t["$expects_expression?"]())&&t.$pop_closure(),n(t["$expects_expression?"]())?(n(t["$returning_if?"]())&&(l="return "),n(t.$scope().$await_encountered())?t.$wrap(l+"(await (async function() {","})())"):t.$wrap(l+"(function() {","})()")):d})),s(m,"$returning_if?",(function(){return this.sexp.$meta()["$[]"]("returning")})),s(m,"$truthy",(function(){return this.$returnify(this.$true_body())})),s(m,"$falsy",(function(){return this.$returnify(this.$false_body())})),s(m,"$returnify",(function(e){return n(this["$expects_expression?"]())&&n(e)?this.$compiler().$returns(e):e})),s(m,"$expects_expression?",(function(){var e;return n(e=this["$expr?"]())?e:this["$recv?"]()})),s(m,"$should_compile_as_simple_expression?",(function(){var e,t,r=this;return n(e=n(t=r["$expects_expression?"]())?r["$simple?"](r.$true_body()):t)?r["$simple?"](r.$false_body()):e})),s(m,"$compile_with_ternary",(function(){var e,t=this,r=d,s=d;return e=t.$true_body(),r=t.$false_body(),t.$push("("),t.$push(t.$js_truthy(t.$test())," ? "),t.$push("(",t.$expr(n(s=e)?s:t.$s("nil")),") : "),i(r)||a(r.$type(),"if")?t.$push(t.$expr(n(s=r)?s:t.$s("nil"))):t.$push("(",t.$expr(n(s=r)?s:t.$s("nil")),")"),t.$push(")")})),s(m,"$compile_with_binary_and",(function(){var e=this,t=d,r=d;return t=n(e.$sexp().$meta()["$[]"]("do_js_truthy_on_true_body"))?e.$js_truthy(n(r=e.$true_body())?r:e.$s("nil")):e.$expr(n(r=e.$true_body())?r:e.$s("nil")),e.$push("("),e.$push(e.$js_truthy(e.$test())," && "),e.$push("(",t,")"),e.$push(")")})),s(m,"$compile_with_binary_or",(function(){var e=this,t=d,r=d;return t=n(e.$sexp().$meta()["$[]"]("do_js_truthy_on_false_body"))?e.$js_truthy(n(r=e.$false_body())?r:e.$s("nil")):e.$expr(n(r=e.$false_body())?r:e.$s("nil")),e.$push("("),e.$push(e.$js_truthy(e.$test())," || "),e.$push("(",t,")"),e.$push(")")})),s(m,"$simple?",(function(e){if(!l(f(g("AST"),"Node"),e))return!0;switch(e.$type().valueOf()){case"return":case"js_return":case"break":case"next":case"redo":case"retry":return!1;case"xstr":return g("XStringNode")["$single_line?"](g("XStringNode").$strip_empty_children(e.$children()));default:return o(e.$children(),"all?",[],(function e(t){return null==t&&(t=d),(null==e.$$s?this:e.$$s)["$simple?"](t)}),{$$s:this})}})),$(h[0],"SWITCH_TEST_MATCH",o(f(g("AST"),"Matcher"),"new",[],(function e(){var t=null==e.$$s?this:e.$$s;return t.$s("send",t.$cap(t.$s(["float","int","sym","str","true","false","nil"],"*")),"===",t.$s("lvasgn",t.$cap("*"),t.$cap("*")))}),{$$s:m})),$(h[0],"SWITCH_TEST_MATCH_CONTINUED",o(f(g("AST"),"Matcher"),"new",[],(function e(){var t=null==e.$$s?this:e.$$s;return t.$s("if",t.$s("send",t.$cap(t.$s(["float","int","sym","str","true","false","nil"],"*")),"===",t.$s("lvasgn",t.$cap("*"),t.$cap("*"))),t.$s("true"),t.$cap("*"))}),{$$s:m})),$(h[0],"SWITCH_BRANCH_TEST_MATCH",o(f(g("AST"),"Matcher"),"new",[],(function e(){var t=null==e.$$s?this:e.$$s;return t.$s("send",t.$cap(t.$s(["float","int","sym","str","true","false","nil"],"*")),"===",t.$s("js_tmp",t.$cap("*")))}),{$$s:m})),$(h[0],"SWITCH_BRANCH_TEST_MATCH_CONTINUED",o(f(g("AST"),"Matcher"),"new",[],(function e(){var t=null==e.$$s?this:e.$$s;return t.$s("if",t.$s("send",t.$cap(t.$s(["float","int","sym","str","true","false","nil"],"*")),"===",t.$s("js_tmp",t.$cap("*"))),t.$s("true"),t.$cap("*"))}),{$$s:m})),s(m,"$could_become_switch?",(function(){var e,t,r,a=this,s=d;return!n(a["$expects_expression?"]())&&(!!n(a.$sexp().$meta()["$[]"]("switch_child"))||(t=n(r=g("SWITCH_TEST_MATCH").$match(a.$test()))?r:g("SWITCH_TEST_MATCH_CONTINUED").$match(a.$test()),!!n(t)&&(e=[].concat(u(t)),a.switch_test=null==e[0]?d:e[0],a.switch_variable=null==e[1]?d:e[1],a.switch_first_test=null==e[2]?d:e[2],s=null==e[3]?d:e[3],s=a.$handle_additional_switch_rules(s),!!n(s)&&(a.switch_additional_rules=s,!!n(a["$valid_switch_body?"](a.$true_body()))&&a["$could_become_switch_branch?"](a.$false_body())))))})),s(m,"$handle_additional_switch_rules",(function(e){var t,r=d,s=d,i=d,o=d,l=d;for(r=[];n(e);){if(s=n(i=g("SWITCH_BRANCH_TEST_MATCH").$match(e))?i:g("SWITCH_BRANCH_TEST_MATCH_CONTINUED").$match(e),!n(s))return!1;if(o=null==(t=[].concat(u(s)))[0]?d:t[0],l=null==t[1]?d:t[1],e=null==t[2]?d:t[2],!a(l,this.switch_variable))return!1;r["$<<"](o)}return r})),s(m,"$could_become_switch_branch?",(function(e){var t,r,s,o,l,$,_,p,m,f,h=this;return!!i(e)||(c(e.$type(),"if")?!!n(h["$valid_switch_body?"](e))&&(e.$meta()["$[]="]("switch_default",!0),!0):(r=null==(t=[].concat(u(e)))[0]?d:t[0],s=null==t[1]?d:t[1],o=null==t[2]?d:t[2],l=n($=g("SWITCH_BRANCH_TEST_MATCH").$match(r))?$:g("SWITCH_BRANCH_TEST_MATCH_CONTINUED").$match(r),!n(l)&&n(h["$valid_switch_body?"](e,!0))?(e.$meta()["$[]="]("switch_default",!0),!0):(_=null==(t=[].concat(u(l)))[0]?d:t[0],p=null==t[1]?d:t[1],m=null==t[2]?d:t[2],f=h.$handle_additional_switch_rules(m),!!n(f)&&(!!a(p,h.switch_variable)&&(!!n(h["$valid_switch_body?"](s))&&(!!n(h["$could_become_switch_branch?"](o))&&(e.$meta()["$merge!"](new Map([["switch_child",!0],["switch_test",_],["switch_variable",h.switch_variable],["switch_additional_rules",f]])),!0)))))))})),s(m,"$valid_switch_body?",(function(e,t){var r;if(null==t&&(t=!1),!l(f(g("AST"),"Node"),r=e))return!l(this.switch_variable,r)||t["$!"]();switch(e.$type().valueOf()){case"break":case"redo":case"retry":return!1;case"iter":case"while":return!0;default:return o(e.$children(),"all?",[],(function e(r){return null==r&&(r=d),(null==e.$$s?this:e.$$s)["$valid_switch_body?"](r,t)}),{$$s:this})}}),-2),s(m,"$compile_with_switch",(function(){var e=this;return n(e.$sexp().$meta()["$[]"]("switch_child"))?(e.switch_variable=e.$sexp().$meta()["$[]"]("switch_variable"),e.switch_additional_rules=e.$sexp().$meta()["$[]"]("switch_additional_rules"),e.$compile_switch_case(e.$sexp().$meta()["$[]"]("switch_test"))):(e.$line("switch (",e.$expr(e.switch_first_test),".valueOf()) {"),o(e,"indent",[],(function e(){var t=null==e.$$s?this:e.$$s;return null==t.switch_test&&(t.switch_test=d),t.$compile_switch_case(t.switch_test)}),{$$s:e}),e.$line("}"))})),s(m,"$returning?",(function(e){var t,r=d;return n(t=["return","js_return","next"]["$include?"](e.$type()))?t:n(r=e.$type()["$=="]("begin"))?["return","js_return","next"]["$include?"](e.$children().$last().$type()):r})),s(m,"$compile_switch_case",(function(e){var t=this;return t.$line("case ",t.$expr(e),":"),n(t.switch_additional_rules)&&o(t.switch_additional_rules,"each",[],(function e(t){var r=null==e.$$s?this:e.$$s;return null==t&&(t=d),r.$line("case ",r.$expr(t),":")}),{$$s:t}),o(t,"indent",[],(function e(){var t=null==e.$$s?this:e.$$s;return t.$line(t.$stmt(t.$true_body())),i(t.$true_body())||i(t["$returning?"](t.$true_body()))?t.$line("break;"):d}),{$$s:t}),n(t.$false_body())?n(t.$false_body().$meta()["$[]"]("switch_default"))?t.$compile_switch_default():n(t.$false_body().$meta()["$[]"]("switch_child"))?t.$push(t.$stmt(t.$false_body())):d:t.$push(t.$stmt(t.$s("nil")))})),s(m,"$compile_switch_default",(function(){var e=this;return e.$line("default:"),o(e,"indent",[],(function e(){var t=null==e.$$s?this:e.$$s;return t.$line(t.$stmt(t.$false_body()))}),{$$s:e})}))}(h[0],g("Base"),h),function(e,t){var n=r(e,t,"BaseFlipFlop");n.$children("start_condition","end_condition"),s(n,"$compile",(function(){var e,t,r=this;return r.$helper("truthy"),t=(e=r.$top_scope().$new_temp())+".$$ff",r.$push("("+e+" = "+e+" || function(_start_func, _end_func){"),r.$push(" var flip_flop = "+t+" || false;"),r.$push(" if (!flip_flop) "+t+" = flip_flop = $truthy(_start_func());"),r.$push(" "+r.$excl()+"if (flip_flop && $truthy(_end_func())) "+t+" = false;"),r.$push(" return flip_flop;"),r.$push("})("),r.$push(" function() { ",r.$stmt(r.$compiler().$returns(r.$start_condition()))," },"),r.$push(" function() { ",r.$stmt(r.$compiler().$returns(r.$end_condition()))," }"),r.$push(")")}))}(h[0],g("Base")),function(e,t){var n=r(e,t,"IFlipFlop");n.$handle("iflipflop"),s(n,"$excl",_(""))}(h[0],g("BaseFlipFlop")),function(e,t){var n=r(e,t,"EFlipFlop");return n.$handle("eflipflop"),s(n,"$excl",_("else "))}(h[0],g("BaseFlipFlop"))}(h[0],h)}(m[0],m)},Opal.modules["opal/nodes/logic"]=function(e){var t=e.module,r=e.klass,n=e.def,a=e.send,s=e.to_a,i=e.truthy,o=e.rb_gt,l=e.top,$=[];e.nil;return e.add_stubs("require,handle,thrower,value,size,children,s,first,in_while?,compile_while,iter?,scope,compile_iter,push,[],while_loop,helper,identity,==,empty_splat?,recv,nil?,>,return_val,expr,to_s"),l.$require("opal/nodes/base"),function(l,$){var u=[t(l,"Opal")].concat($);return function(l,$){var u=[t(l,"Nodes")].concat($),c=e.$r(u);return function(e,t){var i=r(e,t,"NextNode");i.$handle("next"),n(i,"$compile",(function(){return this.$thrower("next",this.$value())})),n(i,"$value",(function(){var e=this;switch(e.$children().$size().valueOf()){case 0:return e.$s("nil");case 1:return e.$children().$first();default:return a(e,"s",["array"].concat(s(e.$children())))}}))}(u[0],c("Base")),function(e,t){var a=r(e,t,"BreakNode");a.$handle("break"),a.$children("value"),n(a,"$compile",(function(){return this.$thrower("break",this.$value())}))}(u[0],c("Base")),function(e,t){var a=r(e,t,"RedoNode");a.$handle("redo"),n(a,"$compile",(function(){var e=this;return i(e["$in_while?"]())?e.$compile_while():i(e.$scope()["$iter?"]())?e.$compile_iter():e.$push("REDO()")})),n(a,"$compile_while",(function(){var e=this;return e.$push(e.$while_loop()["$[]"]("redo_var")+" = true;"),e.$thrower("redo")})),n(a,"$compile_iter",(function(){var e=this;return e.$helper("slice"),e.$push("return "+e.$scope().$identity()+".apply(null, $slice(arguments))")}))}(u[0],c("Base")),function(e,t){var a=r(e,t,"SplatNode");a.$handle("splat"),a.$children("value"),n(a,"$empty_splat?",(function(){return this.$value()["$=="](this.$s("array"))})),n(a,"$compile",(function(){var e=this;return i(e["$empty_splat?"]())?e.$push("[]"):(e.$helper("to_a"),e.$push("$to_a(",e.$recv(e.$value()),")"))}))}(u[0],c("Base")),function(e,t){var a=r(e,t,"RetryNode");a.$handle("retry"),n(a,"$compile",(function(){return this.$thrower("retry")}))}(u[0],c("Base")),function(e,t){var l=r(e,t,"ReturnNode");l.$handle("return"),l.$children("value"),n(l,"$return_val",(function(){var e=this;return i(e.$value()["$nil?"]())?e.$s("nil"):i(o(e.$children().$size(),1))?a(e,"s",["array"].concat(s(e.$children()))):e.$value()})),n(l,"$compile",(function(){return this.$thrower("return",this.$return_val())}))}(u[0],c("Base")),function(e,t){var a=r(e,t,"JSReturnNode");a.$handle("js_return"),a.$children("value"),n(a,"$compile",(function(){var e=this;return e.$push("return "),e.$push(e.$expr(e.$value()))}))}(u[0],c("Base")),function(e,t){var a=r(e,t,"JSTempNode");a.$handle("js_tmp"),a.$children("value"),n(a,"$compile",(function(){return this.$push(this.$value().$to_s())}))}(u[0],c("Base")),function(e,t){var a=r(e,t,"BlockPassNode");return a.$handle("block_pass"),a.$children("value"),n(a,"$compile",(function(){var e=this;return e.$push(e.$expr(e.$s("send",e.$value(),"to_proc",e.$s("arglist"))))}))}(u[0],c("Base"))}(u[0],u)}($[0],$)},Opal.modules["opal/nodes/definitions"]=function(e){var t=e.module,r=e.klass,n=e.send,a=e.def,s=e.range,i=e.eqeq,o=e.truthy,l=e.rb_gt,$=e.to_a,u=e.slice,c=e.rb_plus,_=e.const_set,p=e.top,m=[],d=e.nil;return e.add_stubs("require,handle,children,each,line,self,scope,expr,type,new_name,helper,inspect,[],to_s,first,old_name,push,==,record_method_call,compiler,last,error,empty?,stmt?,compile_children,simple_children?,compile_inline_children,>,size,wrap,returned_children,in_closure,await_encountered,parent,+,returns,s,process,fragment,freeze,none?,include?,map,each_with_index,reject,to_proc"),p.$require("opal/nodes/base"),function(p,m){var f=[t(p,"Opal")].concat(m);return function(p,m){var f=[t(p,"Nodes")].concat(m),h=e.$r(f);return function(e,t){var s=r(e,t,"UndefNode");s.$handle("undef"),s.$children("value"),a(s,"$compile",(function(){return n(this.$children(),"each",[],(function e(t){var r=null==e.$$s?this:e.$$s;return null==t&&(t=d),r.$line("Opal.udef("+r.$scope().$self()+", '$' + ",r.$expr(t),");")}),{$$s:this})}))}(f[0],h("Base")),function(e,t){var n=r(e,t,"AliasNode");n.$handle("alias"),n.$children("new_name","old_name"),a(n,"$compile",(function(){var e=this,t=d,r=d;switch(e.$new_name().$type().valueOf()){case"gvar":return e.$helper("alias_gvar"),t=e.$new_name().$children().$first().$to_s()["$[]"](s(1,-1,!1)).$inspect(),r=e.$old_name().$children().$first().$to_s()["$[]"](s(1,-1,!1)).$inspect(),e.$push("$alias_gvar(",t,", ",r,")");case"dsym":case"sym":return e.$helper("alias"),i(e.$old_name().$type(),"sym")&&e.$compiler().$record_method_call(e.$old_name().$children().$last()),e.$push("$alias("+e.$scope().$self()+", ",e.$expr(e.$new_name()),", ",e.$expr(e.$old_name()),")");default:return e.$error("Opal doesn't know yet how to alias with "+e.$new_name().$type())}}))}(f[0],h("Base")),function(t,s,p){var m=r(t,s,"BeginNode"),f=[m].concat(p),h=e.$r(f),g=m.$$prototype;g.level=g.returned_children=d,m.$handle("begin"),a(m,"$compile",(function(){var e,t=this;return o(t.$children()["$empty?"]())?t.$push("nil"):o(t["$stmt?"]())?t.$compile_children(t.$children(),t.level):o(t["$simple_children?"]())?(t.$compile_inline_children(t.$children(),t.level),o(l(t.$children().$size(),1))?t.$wrap("(",")"):d):i(t.$children().$size(),1)?t.$compile_inline_children(t.$returned_children(),t.level):(n(t,"in_closure",[],(function e(){var t=null==e.$$s?this:e.$$s;return null==t.level&&(t.level=d),t.$compile_children(t.$returned_children(),t.level)}),{$$s:t}),o((e=t.$scope().$parent())===d||null==e?d:e.$await_encountered())?t.$wrap("(await (async function() {","})())"):t.$wrap("(function() {","})()"))})),a(m,"$returned_children",(function(){var e,t,r,n=this,a=d,s=d;return n.returned_children=o(r=n.returned_children)?r:(t=(e=[].concat($(n.$children()))).length-1,a=u(e,0,t=t<0?0:t),s=null==e[t]?d:e[t],o(s)?c(a,[n.$compiler().$returns(s)]):[n.$s("nil")])})),a(m,"$compile_children",(function(e,t){return n(e,"each",[],(function e(r){var n=null==e.$$s?this:e.$$s;return null==r&&(r=d),n.$line(n.$process(r,t),n.$fragment(";",new Map([["loc",!1]])))}),{$$s:this})})),_(f[0],"COMPLEX_CHILDREN",["while","while_post","until","until_post","js_return"].$freeze()),a(m,"$simple_children?",(function(){return n(this.$children(),"none?",[],(function(e){return null==e&&(e=d),h("COMPLEX_CHILDREN")["$include?"](e.$type())}))})),a(m,"$compile_inline_children",(function(e,t){var r;return r=n(e,"map",[],(function e(r){return null==r&&(r=d),(null==e.$$s?this:e.$$s).$process(r,t)}),{$$s:this}),n(n(r,"reject",[],"empty?".$to_proc()),"each_with_index",[],(function e(t,r){var n=null==e.$$s?this:e.$$s;return null==t&&(t=d),null==r&&(r=d),i(r,0)||n.$push(n.$fragment(", ",new Map([["loc",!1]]))),n.$push(t)}),{$$s:this})}))}(f[0],h("ScopeNode"),f),function(e,t){return r(e,t,"KwBeginNode").$handle("kwbegin")}(f[0],h("BeginNode"))}(f[0],f)}(m[0],m)},Opal.modules["opal/nodes/yield"]=function(e){var t=e.module,r=e.klass,n=e.truthy,a=e.send,s=e.to_a,i=e.def,o=e.top,l=[],$=e.nil;return e.add_stubs("require,find_yielding_scope,uses_block!,block_name,block_name=,yields_single_arg?,children,push,expr,first,wrap,s,uses_splat?,scope,def?,parent,!,==,size,any?,type,handle,compile_call"),o.$require("opal/nodes/base"),function(o,l){var u=[t(o,"Opal")].concat(l);return function(o,l){var u=[t(o,"Nodes")].concat(l),c=e.$r(u);return function(e,t){var o=r(e,t,"BaseYieldNode");i(o,"$compile_call",(function(){var e,t=this,r=$;return(r=t.$find_yielding_scope())["$uses_block!"](),n(r.$block_name())||r["$block_name="]("$yield"),e=r.$block_name(),n(t["$yields_single_arg?"](t.$children()))?(t.$push(t.$expr(t.$children().$first())),t.$wrap("Opal.yield1("+e+", ",")")):(t.$push(t.$expr(a(t,"s",["arglist"].concat(s(t.$children()))))),n(t["$uses_splat?"](t.$children()))?t.$wrap("Opal.yieldX("+e+", ",")"):t.$wrap("Opal.yieldX("+e+", [","])"))})),i(o,"$find_yielding_scope",(function(){var e=$;for(e=this.$scope();n(e)&&!n(e.$block_name())&&!n(e["$def?"]());)e=e.$parent();return e})),i(o,"$yields_single_arg?",(function(e){var t;return n(t=this["$uses_splat?"](e)["$!"]())?e.$size()["$=="](1):t})),i(o,"$uses_splat?",(function(e){return a(e,"any?",[],(function(e){return null==e&&(e=$),e.$type()["$=="]("splat")}))}))}(u[0],c("Base")),function(e,t){var n=r(e,t,"YieldNode");n.$handle("yield"),i(n,"$compile",(function(){return this.$compile_call()}))}(u[0],c("BaseYieldNode")),function(e,t){var n=r(e,t,"ReturnableYieldNode");return n.$handle("returnable_yield"),i(n,"$compile",(function(){return this.$compile_call(),this.$wrap("return ",";")}))}(u[0],c("BaseYieldNode"))}(u[0],u)}(l[0],l)},Opal.modules["opal/nodes/rescue"]=function(e){var t=e.module,r=e.klass,n=e.truthy,a=e.send,s=e.def,i=e.range,o=e.neqeq,l=e.eqeq,$=e.to_a,u=e.top,c=[],_=e.nil,p=e.$$$;return e.add_stubs("require,handle,children,wrap_in_closure?,push_closure,push,in_ensure,line,stmt,body_sexp,indent,has_rescue_else?,unshift,rescue_else_code,process,compiler,ensr_sexp,pop_closure,await_encountered,scope,wrap,returns,begn,ensr,s,recv?,expr?,rescue_else_sexp,stmt?,[],meta,rescue_else_sexp=,detect,!=,type,handle_rescue_else_manually?,|,has_retry?,in_rescue,body_code,each_with_index,==,body,nil?,!,in_ensure?,expr,klasses,lvar,updated,in_resbody,rescue_body,klasses_sexp"),u.$require("opal/nodes/base"),function(u,c){var m=[t(u,"Opal")].concat(c);return function(u,c){var m=[t(u,"Nodes")].concat(c),d=e.$r(m);return function(e,t){var i=r(e,t,"EnsureNode");i.$$prototype.sexp=_,i.$handle("ensure"),i.$children("begn","ensr"),s(i,"$compile",(function(){var e=this;return n(e["$wrap_in_closure?"]())&&e.$push_closure(),e.$push("try {"),a(e,"in_ensure",[],(function e(){var t=null==e.$$s?this:e.$$s;return t.$line(t.$stmt(t.$body_sexp()))}),{$$s:e}),e.$line("} finally {"),a(e,"indent",[],(function e(){var t=null==e.$$s?this:e.$$s;return null==t.level&&(t.level=_),n(t["$has_rescue_else?"]())?(t.$unshift("var $no_errors = true; "),t.$line("var $rescue_else_result;"),t.$line("if ($no_errors) { "),a(t,"indent",[],(function e(){var t=null==e.$$s?this:e.$$s;return t.$line("$rescue_else_result = (function() {"),a(t,"indent",[],(function e(){var t=null==e.$$s?this:e.$$s;return t.$line(t.$stmt(t.$rescue_else_code()))}),{$$s:t}),t.$line("})();")}),{$$s:t}),t.$line("}"),t.$line(t.$compiler().$process(t.$ensr_sexp(),t.level)),t.$line("if ($no_errors) { return $rescue_else_result; }")):t.$line(t.$compiler().$process(t.$ensr_sexp(),t.level))}),{$$s:e}),e.$line("}"),n(e["$wrap_in_closure?"]())&&e.$pop_closure(),n(e["$wrap_in_closure?"]())?n(e.$scope().$await_encountered())?e.$wrap("(await (async function() { ","; })())"):e.$wrap("(function() { ","; })()"):_})),s(i,"$body_sexp",(function(){var e=this;return n(e["$wrap_in_closure?"]())?e.$compiler().$returns(e.$begn()):e.$begn()})),s(i,"$ensr_sexp",(function(){var e;return n(e=this.$ensr())?e:this.$s("nil")})),s(i,"$wrap_in_closure?",(function(){var e,t,r=this;return n(e=n(t=r["$recv?"]())?t:r["$expr?"]())?e:r["$has_rescue_else?"]()})),s(i,"$rescue_else_code",(function(){var e=this,t=_;return t=e.$scope().$rescue_else_sexp(),n(e["$stmt?"]())||(t=e.$compiler().$returns(t)),t})),s(i,"$has_rescue_else?",(function(){return this.sexp.$meta()["$[]"]("has_rescue_else")}))}(m[0],d("Base")),function(t,$,u){var c=r(t,$,"RescueNode"),m=[c].concat(u),d=e.$r(m);c.$$prototype.sexp=_,c.$handle("rescue"),c.$children("body"),s(c,"$compile",(function(){var e=this,t=_;return e.$scope()["$rescue_else_sexp="](a(e.$children()["$[]"](i(1,-1,!1)),"detect",[],(function(e){var t;return null==e&&(e=_),n(t=e)?e.$type()["$!="]("resbody"):t}))),!1,n(e["$handle_rescue_else_manually?"]())&&e.$line("var $no_errors = true;"),t=p(d("Closure"),"NONE"),(n(e["$expr?"]())||n(e["$recv?"]()))&&(t=t["$|"](p(d("Closure"),"JS_FUNCTION"))),n(e["$has_retry?"]())&&(t=t["$|"](p(d("Closure"),"JS_LOOP")["$|"](p(d("Closure"),"JS_LOOP_INSIDE"))["$|"](p(d("Closure"),"RESCUE_RETRIER")))),o(t,p(d("Closure"),"NONE"))&&e.$push_closure(t),a(e,"in_rescue",[e],(function e(){var t=null==e.$$s?this:e.$$s;return t.$push("try {"),a(t,"indent",[],(function e(){var t=null==e.$$s?this:e.$$s;return t.$line(t.$stmt(t.$body_code()))}),{$$s:t}),t.$line("} catch ($err) {"),a(t,"indent",[],(function e(){var t=null==e.$$s?this:e.$$s;return n(t["$has_rescue_else?"]())&&t.$line("$no_errors = false;"),a(t.$children()["$[]"](i(1,-1,!1)),"each_with_index",[],(function e(t,r){var a=null==e.$$s?this:e.$$s;return null==a.level&&(a.level=_),null==t&&(t=_),null==r&&(r=_),n(t)&&l(t.$type(),"resbody")?(!0,l(r,0)||a.$push(" else "),a.$line(a.$process(t,a.level))):_}),{$$s:t}),t.$push(" else { throw $err; }")}),{$$s:t}),t.$line("}"),n(t["$handle_rescue_else_manually?"]())?(t.$push("finally {"),a(t,"indent",[],(function e(){var t=null==e.$$s?this:e.$$s;return t.$line("if ($no_errors) { "),a(t,"indent",[],(function e(){var t=null==e.$$s?this:e.$$s;return t.$line(t.$stmt(t.$rescue_else_code()))}),{$$s:t}),t.$line("}")}),{$$s:t}),t.$push("}")):_}),{$$s:e}),o(t,p(d("Closure"),"NONE"))&&e.$pop_closure(),n(e["$has_retry?"]())&&e.$wrap("do { "," break; } while(1)"),n(e["$expr?"]())||n(e["$recv?"]())?n(e.$scope().$await_encountered())?e.$wrap("(await (async function() { ","})())"):e.$wrap("(function() { ","})()"):_})),s(c,"$body_code",(function(){var e=this,t=_;return t=n(e.$body()["$nil?"]())||l(e.$body().$type(),"resbody")?e.$s("nil"):e.$body(),n(e["$stmt?"]())||(t=e.$compiler().$returns(t)),t})),s(c,"$rescue_else_code",(function(){var e=this,t=_;return t=e.$scope().$rescue_else_sexp(),n(e["$stmt?"]())||(t=e.$compiler().$returns(t)),t})),s(c,"$handle_rescue_else_manually?",(function(){var e;return n(e=this["$in_ensure?"]()["$!"]())?this["$has_rescue_else?"]():e})),s(c,"$has_retry?",(function(){return this.sexp.$meta()["$[]"]("has_retry")}))}(m[0],d("Base"),m),function(e,t){var i=r(e,t,"ResBodyNode");return i.$handle("resbody"),i.$children("klasses_sexp","lvar","body"),s(i,"$compile",(function(){var e=this;return e.$push("if (Opal.rescue($err, ",e.$expr(e.$klasses()),")) {"),a(e,"indent",[],(function e(){var t=null==e.$$s?this:e.$$s;return n(t.$lvar())&&t.$push(t.$expr(t.$lvar().$updated(_,[].concat($(t.$lvar().$children())).concat([t.$s("js_tmp","$err")])))),t.$line("try {"),a(t,"indent",[],(function e(){var t=null==e.$$s?this:e.$$s;return a(t,"in_resbody",[],(function e(){var t=null==e.$$s?this:e.$$s;return t.$line(t.$stmt(t.$rescue_body()))}),{$$s:t})}),{$$s:t}),t.$line("} finally { Opal.pop_exception($err); }")}),{$$s:e}),e.$line("}")})),s(i,"$klasses",(function(){var e,t=this;return n(e=t.$klasses_sexp())?e:t.$s("array",t.$s("const",_,"StandardError"))})),s(i,"$rescue_body",(function(){var e,t=this,r=_;return r=n(e=t.$body())?e:t.$s("nil"),n(t["$stmt?"]())||(r=t.$compiler().$returns(r)),r}))}(m[0],d("Base"))}(m[0],m)}(c[0],c)},Opal.modules["opal/nodes/super"]=function(e){var t=e.module,r=e.klass,n=e.slice,a=e.send2,s=e.find_super,i=e.to_a,o=e.truthy,l=e.send,$=e.def,u=e.return_val,c=e.to_ary,_=e.eqeq,p=e.not,m=e.eqeqeq,d=e.top,f=[],h=e.nil,g=e.$$$;return e.add_stubs("require,include?,type,s,helper,push,compile_receiver,compile_method_body,compile_method_name,compile_arguments,compile_block_pass,private,def?,scope,find_parent_def,to_s,mid,def_scope,identify!,self,method_id,def_scope_identity,defined_check_param,allow_stubs,super_chain,join,map,implicit_arguments_param,super_method_invocation,iter?,super_block_invocation,raise,handle,wrap,uses_block!,compile_using_send,==,iter,block_name,implicit_arglist,!,<<,each,children,original_args,[],meta,empty?,==="),d.$require("opal/nodes/base"),function(d,f){var b=[t(d,"Opal")].concat(f);return function(d,f){var b=[t(d,"Nodes")].concat(f),v=e.$r(b);return function(e,t){var _=r(e,t,"BaseSuperNode"),p=_.$$prototype;p.sexp=p.def_scope=h,$(_,"$initialize",(function e(t){var r,$,u,c,_=e.$$p||h,p=this,m=h,d=h;return e.$$p=null,r=n(arguments),a(p,s(p,"initialize",e,!1,!0),"initialize",i(r),_),m=[].concat(i(p.sexp)),u=($=[].concat(i(m))).length-1,c=n($,0,u=u<0?0:u),d=null==$[u]?h:$[u],o(d)&&o(["iter","block_pass"]["$include?"](d.$type()))?(p.iter=d,m=c):p.iter=p.$s("js_tmp","null"),p.arglist=l(p,"s",["arglist"].concat(i(m))),p.recvr=p.$s("self")}),-1),$(_,"$compile_using_send",(function(){var e=this;return e.$helper("send2"),e.$push("$send2("),e.$compile_receiver(),e.$compile_method_body(),e.$compile_method_name(),e.$compile_arguments(),e.$compile_block_pass(),e.$push(")")})),_.$private(),$(_,"$def_scope",(function(){var e,t=this;return t.def_scope=o(e=t.def_scope)?e:o(t.$scope()["$def?"]())?t.$scope():t.$scope().$find_parent_def()})),$(_,"$defined_check_param",u("false")),$(_,"$implicit_arguments_param",u("false")),$(_,"$method_id",(function(){return this.$def_scope().$mid().$to_s()})),$(_,"$def_scope_identity",(function(){return this.$def_scope()["$identify!"](this.$def_scope().$mid())})),$(_,"$allow_stubs",u("true")),$(_,"$super_method_invocation",(function(){var e=this;return e.$helper("find_super"),"$find_super("+e.$scope().$self()+", '"+e.$method_id()+"', "+e.$def_scope_identity()+", "+e.$defined_check_param()+", "+e.$allow_stubs()+")"})),$(_,"$super_block_invocation",(function(){var e,t,r,n,a,s,i=this;return i.$helper("find_block_super"),t=i.$scope().$super_chain(),r=null==(e=c(t))[0]?h:e[0],n=null==e[1]?h:e[1],a=null==e[2]?h:e[2],s=l(r,"map",[],(function(e){return null==e&&(e=h),e+".$$def"})).$join(" || "),"$find_block_super("+i.$scope().$self()+", "+a+", ("+s+" || "+n+"), "+i.$defined_check_param()+", "+i.$implicit_arguments_param()+")"})),$(_,"$compile_method_body",(function(){var e=this;return e.$push(", "),o(e.$scope()["$def?"]())?e.$push(e.$super_method_invocation()):o(e.$scope()["$iter?"]())?e.$push(e.$super_block_invocation()):e.$raise("super must be called from method body or block")})),$(_,"$compile_method_name",(function(){var e,t,r=this,n=h;return o(r.$scope()["$def?"]())?r.$push(", '"+r.$method_id()+"'"):o(r.$scope()["$iter?"]())?(t=r.$scope().$super_chain(),null==(e=c(t))[0]?h:e[0],null==e[1]?h:e[1],n=null==e[2]?h:e[2],r.$push(", "+n)):h}))}(b[0],v("CallNode")),function(e,t){var n=r(e,t,"DefinedSuperNode");n.$handle("defined_super"),$(n,"$allow_stubs",u("false")),$(n,"$defined_check_param",u("true")),$(n,"$compile",(function(){var e=this;return e.$compile_receiver(),e.$compile_method_body(),e.$wrap("((",') != null ? "super" : nil)')}))}(b[0],v("BaseSuperNode")),function(e,t){var l=r(e,t,"SuperNode");l.$handle("super"),$(l,"$initialize",(function e(t){var r,l=e.$$p||h,$=this;return e.$$p=null,r=n(arguments),a($,s($,"initialize",e,!1,!0),"initialize",i(r),l),o($.$scope()["$def?"]())?$.$scope()["$uses_block!"]():h}),-1),$(l,"$compile",(function(){return this.$compile_using_send()}))}(b[0],v("BaseSuperNode")),function(t,c,d){var f=r(t,c,"ZsuperNode"),b=[f].concat(d),v=e.$r(b);return f.$handle("zsuper"),$(f,"$implicit_arguments_param",u("true")),$(f,"$initialize",(function e(t){var r,l=e.$$p||h,$=this,u=h;return e.$$p=null,r=n(arguments),a($,s($,"initialize",e,!1,!0),"initialize",i(r),l),_($.$iter().$type(),"iter")?h:($.$scope()["$uses_block!"](),$.iter=$.$s("js_tmp",o(u=$.$scope().$block_name())?u:"$yield"))}),-1),$(f,"$compile",(function(){var e=this,t=h,r=h;return o(e.$def_scope())&&(t=e.$implicit_arglist(),o(e.$block_name())&&p(e.$iter())&&(r=e.$s("block_pass",e.$s("lvar",e.$block_name())),t["$<<"](r)),e.arglist=l(e,"s",["arglist"].concat(i(t)))),e.$compile_using_send()})),$(f,"$implicit_arglist",(function(){var e=this,t=h,r=h;return t=[],r=[],l(e.$def_scope().$original_args().$children(),"each",[],(function e(n){var a,s=null==e.$$s?this:e.$$s,i=h,l=h;switch(null==n&&(n=h),a=n.$children()["$[]"](0),n.$type().valueOf()){case"arg":case"optarg":return i=s.$s("lvar",a),t["$<<"](i);case"restarg":return i=o(a)?s.$s("lvar",a):s.$s("js_tmp","$rest_arg"),t["$<<"](s.$s("splat",i));case"kwarg":case"kwoptarg":return l=n.$meta()["$[]"]("arg_name"),r["$<<"](s.$s("pair",s.$s("sym",l),s.$s("lvar",a)));case"kwrestarg":return i=o(a)?s.$s("lvar",a):s.$s("js_tmp","$kw_rest_arg"),r["$<<"](s.$s("kwsplat",i));default:return h}}),{$$s:e}),o(r["$empty?"]())||t["$<<"](l(e,"s",["hash"].concat(i(r)))),t})),$(f,"$block_name",(function(){var e,t=this;return m(g(g(v("Opal"),"Nodes"),"IterNode"),e=t.$def_scope())||m(g(g(v("Opal"),"Nodes"),"DefNode"),e)?t.$def_scope().$block_name():t.$raise("Don't know what to do with super in the scope "+t.$def_scope())}))}(b[0],v("SuperNode"),b)}(b[0],b)}(f[0],f)},Opal.modules.json=function(e){var t=e.module,r=e.klass,n=e.send,a=e.Object,s=e.eqeqeq,i=e.defs,o=e.truthy,l=e.def,$=e.return_val,u=[],c=e.nil,_=e.$$$;return e.add_stubs("raise,new,push,[]=,[],create_id,json_create,const_get,attr_accessor,create_id=,===,parse,generate,from_object,merge,to_json,responds_to?,to_io,write,to_s,to_a,strftime"),function(l,$){var u,p=t(l,"JSON"),m=[p].concat($),d=e.$r(m);r(m[0],d("StandardError"),"JSONError"),r(m[0],d("JSONError"),"ParserError");var f=e.hasOwnProperty;function h(e){try{return JSON.parse(e)}catch(e){p.$raise(_(d("JSON"),"ParserError"),e.message)}}function g(t,r){var s,i,o,l,$,_;switch(typeof t){case"string":case"number":return t;case"boolean":return!!t;case"undefined":return c;case"object":if(!t)return c;if(t.$$is_array){for(i=e.hash_get(r,"array_class").$new(),l=0,$=t.length;l<$;l++)i.$push(g(t[l],r));return i}for(_ in o=e.hash_get(r,"object_class").$new(),t)f.call(t,_)&&(u=[_,g(t[_],r)],n(o,"[]=",u));return e.hash_get(r,"parse")||(s=o["$[]"](d("JSON").$create_id()))==c?o:a.$const_get(s).$json_create(o)}}(function(e,t){e.$attr_accessor("create_id")})(e.get_singleton_class(p)),p["$create_id="]("json_class"),i(p,"$[]",(function(e,t){return null==t&&(t=new Map),s(d("String"),e)?this.$parse(e,t):this.$generate(e,t)}),-2),i(p,"$parse",(function(e,t){return null==t&&(t=new Map),this.$from_object(h(e),t.$merge(new Map([["parse",!0]])))}),-2),i(p,"$parse!",(function(e,t){return null==t&&(t=new Map),this.$parse(e,t)}),-2),i(p,"$load",(function(e,t){return null==t&&(t=new Map),this.$from_object(h(e),t)}),-2),i(p,"$from_object",(function(e,t){return null==t&&(t=new Map),o(t["$[]"]("object_class"))||t["$[]="]("object_class",d("Hash")),o(t["$[]"]("array_class"))||t["$[]="]("array_class",d("Array")),g(e,t)}),-2),i(p,"$generate",(function(e,t){return null==t&&(t=new Map),e.$to_json(t)}),-2),i(p,"$dump",(function(e,t,r){var n;return null==t&&(t=c),null==r&&(r=c),n=this.$generate(e),o(t)?(o(t["$responds_to?"]("to_io"))&&(t=t.$to_io()),t.$write(n),t):n}),-2)}(u[0],u),function(e,t){var n=r(e,null,"Object");l(n,"$to_json",(function(){return this.$to_s().$to_json()}))}(u[0]),function(e){var r=t(e,"Enumerable");l(r,"$to_json",(function(){return this.$to_a().$to_json()}))}(u[0]),function(e,t){var n=r(e,null,"Array");l(n,"$to_json",(function(){for(var e=[],t=0,r=this.length;t<r;t++)e.push(this[t].$to_json());return"["+e.join(",")+"]"}))}(u[0]),function(e,t){var n=r(e,null,"Boolean");l(n,"$to_json",(function(){return 1==this?"true":"false"}))}(u[0]),function(t,n){var a=r(t,null,"Hash");l(a,"$to_json",(function(){var t=[];return e.hash_each(this,!1,(function(e,r){return t.push(e.$to_s().$to_json()+":"+r.$to_json()),[!1,!1]})),"{"+t.join(",")+"}"}))}(u[0]),function(e,t){var n=r(e,null,"NilClass");l(n,"$to_json",$("null"))}(u[0]),function(e,t){var n=r(e,null,"Numeric");l(n,"$to_json",(function(){return this.toString()}))}(u[0]),function(e,t){var n=r(e,null,"String");l(n,"$to_json",(function(){return JSON.stringify(this)}))}(u[0]),function(e,t){var n=r(e,null,"Time");l(n,"$to_json",(function(){return this.$strftime("%FT%T%z").$to_json()}))}(u[0]),function(e,t){var n=r(e,null,"Date");return l(n,"$to_json",(function(){return this.$to_s().$to_json()})),l(n,"$as_json",(function(){return this.$to_s()}))}(u[0])},Opal.modules["opal/version"]=function(e){var t=e.module,r=e.const_set,n=[];e.nil;return function(e,n){var a=[t(e,"Opal")].concat(n);return r(a[0],"VERSION","2.0.0dev")}(n[0],n)},Opal.modules["opal/nodes/top"]=function(e){var t=e.module,r=e.klass,n=e.truthy,a=e.eqeq,s=e.send,i=e.def,o=e.not,l=e.top,$=[],u=e.nil,c=e.$$$;return e.add_stubs("require,handle,children,top_scope=,compiler,[],meta,sexp,dynamic_cache_result=,push,version_comment,eof_content,helper,==,body,s,eval?,esm?,requirable?,unshift,definition,in_scope,use_strict?,line,in_closure,|,stmt,stmts,is_a?,add_temp,add_used_helpers,to_vars,scope,compile_method_stubs,compile_irb_vars,compile_end_construct,opening,closing,enable_file_source_embed?,add_file_source_embed,inspect,module_name,file,!,no_export?,await_encountered,load?,returns,irb?,reverse_each,to_a,helpers,prepend_scope_temp,method_missing?,method_calls,join,map,to_proc,empty?,source,to_json"),l.$require("pathname"),l.$require("json"),l.$require("opal/version"),l.$require("opal/nodes/scope"),function(l,$){var _=[t(l,"Opal")].concat($);return function(l,$){var _=[t(l,"Nodes")].concat($),p=e.$r(_);return function(t,l,$){var _=r(t,l,"TopNode"),p=[_].concat($),m=e.$r(p);return _.$handle("top"),_.$children("body"),i(_,"$compile",(function(){var e=this;return e.$compiler()["$top_scope="](e),n(e.$sexp().$meta()["$[]"]("dynamic_cache_result"))&&e.$compiler()["$dynamic_cache_result="](!0),e.$push(e.$version_comment()),n(e.$compiler().$eof_content())&&e.$helper("return_val"),a(e.$body(),e.$s("nil"))?n(e.$compiler()["$requirable?"]())||n(e.$compiler()["$esm?"]())||n(e.$compiler()["$eval?"]())?(e.$unshift("Opal.return_val(Opal.nil); "),e.$definition()):e.$unshift("Opal.nil; "):(s(e,"in_scope",[],(function e(){var t=null==e.$$s?this:e.$$s,r=u;return null==t.define_nesting&&(t.define_nesting=u),null==t.define_self&&(t.define_self=u),null==t.define_relative_access&&(t.define_relative_access=u),null==t.define_absolute_const&&(t.define_absolute_const=u),n(t.$compiler()["$use_strict?"]())&&t.$line('"use strict";'),r=s(t,"in_closure",[c(m("Closure"),"JS_FUNCTION")["$|"](c(m("Closure"),"TOP"))],(function e(){var t=null==e.$$s?this:e.$$s;return t.$stmt(t.$stmts())}),{$$s:t}),n(r["$is_a?"](m("Array")))||(r=[r]),n(t.$compiler()["$eval?"]())?n(t.define_nesting)&&t.$add_temp("$nesting = self.$$is_a_module ? [self] : [self.$$class]"):(n(t.define_self)&&t.$add_temp("self = Opal.top"),n(t.define_nesting)&&t.$add_temp("$nesting = []")),n(t.define_relative_access)&&t.$add_temp("$$ = Opal.$r($nesting)"),t.$add_temp("nil = Opal.nil"),n(t.define_absolute_const)&&t.$add_temp("$$$ = Opal.$$$"),t.$add_used_helpers(),t.$line(t.$scope().$to_vars()),t.$compile_method_stubs(),t.$compile_irb_vars(),t.$compile_end_construct(),t.$line(r)}),{$$s:e}),e.$opening(),e.$definition(),e.$closing()),n(e.$compiler()["$enable_file_source_embed?"]())?e.$add_file_source_embed():u})),i(_,"$module_name",(function(){return c(m("Opal"),"Compiler").$module_name(this.$compiler().$file()).$inspect()})),i(_,"$definition",(function(){var e=this;return n(e.$compiler()["$requirable?"]())?e.$unshift("Opal.modules["+e.$module_name()+"] = "):n(e.$compiler()["$esm?"]())&&o(e.$compiler()["$no_export?"]())?e.$unshift("export default "):u})),i(_,"$opening",(function(){var e=this,t=u;return n(e.$await_encountered())&&(t="async "),n(e.$compiler()["$requirable?"]())?e.$unshift(t+"function(Opal) {"):n(e.$compiler()["$eval?"]())?e.$unshift("("+t+"function(Opal, self) {"):e.$unshift("Opal.queue("+t+"function(Opal) {")})),i(_,"$closing",(function(){var e=this;return n(e.$compiler()["$requirable?"]())?(e.$line("};\n"),n(e.$compiler()["$load?"]())?e.$line("Opal.load_normalized("+e.$module_name()+");"):u):n(e.$compiler()["$eval?"]())?e.$line("})(Opal, self);"):e.$line("});\n")})),i(_,"$stmts",(function(){return this.$compiler().$returns(this.$body())})),i(_,"$absolute_const",(function(){return this.define_absolute_const=!0,"$$$"})),i(_,"$compile_irb_vars",(function(){return n(this.$compiler()["$irb?"]())?this.$line("if (!Opal.irb_vars) { Opal.irb_vars = {}; }"):u})),i(_,"$add_used_helpers",(function(){return s(this.$compiler().$helpers().$to_a(),"reverse_each",[],(function e(t){return null==t&&(t=u),(null==e.$$s?this:e.$$s).$prepend_scope_temp("$"+t+" = Opal."+t)}),{$$s:this})})),i(_,"$compile_method_stubs",(function(){var e=this,t=u,r=u;return n(e.$compiler()["$method_missing?"]())?(t=e.$compiler().$method_calls(),r=s(t.$to_a(),"map",[],"to_s".$to_proc()).$join(","),n(r["$empty?"]())?u:e.$line("Opal.add_stubs('"+r+"');")):u})),i(_,"$compile_end_construct",(function(){var e=this,t=u;return n(t=e.$compiler().$eof_content())?(e.$line("var $__END__ = Opal.Object.$new();"),e.$line("$__END__.$read = $return_val("+t.$inspect()+");")):u})),i(_,"$version_comment",(function(){return"/* Generated by Opal "+c(m("Opal"),"VERSION")+" */"})),i(_,"$add_file_source_embed",(function(){var e=this,t=u,r=u;return t=e.$compiler().$file(),r=e.$compiler().$source(),e.$unshift("Opal.file_sources["+t.$to_json()+"] = "+r.$to_json()+";\n")}))}(_[0],p("ScopeNode"),_)}(_[0],_)}($[0],$)},Opal.modules["opal/nodes/while"]=function(e){var t=e.module,r=e.klass,n=e.truthy,a=e.send,s=e.def,i=e.return_val,o=e.top,l=[],$=e.nil,u=e.$$$;return e.add_stubs("require,handle,children,js_truthy,test,uses_redo?,new_temp,scope,in_while,compiler,wrap_in_closure?,[]=,while_loop,in_closure,|,line,indent,stmt,body,compile_with_redo,compile_without_redo,queue_temp,await_encountered,wrap,private,compile_while,unshift,while_open,while_close,[],meta,expr?,recv?"),o.$require("opal/nodes/base"),function(o,l){var c=[t(o,"Opal")].concat(l);return function(o,l){var c=[t(o,"Nodes")].concat(l),_=e.$r(c);return function(t,o,l){var c=r(t,o,"WhileNode"),_=[c].concat(l),p=e.$r(_),m=c.$$prototype;m.redo_var=m.sexp=$,c.$handle("while"),c.$children("test","body"),s(c,"$compile",(function(){var e,t=this;return e=t.$js_truthy(t.$test()),n(t["$uses_redo?"]())&&(t.redo_var=t.$scope().$new_temp()),a(t.$compiler(),"in_while",[],(function t(){var r=null==t.$$s?this:t.$$s;return null==r.redo_var&&(r.redo_var=$),n(r["$wrap_in_closure?"]())&&r.$while_loop()["$[]="]("closure",!0),r.$while_loop()["$[]="]("redo_var",r.redo_var),a(r,"in_closure",[u(p("Closure"),"LOOP")["$|"](u(p("Closure"),"JS_LOOP"))["$|"](n(r["$wrap_in_closure?"]())?u(p("Closure"),"JS_FUNCTION"):0)],(function t(){var r=null==t.$$s?this:t.$$s;return a(r,"in_closure",[u(p("Closure"),"LOOP_INSIDE")["$|"](u(p("Closure"),"JS_LOOP_INSIDE"))],(function e(){var t=null==e.$$s?this:e.$$s;return t.$line(a(t,"indent",[],(function e(){var t=null==e.$$s?this:e.$$s;return t.$stmt(t.$body())}),{$$s:t}))}),{$$s:r}),n(r["$uses_redo?"]())?r.$compile_with_redo(e):r.$compile_without_redo(e)}),{$$s:r})}),{$$s:t}),n(t["$uses_redo?"]())&&t.$scope().$queue_temp(t.redo_var),n(t["$wrap_in_closure?"]())?n(t.$scope().$await_encountered())?t.$wrap("(await (async function() {","; return nil; })())"):t.$wrap("(function() {","; return nil; })()"):$})),c.$private(),s(c,"$compile_with_redo",(function(e){return this.$compile_while(e,this.redo_var+" = false;")})),s(c,"$compile_without_redo",(function(e){return this.$compile_while(e)})),s(c,"$compile_while",(function(e,t){var r=this;return null==t&&(t=$),n(t)&&r.$unshift(t),r.$unshift(r.$while_open(),e,r.$while_close()),n(t)&&r.$unshift(t),r.$line("}")}),-2),s(c,"$while_open",(function(){var e=$;return n(this["$uses_redo?"]())&&(e=this.redo_var+" || "),"while ("+e})),s(c,"$while_close",i(") {")),s(c,"$uses_redo?",(function(){return this.sexp.$meta()["$[]"]("has_redo")})),s(c,"$wrap_in_closure?",(function(){var e;return n(e=this["$expr?"]())?e:this["$recv?"]()}))}(c[0],_("Base"),c),function(e,t){var a=r(e,t,"UntilNode");a.$$prototype.redo_var=$,a.$handle("until"),a.$private(),s(a,"$while_open",(function(){var e=$;return n(this["$uses_redo?"]())&&(e=this.redo_var+" || "),"while ("+e+"!("})),s(a,"$while_close",i(")) {"))}(c[0],_("WhileNode")),function(e,t){var a=r(e,t,"WhilePostNode");a.$handle("while_post"),a.$private(),s(a,"$compile_while",(function(e,t){var r=this;return null==t&&(t=$),n(t)&&r.$unshift(t),r.$unshift("do {"),r.$line("} ",r.$while_open(),e,r.$while_close())}),-2),s(a,"$while_close",i(");"))}(c[0],_("WhileNode")),function(e,t){var a=r(e,t,"UntilPostNode");return a.$$prototype.redo_var=$,a.$handle("until_post"),a.$private(),s(a,"$while_open",(function(){var e=$;return n(this["$uses_redo?"]())&&(e=this.redo_var+" || "),"while ("+e+"!("})),s(a,"$while_close",i("));"))}(c[0],_("WhilePostNode"))}(c[0],c)}(l[0],l)},Opal.modules["opal/nodes/hash"]=function(e){var t=e.module,r=e.klass,n=e.slice,a=e.send2,s=e.find_super,i=e.to_a,o=e.send,l=e.def,$=e.truthy,u=e.eqeq,c=e.to_ary,_=e.top,p=[],m=e.nil;return e.add_stubs("require,handle,attr_accessor,each,children,type,<<,[],all?,keys,include?,has_kwsplat,compile_merge,compile_hash,==,empty?,expr,s,each_with_index,push,inspect,to_s,simple_keys?,wrap,helper,value"),_.$require("opal/nodes/base"),function(_,p){var d=[t(_,"Opal")].concat(p);return function(_,p){var d=[t(_,"Nodes")].concat(p),f=e.$r(d);return function(e,t){var _=r(e,t,"HashNode");_.$handle("hash"),_.$attr_accessor("has_kwsplat","keys","values"),l(_,"$initialize",(function e(t){var r,l=e.$$p||m,$=this;return e.$$p=null,r=n(arguments),a($,s($,"initialize",e,!1,!0),"initialize",i(r),l),$.has_kwsplat=!1,$.keys=[],$.values=[],o($.$children(),"each",[],(function e(t){var r=null==e.$$s?this:e.$$s;switch(null==r.keys&&(r.keys=m),null==r.values&&(r.values=m),null==t&&(t=m),t.$type().valueOf()){case"kwsplat":return r.has_kwsplat=!0;case"pair":return r.keys["$<<"](t.$children()["$[]"](0)),r.values["$<<"](t.$children()["$[]"](1));default:return m}}),{$$s:$})}),-1),l(_,"$simple_keys?",(function(){return o(this.$keys(),"all?",[],(function(e){return null==e&&(e=m),["sym","str","int"]["$include?"](e.$type())}))})),l(_,"$compile",(function(){var e=this;return $(e.$has_kwsplat())?e.$compile_merge():e.$compile_hash()})),l(_,"$compile_merge",(function(){var e,t=this,r=m,n=m;return r=(e=[[],[]])[0],n=e[1],o(t.$children(),"each",[],(function e(t){var a=null==e.$$s?this:e.$$s;return null==t&&(t=m),u(t.$type(),"kwsplat")?($(n["$empty?"]())||r["$<<"](a.$expr(o(a,"s",["hash"].concat(i(n))))),r["$<<"](a.$expr(t)),n=[]):n["$<<"](t)}),{$$s:t}),$(n["$empty?"]())||r["$<<"](t.$expr(o(t,"s",["hash"].concat(i(n))))),o(r,"each_with_index",[],(function e(t,r){var n=null==e.$$s?this:e.$$s;return null==t&&(t=m),null==r&&(r=m),u(r,0)?n.$push(t):n.$push(".$merge(",t,")")}),{$$s:t})})),l(_,"$compile_hash",(function(){var e=this;return o(e.$children(),"each_with_index",[],(function e(t,r){var n,a,s,i=null==e.$$s?this:e.$$s,o=m;return null==t&&(t=m),null==r&&(r=m),a=t.$children(),o=null==(n=c(a))[0]?m:n[0],s=null==n[1]?m:n[1],u(r,0)||i.$push(", "),$(["sym","str"]["$include?"](o.$type()))?i.$push("["+o.$children()["$[]"](0).$to_s().$inspect(),", ",i.$expr(s),"]"):i.$push("[",i.$expr(o),", ",i.$expr(s),"]")}),{$$s:e}),$(e.$keys()["$empty?"]())?e.$push("(new Map())"):$(e["$simple_keys?"]())?e.$wrap("(new Map([","]))"):(e.$helper("hash_rehash"),e.$wrap("$hash_rehash(new Map([","]))"))}))}(d[0],f("Base")),function(e,t){var n=r(e,t,"KwSplatNode");return n.$handle("kwsplat"),n.$children("value"),l(n,"$compile",(function(){var e=this;return e.$push("Opal.to_hash(",e.$expr(e.$value()),")")}))}(d[0],f("Base"))}(d[0],d)}(p[0],p)},Opal.modules["opal/nodes/array"]=function(e){var t=e.module,r=e.klass,n=e.truthy,a=e.send,s=e.def,i=e.top,o=[],l=e.nil;return e.add_stubs("require,handle,empty?,children,push,each,==,type,expr,<<,fragment"),i.$require("opal/nodes/base"),function(i,o){var $=[t(i,"Opal")].concat(o);return function(i,o){var $=[t(i,"Nodes")].concat(o),u=e.$r($);return function(e,t){var i=r(e,t,"ArrayNode");return i.$handle("array"),s(i,"$compile",(function(){var e,t=this,r=l,s=l,i=l;return n(t.$children()["$empty?"]())?t.$push("[]"):(r=(e=[[],[]])[0],s=e[1],a(t.$children(),"each",[],(function e(t){var a,i,o=null==e.$$s?this:e.$$s;return null==t&&(t=l),a=t.$type()["$=="]("splat"),i=o.$expr(t),n(a)?(n(s["$empty?"]())?n(r["$empty?"]())?r["$<<"](o.$fragment("[].concat("))["$<<"](i)["$<<"](o.$fragment(")")):r["$<<"](o.$fragment(".concat("))["$<<"](i)["$<<"](o.$fragment(")")):(n(r["$empty?"]())?r["$<<"](o.$fragment("["))["$<<"](s)["$<<"](o.$fragment("]")):r["$<<"](o.$fragment(".concat(["))["$<<"](s)["$<<"](o.$fragment("])")),r["$<<"](o.$fragment(".concat("))["$<<"](i)["$<<"](o.$fragment(")"))),s=[]):(n(s["$empty?"]())||s["$<<"](o.$fragment(", ")),s["$<<"](i))}),{$$s:t}),n(s["$empty?"]())||(i=[t.$fragment("["),s,t.$fragment("]")],n(r["$empty?"]())?r=i:r.$push([t.$fragment(".concat("),i,t.$fragment(")")])),t.$push(r))}))}($[0],u("Base"))}($[0],$)}(o[0],o)},Opal.modules["opal/nodes/defined"]=function(e){var t=e.module,r=e.klass,n=e.eqeq,a=e.def,s=e.truthy,i=e.to_a,o=e.slice,l=e.send,$=e.range,u=e.top,c=[],_=e.nil;return e.add_stubs("require,handle,children,type,value,push,inspect,to_s,==,[],size,compile_defined_send,wrap,compile_defined_ivar,compile_defined_super,compile_defined_yield,compile_defined_xstr,compile_defined_const,compile_defined_cvar,compile_defined_gvar,compile_defined_back_ref,compile_defined_nth_ref,compile_defined_array,respond_to?,__send__,new_temp,scope,expr,wrap_with_try_catch,mid_to_jsid,compile_defined,compile_send_recv_doesnt_raise,self,each,s,uses_block!,block_name,find_parent_def,nil?,relative_access,absolute_const,top_scope,class_variable_owner,helper,include?,each_with_index"),u.$require("opal/nodes/base"),function(u,c){var p=[t(u,"Opal")].concat(c);return function(u,c){var p=[t(u,"Nodes")].concat(c),m=e.$r(p);return function(e,t){var u=r(e,t,"DefinedNode");return u.$handle("defined?"),u.$children("value"),a(u,"$compile",(function(){var e=this;switch(e.$value().$type().valueOf()){case"self":case"nil":case"false":case"true":return e.$push(e.$value().$type().$to_s().$inspect());case"lvasgn":case"ivasgn":case"gvasgn":case"cvasgn":case"casgn":case"op_asgn":case"or_asgn":case"and_asgn":return e.$push("'assignment'");case"lvar":return e.$push("'local-variable'");case"begin":return n(e.$value().$children().$size(),1)&&n(e.$value().$children()["$[]"](0).$type(),"masgn")?e.$push("'assignment'"):e.$push("'expression'");case"send":return e.$compile_defined_send(e.$value()),e.$wrap("("," ? 'method' : nil)");case"ivar":return e.$compile_defined_ivar(e.$value()),e.$wrap("("," ? 'instance-variable' : nil)");case"zsuper":case"super":return e.$compile_defined_super();case"yield":return e.$compile_defined_yield(),e.$wrap("("," ? 'yield' : nil)");case"xstr":return e.$compile_defined_xstr(e.$value());case"const":return e.$compile_defined_const(e.$value()),e.$wrap("("," ? 'constant' : nil)");case"cvar":return e.$compile_defined_cvar(e.$value()),e.$wrap("("," ? 'class variable' : nil)");case"gvar":return e.$compile_defined_gvar(e.$value()),e.$wrap("("," ? 'global-variable' : nil)");case"back_ref":return e.$compile_defined_back_ref(),e.$wrap("("," ? 'global-variable' : nil)");case"nth_ref":return e.$compile_defined_nth_ref(),e.$wrap("("," ? 'global-variable' : nil)");case"array":return e.$compile_defined_array(e.$value()),e.$wrap("("," ? 'expression' : nil)");default:return e.$push("'expression'")}})),a(u,"$compile_defined",(function(e){var t,r=this,n=_;return t=e.$type(),s(r["$respond_to?"]("compile_defined_"+t))?r.$__send__("compile_defined_"+t,e):(n=r.$scope().$new_temp(),r.$push("("+n+" = ",r.$expr(e),")"),n)})),a(u,"$wrap_with_try_catch",(function(e){var t,r=this;return t=r.$scope().$new_temp(),r.$push("("+t+" = (function() { try {"),r.$push(" return "+e+";"),r.$push("} catch ($err) {"),r.$push(" if (Opal.rescue($err, [Opal.Exception])) {"),r.$push(" try {"),r.$push(" return false;"),r.$push(" } finally { Opal.pop_exception($err); }"),r.$push(" } else { throw $err; }"),r.$push("}})())"),t})),a(u,"$compile_send_recv_doesnt_raise",(function(e){return this.$wrap_with_try_catch(e)})),a(u,"$compile_defined_send",(function(e){var t,r,a,$,u,c=this,p=_,m=_,d=_,f=_;return p=null==(t=[].concat(i(e)))[0]?_:t[0],m=null==t[1]?_:t[1],r=o(t,2),a=c.$mid_to_jsid(m.$to_s()),s(p)?(d=c.$compile_defined(p),c.$push(" && "),n(p.$type(),"send")&&(d=c.$compile_send_recv_doesnt_raise(d),c.$push(" && ")),f=c.$scope().$new_temp(),c.$push("("+f+" = ",d,", "+f+") && ")):f=c.$scope().$self(),$=c.$scope().$new_temp(),c.$push("("+$+" = "+f+") && "),u=c.$scope().$new_temp(),c.$push("((("+u+" = "+$+a+") && !"+u+".$$stub)"),c.$push(" || "+$+"['$respond_to_missing?']('"+m+"'))"),l(r,"each",[],(function e(t){var r=null==e.$$s?this:e.$$s;return null==t&&(t=_),"block_pass"===t.$type().valueOf()?_:(r.$push(" && "),r.$compile_defined(t))}),{$$s:c}),c.$wrap("(",")"),u+"()"})),a(u,"$compile_defined_ivar",(function(e){var t,r,n=this;return t=e.$children()["$[]"](0).$to_s()["$[]"]($(1,-1,!1)),r=n.$scope().$new_temp(),n.$push("("+r+" = "+n.$scope().$self()+"['"+t+"'], "+r+" != null && "+r+" !== nil)"),r})),a(u,"$compile_defined_super",(function(){var e=this;return e.$push(e.$expr(e.$s("defined_super")))})),a(u,"$compile_defined_yield",(function(){var e,t,r=this;return r.$scope()["$uses_block!"](),e=s(t=r.$scope().$block_name())?t:r.$scope().$find_parent_def().$block_name(),r.$push("("+e+" != null && "+e+" !== nil)"),e})),a(u,"$compile_defined_xstr",(function(e){return this.$push("(typeof(",this.$expr(e),') !== "undefined")')})),a(u,"$compile_defined_const",(function(e){var t,r,a,o=this,l=_,$=_;return l=null==(t=[].concat(i(e)))[0]?_:t[0],r=null==t[1]?_:t[1],a=o.$scope().$new_temp(),s(l["$nil?"]())?o.$push("("+a+" = "+o.$scope().$relative_access()+"('"+r+"', 'skip_raise'))"):n(l,o.$s("cbase"))?o.$push("("+a+" = "+o.$top_scope().$absolute_const()+"('::', '"+r+"', 'skip_raise'))"):($=o.$compile_defined(l),o.$push(" && ("+a+" = "+o.$top_scope().$absolute_const()+"("+$+", '"+r+"', 'skip_raise'))")),a})),a(u,"$compile_defined_cvar",(function(e){var t,r,n,a=this;return r=null==(t=[].concat(i(e)))[0]?_:t[0],null==t[1]?_:t[1],n=a.$scope().$new_temp(),a.$push("("+n+" = "+a.$class_variable_owner()+".$$cvars['"+r+"'], "+n+" != null)"),n})),a(u,"$compile_defined_gvar",(function(e){var t,r=this,n=_;return r.$helper("gvars"),n=e.$children()["$[]"](0).$to_s()["$[]"]($(1,-1,!1)),t=r.$scope().$new_temp(),s(["~","!"]["$include?"](n))?r.$push("("+t+" = ",r.$expr(e)," || true)"):r.$push("("+t+" = $gvars["+n.$inspect()+"], "+t+" != null)"),t})),a(u,"$compile_defined_back_ref",(function(){var e,t=this;return t.$helper("gvars"),e=t.$scope().$new_temp(),t.$push("("+e+" = $gvars['~'], "+e+" != null && "+e+" !== nil)"),e})),a(u,"$compile_defined_nth_ref",(function(){var e,t=this;return t.$helper("gvars"),e=t.$scope().$new_temp(),t.$push("("+e+" = $gvars['~'], "+e+" != null && "+e+" != nil)"),e})),a(u,"$compile_defined_array",(function(e){return l(e.$children(),"each_with_index",[],(function e(t,r){var a=null==e.$$s?this:e.$$s;return null==t&&(t=_),null==r&&(r=_),n(r,0)||a.$push(" && "),a.$compile_defined(t)}),{$$s:this})}))}(p[0],m("Base"))}(p[0],p)}(c[0],c)},Opal.modules["opal/nodes/masgn"]=function(e){var t=e.module,r=e.klass,n=e.const_set,a=e.send,s=e.eqeq,i=e.truthy,o=e.def,l=e.rb_ge,$=e.not,u=e.rb_plus,c=e.top,_=[],p=e.nil;return e.add_stubs("require,freeze,handle,children,with_temp,==,type,rhs,push,expr,any?,size,compile_masgn,lhs,helper,take_while,!=,drop,each_with_index,compile_assignment,empty?,shift,[],<<,dup,s,new_temp,scope,queue_temp,>=,!,updated,include?,+,last,raise"),c.$require("opal/nodes/base"),function(c,_){var m=[t(c,"Opal")].concat(_);return function(c,_){var m=[t(c,"Nodes")].concat(_),d=e.$r(m);return function(t,c,_){var m=r(t,c,"MassAssignNode"),d=[m].concat(_),f=e.$r(d);return n(d[0],"SIMPLE_ASSIGNMENT",["lvasgn","ivasgn","lvar","gvasgn","cdecl","casgn"].$freeze()),m.$handle("masgn"),m.$children("lhs","rhs"),o(m,"$compile",(function(){return a(this,"with_temp",[],(function e(t){var r=null==e.$$s?this:e.$$s,n=p;return null==t&&(t=p),s(r.$rhs().$type(),"array")?(r.$push(t+" = ",r.$expr(r.$rhs())),n=i(a(r.$rhs().$children(),"any?",[],(function(e){return null==e&&(e=p),e.$type()["$=="]("splat")})))?p:r.$rhs().$children().$size(),r.$compile_masgn(r.$lhs().$children(),t,n),r.$push(", "+t)):(r.$helper("to_ary"),a(r,"with_temp",[],(function e(r){var n=null==e.$$s?this:e.$$s;return null==r&&(r=p),n.$push(r+" = ",n.$expr(n.$rhs())),n.$push(", "+t+" = $to_ary("+r+")"),n.$compile_masgn(n.$lhs().$children(),t),n.$push(", "+r)}),{$$s:r}))}),{$$s:this})})),o(m,"$compile_masgn",(function(e,t,r){var n=this,o=p,l=p,$=p,u=p,c=p;return null==r&&(r=p),o=a(e,"take_while",[],(function(e){return null==e&&(e=p),e.$type()["$!="]("splat")})),l=e.$drop(o.$size()),a(o,"each_with_index",[],(function e(n,a){return null==n&&(n=p),null==a&&(a=p),(null==e.$$s?this:e.$$s).$compile_assignment(n,t,a,r)}),{$$s:n}),i(l["$empty?"]())?p:($=l.$shift(),i(l["$empty?"]())?i(u=$.$children()["$[]"](0))?(n.$helper("slice"),u=u.$dup()["$<<"](n.$s("js_tmp","$slice("+t+", "+o.$size()+")")),n.$push(", "),n.$push(n.$expr(u))):p:(c=n.$scope().$new_temp(),n.$push(", "+c+" = "+t+".length - "+l.$size()),n.$push(", "+c+" = ("+c+" < "+o.$size()+") ? "+o.$size()+" : "+c),i(u=$.$children()["$[]"](0))&&(n.$helper("slice"),u=u.$dup()["$<<"](n.$s("js_tmp","$slice("+t+", "+o.$size()+", "+c+")")),n.$push(", "),n.$push(n.$expr(u))),a(l,"each_with_index",[],(function e(r,n){var a=null==e.$$s?this:e.$$s;return null==r&&(r=p),null==n&&(n=p),s(n,0)?a.$compile_assignment(r,t,c):a.$compile_assignment(r,t,c+" + "+n)}),{$$s:n}),n.$scope().$queue_temp(c)))}),-3),o(m,"$compile_assignment",(function(e,t,r,n){var a=this,o=p,c=p,_=p;if(null==n&&(n=p),o=$(n)||i(l(r,n))?a.$s("js_tmp","("+t+"["+r+"] == null ? nil : "+t+"["+r+"])"):a.$s("js_tmp",t+"["+r+"]"),c=e.$updated(),i(f("SIMPLE_ASSIGNMENT")["$include?"](e.$type())))c=c.$updated(p,u(c.$children(),[o]));else if(s(e.$type(),"send"))c=c.$updated(p,u(c.$children(),[o]));else if(s(e.$type(),"attrasgn"))c.$last()["$<<"](o);else{if(s(e.$type(),"mlhs"))return a.$helper("to_ary"),_=a.$scope().$new_temp(),a.$push(", ("+_+" = $to_ary("+o.$children()["$[]"](0)+")"),a.$compile_masgn(e.$children(),_),a.$push(")"),a.$scope().$queue_temp(_),p;a.$raise("Bad child node in masgn LHS: "+e+". LHS: "+a.$lhs())}return a.$push(", "),a.$push(a.$expr(c))}),-4)}(m[0],d("Base"),m)}(m[0],m)}(_[0],_)},Opal.modules["opal/nodes/arglist"]=function(e){var t=e.module,r=e.klass,n=e.send,a=e.truthy,s=e.to_a,i=e.def,o=e.top,l=[],$=e.nil;return e.add_stubs("require,handle,each,children,==,type,expr,empty?,<<,fragment,push"),o.$require("opal/nodes/base"),function(o,l){var u=[t(o,"Opal")].concat(l);return function(o,l){var u=[t(o,"Nodes")].concat(l),c=e.$r(u);return function(e,t){var o=r(e,t,"ArglistNode");return o.$handle("arglist"),i(o,"$compile",(function(){var e,t=this,r=$,i=$,o=$;return r=(e=[[],[]])[0],i=e[1],n(t.$children(),"each",[],(function e(t){var n,s,o=null==e.$$s?this:e.$$s;return null==t&&(t=$),n=t.$type()["$=="]("splat"),s=o.$expr(t),a(n)?(a(i["$empty?"]())?a(r["$empty?"]())?r["$<<"](s):r["$<<"](o.$fragment(".concat("))["$<<"](s)["$<<"](o.$fragment(")")):(a(r["$empty?"]())?r["$<<"](o.$fragment("["))["$<<"](i)["$<<"](o.$fragment("]")):r["$<<"](o.$fragment(".concat(["))["$<<"](i)["$<<"](o.$fragment("])")),r["$<<"](o.$fragment(".concat("))["$<<"](s)["$<<"](o.$fragment(")"))),i=[]):(a(i["$empty?"]())||i["$<<"](o.$fragment(", ")),i["$<<"](s))}),{$$s:t}),a(i["$empty?"]())||(o=i,a(r["$empty?"]())?r=o:r["$<<"](t.$fragment(".concat(["))["$<<"](o)["$<<"](t.$fragment("])"))),n(t,"push",s(r))}))}(u[0],c("Base"))}(u[0],u)}(l[0],l)},Opal.modules["opal/nodes/x_string"]=function(e){var t=e.module,r=e.klass,n=e.truthy,a=e.def,s=e.send,i=e.to_a,o=e.defs,l=e.lambda,$=e.eqeq,u=e.annotate_regexp,c=e.not,_=e.range,p=[],m=e.nil;return e.add_stubs("handle,backtick_javascript_or_warn?,compiler,compile_javascript,compile_send,s,children,push,process,unpack_return,strip_empty_children,single_line?,compile_single_line,each,compile_child,recv?,wrap,==,size,none?,type,end_with?,source,expression,loc,dup,nil?,empty?,rstrip,any?,[],first,shift,last,pop,private,include?,self,scope,new,expr,raise,strip,=~,!,extract_last_value,expr?,warning,line"),function(p,d){var f=[t(p,"Opal")].concat(d);return function(p,d){var f=[t(p,"Nodes")].concat(d),h=e.$r(f);return function(t,p,d){var f=r(t,p,"XStringNode"),h=[f].concat(d),g=e.$r(h),b=f.$$prototype;return b.level=b.should_add_semicolon=b.returning=m,f.$handle("xstr"),a(f,"$compile",(function(){var e=this;return n(e.$compiler()["$backtick_javascript_or_warn?"]())?e.$compile_javascript():e.$compile_send()})),a(f,"$compile_send",(function(){var e,t=this;return e=t.$s("send",m,"`",s(t,"s",["dstr"].concat(i(t.$children())))),t.$push(t.$process(e,t.level))})),a(f,"$compile_javascript",(function(){var e,t,r=this;return r.should_add_semicolon=!1,e=r.$unpack_return(r.$children()),t=g("XStringNode").$strip_empty_children(e),n(g("XStringNode")["$single_line?"](t))?r.$compile_single_line(t):s(e,"each",[],(function e(t){return null==t&&(t=m),(null==e.$$s?this:e.$$s).$compile_child(t)}),{$$s:r}),n(r["$recv?"]())&&r.$wrap("(",")"),n(r.should_add_semicolon)?r.$push(";"):m})),o(f,"$single_line?",(function(e){var t;return n(t=e.$size()["$=="](1))?t:s(e,"none?",[],(function(e){var t;return null==e&&(e=m),n(t=e.$type()["$=="]("str"))?e.$loc().$expression().$source()["$end_with?"]("\n"):t}))})),o(f,"$strip_empty_children",(function(e){var t=m,r=m;for(e=e.$dup(),t=l((function(e){var t,r=m;return null==e&&(e=m),n(t=e["$nil?"]())?t:n(r=e.$type()["$=="]("str"))?e.$loc().$expression().$source().$rstrip()["$empty?"]():r}));n(n(r=e["$any?"]())?t["$[]"](e.$first()):r);)e.$shift();for(;n(n(r=e["$any?"]())?t["$[]"](e.$last()):r);)e.$pop();return e})),f.$private(),a(f,"$compile_child",(function(e){var t=this,r=m;switch(e.$type().valueOf()){case"str":return r=e.$loc().$expression().$source(),n(r["$include?"]("self"))&&t.$scope().$self(),t.$push(g("Fragment").$new(r,t.$scope(),e));case"begin":case"gvar":case"ivar":case"nil":return t.$push(t.$expr(e));default:return t.$raise("Unsupported xstr part: "+e.$type())}})),a(f,"$compile_single_line",(function(e){var t,r=this,a=m,i=m,o=m,l=m,_=m;return a=!1,i=e.$shift(),t=e["$empty?"](),i=n(o=i)?o:r.$s("nil"),$(i.$type(),"str")&&(a=i.$loc().$expression().$source().$strip()["$=~"](u(/^return\b/mu,null,""))),n(r.returning)&&c(a)&&r.$push("return "),l=n(o=e.$pop())?o:i,$(l.$type(),"str")&&(_=r.$extract_last_value(l)),n(t)||(r.should_add_semicolon=!1,r.$compile_child(i),s(e,"each",[],(function e(t){return null==t&&(t=m),(null==e.$$s?this:e.$$s).$compile_child(t)}),{$$s:r})),$(l.$type(),"str")?r.$push(g("Fragment").$new(_,r.$scope(),l)):r.$compile_child(l)})),a(f,"$extract_last_value",(function(e){var t=this,r=m;return r=e.$loc().$expression().$source().$rstrip(),n(r["$include?"]("self"))&&t.$scope().$self(),(n(t.returning)||n(t["$expr?"]()))&&n(r["$end_with?"](";"))&&(t.$compiler().$warning("Removed semicolon ending x-string expression, interpreted as unintentional",e.$line()),r=r["$[]"](_(0,-2,!1))),n(t.returning)&&(t.should_add_semicolon=!0),r})),a(f,"$unpack_return",(function(e){var t=m;return t=e.$first(),this.returning=!1,$(t.$type(),"js_return")&&(this.returning=!0,e=t.$children()),e}))}(f[0],h("Base"),f)}(f[0],f)}(p[0],p)},Opal.modules["opal/nodes/lambda"]=function(e){var t=e.module,r=e.klass,n=e.send,a=e.def,s=e.top,i=[];e.nil;return e.add_stubs("require,handle,children,helper,defines_lambda,scope,push,expr,iter"),s.$require("opal/nodes/call"),function(s,i){var o=[t(s,"Opal")].concat(i);return function(s,i){var o=[t(s,"Nodes")].concat(i),l=e.$r(o);return function(e,t){var s=r(e,t,"LambdaNode");return s.$handle("lambda"),s.$children("iter"),a(s,"$compile",(function(){var e=this;return e.$helper("lambda"),n(e.$scope(),"defines_lambda",[],(function e(){var t=null==e.$$s?this:e.$$s;return t.$push("$lambda(",t.$expr(t.$iter()),")")}),{$$s:e})}))}(o[0],l("Base"))}(o[0],o)}(i[0],i)},Opal.modules["opal/nodes"]=function(e){var t=e.top;e.nil;return e.add_stubs("require"),t.$require("opal/nodes/closure"),t.$require("opal/nodes/base"),t.$require("opal/nodes/literal"),t.$require("opal/nodes/variables"),t.$require("opal/nodes/constants"),t.$require("opal/nodes/call"),t.$require("opal/nodes/call_special"),t.$require("opal/nodes/module"),t.$require("opal/nodes/class"),t.$require("opal/nodes/singleton_class"),t.$require("opal/nodes/args"),t.$require("opal/nodes/args/arity_check"),t.$require("opal/nodes/iter"),t.$require("opal/nodes/def"),t.$require("opal/nodes/defs"),t.$require("opal/nodes/if"),t.$require("opal/nodes/logic"),t.$require("opal/nodes/definitions"),t.$require("opal/nodes/yield"),t.$require("opal/nodes/rescue"),t.$require("opal/nodes/super"),t.$require("opal/nodes/top"),t.$require("opal/nodes/while"),t.$require("opal/nodes/hash"),t.$require("opal/nodes/array"),t.$require("opal/nodes/defined"),t.$require("opal/nodes/masgn"),t.$require("opal/nodes/arglist"),t.$require("opal/nodes/x_string"),t.$require("opal/nodes/lambda")},Opal.modules["opal/eof_content"]=function(e){var t=e.module,r=e.klass,n=e.const_set,a=e.def,s=e.truthy,i=e.send,o=e.annotate_regexp,l=e.range,$=e.eqeq,u=e.to_ary,c=[],_=e.nil;return e.add_stubs("empty?,[],last_token_position,drop_while,lines,match?,!,start_with?,join,==,private,last,end_pos"),function(c,p){var m=[t(c,"Opal")].concat(p);return function(t,c,p){var m=r(t,null,"EofContent"),d=[m].concat(p),f=m.$$prototype;return f.tokens=f.source=_,n(d[0],"DATA_SEPARATOR","__END__\n"),a(m,"$initialize",(function(e,t){return this.tokens=e,this.source=t})),a(m,"$eof",(function(){var t=this,r=_,n=_;return s(t.tokens["$empty?"]())?_:(r=t.source["$[]"](e.Range.$new(t.$last_token_position(),-1,!1)),s(r)?(r=i(r.$lines(),"drop_while",[],(function(e){var t;return null==e&&(e=_),s(t=o(/^.*\r?\n?$/u,"\\A.*\\r?\\n?\\z","")["$match?"](e))?e["$start_with?"]("__END__")["$!"]():t})),s(o(/^__END__\r?\n?$/,"\\A__END__\\r?\\n?\\z")["$match?"](r["$[]"](0)))?(r=s(n=r["$[]"](l(1,-1,!1)))?n:[]).$join():$(r,["__END__"])?"":_):_)})),m.$private(),a(m,"$last_token_position",(function(){var e,t,r;return t=this.tokens.$last(),null==(e=u(t))[0]?_:e[0],r=null==e[1]?_:e[1],null==(e=u(t=r))[0]?_:e[0],(null==e[1]?_:e[1]).$end_pos()}))}(m[0],0,m)}(c[0],c)},Opal.modules["opal/errors"]=function(e){var t=e.module,r=e.klass,n=e.send2,a=e.find_super,s=e.def,i=e.truthy,o=e.defs,l=e.rb_plus,$=e.alias,u=e.send,c=[],_=e.nil,p=e.$$$;return e.add_stubs("attr_reader,attr_accessor,new,respond_to?,location=,location,diagnostic=,diagnostic,to_a,backtrace,unshift,to_s,set_backtrace,path,lineno,+,label,lineno=,line,label=,source_line,expression"),function(c,m){var d=t(c,"Opal"),f=[d].concat(m),h=e.$r(f);return r(f[0],h("StandardError"),"Error"),function(e,t){var i=r(e,t,"GemNotFound");i.$attr_reader("gem_name"),s(i,"$initialize",(function e(t){var r=this;return e.$$p=null,r.gem_name=t,n(r,a(r,"initialize",e,!1,!0),"initialize",["can't find gem "+t],null)}))}(f[0],h("Error")),function(e,t){r(e,t,"CompilationError").$attr_accessor("location")}(f[0],h("Error")),r(f[0],h("CompilationError"),"ParsingError"),r(f[0],h("ParsingError"),"RewritingError"),function(e,t){r(e,t,"SyntaxError").$attr_accessor("location")}(f[0],p("SyntaxError")),o(d,"$opal_location_from_error",(function(e){var t=_;return t=h("OpalBacktraceLocation").$new(),i(e["$respond_to?"]("location"))&&t["$location="](e.$location()),i(e["$respond_to?"]("diagnostic"))&&t["$diagnostic="](e.$diagnostic()),t})),o(d,"$add_opal_location_to_error",(function(e,t){var r=_;return(r=t.$backtrace().$to_a()).$unshift(e.$to_s()),t.$set_backtrace(r),t})),function(e,t){var n=r(e,null,"OpalBacktraceLocation");return n.$attr_accessor("path","lineno","label"),s(n,"$initialize",(function(e,t,r){var n,a=this;return null==e&&(e=_),null==t&&(t=_),null==r&&(r=_),n=[e,t,r],a.path=n[0],a.lineno=n[1],a.label=n[2],n}),-1),s(n,"$to_s",(function(){var e=this,t=_;return t=e.$path(),i(e.$lineno())&&(t=l(t,":"+e.$lineno())),t=l(t,":in "),t=i(e.$label())?l(t,"`"+e.$label()+"'"):l(t,"unknown")})),$(n,"line","lineno"),s(n,"$diagnostic=",(function(e){var t;return i(e)?(t=[e.$location()],u(this,"location=",t),t[t.length-1]):_})),s(n,"$location=",(function(e){var t,r=this;return i(e)?(r["$lineno="](e.$line()),i(e["$respond_to?"]("source_line"))?(t=[e.$source_line()],u(r,"label=",t),t[t.length-1]):i(e["$respond_to?"]("expression"))?(t=[e.$expression().$source_line()],u(r,"label=",t),t[t.length-1]):_):_}))}(f[0])}(c[0],c)},Opal.modules["opal/magic_comments"]=function(e){var t=e.module,r=e.const_set,n=e.annotate_regexp,a=e.truthy,s=e.send,i=e.rb_ge,o=e.eqeqeq,l=e.defs,$=[],u=e.$r($),c=e.nil;return e.add_stubs("freeze,line,loc,take,each,>=,any?,scan,text,[]=,to_sym,==="),function($,u){var _=t($,"MagicComments"),p=[_].concat(u),m=e.$r(p);return r(p[0],"MAGIC_COMMENT_RE",n(/^# *(\w+) *: *(\S+.*?) *$/u,"\\A# *(\\w+) *: *(\\S+.*?) *\\z","").$freeze()),r(p[0],"EMACS_MAGIC_COMMENT_RE",n(/^# *-\*- *(\w+) *: *(\S+.*?) *-\*- *$/u,"\\A# *-\\*- *(\\w+) *: *(\\S+.*?) *-\\*- *\\z","").$freeze()),l(_,"$parse",(function(e,t){var r,n=c;return r=new Map,a(e)&&(n=e.$loc().$line(),t=t.$take(n)),s(t,"each",[],(function(e){var t=c;return null==e&&(e=c),a(n)&&a(i(e.$loc().$line(),n))?c:a((t=e.$text().$scan(m("MAGIC_COMMENT_RE")))["$any?"]())||a((t=e.$text().$scan(m("EMACS_MAGIC_COMMENT_RE")))["$any?"]())?s(t,"each",[],(function(e,t){var n,a;return null==e&&(e=c),null==t&&(t=c),n=[e.$to_sym(),o("true",a=t)||!o("false",a)&&t],s(r,"[]=",n),n[n.length-1]})):c})),r}))}(u("Opal"),$)},Opal.modules["opal/source_map/map"]=function(e){var t=e.module,r=e.truthy,n=e.def,a=e.send,s=e.slice,i=e.to_ary,o=e.top,l=[],$=e.$r(l),u=e.nil,c=e.$$$;return e.add_stubs("require,map,to_h,to_json,each,[],delete,to_s,encode64,generated_code"),o.$require("base64"),o.$require("json"),function(o,l){var $=t(o,"Map"),_=[$].concat(l),p=e.$r(_);return n($,"$to_h",(function(){var e,t=this;return null==t.to_h&&(t.to_h=u),r(e=t.to_h)?e:t.$map()})),n($,"$to_json",(function(){var t=u;try{return(t=this.$to_h()).$to_json()}catch(r){if(!e.rescue(r,[c(p("Encoding"),"UndefinedConversionError")]))throw r;try{return a(t["$[]"]("sections"),"each",[],(function(r){null==r&&(r=u);try{return r.$to_json()}catch(n){if(!e.rescue(n,[c(p("Encoding"),"UndefinedConversionError")]))throw n;try{return t["$[]"]("sections").$delete(r)}finally{e.pop_exception(n)}}})),t.$to_json()}finally{e.pop_exception(r)}}})),n($,"$as_json",(function(e){return s(arguments),this.$to_h()}),-1),n($,"$to_s",(function(){return this.$to_h().$to_s()})),n($,"$to_data_uri_comment",(function(){return"//# sourceMappingURL=data:application/json;base64,"+p("Base64").$encode64(this.$to_json()).$delete("\n")})),n($,"$cache",(function(){var e,t=this;return null==t.to_h&&(t.to_h=u),t.to_h=r(e=t.to_h)?e:t.$map(),t})),n($,"$marshal_dump",(function(){return[this.$to_h(),this.$generated_code()]})),n($,"$marshal_load",(function(e){var t,r;return t=i(r=e),this.to_h=null==t[0]?u:t[0],this.generated_code=null==t[1]?u:t[1],r}))}(c($("Opal"),"SourceMap"),l)},Opal.modules["opal/source_map/file"]=function(e){var t=e.klass,r=e.send,n=e.def,a=e.truthy,s=e.ensure_kwargs,i=e.hash_get,o=e.eqeq,l=e.rb_minus,$=e.rb_lt,u=e.to_ary,c=e.rb_plus,_=e.not,p=[],m=e.$r(p),d=e.nil,f=e.$$$;return e.add_stubs("include,attr_reader,new,[]=,size,join,map,to_proc,file,==,encoding,source,encode,names,encode_mappings,relative_mappings,absolute_mappings,sort_by,to_a,-,line,<,column,source_map_name,[],to_s,to_int,each,fragments_by_line,skip_source_map?,is_a?,<<,segment_from_fragment,+,private,flat_map,fragments,code,match?,split,with_index,!,zero?,last"),function(p,m,h){var g=t(p,null,"File"),b=[g].concat(h),v=e.$r(b),y=g.$$prototype;return y.generated_code=y.fragments=y.names=y.names_map=y.relative_mappings=y.absolute_mappings=d,g.$include(f(f(v("Opal"),"SourceMap"),"Map")),g.$attr_reader("fragments"),g.$attr_reader("file"),g.$attr_reader("source"),n(g,"$initialize",(function(e,t,n,a){var s=this;return null==a&&(a=d),s.fragments=e,s.file=t,s.source=n,s.names_map=r(v("Hash"),"new",[],(function(e,t){var n;return null==e&&(e=d),null==t&&(t=d),n=[t,e.$size()],r(e,"[]=",n),n[n.length-1]})),s.generated_code=a,s.absolute_mappings=d}),-4),n(g,"$generated_code",(function(){var e,t=this;return t.generated_code=a(e=t.generated_code)?e:r(t.fragments,"map",[],"code".$to_proc()).$join()})),n(g,"$map",(function(e){var t,r=this;return e=s(e),null==(t=i(e,"source_root"))&&(t=""),new Map([["version",3],["sourceRoot",t],["sources",[r.$file()]],["sourcesContent",[o(r.$source().$encoding(),f(v("Encoding"),"UTF_8"))?r.$source():r.$source().$encode("UTF-8",new Map([["undef","replace"]]))]],["names",r.$names()],["mappings",f(f(v("Opal"),"SourceMap"),"VLQ").$encode_mappings(r.$relative_mappings())]])}),-1),n(g,"$names",(function(){var e,t=this;return t.names=a(e=t.names)?e:(t.$absolute_mappings(),r(r(t.names_map.$to_a(),"sort_by",[],(function(e,t){return null==e&&(e=d),null==t&&(t=d),t})),"map",[],(function(e,t){return null==e&&(e=d),null==t&&(t=d),e})))})),n(g,"$segment_from_fragment",(function(e,t){var n,s,i=this,o=d,u=d;return 0,o=l(a(u=e.$line())?u:0,1),a($(o,0))&&(o=0),s=a(u=e.$column())?u:0,a(e.$source_map_name())?[t,0,o,s,a(u=i.names_map["$[]"](e.$source_map_name().$to_s()))?u:(n=[e.$source_map_name().$to_s(),i.names_map.$size()],r(i.names_map,"[]=",n),n[n.length-1])]:[t,0,o,s]})),n(g,"$relative_mappings",(function(){var e,t=this,n=d,s=d;return t.relative_mappings=a(e=t.relative_mappings)?e:(n=[0,0,0,0,0],s=0,r(t.$absolute_mappings(),"map",[],(function(e){return null==e&&(e=d),n["$[]="](0,0),r(e,"map",[],(function(e){var t=d,r=d;return null==e&&(e=d),(t=[])["$[]="](0,l(e["$[]"](0),n["$[]"](0))),t["$[]="](1,l(e["$[]"](1),a(r=n["$[]"](1))?r:0)),t["$[]="](2,l(e["$[]"](2),a(r=n["$[]"](2))?r:0)),t["$[]="](3,l(e["$[]"](3),a(r=n["$[]"](3))?r:0)),a(e["$[]"](4))&&(t["$[]="](4,l(e["$[]"](4).$to_int(),(a(r=n["$[]"](4))?r:s).$to_int())),s=e["$[]"](4)),n=e,t}))})))})),n(g,"$absolute_mappings",(function(){var e,t=this,n=d;return t.absolute_mappings=a(e=t.absolute_mappings)?e:(n=[],r(t.$fragments_by_line(),"each",[],(function e(t){var s=d,i=d;return null==t&&(t=d),s=0,i=[],r(t,"each",[],(function e(t){var r,n=null==e.$$s?this:e.$$s,o=d,l=d;return null==t&&(t=d),o=null==(r=u(t))[0]?d:r[0],l=null==r[1]?d:r[1],a(l["$is_a?"](f(v("Opal"),"Fragment")))&&a(l["$skip_source_map?"]())||i["$<<"](n.$segment_from_fragment(l,s)),s=c(s,o.$size())}),{$$s:null==e.$$s?this:e.$$s,$$has_top_level_mlhs_arg:!0}),n["$<<"](i)}),{$$s:t}),n)})),g.$private(),n(g,"$fragments_by_line",(function(){var e=d;return e=[[]],r(this.$fragments(),"flat_map",[],(function(t){var n,s=d,i=d;return null==t&&(t=d),s=t.$code(),n=a(/\r/["$match?"](s))?/\r?\n/:"\n",i=s.$split(n,-1),r(i.$each(),"with_index",[],(function(r,n){var s;return null==r&&(r=d),null==n&&(n=d),s=[r,t],a(n["$zero?"]())&&_(r.$size()["$zero?"]())?e.$last()["$<<"](s):a(n["$zero?"]())&&a(r.$size()["$zero?"]())?d:a(r.$size()["$zero?"]())?e["$<<"]([]):e["$<<"]([s])}))})),e}))}(f(m("Opal"),"SourceMap"),0,p)},Opal.modules["opal/source_map/index"]=function(e){var t=e.klass,r=e.ensure_kwargs,n=e.hash_get,a=e.def,s=e.send,i=e.truthy,o=e.rb_plus,l=[],$=e.$r(l),u=e.nil,c=e.$$$;return e.add_stubs("include,attr_reader,map,to_h,generated_code,+,count,[],rindex,size"),function(l,$,_){var p=t(l,null,"Index"),m=[p].concat(_),d=e.$r(m);return p.$$prototype.source_maps=u,p.$include(c(c(d("Opal"),"SourceMap"),"Map")),p.$attr_reader("source_maps"),a(p,"$initialize",(function(e,t){var a;return t=r(t),null==(a=n(t,"join"))&&(a=u),this.source_maps=e,this.join=a}),-2),a(p,"$map",(function(){var t=u,r=u;return t=0,r=0,new Map([["version",3],["sections",s(this.source_maps,"map",[],(function n(a){var s,l,$=null==n.$$s?this:n.$$s,c=u,_=u;return null==$.join&&($.join=u),null==a&&(a=u),s=new Map([["offset",new Map([["line",t],["column",r]])],["map",a.$to_h()]]),c=a.$generated_code(),i($.join)&&(c=o(c,$.join)),l=c.$count("\n"),_=c["$[]"](e.Range.$new(o(c.$rindex("\n"),1),-1,!1)),t=o(t,l),r=o(r,_.$size()),s}),{$$s:this})]])}))}(c($("Opal"),"SourceMap"),0,l)},Opal.modules["opal/source_map/vlq"]=function(e){var t=e.module,r=e.const_set,n=e.rb_minus,a=e.send,s=e.range,i=e.truthy,o=e.rb_lt,l=e.rb_plus,$=e.rb_gt,u=e.thrower,c=e.defs,_=e.eqeq,p=[],m=e.$r(p),d=e.nil,f=e.$$$;return e.add_stubs("<<,-,split,inject,[]=,[],each,<,+,-@,loop,&,>>,>,|,join,any?,shift,raise,==,map,encode,each_with_index,decode"),function(p,m){var f=t(p,"VLQ"),h=[f].concat(m),g=e.$r(h);return r(h[0],"VLQ_BASE_SHIFT",5),r(h[0],"VLQ_BASE",1["$<<"](g("VLQ_BASE_SHIFT"))),r(h[0],"VLQ_BASE_MASK",n(g("VLQ_BASE"),1)),r(h[0],"VLQ_CONTINUATION_BIT",g("VLQ_BASE")),r(h[0],"BASE64_DIGITS","ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".$split("")),r(h[0],"BASE64_VALUES",a(s(0,64,!0),"inject",[new Map],(function(e,t){return null==e&&(e=d),null==t&&(t=d),e["$[]="](g("BASE64_DIGITS")["$[]"](t),t),e}))),c(f,"$encode",(function(e){var t=d;return t=[],a(e,"each",[],(function e(r){var n=null==e.$$s?this:e.$$s,s=d;return null==r&&(r=d),s=i(o(r,0))?l(r["$-@"]()["$<<"](1),1):r["$<<"](1),function(){try{var e=u("break");return a(n,"loop",[],(function r(){var n=d;if(n=s["$&"](g("VLQ_BASE_MASK")),s=s["$>>"](g("VLQ_BASE_SHIFT")),i($(s,0))&&(n=n["$|"](g("VLQ_CONTINUATION_BIT"))),t["$<<"](g("BASE64_DIGITS")["$[]"](n)),i($(s,0)))return d;e.$throw(d,r.$$is_lambda)}))}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}()}),{$$s:this}),t.$join()})),c(f,"$decode",(function(e){var t=d,r=d,n=d,a=d,s=d,o=d,$=d;for(t=[],r=e.$split("");i(r["$any?"]());){for(n=0,a=0,s=!0;i(s);)o=r.$shift(),i(o)||this.$raise(g("ArgumentError")),$=g("BASE64_VALUES")["$[]"](o),_($["$&"](g("VLQ_CONTINUATION_BIT")),0)&&(s=!1),$=$["$&"](g("VLQ_BASE_MASK")),n=l(n,$["$<<"](a)),a=l(a,g("VLQ_BASE_SHIFT"));t["$<<"](_(n["$&"](1),1)?n["$>>"](1)["$-@"]():n["$>>"](1))}return t})),c(f,"$encode_mappings",(function(e){return a(e,"map",[],(function e(t){return null==t&&(t=d),a(t,"map",[],(function e(t){return null==t&&(t=d),(null==e.$$s?this:e.$$s).$encode(t)}),{$$s:null==e.$$s?this:e.$$s}).$join(",")}),{$$s:this}).$join(";")})),c(f,"$decode_mappings",(function(e){var t=d;return t=[],a(e.$split(";"),"each_with_index",[],(function e(r,n){var s=null==e.$$s?this:e.$$s;return null==r&&(r=d),null==n&&(n=d),t["$[]="](n,[]),a(r.$split(","),"each",[],(function e(r){var a=null==e.$$s?this:e.$$s;return null==r&&(r=d),t["$[]"](n)["$<<"](a.$decode(r))}),{$$s:s})}),{$$s:this}),t}))}(f(m("Opal"),"SourceMap"),p)},Opal.modules["opal/source_map"]=function(e){var t,r=e.module,n=[];e.nil;return e.add_stubs("autoload"),t=n,function(e){var t=r(e,"SourceMap");return t.$autoload("Map","opal/source_map/map"),t.$autoload("File","opal/source_map/file"),t.$autoload("Index","opal/source_map/index"),t.$autoload("VLQ","opal/source_map/vlq")}([r(n[0],"Opal")].concat(t)[0])},Opal.modules["opal/compiler"]=function(e){var t=e.module,r=e.defs,n=e.klass,a=e.const_set,s=e.send,i=e.truthy,o=e.not,l=e.def,$=e.eqeqeq,u=e.Opal,c=e.to_ary,_=e.alias,p=e.regexp,m=e.rb_minus,d=e.return_ivar,f=e.slice,h=e.annotate_regexp,g=e.rb_plus,b=e.to_a,v=e.eqeq,y=e.top,x=[],w=e.nil,k=e.$$$;return e.add_stubs("require,compile,new,include,freeze,join,dirname,first,split,basename,to_s,cleanpath,Pathname,fetch,define_method,option_value,key?,[],!,include?,raise,inspect,[]=,compiler_option,===,backtick_javascript?,warning,attr_reader,attr_accessor,parse,re_raise_with_location,flatten,process,end_with?,code,last,<<,fragment,s,map,to_proc,file,source=,default_parser,tokenize,requirable?,eval?,tap,meta,location,children,associate_locations,eof,magic_comments,to_sym,strip,async_await,async_await_before_typecasting,async_await_set_to_regexp,to_a,gsub,escape,location=,opal_location_from_error,path=,label,label=,lines,-,to_i,line,message,set_backtrace,backtrace,add_opal_location_to_error,warn,empty?,+,start_with?,helpers,new_temp,queue_temp,push_while,pop_while,in_while?,nil?,scope,handlers,type,compile_to_fragments,error,returns,updated,backtick_javascript_or_warn?,==,uses_block!,block_name,find_parent_def,cache,source_map"),y.$require("corelib/string/unpack"),y.$require("set"),y.$require("opal/parser"),y.$require("opal/fragment"),y.$require("opal/nodes"),y.$require("opal/eof_content"),y.$require("opal/errors"),y.$require("opal/magic_comments"),y.$require("opal/nodes/closure"),y.$require("opal/source_map"),function(y,x){var U=t(y,"Opal"),E=[U].concat(x),M=e.$r(E);return r(U,"$compile",(function(e,t){return null==t&&(t=new Map),M("Compiler").$new(e,t).$compile()}),-2),function(t,y,x){var U=n(t,null,"Compiler"),E=[U].concat(x),M=e.$r(E),q=U.$$prototype;return q.option_values=q.options=q.magic_comments=q.backtick_javascript_warned=q.fragments=q.buffer=q.source=q.source_map=q.result=q.helpers=q.method_calls=q.async_await=q.unique=q.indent=q.scope=q.case_stmt=q.handlers=q.requires=q.required_trees=q.autoloads=w,U.$include(k(k(M("Nodes"),"Closure"),"CompilerSupport")),a(E[0],"INDENT"," "),a(E[0],"COMPARE",["<",">","<=",">="].$freeze()),r(U,"$module_name",(function(e){return e=M("File").$join(M("File").$dirname(e),M("File").$basename(e).$split(".").$first()),this.$Pathname(e).$cleanpath().$to_s()})),r(U,"$compiler_option",(function(e,t){var r;return null==t&&(t=new Map),r=t.$fetch("as",e),s(this,"define_method",[r],(function r(){return(null==r.$$s?this:r.$$s).$option_value(e,t)}),{$$s:this})}),-2),l(U,"$option_value",(function(e,t){var r,n,a,l=this,$=w,u=w;return i(l.option_values["$key?"](e))?l.option_values["$[]"](e):(n=t["$[]"]("default"),$=t["$[]"]("valid_values"),a=t["$[]"]("magic_comment"),u=l.options.$fetch(e,n),i(a)&&i(l.magic_comments["$key?"](e))&&(u=l.magic_comments.$fetch(e)),i($)&&o($["$include?"](u))&&l.$raise(M("ArgumentError"),"invalid value "+u.$inspect()+" for option "+e.$inspect()+" (valid values: "+$.$inspect()+")"),r=[e,u],s(l.option_values,"[]=",r),r[r.length-1])})),U.$compiler_option("file",new Map([["default","(file)"]])),U.$compiler_option("method_missing",new Map([["default",!0],["as","method_missing?"]])),U.$compiler_option("arity_check",new Map([["default",!1],["as","arity_check?"]])),U.$compiler_option("freezing",new Map([["default",!0],["as","freezing?"]])),U.$compiler_option("irb",new Map([["default",!1],["as","irb?"]])),U.$compiler_option("dynamic_require_severity",new Map([["default","ignore"],["valid_values",["error","warning","ignore"]]])),U.$compiler_option("requirable",new Map([["default",!1],["as","requirable?"]])),U.$compiler_option("load",new Map([["default",!1],["as","load?"]])),U.$compiler_option("esm",new Map([["default",!1],["as","esm?"]])),U.$compiler_option("no_export",new Map([["default",!1],["as","no_export?"]])),U.$compiler_option("inline_operators",new Map([["default",!0],["as","inline_operators?"]])),U.$compiler_option("eval",new Map([["default",!1],["as","eval?"]])),U.$compiler_option("enable_source_location",new Map([["default",!1],["as","enable_source_location?"]])),U.$compiler_option("enable_file_source_embed",new Map([["default",!1],["as","enable_file_source_embed?"]])),U.$compiler_option("use_strict",new Map([["default",!1],["as","use_strict?"],["magic_comment",!0]])),U.$compiler_option("parse_comments",new Map([["default",!1],["as","parse_comments?"]])),U.$compiler_option("backtick_javascript",new Map([["default",w],["as","backtick_javascript?"],["magic_comment",!0]])),l(U,"$backtick_javascript_or_warn?",(function(){var e,t=this,r=w;return!!$(!0,e=t["$backtick_javascript?"]())||($(w,e)?(t.backtick_javascript_warned=i(r=t.backtick_javascript_warned)?r:(t.$warning("Backtick operator usage interpreted as intent to embed JavaScript; this code will break in Opal 2.0; add a magic comment: `# backtick_javascript: true`"),!0),!0):!$(!1,e)&&w)})),U.$compiler_option("scope_variables",new Map([["default",[]]])),U.$compiler_option("await",new Map([["default",!1],["as","async_await"],["magic_comment",!0]])),U.$attr_reader("result"),U.$attr_reader("fragments"),U.$attr_accessor("scope"),U.$attr_accessor("top_scope"),U.$attr_reader("case_stmt"),U.$attr_reader("eof_content"),U.$attr_reader("comments"),U.$attr_reader("method_calls"),U.$attr_reader("magic_comments"),U.$attr_reader("source"),U.$attr_accessor("dynamic_cache_result"),l(U,"$initialize",(function(e,t){var r=this;return null==t&&(t=new Map),r.source=e,r.indent="",r.unique=0,r.options=t,r.comments=M("Hash").$new([]),r.case_stmt=w,r.method_calls=M("Set").$new(),r.option_values=new Map,r.magic_comments=new Map,r.dynamic_cache_result=!1}),-2),l(U,"$compile",(function(){var e=this;return e.$parse(),e.fragments=s(e,"re_raise_with_location",[],(function e(){var t=null==e.$$s?this:e.$$s;return null==t.sexp&&(t.sexp=w),t.$process(t.sexp).$flatten()}),{$$s:e}),i(e.fragments.$last().$code()["$end_with?"]("\n"))||e.fragments["$<<"](e.$fragment("\n",w,e.$s("newline"))),e.result=s(e.fragments,"map",[],"code".$to_proc()).$join("")})),l(U,"$parse",(function(){var e,t,r,n,a,o=this,l=w,$=w;return o.buffer=k(k(u,"Parser"),"SourceBuffer").$new(o.$file(),1),o.buffer["$source="](o.source),o.parser=k(M("Opal"),"Parser").$default_parser(),t=s(o,"re_raise_with_location",[],(function e(){var t=null==e.$$s?this:e.$$s;return null==t.parser&&(t.parser=w),null==t.buffer&&(t.buffer=w),t.parser.$tokenize(t.buffer)}),{$$s:o}),l=null==(e=c(t))[0]?w:e[0],r=null==e[1]?w:e[1],n=null==e[2]?w:e[2],a=i(o["$requirable?"]())?"require":i(o["$eval?"]())?"eval":"main",o.sexp=s(l,"tap",[],(function(e){var t;return null==e&&(e=w),t=["kind",a],s(e.$meta(),"[]=",t),t[t.length-1]})),i(l.$children().$first().$location())&&($=l.$children().$first()),o.comments=k(k(k("Parser"),"Source"),"Comment").$associate_locations($,r),o.magic_comments=M("MagicComments").$parse($,r),o.eof_content=M("EofContent").$new(n,o.source).$eof()})),l(U,"$source_map",(function(){var e,t=this;return i(e=t.source_map)?e:k(k(u,"SourceMap"),"File").$new(t.fragments,t.$file(),t.source,t.result)})),l(U,"$helpers",(function(){var e,t=this;return t.helpers=i(e=t.helpers)?e:M("Set").$new(s(t.$magic_comments()["$[]"]("helpers").$to_s().$split(","),"map",[],(function(e){return null==e&&(e=w),e.$strip().$to_sym()})))})),l(U,"$record_method_call",(function(e){return this.method_calls["$<<"](e)})),_(U,"async_await_before_typecasting","async_await"),l(U,"$async_await",(function(){var e,t=this,r=w,n=w;return i(null!=(e=t.async_await)&&e!==w?"instance-variable":w)?t.async_await:(r=t.$async_await_before_typecasting(),t.async_await=$(M("String"),n=r)?t.$async_await_set_to_regexp(s(r.$split(","),"map",[],(function(e){return null==e&&(e=w),e.$strip().$to_sym()}))):$(M("Array"),n)||$(M("Set"),n)?t.$async_await_set_to_regexp(s(r.$to_a(),"map",[],"to_sym".$to_proc())):$(M("Regexp"),n)||$(!0,n)||$(!1,n)?r:t.$raise("A value of await compiler option can be either a Set, an Array, a String or a Boolean."))})),l(U,"$async_await_set_to_regexp",(function(e){return e=(e=s(e,"map",[],(function(e){return null==e&&(e=w),M("Regexp").$escape(e.$to_s()).$gsub("\\*",".*?")}))).$join("|"),p(["^(",e,")$"])})),l(U,"$error",(function(e,t){var r=w;return null==t&&(t=w),(r=k(u,"SyntaxError").$new(e))["$location="](k(M("Opal"),"OpalBacktraceLocation").$new(this.$file(),t)),this.$raise(r)}),-2),l(U,"$re_raise_with_location",(function t(){var r=t.$$p||w,n=this,a=w,s=w,o=w;t.$$p=null;try{return e.yieldX(r,[])}catch(t){if(!e.rescue(t,[M("StandardError"),k(u,"SyntaxError")]))throw t;a=t;try{return(s=u.$opal_location_from_error(a))["$path="](n.$file()),i(s.$label())||s["$label="](n.source.$lines()["$[]"](m(s.$line().$to_i(),1)).$strip()),(o=k(u,"SyntaxError").$new(a.$message())).$set_backtrace(a.$backtrace()),u.$add_opal_location_to_error(s,o),n.$raise(o)}finally{e.pop_exception(t)}}})),l(U,"$warning",(function(e,t){return null==t&&(t=w),this.$warn("warning: "+e+" -- "+this.$file()+":"+t)}),-2),l(U,"$parser_indent",d("indent")),l(U,"$s",(function(e,t){var r;return r=f(arguments,1),k(k(u,"AST"),"Node").$new(e,r)}),-2),l(U,"$fragment",(function(e,t,r){return null==r&&(r=w),M("Fragment").$new(e,t,r)}),-3),l(U,"$unique_temp",(function(e){var t;return e=e.$to_s(),i(e)&&o(e["$empty?"]())&&(e=e.$to_s().$gsub("<=>","$lt_eq_gt").$gsub("===","$eq_eq_eq").$gsub("==","$eq_eq").$gsub("=~","$eq_tilde").$gsub("!~","$excl_tilde").$gsub("!=","$not_eq").$gsub("<=","$lt_eq").$gsub(">=","$gt_eq").$gsub("=","$eq").$gsub("?","$ques").$gsub("!","$excl").$gsub("/","$slash").$gsub("%","$percent").$gsub("+","$plus").$gsub("-","$minus").$gsub("<","$lt").$gsub(">","$gt").$gsub(h(/[^\w\$]/u,null,""),"$")),t=this.unique=g(this.unique,1),""+(i(e["$start_with?"]("$"))?w:"$")+e+"$"+t})),l(U,"$helper",(function(e){return this.$helpers()["$<<"](e)})),l(U,"$indent",(function t(){var r,n,a=t.$$p||w,s=this;return t.$$p=null,r=s.indent,s.indent=g(s.indent,M("INDENT")),s.space="\n"+s.indent,n=e.yieldX(a,[]),s.indent=r,s.space="\n"+s.indent,n})),l(U,"$with_temp",(function t(){var r,n,a=t.$$p||w;return t.$$p=null,r=this.scope.$new_temp(),n=e.yield1(a,r),this.scope.$queue_temp(r),n})),l(U,"$in_while",(function t(){var r,n=t.$$p||w,a=this;return t.$$p=null,n===w?w:(a.while_loop=a.scope.$push_while(),r=e.yieldX(n,[]),a.scope.$pop_while(),r)})),l(U,"$in_case",(function t(){var r,n=t.$$p||w,a=this;return t.$$p=null,n===w?w:(r=a.case_stmt,a.case_stmt=new Map,e.yieldX(n,[]),a.case_stmt=r)})),l(U,"$in_while?",(function(){return this.scope["$in_while?"]()})),l(U,"$process",(function(e,t){var r=this,n=w;return null==t&&(t="expr"),i(e["$nil?"]())?r.$fragment("",r.$scope()):i(n=r.$handlers()["$[]"](e.$type()))?n.$new(e,t,r).$compile_to_fragments():r.$error("Unsupported sexp: "+e.$type())}),-2),l(U,"$handlers",(function(){var e;return this.handlers=i(e=this.handlers)?e:k(k(M("Opal"),"Nodes"),"Base").$handlers()})),l(U,"$requires",(function(){var e;return this.requires=i(e=this.requires)?e:[]})),l(U,"$required_trees",(function(){var e;return this.required_trees=i(e=this.required_trees)?e:[]})),l(U,"$autoloads",(function(){var e;return this.autoloads=i(e=this.autoloads)?e:[]})),l(U,"$returns",(function(e){var t,r,n=this,a=w,o=w,l=w,$=w,u=w,c=w,_=w,p=w,m=w,d=w,h=w,g=w,y=w,x=w,k=w;if(!i(e))return n.$returns(n.$s("nil"));switch(e.$type().valueOf()){case"undef":return n.$returns(e.$updated("begin",[e,n.$s("nil")]));case"break":case"next":case"redo":case"retry":case"while":case"until":case"while_post":case"until_post":case"return":case"js_return":case"returnable_yield":return e;case"yield":return e.$updated("returnable_yield",w);case"when":return r=(t=[].concat(b(e))).length-1,a=f(t,0,r=r<0?0:r),o=null==t[r]?w:t[r],e.$updated(w,[].concat(b(a)).concat([n.$returns(o)]));case"rescue":return l=null==(t=[].concat(b(e)))[0]?w:t[0],r=t.length-1,$=f(t,1,r=r<1?1:r),u=null==t[r]?w:t[r],$=s($,"map",[],(function e(t){return null==t&&(t=w),(null==e.$$s?this:e.$$s).$returns(t)}),{$$s:n}),i(u)&&(u=n.$returns(u)),e.$updated(w,[n.$returns(l)].concat(b($)).concat([u]));case"resbody":return c=null==(t=[].concat(b(e)))[0]?w:t[0],_=null==t[1]?w:t[1],p=null==t[2]?w:t[2],e.$updated(w,[c,_,n.$returns(p)]);case"ensure":return m=null==(t=[].concat(b(e)))[0]?w:t[0],d=null==t[1]?w:t[1],(e=e.$updated(w,[n.$returns(m),d])).$updated("js_return",[e]);case"begin":case"kwbegin":return r=(t=[].concat(b(e))).length-1,h=f(t,0,r=r<0?0:r),g=null==t[r]?w:t[r],e.$updated(w,[].concat(b(h)).concat([n.$returns(g)]));case"xstr":return i(n["$backtick_javascript_or_warn?"]())?e.$updated(w,[s(n,"s",["js_return"].concat(b(e.$children())))]):e;case"if":return y=null==(t=[].concat(b(e)))[0]?w:t[0],x=null==t[1]?w:t[1],k=null==t[2]?w:t[2],s(e.$updated(w,[y,n.$returns(x),n.$returns(k)]),"tap",[],(function(e){var t;return null==e&&(e=w),t=["returning",!0],s(e.$meta(),"[]=",t),t[t.length-1]}));default:return v(e.$type(),"send")&&v(e.$children()["$[]"](1),"debugger")?e.$updated("begin",[e,n.$s("js_return",n.$s("nil"))]):e.$updated("js_return",[e])}})),l(U,"$handle_block_given_call",(function(e){var t=this,r=w;return t.scope["$uses_block!"](),i(t.scope.$block_name())?t.$fragment("("+t.scope.$block_name()+" !== nil)",t.$scope(),e):i(r=t.scope.$find_parent_def())&&i(r.$block_name())?t.$fragment("("+r.$block_name()+" !== nil)",r,e):t.$fragment("false",r,e)})),l(U,"$marshal_dump",(function(){var e,t=this;return[t.options,t.option_values,t.source_map=i(e=t.source_map)?e:t.$source_map().$cache(),t.magic_comments,t.result,t.required_trees,t.requires,t.autoloads]})),l(U,"$marshal_load",(function(e){var t,r,n=this;return t=c(r=e),n.options=null==t[0]?w:t[0],n.option_values=null==t[1]?w:t[1],n.source_map=null==t[2]?w:t[2],n.magic_comments=null==t[3]?w:t[3],n.result=null==t[4]?w:t[4],n.required_trees=null==t[5]?w:t[5],n.requires=null==t[6]?w:t[6],n.autoloads=null==t[7]?w:t[7],r}))}(E[0],0,E)}(x[0],x)},Opal.modules["opal/erb"]=function(e){var t=e.module,r=e.defs,n=e.klass,a=e.const_set,s=e.annotate_regexp,i=e.def,o=e.truthy,l=e.rb_plus,$=e.send,u=e.regexp,c=e.top,_=[],p=e.nil;return e.add_stubs("require,compile,new,freeze,fix_quotes,find_contents,find_code,wrap_compiled,require_erb,prepared_source,gsub,+,last_match,=~,sub"),c.$require("opal/compiler"),function(c,_){var m=[t(c,"Opal")].concat(_);return function(c,_){var m=t(c,"ERB"),d=[m].concat(_),f=e.$r(d);return r(m,"$compile",(function(e,t){return null==t&&(t="(erb)"),f("Compiler").$new(e,t).$compile()}),-2),function(t,r,c){var _=n(t,null,"Compiler"),m=[_].concat(c),d=e.$r(m),f=_.$$prototype;return f.prepared_source=f.source=f.file_name=p,a(m[0],"BLOCK_EXPR",s(/\s+(do|\{)(\s*\|[^|]*\|)?\s*(?:\n?$)/u,"\\s+(do|\\{)(\\s*\\|[^|]*\\|)?\\s*\\Z","").$freeze()),i(_,"$initialize",(function(e,t){var r,n=this;return null==t&&(t="(erb)"),r=[e,t,e],n.source=r[0],n.file_name=r[1],n.result=r[2],r}),-2),i(_,"$prepared_source",(function(){var e,t=this,r=p;return t.prepared_source=o(e=t.prepared_source)?e:(r=t.source,r=t.$fix_quotes(r),r=t.$find_contents(r),r=t.$find_code(r),r=t.$wrap_compiled(r),r=t.$require_erb(r))})),i(_,"$compile",(function(){return d("Opal").$compile(this.$prepared_source())})),i(_,"$fix_quotes",(function(e){return e.$gsub('"','\\"')})),i(_,"$require_erb",(function(e){return l('require "erb";',e)})),i(_,"$find_contents",(function(e){return $(e,"gsub",[s(/<%=([\s\S]+?)%>/u,null,"")],(function(){var e=p;return e=d("Regexp").$last_match(1).$gsub(s(/\\'/u,null,""),"'").$gsub(s(/\\"/u,null,""),'"'),o(e["$=~"](d("BLOCK_EXPR")))?'")\noutput_buffer.append= '+e+'\noutput_buffer.append("':'")\noutput_buffer.append=('+e+')\noutput_buffer.append("'}))})),i(_,"$find_code",(function(e){return $(e,"gsub",[s(/<%([\s\S]+?)%>/u,null,"")],(function(){return'")\n'+d("Regexp").$last_match(1).$gsub(s(/\\"/u,null,""),'"')+'\noutput_buffer.append("'}))})),i(_,"$wrap_compiled",(function(e){return"Template.new('"+this.file_name.$sub(u(["\\.opalerb",d("REGEXP_END")]),"")+"') do |output_buffer|\noutput_buffer.append(\""+e+'")\noutput_buffer.join\nend\n'}))}(d[0],0,d)}(m[0],m)}(_[0],_)},Opal.modules["opal-parser"]=function(Opal){var $call=Opal.call,$raise=Opal.raise,$module=Opal.module,$Opal=Opal.Opal,$truthy=Opal.truthy,$rb_plus=Opal.rb_plus,$def=Opal.def,$thrower=Opal.thrower,self=Opal.top,$nesting=[],$$=Opal.$r($nesting),nil=Opal.nil,$$$=Opal.$$$;Opal.add_stubs("require,coerce_to!,merge,new,compile,[],+,to_data_uri_comment,source_map,js_eval"),self.$require("corelib/string/unpack"),self.$require("opal/compiler"),self.$require("opal/erb"),self.$require("opal/version"),function($base,$parent_nesting){var self=$module($base,"Kernel"),$nesting=[self].concat($parent_nesting),$$=Opal.$r($nesting);$def(self,"$eval",(function $Kernel_eval$1(str,binding,file,line){var self=this,default_eval_options=nil,$ret_or_1=nil,compiling_options=nil,compiler=nil,code=nil;return null==binding&&(binding=nil),null==file&&(file=nil),null==line&&(line=nil),str=$Opal["$coerce_to!"](str,$$("String"),"to_str"),default_eval_options=new Map([["file",$truthy($ret_or_1=file)?$ret_or_1:"(eval)"],["eval",!0]]),compiling_options=new Map([["arity_check",!1]]).$merge(default_eval_options),compiler=$$$($$("Opal"),"Compiler").$new(str,compiling_options),code=compiler.$compile(),$truthy(compiling_options["$[]"]("no_source_map"))||(code=$rb_plus(code,compiler.$source_map().$to_data_uri_comment())),$truthy(binding)?binding.$js_eval(code):function(self){return eval(code)}(self)}),-2),$def(self,"$require_remote",(function $$require_remote(url){try{var $a,self=this,r=new XMLHttpRequest;return r.open("GET",url,!1),r.send(""),$a=r.responseText,"function"==typeof Opal.compile?eval(Opal.compile($a,{scope_variables:["url"],arity_check:!1,file:"(eval)",eval:!0})):self.$eval($a)}catch(e){if(e===Opal.t_eval_return)return e.$v;throw e}}))}($nesting[0],$nesting);var $has_own=Object.hasOwn||$call.bind(Object.prototype.hasOwnProperty);function run_ruby_scripts(){for(var e,t=document.getElementsByTagName("script"),r=0,n=t.length;r<n;r++)"text/ruby"===(e=t[r]).type&&(e.src&&Opal.Kernel.$require_remote(e.src),e.innerHTML&&Opal.Kernel.$eval(e.innerHTML))}Opal.compile=function(e,t){try{return e=$Opal["$coerce_to!"](e,$$("String"),"to_str"),t&&(t=Opal.hash(t)),Opal.Opal.$compile(e,t)}catch(e){if(e.$$class===Opal.Opal.SyntaxError){var r=Opal.SyntaxError.$new(e.message);throw r.$set_backtrace(e.$backtrace()),r}throw e}},Opal.eval=function(str,options){return eval(Opal.compile(str,options))},"undefined"!=typeof document&&(window.addEventListener?window.addEventListener("DOMContentLoaded",run_ruby_scripts,!1):window.attachEvent("onload",run_ruby_scripts))},Opal.load_normalized("opal-parser"),Opal.modules["plurimath/version"]=function(e){var t=e.module,r=e.const_set,n=[];e.nil;return function(e,n){var a=[t(e,"Plurimath")].concat(n);return r(a[0],"VERSION","0.6.0")}(n[0],n)},Opal.modules["plurimath/xml_engine"]=function(e){var t=e.module,r=[],n=e.nil;return e.add_stubs("attr_accessor,singleton_class"),function(e,r){var a=t(e,"Plurimath"),s=[a].concat(r);return a.$singleton_class().$attr_accessor("xml_engine"),t(s[0],"XMLEngine"),n}(r[0],r)},Opal.modules["corelib/array/pack"]=function(e){var t=e.coerce_to,r=e.klass,n=e.Kernel,a=e.Opal,s=e.annotate_regexp,i=e.def,o=e.top,l=e.nil,$=e.$$$;return e.add_stubs("require,raise,delete,gsub,coerce_to!,inspect"),o.$require("corelib/pack_unpack/format_string_parser"),function(o,u){var c=r("::",null,"Array"),_=e.PackUnpack.eachDirectiveAndCount;function p(e){return e}function m(e){return String.fromCharCode.apply(null,e)}function d(e,t){return function(r){return t(r).map((function(t){for(var r=[],n=0;n<e;n++){var a=255&t;r.push(a),t>>=8}return m(r)}))}}function f(e,t){return function(r){var n=t(r),a=8*e,s=Math.pow(2,a);return n.map((function(t){t<0&&(t+=s);for(var r=[],n=0;n<e;n++){var a=255&t;r.push(a),t>>=8}return m(r)}))}}function h(e){return function(r){return e(r).map((function(e){return t(e,$("Integer"),"to_int")}))}}function g(e){return function(t){return e(t).join("")}}var b,v={C:g(d(1,h(p))),S:g(d(2,h(p))),L:g(d(4,h(p))),Q:g(d(8,h(p))),J:null,"S>":null,"L>":null,"Q>":null,c:g(f(1,h(p))),s:g(f(2,h(p))),l:g(f(4,h(p))),q:g(f(8,h(p))),j:null,"s>":null,"l>":null,"q>":null,n:null,N:null,v:null,V:null,U:g((b=h(p),function(e){return b(e).map((function(e){try{return String.fromCodePoint(e)}catch(e){throw e instanceof RangeError&&n.$raise($("RangeError"),"value out of range"),e}}))})),w:null,D:null,d:null,F:null,f:null,E:null,e:null,G:null,g:null,A:g(p),a:g(p),Z:null,B:null,b:null,H:null,h:null,u:null,M:null,m:null,P:null,p:null};function y(e){return function(t,r){var a,s=[];if(r===1/0)for(;t.length>0;)t=(a=e(t)).rest,s=s.concat(a.chunk);else{t.length<r&&n.$raise($("ArgumentError"),"too few arguments");for(var i=0;i<r;i++)t=(a=e(t)).rest,s=s.concat(a.chunk)}return{chunk:s,rest:t}}}function x(e){return{chunk:e.slice(0,1),rest:e=e.slice(1,e.length)}}function w(e,r){return function(a,s){var i=[],o=a[0];function u(){var e=r(o);o=e.rest;var t=e.chunk;1===t.length&&t[0]===l&&(t=[]),i=i.concat(t)}function c(){var t=r(o);o=t.rest;var n=t.chunk;0===n.length&&(n=[e]),1===n.length&&n[0]===l&&(n=[e]),i=i.concat(n)}if(o===l?o="":void 0===o?n.$raise($("ArgumentError"),"too few arguments"):o=t(o,$("String"),"to_str"),a=a.slice(1,a.length),s===1/0)for(;o.length>0;)u();else for(var _=0;_<s;_++)c();return{chunk:i,rest:a}}}var k={C:y(x),S:y(x),L:y(x),Q:y(x),J:null,"S>":null,"L>":null,"Q>":null,c:y(x),s:y(x),l:y(x),q:y(x),j:null,"s>":null,"l>":null,"q>":null,n:null,N:null,v:null,V:null,U:y(x),w:null,D:null,d:null,F:null,f:null,E:null,e:null,G:null,g:null,A:w(" ",x),a:w("\0",x),Z:null,B:null,b:null,H:null,h:null,u:null,M:null,m:null,P:null,p:null},U={C:!1,S:!1,L:!1,Q:!1,J:null,"S>":null,"L>":null,"Q>":null,c:!1,s:!1,l:!1,q:!1,j:null,"s>":null,"l>":null,"q>":null,n:null,N:null,v:null,V:null,U:!1,w:null,D:null,d:null,F:null,f:null,E:null,e:null,G:null,g:null,A:!1,a:!1,Z:null,B:null,b:null,H:null,h:null,u:!1,M:null,m:null,P:null,p:null};return i(c,"$pack",(function(t){t=a["$coerce_to!"](t,$("String"),"to_str").$gsub(s(/\s/u,null,""),"").$delete("\0");var r="",i=this.slice();return _(t,(function(e,t){var a=function(e,t){var r,a=k[e];null==a&&n.$raise("Unsupported pack directive "+e.$inspect()+" (no chunk reader defined)");var s=a(i,t);r=s.chunk,i=s.rest;var o=v[e];return null==o&&n.$raise("Unsupported pack directive "+e.$inspect()+" (no handler defined)"),o(r)}(e,t);if(t!==1/0){var s=U[e];null==s&&n.$raise("Unsupported pack directive "+e.$inspect()+" (no autocompletion rule defined)"),s&&function(e,t){for(;e.length<t;)e.push(l)}(a,t)}r=r.concat(a)})),t.match(/^(U\*?)+$/)?r:e.enc(r,"binary")}))}()},Opal.modules.stringio=function(e){var t=e.klass,r=e.const_set,n=e.defs,a=e.send2,s=e.find_super,i=e.def,o=e.eqeqeq,l=e.truthy,$=e.rb_ge,u=e.rb_gt,c=e.rb_plus,_=e.rb_minus,p=e.return_ivar,m=e.eqeq,d=e.alias,f=[],h=e.$r(f),g=e.nil,b=e.$$$;return e.add_stubs("new,call,close,attr_accessor,check_readable,==,length,===,>=,raise,>,+,-,seek,check_writable,String,[],eof?,write,read,tell"),function(f,h,v){var y=t(f,h,"StringIO"),x=[y].concat(v),w=e.$r(x),k=y.$$prototype;return k.position=k.string=g,r(x[0],"VERSION","0"),n(y,"$open",(function e(t,r){var n,a=e.$$p||g,s=g;return e.$$p=null,null==t&&(t=""),null==r&&(r=g),s=this.$new(t,r),n=a.$call(s),s.$close(),n}),-1),y.$attr_accessor("string"),i(y,"$initialize",(function e(t,r){var n=this;return e.$$p=null,null==t&&(t=""),null==r&&(r="rw"),n.string=t,n.position=0,a(n,s(n,"initialize",e,!1,!0),"initialize",[g,r],null)}),-1),i(y,"$eof?",(function(){var e=this;return e.$check_readable(),e.position["$=="](e.string.$length())})),i(y,"$seek",(function(e,t){var r,n=this;return null==t&&(t=b(w("IO"),"SEEK_SET")),n.read_buffer="",o(b(w("IO"),"SEEK_SET"),r=t)?(l($(e,0))||n.$raise(b(w("Errno"),"EINVAL")),n.position=e):o(b(w("IO"),"SEEK_CUR"),r)?l(u(c(n.position,e),n.string.$length()))?n.position=n.string.$length():n.position=c(n.position,e):o(b(w("IO"),"SEEK_END"),r)&&(l(u(e,n.string.$length()))?n.position=0:n.position=_(n.position,e)),0}),-2),i(y,"$tell",p("position")),i(y,"$rewind",(function(){return this.$seek(0)})),i(y,"$write",(function(t){var r=this,n=g,a=g;return r.$check_writable(),r.read_buffer="",t=r.$String(t),m(r.string.$length(),r.position)?(r.string=c(r.string,t),r.position=c(r.position,t.$length())):(n=r.string["$[]"](e.Range.$new(0,_(r.position,1),!1)),a=r.string["$[]"](e.Range.$new(c(r.position,t.$length()),-1,!1)),r.string=c(c(n,t),a),r.position=c(r.position,t.$length()))})),i(y,"$read",(function(t,r){var n,a=this,s=g;return null==t&&(t=g),null==r&&(r=g),a.$check_readable(),l(a["$eof?"]())?g:(n=l(t)?(s=a.string["$[]"](a.position,t),a.position=c(a.position,t),l(u(a.position,a.string.$length()))&&(a.position=a.string.$length()),s):(s=a.string["$[]"](e.Range.$new(a.position,-1,!1)),a.position=a.string.$length(),s),l(r)?r.$write(n):n)}),-1),i(y,"$sysread",(function(e){return this.$check_readable(),this.$read(e)})),d(y,"eof","eof?"),d(y,"pos","tell"),d(y,"pos=","seek"),d(y,"readpartial","read")}(f[0],h("IO"),f)},Opal.modules.thread=function(e){var t=e.klass,r=e.truthy,n=e.defs,a=e.slice,s=e.def,i=e.send,o=e.Opal,l=e.alias,$=e.annotate_regexp,u=e.return_ivar,c=e.const_set,_=e.assign_ivar_val,p=[],m=e.$r(p),d=e.nil,f=e.$$$;return e.add_stubs("allocate,core_initialize!,current,raise,[],coerce_key_name,[]=,key?,keys,private,coerce_to!,clear,empty?,size,shift,push,each,to_proc,pop,=~,last_match,to_i,inspect,attr_reader,path,locked?,lock,unlock"),t(p[0],m("StandardError"),"ThreadError"),function(c,_,p){var m=t(c,null,"Thread"),f=[m].concat(p),h=e.$r(f),g=m.$$prototype;g.fiber_locals=g.thread_locals=d,n(m,"$current",(function(){var e=this;return null==e.current&&(e.current=d),r(e.current)||(e.current=e.$allocate(),e.current["$core_initialize!"]()),e.current})),n(m,"$list",(function(){return[this.$current()]})),s(m,"$initialize",(function(e){return a(arguments),this.$raise(h("NotImplementedError"),"Thread creation not available")}),-1),s(m,"$[]",(function(e){return this.fiber_locals["$[]"](this.$coerce_key_name(e))})),s(m,"$[]=",(function(e,t){var r;return r=[this.$coerce_key_name(e),t],i(this.fiber_locals,"[]=",r),r[r.length-1]})),s(m,"$key?",(function(e){return this.fiber_locals["$key?"](this.$coerce_key_name(e))})),s(m,"$keys",(function(){return this.fiber_locals.$keys()})),s(m,"$thread_variable_get",(function(e){return this.thread_locals["$[]"](this.$coerce_key_name(e))})),s(m,"$thread_variable_set",(function(e,t){var r;return r=[this.$coerce_key_name(e),t],i(this.thread_locals,"[]=",r),r[r.length-1]})),s(m,"$thread_variable?",(function(e){return this.thread_locals["$key?"](this.$coerce_key_name(e))})),s(m,"$thread_variables",(function(){return this.thread_locals.$keys()})),m.$private(),s(m,"$core_initialize!",(function(){return this.thread_locals=new Map,this.fiber_locals=new Map})),s(m,"$coerce_key_name",(function(e){return o["$coerce_to!"](e,h("String"),"to_s")})),function(n,a,o){var $=t(n,null,"Queue"),u=[$].concat(o),c=e.$r(u);$.$$prototype.storage=d,s($,"$initialize",(function(){return this.$clear()})),s($,"$clear",(function(){return this.storage=[]})),s($,"$empty?",(function(){return this.storage["$empty?"]()})),s($,"$size",(function(){return this.storage.$size()})),s($,"$pop",(function(e){var t=this;return null==e&&(e=!1),r(t["$empty?"]())&&(r(e)&&t.$raise(c("ThreadError"),"Queue empty"),t.$raise(c("ThreadError"),"Deadlock")),t.storage.$shift()}),-1),s($,"$push",(function(e){return this.storage.$push(e)})),s($,"$each",(function e(){var t=e.$$p||d;return e.$$p=null,i(this.storage,"each",[],t.$to_proc())})),l($,"<<","push"),l($,"deq","pop"),l($,"enq","push"),l($,"length","size"),l($,"shift","pop")}(f[0],0,f),function(n,a,i){var o=[t(n,null,"Backtrace")].concat(i);(function(n,a,i){var o=t(n,null,"Location"),c=[o].concat(i),_=e.$r(c),p=o.$$prototype;p.label=p.str=d,s(o,"$initialize",(function(e){var t,n=this;return n.str=e,e["$=~"]($(/^(.*?):(\d+):(\d+):in `(.*?)'$/mu,null,"")),n.path=_("Regexp").$last_match(1),n.label=_("Regexp").$last_match(4),n.lineno=_("Regexp").$last_match(2).$to_i(),n.label["$=~"]($(/(\w+)$/mu,null,"")),n.base_label=r(t=_("Regexp").$last_match(1))?t:n.label})),s(o,"$to_s",u("str")),s(o,"$inspect",(function(){return this.str.$inspect()})),o.$attr_reader("base_label","label","lineno","path"),l(o,"absolute_path","path")})(o[0],0,o)}(f[0],0,f)}(p[0],0,p),c(p[0],"Queue",f(m("Thread"),"Queue")),function(n,a,i){var o=t(n,null,"Mutex"),l=[o].concat(i),$=e.$r(l);return o.$$prototype.locked=d,s(o,"$initialize",_("locked",!1)),s(o,"$lock",(function(){var e=this;return r(e.locked)&&e.$raise($("ThreadError"),"Deadlock"),e.locked=!0,e})),s(o,"$locked?",u("locked")),s(o,"$owned?",u("locked")),s(o,"$try_lock",(function(){return!r(this["$locked?"]())&&(this.$lock(),!0)})),s(o,"$unlock",(function(){var e=this;return r(e.locked)||e.$raise($("ThreadError"),"Mutex not locked"),e.locked=!1,e})),s(o,"$synchronize",(function t(){var r=t.$$p||d,n=this;return t.$$p=null,n.$lock(),function(){try{return e.yieldX(r,[])}finally{n.$unlock()}}()}))}(p[0],0,p)},Opal.modules["oga/version"]=function(e){var t=e.module,r=e.const_set,n=[];e.nil;return function(e,n){var a=[t(e,"Oga")].concat(n);return r(a[0],"VERSION","3.4")}(n[0],n)},Opal.modules["oga/oga"]=function(e){var t=e.module,r=e.defs,n=[],a=(e.nil,e.$$$);return e.add_stubs("parse,new"),function(n,s){var i=t(n,"Oga"),o=[i].concat(s),l=e.$r(o);return r(i,"$parse_xml",(function(e,t){return null==t&&(t=new Map),a(l("XML"),"Parser").$new(e,t).$parse()}),-2),r(i,"$parse_html",(function(e,t){return null==t&&(t=new Map),a(l("HTML"),"Parser").$new(e,t).$parse()}),-2),r(i,"$sax_parse_xml",(function(e,t,r){return null==r&&(r=new Map),a(l("XML"),"SaxParser").$new(e,t,r).$parse()}),-3),r(i,"$sax_parse_html",(function(e,t,r){return null==r&&(r=new Map),a(l("HTML"),"SaxParser").$new(e,t,r).$parse()}),-3)}(n[0],n)},Opal.modules["oga/lru"]=function(e){var t=e.module,r=e.klass,n=e.def,a=e.send,s=e.truthy,i=e.neqeq,o=e.rb_gt,l=e.rb_minus,$=[],u=e.nil;return e.add_stubs("new,current,synchronize,resize,[],[]=,include?,delete,<<,key?,clear,size,alias_method,private,!=,>,shift,-,each"),function($,c){var _=[t($,"Oga")].concat(c);return function(t,$,c){var _=r(t,null,"LRU"),p=[_].concat(c),m=e.$r(p),d=_.$$prototype;return d.owner=d.mutex=d.maximum=d.keys=u,n(_,"$initialize",(function(e){var t=this;return null==e&&(e=1024),t.maximum=e,t.cache=new Map,t.keys=[],t.mutex=m("Mutex").$new(),t.owner=m("Thread").$current()}),-1),n(_,"$maximum=",(function(e){return a(this,"synchronize",[],(function t(){var r=null==t.$$s?this:t.$$s;return r.maximum=e,r.$resize()}),{$$s:this})})),n(_,"$maximum",(function(){return a(this,"synchronize",[],(function e(){var t=null==e.$$s?this:e.$$s;return null==t.maximum&&(t.maximum=u),t.maximum}),{$$s:this})})),n(_,"$[]",(function(e){return a(this,"synchronize",[],(function t(){var r=null==t.$$s?this:t.$$s;return null==r.cache&&(r.cache=u),r.cache["$[]"](e)}),{$$s:this})})),n(_,"$[]=",(function(e,t){return a(this,"synchronize",[],(function r(){var n=null==r.$$s?this:r.$$s;return null==n.cache&&(n.cache=u),null==n.keys&&(n.keys=u),n.cache["$[]="](e,t),s(n.keys["$include?"](e))&&n.keys.$delete(e),n.keys["$<<"](e),n.$resize()}),{$$s:this})})),n(_,"$get_or_set",(function t(r){var n=t.$$p||u;return t.$$p=null,a(this,"synchronize",[],(function t(){var i,o,l=null==t.$$s?this:t.$$s;return s(o=l["$[]"](r))?o:(i=[r,e.yieldX(n,[])],a(l,"[]=",i),i[i.length-1])}),{$$s:this})})),n(_,"$keys",(function(){return a(this,"synchronize",[],(function e(){var t=null==e.$$s?this:e.$$s;return null==t.keys&&(t.keys=u),t.keys}),{$$s:this})})),n(_,"$key?",(function(e){return a(this,"synchronize",[],(function t(){var r=null==t.$$s?this:t.$$s;return null==r.cache&&(r.cache=u),r.cache["$key?"](e)}),{$$s:this})})),n(_,"$clear",(function(){return a(this,"synchronize",[],(function e(){var t=null==e.$$s?this:e.$$s;return null==t.keys&&(t.keys=u),null==t.cache&&(t.cache=u),t.keys.$clear(),t.cache.$clear()}),{$$s:this})})),n(_,"$size",(function(){return a(this,"synchronize",[],(function e(){var t=null==e.$$s?this:e.$$s;return null==t.cache&&(t.cache=u),t.cache.$size()}),{$$s:this})})),_.$alias_method("length","size"),_.$private(),n(_,"$synchronize",(function t(){var r=t.$$p||u,n=this;return t.$$p=null,i(n.owner,m("Thread").$current())?a(n.mutex,"synchronize",[],(function t(){var n,a=null==t.$$s?this:t.$$s;return a.owner=m("Thread").$current(),n=e.yieldX(r,[]),a.owner=u,n}),{$$s:n}):e.yieldX(r,[])})),n(_,"$resize",(function(){var e,t=this;return s(o(t.$size(),t.maximum))?(e=t.keys.$shift(l(t.$size(),t.maximum)),a(e,"each",[],(function e(t){var r=null==e.$$s?this:e.$$s;return null==r.cache&&(r.cache=u),null==t&&(t=u),r.cache.$delete(t)}),{$$s:t})):u}))}(_[0],0,_)}($[0],$)},Opal.modules["oga/entity_decoder"]=function(e){var t=e.module,r=e.truthy,n=e.defs,a=[],s=e.nil,i=e.$$$;return e.add_stubs("decode"),function(a,o){var l=[t(a,"Oga")].concat(o);return function(a,o){var l=t(a,"EntityDecoder"),$=[l].concat(o),u=e.$r($);return n(l,"$try_decode",(function(e,t){return null==t&&(t=!1),r(e)?this.$decode(e,t):s}),-2),n(l,"$decode",(function(e,t){return null==t&&(t=!1),(r(t)?i(u("HTML"),"Entities"):i(u("XML"),"Entities")).$decode(e)}),-2)}(l[0],l)}(a[0],a)},Opal.modules["oga/blacklist"]=function(e){var t=e.module,r=e.klass,n=e.rb_plus,a=e.send,s=e.def,i=[],o=e.nil;return e.add_stubs("attr_reader,new,+,map,to_proc,each,names,!,include?,class"),function(i,l){var $=[t(i,"Oga")].concat(l);return function(t,i,l){var $=r(t,null,"Blacklist"),u=[$].concat(l),c=e.$r(u);return $.$attr_reader("names"),s($,"$initialize",(function(e){return this.names=c("Set").$new(n(e,a(e,"map",[],"upcase".$to_proc())))})),s($,"$each",(function t(){var r=t.$$p||o;return t.$$p=null,a(this.$names(),"each",[],(function(t){return null==t&&(t=o),e.yield1(r,t)}))})),s($,"$allow?",(function(e){return this.$names()["$include?"](e)["$!"]()})),s($,"$+",(function(e){return this.$class().$new(n(this.$names(),e.$names()))}))}($[0],0,$)}(i[0],i)},Opal.modules["oga/whitelist"]=function(e){var t=e.module,r=e.klass,n=e.def,a=[];e.nil;return e.add_stubs("include?,names,new"),function(a,s){var i=[t(a,"Oga")].concat(s),o=e.$r(i);return function(t,a,s){var i=r(t,a,"Whitelist"),o=[i].concat(s),l=e.$r(o);return n(i,"$allow?",(function(e){return this.$names()["$include?"](e)})),n(i,"$to_blacklist",(function(){return l("Blacklist").$new(this.$names())}))}(i[0],o("Blacklist"),i)}(a[0],a)},Opal.modules["oga/xml/lexer"]=function(e){var t=e.module,r=e.klass,n=e.const_set,a=e.rb_plus,s=e.send,i=e.truthy,o=e.def,l=e.not,$=e.return_ivar,u=e.neqeq,c=[],_=e.nil;return e.add_stubs("freeze,new,+,to_blacklist,each,keys,[]=,upcase,[],reset_native,is_a?,respond_to?,each_line,advance,<<,read_data,advance_native,!,empty?,strict?,times,length,on_element_end,==,html?,current_element,private,call,last,add_token,before_html_element_name,add_element,allow?,downcase,pop,include?,!="),function(c,p){var m=[t(c,"Oga")].concat(p);return function(c,p){var m=[t(c,"XML")].concat(p);return function(t,c,p){var m=r(t,null,"Lexer"),d=[m].concat(p),f=e.$r(d),h=m.$$prototype;return h.data=h.elements=h.html=h.line=h.block=_,n(d[0],"HTML_SCRIPT","script".$freeze()),n(d[0],"HTML_STYLE","style".$freeze()),n(d[0],"HTML_TABLE_ALLOWED",f("Whitelist").$new(["thead","tbody","tfoot","tr","caption","colgroup","col"])),n(d[0],"HTML_SCRIPT_ELEMENTS",f("Whitelist").$new(["script","template"])),n(d[0],"HTML_TABLE_ROW_ELEMENTS",a(f("Whitelist").$new(["tr","th"]),f("HTML_SCRIPT_ELEMENTS"))),n(d[0],"HTML_CLOSE_SELF",new Map([["head",f("Blacklist").$new(["head","body"])],["body",f("Blacklist").$new(["head","body"])],["li",f("Blacklist").$new(["li"])],["dt",f("Blacklist").$new(["dt","dd"])],["dd",f("Blacklist").$new(["dt","dd"])],["p",f("Blacklist").$new(["address","article","aside","blockquote","details","div","dl","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","hr","main","menu","nav","ol","p","pre","section","table","ul"])],["rb",f("Blacklist").$new(["rb","rt","rtc","rp"])],["rt",f("Blacklist").$new(["rb","rt","rtc","rp"])],["rtc",f("Blacklist").$new(["rb","rtc"])],["rp",f("Blacklist").$new(["rb","rt","rtc","rp"])],["optgroup",f("Blacklist").$new(["optgroup"])],["option",f("Blacklist").$new(["optgroup","option"])],["colgroup",f("Whitelist").$new(["col","template"])],["caption",f("HTML_TABLE_ALLOWED").$to_blacklist()],["table",a(f("HTML_TABLE_ALLOWED"),f("HTML_SCRIPT_ELEMENTS"))],["thead",f("HTML_TABLE_ROW_ELEMENTS")],["tbody",f("HTML_TABLE_ROW_ELEMENTS")],["tfoot",f("HTML_TABLE_ROW_ELEMENTS")],["tr",a(f("Whitelist").$new(["td","th"]),f("HTML_SCRIPT_ELEMENTS"))],["td",a(f("Blacklist").$new(["td","th"]),f("HTML_TABLE_ALLOWED"))],["th",a(f("Blacklist").$new(["td","th"]),f("HTML_TABLE_ALLOWED"))]])),s(f("HTML_CLOSE_SELF").$keys(),"each",[],(function(e){var t;return null==e&&(e=_),t=[e.$upcase(),f("HTML_CLOSE_SELF")["$[]"](e)],s(f("HTML_CLOSE_SELF"),"[]=",t),t[t.length-1]})),n(d[0],"LITERAL_HTML_ELEMENTS",f("Whitelist").$new([f("HTML_SCRIPT"),f("HTML_STYLE")])),o(m,"$initialize",(function(e,t){var r,n=this;return null==t&&(t=new Map),n.data=e,n.html=t["$[]"]("html"),n.strict=i(r=t["$[]"]("strict"))&&r,n.line=1,n.elements=[],n.$reset_native()}),-2),o(m,"$read_data",(function t(){var r=t.$$p||_,n=this;return t.$$p=null,i(n.data["$is_a?"](f("String")))?e.yield1(r,n.data):i(n.data["$respond_to?"]("each_line"))?s(n.data,"each_line",[],(function(t){return null==t&&(t=_),e.yield1(r,t)})):i(n.data["$respond_to?"]("each"))?s(n.data,"each",[],(function(t){return null==t&&(t=_),e.yield1(r,t)})):_})),o(m,"$lex",(function(){var e=_;return e=[],s(this,"advance",[],(function(t,r,n){return null==t&&(t=_),null==r&&(r=_),null==n&&(n=_),e["$<<"]([t,r,n])})),e})),o(m,"$advance",(function e(){var t=e.$$p||_,r=this;return e.$$p=null,function(){try{return r.block=t,s(r,"read_data",[],(function e(t){return null==t&&(t=_),(null==e.$$s?this:e.$$s).$advance_native(t)}),{$$s:r}),l(r["$strict?"]())&&l(r.elements["$empty?"]())?s(r.elements.$length(),"times",[],(function e(){return(null==e.$$s?this:e.$$s).$on_element_end()}),{$$s:r}):_}finally{r.block=_}}()})),o(m,"$html?",(function(){return this.html["$=="](!0)})),o(m,"$strict?",$("strict")),o(m,"$html_script?",(function(){var e;return i(e=this["$html?"]())?this.$current_element()["$=="](f("HTML_SCRIPT")):e})),o(m,"$html_style?",(function(){var e;return i(e=this["$html?"]())?this.$current_element()["$=="](f("HTML_STYLE")):e})),m.$private(),o(m,"$advance_line",(function(e){return null==e&&(e=1),this.line=a(this.line,e)}),-1),o(m,"$add_token",(function(e,t){return null==t&&(t=_),this.block.$call(e,t,this.line)}),-2),o(m,"$current_element",(function(){return this.elements.$last()})),o(m,"$on_string_squote",(function(){return this.$add_token("T_STRING_SQUOTE")})),o(m,"$on_string_dquote",(function(){return this.$add_token("T_STRING_DQUOTE")})),o(m,"$on_string_body",(function(e){return this.$add_token("T_STRING_BODY",e)})),o(m,"$on_doctype_start",(function(){return this.$add_token("T_DOCTYPE_START")})),o(m,"$on_doctype_type",(function(e){return this.$add_token("T_DOCTYPE_TYPE",e)})),o(m,"$on_doctype_name",(function(e){return this.$add_token("T_DOCTYPE_NAME",e)})),o(m,"$on_doctype_end",(function(){return this.$add_token("T_DOCTYPE_END")})),o(m,"$on_doctype_inline",(function(e){return this.$add_token("T_DOCTYPE_INLINE",e)})),o(m,"$on_cdata_start",(function(){return this.$add_token("T_CDATA_START")})),o(m,"$on_cdata_end",(function(){return this.$add_token("T_CDATA_END")})),o(m,"$on_cdata_body",(function(e){return this.$add_token("T_CDATA_BODY",e)})),o(m,"$on_comment_start",(function(){return this.$add_token("T_COMMENT_START")})),o(m,"$on_comment_end",(function(){return this.$add_token("T_COMMENT_END")})),o(m,"$on_comment_body",(function(e){return this.$add_token("T_COMMENT_BODY",e)})),o(m,"$on_xml_decl_start",(function(){return this.$add_token("T_XML_DECL_START")})),o(m,"$on_xml_decl_end",(function(){return this.$add_token("T_XML_DECL_END")})),o(m,"$on_proc_ins_start",(function(){return this.$add_token("T_PROC_INS_START")})),o(m,"$on_proc_ins_name",(function(e){return this.$add_token("T_PROC_INS_NAME",e)})),o(m,"$on_proc_ins_body",(function(e){return this.$add_token("T_PROC_INS_BODY",e)})),o(m,"$on_proc_ins_end",(function(){return this.$add_token("T_PROC_INS_END")})),o(m,"$on_element_name",(function(e){var t=this;return i(t["$html?"]())&&t.$before_html_element_name(e),t.$add_element(e)})),o(m,"$before_html_element_name",(function(e){var t=this,r=_;for(r=f("HTML_CLOSE_SELF")["$[]"](t.$current_element()),i(r)&&l(r["$allow?"](e))&&t.$on_element_end();i(r=f("HTML_CLOSE_SELF")["$[]"](t.$current_element()))&&!i(r["$allow?"](e));)t.$on_element_end()})),o(m,"$add_element",(function(e){return this.elements["$<<"](e),this.$add_token("T_ELEM_NAME",e)})),o(m,"$on_element_ns",(function(e){return this.$add_token("T_ELEM_NS",e)})),o(m,"$on_element_open_end",(function(){var e=this;return i(e["$html?"]())&&(i(f("HTML_VOID_ELEMENTS")["$allow?"](e.$current_element()))||i(f("HTML_VOID_ELEMENTS")["$allow?"](e.$current_element().$downcase())))?(e.$add_token("T_ELEM_END"),e.elements.$pop()):_})),o(m,"$on_element_end",(function(e){var t=this;if(null==e&&(e=_),i(t.elements["$empty?"]()))return _;if(i(t["$html?"]())&&i(e)&&i(t.elements["$include?"](e)))for(;u(t.$current_element(),e);)t.$add_token("T_ELEM_END"),t.elements.$pop();return i(t["$html?"]())&&i(e)&&u(e,t.$current_element())?_:(t.$add_token("T_ELEM_END"),t.elements.$pop())}),-1),o(m,"$on_text",(function(e){return i(e["$empty?"]())?_:this.$add_token("T_TEXT",e)})),o(m,"$on_attribute_ns",(function(e){return this.$add_token("T_ATTR_NS",e)})),o(m,"$on_attribute",(function(e){return this.$add_token("T_ATTR",e)}))}(m[0],0,m)}(m[0],m)}(c[0],c)},Opal.modules["ll/version"]=function(e){var t=e.module,r=e.const_set,n=[];e.nil;return function(e,n){var a=[t(e,"LL")].concat(n);return r(a[0],"VERSION","2.1.3")}(n[0],n)},Opal.modules["ll/driver"]=function(e){var t=e.module,r=e.klass,n=e.def,a=[],s=e.nil,i=e.$$$;return e.add_stubs("parser_error_message,raise,id_to_type,id_to_terminal,[],invert,terminals,class"),function(a,o){var l=[t(a,"LL")].concat(o);return function(t,a,o){var l=r(t,null,"Driver"),$=[l].concat(o),u=e.$r($);return n(l,"$parser_error",(function(e,t,r,n){var a;return a=this.$parser_error_message(e,t,r),this.$raise(u("ParserError"),a)})),n(l,"$parser_error_message",(function(e,t,r){var n=s;switch(this.$id_to_type(e).valueOf()){case"rule":n="Unexpected "+r+" for rule "+t;break;case"terminal":n="Unexpected "+r+", expected "+this.$id_to_terminal(t)+" instead";break;case"eof":n="Received "+r+" but there's nothing left to parse";break;case"star":n="Unexpected "+r+' for a "*" operator';break;case"plus":n="Unexpected "+r+' for a "+" operator';break;case"question":n="Unexpected "+r+' for a "?" operator'}return n})),n(l,"$id_to_type",(function(e){return i(u("ConfigurationCompiler"),"TYPES").$invert()["$[]"](e)})),n(l,"$id_to_terminal",(function(e){return i(this.$class(),"CONFIG").$terminals()["$[]"](e)}))}(l[0],0,l)}(a[0],a)},Opal.modules["ll/driver_config"]=function(e){var t,r=e.module,n=e.klass,a=e.send,s=e.def,i=[];e.nil;return e.add_stubs("attr_reader,terminals_native=,rules_native=,table_native=,actions_native="),t=i,function(e,t){var r=n(e,null,"DriverConfig");return r.$attr_reader("terminals","rules","table","actions"),s(r,"$terminals=",(function(e){var t;return t=[this.terminals=e],a(this,"terminals_native=",t),t[t.length-1]})),s(r,"$rules=",(function(e){var t;return t=[this.rules=e],a(this,"rules_native=",t),t[t.length-1]})),s(r,"$table=",(function(e){var t;return t=[this.table=e],a(this,"table_native=",t),t[t.length-1]})),s(r,"$actions=",(function(e){var t;return t=[this.actions=e],a(this,"actions_native=",t),t[t.length-1]}))}([r(i[0],"LL")].concat(t)[0])},Opal.modules["ll/parser_error"]=function(e){var t=e.module,r=e.klass,n=[],a=e.nil;return function(n,s){var i=[t(n,"LL")].concat(s),o=e.$r(i);return r(i[0],o("StandardError"),"ParserError"),a}(n[0],n)},Opal.modules["ll/configuration_compiler"]=function(e){var t=e.module,r=e.klass,n=e.const_set,a=e.def,s=e.truthy,i=e.rb_gt,o=e.range,l=e.send,$=e.rb_plus,u=e.not,c=e.eqeq,_=[],p=e.nil;return e.add_stubs("freeze,new,generate_name,generate_namespace,inner,header,generate_terminals,generate_actions,generate_action_bodies,generate_rules,generate_table,last,split,name,>,length,[],each,terminals,<<,to_sym,rules,branches,reject,steps,is_a?,+,ruby_code,!,==,[]=,rule_indices,terminal_indices,each_with_index,reverse_each,type,receiver,include?,first_set"),function(_,m){var d=[t(_,"LL")].concat(m);return function(t,_,m){var d=r(t,null,"ConfigurationCompiler"),f=[d].concat(m),h=e.$r(f);return n(f[0],"TYPES",new Map([["eof",-1],["rule",0],["terminal",1],["epsilon",2],["action",3],["star",4],["plus",5],["add_value_stack",6],["append_value_stack",7],["question",8]]).$freeze()),n(f[0],"SKIP_VALUE_STACK",["question"]),n(f[0],"DEFAULT_RUBY_CODE","val".$freeze()),a(d,"$generate",(function(e){var t=this;return h("CompiledConfiguration").$new(new Map([["name",t.$generate_name(e)],["namespace",t.$generate_namespace(e)],["inner",e.$inner()],["header",e.$header()],["terminals",t.$generate_terminals(e)],["actions",t.$generate_actions(e)],["action_bodies",t.$generate_action_bodies(e)],["rules",t.$generate_rules(e)],["table",t.$generate_table(e)]]))})),a(d,"$generate_name",(function(e){return e.$name().$split("::").$last()})),a(d,"$generate_namespace",(function(e){var t=p;return t=e.$name().$split("::"),s(i(t.$length(),1))?t["$[]"](o(0,-2,!1)):[]})),a(d,"$generate_terminals",(function(e){var t=p;return t=["$EOF"],l(e.$terminals(),"each",[],(function(e){return null==e&&(e=p),t["$<<"](e.$name().$to_sym())})),t})),a(d,"$generate_actions",(function(e){var t=p,r=p;return t=[],r=0,l(e.$rules(),"each",[],(function(e){return null==e&&(e=p),l(e.$branches(),"each",[],(function(e){var n;return null==e&&(e=p),n=l(e.$steps(),"reject",[],(function(e){return null==e&&(e=p),e["$is_a?"](h("Epsilon"))})).$length(),t["$<<"](["_rule_"+r,n]),r=$(r,1)}))})),t})),a(d,"$generate_action_bodies",(function(e){var t=p,r=p;return t=new Map,r=0,l(e.$rules(),"each",[],(function(e){return null==e&&(e=p),l(e.$branches(),"each",[],(function(e){var n=p;return null==e&&(e=p),n=s(e.$ruby_code())?e.$ruby_code():u(e.$ruby_code())&&c(e.$steps().$length(),1)&&u(e.$steps()["$[]"](0)["$is_a?"](h("Epsilon")))?"val[0]":h("DEFAULT_RUBY_CODE"),t["$[]="]("_rule_"+r,n),r=$(r,1)}))})),t})),a(d,"$generate_rules",(function(e){var t=p,r=p,n=p,a=p;return t=[],r=0,n=e.$rule_indices(),a=e.$terminal_indices(),l(e.$rules(),"each_with_index",[],(function(e,i){return null==e&&(e=p),null==i&&(i=p),l(e.$branches(),"each",[],(function(e){var i=p;return null==e&&(e=p),i=[h("TYPES")["$[]"]("action"),r],r=$(r,1),l(e.$steps(),"reverse_each",[],(function(e){return null==e&&(e=p),s(e["$is_a?"](h("Terminal")))?(i["$<<"](h("TYPES")["$[]"]("terminal")),i["$<<"]($(a["$[]"](e),1))):s(e["$is_a?"](h("Rule")))?(i["$<<"](h("TYPES")["$[]"]("rule")),i["$<<"](n["$[]"](e))):s(e["$is_a?"](h("Epsilon")))?(i["$<<"](h("TYPES")["$[]"]("epsilon")),i["$<<"](0)):s(e["$is_a?"](h("Operator")))?(i["$<<"](h("TYPES")["$[]"](e.$type())),i["$<<"](n["$[]"](e.$receiver())),s(h("SKIP_VALUE_STACK")["$include?"](e.$type()))?p:(i["$<<"](h("TYPES")["$[]"]("add_value_stack")),i["$<<"](0))):p})),t["$<<"](i)}))})),t})),a(d,"$generate_table",(function(e){var t,r=p,n=p,a=p;return r=0,n=e.$terminal_indices(),t=$(e.$terminals().$length(),1),a=l(h("Array"),"new",[e.$rules().$length()],(function(){return h("Array").$new(t,-1)})),l(e.$rules(),"each_with_index",[],(function(e,t){return null==e&&(e=p),null==t&&(t=p),l(e.$branches(),"each",[],(function(e){return null==e&&(e=p),l(e.$first_set(),"each",[],(function(e){var i,o=p;return null==e&&(e=p),s(e["$is_a?"](h("Terminal")))?(o=n["$[]"](e),i=[$(o,1),r],l(a["$[]"](t),"[]=",i),i[i.length-1]):l(a["$[]"](t),"each_with_index",[],(function(e,n){var s;return null==e&&(e=p),null==n&&(n=p),c(e,-1)?(s=[n,r],l(a["$[]"](t),"[]=",s),s[s.length-1]):p}))})),r=$(r,1)}))})),a}))}(d[0],0,d)}(_[0],_)},Opal.modules["ll/native/driver"]=function(e){var t=e.module,r=e.klass,n=e.const_set,a=e.def,s=e.rb_plus,i=e.send,o=e.truthy,l=e.eqeq,$=e.neqeq,u=e.rb_gt,c=e.rb_minus,_=e.thrower,p=[],m=e.nil,d=e.$$$;return e.add_stubs("class,<<,[],rules_native,config,+,each_token,loop,empty?,parser_error,pop,terminals_native,==,table_native,!=,last,to_s,action_names_native,action_arg_amounts_native,new,min,size,>,-,[]=,send"),function(p,f){var h=[t(p,"LL")].concat(f);return function(t,p,f){var h=r(t,null,"Driver"),g=[h].concat(f),b=e.$r(g);return n(g[0],"T_EOF",-1),n(g[0],"T_RULE",0),n(g[0],"T_TERMINAL",1),n(g[0],"T_EPSILON",2),n(g[0],"T_ACTION",3),n(g[0],"T_STAR",4),n(g[0],"T_PLUS",5),n(g[0],"T_ADD_VALUE_STACK",6),n(g[0],"T_APPEND_VALUE_STACK",7),n(g[0],"T_QUESTION",8),a(h,"$config",(function(){return d(this.$class(),"CONFIG")})),a(h,"$parse",(function(){var e,t=this,r=m,n=m;return n=[],(r=[])["$<<"](b("T_EOF"))["$<<"](b("T_EOF")),e=t.$config().$rules_native()["$[]"](0),r=s(r,e),i(t,"each_token",[],(function e(t,a){var p=null==e.$$s?this:e.$$s;return null==t&&(t=m),null==a&&(a=m),function(){try{var e=_("break");return i(p,"loop",[],(function i(){var _,p,d,f=null==i.$$s?this:i.$$s,h=m,g=m,v=m,y=m,x=m,w=m,k=m,U=m;if(o(r["$empty?"]())&&f.$parser_error(-1,-1,t,a),_=r.$pop(),p=r.$pop(),d=o(h=f.$config().$terminals_native()["$[]"](t))?h:0,l(p,b("T_RULE"))||l(p,b("T_PLUS")))return g=o(h=f.$config().$table_native()["$[]"](_)["$[]"](d))?h:b("T_EOF"),l(g,b("T_EOF"))?f.$parser_error(p,_,t,a):(l(p,b("T_PLUS"))&&(r["$<<"](b("T_STAR"))["$<<"](_),r["$<<"](b("T_APPEND_VALUE_STACK"))["$<<"](0)),v=f.$config().$rules_native()["$[]"](g),r=s(r,v));if(l(p,b("T_STAR")))return g=o(h=f.$config().$table_native()["$[]"](_)["$[]"](d))?h:b("T_EOF"),$(g,b("T_EOF"))?(r["$<<"](b("T_STAR"))["$<<"](_),r["$<<"](b("T_APPEND_VALUE_STACK"))["$<<"](0),v=f.$config().$rules_native()["$[]"](g),r=s(r,v)):m;if(l(p,b("T_QUESTION")))return g=o(h=f.$config().$table_native()["$[]"](_)["$[]"](d))?h:b("T_EOF"),l(g,b("T_EOF"))?n["$<<"](m):(v=f.$config().$rules_native()["$[]"](g),r=s(r,v));if(l(p,b("T_ADD_VALUE_STACK")))return y=[],n["$<<"](y);if(l(p,b("T_APPEND_VALUE_STACK")))return x=n.$pop(),(y=n.$last())["$<<"](x);if(l(p,b("T_TERMINAL"))){if(!l(_,d))return f.$parser_error(p,_,t,a);n["$<<"](a),e.$throw(m,i.$$is_lambda)}else{if(l(p,b("T_ACTION"))){for(w=f.$config().$action_names_native()["$[]"](_).$to_s(),k=f.$config().$action_arg_amounts_native()["$[]"](_),U=b("Array").$new(k),k=[k,n.$size()].$min();o(u(k,0));)k=c(k,1),o(u(n.$size(),0))&&U["$[]="](k,n.$pop());return n["$<<"](f.$send(w,U))}if(!l(p,b("T_EOF")))return m;e.$throw(m,i.$$is_lambda)}}),{$$s:p})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}()}),{$$s:t}),o(n["$empty?"]())?m:n.$pop()}))}(h[0],0,h)}(p[0],p)},Opal.modules["ll/native/driver_config"]=function(e){var t,r=e.module,n=e.klass,a=e.def,s=e.send,i=e.to_ary,o=[],l=e.nil;return e.add_stubs("attr_reader,each_with_index,[]=,each,<<,to_i"),t=o,function(e,t){var r=n(e,null,"DriverConfig");return r.$attr_reader("terminals_native","rules_native","table_native","action_names_native","action_arg_amounts_native"),a(r,"$initialize",(function(){var e=this;return e.terminals_native=new Map,e.rules_native=[],e.table_native=[],e.action_names_native=[],e.action_arg_amounts_native=[]})),a(r,"$terminals_native=",(function(e){return s(e,"each_with_index",[],(function e(t,r){var n,a=null==e.$$s?this:e.$$s;return null==a.terminals_native&&(a.terminals_native=l),null==t&&(t=l),null==r&&(r=l),n=[t,r],s(a.terminals_native,"[]=",n),n[n.length-1]}),{$$s:this})})),a(r,"$rules_native=",(function(e){return s(e,"each",[],(function e(t){var r=null==e.$$s?this:e.$$s,n=l;return null==r.rules_native&&(r.rules_native=l),null==t&&(t=l),n=[],s(t,"each",[],(function(e){return null==e&&(e=l),n["$<<"](e.$to_i())})),r.rules_native["$<<"](n)}),{$$s:this})})),a(r,"$table_native=",(function(e){return s(e,"each",[],(function e(t){var r=null==e.$$s?this:e.$$s,n=l;return null==r.table_native&&(r.table_native=l),null==t&&(t=l),n=[],s(t,"each",[],(function(e){return null==e&&(e=l),n["$<<"](e.$to_i())})),r.table_native["$<<"](n)}),{$$s:this})})),a(r,"$actions_native=",(function(e){return s(e,"each",[],(function e(t){var r,n,a=null==e.$$s?this:e.$$s,s=l;return null==a.action_names_native&&(a.action_names_native=l),null==a.action_arg_amounts_native&&(a.action_arg_amounts_native=l),null==t&&(t=l),n=null==(r=i(t))[0]?l:r[0],s=null==r[1]?l:r[1],a.action_names_native["$<<"](n),a.action_arg_amounts_native["$<<"](s.$to_i())}),{$$s:this})}))}([r(o[0],"LL")].concat(t)[0])},Opal.modules.jruby=Opal.return_val(Opal.nil),Opal.modules["ll/setup"]=function(e){var t=e.eqeq,r=e.top,n=e.$r([]),a=e.nil;return e.add_stubs("require,==,load,Libll,libll,org,runtime"),r.$require("ll/version"),r.$require("ll/driver"),r.$require("ll/driver_config"),r.$require("ll/parser_error"),r.$require("ll/configuration_compiler"),r.$require("ll/native/driver"),r.$require("ll/native/driver_config"),t(n("RUBY_PLATFORM"),"java")?(r.$require("jruby"),r.$org().$libll().$Libll().$load(n("JRuby").$runtime())):a},Opal.modules["oga/xml/parser"]=function(e){var t=e.module,r=e.klass,n=e.const_set,a=e.def,s=e.send,i=e.truthy,o=e.rb_plus,l=e.return_val,$=e.top,u=[],c=e.nil,_=e.$$$;return e.add_stubs("require,new,terminals=,freeze,rules=,table=,actions=,reset_native,advance,id_to_type,id_to_terminal,[],+,raise,html?,each,is_a?,doctype=,xml_declaration=,<<,children,[]=,to_sym,name,value,children=,on_document,on_doctype,inject,on_cdata,on_comment,on_proc_ins,on_element,on_element_children,after_element,on_attributes,on_attribute,on_xml_decl,on_text"),$.$require("ll/setup"),function($,u){var p=[t($,"Oga")].concat(u);return function($,u){var p=[t($,"XML")].concat(u),m=e.$r(p);return function(t,$,u){var p=r(t,$,"Parser"),m=[p].concat(u),d=e.$r(m),f=p.$$prototype;return f.lexer=f.line=c,n(m[0],"CONFIG",_(d("LL"),"DriverConfig").$new()),d("CONFIG")["$terminals="](["$EOF","T_TEXT","T_STRING_SQUOTE","T_STRING_DQUOTE","T_STRING_BODY","T_DOCTYPE_START","T_DOCTYPE_END","T_DOCTYPE_TYPE","T_DOCTYPE_NAME","T_DOCTYPE_INLINE","T_COMMENT_START","T_COMMENT_BODY","T_COMMENT_END","T_CDATA_START","T_CDATA_BODY","T_CDATA_END","T_ELEM_NAME","T_ELEM_NS","T_ELEM_END","T_ATTR","T_ATTR_NS","T_XML_DECL_START","T_XML_DECL_END","T_PROC_INS_START","T_PROC_INS_NAME","T_PROC_INS_BODY","T_PROC_INS_END"].$freeze()),d("CONFIG")["$rules="]([[3,0,0,1],[3,1,4,21,6,0],[3,2,0,3],[3,3,0,5],[3,4,0,7],[3,5,0,9],[3,6,0,17],[3,7,0,13],[3,8,0,16],[3,9,1,6,0,4,8,24,8,23,8,22,1,8,1,5],[3,10,4,25,6,0],[3,11,1,15,0,6,1,13],[3,12,0,6,1,14],[3,13,2,0],[3,14,1,12,0,8,1,10],[3,15,0,8,1,11],[3,16,2,0],[3,17,1,26,0,10,1,24,1,23],[3,18,0,10,1,25],[3,19,2,0],[3,20,1,16],[3,21,1,16,1,17],[3,22,0,14,0,11],[3,23,1,18,0,1,0,12],[3,24,4,26,6,0],[3,25,8,27,1,19,1,20],[3,26,8,28,1,19],[3,27,1,22,0,14,1,21],[3,28,0,18,1,1],[3,29,0,18,1,1],[3,30,2,0],[3,31,1,3,0,20,1,3],[3,32,1,2,0,20,1,2],[3,33,0,20,1,4],[3,34,2,0],[3,35,0,2],[3,36,1,7],[3,37,0,19],[3,38,0,19],[3,39,1,9],[3,40,0,15],[3,41,0,19],[3,42,0,19]].$freeze()),d("CONFIG")["$table="]([[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[-1,6,-1,-1,-1,2,-1,-1,-1,-1,4,-1,-1,3,-1,-1,7,7,-1,-1,-1,8,-1,5,-1,-1,-1],[-1,-1,-1,-1,-1,9,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],[10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10],[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,11,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],[13,13,13,13,13,13,13,13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,13,13,13,13,13],[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,14,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],[16,16,16,16,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16],[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,17,-1,-1,-1],[19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,18,19],[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,20,21,-1,-1,-1,-1,-1,-1,-1,-1,-1],[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,22,22,-1,-1,-1,-1,-1,-1,-1,-1,-1],[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,23,23,-1,-1,-1,-1,-1,-1,-1,-1,-1],[24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24],[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,26,25,-1,-1,-1,-1,-1,-1],[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,27,-1,-1,-1,-1,-1],[-1,28,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],[30,29,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,-1,32,31,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],[34,34,34,34,33,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34],[-1,35,-1,-1,-1,35,-1,-1,-1,-1,35,-1,-1,35,-1,-1,35,35,-1,-1,-1,35,-1,35,-1,-1,-1],[-1,-1,-1,-1,-1,-1,-1,36,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],[-1,-1,37,37,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],[-1,-1,38,38,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],[-1,-1,-1,-1,-1,-1,-1,-1,-1,39,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,40,40,-1,-1,-1,-1,-1,-1],[-1,-1,41,41,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],[-1,-1,42,42,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1]].$freeze()),d("CONFIG")["$actions="]([["_rule_0",1],["_rule_1",1],["_rule_2",1],["_rule_3",1],["_rule_4",1],["_rule_5",1],["_rule_6",1],["_rule_7",1],["_rule_8",1],["_rule_9",7],["_rule_10",1],["_rule_11",3],["_rule_12",2],["_rule_13",0],["_rule_14",3],["_rule_15",2],["_rule_16",0],["_rule_17",4],["_rule_18",2],["_rule_19",0],["_rule_20",1],["_rule_21",2],["_rule_22",2],["_rule_23",3],["_rule_24",1],["_rule_25",3],["_rule_26",2],["_rule_27",3],["_rule_28",2],["_rule_29",2],["_rule_30",0],["_rule_31",3],["_rule_32",3],["_rule_33",2],["_rule_34",0],["_rule_35",1],["_rule_36",1],["_rule_37",1],["_rule_38",1],["_rule_39",1],["_rule_40",1],["_rule_41",1],["_rule_42",1]].$freeze()),n(m[0],"TOKEN_ERROR_MAPPING",new Map([["T_STRING","string"],["T_TEXT","text"],["T_DOCTYPE_START","doctype start"],["T_DOCTYPE_END","doctype closing tag"],["T_DOCTYPE_TYPE","doctype type"],["T_DOCTYPE_NAME","doctype name"],["T_DOCTYPE_INLINE","inline doctype rules"],["T_CDATA","CDATA"],["T_COMMENT","comment"],["T_ELEM_START","element start"],["T_ELEM_NAME","element name"],["T_ELEM_NS","element namespace"],["T_ELEM_END","element closing tag"],["T_ATTR","attribute"],["T_ATTR_NS","attribute namespace"],["T_XML_DECL_START","XML declaration start"],["T_XML_DECL_END","XML declaration end"],["T_PROC_INS_START","processing-instruction start"],["T_PROC_INS_NAME","processing-instruction name"],["T_PROC_INS_END","processing-instruction closing tag"],[-1,"end of input"]])),a(p,"$initialize",(function(e,t){var r=this;return null==t&&(t=new Map),r.data=e,r.lexer=d("Lexer").$new(e,t),r.line=1,r.lexer.$reset_native()}),-2),a(p,"$each_token",(function t(){var r=t.$$p||c;return t.$$p=null,s(this.lexer,"advance",[],(function t(n,a,s){var o=null==t.$$s?this:t.$$s;return null==n&&(n=c),null==a&&(a=c),null==s&&(s=c),i(s)&&(o.line=s),e.yield1(r,[n,a])}),{$$s:this}),e.yield1(r,[-1,-1])})),a(p,"$parser_error",(function(e,t,r,n){var a=this,s=c,l=c,$=c;switch(a.$id_to_type(e).valueOf()){case"rule":s="Unexpected "+r+" for rule "+t;break;case"terminal":l=a.$id_to_terminal(t),l=i($=d("TOKEN_ERROR_MAPPING")["$[]"](l))?$:l,s="Unexpected "+(i($=d("TOKEN_ERROR_MAPPING")["$[]"](r))?$:r)+", expected "+l+" instead";break;case"eof":s="Unexpected end of input"}return s=o(s," on line "+a.line),a.$raise(_(d("LL"),"ParserError"),s)})),a(p,"$on_document",(function(e){var t=c;return null==e&&(e=[]),t=d("Document").$new(new Map([["type",i(this.lexer["$html?"]())?"html":"xml"]])),s(e,"each",[],(function(e){var r;return null==e&&(e=c),i(e["$is_a?"](d("Doctype")))?(s(t,"doctype=",r=[e]),r[r.length-1]):i(e["$is_a?"](d("XmlDeclaration")))?(s(t,"xml_declaration=",r=[e]),r[r.length-1]):t.$children()["$<<"](e)})),t}),-1),a(p,"$on_doctype",(function(e){return null==e&&(e=new Map),d("Doctype").$new(e)}),-1),a(p,"$on_cdata",(function(e){return null==e&&(e=c),d("Cdata").$new(new Map([["text",e]]))}),-1),a(p,"$on_comment",(function(e){return null==e&&(e=c),d("Comment").$new(new Map([["text",e]]))}),-1),a(p,"$on_proc_ins",(function(e,t){return null==t&&(t=c),d("ProcessingInstruction").$new(new Map([["name",e],["text",t]]))}),-2),a(p,"$on_xml_decl",(function(e){var t;return null==e&&(e=[]),t=new Map,s(e,"each",[],(function(e){var r;return null==e&&(e=c),r=[e.$name().$to_sym(),e.$value()],s(t,"[]=",r),r[r.length-1]})),d("XmlDeclaration").$new(t)}),-1),a(p,"$on_text",(function(e){return d("Text").$new(new Map([["text",e]]))})),a(p,"$on_element",(function(e,t,r){return null==r&&(r=new Map),d("Element").$new(new Map([["namespace_name",e],["name",t],["attributes",r]]))}),-3),a(p,"$on_element_children",(function(e,t){return null==t&&(t=[]),e["$children="](t),e}),-2),a(p,"$after_element",(function(e){return e})),a(p,"$on_attribute",(function(e,t,r){return null==t&&(t=c),null==r&&(r=c),d("Attribute").$new(new Map([["namespace_name",t],["name",e],["value",r]]))}),-2),a(p,"$on_attributes",(function(e){return e})),a(p,"$_rule_0",(function(e){return this.$on_document(e["$[]"](0))})),a(p,"$_rule_1",(function(e){return e["$[]"](0)})),a(p,"$_rule_2",(function(e){return e["$[]"](0)})),a(p,"$_rule_3",(function(e){return e["$[]"](0)})),a(p,"$_rule_4",(function(e){return e["$[]"](0)})),a(p,"$_rule_5",(function(e){return e["$[]"](0)})),a(p,"$_rule_6",(function(e){return e["$[]"](0)})),a(p,"$_rule_7",(function(e){return e["$[]"](0)})),a(p,"$_rule_8",(function(e){return e["$[]"](0)})),a(p,"$_rule_9",(function(e){return this.$on_doctype(new Map([["name",e["$[]"](1)],["type",e["$[]"](2)],["public_id",e["$[]"](3)],["system_id",e["$[]"](4)],["inline_rules",e["$[]"](5)]]))})),a(p,"$_rule_10",(function(e){return e["$[]"](0).$inject("+")})),a(p,"$_rule_11",(function(e){return this.$on_cdata(e["$[]"](1))})),a(p,"$_rule_12",(function(e){return o(e["$[]"](0),e["$[]"](1))})),a(p,"$_rule_13",l("")),a(p,"$_rule_14",(function(e){return this.$on_comment(e["$[]"](1))})),a(p,"$_rule_15",(function(e){return o(e["$[]"](0),e["$[]"](1))})),a(p,"$_rule_16",l("")),a(p,"$_rule_17",(function(e){return this.$on_proc_ins(e["$[]"](1),e["$[]"](2))})),a(p,"$_rule_18",(function(e){return o(e["$[]"](0),e["$[]"](1))})),a(p,"$_rule_19",l("")),a(p,"$_rule_20",(function(e){return[c,e["$[]"](0)]})),a(p,"$_rule_21",(function(e){return e})),a(p,"$_rule_22",(function(e){return this.$on_element(e["$[]"](0)["$[]"](0),e["$[]"](0)["$[]"](1),e["$[]"](1))})),a(p,"$_rule_23",(function(e){return i(e["$[]"](0))&&this.$on_element_children(e["$[]"](0),e["$[]"](1)),this.$after_element(e["$[]"](0))})),a(p,"$_rule_24",(function(e){return this.$on_attributes(e["$[]"](0))})),a(p,"$_rule_25",(function(e){return this.$on_attribute(e["$[]"](1),e["$[]"](0),e["$[]"](2))})),a(p,"$_rule_26",(function(e){return this.$on_attribute(e["$[]"](0),c,e["$[]"](1))})),a(p,"$_rule_27",(function(e){return this.$on_xml_decl(e["$[]"](1))})),a(p,"$_rule_28",(function(e){var t;return t=i(e["$[]"](1))?o(e["$[]"](0),e["$[]"](1)):e["$[]"](0),this.$on_text(t)})),a(p,"$_rule_29",(function(e){return i(e["$[]"](1))?o(e["$[]"](0),e["$[]"](1)):e["$[]"](0)})),a(p,"$_rule_30",l(c)),a(p,"$_rule_31",(function(e){return e["$[]"](1)})),a(p,"$_rule_32",(function(e){return e["$[]"](1)})),a(p,"$_rule_33",(function(e){return o(e["$[]"](0),e["$[]"](1))})),a(p,"$_rule_34",l("")),a(p,"$_rule_35",(function(e){return e["$[]"](0)})),a(p,"$_rule_36",(function(e){return e["$[]"](0)})),a(p,"$_rule_37",(function(e){return e["$[]"](0)})),a(p,"$_rule_38",(function(e){return e["$[]"](0)})),a(p,"$_rule_39",(function(e){return e["$[]"](0)})),a(p,"$_rule_40",(function(e){return e["$[]"](0)})),a(p,"$_rule_41",(function(e){return e["$[]"](0)})),a(p,"$_rule_42",(function(e){return e["$[]"](0)}))}(p[0],_(m("LL"),"Driver"),p)}(p[0],p)}(u[0],u)},Opal.modules["oga/native/lexer"]=function(e){var t=e.module,r=e.klass,n=e.send,a=e.truthy,s=e.to_ary,i=e.rb_le,o=e.eqeq,l=e.rb_plus,$=e.rb_gt,u=e.rb_minus,c=e.neqeq,_=e.not,p=e.def,m=e.slice,d=e.extract_kwargs,f=e.ensure_kwargs,h=e.kwrestargs,g=e.to_a,b=[],v=e.nil;return e.add_stubs("attr_accessor,private,_ruby_lexer_trans_keys=,_ruby_lexer_key_spans=,_ruby_lexer_index_offsets=,_ruby_lexer_indicies=,_ruby_lexer_trans_targs=,_ruby_lexer_trans_actions=,_ruby_lexer_to_state_actions=,_ruby_lexer_from_state_actions=,_ruby_lexer_eof_trans=,ruby_lexer_start=,ruby_lexer_error=,ruby_lexer_en_comment_body=,ruby_lexer_en_cdata_body=,ruby_lexer_en_proc_ins_body=,ruby_lexer_en_string_squote=,ruby_lexer_en_string_dquote=,ruby_lexer_en_doctype_inline=,ruby_lexer_en_doctype=,ruby_lexer_en_xml_decl=,ruby_lexer_en_element_name=,ruby_lexer_en_element_close=,ruby_lexer_en_attribute_pre=,ruby_lexer_en_unquoted_attribute_value=,ruby_lexer_en_quoted_attribute_value=,ruby_lexer_en_element_head=,ruby_lexer_en_html_element_head=,ruby_lexer_en_text=,ruby_lexer_en_html_script=,ruby_lexer_en_html_style=,ruby_lexer_en_main=,html?,encoding,map,chars,to_proc,length,<=,==,[],_ruby_lexer_from_state_actions,<<,_ruby_lexer_index_offsets,_ruby_lexer_key_spans,ord,_ruby_lexer_trans_keys,+,>,_ruby_lexer_indicies,-,_ruby_lexer_trans_targs,!=,_ruby_lexer_trans_actions,callback_simple,callback,advance_line,[]=,!,html_script_p,html_style_p,_ruby_lexer_to_state_actions,_ruby_lexer_eof_trans,new,ruby_lexer_start,class,force_encoding,pack,send,html_script?,html_style?"),function(b,y){var x=[t(b,"Oga")].concat(y);return function(b,y){var x=[t(b,"XML")].concat(y);return function(t,b,y){var x=r(t,null,"Lexer"),w=[x].concat(y),k=e.$r(w),U=x.$$prototype;return U.lines=U.cs=U.top=U.stack=U.act=v,function(e,t){e.$attr_accessor("_ruby_lexer_trans_keys"),e.$private("_ruby_lexer_trans_keys","_ruby_lexer_trans_keys=")}(e.get_singleton_class(x)),x["$_ruby_lexer_trans_keys="](e.large_array_unpack("0,0,45,100,45,45,79,111,67,99,84,116,89,121,80,112,69,101,9,32,67,67,68,68,65,65,84,84,65,65,91,91,0,127,0,127,62,62,62,62,0,127,0,127,115,115,99,99,114,114,105,105,112,112,116,116,62,62,115,115,116,116,121,121,108,108,101,101,62,62,60,60,0,127,9,32,0,127,0,127,0,127,0,127,45,45,45,45,45,45,93,93,93,93,93,93,63,63,63,63,62,62,39,39,39,39,34,34,34,34,93,93,93,93,0,127,0,127,10,10,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,62,62,0,127,0,127,0,127,0,127,9,39,10,10,9,62,9,62,34,39,0,127,0,127,10,10,62,62,0,127,0,127,0,127,0,127,0,127,10,10,62,62,0,127,0,127,0,127,60,60,60,60,0,127,0,127,60,60,60,60,47,60,60,60,60,60,60,60,47,60,60,60,0")),function(e,t){e.$attr_accessor("_ruby_lexer_key_spans"),e.$private("_ruby_lexer_key_spans","_ruby_lexer_key_spans=")}(e.get_singleton_class(x)),x["$_ruby_lexer_key_spans="](e.large_array_unpack("0,56,1,33,33,33,33,33,33,24,1,1,1,1,1,1,128,128,1,1,128,128,1,1,1,1,1,1,1,1,1,1,1,1,1,1,128,24,128,128,128,128,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,128,128,1,128,128,128,128,128,128,128,128,128,128,128,128,1,128,128,128,128,31,1,54,54,6,128,128,1,1,128,128,128,128,128,1,1,128,128,128,1,1,128,128,1,1,14,1,1,1,14,1")),function(e,t){e.$attr_accessor("_ruby_lexer_index_offsets"),e.$private("_ruby_lexer_index_offsets","_ruby_lexer_index_offsets=")}(e.get_singleton_class(x)),x["$_ruby_lexer_index_offsets="](e.large_array_unpack("0,0,57,59,93,127,161,195,229,263,288,290,292,294,296,298,300,429,558,560,562,691,820,822,824,826,828,830,832,834,836,838,840,842,844,846,848,977,1002,1131,1260,1389,1518,1520,1522,1524,1526,1528,1530,1532,1534,1536,1538,1540,1542,1544,1546,1548,1677,1806,1808,1937,2066,2195,2324,2453,2582,2711,2840,2969,3098,3227,3356,3358,3487,3616,3745,3874,3906,3908,3963,4018,4025,4154,4283,4285,4287,4416,4545,4674,4803,4932,4934,4936,5065,5194,5323,5325,5327,5456,5585,5587,5589,5604,5606,5608,5610,5625")),function(e,t){e.$attr_accessor("_ruby_lexer_indicies"),e.$private("_ruby_lexer_indicies","_ruby_lexer_indicies=")}(e.get_singleton_class(x)),x["$_ruby_lexer_indicies="](e.large_array_unpack("1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,2,0,4,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,11,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,12,0,13,0,14,0,15,0,16,0,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,18,0,18,18,18,18,18,18,18,18,18,18,0,0,0,0,0,0,0,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,0,0,0,0,18,0,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,19,18,18,0,0,0,0,0,18,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,21,21,20,21,21,21,21,21,21,21,21,21,21,20,20,20,20,20,20,20,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,20,20,20,20,21,20,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,20,20,20,20,20,21,23,22,25,24,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,27,27,26,27,27,27,27,27,27,27,27,27,27,26,26,26,26,26,26,26,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,26,26,26,26,27,26,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,26,26,26,26,26,27,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,29,29,28,29,29,29,29,29,29,29,29,29,29,28,28,28,28,28,28,28,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,28,28,28,28,29,28,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,28,28,28,28,28,29,31,30,32,30,33,30,34,30,35,30,36,30,37,30,39,38,40,38,41,38,42,38,43,38,44,38,46,45,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,49,47,47,47,47,47,47,47,47,47,47,47,48,48,50,48,48,48,48,48,48,48,48,48,48,47,47,47,47,47,51,47,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,47,47,47,47,48,47,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,47,47,47,47,47,48,11,11,52,52,11,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,11,52,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,18,18,20,18,18,18,18,18,18,18,18,18,18,53,20,20,20,20,20,20,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,20,20,20,20,18,20,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,20,20,20,20,20,18,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,21,21,54,21,21,21,21,21,21,21,21,21,21,54,54,54,54,54,54,54,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,54,54,54,54,21,54,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,54,54,54,54,54,21,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,18,18,54,18,18,18,18,18,18,18,18,18,18,53,54,54,54,54,54,54,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,54,54,54,54,18,54,18,18,18,18,18,18,18,18,18,18,18,18,55,18,18,18,18,18,18,18,18,18,18,18,18,18,54,54,54,54,54,18,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,18,18,54,18,18,18,18,18,18,18,18,18,18,53,54,54,54,54,54,54,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,54,54,54,54,18,54,18,18,18,18,18,18,18,18,18,18,18,56,18,18,18,18,18,18,18,18,18,18,18,18,18,18,54,54,54,54,54,18,58,57,59,57,60,59,62,61,63,61,64,63,66,65,67,65,68,67,70,69,71,69,73,72,74,72,76,75,77,75,80,80,80,80,80,80,80,80,80,79,81,80,80,82,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,79,80,83,80,80,80,80,84,80,80,80,80,80,78,78,80,78,78,78,78,78,78,78,78,78,78,80,80,80,80,85,80,80,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,86,78,78,87,78,78,78,78,78,78,78,88,80,80,80,78,80,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,86,78,78,87,78,78,78,78,78,78,78,80,80,80,80,80,78,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,78,78,89,78,78,78,78,78,78,78,78,78,78,89,89,89,89,89,89,89,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,89,89,89,89,78,89,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,89,89,89,89,89,78,81,90,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,78,78,91,78,78,78,78,78,78,78,78,78,78,91,91,91,91,91,91,91,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,92,78,78,78,78,78,91,91,91,91,78,91,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,92,78,78,78,78,78,91,91,91,91,91,78,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,78,78,91,78,78,78,78,78,78,78,78,78,78,91,91,91,91,91,91,91,78,93,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,91,91,91,91,78,91,78,93,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,91,91,91,91,91,78,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,78,78,91,78,78,78,78,78,78,78,78,78,78,91,91,91,91,91,91,91,78,78,78,78,78,78,78,78,78,78,78,94,78,78,78,78,78,78,78,78,78,78,78,78,78,78,91,91,91,91,78,91,78,78,78,78,78,78,78,78,78,78,78,94,78,78,78,78,78,78,78,78,78,78,78,78,78,78,91,91,91,91,91,78,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,78,78,91,78,78,78,78,78,78,78,78,78,78,91,91,91,91,91,91,91,78,78,78,78,78,78,78,78,95,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,91,91,91,91,78,91,78,78,78,78,78,78,78,78,95,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,91,91,91,91,91,78,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,78,78,91,78,78,78,78,78,78,78,78,78,78,91,91,91,91,91,91,91,78,78,96,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,91,91,91,91,78,91,78,78,96,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,91,91,91,91,91,78,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,78,78,91,78,78,78,78,78,78,78,78,78,78,91,91,91,91,91,91,91,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,97,78,91,91,91,91,78,91,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,97,78,91,91,91,91,91,78,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,78,78,91,78,78,78,78,78,78,78,78,78,78,91,91,91,91,91,91,91,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,98,78,78,78,78,78,78,78,91,91,91,91,78,91,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,98,78,78,78,78,78,78,78,91,91,91,91,91,78,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,78,78,91,78,78,78,78,78,78,78,78,78,78,91,91,91,91,91,91,91,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,99,78,78,78,78,78,78,91,91,91,91,78,91,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,99,78,78,78,78,78,78,91,91,91,91,91,78,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,78,78,91,78,78,78,78,78,78,78,78,78,78,91,91,91,91,91,91,91,78,78,78,78,100,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,91,91,91,91,78,91,78,78,78,78,100,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,91,91,91,91,91,78,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,78,78,91,78,78,78,78,78,78,78,78,78,78,91,91,91,91,91,91,91,78,78,78,78,78,78,78,78,78,78,78,78,96,78,78,78,78,78,78,78,78,78,78,78,78,78,91,91,91,91,78,91,78,78,78,78,78,78,78,78,78,78,78,78,96,78,78,78,78,78,78,78,78,78,78,78,78,78,91,91,91,91,91,78,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,103,102,102,102,102,104,102,102,102,102,102,101,101,102,101,101,101,101,101,101,101,101,101,101,102,102,102,102,102,105,102,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,102,102,102,102,101,102,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,102,102,102,102,102,101,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,107,107,106,107,107,107,107,107,107,107,107,107,107,106,106,106,106,106,106,106,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,106,106,106,106,107,106,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,106,106,106,106,106,107,109,108,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,110,110,80,110,110,110,110,110,110,110,110,110,110,80,80,80,80,80,80,80,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,80,80,80,80,110,80,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,80,80,80,80,80,110,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,110,110,111,110,110,110,110,110,110,110,110,110,110,112,111,111,111,111,111,111,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,111,111,111,111,110,111,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,111,111,111,111,111,110,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,113,113,114,113,113,113,113,113,113,113,113,113,113,114,114,114,114,115,114,114,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,114,114,114,114,113,114,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,114,114,114,114,114,113,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,117,117,116,117,117,117,117,117,117,117,117,117,117,118,116,116,116,116,116,116,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,116,116,116,116,117,116,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,116,116,116,116,116,117,120,120,119,119,121,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,120,119,122,119,119,119,119,122,119,120,123,125,125,124,124,125,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,125,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,125,124,126,126,124,124,126,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,126,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,126,124,128,127,127,127,127,129,127,131,131,131,131,131,131,131,131,131,131,132,131,131,133,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,130,130,134,130,130,130,130,130,130,130,130,130,130,131,131,135,136,137,131,131,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,131,131,131,131,130,131,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,131,131,131,131,131,130,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,130,130,138,130,130,130,130,130,130,130,130,130,130,139,138,138,138,138,138,138,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,138,138,138,138,130,138,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,138,138,138,138,138,130,132,140,142,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,143,143,141,143,143,143,143,143,143,143,143,143,143,141,141,141,141,141,141,141,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,141,141,141,141,143,141,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,141,141,141,141,141,143,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,143,143,144,143,143,143,143,143,143,143,143,143,143,145,144,144,144,144,144,144,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,144,144,144,144,143,144,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,144,144,144,144,144,143,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,27,27,144,27,27,27,27,27,27,27,27,27,27,144,144,144,144,144,144,144,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,144,144,144,144,27,144,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,144,144,144,144,144,27,147,147,147,147,147,147,147,147,147,147,148,147,147,149,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,146,146,150,146,146,146,146,146,146,146,146,146,146,146,147,151,152,153,147,147,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,147,147,147,147,146,147,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,147,147,147,147,147,146,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,146,146,154,146,146,146,146,146,146,146,146,146,146,146,154,154,154,154,154,154,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,154,154,154,154,146,154,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,154,154,154,154,154,146,148,155,157,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,158,158,156,158,158,158,158,158,158,158,158,158,158,156,156,156,156,156,156,156,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,156,156,156,156,158,156,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,156,156,156,156,156,158,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,158,158,159,158,158,158,158,158,158,158,158,158,158,160,159,159,159,159,159,159,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,159,159,159,159,158,159,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,159,159,159,159,159,158,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,29,29,159,29,29,29,29,29,29,29,29,29,29,159,159,159,159,159,159,159,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,159,159,159,159,29,159,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,159,159,159,159,159,29,162,161,164,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,165,161,161,161,161,161,161,161,161,161,161,161,165,165,165,165,165,165,165,165,165,165,165,165,165,161,161,164,161,161,165,161,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,161,161,161,161,165,161,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,161,161,161,161,161,165,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,166,161,161,161,161,161,161,161,161,161,161,161,166,166,166,166,166,166,166,166,166,166,166,166,166,161,161,164,161,161,166,161,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,161,161,161,161,166,161,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,161,161,161,161,161,166,168,167,169,167,170,169,169,169,169,169,169,169,169,169,169,169,169,171,169,171,169,173,172,174,172,175,174,174,174,174,174,174,174,174,174,174,174,174,176,174,176,174,0")),function(e,t){e.$attr_accessor("_ruby_lexer_trans_targs"),e.$private("_ruby_lexer_trans_targs","_ruby_lexer_trans_targs=")}(e.get_singleton_class(x)),x["$_ruby_lexer_trans_targs="](e.large_array_unpack("35,2,3,10,35,4,5,6,7,8,9,37,11,12,13,14,15,35,38,40,35,39,42,42,45,45,82,88,89,95,100,23,24,25,26,27,28,100,104,30,31,32,33,34,104,35,36,35,35,1,35,16,35,17,35,41,38,43,44,42,18,46,47,45,19,49,50,48,48,52,51,51,54,53,53,56,55,55,58,57,0,57,59,57,57,57,60,65,57,57,57,57,61,62,63,64,58,66,67,68,69,71,70,70,70,72,70,71,70,70,74,73,73,76,75,75,75,76,75,77,77,78,77,77,80,79,79,81,81,81,83,82,82,84,85,86,82,82,82,82,82,82,82,87,82,20,90,89,89,91,92,93,89,89,89,89,89,89,94,89,21,97,99,96,98,96,96,101,102,100,22,103,105,106,104,29,107")),function(e,t){e.$attr_accessor("_ruby_lexer_trans_actions"),e.$private("_ruby_lexer_trans_actions","_ruby_lexer_trans_actions=")}(e.get_singleton_class(x)),x["$_ruby_lexer_trans_actions="](e.large_array_unpack("1,0,0,0,2,0,0,0,0,0,0,3,0,0,0,0,0,4,5,5,6,0,7,8,9,10,11,0,12,0,13,0,0,0,0,0,0,14,15,0,0,0,0,0,16,19,20,21,22,0,23,0,24,0,25,5,26,3,27,28,0,3,27,29,0,3,3,30,31,3,32,33,3,34,35,3,36,37,38,39,0,40,0,41,42,43,0,0,44,45,46,47,0,0,0,0,48,0,0,0,0,3,49,50,51,3,52,0,53,54,0,55,56,3,57,58,59,0,60,61,62,3,63,64,0,65,66,67,68,69,0,70,71,0,0,0,72,73,74,75,76,77,78,20,79,0,0,80,81,0,0,0,82,83,84,85,86,87,20,88,0,3,89,90,89,91,92,3,27,93,0,3,3,27,94,0,3")),function(e,t){e.$attr_accessor("_ruby_lexer_to_state_actions"),e.$private("_ruby_lexer_to_state_actions","_ruby_lexer_to_state_actions=")}(e.get_singleton_class(x)),x["$_ruby_lexer_to_state_actions="](e.large_array_unpack("0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,0,0,0,0,0,0,17,0,0,17,0,0,17,0,0,17,0,17,0,17,0,17,0,0,0,0,0,0,0,0,0,0,0,0,17,0,0,17,0,17,0,17,0,17,0,17,17,0,0,0,0,0,0,17,0,0,0,0,0,0,17,0,0,0,17,0,0,0,17,0,0,0")),function(e,t){e.$attr_accessor("_ruby_lexer_from_state_actions"),e.$private("_ruby_lexer_from_state_actions","_ruby_lexer_from_state_actions=")}(e.get_singleton_class(x)),x["$_ruby_lexer_from_state_actions="](e.large_array_unpack("0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,0,0,0,0,0,0,18,0,0,18,0,0,18,0,0,18,0,18,0,18,0,18,0,0,0,0,0,0,0,0,0,0,0,0,18,0,0,18,0,18,0,18,0,18,0,18,18,0,0,0,0,0,0,18,0,0,0,0,0,0,18,0,0,0,18,0,0,0,18,0,0,0")),function(e,t){e.$attr_accessor("_ruby_lexer_eof_trans"),e.$private("_ruby_lexer_eof_trans","_ruby_lexer_eof_trans=")}(e.get_singleton_class(x)),x["$_ruby_lexer_eof_trans="](e.large_array_unpack("0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,21,23,25,27,29,31,31,31,31,31,31,31,39,39,39,39,39,39,0,48,53,21,55,55,55,0,60,60,0,64,64,0,68,68,0,72,0,75,0,78,0,90,91,92,92,92,92,92,92,92,92,92,92,0,107,109,0,112,0,117,0,124,0,127,0,0,139,141,142,142,145,145,0,155,156,157,157,160,160,0,164,164,164,0,170,170,170,0,175,175,175")),function(e,t){e.$attr_accessor("ruby_lexer_start")}(e.get_singleton_class(x)),x["$ruby_lexer_start="](35),function(e,t){e.$attr_accessor("ruby_lexer_error")}(e.get_singleton_class(x)),x["$ruby_lexer_error="](0),function(e,t){e.$attr_accessor("ruby_lexer_en_comment_body")}(e.get_singleton_class(x)),x["$ruby_lexer_en_comment_body="](42),function(e,t){e.$attr_accessor("ruby_lexer_en_cdata_body")}(e.get_singleton_class(x)),x["$ruby_lexer_en_cdata_body="](45),function(e,t){e.$attr_accessor("ruby_lexer_en_proc_ins_body")}(e.get_singleton_class(x)),x["$ruby_lexer_en_proc_ins_body="](48),function(e,t){e.$attr_accessor("ruby_lexer_en_string_squote")}(e.get_singleton_class(x)),x["$ruby_lexer_en_string_squote="](51),function(e,t){e.$attr_accessor("ruby_lexer_en_string_dquote")}(e.get_singleton_class(x)),x["$ruby_lexer_en_string_dquote="](53),function(e,t){e.$attr_accessor("ruby_lexer_en_doctype_inline")}(e.get_singleton_class(x)),x["$ruby_lexer_en_doctype_inline="](55),function(e,t){e.$attr_accessor("ruby_lexer_en_doctype")}(e.get_singleton_class(x)),x["$ruby_lexer_en_doctype="](57),function(e,t){e.$attr_accessor("ruby_lexer_en_xml_decl")}(e.get_singleton_class(x)),x["$ruby_lexer_en_xml_decl="](70),function(e,t){e.$attr_accessor("ruby_lexer_en_element_name")}(e.get_singleton_class(x)),x["$ruby_lexer_en_element_name="](73),function(e,t){e.$attr_accessor("ruby_lexer_en_element_close")}(e.get_singleton_class(x)),x["$ruby_lexer_en_element_close="](75),function(e,t){e.$attr_accessor("ruby_lexer_en_attribute_pre")}(e.get_singleton_class(x)),x["$ruby_lexer_en_attribute_pre="](77),function(e,t){e.$attr_accessor("ruby_lexer_en_unquoted_attribute_value")}(e.get_singleton_class(x)),x["$ruby_lexer_en_unquoted_attribute_value="](79),function(e,t){e.$attr_accessor("ruby_lexer_en_quoted_attribute_value")}(e.get_singleton_class(x)),x["$ruby_lexer_en_quoted_attribute_value="](81),function(e,t){e.$attr_accessor("ruby_lexer_en_element_head")}(e.get_singleton_class(x)),x["$ruby_lexer_en_element_head="](82),function(e,t){e.$attr_accessor("ruby_lexer_en_html_element_head")}(e.get_singleton_class(x)),x["$ruby_lexer_en_html_element_head="](89),function(e,t){e.$attr_accessor("ruby_lexer_en_text")}(e.get_singleton_class(x)),x["$ruby_lexer_en_text="](96),function(e,t){e.$attr_accessor("ruby_lexer_en_html_script")}(e.get_singleton_class(x)),x["$ruby_lexer_en_html_script="](100),function(e,t){e.$attr_accessor("ruby_lexer_en_html_style")}(e.get_singleton_class(x)),x["$ruby_lexer_en_html_style="](104),function(e,t){e.$attr_accessor("ruby_lexer_en_main")}(e.get_singleton_class(x)),x["$ruby_lexer_en_main="](35),p(x,"$advance_native",(function(e){var t,r,p,m,d,f,h,g,b,y,x,w,k,U,E,M,q,S,O,A=this,T=v,N=v,z=v,R=v,I=v,C=v,P=v,L=v,F=v,D=v,j=v,B=v;for(r=A["$html?"](),p=e.$encoding(),T=n(e.$chars(),"map",[],"ord".$to_proc()),N=0,z=0,R=0,I=0,C=a(m=A.lines)?m:0,d=T.$length(),f=T.$length(),"advance_line",h="on_attribute","on_attribute_ns","on_cdata_start",g="on_cdata_body","on_cdata_end","on_comment_start",b="on_comment_body","on_comment_end","on_doctype_end","on_doctype_inline",y="on_doctype_name","on_doctype_start","on_doctype_type",x="on_element_end","on_element_name","on_element_ns",w="on_element_open_end","on_proc_ins_end",k="on_proc_ins_name",U="on_proc_ins_start","on_proc_ins_body",E="on_string_body",M="on_string_dquote",q="on_string_squote",S="on_text","on_xml_decl_end","on_xml_decl_start",!1,P=null==(t=s(v))[0]?v:t[0],L=null==t[1]?v:t[1],F=null==t[2]?v:t[2],D=null==t[3]?v:t[3],null==t[4]?v:t[4],null==t[5]?v:t[5],j=0,10,15,O=20,30,40;a(!0);){if(a(i(j,0))){if(o(R,d)){j=30;continue}if(o(A.cs,0)){j=40;continue}}if(a(i(j,10))){if(18===A.$_ruby_lexer_from_state_actions()["$[]"](A.cs).valueOf())N=R;F=A.cs["$<<"](1),D=A.$_ruby_lexer_index_offsets()["$[]"](A.cs),P=A.$_ruby_lexer_key_spans()["$[]"](A.cs),B=T["$[]"](R).$ord(),L=a($(P,0))&&a(i(A.$_ruby_lexer_trans_keys()["$[]"](F),B))&&a(i(B,A.$_ruby_lexer_trans_keys()["$[]"](l(F,1))))?A.$_ruby_lexer_indicies()["$[]"](u(l(D,B),A.$_ruby_lexer_trans_keys()["$[]"](F))):A.$_ruby_lexer_indicies()["$[]"](l(D,P))}if(a(i(j,15))&&(A.cs=A.$_ruby_lexer_trans_targs()["$[]"](L),c(A.$_ruby_lexer_trans_actions()["$[]"](L),0)))switch(A.$_ruby_lexer_trans_actions()["$[]"](L).valueOf()){case 3:o(T["$[]"](R).$ord(),10)&&(C=l(C,1));break;case 20:case 39:case 60:case 70:case 80:z=l(R,1);break;case 8:z=l(R,1),A.$callback_simple("on_comment_end"),A.cs=35;break;case 28:z=R,R=u(R,1),A.$callback(b,T,p,N,z),a($(C,0))&&(A.$advance_line(C),C=0);break;case 7:R=u(z,1),A.$callback(b,T,p,N,z),a($(C,0))&&(A.$advance_line(C),C=0);break;case 10:z=l(R,1),A.$callback_simple("on_cdata_end"),A.cs=35;break;case 29:z=R,R=u(R,1),A.$callback(g,T,p,N,z),a($(C,0))&&(A.$advance_line(C),C=0);break;case 9:R=u(z,1),A.$callback(g,T,p,N,z),a($(C,0))&&(A.$advance_line(C),C=0);break;case 31:z=l(R,1),A.$callback_simple("on_proc_ins_end"),A.cs=35;break;case 30:z=R,R=u(R,1),A.$callback("on_proc_ins_body",T,p,N,z),a($(C,0))&&(A.$advance_line(C),C=0);break;case 32:z=l(R,1),A.$callback_simple(q),A.top=u(A.top,1),A.cs=A.stack["$[]"](A.top),j=O;continue;case 33:case 35:z=R,R=u(R,1),A.$callback(E,T,p,N,z),a($(C,0))&&(A.$advance_line(C),C=0);break;case 34:z=l(R,1),A.$callback_simple(M),A.top=u(A.top,1),A.cs=A.stack["$[]"](A.top),j=O;continue;case 36:z=l(R,1),A.cs=57;break;case 37:z=R,R=u(R,1),A.$callback("on_doctype_inline",T,p,N,z),a($(C,0))&&(A.$advance_line(C),C=0);break;case 44:z=l(R,1),A.cs=55;break;case 42:case 51:z=l(R,1),A.$callback_simple(q),A.stack["$[]="](A.top,A.cs),A.top=l(A.top,1),A.cs=51,j=O;continue;case 41:case 50:z=l(R,1),A.$callback_simple(M),A.stack["$[]="](A.top,A.cs),A.top=l(A.top,1),A.cs=53,j=O;continue;case 43:z=l(R,1),A.$callback_simple("on_doctype_end"),A.cs=35;break;case 40:case 71:case 81:z=l(R,1),A.$advance_line(1);break;case 47:z=R,R=u(R,1),A.$callback(y,T,p,N,z);break;case 46:case 76:case 85:z=R,R=u(R,1),A.$advance_line(1);break;case 45:switch(A.act.valueOf()){case 13:R=u(z,1),A.$callback("on_doctype_type",T,p,N,z);break;case 17:R=u(z,1),A.$callback(y,T,p,N,z)}break;case 54:z=l(R,1),a($(C,0))&&(A.$advance_line(C),C=0),A.$callback_simple("on_xml_decl_end"),A.cs=35;break;case 52:z=R,R=u(R,1),a($(C,0))&&(A.$advance_line(C),C=0),A.$callback(h,T,p,N,z);break;case 53:case 64:case 79:case 77:case 88:case 86:z=R,R=u(R,1);break;case 56:z=l(R,1),_(r)&&A.$callback("on_element_ns",T,p,N,u(z,1));break;case 55:z=R,R=u(R,1),A.$callback("on_element_name",T,p,N,z),a(r)?A.cs=89:A.cs=82;break;case 59:z=R,R=u(R,1),A.$callback(x,T,p,N,z);break;case 63:z=l(R,1),R=u(R,1),a($(C,0))&&(A.$advance_line(C),C=0),A.cs=81;break;case 61:if(z=l(R,1),R=u(R,1),a($(C,0))&&(A.$advance_line(C),C=0),!a(r)){A.top=u(A.top,1),A.cs=A.stack["$[]"](A.top),j=O;continue}A.cs=79;break;case 65:case 67:z=l(R,1),R=u(R,1),A.top=u(A.top,1),A.cs=A.stack["$[]"](A.top),j=O;continue;case 66:z=R,R=u(R,1),A.$callback_simple(q),A.$callback(E,T,p,N,z),A.$callback_simple(q);break;case 69:z=l(R,1),A.$callback_simple(q),A.cs=51;break;case 68:z=l(R,1),A.$callback_simple(M),A.cs=53;break;case 75:z=l(R,1),A.$callback("on_attribute_ns",T,p,N,u(z,1));break;case 72:case 82:z=l(R,1),A.stack["$[]="](A.top,A.cs),A.top=l(A.top,1),A.cs=77,j=O;continue;case 73:z=l(R,1),A.$callback_simple(w),A.cs=35;break;case 78:case 87:case 14:case 16:z=l(R,1),A.$callback_simple(x),A.cs=35;break;case 74:case 84:z=R,R=u(R,1),A.$callback(h,T,p,N,z);break;case 11:case 12:R=u(z,1);break;case 83:z=l(R,1),A.$callback_simple(w),a(A.$html_script_p())?A.cs=100:a(A.$html_style_p())?A.cs=104:A.cs=35;break;case 92:z=l(R,1),A.$callback(S,T,p,N,z),a($(C,0))&&(A.$advance_line(C),C=0),A.cs=35;break;case 91:z=l(R,1),A.$callback(S,T,p,N,I),R=u(I,1),I=0,a($(C,0))&&(A.$advance_line(C),C=0),A.cs=35;break;case 90:z=R,R=u(R,1),A.$callback(S,T,p,N,z),a($(C,0))&&(A.$advance_line(C),C=0),A.cs=35;break;case 93:case 94:z=R,R=u(R,1),A.$callback(S,T,p,N,z),a($(C,0))&&(A.$advance_line(C),C=0);break;case 13:case 15:R=u(z,1),A.$callback(S,T,p,N,z),a($(C,0))&&(A.$advance_line(C),C=0);break;case 2:z=l(R,1),A.$callback_simple("on_comment_start"),A.cs=42;break;case 4:z=l(R,1),A.$callback_simple("on_cdata_start"),A.cs=45;break;case 22:z=l(R,1),R=u(R,1),A.cs=73;break;case 23:z=l(R,1),A.cs=75;break;case 19:z=l(R,1),R=u(R,1),A.cs=96;break;case 24:z=R,R=u(R,1),A.$callback_simple("on_doctype_start"),a($(C,0))&&(A.$advance_line(C),C=0),A.cs=57;break;case 25:z=R,R=u(R,1),A.$callback_simple(U),A.$callback(k,T,p,l(N,2),z),A.cs=48;break;case 21:z=R,R=u(R,1),R=u(R,1),A.cs=96;break;case 1:R=u(z,1),R=u(R,1),A.cs=96;break;case 6:switch(A.act.valueOf()){case 62:R=u(z,1),A.$callback_simple("on_xml_decl_start"),A.cs=70;break;case 65:R=u(z,1),A.$callback_simple(U),A.$callback(k,T,p,l(N,2),z),A.cs=48}break;case 89:o(T["$[]"](R).$ord(),10)&&(C=l(C,1)),I=R;break;case 49:case 57:case 62:o(T["$[]"](R).$ord(),10)&&(C=l(C,1)),z=l(R,1);break;case 27:z=l(R,1),o(T["$[]"](R).$ord(),10)&&(C=l(C,1));break;case 48:z=l(R,1),A.act=13;break;case 38:z=l(R,1),A.act=17;break;case 26:z=l(R,1),A.act=62;break;case 5:z=l(R,1),A.act=65;break;case 58:z=l(R,1),a($(C,0))&&(A.$advance_line(C),C=0),A.cs=35,o(T["$[]"](R).$ord(),10)&&(C=l(C,1))}if(a(i(j,O))){if(17===A.$_ruby_lexer_to_state_actions()["$[]"](A.cs).valueOf())N=v;if(o(A.cs,0)){j=40;continue}if(R=l(R,1),c(R,d)){j=10;continue}}if(a(i(j,30))&&o(R,f)&&a($(A.$_ruby_lexer_eof_trans()["$[]"](A.cs),0)))L=u(A.$_ruby_lexer_eof_trans()["$[]"](A.cs),1),j=15;else if(a(i(j,40)))break}return A.lines=C,v})),p(x,"$reset_native",(function(){var e=this;return e.act=0,e.top=0,e.stack=k("Array").$new(4,0),e.cs=e.$class().$ruby_lexer_start(),v})),p(x,"$callback",(function(e,t,r,n,a){var s;return s=t["$[]"](n,u(a,n)).$pack("U*").$force_encoding(r),this.$send(e,s)})),p(x,"$callback_simple",(function(e){return this.$send(e)})),p(x,"$html_script_p",(function(){return this["$html_script?"]()})),p(x,"$html_style_p",(function(){return this["$html_style?"]()})),p(x,"$method_missing",(function t(r,a,s){var i,o,l,$,u=t.$$p||v;return t.$$p=null,i=m(arguments,1),o=d(i),o=f(o),l=i,$=h(o,{}),n(this.$class(),"send",[r].concat(g(l)).concat([e.to_hash($)]),u.$to_proc())}),-2)}(x[0],0,x)}(x[0],x)}(b[0],b)},Opal.modules["oga/xml/to_xml"]=function(e){var t=e.module,r=e.def,n=[];e.nil;return e.add_stubs("to_xml,new,alias_method"),function(n,a){var s=[t(n,"Oga")].concat(a);return function(n,a){var s=[t(n,"XML")].concat(a);return function(n,a){var s=t(n,"ToXML"),i=[s].concat(a),o=e.$r(i);return r(s,"$to_xml",(function(){return o("Generator").$new(this).$to_xml()})),s.$alias_method("to_s","to_xml")}(s[0],s)}(s[0],s)}(n[0],n)},Opal.modules["oga/xml/html_void_elements"]=function(e){var t=e.module,r=e.const_set,n=[];e.nil;return e.add_stubs("new"),function(n,a){var s=[t(n,"Oga")].concat(a);return function(n,a){var s=[t(n,"XML")].concat(a),i=e.$r(s);return r(s[0],"HTML_VOID_ELEMENTS",i("Whitelist").$new(["area","base","br","col","command","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"]))}(s[0],s)}(n[0],n)},Opal.modules["oga/xml/entities"]=function(e){var t=e.module,r=e.const_set,n=e.annotate_regexp,a=e.truthy,s=e.send,i=e.gvars,o=e.defs,l=[],$=e.nil;return e.add_stubs("freeze,new,join,keys,include?,gsub,pack_string,private,pack,Integer,valid_encoding?"),function(l,u){var c=[t(l,"Oga")].concat(u);return function(l,u){var c=[t(l,"XML")].concat(u);return function(l,u){var c=t(l,"Entities"),_=[c].concat(u),p=e.$r(_);return r(_[0],"DECODE_MAPPING",new Map([["&lt;","<"],["&gt;",">"],["&apos;","'"],["&quot;",'"'],["&amp;","&"]])),r(_[0],"ENCODE_MAPPING",new Map([["&","&amp;"],[">","&gt;"],["<","&lt;"]])),r(_[0],"ENCODE_ATTRIBUTE_MAPPING",new Map([["&","&amp;"],[">","&gt;"],["<","&lt;"],["'","&apos;"],['"',"&quot;"]])),r(_[0],"AMPERSAND","&".$freeze()),r(_[0],"REGULAR_ENTITY",n(/&[a-zA-Z0-9]+;/u,null,"")),r(_[0],"NUMERIC_CODE_POINT_ENTITY",n(/&#(\d+);/u,null,"")),r(_[0],"HEX_CODE_POINT_ENTITY",n(/&#x([a-fA-F0-9]+);/u,null,"")),r(_[0],"ENCODE_REGEXP",p("Regexp").$new(p("ENCODE_MAPPING").$keys().$join("|"))),r(_[0],"ENCODE_ATTRIBUTE_REGEXP",p("Regexp").$new(p("ENCODE_ATTRIBUTE_MAPPING").$keys().$join("|"))),o(c,"$decode",(function(e,t){return null==t&&(t=p("DECODE_MAPPING")),a(e["$include?"](p("AMPERSAND")))?(e=e.$gsub(p("REGULAR_ENTITY"),t),a(e["$include?"](p("AMPERSAND")))&&(e=s(e,"gsub",[p("NUMERIC_CODE_POINT_ENTITY")],(function e(t){var r,n;return null==t&&(t=$),a(n=(null==e.$$s?this:e.$$s).$pack_string((r=i["~"])===$?$:r["$[]"](1),10))?n:t}),{$$s:this})),a(e["$include?"](p("AMPERSAND")))&&(e=s(e,"gsub",[p("HEX_CODE_POINT_ENTITY")],(function e(t){var r,n;return null==t&&(t=$),a(n=(null==e.$$s?this:e.$$s).$pack_string((r=i["~"])===$?$:r["$[]"](1),16))?n:t}),{$$s:this})),e):e}),-2),o(c,"$encode",(function(e,t){return null==t&&(t=p("ENCODE_MAPPING")),e.$gsub(p("ENCODE_REGEXP"),t)}),-2),o(c,"$encode_attribute",(function(e){return e.$gsub(p("ENCODE_ATTRIBUTE_REGEXP"),p("ENCODE_ATTRIBUTE_MAPPING"))})),c.$private(),o(c,"$pack_string",(function(e,t){var r=$;return r=[this.$Integer(e,t)].$pack("U*"),a(r["$valid_encoding?"]())?r:$}))}(c[0],c)}(c[0],c)}(l[0],l)},Opal.modules["oga/xml/querying"]=function(e){var t=e.module,r=e.slice,n=e.extract_kwargs,a=e.ensure_kwargs,s=e.hash_get,i=e.def,o=e.send,l=e.to_a,$=e.truthy,u=[],c=e.nil,_=e.$$$;return e.add_stubs("parse_with_cache,compile_with_cache,call,xpath,is_a?,first,css"),function(u,p){var m=[t(u,"Oga")].concat(p);return function(u,p){var m=[t(u,"XML")].concat(p);return function(u,p){var m=t(u,"Querying"),d=[m].concat(p),f=e.$r(d);return i(m,"$xpath",(function(e,t,i){var o,l,$,u,p;return o=r(arguments,1),l=n(o),l=a(l),o.length>0&&($=o.shift()),null==$&&($=new Map),null==(u=s(l,"namespaces"))&&(u=c),p=_(f("XPath"),"Parser").$parse_with_cache(e),_(f("XPath"),"Compiler").$compile_with_cache(p,new Map([["namespaces",u]])).$call(this,$)}),-2),i(m,"$at_xpath",(function(e,t){var i,u,p,m,d=c;return i=r(arguments),u=n(i),u=a(u),p=i,null==(m=s(u,"namespaces"))&&(m=c),d=o(this,"xpath",l(p).concat([new Map([["namespaces",m]])])),$(d["$is_a?"](_(f("XML"),"NodeSet")))?d.$first():d}),-1),i(m,"$css",(function(e){var t;return t=_(f("CSS"),"Parser").$parse_with_cache(e),_(f("XPath"),"Compiler").$compile_with_cache(t).$call(this)})),i(m,"$at_css",(function(e){var t,n=c;return t=r(arguments),n=o(this,"css",l(t)),$(n["$is_a?"](_(f("XML"),"NodeSet")))?n.$first():n}),-1)}(m[0],m)}(m[0],m)}(u[0],u)},Opal.modules["oga/xml/traversal"]=function(e){var t=e.module,r=e.truthy,n=e.send,a=e.def,s=[],i=e.nil;return e.add_stubs("to_enum,reverse,to_a,children,empty?,pop,catch,reverse_each,<<"),function(s,o){var l=[t(s,"Oga")].concat(o);return function(s,o){return function(s){var o=t(s,"Traversal");return a(o,"$each_node",(function t(){var a=t.$$p||i,s=this,o=i,l=i;if(t.$$p=null,a===i)return s.$to_enum("each_node");for(o=s.$children().$to_a().$reverse();!r(o["$empty?"]());)l=o.$pop(),n(s,"catch",["skip_children"],(function(){return e.yield1(a,l),n(l.$children().$to_a(),"reverse_each",[],(function(e){return null==e&&(e=i),o["$<<"](e)}))}))}))}([t(s,"XML")].concat(o)[0])}(l[0],l)}(s[0],s)},Opal.modules["oga/xml/expanded_name"]=function(e){var t=e.module,r=e.truthy,n=e.def,a=[];e.nil;return e.add_stubs("namespace_name,name"),function(e,a){var s=[t(e,"Oga")].concat(a);return function(e,a){return function(e){var a=t(e,"ExpandedName");return n(a,"$expanded_name",(function(){var e=this;return r(e.$namespace_name())?e.$namespace_name()+":"+e.$name():e.$name()}))}([t(e,"XML")].concat(a)[0])}(s[0],s)}(a[0],a)},Opal.modules["oga/xml/node"]=function(e){var t=e.module,r=e.klass,n=e.truthy,a=e.send,s=e.def,i=e.not,o=e.thrower,l=e.rb_plus,$=[],u=e.nil,c=e.$$$;return e.add_stubs("include,attr_reader,attr_accessor,node_set=,[],children=,new,is_a?,owner=,take_ownership_on_nodes,node_set,owner,previous,next,loop,!,delete,before,remove,index,insert,+,nil?,root_node,html?,to_enum,parent"),function($,_){var p=[t($,"Oga")].concat(_);return function($,_){var p=[t($,"XML")].concat(_);return function(t,$,_){var p=r(t,null,"Node"),m=[p].concat(_),d=e.$r(m),f=p.$$prototype;return f.children=f.root_node=f.html_p=u,p.$include(d("Traversal")),p.$include(d("ToXML")),p.$attr_reader("node_set"),p.$attr_accessor("previous"),p.$attr_accessor("next"),s(p,"$initialize",(function(e){var t;return null==e&&(e=new Map),this["$node_set="](e["$[]"]("node_set")),n(e["$[]"]("children"))?(t=[e["$[]"]("children")],a(this,"children=",t),t[t.length-1]):u}),-1),s(p,"$node_set=",(function(e){var t=this;return t.node_set=e,t.root_node=u,t.html_p=u,t.previous=u,t.next=u})),s(p,"$children",(function(){var e,t=this;return t.children=n(e=t.children)?e:d("NodeSet").$new([],t)})),s(p,"$children=",(function(e){var t=this;return n(e["$is_a?"](d("NodeSet")))?(e["$owner="](t),e.$take_ownership_on_nodes(),t.children=e):t.children=d("NodeSet").$new(e,t)})),s(p,"$parent",(function(){return n(this.$node_set())?this.$node_set().$owner():u})),s(p,"$previous_element",(function(){var e=u;for(e=this;n(e=e.$previous());)if(n(e["$is_a?"](d("Element"))))return e;return u})),s(p,"$next_element",(function(){var e=u;for(e=this;n(e=e.$next());)if(n(e["$is_a?"](d("Element"))))return e;return u})),s(p,"$root_node",(function(){var e=this,t=u;return n(e.root_node)||(t=e,function(){try{var r=o("break");return a(e,"loop",[],(function e(){if(i(t["$is_a?"](d("Document")))&&n(t.$node_set()))return t=t.$node_set().$owner();r.$throw(u,e.$$is_lambda)}))}catch(e){if(e===r)return e.$v;throw e}finally{r.is_orphan=!0}}(),e.root_node=t),e.root_node})),s(p,"$remove",(function(){var e=this;return n(e.$node_set())?e.$node_set().$delete(e):u})),s(p,"$replace",(function(e){return n(e["$is_a?"](d("String")))&&(e=d("Text").$new(new Map([["text",e]]))),this.$before(e),this.$remove()})),s(p,"$before",(function(e){var t,r=this;return t=r.$node_set().$index(r),r.$node_set().$insert(t,e)})),s(p,"$after",(function(e){var t,r=this;return t=l(r.$node_set().$index(r),1),r.$node_set().$insert(t,e)})),s(p,"$html?",(function(){var e=this,t=u,r=u;return n(e.html_p["$nil?"]())&&(t=e.$root_node(),e.html_p=n(r=t["$is_a?"](d("Document")))?t["$html?"]():r),e.html_p})),s(p,"$xml?",(function(){return this["$html?"]()["$!"]()})),s(p,"$each_ancestor",(function t(){var r=t.$$p||u,a=u;if(t.$$p=null,r===u)return this.$to_enum("each_ancestor");for(a=this.$parent();n(a["$is_a?"](c(d("XML"),"Element")));)e.yield1(r,a),a=a.$parent()}))}(p[0],0,p)}(p[0],p)}($[0],$)},Opal.modules["oga/xml/document"]=function(e){var t=e.module,r=e.klass,n=e.truthy,a=e.send,s=e.def,i=e.return_self,o=e.return_val,l=[],$=e.nil;return e.add_stubs("include,attr_accessor,attr_reader,[],children=,new,is_a?,owner=,take_ownership_on_nodes,equal?,type,each,send,<<,inspect,strip,join"),function(l,u){var c=[t(l,"Oga")].concat(u);return function(l,u){var c=[t(l,"XML")].concat(u);return function(t,l,u){var c=r(t,null,"Document"),_=[c].concat(u),p=e.$r(_);return c.$$prototype.children=$,c.$include(p("Querying")),c.$include(p("Traversal")),c.$include(p("ToXML")),c.$attr_accessor("doctype"),c.$attr_accessor("xml_declaration"),c.$attr_reader("type"),s(c,"$initialize",(function(e){var t,r,s=this;return null==e&&(e=new Map),s.doctype=e["$[]"]("doctype"),s.xml_declaration=e["$[]"]("xml_declaration"),s.type=n(r=e["$[]"]("type"))?r:"xml",n(e["$[]"]("children"))?(t=[e["$[]"]("children")],a(s,"children=",t),t[t.length-1]):$}),-1),s(c,"$children",(function(){var e,t=this;return t.children=n(e=t.children)?e:p("NodeSet").$new([],t)})),s(c,"$children=",(function(e){var t=this;return n(e["$is_a?"](p("NodeSet")))?(e["$owner="](t),e.$take_ownership_on_nodes(),t.children=e):t.children=p("NodeSet").$new(e,t)})),s(c,"$root_node",i),s(c,"$html?",(function(){return this.$type()["$equal?"]("html")})),s(c,"$inspect",(function(){var e=$;return e=[],a(["doctype","xml_declaration","children"],"each",[],(function t(r){var a=$;return null==r&&(r=$),a=(null==t.$$s?this:t.$$s).$send(r),n(a)?e["$<<"](r+": "+a.$inspect()):$}),{$$s:this}),("Document(\n "+e.$join("\n ")+"\n)\n").$strip()})),s(c,"$literal_html_name?",o(!1))}(c[0],0,c)}(c[0],c)}(l[0],l)},Opal.modules["oga/xml/character_node"]=function(e){var t=e.module,r=e.klass,n=e.send2,a=e.find_super,s=e.def,i=[],o=e.nil;return e.add_stubs("attr_accessor,[],last,split,to_s,class,inspect,text"),function(i,l){var $=[t(i,"Oga")].concat(l);return function(i,l){var $=[t(i,"XML")].concat(l),u=e.$r($);return function(e,t){var i=r(e,t,"CharacterNode");return i.$attr_accessor("text"),s(i,"$initialize",(function e(t){var r=e.$$p||o,s=this;return e.$$p=null,null==t&&(t=new Map),n(s,a(s,"initialize",e,!1,!0),"initialize",[t],r),s.text=t["$[]"]("text")}),-1),s(i,"$inspect",(function(){return this.$class().$to_s().$split("::").$last()+"("+this.$text().$inspect()+")"}))}($[0],u("Node"))}($[0],$)}(i[0],i)},Opal.modules["oga/xml/text"]=function(e){var t=e.module,r=e.klass,n=e.slice,a=e.send2,s=e.find_super,i=e.to_a,o=e.def,l=e.truthy,$=[],u=e.nil;return e.add_stubs("decode_entities?,try_decode,html?,!,inside_literal_html?,parent,literal_html_name?"),function($,c){var _=[t($,"Oga")].concat(c);return function($,c){var _=[t($,"XML")].concat(c),p=e.$r(_);return function(t,$,c){var _=r(t,$,"Text"),p=[_].concat(c),m=e.$r(p),d=_.$$prototype;return d.text=d.decoded=u,o(_,"$initialize",(function e(t){var r,o=e.$$p||u,l=this;return e.$$p=null,r=n(arguments),a(l,s(l,"initialize",e,!1,!0),"initialize",i(r),o),l.decoded=!1}),-1),o(_,"$text=",(function(e){return this.decoded=!1,this.text=e})),o(_,"$text",(function(){var e=this;return l(e["$decode_entities?"]())&&(e.text=m("EntityDecoder").$try_decode(e.text,e["$html?"]()),e.decoded=!0),e.text})),o(_,"$decode_entities?",(function(){var e;return l(e=this.decoded["$!"]())?this["$inside_literal_html?"]()["$!"]():e})),o(_,"$inside_literal_html?",(function(){var e,t,r=u;return r=this.$parent(),l(e=l(t=r)?this["$html?"]():t)?r["$literal_html_name?"]():e}))}(_[0],p("CharacterNode"),_)}(_[0],_)}($[0],$)},Opal.modules["oga/xml/comment"]=function(e){var t=e.module,r=e.klass,n=[],a=e.nil;return function(n,s){var i=[t(n,"Oga")].concat(s);return function(n,s){var i=[t(n,"XML")].concat(s),o=e.$r(i);return r(i[0],o("CharacterNode"),"Comment"),a}(i[0],i)}(n[0],n)},Opal.modules["oga/xml/cdata"]=function(e){var t=e.module,r=e.klass,n=[],a=e.nil;return function(n,s){var i=[t(n,"Oga")].concat(s);return function(n,s){var i=[t(n,"XML")].concat(s),o=e.$r(i);return r(i[0],o("CharacterNode"),"Cdata"),a}(i[0],i)}(n[0],n)},Opal.modules["oga/xml/processing_instruction"]=function(e){var t=e.module,r=e.klass,n=e.send2,a=e.find_super,s=e.def,i=[],o=e.nil;return e.add_stubs("attr_accessor,[],inspect,name,text"),function(i,l){var $=[t(i,"Oga")].concat(l);return function(i,l){var $=[t(i,"XML")].concat(l),u=e.$r($);return function(e,t){var i=r(e,t,"ProcessingInstruction");return i.$attr_accessor("name"),s(i,"$initialize",(function e(t){var r=e.$$p||o,s=this;return e.$$p=null,null==t&&(t=new Map),n(s,a(s,"initialize",e,!1,!0),"initialize",[t],r),s.name=t["$[]"]("name")}),-1),s(i,"$inspect",(function(){return"ProcessingInstruction(name: "+this.$name().$inspect()+" text: "+this.$text().$inspect()+")"}))}($[0],u("CharacterNode"))}($[0],$)}(i[0],i)},Opal.modules["oga/xml/xml_declaration"]=function(e){var t=e.module,r=e.klass,n=e.send2,a=e.find_super,s=e.truthy,i=e.def,o=e.send,l=e.not,$=[],u=e.nil;return e.add_stubs("attr_accessor,[],each,send,!,empty?,<<,inspect,join"),function($,c){var _=[t($,"Oga")].concat(c);return function($,c){var _=[t($,"XML")].concat(c),p=e.$r(_);return function(e,t){var $=r(e,t,"XmlDeclaration");return $.$attr_accessor("version"),$.$attr_accessor("encoding"),$.$attr_accessor("standalone"),i($,"$initialize",(function e(t){var r=e.$$p||u,i=this,o=u;return e.$$p=null,null==t&&(t=new Map),n(i,a(i,"initialize",e,!1,!0),"initialize",[t],r),i.version=s(o=t["$[]"]("version"))?o:"1.0",i.encoding=s(o=t["$[]"]("encoding"))?o:"UTF-8",i.standalone=t["$[]"]("standalone"),i.name="xml"}),-1),i($,"$inspect",(function(){var e=u;return e=[],o(["version","encoding","standalone"],"each",[],(function t(r){var n=u;return null==r&&(r=u),n=(null==t.$$s?this:t.$$s).$send(r),s(n)&&l(n["$empty?"]())?e["$<<"](r+": "+n.$inspect()):u}),{$$s:this}),"XmlDeclaration("+e.$join(" ")+")"}))}(_[0],p("ProcessingInstruction"))}(_[0],_)}($[0],$)},Opal.modules["oga/xml/doctype"]=function(e){var t=e.module,r=e.klass,n=e.def,a=e.send,s=e.not,i=e.truthy,o=[],l=e.nil;return e.add_stubs("attr_accessor,[],each,send,!,empty?,<<,inspect,join"),function(o,$){var u=[t(o,"Oga")].concat($);return function(o,$){var u=[t(o,"XML")].concat($),c=e.$r(u);return function(e,t){var o=r(e,t,"Doctype");return o.$attr_accessor("name"),o.$attr_accessor("type"),o.$attr_accessor("public_id"),o.$attr_accessor("system_id"),o.$attr_accessor("inline_rules"),n(o,"$initialize",(function(e){var t=this;return null==e&&(e=new Map),t.name=e["$[]"]("name"),t.type=e["$[]"]("type"),t.public_id=e["$[]"]("public_id"),t.system_id=e["$[]"]("system_id"),t.inline_rules=e["$[]"]("inline_rules")}),-1),n(o,"$inspect",(function(){var e=l;return e=[],a(["name","type","public_id","system_id","inline_rules"],"each",[],(function t(r){var n=l;return null==r&&(r=l),n=(null==t.$$s?this:t.$$s).$send(r),i(n)&&s(n["$empty?"]())?e["$<<"](r+": "+n.$inspect()):l}),{$$s:this}),"Doctype("+e.$join(" ")+")"}))}(u[0],c("Node"))}(u[0],u)}(o[0],o)},Opal.modules["oga/xml/namespace"]=function(e){var t=e.module,r=e.klass,n=e.def,a=e.truthy,s=[];e.nil;return e.add_stubs("attr_accessor,[],to_s,name,inspect,uri,is_a?,class,=="),function(e,s){var i=[t(e,"Oga")].concat(s);return function(e,s){return function(e,t){var s=r(e,null,"Namespace");return s.$attr_accessor("name"),s.$attr_accessor("uri"),n(s,"$initialize",(function(e){return null==e&&(e=new Map),this.name=e["$[]"]("name"),this.uri=e["$[]"]("uri")}),-1),n(s,"$to_s",(function(){return this.$name().$to_s()})),n(s,"$inspect",(function(){return"Namespace(name: "+this.$name().$inspect()+" uri: "+this.$uri().$inspect()+")"})),n(s,"$==",(function(e){var t,r,n=this;return a(t=a(r=e["$is_a?"](n.$class()))?n.$name()["$=="](e.$name()):r)?n.$uri()["$=="](e.$uri()):t}))}([t(e,"XML")].concat(s)[0])}(i[0],i)}(s[0],s)},Opal.modules["oga/xml/default_namespace"]=function(e){var t=e.module,r=e.const_set,n=[];e.nil;return e.add_stubs("freeze,new"),function(n,a){var s=[t(n,"Oga")].concat(a);return function(n,a){var s=[t(n,"XML")].concat(a),i=e.$r(s);return r(s[0],"DEFAULT_NAMESPACE",i("Namespace").$new(new Map([["name","xmlns"],["uri","http://www.w3.org/XML/1998/namespace"]])).$freeze())}(s[0],s)}(n[0],n)},Opal.modules["oga/xml/attribute"]=function(e){var t=e.module,r=e.klass,n=e.const_set,a=e.def,s=e.truthy,i=e.eqeq,o=e.not,l=e.send,$=[],u=e.nil,c=e.$$$;return e.add_stubs("include,attr_accessor,alias_method,freeze,new,uri,[],==,namespace_name,name,available_namespaces,element,!,try_decode,html?,to_s,value,each,send,<<,inspect,join,to_enum,each_ancestor,private"),function($,_){var p=[t($,"Oga")].concat(_);return function($,_){var p=[t($,"XML")].concat(_);return function(t,$,_){var p=r(t,null,"Attribute"),m=[p].concat(_),d=e.$r(m),f=p.$$prototype;return f.namespace=f.value=f.decoded=f.element=u,p.$include(d("ExpandedName")),p.$include(d("ToXML")),p.$attr_accessor("name"),p.$attr_accessor("namespace_name"),p.$attr_accessor("element"),p.$alias_method("parent","element"),n(m[0],"DEFAULT_NAMESPACE",d("Namespace").$new(new Map([["name","xml"],["uri",c(d("XML"),"DEFAULT_NAMESPACE").$uri()]])).$freeze()),a(p,"$initialize",(function(e){var t=this;return null==e&&(e=new Map),t.name=e["$[]"]("name"),t.value=e["$[]"]("value"),t.element=e["$[]"]("element"),t.decoded=!1,t.namespace=u,t.namespace_name=e["$[]"]("namespace_name")}),-1),a(p,"$namespace",(function(){var e=this;return s(e.namespace)||(i(e.$namespace_name(),d("DEFAULT_NAMESPACE").$name())?e.namespace=d("DEFAULT_NAMESPACE"):e.namespace=e.$element().$available_namespaces()["$[]"](e.$namespace_name())),e.namespace})),a(p,"$value=",(function(e){return this.value=e,this.decoded=!1})),a(p,"$value",(function(){var e=this;return o(e.decoded)&&s(e.value)&&(e.value=d("EntityDecoder").$try_decode(e.value,e["$html?"]()),e.decoded=!0),e.value})),a(p,"$text",(function(){return this.$value().$to_s()})),p.$alias_method("to_s","text"),a(p,"$inspect",(function(){var e=u;return e=[],l(["name","namespace","value"],"each",[],(function t(r){var n=u;return null==r&&(r=u),n=(null==t.$$s?this:t.$$s).$send(r),s(n)?e["$<<"](r+": "+n.$inspect()):u}),{$$s:this}),"Attribute("+e.$join(" ")+")"})),a(p,"$each_ancestor",(function t(){var r=t.$$p||u,n=this;return t.$$p=null,r===u?n.$to_enum("each_ancestor"):s(n.$element())?(e.yield1(r,n.$element()),l(n.$element(),"each_ancestor",[],(function(t){return null==t&&(t=u),e.yield1(r,t)}))):u})),p.$private(),a(p,"$html?",(function(){var e;return s(e=this.element["$!"]()["$!"]())?this.element["$html?"]():e}))}(p[0],0,p)}(p[0],p)}($[0],$)},Opal.modules["oga/xml/element"]=function(e){var t=e.module,r=e.klass,n=e.const_set,a=e.send2,s=e.find_super,i=e.truthy,o=e.def,l=e.to_ary,$=e.send,u=e.thrower,c=e.not,_=e.eqeq,p=[],m=e.nil,d=e.$$$;return e.add_stubs("include,attr_reader,attr_accessor,attr_writer,freeze,[],link_attributes,register_namespaces_from_attributes,html?,to_s,split_name,each,attributes,attribute_matches?,alias_method,attribute,value,element=,<<,value=,new,add_attribute,delete,available_namespaces,namespace_name,==,namespace,nil?,text,children,text_nodes,join,is_a?,send,empty?,respond_to?,!,inspect,namespaces,raise,[]=,flush_namespaces_cache,dup,parent,root_node,allow?,name,private,register_namespace,split,pop"),function(p,f){var h=[t(p,"Oga")].concat(f);return function(p,f){var h=[t(p,"XML")].concat(f),g=e.$r(h);return function(t,p,f){var h=r(t,p,"Element"),g=[h].concat(f),b=e.$r(g),v=h.$$prototype;return v.namespace=v.namespaces=v.available_namespaces=m,h.$include(b("Querying")),h.$include(b("ExpandedName")),h.$attr_reader("namespace_name"),h.$attr_accessor("name"),h.$attr_accessor("attributes"),h.$attr_writer("namespaces"),n(g[0],"XMLNS_PREFIX","xmlns".$freeze()),o(h,"$initialize",(function e(t){var r=e.$$p||m,n=this,o=m;return e.$$p=null,null==t&&(t=new Map),a(n,s(n,"initialize",e,!1,!0),"initialize",[t],r),n.name=t["$[]"]("name"),n.namespace_name=t["$[]"]("namespace_name"),n.attributes=i(o=t["$[]"]("attributes"))?o:[],n.namespaces=i(o=t["$[]"]("namespaces"))?o:new Map,n.available_namespaces=m,n.$link_attributes(),n.$register_namespaces_from_attributes()}),-1),o(h,"$namespace_name=",(function(e){return this.namespace_name=e,this.namespace=m})),o(h,"$attribute",(function(e){try{var t,r,n,a,s=u("return"),o=this;return r=i(o["$html?"]())?[e.$to_s(),m]:o.$split_name(e),t=l(r),n=null==t[0]?m:t[0],a=null==t[1]?m:t[1],$(o.$attributes(),"each",[],(function e(t){if(null==t&&(t=m),!i((null==e.$$s?this:e.$$s)["$attribute_matches?"](t,a,n)))return m;s.$throw(t,e.$$is_lambda)}),{$$s:o,$$ret:s}),m}catch(e){if(e===s)return e.$v;throw e}finally{s.is_orphan=!0}})),h.$alias_method("attr","attribute"),o(h,"$get",(function(e){var t=m;return t=this.$attribute(e),i(t)?t.$value():m})),h.$alias_method("[]","get"),o(h,"$add_attribute",(function(e){return e["$element="](this),this.$attributes()["$<<"](e)})),o(h,"$set",(function(e,t){var r,n,a,s=this,o=m,u=m,c=m;return a=s.$attribute(e),i(a)?($(a,"value=",r=[t]),r[r.length-1]):(n=s.$split_name(e),o=null==(r=l(n))[0]?m:r[0],u=null==r[1]?m:r[1],c=b("Attribute").$new(new Map([["name",o],["namespace_name",u],["value",t]])),s.$add_attribute(c))})),h.$alias_method("[]=","set"),o(h,"$unset",(function(e){var t;return t=this.$attribute(e),i(t)?this.$attributes().$delete(t):m})),o(h,"$namespace",(function(){var e=this,t=m,r=m;return i(e.namespace)||(t=e.$available_namespaces(),e.namespace=i(r=t["$[]"](e.$namespace_name()))?r:t["$[]"](b("XMLNS_PREFIX"))),e.namespace})),o(h,"$namespaces",(function(){return i(this["$html?"]())?new Map:this.namespaces})),o(h,"$default_namespace?",(function(){var e;return i(e=this.$namespace()["$=="](b("DEFAULT_NAMESPACE")))?e:this.$namespace()["$nil?"]()})),o(h,"$text",(function(){return this.$children().$text()})),o(h,"$inner_text",(function(){var e=m;return e=[],$(this.$text_nodes(),"each",[],(function(t){return null==t&&(t=m),e["$<<"](t.$text())})),e.$join()})),o(h,"$text_nodes",(function(){var e=m;return e=b("NodeSet").$new(),$(this.$children(),"each",[],(function(t){return null==t&&(t=m),i(t["$is_a?"](b("Text")))?e["$<<"](t):m})),e})),o(h,"$inner_text=",(function(e){var t;return t=d(b("XML"),"Text").$new(new Map([["text",e]])),this.children=b("NodeSet").$new([t],this)})),o(h,"$inspect",(function(){var e=m;return e=[],$(["name","namespace","attributes","children"],"each",[],(function t(r){var n=m;return null==r&&(r=m),n=(null==t.$$s?this:t.$$s).$send(r),c(n)||i(n["$respond_to?"]("empty?"))&&i(n["$empty?"]())?m:e["$<<"](r+": "+n.$inspect())}),{$$s:this}),"Element("+e.$join(" ")+")"})),o(h,"$register_namespace",(function(e,t,r){var n=this;return null==r&&(r=!0),i(n.$namespaces()["$[]"](e))&&n.$raise(b("ArgumentError"),"The namespace "+e.$inspect()+" already exists"),n.$namespaces()["$[]="](e,b("Namespace").$new(new Map([["name",e],["uri",t]]))),i(r)?n.$flush_namespaces_cache():m}),-3),o(h,"$available_namespaces",(function(){var e=this,t=m,r=m,n=m;if(!i(e.available_namespaces))if(i(e["$html?"]()))e.available_namespaces=new Map;else{for(t=e.$namespaces().$dup(),r=e.$parent();i(i(n=r)?r["$respond_to?"]("namespaces"):n);)$(r.$namespaces(),"each",[],(function(e,r){var n;return null==e&&(e=m),null==r&&(r=m),i(t["$[]"](e))?m:($(t,"[]=",n=[e,r]),n[n.length-1])})),r=r.$parent();e.available_namespaces=t}return e.available_namespaces})),o(h,"$self_closing?",(function(){var e=this,t=m,r=m;return t=e.$children()["$empty?"](),r=e.$root_node(),i(r["$is_a?"](b("Document")))&&i(r["$html?"]())&&c(b("HTML_VOID_ELEMENTS")["$allow?"](e.$name()))&&(t=!1),t})),o(h,"$flush_namespaces_cache",(function(){var e=this;return e.available_namespaces=m,e.namespace=m,$(e.$children(),"each",[],(function(e){return null==e&&(e=m),i(e["$is_a?"](b("Element")))?e.$flush_namespaces_cache():m}))})),o(h,"$literal_html_name?",(function(){return d(b("Lexer"),"LITERAL_HTML_ELEMENTS")["$allow?"](this.$name())})),h.$private(),o(h,"$register_namespaces_from_attributes",(function(){var e=this,t=m;return t=!1,$(e.$attributes(),"each",[],(function e(r){var n=null==e.$$s?this:e.$$s;return null==r&&(r=m),_(r.$name(),b("XMLNS_PREFIX"))||_(r.$namespace_name(),b("XMLNS_PREFIX"))?(t=!0,n.$register_namespace(r.$name(),r.$value(),!1)):m}),{$$s:e}),i(t)?e.$flush_namespaces_cache():m})),o(h,"$link_attributes",(function(){return $(this.$attributes(),"each",[],(function e(t){var r;return null==t&&(t=m),$(t,"element=",r=[null==e.$$s?this:e.$$s]),r[r.length-1]}),{$$s:this})})),o(h,"$split_name",(function(e){var t=m;return[(t=e.$to_s().$split(":")).$pop(),t.$pop()]})),o(h,"$attribute_matches?",(function(e,t,r){var n,a,s=m;return n=e.$name()["$=="](r),s=!1,i(t)?s=e.$namespace().$to_s()["$=="](t):i(n)&&c(e.$namespace())&&(s=!0),i(a=n)?s:a}))}(h[0],g("Node"),h)}(h[0],h)}(p[0],p)},Opal.modules["oga/xml/node_set"]=function(e){var t=e.module,r=e.klass,n=e.def,a=e.send,s=e.truthy,i=e.rb_minus,o=e.return_ivar,l=e.not,$=e.rb_gt,u=e.rb_lt,c=e.rb_plus,_=e.eqeq,p=[],m=e.nil;return e.add_stubs("include,attr_accessor,take_ownership_on_nodes,to_enum,each,[],empty?,length,alias_method,index,exists?,<<,mark_existing,take_ownership,-,unshift,shift,unmark_existing,remove_ownership,pop,insert,new,class,|,to_a,is_a?,equal_nodes?,==,push,node_set,node_set=,next=,previous=,delete,respond_to?,attribute,!,text,join,map,to_proc,each_with_index,private,>,<,+,previous,next,key?,[]="),function(p,d){var f=[t(p,"Oga")].concat(d);return function(p,d){var f=[t(p,"XML")].concat(d);return function(t,p,d){var f=r(t,null,"NodeSet"),h=[f].concat(d),g=e.$r(h),b=f.$$prototype;return b.nodes=b.owner=b.existing=m,f.$include(g("Enumerable")),f.$attr_accessor("owner"),n(f,"$initialize",(function(e,t){var r=this;return null==e&&(e=[]),null==t&&(t=m),r.nodes=e,r.owner=t,r.existing=new Map,r.$take_ownership_on_nodes()}),-1),n(f,"$each",(function t(){var r=t.$$p||m;return t.$$p=null,r===m?this.$to_enum("each"):a(this.nodes,"each",[],(function(t){return null==t&&(t=m),e.yield1(r,t)}))})),n(f,"$last",(function(){return this.nodes["$[]"](-1)})),n(f,"$empty?",(function(){return this.nodes["$empty?"]()})),n(f,"$length",(function(){return this.nodes.$length()})),f.$alias_method("count","length"),f.$alias_method("size","length"),n(f,"$index",(function(e){return this.nodes.$index(e)})),n(f,"$push",(function(e){var t=this;return s(t["$exists?"](e))?m:(t.nodes["$<<"](e),t.$mark_existing(e),s(t.owner)?t.$take_ownership(e,i(t.$length(),1)):m)})),f.$alias_method("<<","push"),n(f,"$unshift",(function(e){var t=this;return s(t["$exists?"](e))?m:(t.nodes.$unshift(e),t.$mark_existing(e),s(t.owner)?t.$take_ownership(e,0):m)})),n(f,"$shift",(function(){var e,t=this;return e=t.nodes.$shift(),s(e)&&(t.$unmark_existing(e),s(t.owner)&&t.$remove_ownership(e)),e})),n(f,"$pop",(function(){var e,t=this;return e=t.nodes.$pop(),s(e)&&(t.$unmark_existing(e),s(t.owner)&&t.$remove_ownership(e)),e})),n(f,"$insert",(function(e,t){var r=this;return s(r["$exists?"](t))?m:(r.nodes.$insert(e,t),r.$mark_existing(t),s(r.owner)?r.$take_ownership(t,e):m)})),n(f,"$[]",(function(e){return this.nodes["$[]"](e)})),n(f,"$to_a",o("nodes")),n(f,"$+",(function(e){return this.$class().$new(this.$to_a()["$|"](e.$to_a()))})),n(f,"$==",(function(e){var t;return s(t=e["$is_a?"](g("NodeSet")))?e["$equal_nodes?"](this.nodes):t})),n(f,"$equal_nodes?",(function(e){return this.nodes["$=="](e)})),n(f,"$concat",(function(e){return a(e,"each",[],(function e(t){return null==t&&(t=m),(null==e.$$s?this:e.$$s).$push(t)}),{$$s:this})})),n(f,"$remove",(function(){var e=m;return e=[],a(this.nodes,"each",[],(function(t){var r;return null==t&&(t=m),s(t.$node_set())?(e["$<<"](t.$node_set()),t["$node_set="](m),t["$next="](m),a(t,"previous=",r=[m]),r[r.length-1]):m})),a(e,"each",[],(function e(t){var r=null==e.$$s?this:e.$$s;return null==r.nodes&&(r.nodes=m),null==t&&(t=m),a(r.nodes,"each",[],(function(e){return null==e&&(e=m),t.$delete(e)}))}),{$$s:this})})),n(f,"$delete",(function(e){var t,r=this;return t=r.nodes.$delete(e),s(t)&&(r.$unmark_existing(t),s(r.owner)&&r.$remove_ownership(t)),t})),n(f,"$attribute",(function(e){var t=m;return t=[],a(this.nodes,"each",[],(function(r){return null==r&&(r=m),s(r["$respond_to?"]("attribute"))?t["$<<"](r.$attribute(e)):m})),t})),f.$alias_method("attr","attribute"),n(f,"$text",(function(){var e=m;return e=[],a(this.nodes,"each",[],(function(t){return null==t&&(t=m),s(t["$respond_to?"]("text"))&&l(t["$is_a?"](g("Comment")))?e["$<<"](t.$text()):m})),e.$join()})),n(f,"$inspect",(function(){return"NodeSet("+a(this.nodes,"map",[],"inspect".$to_proc()).$join(", ")+")"})),n(f,"$take_ownership_on_nodes",(function(){return a(this.nodes,"each_with_index",[],(function e(t,r){var n=null==e.$$s?this:e.$$s;return null==n.owner&&(n.owner=m),null==t&&(t=m),null==r&&(r=m),n.$mark_existing(t),s(n.owner)?n.$take_ownership(t,r):m}),{$$s:this})})),f.$private(),n(f,"$take_ownership",(function(e,t){var r,n=this;return e["$node_set="](n),e["$previous="](s($(t,0))?n.nodes["$[]"](i(t,1)):m),e["$next="](s(u(c(t,1),n.nodes.$length()))?n.nodes["$[]"](c(t,1)):m),s(e.$previous())&&e.$previous()["$next="](e),s(e.$next())?(r=[e],a(e.$next(),"previous=",r),r[r.length-1]):m})),n(f,"$remove_ownership",(function(e){var t,r=m,n=m;return _(e.$node_set(),this)?(s(r=e.$previous())&&r["$next="](e.$next()),s(n=e.$next())&&n["$previous="](e.$previous()),e["$node_set="](m),e["$previous="](m),a(e,"next=",t=[m]),t[t.length-1]):m})),n(f,"$exists?",(function(e){return this.existing["$key?"](e)})),n(f,"$mark_existing",(function(e){var t;return t=[e,!0],a(this.existing,"[]=",t),t[t.length-1]})),n(f,"$unmark_existing",(function(e){return this.existing.$delete(e)}))}(f[0],0,f)}(f[0],f)}(p[0],p)},Opal.modules["oga/xml/generator"]=function(e){var t=e.module,r=e.klass,n=e.truthy,a=e.def,s=e.eqeqeq,i=e.eqeq,o=e.neqeq,l=e.send,$=e.not,u=[],c=e.nil,_=e.$$$;return e.add_stubs("respond_to?,html?,===,raise,class,send,[],children,==,is_a?,after_element,next,!=,parent,join,literal_html_name?,<<,text,encode,name,expanded_name,each,attributes,on_attribute,self_closing?,html_void_element?,value,encode_attribute,type,public_id,system_id,inline_rules,xml_declaration,on_xml_declaration,doctype,on_doctype,start_with?,[]=,chomp,!,allow?,empty?"),function(u,p){var m=[t(u,"Oga")].concat(p);return function(u,p){var m=[t(u,"XML")].concat(p);return function(t,u,p){var m=r(t,null,"Generator"),d=[m].concat(p),f=e.$r(d),h=m.$$prototype;return h.start=h.html_mode=c,a(m,"$initialize",(function(e){var t=this;return t.start=e,n(t.start["$respond_to?"]("html?"))?t.html_mode=t.start["$html?"]():t.html_mode=!1})),a(m,"$to_xml",(function(){var e=this,t=c,r=c,a=c,l=c,$=c,u=c,p=c;for(t=e.start,r=[];n(t);)if(a=!1,s(_(_(f("Oga"),"XML"),"Element"),l=t)?($="on_element",a=!0):s(_(_(f("Oga"),"XML"),"Text"),l)?$="on_text":s(_(_(f("Oga"),"XML"),"Cdata"),l)?$="on_cdata":s(_(_(f("Oga"),"XML"),"Comment"),l)?$="on_comment":s(_(_(f("Oga"),"XML"),"Attribute"),l)?$="on_attribute":s(_(_(f("Oga"),"XML"),"XmlDeclaration"),l)?$="on_xml_declaration":s(_(_(f("Oga"),"XML"),"ProcessingInstruction"),l)?$="on_processing_instruction":s(_(_(f("Oga"),"XML"),"Doctype"),l)?$="on_doctype":s(_(_(f("Oga"),"XML"),"Document"),l)?($="on_document",a=!0):e.$raise(f("TypeError"),"Can't serialize "+t.$class()+" to XML"),e.$send($,t,r),n(u=n(l=a)?t.$children()["$[]"](0):l))t=u;else{if(i(t,e.start)){n(t["$is_a?"](f("Element")))&&e.$after_element(t,r);break}for(n(t["$is_a?"](f("Element")))&&e.$after_element(t,r);!n(p=n(l=t["$is_a?"](f("Node")))?t.$next():l)&&(n(t["$is_a?"](f("Node")))&&o(t,e.start)&&(t=t.$parent()),n(t["$is_a?"](f("Element")))&&e.$after_element(t,r),!i(t,e.start)););t=p}return r.$join()})),a(m,"$on_text",(function(e,t){var r=c;return n(this.html_mode)&&n(r=e.$parent())&&n(r["$literal_html_name?"]())?t["$<<"](e.$text()):t["$<<"](f("Entities").$encode(e.$text()))})),a(m,"$on_cdata",(function(e,t){return t["$<<"]("<![CDATA["+e.$text()+"]]>")})),a(m,"$on_comment",(function(e,t){return t["$<<"]("\x3c!--"+e.$text()+"--\x3e")})),a(m,"$on_processing_instruction",(function(e,t){return t["$<<"]("<?"+e.$name()+e.$text()+"?>")})),a(m,"$on_element",(function(e,t){var r,a=this,s=c,i=c;return r=e.$expanded_name(),s=[],l(e.$attributes(),"each",[],(function e(t){var r=null==e.$$s?this:e.$$s;return null==t&&(t=c),s["$<<"](" "),r.$on_attribute(t,s)}),{$$s:a}),n(a["$self_closing?"](e))?(i=n(a["$html_void_element?"](e))?">":" />",t["$<<"]("<"+r+s.$join()+i)):t["$<<"]("<"+r+s.$join()+">")})),a(m,"$after_element",(function(e,t){return n(this["$self_closing?"](e))?c:t["$<<"]("</"+e.$expanded_name()+">")})),a(m,"$on_attribute",(function(e,t){var r,a;return r=e.$expanded_name(),a=n(e.$value())?f("Entities").$encode_attribute(e.$value()):c,t["$<<"](r+'="'+a+'"')})),a(m,"$on_doctype",(function(e,t){return t["$<<"]("<!DOCTYPE "+e.$name()),n(e.$type())&&t["$<<"](" "+e.$type()),n(e.$public_id())&&t["$<<"](' "'+e.$public_id()+'"'),n(e.$system_id())&&t["$<<"](' "'+e.$system_id()+'"'),n(e.$inline_rules())&&t["$<<"](" ["+e.$inline_rules()+"]"),t["$<<"](">")})),a(m,"$on_document",(function(e,t){var r,a=c;return n(e.$xml_declaration())&&(this.$on_xml_declaration(e.$xml_declaration(),t),t["$<<"]("\n")),n(e.$doctype())&&(this.$on_doctype(e.$doctype(),t),t["$<<"]("\n")),a=e.$children()["$[]"](0),n(a["$is_a?"](f("Text")))&&n(a.$text()["$start_with?"]("\r\n","\n"))?(r=[-1,t["$[]"](-1).$chomp()],l(t,"[]=",r),r[r.length-1]):c})),a(m,"$on_xml_declaration",(function(e,t){return t["$<<"]("<?xml"),l(["version","encoding","standalone"],"each",[],(function(r){var a;return null==r&&(r=c),a=e.$send(r),n(a)?t["$<<"](" "+r+'="'+a+'"'):c})),t["$<<"](" ?>")})),a(m,"$self_closing?",(function(e){return(!n(this.html_mode)||!$(f("HTML_VOID_ELEMENTS")["$allow?"](e.$name())))&&e.$children()["$empty?"]()})),a(m,"$html_void_element?",(function(e){var t;return n(t=this.html_mode)?f("HTML_VOID_ELEMENTS")["$allow?"](e.$name()):t}))}(m[0],0,m)}(m[0],m)}(u[0],u)},Opal.modules["oga/xml/sax_parser"]=function(e){var t=e.module,r=e.klass,n=e.slice,a=e.send2,s=e.find_super,i=e.to_a,o=e.def,l=e.send,$=e.truthy,u=e.hash_rehash,c=e.annotate_regexp,_=e.rb_plus,p=[],m=e.nil;return e.add_stubs("run_callback,respond_to?,try_decode,html?,each,[]=,inside_literal_html?,instance_methods,grep,include?,eval,+,private,html_script?,html_style?,send"),function(p,d){var f=[t(p,"Oga")].concat(d);return function(p,d){var f=[t(p,"XML")].concat(d),h=e.$r(f);return function(t,p,d){var f=r(t,p,"SaxParser"),h=[f].concat(d),g=e.$r(h),b=m,v=f.$$prototype;return v.handler=v.lexer=m,o(f,"$initialize",(function e(t,r){var o,l=this;return e.$$p=null,o=n(arguments,1),l.handler=t,a(l,s(l,"initialize",e,!1,!0),"initialize",i(o),null)}),-2),o(f,"$on_element",(function(e,t,r){return null==r&&(r=[]),this.$run_callback("on_element",e,t,r),[e,t]}),-3),o(f,"$after_element",(function(e){return l(this,"run_callback",["after_element"].concat(i(e))),m})),o(f,"$on_attribute",(function(e,t,r){var n,a=this;return null==t&&(t=m),null==r&&(r=m),$(a.handler["$respond_to?"]("on_attribute"))?a.$run_callback("on_attribute",e,t,r):(n=$(t)?t+":"+e:e,$(r)&&(r=g("EntityDecoder").$try_decode(r,a.lexer["$html?"]())),u(new Map([[n,r]])))}),-2),o(f,"$on_attributes",(function(e){var t;return $(this.handler["$respond_to?"]("on_attributes"))?this.$run_callback("on_attributes",e):(t=new Map,l(e,"each",[],(function(e){return null==e&&(e=m),l(e,"each",[],(function(e,r){var n;return null==e&&(e=m),null==r&&(r=m),l(t,"[]=",n=[e,r]),n[n.length-1]}))})),t)})),o(f,"$on_text",(function(e){var t=this;return $(t.handler["$respond_to?"]("on_text"))&&($(t["$inside_literal_html?"]())||(e=g("EntityDecoder").$try_decode(e,t.lexer["$html?"]())),t.$run_callback("on_text",e)),m})),b=f.$instance_methods(!1),l(f.$instance_methods().$grep(c(/^(on_|after_)/m,null,"")),"each",[],(function e(t){var r=null==e.$$s?this:e.$$s;return null==t&&(t=m),$(b["$include?"](t))?m:r.$eval(" def "+t+"(*args)\n run_callback(:"+t+", *args)\n\n return\n end\n",m,"oga/xml/sax_parser.rb",_(155,1))}),{$$s:f}),f.$private(),o(f,"$inside_literal_html?",(function(){var e;return $(e=this.lexer["$html_script?"]())?e:this.lexer["$html_style?"]()})),o(f,"$run_callback",(function(e,t){var r;return r=n(arguments,1),$(this.handler["$respond_to?"](e))?l(this.handler,"send",[e].concat(i(r))):m}),-2)}(f[0],h("Parser"),f)}(f[0],f)}(p[0],p)},Opal.modules["oga/xml/pull_parser"]=function(e){var t=e.module,r=e.klass,n=e.const_set,a=e.slice,s=e.send2,i=e.find_super,o=e.to_a,l=e.def,$=e.truthy,u=e.eqeq,c=e.send,_=e.rb_plus,p=[],m=e.nil,d=e.$$$;return e.add_stubs("attr_reader,is_a?,node,[],==,nesting,empty?,each,eval,+,<<,name,call,pop"),function(p,f){var h=[t(p,"Oga")].concat(f);return function(p,f){var h=[t(p,"XML")].concat(f),g=e.$r(h);return function(t,p,f){var h=r(t,p,"PullParser"),g=[h].concat(f),b=e.$r(g),v=h.$$prototype;return v.node=v.block=m,h.$attr_reader("node"),h.$attr_reader("nesting"),n(g[0],"DISABLED_CALLBACKS",["on_document","on_doctype","on_xml_decl","on_element_children"]),n(g[0],"BLOCK_CALLBACKS",["on_cdata","on_comment","on_text","on_proc_ins"]),n(g[0],"NODE_SHORTHANDS",new Map([["text",d(b("XML"),"Text")],["node",d(b("XML"),"Node")],["cdata",d(b("XML"),"Cdata")],["element",d(b("XML"),"Element")],["doctype",d(b("XML"),"Doctype")],["comment",d(b("XML"),"Comment")],["xml_declaration",d(b("XML"),"XmlDeclaration")]])),l(h,"$initialize",(function e(t){var r,n=e.$$p||m,l=this;return e.$$p=null,r=a(arguments),s(l,i(l,"initialize",e,!1,!0),"initialize",o(r),n),l.nesting=[]}),-1),l(h,"$parse",(function e(){var t=e.$$p||m,r=this;return e.$$p=null,r.block=t,s(r,i(r,"parse",e,!1,!0),"parse",[],t),m})),l(h,"$on",(function t(r,n){var a=t.$$p||m;return t.$$p=null,null==n&&(n=[]),$(this.$node()["$is_a?"](b("NODE_SHORTHANDS")["$[]"](r)))&&($(n["$empty?"]())||u(n,this.$nesting()))?e.yieldX(a,[]):m}),-2),c(b("DISABLED_CALLBACKS"),"each",[],(function e(t){return null==t&&(t=m),(null==e.$$s?this:e.$$s).$eval(" def "+t+"(*args)\n return\n end\n",m,"oga/xml/pull_parser.rb",_(117,1))}),{$$s:h}),c(b("BLOCK_CALLBACKS"),"each",[],(function e(t){return null==t&&(t=m),(null==e.$$s?this:e.$$s).$eval(" def "+t+"(*args)\n @node = super\n @block.call(@node)\n return\n end\n",m,"oga/xml/pull_parser.rb",_(125,1))}),{$$s:h}),l(h,"$on_element",(function t(r){var n,l=t.$$p||m,$=this;return t.$$p=null,n=a(arguments),$.node=s($,i($,"on_element",t,!1,!0),"on_element",o(n),l),(e.Module.$$nesting=g,$.$nesting())["$<<"]($.node.$name()),$.block.$call($.node),m}),-1),l(h,"$after_element",(function(t){return a(arguments),(e.Module.$$nesting=g,this.$nesting()).$pop(),m}),-1)}(h[0],g("Parser"),h)}(h[0],h)}(p[0],p)},Opal.modules["oga/html/parser"]=function(e){var t=e.module,r=e.klass,n=e.send2,a=e.find_super,s=e.def,i=[],o=(e.nil,e.$$$);return e.add_stubs("merge"),function(i,l){var $=[t(i,"Oga")].concat(l);return function(i,l){var $=[t(i,"HTML")].concat(l),u=e.$r($);return function(e,t){var i=r(e,t,"Parser");return s(i,"$initialize",(function e(t,r){return e.$$p=null,null==r&&(r=new Map),r=r.$merge(new Map([["html",!0]])),n(this,a(this,"initialize",e,!1,!0),"initialize",[t,r],null)}),-2)}($[0],o(u("XML"),"Parser"))}($[0],$)}(i[0],i)},Opal.modules["oga/html/sax_parser"]=function(e){var t=e.module,r=e.klass,n=e.send2,a=e.find_super,s=e.def,i=[],o=(e.nil,e.$$$);return e.add_stubs("merge"),function(i,l){var $=[t(i,"Oga")].concat(l);return function(i,l){var $=[t(i,"HTML")].concat(l),u=e.$r($);return function(e,t){var i=r(e,t,"SaxParser");return s(i,"$initialize",(function e(t,r,s){return e.$$p=null,null==s&&(s=new Map),s=s.$merge(new Map([["html",!0]])),n(this,a(this,"initialize",e,!1,!0),"initialize",[t,r,s],null)}),-3)}($[0],o(u("XML"),"SaxParser"))}($[0],$)}(i[0],i)},Opal.modules["oga/html/entities"]=function(e){var t=e.module,r=e.const_set,n=e.defs,a=[],s=(e.nil,e.$$$);return e.add_stubs("pack,decode"),function(a,i){var o=[t(a,"Oga")].concat(i);return function(a,i){var o=[t(a,"HTML")].concat(i);return function(a,i){var o=t(a,"Entities"),l=[o].concat(i),$=e.$r(l);return r(l[0],"DECODE_MAPPING",new Map([["&Aacute;",[193].$pack("U*")],["&aacute;",[225].$pack("U*")],["&Abreve;",[258].$pack("U*")],["&abreve;",[259].$pack("U*")],["&ac;",[8766].$pack("U*")],["&acd;",[8767].$pack("U*")],["&acE;",[8766,819].$pack("U*")],["&Acirc;",[194].$pack("U*")],["&acirc;",[226].$pack("U*")],["&acute;",[180].$pack("U*")],["&Acy;",[1040].$pack("U*")],["&acy;",[1072].$pack("U*")],["&AElig;",[198].$pack("U*")],["&aelig;",[230].$pack("U*")],["&af;",[8289].$pack("U*")],["&Afr;",[120068].$pack("U*")],["&afr;",[120094].$pack("U*")],["&Agrave;",[192].$pack("U*")],["&agrave;",[224].$pack("U*")],["&alefsym;",[8501].$pack("U*")],["&aleph;",[8501].$pack("U*")],["&Alpha;",[913].$pack("U*")],["&alpha;",[945].$pack("U*")],["&Amacr;",[256].$pack("U*")],["&amacr;",[257].$pack("U*")],["&amalg;",[10815].$pack("U*")],["&AMP;",[38].$pack("U*")],["&amp;",[38].$pack("U*")],["&And;",[10835].$pack("U*")],["&and;",[8743].$pack("U*")],["&andand;",[10837].$pack("U*")],["&andd;",[10844].$pack("U*")],["&andslope;",[10840].$pack("U*")],["&andv;",[10842].$pack("U*")],["&ang;",[8736].$pack("U*")],["&ange;",[10660].$pack("U*")],["&angle;",[8736].$pack("U*")],["&angmsd;",[8737].$pack("U*")],["&angmsdaa;",[10664].$pack("U*")],["&angmsdab;",[10665].$pack("U*")],["&angmsdac;",[10666].$pack("U*")],["&angmsdad;",[10667].$pack("U*")],["&angmsdae;",[10668].$pack("U*")],["&angmsdaf;",[10669].$pack("U*")],["&angmsdag;",[10670].$pack("U*")],["&angmsdah;",[10671].$pack("U*")],["&angrt;",[8735].$pack("U*")],["&angrtvb;",[8894].$pack("U*")],["&angrtvbd;",[10653].$pack("U*")],["&angsph;",[8738].$pack("U*")],["&angst;",[197].$pack("U*")],["&angzarr;",[9084].$pack("U*")],["&Aogon;",[260].$pack("U*")],["&aogon;",[261].$pack("U*")],["&Aopf;",[120120].$pack("U*")],["&aopf;",[120146].$pack("U*")],["&ap;",[8776].$pack("U*")],["&apacir;",[10863].$pack("U*")],["&apE;",[10864].$pack("U*")],["&ape;",[8778].$pack("U*")],["&apid;",[8779].$pack("U*")],["&apos;",[39].$pack("U*")],["&ApplyFunction;",[8289].$pack("U*")],["&approx;",[8776].$pack("U*")],["&approxeq;",[8778].$pack("U*")],["&Aring;",[197].$pack("U*")],["&aring;",[229].$pack("U*")],["&Ascr;",[119964].$pack("U*")],["&ascr;",[119990].$pack("U*")],["&Assign;",[8788].$pack("U*")],["&ast;",[42].$pack("U*")],["&asymp;",[8776].$pack("U*")],["&asympeq;",[8781].$pack("U*")],["&Atilde;",[195].$pack("U*")],["&atilde;",[227].$pack("U*")],["&Auml;",[196].$pack("U*")],["&auml;",[228].$pack("U*")],["&awconint;",[8755].$pack("U*")],["&awint;",[10769].$pack("U*")],["&backcong;",[8780].$pack("U*")],["&backepsilon;",[1014].$pack("U*")],["&backprime;",[8245].$pack("U*")],["&backsim;",[8765].$pack("U*")],["&backsimeq;",[8909].$pack("U*")],["&Backslash;",[8726].$pack("U*")],["&Barv;",[10983].$pack("U*")],["&barvee;",[8893].$pack("U*")],["&Barwed;",[8966].$pack("U*")],["&barwed;",[8965].$pack("U*")],["&barwedge;",[8965].$pack("U*")],["&bbrk;",[9141].$pack("U*")],["&bbrktbrk;",[9142].$pack("U*")],["&bcong;",[8780].$pack("U*")],["&Bcy;",[1041].$pack("U*")],["&bcy;",[1073].$pack("U*")],["&bdquo;",[8222].$pack("U*")],["&becaus;",[8757].$pack("U*")],["&Because;",[8757].$pack("U*")],["&because;",[8757].$pack("U*")],["&bemptyv;",[10672].$pack("U*")],["&bepsi;",[1014].$pack("U*")],["&bernou;",[8492].$pack("U*")],["&Bernoullis;",[8492].$pack("U*")],["&Beta;",[914].$pack("U*")],["&beta;",[946].$pack("U*")],["&beth;",[8502].$pack("U*")],["&between;",[8812].$pack("U*")],["&Bfr;",[120069].$pack("U*")],["&bfr;",[120095].$pack("U*")],["&bigcap;",[8898].$pack("U*")],["&bigcirc;",[9711].$pack("U*")],["&bigcup;",[8899].$pack("U*")],["&bigodot;",[10752].$pack("U*")],["&bigoplus;",[10753].$pack("U*")],["&bigotimes;",[10754].$pack("U*")],["&bigsqcup;",[10758].$pack("U*")],["&bigstar;",[9733].$pack("U*")],["&bigtriangledown;",[9661].$pack("U*")],["&bigtriangleup;",[9651].$pack("U*")],["&biguplus;",[10756].$pack("U*")],["&bigvee;",[8897].$pack("U*")],["&bigwedge;",[8896].$pack("U*")],["&bkarow;",[10509].$pack("U*")],["&blacklozenge;",[10731].$pack("U*")],["&blacksquare;",[9642].$pack("U*")],["&blacktriangle;",[9652].$pack("U*")],["&blacktriangledown;",[9662].$pack("U*")],["&blacktriangleleft;",[9666].$pack("U*")],["&blacktriangleright;",[9656].$pack("U*")],["&blank;",[9251].$pack("U*")],["&blk12;",[9618].$pack("U*")],["&blk14;",[9617].$pack("U*")],["&blk34;",[9619].$pack("U*")],["&block;",[9608].$pack("U*")],["&bne;",[61,8421].$pack("U*")],["&bnequiv;",[8801,8421].$pack("U*")],["&bNot;",[10989].$pack("U*")],["&bnot;",[8976].$pack("U*")],["&Bopf;",[120121].$pack("U*")],["&bopf;",[120147].$pack("U*")],["&bot;",[8869].$pack("U*")],["&bottom;",[8869].$pack("U*")],["&bowtie;",[8904].$pack("U*")],["&boxbox;",[10697].$pack("U*")],["&boxDL;",[9559].$pack("U*")],["&boxDl;",[9558].$pack("U*")],["&boxdL;",[9557].$pack("U*")],["&boxdl;",[9488].$pack("U*")],["&boxDR;",[9556].$pack("U*")],["&boxDr;",[9555].$pack("U*")],["&boxdR;",[9554].$pack("U*")],["&boxdr;",[9484].$pack("U*")],["&boxH;",[9552].$pack("U*")],["&boxh;",[9472].$pack("U*")],["&boxHD;",[9574].$pack("U*")],["&boxHd;",[9572].$pack("U*")],["&boxhD;",[9573].$pack("U*")],["&boxhd;",[9516].$pack("U*")],["&boxHU;",[9577].$pack("U*")],["&boxHu;",[9575].$pack("U*")],["&boxhU;",[9576].$pack("U*")],["&boxhu;",[9524].$pack("U*")],["&boxminus;",[8863].$pack("U*")],["&boxplus;",[8862].$pack("U*")],["&boxtimes;",[8864].$pack("U*")],["&boxUL;",[9565].$pack("U*")],["&boxUl;",[9564].$pack("U*")],["&boxuL;",[9563].$pack("U*")],["&boxul;",[9496].$pack("U*")],["&boxUR;",[9562].$pack("U*")],["&boxUr;",[9561].$pack("U*")],["&boxuR;",[9560].$pack("U*")],["&boxur;",[9492].$pack("U*")],["&boxV;",[9553].$pack("U*")],["&boxv;",[9474].$pack("U*")],["&boxVH;",[9580].$pack("U*")],["&boxVh;",[9579].$pack("U*")],["&boxvH;",[9578].$pack("U*")],["&boxvh;",[9532].$pack("U*")],["&boxVL;",[9571].$pack("U*")],["&boxVl;",[9570].$pack("U*")],["&boxvL;",[9569].$pack("U*")],["&boxvl;",[9508].$pack("U*")],["&boxVR;",[9568].$pack("U*")],["&boxVr;",[9567].$pack("U*")],["&boxvR;",[9566].$pack("U*")],["&boxvr;",[9500].$pack("U*")],["&bprime;",[8245].$pack("U*")],["&Breve;",[728].$pack("U*")],["&breve;",[728].$pack("U*")],["&brvbar;",[166].$pack("U*")],["&Bscr;",[8492].$pack("U*")],["&bscr;",[119991].$pack("U*")],["&bsemi;",[8271].$pack("U*")],["&bsim;",[8765].$pack("U*")],["&bsime;",[8909].$pack("U*")],["&bsol;",[92].$pack("U*")],["&bsolb;",[10693].$pack("U*")],["&bsolhsub;",[10184].$pack("U*")],["&bull;",[8226].$pack("U*")],["&bullet;",[8226].$pack("U*")],["&bump;",[8782].$pack("U*")],["&bumpE;",[10926].$pack("U*")],["&bumpe;",[8783].$pack("U*")],["&Bumpeq;",[8782].$pack("U*")],["&bumpeq;",[8783].$pack("U*")],["&Cacute;",[262].$pack("U*")],["&cacute;",[263].$pack("U*")],["&Cap;",[8914].$pack("U*")],["&cap;",[8745].$pack("U*")],["&capand;",[10820].$pack("U*")],["&capbrcup;",[10825].$pack("U*")],["&capcap;",[10827].$pack("U*")],["&capcup;",[10823].$pack("U*")],["&capdot;",[10816].$pack("U*")],["&CapitalDifferentialD;",[8517].$pack("U*")],["&caps;",[8745,65024].$pack("U*")],["&caret;",[8257].$pack("U*")],["&caron;",[711].$pack("U*")],["&Cayleys;",[8493].$pack("U*")],["&ccaps;",[10829].$pack("U*")],["&Ccaron;",[268].$pack("U*")],["&ccaron;",[269].$pack("U*")],["&Ccedil;",[199].$pack("U*")],["&ccedil;",[231].$pack("U*")],["&Ccirc;",[264].$pack("U*")],["&ccirc;",[265].$pack("U*")],["&Cconint;",[8752].$pack("U*")],["&ccups;",[10828].$pack("U*")],["&ccupssm;",[10832].$pack("U*")],["&Cdot;",[266].$pack("U*")],["&cdot;",[267].$pack("U*")],["&cedil;",[184].$pack("U*")],["&Cedilla;",[184].$pack("U*")],["&cemptyv;",[10674].$pack("U*")],["&cent;",[162].$pack("U*")],["&CenterDot;",[183].$pack("U*")],["&centerdot;",[183].$pack("U*")],["&Cfr;",[8493].$pack("U*")],["&cfr;",[120096].$pack("U*")],["&CHcy;",[1063].$pack("U*")],["&chcy;",[1095].$pack("U*")],["&check;",[10003].$pack("U*")],["&checkmark;",[10003].$pack("U*")],["&Chi;",[935].$pack("U*")],["&chi;",[967].$pack("U*")],["&cir;",[9675].$pack("U*")],["&circ;",[710].$pack("U*")],["&circeq;",[8791].$pack("U*")],["&circlearrowleft;",[8634].$pack("U*")],["&circlearrowright;",[8635].$pack("U*")],["&circledast;",[8859].$pack("U*")],["&circledcirc;",[8858].$pack("U*")],["&circleddash;",[8861].$pack("U*")],["&CircleDot;",[8857].$pack("U*")],["&circledR;",[174].$pack("U*")],["&circledS;",[9416].$pack("U*")],["&CircleMinus;",[8854].$pack("U*")],["&CirclePlus;",[8853].$pack("U*")],["&CircleTimes;",[8855].$pack("U*")],["&cirE;",[10691].$pack("U*")],["&cire;",[8791].$pack("U*")],["&cirfnint;",[10768].$pack("U*")],["&cirmid;",[10991].$pack("U*")],["&cirscir;",[10690].$pack("U*")],["&ClockwiseContourIntegral;",[8754].$pack("U*")],["&CloseCurlyDoubleQuote;",[8221].$pack("U*")],["&CloseCurlyQuote;",[8217].$pack("U*")],["&clubs;",[9827].$pack("U*")],["&clubsuit;",[9827].$pack("U*")],["&Colon;",[8759].$pack("U*")],["&colon;",[58].$pack("U*")],["&Colone;",[10868].$pack("U*")],["&colone;",[8788].$pack("U*")],["&coloneq;",[8788].$pack("U*")],["&comma;",[44].$pack("U*")],["&commat;",[64].$pack("U*")],["&comp;",[8705].$pack("U*")],["&compfn;",[8728].$pack("U*")],["&complement;",[8705].$pack("U*")],["&complexes;",[8450].$pack("U*")],["&cong;",[8773].$pack("U*")],["&congdot;",[10861].$pack("U*")],["&Congruent;",[8801].$pack("U*")],["&Conint;",[8751].$pack("U*")],["&conint;",[8750].$pack("U*")],["&ContourIntegral;",[8750].$pack("U*")],["&Copf;",[8450].$pack("U*")],["&copf;",[120148].$pack("U*")],["&coprod;",[8720].$pack("U*")],["&Coproduct;",[8720].$pack("U*")],["&COPY;",[169].$pack("U*")],["&copy;",[169].$pack("U*")],["&copysr;",[8471].$pack("U*")],["&CounterClockwiseContourIntegral;",[8755].$pack("U*")],["&crarr;",[8629].$pack("U*")],["&Cross;",[10799].$pack("U*")],["&cross;",[10007].$pack("U*")],["&Cscr;",[119966].$pack("U*")],["&cscr;",[119992].$pack("U*")],["&csub;",[10959].$pack("U*")],["&csube;",[10961].$pack("U*")],["&csup;",[10960].$pack("U*")],["&csupe;",[10962].$pack("U*")],["&ctdot;",[8943].$pack("U*")],["&cudarrl;",[10552].$pack("U*")],["&cudarrr;",[10549].$pack("U*")],["&cuepr;",[8926].$pack("U*")],["&cuesc;",[8927].$pack("U*")],["&cularr;",[8630].$pack("U*")],["&cularrp;",[10557].$pack("U*")],["&Cup;",[8915].$pack("U*")],["&cup;",[8746].$pack("U*")],["&cupbrcap;",[10824].$pack("U*")],["&CupCap;",[8781].$pack("U*")],["&cupcap;",[10822].$pack("U*")],["&cupcup;",[10826].$pack("U*")],["&cupdot;",[8845].$pack("U*")],["&cupor;",[10821].$pack("U*")],["&cups;",[8746,65024].$pack("U*")],["&curarr;",[8631].$pack("U*")],["&curarrm;",[10556].$pack("U*")],["&curlyeqprec;",[8926].$pack("U*")],["&curlyeqsucc;",[8927].$pack("U*")],["&curlyvee;",[8910].$pack("U*")],["&curlywedge;",[8911].$pack("U*")],["&curren;",[164].$pack("U*")],["&curvearrowleft;",[8630].$pack("U*")],["&curvearrowright;",[8631].$pack("U*")],["&cuvee;",[8910].$pack("U*")],["&cuwed;",[8911].$pack("U*")],["&cwconint;",[8754].$pack("U*")],["&cwint;",[8753].$pack("U*")],["&cylcty;",[9005].$pack("U*")],["&Dagger;",[8225].$pack("U*")],["&dagger;",[8224].$pack("U*")],["&daleth;",[8504].$pack("U*")],["&Darr;",[8609].$pack("U*")],["&dArr;",[8659].$pack("U*")],["&darr;",[8595].$pack("U*")],["&dash;",[8208].$pack("U*")],["&Dashv;",[10980].$pack("U*")],["&dashv;",[8867].$pack("U*")],["&dbkarow;",[10511].$pack("U*")],["&dblac;",[733].$pack("U*")],["&Dcaron;",[270].$pack("U*")],["&dcaron;",[271].$pack("U*")],["&Dcy;",[1044].$pack("U*")],["&dcy;",[1076].$pack("U*")],["&DD;",[8517].$pack("U*")],["&dd;",[8518].$pack("U*")],["&ddagger;",[8225].$pack("U*")],["&ddarr;",[8650].$pack("U*")],["&DDotrahd;",[10513].$pack("U*")],["&ddotseq;",[10871].$pack("U*")],["&deg;",[176].$pack("U*")],["&Del;",[8711].$pack("U*")],["&Delta;",[916].$pack("U*")],["&delta;",[948].$pack("U*")],["&demptyv;",[10673].$pack("U*")],["&dfisht;",[10623].$pack("U*")],["&Dfr;",[120071].$pack("U*")],["&dfr;",[120097].$pack("U*")],["&dHar;",[10597].$pack("U*")],["&dharl;",[8643].$pack("U*")],["&dharr;",[8642].$pack("U*")],["&DiacriticalAcute;",[180].$pack("U*")],["&DiacriticalDot;",[729].$pack("U*")],["&DiacriticalDoubleAcute;",[733].$pack("U*")],["&DiacriticalGrave;",[96].$pack("U*")],["&DiacriticalTilde;",[732].$pack("U*")],["&diam;",[8900].$pack("U*")],["&Diamond;",[8900].$pack("U*")],["&diamond;",[8900].$pack("U*")],["&diamondsuit;",[9830].$pack("U*")],["&diams;",[9830].$pack("U*")],["&die;",[168].$pack("U*")],["&DifferentialD;",[8518].$pack("U*")],["&digamma;",[989].$pack("U*")],["&disin;",[8946].$pack("U*")],["&div;",[247].$pack("U*")],["&divide;",[247].$pack("U*")],["&divideontimes;",[8903].$pack("U*")],["&divonx;",[8903].$pack("U*")],["&DJcy;",[1026].$pack("U*")],["&djcy;",[1106].$pack("U*")],["&dlcorn;",[8990].$pack("U*")],["&dlcrop;",[8973].$pack("U*")],["&dollar;",[36].$pack("U*")],["&Dopf;",[120123].$pack("U*")],["&dopf;",[120149].$pack("U*")],["&Dot;",[168].$pack("U*")],["&dot;",[729].$pack("U*")],["&DotDot;",[8412].$pack("U*")],["&doteq;",[8784].$pack("U*")],["&doteqdot;",[8785].$pack("U*")],["&DotEqual;",[8784].$pack("U*")],["&dotminus;",[8760].$pack("U*")],["&dotplus;",[8724].$pack("U*")],["&dotsquare;",[8865].$pack("U*")],["&doublebarwedge;",[8966].$pack("U*")],["&DoubleContourIntegral;",[8751].$pack("U*")],["&DoubleDot;",[168].$pack("U*")],["&DoubleDownArrow;",[8659].$pack("U*")],["&DoubleLeftArrow;",[8656].$pack("U*")],["&DoubleLeftRightArrow;",[8660].$pack("U*")],["&DoubleLeftTee;",[10980].$pack("U*")],["&DoubleLongLeftArrow;",[10232].$pack("U*")],["&DoubleLongLeftRightArrow;",[10234].$pack("U*")],["&DoubleLongRightArrow;",[10233].$pack("U*")],["&DoubleRightArrow;",[8658].$pack("U*")],["&DoubleRightTee;",[8872].$pack("U*")],["&DoubleUpArrow;",[8657].$pack("U*")],["&DoubleUpDownArrow;",[8661].$pack("U*")],["&DoubleVerticalBar;",[8741].$pack("U*")],["&DownArrow;",[8595].$pack("U*")],["&Downarrow;",[8659].$pack("U*")],["&downarrow;",[8595].$pack("U*")],["&DownArrowBar;",[10515].$pack("U*")],["&DownArrowUpArrow;",[8693].$pack("U*")],["&DownBreve;",[785].$pack("U*")],["&downdownarrows;",[8650].$pack("U*")],["&downharpoonleft;",[8643].$pack("U*")],["&downharpoonright;",[8642].$pack("U*")],["&DownLeftRightVector;",[10576].$pack("U*")],["&DownLeftTeeVector;",[10590].$pack("U*")],["&DownLeftVector;",[8637].$pack("U*")],["&DownLeftVectorBar;",[10582].$pack("U*")],["&DownRightTeeVector;",[10591].$pack("U*")],["&DownRightVector;",[8641].$pack("U*")],["&DownRightVectorBar;",[10583].$pack("U*")],["&DownTee;",[8868].$pack("U*")],["&DownTeeArrow;",[8615].$pack("U*")],["&drbkarow;",[10512].$pack("U*")],["&drcorn;",[8991].$pack("U*")],["&drcrop;",[8972].$pack("U*")],["&Dscr;",[119967].$pack("U*")],["&dscr;",[119993].$pack("U*")],["&DScy;",[1029].$pack("U*")],["&dscy;",[1109].$pack("U*")],["&dsol;",[10742].$pack("U*")],["&Dstrok;",[272].$pack("U*")],["&dstrok;",[273].$pack("U*")],["&dtdot;",[8945].$pack("U*")],["&dtri;",[9663].$pack("U*")],["&dtrif;",[9662].$pack("U*")],["&duarr;",[8693].$pack("U*")],["&duhar;",[10607].$pack("U*")],["&dwangle;",[10662].$pack("U*")],["&DZcy;",[1039].$pack("U*")],["&dzcy;",[1119].$pack("U*")],["&dzigrarr;",[10239].$pack("U*")],["&Eacute;",[201].$pack("U*")],["&eacute;",[233].$pack("U*")],["&easter;",[10862].$pack("U*")],["&Ecaron;",[282].$pack("U*")],["&ecaron;",[283].$pack("U*")],["&ecir;",[8790].$pack("U*")],["&Ecirc;",[202].$pack("U*")],["&ecirc;",[234].$pack("U*")],["&ecolon;",[8789].$pack("U*")],["&Ecy;",[1069].$pack("U*")],["&ecy;",[1101].$pack("U*")],["&eDDot;",[10871].$pack("U*")],["&Edot;",[278].$pack("U*")],["&eDot;",[8785].$pack("U*")],["&edot;",[279].$pack("U*")],["&ee;",[8519].$pack("U*")],["&efDot;",[8786].$pack("U*")],["&Efr;",[120072].$pack("U*")],["&efr;",[120098].$pack("U*")],["&eg;",[10906].$pack("U*")],["&Egrave;",[200].$pack("U*")],["&egrave;",[232].$pack("U*")],["&egs;",[10902].$pack("U*")],["&egsdot;",[10904].$pack("U*")],["&el;",[10905].$pack("U*")],["&Element;",[8712].$pack("U*")],["&elinters;",[9191].$pack("U*")],["&ell;",[8467].$pack("U*")],["&els;",[10901].$pack("U*")],["&elsdot;",[10903].$pack("U*")],["&Emacr;",[274].$pack("U*")],["&emacr;",[275].$pack("U*")],["&empty;",[8709].$pack("U*")],["&emptyset;",[8709].$pack("U*")],["&EmptySmallSquare;",[9723].$pack("U*")],["&emptyv;",[8709].$pack("U*")],["&EmptyVerySmallSquare;",[9643].$pack("U*")],["&emsp;",[8195].$pack("U*")],["&emsp13;",[8196].$pack("U*")],["&emsp14;",[8197].$pack("U*")],["&ENG;",[330].$pack("U*")],["&eng;",[331].$pack("U*")],["&ensp;",[8194].$pack("U*")],["&Eogon;",[280].$pack("U*")],["&eogon;",[281].$pack("U*")],["&Eopf;",[120124].$pack("U*")],["&eopf;",[120150].$pack("U*")],["&epar;",[8917].$pack("U*")],["&eparsl;",[10723].$pack("U*")],["&eplus;",[10865].$pack("U*")],["&epsi;",[949].$pack("U*")],["&Epsilon;",[917].$pack("U*")],["&epsilon;",[949].$pack("U*")],["&epsiv;",[1013].$pack("U*")],["&eqcirc;",[8790].$pack("U*")],["&eqcolon;",[8789].$pack("U*")],["&eqsim;",[8770].$pack("U*")],["&eqslantgtr;",[10902].$pack("U*")],["&eqslantless;",[10901].$pack("U*")],["&Equal;",[10869].$pack("U*")],["&equals;",[61].$pack("U*")],["&EqualTilde;",[8770].$pack("U*")],["&equest;",[8799].$pack("U*")],["&Equilibrium;",[8652].$pack("U*")],["&equiv;",[8801].$pack("U*")],["&equivDD;",[10872].$pack("U*")],["&eqvparsl;",[10725].$pack("U*")],["&erarr;",[10609].$pack("U*")],["&erDot;",[8787].$pack("U*")],["&Escr;",[8496].$pack("U*")],["&escr;",[8495].$pack("U*")],["&esdot;",[8784].$pack("U*")],["&Esim;",[10867].$pack("U*")],["&esim;",[8770].$pack("U*")],["&Eta;",[919].$pack("U*")],["&eta;",[951].$pack("U*")],["&ETH;",[208].$pack("U*")],["&eth;",[240].$pack("U*")],["&Euml;",[203].$pack("U*")],["&euml;",[235].$pack("U*")],["&euro;",[8364].$pack("U*")],["&excl;",[33].$pack("U*")],["&exist;",[8707].$pack("U*")],["&Exists;",[8707].$pack("U*")],["&expectation;",[8496].$pack("U*")],["&ExponentialE;",[8519].$pack("U*")],["&exponentiale;",[8519].$pack("U*")],["&fallingdotseq;",[8786].$pack("U*")],["&Fcy;",[1060].$pack("U*")],["&fcy;",[1092].$pack("U*")],["&female;",[9792].$pack("U*")],["&ffilig;",[64259].$pack("U*")],["&fflig;",[64256].$pack("U*")],["&ffllig;",[64260].$pack("U*")],["&Ffr;",[120073].$pack("U*")],["&ffr;",[120099].$pack("U*")],["&filig;",[64257].$pack("U*")],["&FilledSmallSquare;",[9724].$pack("U*")],["&FilledVerySmallSquare;",[9642].$pack("U*")],["&fjlig;",[102,106].$pack("U*")],["&flat;",[9837].$pack("U*")],["&fllig;",[64258].$pack("U*")],["&fltns;",[9649].$pack("U*")],["&fnof;",[402].$pack("U*")],["&Fopf;",[120125].$pack("U*")],["&fopf;",[120151].$pack("U*")],["&ForAll;",[8704].$pack("U*")],["&forall;",[8704].$pack("U*")],["&fork;",[8916].$pack("U*")],["&forkv;",[10969].$pack("U*")],["&Fouriertrf;",[8497].$pack("U*")],["&fpartint;",[10765].$pack("U*")],["&frac12;",[189].$pack("U*")],["&frac13;",[8531].$pack("U*")],["&frac14;",[188].$pack("U*")],["&frac15;",[8533].$pack("U*")],["&frac16;",[8537].$pack("U*")],["&frac18;",[8539].$pack("U*")],["&frac23;",[8532].$pack("U*")],["&frac25;",[8534].$pack("U*")],["&frac34;",[190].$pack("U*")],["&frac35;",[8535].$pack("U*")],["&frac38;",[8540].$pack("U*")],["&frac45;",[8536].$pack("U*")],["&frac56;",[8538].$pack("U*")],["&frac58;",[8541].$pack("U*")],["&frac78;",[8542].$pack("U*")],["&frasl;",[8260].$pack("U*")],["&frown;",[8994].$pack("U*")],["&Fscr;",[8497].$pack("U*")],["&fscr;",[119995].$pack("U*")],["&gacute;",[501].$pack("U*")],["&Gamma;",[915].$pack("U*")],["&gamma;",[947].$pack("U*")],["&Gammad;",[988].$pack("U*")],["&gammad;",[989].$pack("U*")],["&gap;",[10886].$pack("U*")],["&Gbreve;",[286].$pack("U*")],["&gbreve;",[287].$pack("U*")],["&Gcedil;",[290].$pack("U*")],["&Gcirc;",[284].$pack("U*")],["&gcirc;",[285].$pack("U*")],["&Gcy;",[1043].$pack("U*")],["&gcy;",[1075].$pack("U*")],["&Gdot;",[288].$pack("U*")],["&gdot;",[289].$pack("U*")],["&gE;",[8807].$pack("U*")],["&ge;",[8805].$pack("U*")],["&gEl;",[10892].$pack("U*")],["&gel;",[8923].$pack("U*")],["&geq;",[8805].$pack("U*")],["&geqq;",[8807].$pack("U*")],["&geqslant;",[10878].$pack("U*")],["&ges;",[10878].$pack("U*")],["&gescc;",[10921].$pack("U*")],["&gesdot;",[10880].$pack("U*")],["&gesdoto;",[10882].$pack("U*")],["&gesdotol;",[10884].$pack("U*")],["&gesl;",[8923,65024].$pack("U*")],["&gesles;",[10900].$pack("U*")],["&Gfr;",[120074].$pack("U*")],["&gfr;",[120100].$pack("U*")],["&Gg;",[8921].$pack("U*")],["&gg;",[8811].$pack("U*")],["&ggg;",[8921].$pack("U*")],["&gimel;",[8503].$pack("U*")],["&GJcy;",[1027].$pack("U*")],["&gjcy;",[1107].$pack("U*")],["&gl;",[8823].$pack("U*")],["&gla;",[10917].$pack("U*")],["&glE;",[10898].$pack("U*")],["&glj;",[10916].$pack("U*")],["&gnap;",[10890].$pack("U*")],["&gnapprox;",[10890].$pack("U*")],["&gnE;",[8809].$pack("U*")],["&gne;",[10888].$pack("U*")],["&gneq;",[10888].$pack("U*")],["&gneqq;",[8809].$pack("U*")],["&gnsim;",[8935].$pack("U*")],["&Gopf;",[120126].$pack("U*")],["&gopf;",[120152].$pack("U*")],["&grave;",[96].$pack("U*")],["&GreaterEqual;",[8805].$pack("U*")],["&GreaterEqualLess;",[8923].$pack("U*")],["&GreaterFullEqual;",[8807].$pack("U*")],["&GreaterGreater;",[10914].$pack("U*")],["&GreaterLess;",[8823].$pack("U*")],["&GreaterSlantEqual;",[10878].$pack("U*")],["&GreaterTilde;",[8819].$pack("U*")],["&Gscr;",[119970].$pack("U*")],["&gscr;",[8458].$pack("U*")],["&gsim;",[8819].$pack("U*")],["&gsime;",[10894].$pack("U*")],["&gsiml;",[10896].$pack("U*")],["&GT;",[62].$pack("U*")],["&Gt;",[8811].$pack("U*")],["&gt;",[62].$pack("U*")],["&gtcc;",[10919].$pack("U*")],["&gtcir;",[10874].$pack("U*")],["&gtdot;",[8919].$pack("U*")],["&gtlPar;",[10645].$pack("U*")],["&gtquest;",[10876].$pack("U*")],["&gtrapprox;",[10886].$pack("U*")],["&gtrarr;",[10616].$pack("U*")],["&gtrdot;",[8919].$pack("U*")],["&gtreqless;",[8923].$pack("U*")],["&gtreqqless;",[10892].$pack("U*")],["&gtrless;",[8823].$pack("U*")],["&gtrsim;",[8819].$pack("U*")],["&gvertneqq;",[8809,65024].$pack("U*")],["&gvnE;",[8809,65024].$pack("U*")],["&Hacek;",[711].$pack("U*")],["&hairsp;",[8202].$pack("U*")],["&half;",[189].$pack("U*")],["&hamilt;",[8459].$pack("U*")],["&HARDcy;",[1066].$pack("U*")],["&hardcy;",[1098].$pack("U*")],["&hArr;",[8660].$pack("U*")],["&harr;",[8596].$pack("U*")],["&harrcir;",[10568].$pack("U*")],["&harrw;",[8621].$pack("U*")],["&Hat;",[94].$pack("U*")],["&hbar;",[8463].$pack("U*")],["&Hcirc;",[292].$pack("U*")],["&hcirc;",[293].$pack("U*")],["&hearts;",[9829].$pack("U*")],["&heartsuit;",[9829].$pack("U*")],["&hellip;",[8230].$pack("U*")],["&hercon;",[8889].$pack("U*")],["&Hfr;",[8460].$pack("U*")],["&hfr;",[120101].$pack("U*")],["&HilbertSpace;",[8459].$pack("U*")],["&hksearow;",[10533].$pack("U*")],["&hkswarow;",[10534].$pack("U*")],["&hoarr;",[8703].$pack("U*")],["&homtht;",[8763].$pack("U*")],["&hookleftarrow;",[8617].$pack("U*")],["&hookrightarrow;",[8618].$pack("U*")],["&Hopf;",[8461].$pack("U*")],["&hopf;",[120153].$pack("U*")],["&horbar;",[8213].$pack("U*")],["&HorizontalLine;",[9472].$pack("U*")],["&Hscr;",[8459].$pack("U*")],["&hscr;",[119997].$pack("U*")],["&hslash;",[8463].$pack("U*")],["&Hstrok;",[294].$pack("U*")],["&hstrok;",[295].$pack("U*")],["&HumpDownHump;",[8782].$pack("U*")],["&HumpEqual;",[8783].$pack("U*")],["&hybull;",[8259].$pack("U*")],["&hyphen;",[8208].$pack("U*")],["&Iacute;",[205].$pack("U*")],["&iacute;",[237].$pack("U*")],["&ic;",[8291].$pack("U*")],["&Icirc;",[206].$pack("U*")],["&icirc;",[238].$pack("U*")],["&Icy;",[1048].$pack("U*")],["&icy;",[1080].$pack("U*")],["&Idot;",[304].$pack("U*")],["&IEcy;",[1045].$pack("U*")],["&iecy;",[1077].$pack("U*")],["&iexcl;",[161].$pack("U*")],["&iff;",[8660].$pack("U*")],["&Ifr;",[8465].$pack("U*")],["&ifr;",[120102].$pack("U*")],["&Igrave;",[204].$pack("U*")],["&igrave;",[236].$pack("U*")],["&ii;",[8520].$pack("U*")],["&iiiint;",[10764].$pack("U*")],["&iiint;",[8749].$pack("U*")],["&iinfin;",[10716].$pack("U*")],["&iiota;",[8489].$pack("U*")],["&IJlig;",[306].$pack("U*")],["&ijlig;",[307].$pack("U*")],["&Im;",[8465].$pack("U*")],["&Imacr;",[298].$pack("U*")],["&imacr;",[299].$pack("U*")],["&image;",[8465].$pack("U*")],["&ImaginaryI;",[8520].$pack("U*")],["&imagline;",[8464].$pack("U*")],["&imagpart;",[8465].$pack("U*")],["&imath;",[305].$pack("U*")],["&imof;",[8887].$pack("U*")],["&imped;",[437].$pack("U*")],["&Implies;",[8658].$pack("U*")],["&in;",[8712].$pack("U*")],["&incare;",[8453].$pack("U*")],["&infin;",[8734].$pack("U*")],["&infintie;",[10717].$pack("U*")],["&inodot;",[305].$pack("U*")],["&Int;",[8748].$pack("U*")],["&int;",[8747].$pack("U*")],["&intcal;",[8890].$pack("U*")],["&integers;",[8484].$pack("U*")],["&Integral;",[8747].$pack("U*")],["&intercal;",[8890].$pack("U*")],["&Intersection;",[8898].$pack("U*")],["&intlarhk;",[10775].$pack("U*")],["&intprod;",[10812].$pack("U*")],["&InvisibleComma;",[8291].$pack("U*")],["&InvisibleTimes;",[8290].$pack("U*")],["&IOcy;",[1025].$pack("U*")],["&iocy;",[1105].$pack("U*")],["&Iogon;",[302].$pack("U*")],["&iogon;",[303].$pack("U*")],["&Iopf;",[120128].$pack("U*")],["&iopf;",[120154].$pack("U*")],["&Iota;",[921].$pack("U*")],["&iota;",[953].$pack("U*")],["&iprod;",[10812].$pack("U*")],["&iquest;",[191].$pack("U*")],["&Iscr;",[8464].$pack("U*")],["&iscr;",[119998].$pack("U*")],["&isin;",[8712].$pack("U*")],["&isindot;",[8949].$pack("U*")],["&isinE;",[8953].$pack("U*")],["&isins;",[8948].$pack("U*")],["&isinsv;",[8947].$pack("U*")],["&isinv;",[8712].$pack("U*")],["&it;",[8290].$pack("U*")],["&Itilde;",[296].$pack("U*")],["&itilde;",[297].$pack("U*")],["&Iukcy;",[1030].$pack("U*")],["&iukcy;",[1110].$pack("U*")],["&Iuml;",[207].$pack("U*")],["&iuml;",[239].$pack("U*")],["&Jcirc;",[308].$pack("U*")],["&jcirc;",[309].$pack("U*")],["&Jcy;",[1049].$pack("U*")],["&jcy;",[1081].$pack("U*")],["&Jfr;",[120077].$pack("U*")],["&jfr;",[120103].$pack("U*")],["&jmath;",[567].$pack("U*")],["&Jopf;",[120129].$pack("U*")],["&jopf;",[120155].$pack("U*")],["&Jscr;",[119973].$pack("U*")],["&jscr;",[119999].$pack("U*")],["&Jsercy;",[1032].$pack("U*")],["&jsercy;",[1112].$pack("U*")],["&Jukcy;",[1028].$pack("U*")],["&jukcy;",[1108].$pack("U*")],["&Kappa;",[922].$pack("U*")],["&kappa;",[954].$pack("U*")],["&kappav;",[1008].$pack("U*")],["&Kcedil;",[310].$pack("U*")],["&kcedil;",[311].$pack("U*")],["&Kcy;",[1050].$pack("U*")],["&kcy;",[1082].$pack("U*")],["&Kfr;",[120078].$pack("U*")],["&kfr;",[120104].$pack("U*")],["&kgreen;",[312].$pack("U*")],["&KHcy;",[1061].$pack("U*")],["&khcy;",[1093].$pack("U*")],["&KJcy;",[1036].$pack("U*")],["&kjcy;",[1116].$pack("U*")],["&Kopf;",[120130].$pack("U*")],["&kopf;",[120156].$pack("U*")],["&Kscr;",[119974].$pack("U*")],["&kscr;",[12e4].$pack("U*")],["&lAarr;",[8666].$pack("U*")],["&Lacute;",[313].$pack("U*")],["&lacute;",[314].$pack("U*")],["&laemptyv;",[10676].$pack("U*")],["&lagran;",[8466].$pack("U*")],["&Lambda;",[923].$pack("U*")],["&lambda;",[955].$pack("U*")],["&Lang;",[10218].$pack("U*")],["&lang;",[10216].$pack("U*")],["&langd;",[10641].$pack("U*")],["&langle;",[10216].$pack("U*")],["&lap;",[10885].$pack("U*")],["&Laplacetrf;",[8466].$pack("U*")],["&laquo;",[171].$pack("U*")],["&Larr;",[8606].$pack("U*")],["&lArr;",[8656].$pack("U*")],["&larr;",[8592].$pack("U*")],["&larrb;",[8676].$pack("U*")],["&larrbfs;",[10527].$pack("U*")],["&larrfs;",[10525].$pack("U*")],["&larrhk;",[8617].$pack("U*")],["&larrlp;",[8619].$pack("U*")],["&larrpl;",[10553].$pack("U*")],["&larrsim;",[10611].$pack("U*")],["&larrtl;",[8610].$pack("U*")],["&lat;",[10923].$pack("U*")],["&lAtail;",[10523].$pack("U*")],["&latail;",[10521].$pack("U*")],["&late;",[10925].$pack("U*")],["&lates;",[10925,65024].$pack("U*")],["&lBarr;",[10510].$pack("U*")],["&lbarr;",[10508].$pack("U*")],["&lbbrk;",[10098].$pack("U*")],["&lbrace;",[123].$pack("U*")],["&lbrack;",[91].$pack("U*")],["&lbrke;",[10635].$pack("U*")],["&lbrksld;",[10639].$pack("U*")],["&lbrkslu;",[10637].$pack("U*")],["&Lcaron;",[317].$pack("U*")],["&lcaron;",[318].$pack("U*")],["&Lcedil;",[315].$pack("U*")],["&lcedil;",[316].$pack("U*")],["&lceil;",[8968].$pack("U*")],["&lcub;",[123].$pack("U*")],["&Lcy;",[1051].$pack("U*")],["&lcy;",[1083].$pack("U*")],["&ldca;",[10550].$pack("U*")],["&ldquo;",[8220].$pack("U*")],["&ldquor;",[8222].$pack("U*")],["&ldrdhar;",[10599].$pack("U*")],["&ldrushar;",[10571].$pack("U*")],["&ldsh;",[8626].$pack("U*")],["&lE;",[8806].$pack("U*")],["&le;",[8804].$pack("U*")],["&LeftAngleBracket;",[10216].$pack("U*")],["&LeftArrow;",[8592].$pack("U*")],["&Leftarrow;",[8656].$pack("U*")],["&leftarrow;",[8592].$pack("U*")],["&LeftArrowBar;",[8676].$pack("U*")],["&LeftArrowRightArrow;",[8646].$pack("U*")],["&leftarrowtail;",[8610].$pack("U*")],["&LeftCeiling;",[8968].$pack("U*")],["&LeftDoubleBracket;",[10214].$pack("U*")],["&LeftDownTeeVector;",[10593].$pack("U*")],["&LeftDownVector;",[8643].$pack("U*")],["&LeftDownVectorBar;",[10585].$pack("U*")],["&LeftFloor;",[8970].$pack("U*")],["&leftharpoondown;",[8637].$pack("U*")],["&leftharpoonup;",[8636].$pack("U*")],["&leftleftarrows;",[8647].$pack("U*")],["&LeftRightArrow;",[8596].$pack("U*")],["&Leftrightarrow;",[8660].$pack("U*")],["&leftrightarrow;",[8596].$pack("U*")],["&leftrightarrows;",[8646].$pack("U*")],["&leftrightharpoons;",[8651].$pack("U*")],["&leftrightsquigarrow;",[8621].$pack("U*")],["&LeftRightVector;",[10574].$pack("U*")],["&LeftTee;",[8867].$pack("U*")],["&LeftTeeArrow;",[8612].$pack("U*")],["&LeftTeeVector;",[10586].$pack("U*")],["&leftthreetimes;",[8907].$pack("U*")],["&LeftTriangle;",[8882].$pack("U*")],["&LeftTriangleBar;",[10703].$pack("U*")],["&LeftTriangleEqual;",[8884].$pack("U*")],["&LeftUpDownVector;",[10577].$pack("U*")],["&LeftUpTeeVector;",[10592].$pack("U*")],["&LeftUpVector;",[8639].$pack("U*")],["&LeftUpVectorBar;",[10584].$pack("U*")],["&LeftVector;",[8636].$pack("U*")],["&LeftVectorBar;",[10578].$pack("U*")],["&lEg;",[10891].$pack("U*")],["&leg;",[8922].$pack("U*")],["&leq;",[8804].$pack("U*")],["&leqq;",[8806].$pack("U*")],["&leqslant;",[10877].$pack("U*")],["&les;",[10877].$pack("U*")],["&lescc;",[10920].$pack("U*")],["&lesdot;",[10879].$pack("U*")],["&lesdoto;",[10881].$pack("U*")],["&lesdotor;",[10883].$pack("U*")],["&lesg;",[8922,65024].$pack("U*")],["&lesges;",[10899].$pack("U*")],["&lessapprox;",[10885].$pack("U*")],["&lessdot;",[8918].$pack("U*")],["&lesseqgtr;",[8922].$pack("U*")],["&lesseqqgtr;",[10891].$pack("U*")],["&LessEqualGreater;",[8922].$pack("U*")],["&LessFullEqual;",[8806].$pack("U*")],["&LessGreater;",[8822].$pack("U*")],["&lessgtr;",[8822].$pack("U*")],["&LessLess;",[10913].$pack("U*")],["&lesssim;",[8818].$pack("U*")],["&LessSlantEqual;",[10877].$pack("U*")],["&LessTilde;",[8818].$pack("U*")],["&lfisht;",[10620].$pack("U*")],["&lfloor;",[8970].$pack("U*")],["&Lfr;",[120079].$pack("U*")],["&lfr;",[120105].$pack("U*")],["&lg;",[8822].$pack("U*")],["&lgE;",[10897].$pack("U*")],["&lHar;",[10594].$pack("U*")],["&lhard;",[8637].$pack("U*")],["&lharu;",[8636].$pack("U*")],["&lharul;",[10602].$pack("U*")],["&lhblk;",[9604].$pack("U*")],["&LJcy;",[1033].$pack("U*")],["&ljcy;",[1113].$pack("U*")],["&Ll;",[8920].$pack("U*")],["&ll;",[8810].$pack("U*")],["&llarr;",[8647].$pack("U*")],["&llcorner;",[8990].$pack("U*")],["&Lleftarrow;",[8666].$pack("U*")],["&llhard;",[10603].$pack("U*")],["&lltri;",[9722].$pack("U*")],["&Lmidot;",[319].$pack("U*")],["&lmidot;",[320].$pack("U*")],["&lmoust;",[9136].$pack("U*")],["&lmoustache;",[9136].$pack("U*")],["&lnap;",[10889].$pack("U*")],["&lnapprox;",[10889].$pack("U*")],["&lnE;",[8808].$pack("U*")],["&lne;",[10887].$pack("U*")],["&lneq;",[10887].$pack("U*")],["&lneqq;",[8808].$pack("U*")],["&lnsim;",[8934].$pack("U*")],["&loang;",[10220].$pack("U*")],["&loarr;",[8701].$pack("U*")],["&lobrk;",[10214].$pack("U*")],["&LongLeftArrow;",[10229].$pack("U*")],["&Longleftarrow;",[10232].$pack("U*")],["&longleftarrow;",[10229].$pack("U*")],["&LongLeftRightArrow;",[10231].$pack("U*")],["&Longleftrightarrow;",[10234].$pack("U*")],["&longleftrightarrow;",[10231].$pack("U*")],["&longmapsto;",[10236].$pack("U*")],["&LongRightArrow;",[10230].$pack("U*")],["&Longrightarrow;",[10233].$pack("U*")],["&longrightarrow;",[10230].$pack("U*")],["&looparrowleft;",[8619].$pack("U*")],["&looparrowright;",[8620].$pack("U*")],["&lopar;",[10629].$pack("U*")],["&Lopf;",[120131].$pack("U*")],["&lopf;",[120157].$pack("U*")],["&loplus;",[10797].$pack("U*")],["&lotimes;",[10804].$pack("U*")],["&lowast;",[8727].$pack("U*")],["&lowbar;",[95].$pack("U*")],["&LowerLeftArrow;",[8601].$pack("U*")],["&LowerRightArrow;",[8600].$pack("U*")],["&loz;",[9674].$pack("U*")],["&lozenge;",[9674].$pack("U*")],["&lozf;",[10731].$pack("U*")],["&lpar;",[40].$pack("U*")],["&lparlt;",[10643].$pack("U*")],["&lrarr;",[8646].$pack("U*")],["&lrcorner;",[8991].$pack("U*")],["&lrhar;",[8651].$pack("U*")],["&lrhard;",[10605].$pack("U*")],["&lrm;",[8206].$pack("U*")],["&lrtri;",[8895].$pack("U*")],["&lsaquo;",[8249].$pack("U*")],["&Lscr;",[8466].$pack("U*")],["&lscr;",[120001].$pack("U*")],["&Lsh;",[8624].$pack("U*")],["&lsh;",[8624].$pack("U*")],["&lsim;",[8818].$pack("U*")],["&lsime;",[10893].$pack("U*")],["&lsimg;",[10895].$pack("U*")],["&lsqb;",[91].$pack("U*")],["&lsquo;",[8216].$pack("U*")],["&lsquor;",[8218].$pack("U*")],["&Lstrok;",[321].$pack("U*")],["&lstrok;",[322].$pack("U*")],["&LT;",[60].$pack("U*")],["&Lt;",[8810].$pack("U*")],["&lt;",[60].$pack("U*")],["&ltcc;",[10918].$pack("U*")],["&ltcir;",[10873].$pack("U*")],["&ltdot;",[8918].$pack("U*")],["&lthree;",[8907].$pack("U*")],["&ltimes;",[8905].$pack("U*")],["&ltlarr;",[10614].$pack("U*")],["&ltquest;",[10875].$pack("U*")],["&ltri;",[9667].$pack("U*")],["&ltrie;",[8884].$pack("U*")],["&ltrif;",[9666].$pack("U*")],["&ltrPar;",[10646].$pack("U*")],["&lurdshar;",[10570].$pack("U*")],["&luruhar;",[10598].$pack("U*")],["&lvertneqq;",[8808,65024].$pack("U*")],["&lvnE;",[8808,65024].$pack("U*")],["&macr;",[175].$pack("U*")],["&male;",[9794].$pack("U*")],["&malt;",[10016].$pack("U*")],["&maltese;",[10016].$pack("U*")],["&Map;",[10501].$pack("U*")],["&map;",[8614].$pack("U*")],["&mapsto;",[8614].$pack("U*")],["&mapstodown;",[8615].$pack("U*")],["&mapstoleft;",[8612].$pack("U*")],["&mapstoup;",[8613].$pack("U*")],["&marker;",[9646].$pack("U*")],["&mcomma;",[10793].$pack("U*")],["&Mcy;",[1052].$pack("U*")],["&mcy;",[1084].$pack("U*")],["&mdash;",[8212].$pack("U*")],["&mDDot;",[8762].$pack("U*")],["&measuredangle;",[8737].$pack("U*")],["&MediumSpace;",[8287].$pack("U*")],["&Mellintrf;",[8499].$pack("U*")],["&Mfr;",[120080].$pack("U*")],["&mfr;",[120106].$pack("U*")],["&mho;",[8487].$pack("U*")],["&micro;",[181].$pack("U*")],["&mid;",[8739].$pack("U*")],["&midast;",[42].$pack("U*")],["&midcir;",[10992].$pack("U*")],["&middot;",[183].$pack("U*")],["&minus;",[8722].$pack("U*")],["&minusb;",[8863].$pack("U*")],["&minusd;",[8760].$pack("U*")],["&minusdu;",[10794].$pack("U*")],["&MinusPlus;",[8723].$pack("U*")],["&mlcp;",[10971].$pack("U*")],["&mldr;",[8230].$pack("U*")],["&mnplus;",[8723].$pack("U*")],["&models;",[8871].$pack("U*")],["&Mopf;",[120132].$pack("U*")],["&mopf;",[120158].$pack("U*")],["&mp;",[8723].$pack("U*")],["&Mscr;",[8499].$pack("U*")],["&mscr;",[120002].$pack("U*")],["&mstpos;",[8766].$pack("U*")],["&Mu;",[924].$pack("U*")],["&mu;",[956].$pack("U*")],["&multimap;",[8888].$pack("U*")],["&mumap;",[8888].$pack("U*")],["&nabla;",[8711].$pack("U*")],["&Nacute;",[323].$pack("U*")],["&nacute;",[324].$pack("U*")],["&nang;",[8736,8402].$pack("U*")],["&nap;",[8777].$pack("U*")],["&napE;",[10864,824].$pack("U*")],["&napid;",[8779,824].$pack("U*")],["&napos;",[329].$pack("U*")],["&napprox;",[8777].$pack("U*")],["&natur;",[9838].$pack("U*")],["&natural;",[9838].$pack("U*")],["&naturals;",[8469].$pack("U*")],["&nbsp;",[160].$pack("U*")],["&nbump;",[8782,824].$pack("U*")],["&nbumpe;",[8783,824].$pack("U*")],["&ncap;",[10819].$pack("U*")],["&Ncaron;",[327].$pack("U*")],["&ncaron;",[328].$pack("U*")],["&Ncedil;",[325].$pack("U*")],["&ncedil;",[326].$pack("U*")],["&ncong;",[8775].$pack("U*")],["&ncongdot;",[10861,824].$pack("U*")],["&ncup;",[10818].$pack("U*")],["&Ncy;",[1053].$pack("U*")],["&ncy;",[1085].$pack("U*")],["&ndash;",[8211].$pack("U*")],["&ne;",[8800].$pack("U*")],["&nearhk;",[10532].$pack("U*")],["&neArr;",[8663].$pack("U*")],["&nearr;",[8599].$pack("U*")],["&nearrow;",[8599].$pack("U*")],["&nedot;",[8784,824].$pack("U*")],["&NegativeMediumSpace;",[8203].$pack("U*")],["&NegativeThickSpace;",[8203].$pack("U*")],["&NegativeThinSpace;",[8203].$pack("U*")],["&NegativeVeryThinSpace;",[8203].$pack("U*")],["&nequiv;",[8802].$pack("U*")],["&nesear;",[10536].$pack("U*")],["&nesim;",[8770,824].$pack("U*")],["&NestedGreaterGreater;",[8811].$pack("U*")],["&NestedLessLess;",[8810].$pack("U*")],["&NewLine;",[10].$pack("U*")],["&nexist;",[8708].$pack("U*")],["&nexists;",[8708].$pack("U*")],["&Nfr;",[120081].$pack("U*")],["&nfr;",[120107].$pack("U*")],["&ngE;",[8807,824].$pack("U*")],["&nge;",[8817].$pack("U*")],["&ngeq;",[8817].$pack("U*")],["&ngeqq;",[8807,824].$pack("U*")],["&ngeqslant;",[10878,824].$pack("U*")],["&nges;",[10878,824].$pack("U*")],["&nGg;",[8921,824].$pack("U*")],["&ngsim;",[8821].$pack("U*")],["&nGt;",[8811,8402].$pack("U*")],["&ngt;",[8815].$pack("U*")],["&ngtr;",[8815].$pack("U*")],["&nGtv;",[8811,824].$pack("U*")],["&nhArr;",[8654].$pack("U*")],["&nharr;",[8622].$pack("U*")],["&nhpar;",[10994].$pack("U*")],["&ni;",[8715].$pack("U*")],["&nis;",[8956].$pack("U*")],["&nisd;",[8954].$pack("U*")],["&niv;",[8715].$pack("U*")],["&NJcy;",[1034].$pack("U*")],["&njcy;",[1114].$pack("U*")],["&nlArr;",[8653].$pack("U*")],["&nlarr;",[8602].$pack("U*")],["&nldr;",[8229].$pack("U*")],["&nlE;",[8806,824].$pack("U*")],["&nle;",[8816].$pack("U*")],["&nLeftarrow;",[8653].$pack("U*")],["&nleftarrow;",[8602].$pack("U*")],["&nLeftrightarrow;",[8654].$pack("U*")],["&nleftrightarrow;",[8622].$pack("U*")],["&nleq;",[8816].$pack("U*")],["&nleqq;",[8806,824].$pack("U*")],["&nleqslant;",[10877,824].$pack("U*")],["&nles;",[10877,824].$pack("U*")],["&nless;",[8814].$pack("U*")],["&nLl;",[8920,824].$pack("U*")],["&nlsim;",[8820].$pack("U*")],["&nLt;",[8810,8402].$pack("U*")],["&nlt;",[8814].$pack("U*")],["&nltri;",[8938].$pack("U*")],["&nltrie;",[8940].$pack("U*")],["&nLtv;",[8810,824].$pack("U*")],["&nmid;",[8740].$pack("U*")],["&NoBreak;",[8288].$pack("U*")],["&NonBreakingSpace;",[160].$pack("U*")],["&Nopf;",[8469].$pack("U*")],["&nopf;",[120159].$pack("U*")],["&Not;",[10988].$pack("U*")],["&not;",[172].$pack("U*")],["&NotCongruent;",[8802].$pack("U*")],["&NotCupCap;",[8813].$pack("U*")],["&NotDoubleVerticalBar;",[8742].$pack("U*")],["&NotElement;",[8713].$pack("U*")],["&NotEqual;",[8800].$pack("U*")],["&NotEqualTilde;",[8770,824].$pack("U*")],["&NotExists;",[8708].$pack("U*")],["&NotGreater;",[8815].$pack("U*")],["&NotGreaterEqual;",[8817].$pack("U*")],["&NotGreaterFullEqual;",[8807,824].$pack("U*")],["&NotGreaterGreater;",[8811,824].$pack("U*")],["&NotGreaterLess;",[8825].$pack("U*")],["&NotGreaterSlantEqual;",[10878,824].$pack("U*")],["&NotGreaterTilde;",[8821].$pack("U*")],["&NotHumpDownHump;",[8782,824].$pack("U*")],["&NotHumpEqual;",[8783,824].$pack("U*")],["&notin;",[8713].$pack("U*")],["&notindot;",[8949,824].$pack("U*")],["&notinE;",[8953,824].$pack("U*")],["&notinva;",[8713].$pack("U*")],["&notinvb;",[8951].$pack("U*")],["&notinvc;",[8950].$pack("U*")],["&NotLeftTriangle;",[8938].$pack("U*")],["&NotLeftTriangleBar;",[10703,824].$pack("U*")],["&NotLeftTriangleEqual;",[8940].$pack("U*")],["&NotLess;",[8814].$pack("U*")],["&NotLessEqual;",[8816].$pack("U*")],["&NotLessGreater;",[8824].$pack("U*")],["&NotLessLess;",[8810,824].$pack("U*")],["&NotLessSlantEqual;",[10877,824].$pack("U*")],["&NotLessTilde;",[8820].$pack("U*")],["&NotNestedGreaterGreater;",[10914,824].$pack("U*")],["&NotNestedLessLess;",[10913,824].$pack("U*")],["&notni;",[8716].$pack("U*")],["&notniva;",[8716].$pack("U*")],["&notnivb;",[8958].$pack("U*")],["&notnivc;",[8957].$pack("U*")],["&NotPrecedes;",[8832].$pack("U*")],["&NotPrecedesEqual;",[10927,824].$pack("U*")],["&NotPrecedesSlantEqual;",[8928].$pack("U*")],["&NotReverseElement;",[8716].$pack("U*")],["&NotRightTriangle;",[8939].$pack("U*")],["&NotRightTriangleBar;",[10704,824].$pack("U*")],["&NotRightTriangleEqual;",[8941].$pack("U*")],["&NotSquareSubset;",[8847,824].$pack("U*")],["&NotSquareSubsetEqual;",[8930].$pack("U*")],["&NotSquareSuperset;",[8848,824].$pack("U*")],["&NotSquareSupersetEqual;",[8931].$pack("U*")],["&NotSubset;",[8834,8402].$pack("U*")],["&NotSubsetEqual;",[8840].$pack("U*")],["&NotSucceeds;",[8833].$pack("U*")],["&NotSucceedsEqual;",[10928,824].$pack("U*")],["&NotSucceedsSlantEqual;",[8929].$pack("U*")],["&NotSucceedsTilde;",[8831,824].$pack("U*")],["&NotSuperset;",[8835,8402].$pack("U*")],["&NotSupersetEqual;",[8841].$pack("U*")],["&NotTilde;",[8769].$pack("U*")],["&NotTildeEqual;",[8772].$pack("U*")],["&NotTildeFullEqual;",[8775].$pack("U*")],["&NotTildeTilde;",[8777].$pack("U*")],["&NotVerticalBar;",[8740].$pack("U*")],["&npar;",[8742].$pack("U*")],["&nparallel;",[8742].$pack("U*")],["&nparsl;",[11005,8421].$pack("U*")],["&npart;",[8706,824].$pack("U*")],["&npolint;",[10772].$pack("U*")],["&npr;",[8832].$pack("U*")],["&nprcue;",[8928].$pack("U*")],["&npre;",[10927,824].$pack("U*")],["&nprec;",[8832].$pack("U*")],["&npreceq;",[10927,824].$pack("U*")],["&nrArr;",[8655].$pack("U*")],["&nrarr;",[8603].$pack("U*")],["&nrarrc;",[10547,824].$pack("U*")],["&nrarrw;",[8605,824].$pack("U*")],["&nRightarrow;",[8655].$pack("U*")],["&nrightarrow;",[8603].$pack("U*")],["&nrtri;",[8939].$pack("U*")],["&nrtrie;",[8941].$pack("U*")],["&nsc;",[8833].$pack("U*")],["&nsccue;",[8929].$pack("U*")],["&nsce;",[10928,824].$pack("U*")],["&Nscr;",[119977].$pack("U*")],["&nscr;",[120003].$pack("U*")],["&nshortmid;",[8740].$pack("U*")],["&nshortparallel;",[8742].$pack("U*")],["&nsim;",[8769].$pack("U*")],["&nsime;",[8772].$pack("U*")],["&nsimeq;",[8772].$pack("U*")],["&nsmid;",[8740].$pack("U*")],["&nspar;",[8742].$pack("U*")],["&nsqsube;",[8930].$pack("U*")],["&nsqsupe;",[8931].$pack("U*")],["&nsub;",[8836].$pack("U*")],["&nsubE;",[10949,824].$pack("U*")],["&nsube;",[8840].$pack("U*")],["&nsubset;",[8834,8402].$pack("U*")],["&nsubseteq;",[8840].$pack("U*")],["&nsubseteqq;",[10949,824].$pack("U*")],["&nsucc;",[8833].$pack("U*")],["&nsucceq;",[10928,824].$pack("U*")],["&nsup;",[8837].$pack("U*")],["&nsupE;",[10950,824].$pack("U*")],["&nsupe;",[8841].$pack("U*")],["&nsupset;",[8835,8402].$pack("U*")],["&nsupseteq;",[8841].$pack("U*")],["&nsupseteqq;",[10950,824].$pack("U*")],["&ntgl;",[8825].$pack("U*")],["&Ntilde;",[209].$pack("U*")],["&ntilde;",[241].$pack("U*")],["&ntlg;",[8824].$pack("U*")],["&ntriangleleft;",[8938].$pack("U*")],["&ntrianglelefteq;",[8940].$pack("U*")],["&ntriangleright;",[8939].$pack("U*")],["&ntrianglerighteq;",[8941].$pack("U*")],["&Nu;",[925].$pack("U*")],["&nu;",[957].$pack("U*")],["&num;",[35].$pack("U*")],["&numero;",[8470].$pack("U*")],["&numsp;",[8199].$pack("U*")],["&nvap;",[8781,8402].$pack("U*")],["&nVDash;",[8879].$pack("U*")],["&nVdash;",[8878].$pack("U*")],["&nvDash;",[8877].$pack("U*")],["&nvdash;",[8876].$pack("U*")],["&nvge;",[8805,8402].$pack("U*")],["&nvgt;",[62,8402].$pack("U*")],["&nvHarr;",[10500].$pack("U*")],["&nvinfin;",[10718].$pack("U*")],["&nvlArr;",[10498].$pack("U*")],["&nvle;",[8804,8402].$pack("U*")],["&nvlt;",[60,8402].$pack("U*")],["&nvltrie;",[8884,8402].$pack("U*")],["&nvrArr;",[10499].$pack("U*")],["&nvrtrie;",[8885,8402].$pack("U*")],["&nvsim;",[8764,8402].$pack("U*")],["&nwarhk;",[10531].$pack("U*")],["&nwArr;",[8662].$pack("U*")],["&nwarr;",[8598].$pack("U*")],["&nwarrow;",[8598].$pack("U*")],["&nwnear;",[10535].$pack("U*")],["&Oacute;",[211].$pack("U*")],["&oacute;",[243].$pack("U*")],["&oast;",[8859].$pack("U*")],["&ocir;",[8858].$pack("U*")],["&Ocirc;",[212].$pack("U*")],["&ocirc;",[244].$pack("U*")],["&Ocy;",[1054].$pack("U*")],["&ocy;",[1086].$pack("U*")],["&odash;",[8861].$pack("U*")],["&Odblac;",[336].$pack("U*")],["&odblac;",[337].$pack("U*")],["&odiv;",[10808].$pack("U*")],["&odot;",[8857].$pack("U*")],["&odsold;",[10684].$pack("U*")],["&OElig;",[338].$pack("U*")],["&oelig;",[339].$pack("U*")],["&ofcir;",[10687].$pack("U*")],["&Ofr;",[120082].$pack("U*")],["&ofr;",[120108].$pack("U*")],["&ogon;",[731].$pack("U*")],["&Ograve;",[210].$pack("U*")],["&ograve;",[242].$pack("U*")],["&ogt;",[10689].$pack("U*")],["&ohbar;",[10677].$pack("U*")],["&ohm;",[937].$pack("U*")],["&oint;",[8750].$pack("U*")],["&olarr;",[8634].$pack("U*")],["&olcir;",[10686].$pack("U*")],["&olcross;",[10683].$pack("U*")],["&oline;",[8254].$pack("U*")],["&olt;",[10688].$pack("U*")],["&Omacr;",[332].$pack("U*")],["&omacr;",[333].$pack("U*")],["&Omega;",[937].$pack("U*")],["&omega;",[969].$pack("U*")],["&Omicron;",[927].$pack("U*")],["&omicron;",[959].$pack("U*")],["&omid;",[10678].$pack("U*")],["&ominus;",[8854].$pack("U*")],["&Oopf;",[120134].$pack("U*")],["&oopf;",[120160].$pack("U*")],["&opar;",[10679].$pack("U*")],["&OpenCurlyDoubleQuote;",[8220].$pack("U*")],["&OpenCurlyQuote;",[8216].$pack("U*")],["&operp;",[10681].$pack("U*")],["&oplus;",[8853].$pack("U*")],["&Or;",[10836].$pack("U*")],["&or;",[8744].$pack("U*")],["&orarr;",[8635].$pack("U*")],["&ord;",[10845].$pack("U*")],["&order;",[8500].$pack("U*")],["&orderof;",[8500].$pack("U*")],["&ordf;",[170].$pack("U*")],["&ordm;",[186].$pack("U*")],["&origof;",[8886].$pack("U*")],["&oror;",[10838].$pack("U*")],["&orslope;",[10839].$pack("U*")],["&orv;",[10843].$pack("U*")],["&oS;",[9416].$pack("U*")],["&Oscr;",[119978].$pack("U*")],["&oscr;",[8500].$pack("U*")],["&Oslash;",[216].$pack("U*")],["&oslash;",[248].$pack("U*")],["&osol;",[8856].$pack("U*")],["&Otilde;",[213].$pack("U*")],["&otilde;",[245].$pack("U*")],["&Otimes;",[10807].$pack("U*")],["&otimes;",[8855].$pack("U*")],["&otimesas;",[10806].$pack("U*")],["&Ouml;",[214].$pack("U*")],["&ouml;",[246].$pack("U*")],["&ovbar;",[9021].$pack("U*")],["&OverBar;",[8254].$pack("U*")],["&OverBrace;",[9182].$pack("U*")],["&OverBracket;",[9140].$pack("U*")],["&OverParenthesis;",[9180].$pack("U*")],["&par;",[8741].$pack("U*")],["&para;",[182].$pack("U*")],["&parallel;",[8741].$pack("U*")],["&parsim;",[10995].$pack("U*")],["&parsl;",[11005].$pack("U*")],["&part;",[8706].$pack("U*")],["&PartialD;",[8706].$pack("U*")],["&Pcy;",[1055].$pack("U*")],["&pcy;",[1087].$pack("U*")],["&percnt;",[37].$pack("U*")],["&period;",[46].$pack("U*")],["&permil;",[8240].$pack("U*")],["&perp;",[8869].$pack("U*")],["&pertenk;",[8241].$pack("U*")],["&Pfr;",[120083].$pack("U*")],["&pfr;",[120109].$pack("U*")],["&Phi;",[934].$pack("U*")],["&phi;",[966].$pack("U*")],["&phiv;",[981].$pack("U*")],["&phmmat;",[8499].$pack("U*")],["&phone;",[9742].$pack("U*")],["&Pi;",[928].$pack("U*")],["&pi;",[960].$pack("U*")],["&pitchfork;",[8916].$pack("U*")],["&piv;",[982].$pack("U*")],["&planck;",[8463].$pack("U*")],["&planckh;",[8462].$pack("U*")],["&plankv;",[8463].$pack("U*")],["&plus;",[43].$pack("U*")],["&plusacir;",[10787].$pack("U*")],["&plusb;",[8862].$pack("U*")],["&pluscir;",[10786].$pack("U*")],["&plusdo;",[8724].$pack("U*")],["&plusdu;",[10789].$pack("U*")],["&pluse;",[10866].$pack("U*")],["&PlusMinus;",[177].$pack("U*")],["&plusmn;",[177].$pack("U*")],["&plussim;",[10790].$pack("U*")],["&plustwo;",[10791].$pack("U*")],["&pm;",[177].$pack("U*")],["&Poincareplane;",[8460].$pack("U*")],["&pointint;",[10773].$pack("U*")],["&Popf;",[8473].$pack("U*")],["&popf;",[120161].$pack("U*")],["&pound;",[163].$pack("U*")],["&Pr;",[10939].$pack("U*")],["&pr;",[8826].$pack("U*")],["&prap;",[10935].$pack("U*")],["&prcue;",[8828].$pack("U*")],["&prE;",[10931].$pack("U*")],["&pre;",[10927].$pack("U*")],["&prec;",[8826].$pack("U*")],["&precapprox;",[10935].$pack("U*")],["&preccurlyeq;",[8828].$pack("U*")],["&Precedes;",[8826].$pack("U*")],["&PrecedesEqual;",[10927].$pack("U*")],["&PrecedesSlantEqual;",[8828].$pack("U*")],["&PrecedesTilde;",[8830].$pack("U*")],["&preceq;",[10927].$pack("U*")],["&precnapprox;",[10937].$pack("U*")],["&precneqq;",[10933].$pack("U*")],["&precnsim;",[8936].$pack("U*")],["&precsim;",[8830].$pack("U*")],["&Prime;",[8243].$pack("U*")],["&prime;",[8242].$pack("U*")],["&primes;",[8473].$pack("U*")],["&prnap;",[10937].$pack("U*")],["&prnE;",[10933].$pack("U*")],["&prnsim;",[8936].$pack("U*")],["&prod;",[8719].$pack("U*")],["&Product;",[8719].$pack("U*")],["&profalar;",[9006].$pack("U*")],["&profline;",[8978].$pack("U*")],["&profsurf;",[8979].$pack("U*")],["&prop;",[8733].$pack("U*")],["&Proportion;",[8759].$pack("U*")],["&Proportional;",[8733].$pack("U*")],["&propto;",[8733].$pack("U*")],["&prsim;",[8830].$pack("U*")],["&prurel;",[8880].$pack("U*")],["&Pscr;",[119979].$pack("U*")],["&pscr;",[120005].$pack("U*")],["&Psi;",[936].$pack("U*")],["&psi;",[968].$pack("U*")],["&puncsp;",[8200].$pack("U*")],["&Qfr;",[120084].$pack("U*")],["&qfr;",[120110].$pack("U*")],["&qint;",[10764].$pack("U*")],["&Qopf;",[8474].$pack("U*")],["&qopf;",[120162].$pack("U*")],["&qprime;",[8279].$pack("U*")],["&Qscr;",[119980].$pack("U*")],["&qscr;",[120006].$pack("U*")],["&quaternions;",[8461].$pack("U*")],["&quatint;",[10774].$pack("U*")],["&quest;",[63].$pack("U*")],["&questeq;",[8799].$pack("U*")],["&QUOT;",[34].$pack("U*")],["&quot;",[34].$pack("U*")],["&rAarr;",[8667].$pack("U*")],["&race;",[8765,817].$pack("U*")],["&Racute;",[340].$pack("U*")],["&racute;",[341].$pack("U*")],["&radic;",[8730].$pack("U*")],["&raemptyv;",[10675].$pack("U*")],["&Rang;",[10219].$pack("U*")],["&rang;",[10217].$pack("U*")],["&rangd;",[10642].$pack("U*")],["&range;",[10661].$pack("U*")],["&rangle;",[10217].$pack("U*")],["&raquo;",[187].$pack("U*")],["&Rarr;",[8608].$pack("U*")],["&rArr;",[8658].$pack("U*")],["&rarr;",[8594].$pack("U*")],["&rarrap;",[10613].$pack("U*")],["&rarrb;",[8677].$pack("U*")],["&rarrbfs;",[10528].$pack("U*")],["&rarrc;",[10547].$pack("U*")],["&rarrfs;",[10526].$pack("U*")],["&rarrhk;",[8618].$pack("U*")],["&rarrlp;",[8620].$pack("U*")],["&rarrpl;",[10565].$pack("U*")],["&rarrsim;",[10612].$pack("U*")],["&Rarrtl;",[10518].$pack("U*")],["&rarrtl;",[8611].$pack("U*")],["&rarrw;",[8605].$pack("U*")],["&rAtail;",[10524].$pack("U*")],["&ratail;",[10522].$pack("U*")],["&ratio;",[8758].$pack("U*")],["&rationals;",[8474].$pack("U*")],["&RBarr;",[10512].$pack("U*")],["&rBarr;",[10511].$pack("U*")],["&rbarr;",[10509].$pack("U*")],["&rbbrk;",[10099].$pack("U*")],["&rbrace;",[125].$pack("U*")],["&rbrack;",[93].$pack("U*")],["&rbrke;",[10636].$pack("U*")],["&rbrksld;",[10638].$pack("U*")],["&rbrkslu;",[10640].$pack("U*")],["&Rcaron;",[344].$pack("U*")],["&rcaron;",[345].$pack("U*")],["&Rcedil;",[342].$pack("U*")],["&rcedil;",[343].$pack("U*")],["&rceil;",[8969].$pack("U*")],["&rcub;",[125].$pack("U*")],["&Rcy;",[1056].$pack("U*")],["&rcy;",[1088].$pack("U*")],["&rdca;",[10551].$pack("U*")],["&rdldhar;",[10601].$pack("U*")],["&rdquo;",[8221].$pack("U*")],["&rdquor;",[8221].$pack("U*")],["&rdsh;",[8627].$pack("U*")],["&Re;",[8476].$pack("U*")],["&real;",[8476].$pack("U*")],["&realine;",[8475].$pack("U*")],["&realpart;",[8476].$pack("U*")],["&reals;",[8477].$pack("U*")],["&rect;",[9645].$pack("U*")],["&REG;",[174].$pack("U*")],["&reg;",[174].$pack("U*")],["&ReverseElement;",[8715].$pack("U*")],["&ReverseEquilibrium;",[8651].$pack("U*")],["&ReverseUpEquilibrium;",[10607].$pack("U*")],["&rfisht;",[10621].$pack("U*")],["&rfloor;",[8971].$pack("U*")],["&Rfr;",[8476].$pack("U*")],["&rfr;",[120111].$pack("U*")],["&rHar;",[10596].$pack("U*")],["&rhard;",[8641].$pack("U*")],["&rharu;",[8640].$pack("U*")],["&rharul;",[10604].$pack("U*")],["&Rho;",[929].$pack("U*")],["&rho;",[961].$pack("U*")],["&rhov;",[1009].$pack("U*")],["&RightAngleBracket;",[10217].$pack("U*")],["&RightArrow;",[8594].$pack("U*")],["&Rightarrow;",[8658].$pack("U*")],["&rightarrow;",[8594].$pack("U*")],["&RightArrowBar;",[8677].$pack("U*")],["&RightArrowLeftArrow;",[8644].$pack("U*")],["&rightarrowtail;",[8611].$pack("U*")],["&RightCeiling;",[8969].$pack("U*")],["&RightDoubleBracket;",[10215].$pack("U*")],["&RightDownTeeVector;",[10589].$pack("U*")],["&RightDownVector;",[8642].$pack("U*")],["&RightDownVectorBar;",[10581].$pack("U*")],["&RightFloor;",[8971].$pack("U*")],["&rightharpoondown;",[8641].$pack("U*")],["&rightharpoonup;",[8640].$pack("U*")],["&rightleftarrows;",[8644].$pack("U*")],["&rightleftharpoons;",[8652].$pack("U*")],["&rightrightarrows;",[8649].$pack("U*")],["&rightsquigarrow;",[8605].$pack("U*")],["&RightTee;",[8866].$pack("U*")],["&RightTeeArrow;",[8614].$pack("U*")],["&RightTeeVector;",[10587].$pack("U*")],["&rightthreetimes;",[8908].$pack("U*")],["&RightTriangle;",[8883].$pack("U*")],["&RightTriangleBar;",[10704].$pack("U*")],["&RightTriangleEqual;",[8885].$pack("U*")],["&RightUpDownVector;",[10575].$pack("U*")],["&RightUpTeeVector;",[10588].$pack("U*")],["&RightUpVector;",[8638].$pack("U*")],["&RightUpVectorBar;",[10580].$pack("U*")],["&RightVector;",[8640].$pack("U*")],["&RightVectorBar;",[10579].$pack("U*")],["&ring;",[730].$pack("U*")],["&risingdotseq;",[8787].$pack("U*")],["&rlarr;",[8644].$pack("U*")],["&rlhar;",[8652].$pack("U*")],["&rlm;",[8207].$pack("U*")],["&rmoust;",[9137].$pack("U*")],["&rmoustache;",[9137].$pack("U*")],["&rnmid;",[10990].$pack("U*")],["&roang;",[10221].$pack("U*")],["&roarr;",[8702].$pack("U*")],["&robrk;",[10215].$pack("U*")],["&ropar;",[10630].$pack("U*")],["&Ropf;",[8477].$pack("U*")],["&ropf;",[120163].$pack("U*")],["&roplus;",[10798].$pack("U*")],["&rotimes;",[10805].$pack("U*")],["&RoundImplies;",[10608].$pack("U*")],["&rpar;",[41].$pack("U*")],["&rpargt;",[10644].$pack("U*")],["&rppolint;",[10770].$pack("U*")],["&rrarr;",[8649].$pack("U*")],["&Rrightarrow;",[8667].$pack("U*")],["&rsaquo;",[8250].$pack("U*")],["&Rscr;",[8475].$pack("U*")],["&rscr;",[120007].$pack("U*")],["&Rsh;",[8625].$pack("U*")],["&rsh;",[8625].$pack("U*")],["&rsqb;",[93].$pack("U*")],["&rsquo;",[8217].$pack("U*")],["&rsquor;",[8217].$pack("U*")],["&rthree;",[8908].$pack("U*")],["&rtimes;",[8906].$pack("U*")],["&rtri;",[9657].$pack("U*")],["&rtrie;",[8885].$pack("U*")],["&rtrif;",[9656].$pack("U*")],["&rtriltri;",[10702].$pack("U*")],["&RuleDelayed;",[10740].$pack("U*")],["&ruluhar;",[10600].$pack("U*")],["&rx;",[8478].$pack("U*")],["&Sacute;",[346].$pack("U*")],["&sacute;",[347].$pack("U*")],["&sbquo;",[8218].$pack("U*")],["&Sc;",[10940].$pack("U*")],["&sc;",[8827].$pack("U*")],["&scap;",[10936].$pack("U*")],["&Scaron;",[352].$pack("U*")],["&scaron;",[353].$pack("U*")],["&sccue;",[8829].$pack("U*")],["&scE;",[10932].$pack("U*")],["&sce;",[10928].$pack("U*")],["&Scedil;",[350].$pack("U*")],["&scedil;",[351].$pack("U*")],["&Scirc;",[348].$pack("U*")],["&scirc;",[349].$pack("U*")],["&scnap;",[10938].$pack("U*")],["&scnE;",[10934].$pack("U*")],["&scnsim;",[8937].$pack("U*")],["&scpolint;",[10771].$pack("U*")],["&scsim;",[8831].$pack("U*")],["&Scy;",[1057].$pack("U*")],["&scy;",[1089].$pack("U*")],["&sdot;",[8901].$pack("U*")],["&sdotb;",[8865].$pack("U*")],["&sdote;",[10854].$pack("U*")],["&searhk;",[10533].$pack("U*")],["&seArr;",[8664].$pack("U*")],["&searr;",[8600].$pack("U*")],["&searrow;",[8600].$pack("U*")],["&sect;",[167].$pack("U*")],["&semi;",[59].$pack("U*")],["&seswar;",[10537].$pack("U*")],["&setminus;",[8726].$pack("U*")],["&setmn;",[8726].$pack("U*")],["&sext;",[10038].$pack("U*")],["&Sfr;",[120086].$pack("U*")],["&sfr;",[120112].$pack("U*")],["&sfrown;",[8994].$pack("U*")],["&sharp;",[9839].$pack("U*")],["&SHCHcy;",[1065].$pack("U*")],["&shchcy;",[1097].$pack("U*")],["&SHcy;",[1064].$pack("U*")],["&shcy;",[1096].$pack("U*")],["&ShortDownArrow;",[8595].$pack("U*")],["&ShortLeftArrow;",[8592].$pack("U*")],["&shortmid;",[8739].$pack("U*")],["&shortparallel;",[8741].$pack("U*")],["&ShortRightArrow;",[8594].$pack("U*")],["&ShortUpArrow;",[8593].$pack("U*")],["&shy;",[173].$pack("U*")],["&Sigma;",[931].$pack("U*")],["&sigma;",[963].$pack("U*")],["&sigmaf;",[962].$pack("U*")],["&sigmav;",[962].$pack("U*")],["&sim;",[8764].$pack("U*")],["&simdot;",[10858].$pack("U*")],["&sime;",[8771].$pack("U*")],["&simeq;",[8771].$pack("U*")],["&simg;",[10910].$pack("U*")],["&simgE;",[10912].$pack("U*")],["&siml;",[10909].$pack("U*")],["&simlE;",[10911].$pack("U*")],["&simne;",[8774].$pack("U*")],["&simplus;",[10788].$pack("U*")],["&simrarr;",[10610].$pack("U*")],["&slarr;",[8592].$pack("U*")],["&SmallCircle;",[8728].$pack("U*")],["&smallsetminus;",[8726].$pack("U*")],["&smashp;",[10803].$pack("U*")],["&smeparsl;",[10724].$pack("U*")],["&smid;",[8739].$pack("U*")],["&smile;",[8995].$pack("U*")],["&smt;",[10922].$pack("U*")],["&smte;",[10924].$pack("U*")],["&smtes;",[10924,65024].$pack("U*")],["&SOFTcy;",[1068].$pack("U*")],["&softcy;",[1100].$pack("U*")],["&sol;",[47].$pack("U*")],["&solb;",[10692].$pack("U*")],["&solbar;",[9023].$pack("U*")],["&Sopf;",[120138].$pack("U*")],["&sopf;",[120164].$pack("U*")],["&spades;",[9824].$pack("U*")],["&spadesuit;",[9824].$pack("U*")],["&spar;",[8741].$pack("U*")],["&sqcap;",[8851].$pack("U*")],["&sqcaps;",[8851,65024].$pack("U*")],["&sqcup;",[8852].$pack("U*")],["&sqcups;",[8852,65024].$pack("U*")],["&Sqrt;",[8730].$pack("U*")],["&sqsub;",[8847].$pack("U*")],["&sqsube;",[8849].$pack("U*")],["&sqsubset;",[8847].$pack("U*")],["&sqsubseteq;",[8849].$pack("U*")],["&sqsup;",[8848].$pack("U*")],["&sqsupe;",[8850].$pack("U*")],["&sqsupset;",[8848].$pack("U*")],["&sqsupseteq;",[8850].$pack("U*")],["&squ;",[9633].$pack("U*")],["&Square;",[9633].$pack("U*")],["&square;",[9633].$pack("U*")],["&SquareIntersection;",[8851].$pack("U*")],["&SquareSubset;",[8847].$pack("U*")],["&SquareSubsetEqual;",[8849].$pack("U*")],["&SquareSuperset;",[8848].$pack("U*")],["&SquareSupersetEqual;",[8850].$pack("U*")],["&SquareUnion;",[8852].$pack("U*")],["&squarf;",[9642].$pack("U*")],["&squf;",[9642].$pack("U*")],["&srarr;",[8594].$pack("U*")],["&Sscr;",[119982].$pack("U*")],["&sscr;",[120008].$pack("U*")],["&ssetmn;",[8726].$pack("U*")],["&ssmile;",[8995].$pack("U*")],["&sstarf;",[8902].$pack("U*")],["&Star;",[8902].$pack("U*")],["&star;",[9734].$pack("U*")],["&starf;",[9733].$pack("U*")],["&straightepsilon;",[1013].$pack("U*")],["&straightphi;",[981].$pack("U*")],["&strns;",[175].$pack("U*")],["&Sub;",[8912].$pack("U*")],["&sub;",[8834].$pack("U*")],["&subdot;",[10941].$pack("U*")],["&subE;",[10949].$pack("U*")],["&sube;",[8838].$pack("U*")],["&subedot;",[10947].$pack("U*")],["&submult;",[10945].$pack("U*")],["&subnE;",[10955].$pack("U*")],["&subne;",[8842].$pack("U*")],["&subplus;",[10943].$pack("U*")],["&subrarr;",[10617].$pack("U*")],["&Subset;",[8912].$pack("U*")],["&subset;",[8834].$pack("U*")],["&subseteq;",[8838].$pack("U*")],["&subseteqq;",[10949].$pack("U*")],["&SubsetEqual;",[8838].$pack("U*")],["&subsetneq;",[8842].$pack("U*")],["&subsetneqq;",[10955].$pack("U*")],["&subsim;",[10951].$pack("U*")],["&subsub;",[10965].$pack("U*")],["&subsup;",[10963].$pack("U*")],["&succ;",[8827].$pack("U*")],["&succapprox;",[10936].$pack("U*")],["&succcurlyeq;",[8829].$pack("U*")],["&Succeeds;",[8827].$pack("U*")],["&SucceedsEqual;",[10928].$pack("U*")],["&SucceedsSlantEqual;",[8829].$pack("U*")],["&SucceedsTilde;",[8831].$pack("U*")],["&succeq;",[10928].$pack("U*")],["&succnapprox;",[10938].$pack("U*")],["&succneqq;",[10934].$pack("U*")],["&succnsim;",[8937].$pack("U*")],["&succsim;",[8831].$pack("U*")],["&SuchThat;",[8715].$pack("U*")],["&Sum;",[8721].$pack("U*")],["&sum;",[8721].$pack("U*")],["&sung;",[9834].$pack("U*")],["&Sup;",[8913].$pack("U*")],["&sup;",[8835].$pack("U*")],["&sup1;",[185].$pack("U*")],["&sup2;",[178].$pack("U*")],["&sup3;",[179].$pack("U*")],["&supdot;",[10942].$pack("U*")],["&supdsub;",[10968].$pack("U*")],["&supE;",[10950].$pack("U*")],["&supe;",[8839].$pack("U*")],["&supedot;",[10948].$pack("U*")],["&Superset;",[8835].$pack("U*")],["&SupersetEqual;",[8839].$pack("U*")],["&suphsol;",[10185].$pack("U*")],["&suphsub;",[10967].$pack("U*")],["&suplarr;",[10619].$pack("U*")],["&supmult;",[10946].$pack("U*")],["&supnE;",[10956].$pack("U*")],["&supne;",[8843].$pack("U*")],["&supplus;",[10944].$pack("U*")],["&Supset;",[8913].$pack("U*")],["&supset;",[8835].$pack("U*")],["&supseteq;",[8839].$pack("U*")],["&supseteqq;",[10950].$pack("U*")],["&supsetneq;",[8843].$pack("U*")],["&supsetneqq;",[10956].$pack("U*")],["&supsim;",[10952].$pack("U*")],["&supsub;",[10964].$pack("U*")],["&supsup;",[10966].$pack("U*")],["&swarhk;",[10534].$pack("U*")],["&swArr;",[8665].$pack("U*")],["&swarr;",[8601].$pack("U*")],["&swarrow;",[8601].$pack("U*")],["&swnwar;",[10538].$pack("U*")],["&szlig;",[223].$pack("U*")],["&Tab;",[9].$pack("U*")],["&target;",[8982].$pack("U*")],["&Tau;",[932].$pack("U*")],["&tau;",[964].$pack("U*")],["&tbrk;",[9140].$pack("U*")],["&Tcaron;",[356].$pack("U*")],["&tcaron;",[357].$pack("U*")],["&Tcedil;",[354].$pack("U*")],["&tcedil;",[355].$pack("U*")],["&Tcy;",[1058].$pack("U*")],["&tcy;",[1090].$pack("U*")],["&tdot;",[8411].$pack("U*")],["&telrec;",[8981].$pack("U*")],["&Tfr;",[120087].$pack("U*")],["&tfr;",[120113].$pack("U*")],["&there4;",[8756].$pack("U*")],["&Therefore;",[8756].$pack("U*")],["&therefore;",[8756].$pack("U*")],["&Theta;",[920].$pack("U*")],["&theta;",[952].$pack("U*")],["&thetasym;",[977].$pack("U*")],["&thetav;",[977].$pack("U*")],["&thickapprox;",[8776].$pack("U*")],["&thicksim;",[8764].$pack("U*")],["&ThickSpace;",[8287,8202].$pack("U*")],["&thinsp;",[8201].$pack("U*")],["&ThinSpace;",[8201].$pack("U*")],["&thkap;",[8776].$pack("U*")],["&thksim;",[8764].$pack("U*")],["&THORN;",[222].$pack("U*")],["&thorn;",[254].$pack("U*")],["&Tilde;",[8764].$pack("U*")],["&tilde;",[732].$pack("U*")],["&TildeEqual;",[8771].$pack("U*")],["&TildeFullEqual;",[8773].$pack("U*")],["&TildeTilde;",[8776].$pack("U*")],["&times;",[215].$pack("U*")],["&timesb;",[8864].$pack("U*")],["&timesbar;",[10801].$pack("U*")],["&timesd;",[10800].$pack("U*")],["&tint;",[8749].$pack("U*")],["&toea;",[10536].$pack("U*")],["&top;",[8868].$pack("U*")],["&topbot;",[9014].$pack("U*")],["&topcir;",[10993].$pack("U*")],["&Topf;",[120139].$pack("U*")],["&topf;",[120165].$pack("U*")],["&topfork;",[10970].$pack("U*")],["&tosa;",[10537].$pack("U*")],["&tprime;",[8244].$pack("U*")],["&TRADE;",[8482].$pack("U*")],["&trade;",[8482].$pack("U*")],["&triangle;",[9653].$pack("U*")],["&triangledown;",[9663].$pack("U*")],["&triangleleft;",[9667].$pack("U*")],["&trianglelefteq;",[8884].$pack("U*")],["&triangleq;",[8796].$pack("U*")],["&triangleright;",[9657].$pack("U*")],["&trianglerighteq;",[8885].$pack("U*")],["&tridot;",[9708].$pack("U*")],["&trie;",[8796].$pack("U*")],["&triminus;",[10810].$pack("U*")],["&TripleDot;",[8411].$pack("U*")],["&triplus;",[10809].$pack("U*")],["&trisb;",[10701].$pack("U*")],["&tritime;",[10811].$pack("U*")],["&trpezium;",[9186].$pack("U*")],["&Tscr;",[119983].$pack("U*")],["&tscr;",[120009].$pack("U*")],["&TScy;",[1062].$pack("U*")],["&tscy;",[1094].$pack("U*")],["&TSHcy;",[1035].$pack("U*")],["&tshcy;",[1115].$pack("U*")],["&Tstrok;",[358].$pack("U*")],["&tstrok;",[359].$pack("U*")],["&twixt;",[8812].$pack("U*")],["&twoheadleftarrow;",[8606].$pack("U*")],["&twoheadrightarrow;",[8608].$pack("U*")],["&Uacute;",[218].$pack("U*")],["&uacute;",[250].$pack("U*")],["&Uarr;",[8607].$pack("U*")],["&uArr;",[8657].$pack("U*")],["&uarr;",[8593].$pack("U*")],["&Uarrocir;",[10569].$pack("U*")],["&Ubrcy;",[1038].$pack("U*")],["&ubrcy;",[1118].$pack("U*")],["&Ubreve;",[364].$pack("U*")],["&ubreve;",[365].$pack("U*")],["&Ucirc;",[219].$pack("U*")],["&ucirc;",[251].$pack("U*")],["&Ucy;",[1059].$pack("U*")],["&ucy;",[1091].$pack("U*")],["&udarr;",[8645].$pack("U*")],["&Udblac;",[368].$pack("U*")],["&udblac;",[369].$pack("U*")],["&udhar;",[10606].$pack("U*")],["&ufisht;",[10622].$pack("U*")],["&Ufr;",[120088].$pack("U*")],["&ufr;",[120114].$pack("U*")],["&Ugrave;",[217].$pack("U*")],["&ugrave;",[249].$pack("U*")],["&uHar;",[10595].$pack("U*")],["&uharl;",[8639].$pack("U*")],["&uharr;",[8638].$pack("U*")],["&uhblk;",[9600].$pack("U*")],["&ulcorn;",[8988].$pack("U*")],["&ulcorner;",[8988].$pack("U*")],["&ulcrop;",[8975].$pack("U*")],["&ultri;",[9720].$pack("U*")],["&Umacr;",[362].$pack("U*")],["&umacr;",[363].$pack("U*")],["&uml;",[168].$pack("U*")],["&UnderBar;",[95].$pack("U*")],["&UnderBrace;",[9183].$pack("U*")],["&UnderBracket;",[9141].$pack("U*")],["&UnderParenthesis;",[9181].$pack("U*")],["&Union;",[8899].$pack("U*")],["&UnionPlus;",[8846].$pack("U*")],["&Uogon;",[370].$pack("U*")],["&uogon;",[371].$pack("U*")],["&Uopf;",[120140].$pack("U*")],["&uopf;",[120166].$pack("U*")],["&UpArrow;",[8593].$pack("U*")],["&Uparrow;",[8657].$pack("U*")],["&uparrow;",[8593].$pack("U*")],["&UpArrowBar;",[10514].$pack("U*")],["&UpArrowDownArrow;",[8645].$pack("U*")],["&UpDownArrow;",[8597].$pack("U*")],["&Updownarrow;",[8661].$pack("U*")],["&updownarrow;",[8597].$pack("U*")],["&UpEquilibrium;",[10606].$pack("U*")],["&upharpoonleft;",[8639].$pack("U*")],["&upharpoonright;",[8638].$pack("U*")],["&uplus;",[8846].$pack("U*")],["&UpperLeftArrow;",[8598].$pack("U*")],["&UpperRightArrow;",[8599].$pack("U*")],["&Upsi;",[978].$pack("U*")],["&upsi;",[965].$pack("U*")],["&upsih;",[978].$pack("U*")],["&Upsilon;",[933].$pack("U*")],["&upsilon;",[965].$pack("U*")],["&UpTee;",[8869].$pack("U*")],["&UpTeeArrow;",[8613].$pack("U*")],["&upuparrows;",[8648].$pack("U*")],["&urcorn;",[8989].$pack("U*")],["&urcorner;",[8989].$pack("U*")],["&urcrop;",[8974].$pack("U*")],["&Uring;",[366].$pack("U*")],["&uring;",[367].$pack("U*")],["&urtri;",[9721].$pack("U*")],["&Uscr;",[119984].$pack("U*")],["&uscr;",[120010].$pack("U*")],["&utdot;",[8944].$pack("U*")],["&Utilde;",[360].$pack("U*")],["&utilde;",[361].$pack("U*")],["&utri;",[9653].$pack("U*")],["&utrif;",[9652].$pack("U*")],["&uuarr;",[8648].$pack("U*")],["&Uuml;",[220].$pack("U*")],["&uuml;",[252].$pack("U*")],["&uwangle;",[10663].$pack("U*")],["&vangrt;",[10652].$pack("U*")],["&varepsilon;",[1013].$pack("U*")],["&varkappa;",[1008].$pack("U*")],["&varnothing;",[8709].$pack("U*")],["&varphi;",[981].$pack("U*")],["&varpi;",[982].$pack("U*")],["&varpropto;",[8733].$pack("U*")],["&vArr;",[8661].$pack("U*")],["&varr;",[8597].$pack("U*")],["&varrho;",[1009].$pack("U*")],["&varsigma;",[962].$pack("U*")],["&varsubsetneq;",[8842,65024].$pack("U*")],["&varsubsetneqq;",[10955,65024].$pack("U*")],["&varsupsetneq;",[8843,65024].$pack("U*")],["&varsupsetneqq;",[10956,65024].$pack("U*")],["&vartheta;",[977].$pack("U*")],["&vartriangleleft;",[8882].$pack("U*")],["&vartriangleright;",[8883].$pack("U*")],["&Vbar;",[10987].$pack("U*")],["&vBar;",[10984].$pack("U*")],["&vBarv;",[10985].$pack("U*")],["&Vcy;",[1042].$pack("U*")],["&vcy;",[1074].$pack("U*")],["&VDash;",[8875].$pack("U*")],["&Vdash;",[8873].$pack("U*")],["&vDash;",[8872].$pack("U*")],["&vdash;",[8866].$pack("U*")],["&Vdashl;",[10982].$pack("U*")],["&Vee;",[8897].$pack("U*")],["&vee;",[8744].$pack("U*")],["&veebar;",[8891].$pack("U*")],["&veeeq;",[8794].$pack("U*")],["&vellip;",[8942].$pack("U*")],["&Verbar;",[8214].$pack("U*")],["&verbar;",[124].$pack("U*")],["&Vert;",[8214].$pack("U*")],["&vert;",[124].$pack("U*")],["&VerticalBar;",[8739].$pack("U*")],["&VerticalLine;",[124].$pack("U*")],["&VerticalSeparator;",[10072].$pack("U*")],["&VerticalTilde;",[8768].$pack("U*")],["&VeryThinSpace;",[8202].$pack("U*")],["&Vfr;",[120089].$pack("U*")],["&vfr;",[120115].$pack("U*")],["&vltri;",[8882].$pack("U*")],["&vnsub;",[8834,8402].$pack("U*")],["&vnsup;",[8835,8402].$pack("U*")],["&Vopf;",[120141].$pack("U*")],["&vopf;",[120167].$pack("U*")],["&vprop;",[8733].$pack("U*")],["&vrtri;",[8883].$pack("U*")],["&Vscr;",[119985].$pack("U*")],["&vscr;",[120011].$pack("U*")],["&vsubnE;",[10955,65024].$pack("U*")],["&vsubne;",[8842,65024].$pack("U*")],["&vsupnE;",[10956,65024].$pack("U*")],["&vsupne;",[8843,65024].$pack("U*")],["&Vvdash;",[8874].$pack("U*")],["&vzigzag;",[10650].$pack("U*")],["&Wcirc;",[372].$pack("U*")],["&wcirc;",[373].$pack("U*")],["&wedbar;",[10847].$pack("U*")],["&Wedge;",[8896].$pack("U*")],["&wedge;",[8743].$pack("U*")],["&wedgeq;",[8793].$pack("U*")],["&weierp;",[8472].$pack("U*")],["&Wfr;",[120090].$pack("U*")],["&wfr;",[120116].$pack("U*")],["&Wopf;",[120142].$pack("U*")],["&wopf;",[120168].$pack("U*")],["&wp;",[8472].$pack("U*")],["&wr;",[8768].$pack("U*")],["&wreath;",[8768].$pack("U*")],["&Wscr;",[119986].$pack("U*")],["&wscr;",[120012].$pack("U*")],["&xcap;",[8898].$pack("U*")],["&xcirc;",[9711].$pack("U*")],["&xcup;",[8899].$pack("U*")],["&xdtri;",[9661].$pack("U*")],["&Xfr;",[120091].$pack("U*")],["&xfr;",[120117].$pack("U*")],["&xhArr;",[10234].$pack("U*")],["&xharr;",[10231].$pack("U*")],["&Xi;",[926].$pack("U*")],["&xi;",[958].$pack("U*")],["&xlArr;",[10232].$pack("U*")],["&xlarr;",[10229].$pack("U*")],["&xmap;",[10236].$pack("U*")],["&xnis;",[8955].$pack("U*")],["&xodot;",[10752].$pack("U*")],["&Xopf;",[120143].$pack("U*")],["&xopf;",[120169].$pack("U*")],["&xoplus;",[10753].$pack("U*")],["&xotime;",[10754].$pack("U*")],["&xrArr;",[10233].$pack("U*")],["&xrarr;",[10230].$pack("U*")],["&Xscr;",[119987].$pack("U*")],["&xscr;",[120013].$pack("U*")],["&xsqcup;",[10758].$pack("U*")],["&xuplus;",[10756].$pack("U*")],["&xutri;",[9651].$pack("U*")],["&xvee;",[8897].$pack("U*")],["&xwedge;",[8896].$pack("U*")],["&Yacute;",[221].$pack("U*")],["&yacute;",[253].$pack("U*")],["&YAcy;",[1071].$pack("U*")],["&yacy;",[1103].$pack("U*")],["&Ycirc;",[374].$pack("U*")],["&ycirc;",[375].$pack("U*")],["&Ycy;",[1067].$pack("U*")],["&ycy;",[1099].$pack("U*")],["&yen;",[165].$pack("U*")],["&Yfr;",[120092].$pack("U*")],["&yfr;",[120118].$pack("U*")],["&YIcy;",[1031].$pack("U*")],["&yicy;",[1111].$pack("U*")],["&Yopf;",[120144].$pack("U*")],["&yopf;",[120170].$pack("U*")],["&Yscr;",[119988].$pack("U*")],["&yscr;",[120014].$pack("U*")],["&YUcy;",[1070].$pack("U*")],["&yucy;",[1102].$pack("U*")],["&Yuml;",[376].$pack("U*")],["&yuml;",[255].$pack("U*")],["&Zacute;",[377].$pack("U*")],["&zacute;",[378].$pack("U*")],["&Zcaron;",[381].$pack("U*")],["&zcaron;",[382].$pack("U*")],["&Zcy;",[1047].$pack("U*")],["&zcy;",[1079].$pack("U*")],["&Zdot;",[379].$pack("U*")],["&zdot;",[380].$pack("U*")],["&zeetrf;",[8488].$pack("U*")],["&ZeroWidthSpace;",[8203].$pack("U*")],["&Zeta;",[918].$pack("U*")],["&zeta;",[950].$pack("U*")],["&Zfr;",[8488].$pack("U*")],["&zfr;",[120119].$pack("U*")],["&ZHcy;",[1046].$pack("U*")],["&zhcy;",[1078].$pack("U*")],["&zigrarr;",[8669].$pack("U*")],["&Zopf;",[8484].$pack("U*")],["&zopf;",[120171].$pack("U*")],["&Zscr;",[119989].$pack("U*")],["&zscr;",[120015].$pack("U*")],["&zwj;",[8205].$pack("U*")],["&zwnj;",[8204].$pack("U*")]])),n(o,"$decode",(function(e){return s($("XML"),"Entities").$decode(e,$("DECODE_MAPPING"))}))}(o[0],o)}(o[0],o)}(a[0],a)},Opal.modules["oga/ruby/node"]=function(e){var t=e.module,r=e.klass,n=e.def,a=e.return_ivar,s=e.eqeq,i=e.slice,o=e.send,l=e.rb_plus,$=e.to_a,u=[],c=e.nil;return e.add_stubs("undef_method,attr_reader,to_sym,alias_method,new,==,type,wrap,!,to_s,if_true,not,+,join,map,to_proc"),function(u,_){var p=[t(u,"Oga")].concat(_);return function(u,_){var p=[t(u,"Ruby")].concat(_),m=e.$r(p);return function(t,u,_){var p=r(t,u,"Node"),m=[p].concat(_),d=e.$r(m);return p.$$prototype.children=c,p.$undef_method("!","!="),p.$attr_reader("type"),n(p,"$initialize",(function(e,t){return null==t&&(t=[]),this.type=e.$to_sym(),this.children=t}),-2),n(p,"$to_a",a("children")),p.$alias_method("to_ary","to_a"),n(p,"$to_array",(function(){return d("Node").$new("send",[this,"to_a"])})),n(p,"$assign",(function(e){return s(e.$type(),"followed_by")&&(e=e.$wrap()),d("Node").$new("assign",[this,e])})),n(p,"$eq",(function(e){return d("Node").$new("eq",[this,e])})),n(p,"$and",(function(e){return d("Node").$new("and",[this,e])})),n(p,"$or",(function(e){return d("Node").$new("or",[this,e])})),n(p,"$not",(function(){return this["$!"]()})),n(p,"$is_a?",(function(e){return d("Node").$new("send",[this,"is_a?",d("Node").$new("lit",[e.$to_s()])])})),n(p,"$add_block",(function t(r){var n,a=t.$$p||c;return t.$$p=null,n=i(arguments),d("Node").$new("block",[this,n,e.yieldX(a,[])])}),-1),n(p,"$wrap",(function(){return d("Node").$new("begin",[this])})),n(p,"$if_true",(function t(){var r=t.$$p||c;return t.$$p=null,d("Node").$new("if",[this,e.yieldX(r,[])])})),n(p,"$if_false",(function t(){var r=t.$$p||c;return t.$$p=null,o(this.$not(),"if_true",[],(function(){return e.yieldX(r,[])}))})),n(p,"$while_true",(function t(){var r=t.$$p||c;return t.$$p=null,d("Node").$new("while",[this,e.yieldX(r,[])])})),n(p,"$else",(function t(){var r=t.$$p||c;return t.$$p=null,d("Node").$new("if",l(this.children,[e.yieldX(r,[])]))})),n(p,"$followed_by",(function t(r){var n=t.$$p||c;return t.$$p=null,null==r&&(r=c),n!==c&&(r=e.yieldX(n,[])),d("Node").$new("followed_by",[this,r])}),-1),n(p,"$method_missing",(function(e,t){var r,n=this;return r=i(arguments,1),d("Node").$new("send",[n,e.$to_s()].concat($(r)))}),-2),n(p,"$inspect",(function(){return"("+this.$type()+" "+o(this.children,"map",[],"inspect".$to_proc()).$join(" ")+")"}))}(p[0],m("BasicObject"),p)}(p[0],p)}(u[0],u)},Opal.modules["oga/ruby/generator"]=function(e){var t=e.module,r=e.klass,n=e.def,a=e.send,s=e.to_a,i=e.truthy,o=e.slice,l=[],$=e.nil;return e.add_stubs("send,type,join,map,to_a,process,[],==,empty?,inspect,to_sym"),function(e,l){var u=[t(e,"Oga")].concat(l);return function(e,l){return function(e,t){var l=r(e,null,"Generator");return n(l,"$process",(function(e){return this.$send("on_"+e.$type(),e)})),n(l,"$on_followed_by",(function(e){return a(e.$to_a(),"map",[],(function e(t){return null==t&&(t=$),(null==e.$$s?this:e.$$s).$process(t)}),{$$s:this}).$join("\n\n")})),n(l,"$on_assign",(function(e){var t,r,n;return r=null==(t=[].concat(s(e)))[0]?$:t[0],n=null==t[1]?$:t[1],this.$process(r)+" = "+this.$process(n)})),n(l,"$on_massign",(function(e){var t,r,n,i,o=$;return r=null==(t=[].concat(s(e)))[0]?$:t[0],n=null==t[1]?$:t[1],o=a(r,"map",[],(function e(t){return null==t&&(t=$),(null==e.$$s?this:e.$$s).$process(t)}),{$$s:this}),i=this.$process(n),o.$join(", ")+" = "+i})),n(l,"$on_begin",(function(e){return"begin\n "+this.$process(e.$to_a()["$[]"](0))+"\nend\n"})),n(l,"$on_eq",(function(e){var t,r,n;return r=null==(t=[].concat(s(e)))[0]?$:t[0],n=null==t[1]?$:t[1],this.$process(r)+" == "+this.$process(n)})),n(l,"$on_and",(function(e){var t,r,n;return r=null==(t=[].concat(s(e)))[0]?$:t[0],n=null==t[1]?$:t[1],this.$process(r)+" && "+this.$process(n)})),n(l,"$on_or",(function(e){var t,r,n;return r=null==(t=[].concat(s(e)))[0]?$:t[0],n=null==t[1]?$:t[1],"("+this.$process(r)+" || "+this.$process(n)+")"})),n(l,"$on_if",(function(e){var t,r,n,a,o,l,u=this;return r=null==(t=[].concat(s(e)))[0]?$:t[0],n=null==t[1]?$:t[1],a=null==t[2]?$:t[2],o=u.$process(r),l=u.$process(n),i(a)?"if "+o+"\n "+l+"\nelse\n "+u.$process(a)+"\nend\n":"if "+o+"\n "+l+"\nend\n"})),n(l,"$on_while",(function(e){var t,r,n;return r=null==(t=[].concat(s(e)))[0]?$:t[0],n=null==t[1]?$:t[1],"while "+this.$process(r)+"\n "+this.$process(n)+"\nend\n"})),n(l,"$on_send",(function(e){var t,r,n,l=$,u=$,c=$,_=$,p=$;return r=null==(t=[].concat(s(e)))[0]?$:t[0],l=null==t[1]?$:t[1],u=o(t,2),c=l,n=l["$=="]("[]"),i(u["$empty?"]())||(_=a(u,"map",[],(function e(t){return null==t&&(t=$),(null==e.$$s?this:e.$$s).$process(t)}),{$$s:this}).$join(", "),c=i(n)?"["+_+"]":c+"("+_+")"),i(r)&&(p=this.$process(r),c=i(n)?""+p+c:p+"."+c),c})),n(l,"$on_block",(function(e){var t,r,n,o,l,u,c=this;return r=null==(t=[].concat(s(e)))[0]?$:t[0],n=null==t[1]?$:t[1],o=null==t[2]?$:t[2],l=c.$process(r),u=i(o)?c.$process(o):$,l+" do |"+a(n,"map",[],(function e(t){return null==t&&(t=$),(null==e.$$s?this:e.$$s).$process(t)}),{$$s:c}).$join(", ")+"|\n "+u+"\nend\n"})),n(l,"$on_range",(function(e){var t,r,n;return r=null==(t=[].concat(s(e)))[0]?$:t[0],n=null==t[1]?$:t[1],"("+this.$process(r)+".."+this.$process(n)+")"})),n(l,"$on_string",(function(e){return e.$to_a()["$[]"](0).$inspect()})),n(l,"$on_symbol",(function(e){return e.$to_a()["$[]"](0).$to_sym().$inspect()})),n(l,"$on_lit",(function(e){return e.$to_a()["$[]"](0)}))}([t(e,"Ruby")].concat(l)[0])}(u[0],u)}(l[0],l)},Opal.modules["oga/xpath/lexer"]=function(e){var t=e.module,r=e.klass,n=e.const_set,a=e.assign_ivar,s=e.def,i=e.send,o=e.to_ary,l=e.truthy,$=e.rb_le,u=e.eqeq,c=e.rb_plus,_=e.rb_gt,p=e.rb_minus,m=e.neqeq,d=[],f=e.nil;return e.add_stubs("attr_accessor,private,_xpath_lexer_trans_keys=,_xpath_lexer_key_spans=,_xpath_lexer_index_offsets=,_xpath_lexer_indicies=,_xpath_lexer_trans_targs=,_xpath_lexer_trans_actions=,_xpath_lexer_to_state_actions=,_xpath_lexer_from_state_actions=,_xpath_lexer_eof_trans=,xpath_lexer_start=,xpath_lexer_first_final=,xpath_lexer_error=,xpath_lexer_en_main=,advance,<<,xpath_lexer_start,class,bytesize,send,<=,==,[],getbyte,+,>,-,!=,add_token,emit,slice_input,include?,to_i,to_f,byteslice,call"),function(d,h){var g=[t(d,"Oga")].concat(h);return function(d,h){var g=[t(d,"XPath")].concat(h);return function(t,d,h){var g=r(t,null,"Lexer"),b=[g].concat(h),v=e.$r(b),y=g.$$prototype;return y.data=y.block=f,function(e,t){e.$attr_accessor("_xpath_lexer_trans_keys"),e.$private("_xpath_lexer_trans_keys","_xpath_lexer_trans_keys=")}(e.get_singleton_class(g)),g["$_xpath_lexer_trans_keys="](e.large_array_unpack("0,0,32,32,32,32,110,110,100,100,32,32,105,105,118,118,32,32,111,111,100,100,32,32,114,114,32,32,61,61,34,34,0,127,39,39,43,57,48,57,58,58,41,41,0,127,0,127,42,111,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,43,57,46,57,46,57,46,46,47,47,61,61,0,0,0,0,61,61,0,0,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,0,0")),function(e,t){e.$attr_accessor("_xpath_lexer_key_spans"),e.$private("_xpath_lexer_key_spans","_xpath_lexer_key_spans=")}(e.get_singleton_class(g)),g["$_xpath_lexer_key_spans="](e.large_array_unpack("0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,128,1,15,10,1,1,128,128,70,0,0,0,0,0,0,0,128,15,12,12,1,1,1,0,0,1,0,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,0")),function(e,t){e.$attr_accessor("_xpath_lexer_index_offsets"),e.$private("_xpath_lexer_index_offsets","_xpath_lexer_index_offsets=")}(e.get_singleton_class(g)),g["$_xpath_lexer_index_offsets="](e.large_array_unpack("0,0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,159,161,177,188,190,192,321,450,521,522,523,524,525,526,527,528,657,673,686,699,701,703,705,706,707,709,710,839,968,1097,1226,1355,1484,1613,1742,1871,2000,2129,2258,2387,2516,2645,2774,2903,3032,3161,3290,3419,3548,3677,3806,3935,4064,4193,4322,4451,4580,4709,4838,4967,5096,5225,5354,5483,5612,5741,5870,5999,6128,6257,6386,6515,6644,6773,6902,7031,7160,7289,7418,7547,7676,7805,7934,8063,8192,8321,8450,8579,8708,8837,8966,9095,9224,9353,9482,9611,9740,9869,9998,10127,10256,10385,10514,10643,10772,10901,11030,11159,11288,11417,11546,11675,11804,11933,12062,12191,12320,12449,12578,12707,12836,12965,13094,13223")),function(e,t){e.$attr_accessor("_xpath_lexer_indicies"),e.$private("_xpath_lexer_indicies","_xpath_lexer_indicies=")}(e.get_singleton_class(g)),g["$_xpath_lexer_indicies="](e.large_array_unpack("1,0,2,0,3,0,4,0,5,0,6,0,7,0,8,0,9,0,10,0,11,0,12,0,13,0,14,15,17,16,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,19,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,15,15,15,15,18,15,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,15,15,15,15,15,18,17,20,22,21,22,21,21,23,23,23,23,23,23,23,23,23,23,21,24,24,24,24,24,24,24,24,24,24,21,26,25,27,25,15,15,15,15,15,15,15,15,15,29,29,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,30,31,16,15,32,15,15,20,33,34,35,36,37,22,38,39,23,23,23,23,23,23,23,23,23,23,40,15,41,42,43,15,44,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,45,15,46,15,28,15,47,28,48,49,28,50,28,28,28,28,28,28,28,51,28,52,28,28,53,54,28,28,28,28,28,28,15,55,15,15,15,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,28,28,56,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,28,58,57,57,59,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,60,57,57,61,57,57,57,57,57,57,57,57,62,57,63,57,64,65,66,67,68,69,70,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,18,18,71,18,18,18,18,18,18,18,18,18,18,71,71,71,71,71,71,71,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,71,71,71,71,18,71,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,71,71,71,71,71,18,73,72,73,72,72,74,74,74,74,74,74,74,74,74,74,72,76,75,23,23,23,23,23,23,23,23,23,23,75,76,77,24,24,24,24,24,24,24,24,24,24,77,44,78,44,57,80,79,81,82,84,83,85,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,28,28,56,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,28,28,28,28,28,28,28,28,28,28,28,28,28,86,28,28,28,28,28,87,28,28,28,28,28,28,56,56,56,56,56,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,28,28,56,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,28,28,88,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,28,28,56,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,28,28,28,28,89,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,28,28,56,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,90,28,28,28,28,28,28,28,56,56,56,56,56,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,28,28,56,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,91,28,28,28,28,28,28,56,56,56,56,56,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,28,28,56,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,92,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,28,28,56,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,93,28,28,28,28,28,28,28,28,56,56,56,56,56,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,94,28,56,28,28,28,28,28,28,28,28,28,28,95,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,28,28,56,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,96,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,28,28,56,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,97,28,28,28,28,28,28,28,28,56,56,56,56,56,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,98,28,56,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,28,28,56,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,53,28,28,28,28,28,28,28,56,56,56,56,56,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,28,28,56,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,28,28,28,28,99,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,28,28,56,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,28,28,28,28,28,28,28,28,28,28,28,100,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,28,28,56,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,28,28,28,28,28,101,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,28,28,56,28,28,28,28,28,28,28,28,28,28,95,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,28,28,56,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,102,28,28,28,28,28,28,56,56,56,56,56,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,28,28,56,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,103,28,28,28,28,28,28,28,28,56,56,56,56,56,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,28,28,56,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,28,28,28,28,28,28,28,28,104,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,28,28,56,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,28,105,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,28,28,56,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,106,28,28,28,28,28,56,56,56,56,56,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,28,28,56,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,107,28,28,28,28,28,28,56,56,56,56,56,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,28,28,56,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,28,28,28,28,101,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,28,28,56,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,28,28,28,28,28,28,28,108,28,28,28,28,28,28,109,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,28,28,56,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,28,28,28,28,28,28,28,28,110,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,28,28,56,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,28,28,28,28,28,28,28,28,28,28,28,111,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,28,28,56,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,28,28,28,101,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,28,28,56,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,28,28,28,28,28,28,28,28,28,28,28,28,112,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,28,28,56,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,28,28,28,28,28,28,28,28,28,28,28,28,113,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,28,28,56,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,28,28,28,28,114,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,28,28,56,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,28,28,28,28,28,28,28,28,28,28,28,28,28,115,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,28,28,56,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,116,28,28,28,28,28,28,56,56,56,56,56,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,117,56,56,56,56,28,28,56,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,28,28,56,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,28,28,28,28,118,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,28,28,56,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,119,28,28,28,28,28,28,28,56,56,56,56,56,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,28,28,56,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,28,28,120,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,28,28,56,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,28,28,28,28,121,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,28,28,56,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,28,28,28,28,28,28,28,28,28,28,28,28,28,122,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,28,28,56,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,28,28,28,123,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,28,28,56,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,124,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,28,28,56,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,28,28,28,28,28,28,28,28,28,28,28,28,28,125,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,28,28,56,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,93,28,28,28,28,28,28,56,56,56,56,56,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,28,28,56,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,126,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,28,28,56,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,28,28,28,28,28,28,28,28,28,28,28,127,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,28,28,56,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,28,28,28,28,28,28,28,28,28,28,28,128,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,28,28,56,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,129,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,28,28,56,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,130,28,28,28,56,56,56,56,56,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,28,28,56,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,28,28,28,28,28,28,28,28,131,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,28,28,56,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,28,28,28,28,28,28,28,28,28,28,28,28,28,132,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,28,28,56,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,28,28,28,28,28,28,133,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,134,28,56,28,28,28,28,28,28,28,28,28,28,95,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,28,28,56,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,135,28,28,28,28,28,28,28,56,56,56,56,56,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,28,28,56,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,28,28,28,28,28,28,28,28,136,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,28,28,56,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,28,137,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,28,28,56,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,28,28,28,28,28,28,28,28,28,28,28,138,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,28,28,56,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,28,28,28,28,28,28,28,28,139,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,28,28,56,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,28,28,28,28,28,28,28,28,28,28,28,28,28,140,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,28,28,56,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,28,28,28,28,28,28,101,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,28,28,56,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,141,28,28,28,28,28,28,28,28,28,28,28,28,28,142,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,28,28,56,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,28,28,28,28,28,28,28,28,28,28,28,28,143,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,28,28,56,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,28,28,28,28,144,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,28,28,56,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,145,28,28,28,28,28,28,28,56,56,56,56,56,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,28,28,56,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,146,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,28,28,56,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,147,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,28,28,56,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,28,28,107,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,28,28,56,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,28,28,28,148,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,28,28,56,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,28,28,28,28,116,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,28,28,56,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,149,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,150,28,28,28,28,28,28,28,28,56,56,56,56,56,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,28,28,56,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,151,28,28,28,28,28,28,28,28,56,56,56,56,56,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,28,28,56,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,28,28,28,28,152,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,28,28,56,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,28,28,28,28,28,28,28,28,28,28,28,28,28,153,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,28,28,56,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,101,28,28,28,28,28,28,56,56,56,56,56,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,28,28,56,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,28,28,28,28,154,28,28,28,28,28,28,28,28,28,155,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,28,28,56,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,28,28,156,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,28,28,56,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,28,28,28,28,157,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,28,28,56,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,28,28,28,130,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,28,28,56,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,28,28,158,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,28,28,56,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,28,28,28,28,159,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,28,28,56,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,160,28,28,28,28,28,28,28,56,56,56,56,56,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,28,28,56,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,161,28,28,28,28,28,28,28,56,56,56,56,56,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,28,28,56,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,28,28,28,28,28,28,28,28,162,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,28,28,56,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,28,28,28,28,28,28,28,28,28,28,28,28,28,163,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,28,28,56,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,28,28,28,28,28,28,164,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,165,28,56,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,28,28,56,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,28,28,28,28,28,28,28,28,166,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,28,28,56,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,28,28,28,28,28,28,28,28,28,28,28,28,28,167,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,28,28,56,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,168,28,28,28,28,28,28,28,56,56,56,56,56,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,28,28,56,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,169,28,28,28,28,28,28,56,56,56,56,56,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,28,28,56,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,170,28,28,28,28,28,28,28,28,56,56,56,56,56,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,28,28,56,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,171,28,28,28,28,28,56,56,56,56,56,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,28,28,56,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,28,28,172,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,28,28,56,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,173,28,28,28,28,28,28,56,56,56,56,56,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,28,28,56,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,28,28,28,28,28,28,28,28,174,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,28,28,56,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,175,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,28,28,56,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,28,28,28,28,28,28,28,28,28,28,28,28,28,116,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,28,28,56,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,28,28,28,28,176,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,28,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,28,28,56,28,28,28,28,28,28,28,28,28,28,56,56,56,56,56,56,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,56,56,56,56,28,56,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,115,28,28,56,56,56,56,56,28,177,0")),function(e,t){e.$attr_accessor("_xpath_lexer_trans_targs"),e.$private("_xpath_lexer_trans_targs","_xpath_lexer_trans_targs=")}(e.get_singleton_class(g)),g["$_xpath_lexer_trans_targs="](e.large_array_unpack("22,25,26,4,5,27,7,8,28,10,11,29,13,30,31,0,15,22,32,22,17,22,18,34,35,22,22,22,23,22,24,14,16,22,22,22,33,22,36,37,22,38,40,41,22,22,22,43,66,76,85,101,110,55,138,140,22,22,1,2,3,6,9,12,22,22,22,22,22,22,22,22,22,18,34,22,19,22,22,22,39,22,22,22,42,22,44,59,45,46,47,48,49,50,51,20,52,53,54,56,57,58,60,61,62,63,64,65,67,70,68,69,71,72,73,74,75,21,77,78,79,80,81,82,83,84,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,102,108,103,104,105,106,107,109,111,115,112,113,114,116,119,117,118,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,139,22")),function(e,t){e.$attr_accessor("_xpath_lexer_trans_actions"),e.$private("_xpath_lexer_trans_actions","_xpath_lexer_trans_actions=")}(e.get_singleton_class(g)),g["$_xpath_lexer_trans_actions="](e.large_array_unpack("1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,3,0,4,0,5,6,7,8,9,0,12,13,0,0,14,15,16,17,18,0,19,20,0,0,0,21,22,23,0,0,0,0,0,0,0,0,0,24,25,0,0,0,0,0,0,26,27,28,29,30,31,32,33,34,35,36,37,0,38,39,40,0,41,42,43,0,44,0,0,0,0,0,0,0,13,0,0,0,0,0,0,0,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,45")),function(e,t){e.$attr_accessor("_xpath_lexer_to_state_actions"),e.$private("_xpath_lexer_to_state_actions","_xpath_lexer_to_state_actions=")}(e.get_singleton_class(g)),g["$_xpath_lexer_to_state_actions="](e.large_array_unpack("0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0")),function(e,t){e.$attr_accessor("_xpath_lexer_from_state_actions"),e.$private("_xpath_lexer_from_state_actions","_xpath_lexer_from_state_actions=")}(e.get_singleton_class(g)),g["$_xpath_lexer_from_state_actions="](e.large_array_unpack("0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0")),function(e,t){e.$attr_accessor("_xpath_lexer_eof_trans"),e.$private("_xpath_lexer_eof_trans","_xpath_lexer_eof_trans=")}(e.get_singleton_class(g)),g["$_xpath_lexer_eof_trans="](e.large_array_unpack("0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,22,22,26,26,0,57,58,65,66,67,68,69,70,71,72,73,76,78,79,58,80,82,83,84,86,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,178")),function(e,t){e.$attr_accessor("xpath_lexer_start")}(e.get_singleton_class(g)),g["$xpath_lexer_start="](22),function(e,t){e.$attr_accessor("xpath_lexer_first_final")}(e.get_singleton_class(g)),g["$xpath_lexer_first_final="](22),function(e,t){e.$attr_accessor("xpath_lexer_error")}(e.get_singleton_class(g)),g["$xpath_lexer_error="](0),function(e,t){e.$attr_accessor("xpath_lexer_en_main")}(e.get_singleton_class(g)),g["$xpath_lexer_en_main="](22),n(b[0],"AXIS_MAPPING",new Map([["@","attribute"],["//","descendant-or-self"],["..","parent"],[".","self"]])),n(b[0],"AXIS_EMIT_NODE",["descendant-or-self","parent","self"]),n(b[0],"AXIS_EMIT_EXTRA_SLASH",["descendant-or-self"]),s(g,"$initialize",a("data")),s(g,"$lex",(function(){var e=f;return e=[],i(this,"advance",[],(function(t,r){return null==t&&(t=f),null==r&&(r=f),e["$<<"]([t,r])})),e})),s(g,"$advance",(function e(){var t,r=e.$$p||f,n=this,a=f,s=f,i=f,d=f,h=f,g=f,b=f,y=f,x=f,w=f,k=f,U=f,E=f,M=f,q=f,S=f,O=f,A=f,T=f,N=f,z=f,R=f,I=f,C=f,P=f,L=f,F=f,D=f,j=f,B=f;return e.$$p=null,function(){try{for(n.block=r,a=n.data,s=f,i=f,[],0,d=n.$class().$xpath_lexer_start(),h=0,g=n.data.$bytesize(),b=0,y=g,x=n.$class().$send("_xpath_lexer_eof_trans"),w=n.$class().$send("_xpath_lexer_from_state_actions"),k=n.$class().$send("_xpath_lexer_index_offsets"),U=n.$class().$send("_xpath_lexer_indicies"),E=n.$class().$send("_xpath_lexer_key_spans"),M=n.$class().$send("_xpath_lexer_to_state_actions"),q=n.$class().$send("_xpath_lexer_trans_actions"),S=n.$class().$send("_xpath_lexer_trans_keys"),O=n.$class().$send("_xpath_lexer_trans_targs"),!1,t=o(f),A=null==t[0]?f:t[0],T=null==t[1]?f:t[1],N=null==t[2]?f:t[2],z=null==t[3]?f:t[3],null==t[4]?f:t[4],null==t[5]?f:t[5],R=0,I=10,C=15,P=20,L=30,F=40;l(!0);){if(l($(R,0))){if(u(b,y)){R=L;continue}if(u(d,0)){R=F;continue}}if(l($(R,I))){if(11===w["$[]"](d).valueOf())s=b;N=d["$<<"](1),z=k["$[]"](d),A=E["$[]"](d),D=l(j=a.$getbyte(b))?j:0,T=l(_(A,0))&&l($(S["$[]"](N),D))&&l($(D,S["$[]"](c(N,1))))?U["$[]"](p(c(z,D),S["$[]"](N))):U["$[]"](c(z,A))}if(l($(R,C))&&(d=O["$[]"](T),m(q["$[]"](T),0)))switch(q["$[]"](T).valueOf()){case 19:n.$add_token("T_SLASH");break;case 35:n.$add_token("T_ADD");break;case 13:case 12:i=c(b,1);break;case 9:i=c(b,1),n.$emit("T_TYPE_TEST",s,p(i,2));break;case 3:i=c(b,1),n.$emit("T_VAR",c(s,1),i);break;case 2:i=c(b,1),n.$emit("T_STRING",c(s,1),p(i,1));break;case 8:i=c(b,1),n.$emit("T_AXIS",s,p(i,2));break;case 21:i=c(b,1),B=v("AXIS_MAPPING")["$[]"](n.$slice_input(s,i)),n.$add_token("T_AXIS",B),l(v("AXIS_EMIT_NODE")["$include?"](B))&&(n.$add_token("T_TYPE_TEST","node"),l(v("AXIS_EMIT_EXTRA_SLASH")["$include?"](B))&&m(i,g)&&n.$add_token("T_SLASH"));break;case 16:i=c(b,1),n.$emit("T_IDENT",s,i);break;case 25:i=b,b=p(b,1);break;case 33:i=b,b=p(b,1),n.$emit("T_VAR",c(s,1),i);break;case 37:i=b,b=p(b,1),B=n.$slice_input(s,i).$to_i(),n.$add_token("T_INT",B);break;case 38:i=b,b=p(b,1),B=n.$slice_input(s,i).$to_f(),n.$add_token("T_FLOAT",B);break;case 39:i=b,b=p(b,1),B=v("AXIS_MAPPING")["$[]"](n.$slice_input(s,i)),n.$add_token("T_AXIS",B),l(v("AXIS_EMIT_NODE")["$include?"](B))&&(n.$add_token("T_TYPE_TEST","node"),l(v("AXIS_EMIT_EXTRA_SLASH")["$include?"](B))&&m(i,g)&&n.$add_token("T_SLASH"));break;case 24:i=b,b=p(b,1),n.$emit("T_IDENT",s,i);break;case 1:b=p(i,1);break;case 7:b=p(i,1),n.$emit("T_IDENT",s,i);break;case 4:switch(h.valueOf()){case 0:d=0,R=P;continue;case 6:b=p(i,1),B=n.$slice_input(s,i).$to_i(),n.$add_token("T_INT",B);break;case 7:b=p(i,1),B=n.$slice_input(s,i).$to_f(),n.$add_token("T_FLOAT",B);break;default:b=p(i,1)}break;case 14:n.$add_token("T_LPAREN"),i=c(b,1);break;case 15:n.$add_token("T_RPAREN"),i=c(b,1);break;case 18:n.$add_token("T_COMMA"),i=c(b,1);break;case 20:n.$add_token("T_COLON"),i=c(b,1);break;case 22:n.$add_token("T_LBRACK"),i=c(b,1);break;case 23:n.$add_token("T_RBRACK"),i=c(b,1);break;case 45:n.$add_token("T_PIPE"),i=b,b=p(b,1);break;case 34:n.$add_token("T_ADD"),i=b,b=p(b,1);break;case 42:n.$add_token("T_EQ"),i=b,b=p(b,1);break;case 32:n.$add_token("T_NEQ"),i=b,b=p(b,1);break;case 40:n.$add_token("T_LT"),i=b,b=p(b,1);break;case 43:n.$add_token("T_GT"),i=b,b=p(b,1);break;case 41:n.$add_token("T_LTE"),i=b,b=p(b,1);break;case 44:n.$add_token("T_GTE"),i=b,b=p(b,1);break;case 28:n.$add_token("T_AND"),i=b,b=p(b,1);break;case 31:n.$add_token("T_OR"),i=b,b=p(b,1);break;case 29:n.$add_token("T_DIV"),i=b,b=p(b,1);break;case 30:n.$add_token("T_MOD"),i=b,b=p(b,1);break;case 26:n.$add_token("T_MUL"),i=b,b=p(b,1);break;case 27:n.$add_token("T_SUB"),i=b,b=p(b,1);break;case 17:i=c(b,1),h=1;break;case 5:i=c(b,1),h=6;break;case 6:i=c(b,1),h=7;break;case 36:i=c(b,1),n.$add_token("T_ADD"),h=6}if(l($(R,P))){if(10===M["$[]"](d).valueOf())s=f,h=0;if(u(d,0)){R=F;continue}if(b=c(b,1),m(b,y)){R=I;continue}}if(l($(R,L))&&u(b,g)&&l(_(x["$[]"](d),0)))T=p(x["$[]"](d),1),R=C;else if(l($(R,F)))break}}finally{n.block=f}}()})),g.$private(),s(g,"$emit",(function(e,t,r){var n;return n=this.$slice_input(t,r),this.$add_token(e,n)})),s(g,"$slice_input",(function(e,t){return this.data.$byteslice(e,p(t,e))})),s(g,"$add_token",(function(e,t){return null==t&&(t=f),this.block.$call(e,t)}),-2)}(g[0],0,g)}(g[0],g)}(d[0],d)},Opal.modules["oga/xpath/parser"]=function(e){var t=e.module,r=e.klass,n=e.const_set,a=e.send,s=e.defs,i=e.def,o=e.slice,l=e.truthy,$=e.to_a,u=e.rb_plus,c=e.top,_=[],p=e.nil,m=e.$$$;return e.add_stubs("require,new,terminals=,freeze,rules=,table=,actions=,get_or_set,parse,advance,[],each,s,combine_operators,combine_optional_operator,equal?,updated,+,children"),c.$require("ll/setup"),function(c,_){var d=[t(c,"Oga")].concat(_);return function(c,_){var d=[t(c,"XPath")].concat(_),f=e.$r(d);return function(t,c,_){var d=r(t,c,"Parser"),f=[d].concat(_),h=e.$r(f);return d.$$prototype.lexer=p,n(f[0],"CONFIG",m(h("LL"),"DriverConfig").$new()),h("CONFIG")["$terminals="](["$EOF","T_AXIS","T_COLON","T_COMMA","T_FLOAT","T_INT","T_IDENT","T_TYPE_TEST","T_LBRACK","T_RBRACK","T_LPAREN","T_RPAREN","T_SLASH","T_STRING","T_PIPE","T_AND","T_OR","T_ADD","T_DIV","T_MOD","T_EQ","T_NEQ","T_LT","T_GT","T_LTE","T_GTE","T_SUB","T_MUL","T_VAR"].$freeze()),h("CONFIG")["$rules="]([[3,0,8,32],[3,1,4,33,6,0,0,3],[3,2,0,3,1,16],[3,3,4,34,6,0,0,5],[3,4,0,5,1,15],[3,5,4,35,6,0,0,7],[3,6,0,7,1,20],[3,7,0,7,1,21],[3,8,4,36,6,0,0,9],[3,9,0,9,1,22],[3,10,0,9,1,23],[3,11,0,9,1,24],[3,12,0,9,1,25],[3,13,4,37,6,0,0,11],[3,14,0,11,1,17],[3,15,0,11,1,26],[3,16,8,38,0,13],[3,17,0,11,1,18],[3,18,0,11,1,19],[3,19,0,11,1,27],[3,20,4,39,6,0,0,15],[3,21,0,15,1,14],[3,22,0,17],[3,23,0,16],[3,24,0,29],[3,25,0,30],[3,26,0,31],[3,27,1,11,0,1,1,10],[3,28,8,40,1,12],[3,29,0,18],[3,30,0,27],[3,31,0,19,1,6],[3,32,8,42,8,41,0,22],[3,33,1,11,0,25,1,10],[3,34,8,44,8,43,1,6,1,2],[3,35,8,46,8,45],[3,36,0,17,1,12],[3,37,1,9,0,1,1,8],[3,38,1,7],[3,39,8,47,1,6],[3,40,1,6,1,2],[3,41,4,48,6,0,0,1],[3,42,2,0],[3,43,0,1,1,3],[3,44,8,50,8,49,0,28,1,1],[3,45,0,23],[3,46,0,22],[3,47,1,13],[3,48,1,5],[3,49,1,4],[3,50,1,28],[3,51,0,1],[3,52,0,2],[3,53,0,4],[3,54,0,6],[3,55,0,8],[3,56,0,10],[3,57,0,12],[3,58,0,14],[3,59,0,17],[3,60,0,21],[3,61,0,20],[3,62,0,21],[3,63,0,20],[3,64,0,21],[3,65,0,20],[3,66,0,24],[3,67,0,26],[3,68,0,21],[3,69,0,20]].$freeze()),h("CONFIG")["$table="]([[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[-1,1,-1,-1,1,1,1,1,-1,-1,1,-1,1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1],[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],[-1,3,-1,-1,3,3,3,3,-1,-1,3,-1,3,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3],[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],[-1,5,-1,-1,5,5,5,5,-1,-1,5,-1,5,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5],[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6,7,-1,-1,-1,-1,-1,-1,-1],[-1,8,-1,-1,8,8,8,8,-1,-1,8,-1,8,8,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8],[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,9,10,11,12,-1,-1,-1],[-1,13,-1,-1,13,13,13,13,-1,-1,13,-1,13,13,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,13],[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,14,-1,-1,-1,-1,-1,-1,-1,-1,15,-1,-1],[-1,16,-1,-1,16,16,16,16,-1,-1,16,-1,16,16,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,16],[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,17,18,-1,-1,-1,-1,-1,-1,-1,19,-1],[-1,20,-1,-1,20,20,20,20,-1,-1,20,-1,20,20,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,20],[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,21,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],[-1,22,-1,-1,25,25,22,22,-1,-1,27,-1,23,24,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,26],[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,28,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],[-1,30,-1,-1,-1,-1,29,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],[-1,-1,-1,-1,-1,-1,31,32,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],[35,35,34,35,35,35,35,35,35,35,33,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35],[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,36,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],[-1,-1,-1,-1,-1,-1,-1,-1,37,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],[-1,-1,-1,-1,-1,-1,-1,38,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],[-1,-1,-1,-1,-1,-1,39,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],[-1,-1,40,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],[42,41,42,42,41,41,41,41,42,42,41,42,41,41,42,42,42,42,42,42,42,42,42,42,42,42,42,42,41],[-1,-1,-1,43,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],[-1,44,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],[-1,-1,-1,-1,-1,-1,45,46,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,47,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],[-1,-1,-1,-1,49,48,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,50],[-1,51,-1,-1,51,51,51,51,-1,-1,51,-1,51,51,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,51],[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,52,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,53,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,54,54,-1,-1,-1,-1,-1,-1,-1],[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,55,55,55,55,-1,-1,-1],[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,56,-1,-1,-1,-1,-1,-1,-1,-1,56,-1,-1],[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,57,57,-1,-1,-1,-1,-1,-1,-1,57,-1],[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,58,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],[-1,59,-1,-1,-1,-1,59,59,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],[-1,-1,-1,-1,-1,-1,-1,-1,60,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,61,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],[-1,-1,-1,-1,-1,-1,-1,-1,62,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,63,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],[-1,-1,-1,-1,-1,-1,-1,-1,64,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,65,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],[-1,-1,66,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],[-1,-1,-1,67,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],[-1,-1,-1,-1,-1,-1,-1,-1,68,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,69,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1]].$freeze()),h("CONFIG")["$actions="]([["_rule_0",1],["_rule_1",2],["_rule_2",2],["_rule_3",2],["_rule_4",2],["_rule_5",2],["_rule_6",2],["_rule_7",2],["_rule_8",2],["_rule_9",2],["_rule_10",2],["_rule_11",2],["_rule_12",2],["_rule_13",2],["_rule_14",2],["_rule_15",2],["_rule_16",2],["_rule_17",2],["_rule_18",2],["_rule_19",2],["_rule_20",2],["_rule_21",2],["_rule_22",1],["_rule_23",1],["_rule_24",1],["_rule_25",1],["_rule_26",1],["_rule_27",3],["_rule_28",2],["_rule_29",1],["_rule_30",1],["_rule_31",2],["_rule_32",3],["_rule_33",3],["_rule_34",4],["_rule_35",2],["_rule_36",2],["_rule_37",3],["_rule_38",1],["_rule_39",2],["_rule_40",2],["_rule_41",2],["_rule_42",0],["_rule_43",2],["_rule_44",4],["_rule_45",1],["_rule_46",1],["_rule_47",1],["_rule_48",1],["_rule_49",1],["_rule_50",1],["_rule_51",1],["_rule_52",1],["_rule_53",1],["_rule_54",1],["_rule_55",1],["_rule_56",1],["_rule_57",1],["_rule_58",1],["_rule_59",1],["_rule_60",1],["_rule_61",1],["_rule_62",1],["_rule_63",1],["_rule_64",1],["_rule_65",1],["_rule_66",1],["_rule_67",1],["_rule_68",1],["_rule_69",1]].$freeze()),n(f[0],"CACHE",h("LRU").$new()),s(d,"$parse_with_cache",(function(e){return a(h("CACHE"),"get_or_set",[e],(function t(){return(null==t.$$s?this:t.$$s).$new(e).$parse()}),{$$s:this})})),i(d,"$initialize",(function(e){return this.lexer=h("Lexer").$new(e)})),i(d,"$s",(function(e,t){var r;return r=o(arguments,1),m(h("AST"),"Node").$new(e,r)}),-2),i(d,"$each_token",(function t(){var r=t.$$p||p;return t.$$p=null,a(this.lexer,"advance",[],(function t(n,a,s){var i=null==t.$$s?this:t.$$s;return null==n&&(n=p),null==a&&(a=p),null==s&&(s=p),l(s)&&(i.line=s),e.yield1(r,[n,a])}),{$$s:this}),e.yield1(r,[-1,-1])})),i(d,"$combine_operators",(function(e){var t=p;return t=e["$[]"](0),a(e["$[]"](1),"each",[],(function e(r){return null==r&&(r=p),t=(null==e.$$s?this:e.$$s).$s(r["$[]"](0),t,r["$[]"](1))}),{$$s:this}),t})),i(d,"$combine_optional_operator",(function(e){var t=p;return t=e["$[]"](0),l(e["$[]"](1))&&(t=this.$s(e["$[]"](1)["$[]"](0),t,e["$[]"](1)["$[]"](1))),t})),i(d,"$_rule_0",(function(e){return e["$[]"](0)})),i(d,"$_rule_1",(function(e){return this.$combine_operators(e)})),i(d,"$_rule_2",(function(e){return["or",e["$[]"](1)]})),i(d,"$_rule_3",(function(e){return this.$combine_operators(e)})),i(d,"$_rule_4",(function(e){return["and",e["$[]"](1)]})),i(d,"$_rule_5",(function(e){return this.$combine_operators(e)})),i(d,"$_rule_6",(function(e){return["eq",e["$[]"](1)]})),i(d,"$_rule_7",(function(e){return["neq",e["$[]"](1)]})),i(d,"$_rule_8",(function(e){return this.$combine_operators(e)})),i(d,"$_rule_9",(function(e){return["lt",e["$[]"](1)]})),i(d,"$_rule_10",(function(e){return["gt",e["$[]"](1)]})),i(d,"$_rule_11",(function(e){return["lte",e["$[]"](1)]})),i(d,"$_rule_12",(function(e){return["gte",e["$[]"](1)]})),i(d,"$_rule_13",(function(e){return this.$combine_operators(e)})),i(d,"$_rule_14",(function(e){return["add",e["$[]"](1)]})),i(d,"$_rule_15",(function(e){return["sub",e["$[]"](1)]})),i(d,"$_rule_16",(function(e){return this.$combine_optional_operator(e)})),i(d,"$_rule_17",(function(e){return["div",e["$[]"](1)]})),i(d,"$_rule_18",(function(e){return["mod",e["$[]"](1)]})),i(d,"$_rule_19",(function(e){return["mul",e["$[]"](1)]})),i(d,"$_rule_20",(function(e){return this.$combine_operators(e)})),i(d,"$_rule_21",(function(e){return["pipe",e["$[]"](1)]})),i(d,"$_rule_22",(function(e){return e["$[]"](0)})),i(d,"$_rule_23",(function(e){return e["$[]"](0)})),i(d,"$_rule_24",(function(e){return e["$[]"](0)})),i(d,"$_rule_25",(function(e){return e["$[]"](0)})),i(d,"$_rule_26",(function(e){return e["$[]"](0)})),i(d,"$_rule_27",(function(e){return e["$[]"](1)})),i(d,"$_rule_28",(function(e){return l(e["$[]"](1))?this.$s("absolute_path",e["$[]"](1)):this.$s("absolute_path")})),i(d,"$_rule_29",(function(e){return e["$[]"](0)})),i(d,"$_rule_30",(function(e){return e["$[]"](0)})),i(d,"$_rule_31",(function(e){var t,r,n,s=this,i=p,o=p;return i=e["$[]"](1)["$[]"](0),t=e["$[]"](1)["$[]"](1),r=e["$[]"](1)["$[]"](2),n=e["$[]"](1)["$[]"](3),o=l(i["$equal?"]("test"))?l(t)?s.$s("axis","child",s.$s("test",e["$[]"](0),t)):s.$s("axis","child",s.$s("test",p,e["$[]"](0))):a(s,"s",[i,e["$[]"](0)].concat($(t))),l(r)&&(o=s.$s("predicate",o,r)),l(n)&&(o=o.$updated(p,u(o.$children(),[n]))),o})),i(d,"$_rule_32",(function(e){var t,r,n=p;return t=e["$[]"](1),r=e["$[]"](2),n=this.$s("axis","child",e["$[]"](0)),l(t)&&(n=this.$s("predicate",n,t)),l(r)&&(n=n.$updated(p,u(n.$children(),[r]))),n})),i(d,"$_rule_33",(function(e){return["call",e["$[]"](1)]})),i(d,"$_rule_34",(function(e){return["test",e["$[]"](1),e["$[]"](2),e["$[]"](3)]})),i(d,"$_rule_35",(function(e){return["test",p,e["$[]"](0),e["$[]"](1)]})),i(d,"$_rule_36",(function(e){return e["$[]"](1)})),i(d,"$_rule_37",(function(e){return e["$[]"](1)})),i(d,"$_rule_38",(function(e){return this.$s("type_test",e["$[]"](0))})),i(d,"$_rule_39",(function(e){return l(e["$[]"](1))?this.$s("test",e["$[]"](0),e["$[]"](1)):this.$s("test",p,e["$[]"](0))})),i(d,"$_rule_40",(function(e){return e["$[]"](1)})),i(d,"$_rule_41",(function(e){return[e["$[]"](0)].concat($(e["$[]"](1)))})),i(d,"$_rule_42",(function(e){return e})),i(d,"$_rule_43",(function(e){return e["$[]"](1)})),i(d,"$_rule_44",(function(e){var t,r=p;return r=this.$s("axis",e["$[]"](0),e["$[]"](1)),t=e["$[]"](3),l(e["$[]"](2))&&(r=this.$s("predicate",r,e["$[]"](2))),l(t)&&(r=r.$updated(p,u(r.$children(),[t]))),r})),i(d,"$_rule_45",(function(e){return e["$[]"](0)})),i(d,"$_rule_46",(function(e){return e["$[]"](0)})),i(d,"$_rule_47",(function(e){return this.$s("string",e["$[]"](0))})),i(d,"$_rule_48",(function(e){return this.$s("int",e["$[]"](0))})),i(d,"$_rule_49",(function(e){return this.$s("float",e["$[]"](0))})),i(d,"$_rule_50",(function(e){return this.$s("var",e["$[]"](0))})),i(d,"$_rule_51",(function(e){return e["$[]"](0)})),i(d,"$_rule_52",(function(e){return e["$[]"](0)})),i(d,"$_rule_53",(function(e){return e["$[]"](0)})),i(d,"$_rule_54",(function(e){return e["$[]"](0)})),i(d,"$_rule_55",(function(e){return e["$[]"](0)})),i(d,"$_rule_56",(function(e){return e["$[]"](0)})),i(d,"$_rule_57",(function(e){return e["$[]"](0)})),i(d,"$_rule_58",(function(e){return e["$[]"](0)})),i(d,"$_rule_59",(function(e){return e["$[]"](0)})),i(d,"$_rule_60",(function(e){return e["$[]"](0)})),i(d,"$_rule_61",(function(e){return e["$[]"](0)})),i(d,"$_rule_62",(function(e){return e["$[]"](0)})),i(d,"$_rule_63",(function(e){return e["$[]"](0)})),i(d,"$_rule_64",(function(e){return e["$[]"](0)})),i(d,"$_rule_65",(function(e){return e["$[]"](0)})),i(d,"$_rule_66",(function(e){return e["$[]"](0)})),i(d,"$_rule_67",(function(e){return e["$[]"](0)})),i(d,"$_rule_68",(function(e){return e["$[]"](0)})),i(d,"$_rule_69",(function(e){return e["$[]"](0)}))}(d[0],m(f("LL"),"Driver"),d)}(d[0],d)}(_[0],_)},Opal.modules["oga/xpath/context"]=function(Opal){var $module=Opal.module,$klass=Opal.klass,$thrower=Opal.thrower,$def=Opal.def,$nesting=[],nil=Opal.nil;return Opal.add_stubs("eval"),function($base,$parent_nesting){var self=$module($base,"Oga"),$nesting=[self].concat($parent_nesting);return function($base,$parent_nesting){var self=$module($base,"XPath"),$nesting=[self].concat($parent_nesting);return function($base,$super,$parent_nesting){var self=$klass($base,$super,"Context"),$nesting=[self].concat($parent_nesting);return $def(self,"$evaluate",(function $$evaluate(string){try{var self=this;return Opal.Binding.$new((function($code){return eval($code)}),["string"],self,["oga/xpath/context.rb",13]).$eval(string)}catch(e){if(e===Opal.t_eval_return)return e.$v;throw e}}))}($nesting[0],null,$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["oga/xpath/compiler"]=function(e){var t=e.module,r=e.klass,n=e.const_set,a=e.ensure_kwargs,s=e.hash_get,i=e.truthy,o=e.send,l=e.defs,$=e.def,u=e.to_a,c=e.rb_plus,_=e.to_ary,p=e.eqeq,m=e.slice,d=e.rb_minus,f=e.neqeq,h=[],g=e.nil,b=e.$$$;return e.add_stubs("new,get_or_set,compile,reset,literal,matched_literal,return_nodeset?,process,push,assign,variables_literal,nil,add_block,original_input_literal,followed_by,evaluate,send,type,to_proc,empty?,children,root_node,[],gsub,process_following_or_yield,unique_literal,if_true,document_or_node,each,is_a?,attributes,match_name_and_namespace,and,attribute_or_node,each_ancestor,each_node,parent,else,false,eq,true,throw_message,or,not,!=,send_message,if_false,string,available_namespaces,name,break,number?,has_call_node?,<<,pop,predicate_index,to_i,to_boolean,+,catch_message,element_or_attribute,operator,mass_assign,to_compatible_types,define_method,__send__,==,to_s,to_f,try_match_first_node,to_float,nan?,ceil,floor,round,to_string,inject,include?,raise,zero?,text,split,attribute,value,while_true,respond_to?,symbol,get,argument_or_first_node,ensure_element_or_attribute,expanded_name,namespace,uri,strip,start_with?,length,partition,-,range,to_array,chars,each_with_index,predicate_nodeset,to_sym,casecmp,namespace_name,match_first_node,raise_message,last"),function(h,v){var y=[t(h,"Oga")].concat(v);return function(h,v){var y=[t(h,"XPath")].concat(v);return function(t,h,v){var y=r(t,null,"Compiler"),x=[y].concat(v),w=e.$r(x),k=y.$$prototype;return k.predicate_indexes=k.predicate_nodesets=k.literal_id=k.nil=k.true=k.false=k.namespaces=g,n(x[0],"CACHE",w("LRU").$new()),n(x[0],"CONTEXT",w("Context").$new()),n(x[0],"STAR","*"),n(x[0],"RETURN_NODESET",["path","absolute_path","axis","predicate"]),n(x[0],"OPERATORS",new Map([["on_add",["to_float","+"]],["on_sub",["to_float","-"]],["on_div",["to_float","/"]],["on_gt",["to_float",">"]],["on_gte",["to_float",">="]],["on_lt",["to_float","<"]],["on_lte",["to_float","<="]],["on_mul",["to_float","*"]],["on_mod",["to_float","%"]],["on_and",["to_boolean","and"]],["on_or",["to_boolean","or"]]])),l(y,"$compile_with_cache",(function(e,t){var r,n;return t=a(t),null==(r=s(t,"namespaces"))&&(r=g),n=i(r)?[e,r]:e,o(w("CACHE"),"get_or_set",[n],(function t(){return(null==t.$$s?this:t.$$s).$new(new Map([["namespaces",r]])).$compile(e)}),{$$s:this})}),-2),$(y,"$initialize",(function(e){var t;return e=a(e),null==(t=s(e,"namespaces"))&&(t=g),this.$reset(),this.namespaces=t}),-1),$(y,"$reset",(function(){var e=this;return e.literal_id=0,e.predicate_nodesets=[],e.predicate_indexes=[]})),$(y,"$compile",(function(e){var t=this,r=g,n=g,a=g,s=g,l=g,$=g,u=g;return function(){try{return r=t.$literal("node"),n=t.$matched_literal(),a=i(t["$return_nodeset?"](e))?o(t,"process",[e,r],(function(e){return null==e&&(e=g),n.$push(e)})):t.$process(e,r),s=t.$variables_literal().$assign(t.$nil()),l=o(t.$literal("lambda"),"add_block",[r,s],(function t(){var s=null==t.$$s?this:t.$$s,o=g,l=g;return o=s.$original_input_literal().$assign(r),l=i(s["$return_nodeset?"](e))?n.$assign(s.$literal(b(w("XML"),"NodeSet")).$new()).$followed_by(a).$followed_by(n):a,o.$followed_by(l)}),{$$s:t}),$=b(w("Ruby"),"Generator").$new(),u=$.$process(l),w("CONTEXT").$evaluate(u)}finally{t.$reset()}}()})),$(y,"$process",(function e(t,r){var n=e.$$p||g;return e.$$p=null,o(this,"send",["on_"+t.$type(),t,r],n.$to_proc())})),$(y,"$on_absolute_path",(function e(t,r){var n=e.$$p||g;return e.$$p=null,i(t.$children()["$empty?"]())?this.$matched_literal().$push(r.$root_node()):o(this,"process",[t.$children()["$[]"](0),r.$root_node()],n.$to_proc())})),$(y,"$on_axis",(function e(t,r){var n,a,s,i,l=e.$$p||g,$=g;return e.$$p=null,$=null==(n=[].concat(u(t)))[0]?g:n[0],a=null==n[1]?g:n[1],s=null==n[2]?g:n[2],i=$.$gsub("-","_"),o(this,"send",["on_axis_"+i,a,r],(function e(t){return null==t&&(t=g),o(null==e.$$s?this:e.$$s,"process_following_or_yield",[s,t],l.$to_proc())}),{$$s:this})})),$(y,"$on_axis_child",(function t(r,n){var a,s=t.$$p||g,i=this;return t.$$p=null,a=i.$unique_literal("child"),o(i.$document_or_node(n),"if_true",[],(function t(){var i=null==t.$$s?this:t.$$s;return o(n.$children().$each(),"add_block",[a],(function t(){return o((null==t.$$s?this:t.$$s).$process(r,a),"if_true",[],(function(){return e.yield1(s,a)}))}),{$$s:i})}),{$$s:i})})),$(y,"$on_axis_attribute",(function t(r,n){var a=t.$$p||g;return t.$$p=null,o(n["$is_a?"](b(w("XML"),"Element")),"if_true",[],(function t(){var s,l=null==t.$$s?this:t.$$s;return s=l.$unique_literal("attribute"),o(n.$attributes().$each(),"add_block",[s],(function t(){var n;return n=(null==t.$$s?this:t.$$s).$match_name_and_namespace(r,s),i(n)?o(n,"if_true",[],(function(){return e.yield1(a,s)})):e.yield1(a,s)}),{$$s:l})}),{$$s:this})})),$(y,"$on_axis_ancestor_or_self",(function t(r,n){var a,s=t.$$p||g,i=this;return t.$$p=null,a=i.$unique_literal("parent"),o(o(i.$process(r,n).$and(n["$is_a?"](b(w("XML"),"Node"))),"if_true",[],(function(){return e.yield1(s,n)})),"followed_by",[],(function t(){var i=null==t.$$s?this:t.$$s;return o(i.$attribute_or_node(n),"if_true",[],(function t(){var i=null==t.$$s?this:t.$$s;return o(n.$each_ancestor(),"add_block",[a],(function t(){return o((null==t.$$s?this:t.$$s).$process(r,a),"if_true",[],(function(){return e.yield1(s,a)}))}),{$$s:i})}),{$$s:i})}),{$$s:i})})),$(y,"$on_axis_ancestor",(function t(r,n){var a,s=t.$$p||g,i=this;return t.$$p=null,a=i.$unique_literal("parent"),o(i.$attribute_or_node(n),"if_true",[],(function t(){var i=null==t.$$s?this:t.$$s;return o(n.$each_ancestor(),"add_block",[a],(function t(){return o((null==t.$$s?this:t.$$s).$process(r,a),"if_true",[],(function(){return e.yield1(s,a)}))}),{$$s:i})}),{$$s:i})})),$(y,"$on_axis_descendant_or_self",(function t(r,n){var a,s=t.$$p||g,i=this;return t.$$p=null,a=i.$unique_literal("descendant"),o(i.$document_or_node(n),"if_true",[],(function t(){var i=null==t.$$s?this:t.$$s;return o(o(i.$process(r,n),"if_true",[],(function(){return e.yield1(s,n)})),"followed_by",[],(function t(){var i=null==t.$$s?this:t.$$s;return o(n.$each_node(),"add_block",[a],(function t(){return o((null==t.$$s?this:t.$$s).$process(r,a),"if_true",[],(function(){return e.yield1(s,a)}))}),{$$s:i})}),{$$s:i})}),{$$s:i})})),$(y,"$on_axis_descendant",(function t(r,n){var a,s=t.$$p||g,i=this;return t.$$p=null,a=i.$unique_literal("descendant"),o(i.$document_or_node(n),"if_true",[],(function t(){var i=null==t.$$s?this:t.$$s;return o(n.$each_node(),"add_block",[a],(function t(){return o((null==t.$$s?this:t.$$s).$process(r,a),"if_true",[],(function(){return e.yield1(s,a)}))}),{$$s:i})}),{$$s:i})})),$(y,"$on_axis_parent",(function t(r,n){var a=t.$$p||g,s=this,i=g;return t.$$p=null,i=s.$unique_literal("parent"),o(s.$attribute_or_node(n),"if_true",[],(function t(){var s=null==t.$$s?this:t.$$s;return o(i.$assign(n.$parent()),"followed_by",[],(function t(){return o((null==t.$$s?this:t.$$s).$process(r,i),"if_true",[],(function(){return e.yield1(a,i)}))}),{$$s:s})}),{$$s:s})})),$(y,"$on_axis_self",(function t(r,n){var a=t.$$p||g;return t.$$p=null,o(this.$process(r,n),"if_true",[],(function(){return e.yield1(a,n)}))})),$(y,"$on_axis_following_sibling",(function t(r,n){var a=t.$$p||g,s=this,i=g,l=g,$=g,u=g,c=g;return t.$$p=null,i=s.$original_input_literal(),l=s.$literal("doc_node"),$=s.$literal("check"),u=s.$literal("parent"),c=s.$literal("root"),o(o(o(o(i["$is_a?"](b(w("XML"),"Node")),"if_true",[],(function(){return c.$assign(i.$parent())})),"else",[],(function(){return c.$assign(i)})),"followed_by",[],(function e(){var t=null==e.$$s?this:e.$$s;return o(o(n["$is_a?"](b(w("XML"),"Node")).$and(n.$parent()),"if_true",[],(function(){return u.$assign(n.$parent())})),"else",[],(function e(){var t=null==e.$$s?this:e.$$s;return u.$assign(t.$nil())}),{$$s:t})}),{$$s:s}).$followed_by($.$assign(s.$false())),"followed_by",[],(function t(){var s=null==t.$$s?this:t.$$s;return o(s.$document_or_node(c),"if_true",[],(function t(){var s=null==t.$$s?this:t.$$s;return o(c.$each_node(),"add_block",[l],(function t(){var s=null==t.$$s?this:t.$$s;return o(o(o(l.$eq(n),"if_true",[],(function e(){var t=null==e.$$s?this:e.$$s;return $.$assign(t.$true()).$followed_by(t.$throw_message("skip_children"))}),{$$s:s}),"followed_by",[],(function e(){var t=null==e.$$s?this:e.$$s;return o($.$not().$or(u["$!="](l.$parent())),"if_true",[],(function e(){return(null==e.$$s?this:e.$$s).$send_message("next")}),{$$s:t})}),{$$s:s}),"followed_by",[],(function t(){return o((null==t.$$s?this:t.$$s).$process(r,l),"if_true",[],(function(){return e.yield1(a,l)}))}),{$$s:s})}),{$$s:s})}),{$$s:s})}),{$$s:s})})),$(y,"$on_axis_following",(function t(r,n){var a=t.$$p||g,s=this,i=g,l=g,$=g,u=g;return t.$$p=null,i=s.$original_input_literal(),l=s.$literal("doc_node"),$=s.$literal("check"),u=s.$literal("root"),o(o(o(i["$is_a?"](b(w("XML"),"Node")),"if_true",[],(function(){return u.$assign(i.$root_node())})),"else",[],(function(){return u.$assign(i)})).$followed_by($.$assign(s.$false())),"followed_by",[],(function t(){var s=null==t.$$s?this:t.$$s;return o(s.$document_or_node(u),"if_true",[],(function t(){var s=null==t.$$s?this:t.$$s;return o(u.$each_node(),"add_block",[l],(function t(){var s=null==t.$$s?this:t.$$s;return o(o(o(l.$eq(n),"if_true",[],(function e(){var t=null==e.$$s?this:e.$$s;return $.$assign(t.$true()).$followed_by(t.$throw_message("skip_children"))}),{$$s:s}),"followed_by",[],(function e(){return o($,"if_false",[],(function e(){return(null==e.$$s?this:e.$$s).$send_message("next")}),{$$s:null==e.$$s?this:e.$$s})}),{$$s:s}),"followed_by",[],(function t(){return o((null==t.$$s?this:t.$$s).$process(r,l),"if_true",[],(function(){return e.yield1(a,l)}))}),{$$s:s})}),{$$s:s})}),{$$s:s})}),{$$s:s})})),$(y,"$on_axis_namespace",(function t(r,n){var a,s,i=t.$$p||g,l=this,$=g,u=g;return t.$$p=null,a=l.$literal("_"),$=l.$unique_literal("namespace"),u=l.$string(r.$children()["$[]"](1)),s=l.$string(w("STAR")),o(n["$is_a?"](b(w("XML"),"Element")),"if_true",[],(function(){return o(n.$available_namespaces().$each(),"add_block",[a,$],(function(){return o($.$name().$eq(u).$or(u.$eq(s)),"if_true",[],(function(){return e.yield1(i,$)}))}))}))})),$(y,"$on_axis_preceding",(function t(r,n){var a=t.$$p||g,s=this,i=g,l=g;return t.$$p=null,i=s.$literal("root"),l=s.$literal("doc_node"),o(n["$is_a?"](b(w("XML"),"Node")),"if_true",[],(function t(){var s=null==t.$$s?this:t.$$s;return o(i.$assign(n.$root_node()),"followed_by",[],(function t(){var s=null==t.$$s?this:t.$$s;return o(s.$document_or_node(i),"if_true",[],(function t(){var s=null==t.$$s?this:t.$$s;return o(i.$each_node(),"add_block",[l],(function t(){var s=null==t.$$s?this:t.$$s;return o(o(l.$eq(n),"if_true",[],(function e(){return(null==e.$$s?this:e.$$s).$break()}),{$$s:s}),"followed_by",[],(function t(){return o((null==t.$$s?this:t.$$s).$process(r,l),"if_true",[],(function(){return e.yield1(a,l)}))}),{$$s:s})}),{$$s:s})}),{$$s:s})}),{$$s:s})}),{$$s:s})})),$(y,"$on_axis_preceding_sibling",(function t(r,n){var a=t.$$p||g,s=this,i=g,l=g,$=g,u=g,c=g;return t.$$p=null,i=s.$original_input_literal(),l=s.$literal("check"),$=s.$literal("root"),u=s.$literal("parent"),c=s.$literal("doc_node"),o(o(o(o(i["$is_a?"](b(w("XML"),"Node")),"if_true",[],(function(){return $.$assign(i.$parent())})),"else",[],(function(){return $.$assign(i)})).$followed_by(l.$assign(s.$false())),"followed_by",[],(function e(){var t=null==e.$$s?this:e.$$s;return o(o(n["$is_a?"](b(w("XML"),"Node")).$and(n.$parent()),"if_true",[],(function(){return u.$assign(n.$parent())})),"else",[],(function e(){var t=null==e.$$s?this:e.$$s;return u.$assign(t.$nil())}),{$$s:t})}),{$$s:s}),"followed_by",[],(function t(){var s=null==t.$$s?this:t.$$s;return o(s.$document_or_node($),"if_true",[],(function t(){var s=null==t.$$s?this:t.$$s;return o($.$each_node(),"add_block",[c],(function t(){var s=null==t.$$s?this:t.$$s;return o(o(c.$eq(n),"if_true",[],(function e(){return(null==e.$$s?this:e.$$s).$break()}),{$$s:s}),"followed_by",[],(function t(){var n=null==t.$$s?this:t.$$s;return o(c.$parent().$eq(u),"if_true",[],(function t(){return o((null==t.$$s?this:t.$$s).$process(r,c),"if_true",[],(function(){return e.yield1(a,c)}))}),{$$s:n})}),{$$s:s})}),{$$s:s})}),{$$s:s})}),{$$s:s})})),$(y,"$on_predicate",(function e(t,r){var n,a,s,l,$=e.$$p||g,c=this,_=g,p=g;return e.$$p=null,n=[].concat(u(t)),a=null==n[0]?g:n[0],s=null==n[1]?g:n[1],l=null==n[2]?g:n[2],_=c.$unique_literal("index"),p=i(c["$number?"](s))?"on_predicate_index":i(c["$has_call_node?"](s,"last"))?"on_predicate_temporary":"on_predicate_direct",c.predicate_indexes["$<<"](_),t=o(_.$assign(c.$literal(1)),"followed_by",[],(function e(){var t=null==e.$$s?this:e.$$s;return o(t,"send",[p,r,a,s],(function e(t){return null==t&&(t=g),o(null==e.$$s?this:e.$$s,"process_following_or_yield",[l,t],$.$to_proc())}),{$$s:t})}),{$$s:c}),c.predicate_indexes.$pop(),t})),$(y,"$on_predicate_temporary",(function t(r,n,a){var s,i,l,$=t.$$p||g,u=this,_=g,p=g,m=g,d=g;return t.$$p=null,_=u.$unique_literal("temp_set"),s=u.$unique_literal("pred_node"),p=u.$unique_literal("pred_var"),m=u.$literal(w("Conversion")),d=u.$predicate_index(),i=u.$literal(1),u.predicate_nodesets["$<<"](_),l=o(o(_.$assign(u.$literal(b(w("XML"),"NodeSet")).$new()),"followed_by",[],(function e(){return o(null==e.$$s?this:e.$$s,"process",[n,r],(function(e){return null==e&&(e=g),_["$<<"](e)}))}),{$$s:u}),"followed_by",[],(function t(){var r=null==t.$$s?this:t.$$s;return o(_.$each(),"add_block",[s],(function t(){var r;return r=(null==t.$$s?this:t.$$s).$process(a,s),o(o(o(p.$assign(r),"followed_by",[],(function(){return o(p["$is_a?"](w("Numeric")),"if_true",[],(function(){return p.$assign(p.$to_i().$eq(d))}))})),"followed_by",[],(function(){return o(m.$to_boolean(p),"if_true",[],(function(){return e.yield1($,s)}))})),"followed_by",[],(function(){return d.$assign(c(d,i))}))}),{$$s:r})}),{$$s:u}),u.predicate_nodesets.$pop(),l})),$(y,"$on_predicate_direct",(function t(r,n,a){var s,l=t.$$p||g,$=this,u=g,_=g,p=g;return t.$$p=null,u=$.$unique_literal("pred_var"),_=$.$predicate_index(),s=$.$literal(1),p=$.$literal(w("Conversion")),o($,"process",[n,r],(function t(r){var n=null==t.$$s?this:t.$$s,$=g;return null==r&&(r=g),$=i(n["$return_nodeset?"](a))?o(n,"catch_message",["predicate_matched"],(function e(){var t=null==e.$$s?this:e.$$s;return o(t,"process",[a,r],(function e(){var t=null==e.$$s?this:e.$$s;return t.$throw_message("predicate_matched",t.$true())}),{$$s:t})}),{$$s:n}):n.$process(a,r),o(o(o(u.$assign($),"followed_by",[],(function(){return o(u["$is_a?"](w("Numeric")),"if_true",[],(function(){return u.$assign(u.$to_i().$eq(_))}))})),"followed_by",[],(function(){return o(p.$to_boolean(u),"if_true",[],(function(){return e.yield1(l,r)}))})),"followed_by",[],(function(){return _.$assign(c(_,s))}))}),{$$s:$})})),$(y,"$on_predicate_index",(function t(r,n,a){var s,i,l=t.$$p||g,$=this,u=g;return t.$$p=null,u=$.$predicate_index(),s=$.$literal(1),i=$.$process(a,r).$to_i(),o($,"process",[n,r],(function(t){return null==t&&(t=g),o(o(u.$eq(i),"if_true",[],(function(){return e.yield1(l,t)})),"followed_by",[],(function(){return u.$assign(c(u,s))}))}))})),$(y,"$on_test",(function(e,t){var r,n=g;return n=this.$element_or_attribute(t),r=this.$match_name_and_namespace(e,t),i(r)?n.$and(r):n})),$(y,"$on_eq",(function e(t,r){var n=e.$$p||g,a=this,s=g;return e.$$p=null,s=a.$literal(w("Conversion")),o(a,"operator",[t,r],(function e(t,r){return null==t&&(t=g),null==r&&(r=g),o((null==e.$$s?this:e.$$s).$mass_assign([t,r],s.$to_compatible_types(t,r)),"followed_by",[],(function(){var e;return e=t.$eq(r),i(n)?o(e,"if_true",[],n.$to_proc()):e}))}),{$$s:a})})),$(y,"$on_neq",(function e(t,r){var n=e.$$p||g,a=this,s=g;return e.$$p=null,s=a.$literal(w("Conversion")),o(a,"operator",[t,r],(function e(t,r){return null==t&&(t=g),null==r&&(r=g),o((null==e.$$s?this:e.$$s).$mass_assign([t,r],s.$to_compatible_types(t,r)),"followed_by",[],(function(){var e;return e=t["$!="](r),i(n)?o(e,"if_true",[],n.$to_proc()):e}))}),{$$s:a})})),o(w("OPERATORS"),"each",[],(function e(t,r){var n,a,s,l=null==e.$$s?this:e.$$s;return null==t&&(t=g),null==r&&(r=g),n=_(r),a=null==n[0]?g:n[0],s=null==n[1]?g:n[1],o(l,"define_method",[t],(function e(t,r){var n=e.$$p||g,l=null==e.$$s?this:e.$$s,$=g;return e.$$p=null,null==t&&(t=g),null==r&&(r=g),$=l.$literal(b(w("XPath"),"Conversion")),o(l,"operator",[t,r],(function(e,t){var r,l,u=g;return null==e&&(e=g),null==t&&(t=g),u=$.$__send__(a,e),r=$.$__send__(a,t),l=u.$__send__(s,r),i(n)?o($.$to_boolean(l),"if_true",[],n.$to_proc()):l}))}),{$$s:l})}),{$$s:y,$$has_top_level_mlhs_arg:!0}),$(y,"$on_pipe",(function e(t,r){var n,a,s=this,i=g,l=g;return e.$$p=null,i=null==(n=[].concat(u(t)))[0]?g:n[0],a=null==n[1]?g:n[1],l=s.$unique_literal("union"),p(i.$type(),"pipe")?l.$assign(s.$process(i,r)).$followed_by(o(s,"process",[a,r],(function(e){return null==e&&(e=g),l["$<<"](e)}))).$followed_by(l):l.$assign(s.$literal(b(w("XML"),"NodeSet")).$new()).$followed_by(o(s,"process",[i,r],(function(e){return null==e&&(e=g),l["$<<"](e)}))).$followed_by(o(s,"process",[a,r],(function(e){return null==e&&(e=g),l["$<<"](e)}))).$followed_by(l)})),$(y,"$on_string",(function(e,t){return m(arguments,1),this.$string(e.$children()["$[]"](0))}),-2),$(y,"$on_int",(function(e,t){return m(arguments,1),this.$literal(e.$children()["$[]"](0).$to_f().$to_s())}),-2),$(y,"$on_float",(function(e,t){return m(arguments,1),this.$literal(e.$children()["$[]"](0).$to_s())}),-2),$(y,"$on_var",(function(e,t){var r,n=this;return m(arguments,1),r=e.$children()["$[]"](0),n.$variables_literal().$and(n.$variables_literal()["$[]"](n.$string(r))).$or(n.$send_message("raise",n.$string("Undefined XPath variable: "+r)))}),-2),$(y,"$on_call",(function e(t,r){var n,a,s,i=e.$$p||g,l=g;return e.$$p=null,l=null==(n=[].concat(u(t)))[0]?g:n[0],a=m(n,1),s=l.$gsub("-","_"),o(this,"send",["on_call_"+s,r].concat(u(a)),i.$to_proc())})),$(y,"$on_call_true",(function t(r){var n=t.$$p||g;return t.$$p=null,m(arguments),n!==g?e.yieldX(n,[]):this.$true()}),-1),$(y,"$on_call_false",(function(e){return m(arguments),this.$false()}),-1),$(y,"$on_call_boolean",(function t(r,n){var a,s=t.$$p||g,i=this,l=g,$=g;return t.$$p=null,a=i.$try_match_first_node(n,r),l=i.$unique_literal("call_arg"),$=i.$literal(w("Conversion")),o(l.$assign(a),"followed_by",[],(function(){var t;return t=$.$to_boolean(l),s!==g?o(t,"if_true",[],(function(){return e.yieldX(s,[])})):t}))})),$(y,"$on_call_ceiling",(function t(r,n){var a,s=t.$$p||g,i=this,l=g,$=g;return t.$$p=null,a=i.$try_match_first_node(n,r),l=i.$unique_literal("call_arg"),$=i.$literal(w("Conversion")),o(o(l.$assign(a),"followed_by",[],(function(){return l.$assign($.$to_float(l))})),"followed_by",[],(function(){return o(o(l["$nan?"](),"if_true",[],(function(){return l})),"else",[],(function(){return s!==g?e.yieldX(s,[]):l.$ceil().$to_f()}))}))})),$(y,"$on_call_floor",(function t(r,n){var a,s=t.$$p||g,i=this,l=g,$=g;return t.$$p=null,a=i.$try_match_first_node(n,r),l=i.$unique_literal("call_arg"),$=i.$literal(w("Conversion")),o(o(l.$assign(a),"followed_by",[],(function(){return l.$assign($.$to_float(l))})),"followed_by",[],(function(){return o(o(l["$nan?"](),"if_true",[],(function(){return l})),"else",[],(function(){return s!==g?e.yieldX(s,[]):l.$floor().$to_f()}))}))})),$(y,"$on_call_round",(function t(r,n){var a,s=t.$$p||g,i=this,l=g,$=g;return t.$$p=null,a=i.$try_match_first_node(n,r),l=i.$unique_literal("call_arg"),$=i.$literal(w("Conversion")),o(o(l.$assign(a),"followed_by",[],(function(){return l.$assign($.$to_float(l))})),"followed_by",[],(function(){return o(o(l["$nan?"](),"if_true",[],(function(){return l})),"else",[],(function(){return s!==g?e.yieldX(s,[]):l.$round().$to_f()}))}))})),$(y,"$on_call_concat",(function t(r,n){var a,s=t.$$p||g,i=g,l=g,$=g,u=g;return t.$$p=null,a=m(arguments,1),i=this.$literal(w("Conversion")),l=[],$=[],o(a,"each",[],(function e(t){var n,a=null==e.$$s?this:e.$$s,s=g;return null==t&&(t=g),s=a.$unique_literal("concat_arg"),n=a.$try_match_first_node(t,r),l["$<<"](s.$assign(n)),$["$<<"](i.$to_string(s))}),{$$s:this}),u=l.$inject("followed_by").$followed_by($.$inject("+")),s!==g?o(u["$empty?"](),"if_false",[],(function(){return e.yieldX(s,[])})):u}),-2),$(y,"$on_call_contains",(function t(r,n,a){var s=t.$$p||g,i=this,l=g,$=g,u=g;return t.$$p=null,l=i.$unique_literal("haystack"),$=i.$unique_literal("needle"),u=i.$literal(w("Conversion")),o(o(l.$assign(i.$try_match_first_node(n,r)),"followed_by",[],(function e(){var t=null==e.$$s?this:e.$$s;return $.$assign(t.$try_match_first_node(a,r))}),{$$s:i}),"followed_by",[],(function(){var t;return t=u.$to_string(l)["$include?"](u.$to_string($)),s!==g?o(t,"if_true",[],(function(){return e.yieldX(s,[])})):t}))})),$(y,"$on_call_count",(function t(r,n){var a=t.$$p||g,s=this,l=g;return t.$$p=null,l=s.$unique_literal("count"),i(s["$return_nodeset?"](n))||s.$raise(w("TypeError"),"count() can only operate on NodeSet instances"),o(o(l.$assign(s.$literal(0)),"followed_by",[],(function e(){var t=null==e.$$s?this:e.$$s;return o(t,"process",[n,r],(function e(){var t=null==e.$$s?this:e.$$s;return l.$assign(c(l,t.$literal(1)))}),{$$s:t})}),{$$s:s}),"followed_by",[],(function(){return a!==g?o(l["$zero?"](),"if_false",[],(function(){return e.yieldX(a,[])})):l}))})),$(y,"$on_call_id",(function t(r,n){var a=t.$$p||g,s=this,l=g,$=g,u=g,c=g,_=g,p=g;return t.$$p=null,l=s.$original_input_literal(),$=s.$unique_literal("node"),u=s.$unique_literal("ids"),c=s.$unique_literal("id_matched"),_=s.$unique_literal("id_string"),p=s.$unique_literal("attr"),o(o(o(c.$assign(s.$literal(b(w("XML"),"NodeSet")).$new()),"followed_by",[],(function e(){var t=null==e.$$s?this:e.$$s,a=g;return i(t["$return_nodeset?"](n))?o(u.$assign(t.$literal("[]")),"followed_by",[],(function e(){return o(null==e.$$s?this:e.$$s,"process",[n,r],(function(e){return null==e&&(e=g),u["$<<"](e.$text())}))}),{$$s:t}):(a=t.$literal(w("Conversion")).$to_string(u).$split(t.$string(" ")),u.$assign(t.$process(n,r)).$followed_by(u.$assign(a)))}),{$$s:s}),"followed_by",[],(function e(){var t=null==e.$$s?this:e.$$s;return _.$assign(t.$string("id"))}),{$$s:s}),"followed_by",[],(function(){return o(l.$each_node(),"add_block",[$],(function(){return o($["$is_a?"](b(w("XML"),"Element")),"if_true",[],(function(){return o(p.$assign($.$attribute(_)),"followed_by",[],(function(){return o(p.$and(u["$include?"](p.$value())),"if_true",[],(function(){return a!==g?e.yieldX(a,[]):c["$<<"]($)}))}))}))}))})).$followed_by(c)})),$(y,"$on_call_lang",(function t(r,n){var a=t.$$p||g,s=this,i=g,l=g,$=g,u=g,c=g,_=g,p=g;return t.$$p=null,i=s.$unique_literal("lang"),l=s.$unique_literal("node"),$=s.$unique_literal("found"),u=s.$unique_literal("xml_lang"),c=s.$unique_literal("matched"),_=s.$literal(w("Conversion")),p=o(o(o(o(o(i.$assign(s.$try_match_first_node(n,r)),"followed_by",[],(function(){return i.$assign(_.$to_string(i))})),"followed_by",[],(function e(){var t=null==e.$$s?this:e.$$s;return c.$assign(t.$false())}),{$$s:s}),"followed_by",[],(function(){return l.$assign(r)})),"followed_by",[],(function e(){var t=null==e.$$s?this:e.$$s;return u.$assign(t.$string("xml:lang"))}),{$$s:s}),"followed_by",[],(function t(){var r=null==t.$$s?this:t.$$s;return o(l["$respond_to?"](r.$symbol("attribute")),"while_true",[],(function t(){var r=null==t.$$s?this:t.$$s;return o($.$assign(l.$get(u)),"followed_by",[],(function t(){return o($,"if_true",[],(function t(){var r=null==t.$$s?this:t.$$s;return o(o($.$eq(i),"if_true",[],(function t(){var r=null==t.$$s?this:t.$$s;return a!==g?e.yieldX(a,[]):c.$assign(r.$true()).$followed_by(r.$break())}),{$$s:r}),"else",[],(function e(){return(null==e.$$s?this:e.$$s).$break()}),{$$s:r})}),{$$s:null==t.$$s?this:t.$$s})}),{$$s:r}).$followed_by(l.$assign(l.$parent()))}),{$$s:r})}),{$$s:s}),a!==g?p:p.$followed_by(c)})),$(y,"$on_call_local_name",(function t(r,n){var a=t.$$p||g;return t.$$p=null,null==n&&(n=g),o(this,"argument_or_first_node",[r,n],(function t(r){var n=null==t.$$s?this:t.$$s;return null==r&&(r=g),o(o(r,"if_true",[],(function t(){return o((null==t.$$s?this:t.$$s).$ensure_element_or_attribute(r),"followed_by",[],(function(){return a!==g?e.yieldX(a,[]):r.$name()}))}),{$$s:n}),"else",[],(function e(){return(null==e.$$s?this:e.$$s).$string("")}),{$$s:n})}),{$$s:this})}),-2),$(y,"$on_call_name",(function t(r,n){var a=t.$$p||g;return t.$$p=null,null==n&&(n=g),o(this,"argument_or_first_node",[r,n],(function t(r){var n=null==t.$$s?this:t.$$s;return null==r&&(r=g),o(o(r,"if_true",[],(function t(){return o((null==t.$$s?this:t.$$s).$ensure_element_or_attribute(r),"followed_by",[],(function(){return a!==g?e.yieldX(a,[]):r.$expanded_name()}))}),{$$s:n}),"else",[],(function e(){return(null==e.$$s?this:e.$$s).$string("")}),{$$s:n})}),{$$s:this})}),-2),$(y,"$on_call_namespace_uri",(function t(r,n){var a,s=t.$$p||g,i=this;return t.$$p=null,null==n&&(n=g),a=i.$string(""),o(i,"argument_or_first_node",[r,n],(function t(r){return null==r&&(r=g),o(o(r,"if_true",[],(function t(){return o((null==t.$$s?this:t.$$s).$ensure_element_or_attribute(r),"followed_by",[],(function(){return o(o(r.$namespace(),"if_true",[],(function(){return s!==g?e.yieldX(s,[]):r.$namespace().$uri()})),"else",[],(function(){return a}))}))}),{$$s:null==t.$$s?this:t.$$s}),"else",[],(function(){return a}))}),{$$s:i})}),-2),$(y,"$on_call_normalize_space",(function t(r,n){var a,s,i=t.$$p||g,l=this,$=g,u=g;return t.$$p=null,null==n&&(n=g),$=l.$literal(w("Conversion")),u=l.$unique_literal("normalized"),a=l.$literal("/\\s+/"),s=l.$string(" "),o(l,"argument_or_first_node",[r,n],(function t(r){var n=null==t.$$s?this:t.$$s;return null==r&&(r=g),o(u.$assign($.$to_string(r).$strip().$gsub(a,s)),"followed_by",[],(function t(){var r=null==t.$$s?this:t.$$s;return o(o(u["$empty?"](),"if_true",[],(function e(){return(null==e.$$s?this:e.$$s).$string("")}),{$$s:r}),"else",[],(function(){return i!==g?e.yieldX(i,[]):u}))}),{$$s:n})}),{$$s:l})}),-2),$(y,"$on_call_not",(function t(r,n){var a,s=t.$$p||g,i=this,l=g,$=g;return t.$$p=null,a=i.$try_match_first_node(n,r),l=i.$unique_literal("call_arg"),$=i.$literal(w("Conversion")),o(l.$assign(a),"followed_by",[],(function(){var t;return t=$.$to_boolean(l).$not(),s!==g?o(t,"if_true",[],(function(){return e.yieldX(s,[])})):t}))})),$(y,"$on_call_number",(function t(r,n){var a=t.$$p||g,s=this,i=g,l=g;return t.$$p=null,null==n&&(n=g),i=s.$unique_literal("convert"),l=s.$literal(w("Conversion")),o(s,"argument_or_first_node",[r,n],(function(t){return null==t&&(t=g),o(i.$assign(l.$to_float(t)),"followed_by",[],(function(){return a!==g?o(i["$zero?"](),"if_false",[],(function(){return e.yieldX(a,[])})):i}))}))}),-2),$(y,"$on_call_starts_with",(function t(r,n,a){var s=t.$$p||g,i=this,l=g,$=g,u=g;return t.$$p=null,l=i.$unique_literal("haystack"),$=i.$unique_literal("needle"),u=i.$literal(w("Conversion")),o(o(l.$assign(i.$try_match_first_node(n,r)),"followed_by",[],(function e(){var t=null==e.$$s?this:e.$$s;return $.$assign(t.$try_match_first_node(a,r))}),{$$s:i}),"followed_by",[],(function(){return o(o(l.$assign(u.$to_string(l)),"followed_by",[],(function(){return $.$assign(u.$to_string($))})),"followed_by",[],(function(){var t;return t=$["$empty?"]().$or(l["$start_with?"]($)),s!==g?o(t,"if_true",[],(function(){return e.yieldX(s,[])})):t}))}))})),$(y,"$on_call_string_length",(function t(r,n){var a=t.$$p||g,s=this,i=g,l=g;return t.$$p=null,null==n&&(n=g),i=s.$unique_literal("convert"),l=s.$literal(w("Conversion")),o(s,"argument_or_first_node",[r,n],(function(t){return null==t&&(t=g),o(i.$assign(l.$to_string(t).$length()),"followed_by",[],(function(){return a!==g?o(i["$zero?"](),"if_false",[],(function(){return e.yieldX(a,[])})):i.$to_f()}))}))}),-2),$(y,"$on_call_string",(function t(r,n){var a=t.$$p||g,s=this,i=g,l=g;return t.$$p=null,null==n&&(n=g),i=s.$unique_literal("convert"),l=s.$literal(w("Conversion")),o(s,"argument_or_first_node",[r,n],(function(t){return null==t&&(t=g),o(i.$assign(l.$to_string(t)),"followed_by",[],(function(){return a!==g?o(i["$empty?"](),"if_false",[],(function(){return e.yieldX(a,[])})):i}))}))}),-2),$(y,"$on_call_substring_before",(function t(r,n,a){var s,i,l=t.$$p||g,$=this,u=g,c=g,_=g,p=g;return t.$$p=null,u=$.$unique_literal("haystack"),c=$.$unique_literal("needle"),_=$.$literal(w("Conversion")),s=$.$unique_literal("before"),p=$.$unique_literal("sep"),i=$.$unique_literal("after"),o(o(u.$assign($.$try_match_first_node(n,r)),"followed_by",[],(function e(){var t=null==e.$$s?this:e.$$s;return c.$assign(t.$try_match_first_node(a,r))}),{$$s:$}),"followed_by",[],(function t(){var r,n=null==t.$$s?this:t.$$s;return r=_.$to_string(u).$partition(_.$to_string(c)),o(n.$mass_assign([s,p,i],r),"followed_by",[],(function(){return o(o(p["$empty?"](),"if_true",[],(function(){return p})),"else",[],(function(){return l!==g?e.yieldX(l,[]):s}))}))}),{$$s:$})})),$(y,"$on_call_substring_after",(function t(r,n,a){var s,i,l=t.$$p||g,$=this,u=g,c=g,_=g,p=g;return t.$$p=null,u=$.$unique_literal("haystack"),c=$.$unique_literal("needle"),_=$.$literal(w("Conversion")),s=$.$unique_literal("before"),p=$.$unique_literal("sep"),i=$.$unique_literal("after"),o(o(u.$assign($.$try_match_first_node(n,r)),"followed_by",[],(function e(){var t=null==e.$$s?this:e.$$s;return c.$assign(t.$try_match_first_node(a,r))}),{$$s:$}),"followed_by",[],(function t(){var r,n=null==t.$$s?this:t.$$s;return r=_.$to_string(u).$partition(_.$to_string(c)),o(n.$mass_assign([s,p,i],r),"followed_by",[],(function(){return o(o(p["$empty?"](),"if_true",[],(function(){return p})),"else",[],(function(){return l!==g?e.yieldX(l,[]):i}))}))}),{$$s:$})})),$(y,"$on_call_substring",(function t(r,n,a,s){var l=t.$$p||g,$=this,u=g,_=g,p=g,m=g,f=g;return t.$$p=null,null==s&&(s=g),u=$.$unique_literal("haystack"),_=$.$unique_literal("start"),p=$.$unique_literal("stop"),m=$.$unique_literal("length"),f=$.$literal(w("Conversion")),o(o(o(u.$assign($.$try_match_first_node(n,r)),"followed_by",[],(function e(){var t=null==e.$$s?this:e.$$s;return o(_.$assign(t.$try_match_first_node(a,r)),"followed_by",[],(function e(){var t=null==e.$$s?this:e.$$s;return _.$assign(d(_,t.$literal(1)))}),{$$s:t})}),{$$s:$}),"followed_by",[],(function e(){var t=null==e.$$s?this:e.$$s;return i(s)?o(m.$assign(t.$try_match_first_node(s,r)),"followed_by",[],(function e(){var t,r=null==e.$$s?this:e.$$s;return t=d(f.$to_float(m).$to_i(),r.$literal(1)),p.$assign(c(_,t))}),{$$s:t}):p.$assign(t.$literal(-1))}),{$$s:$}),"followed_by",[],(function t(){var r=null==t.$$s?this:t.$$s,n=g;return n=f.$to_string(u)["$[]"](r.$range(_,p)),l!==g?o(n["$empty?"](),"if_false",[],(function(){return e.yieldX(l,[])})):n}),{$$s:$})}),-4),$(y,"$on_call_sum",(function t(r,n){var a=t.$$p||g,s=this,l=g,$=g;return t.$$p=null,i(s["$return_nodeset?"](n))||s.$raise(w("TypeError"),"sum() can only operate on a path, axis or predicate"),l=s.$unique_literal("sum"),$=s.$literal(w("Conversion")),o(o(l.$assign(s.$literal(0)),"followed_by",[],(function e(){return o(null==e.$$s?this:e.$$s,"process",[n,r],(function(e){return null==e&&(e=g),l.$assign(c(l,$.$to_float(e.$text())))}))}),{$$s:s}),"followed_by",[],(function(){return a!==g?o(l["$zero?"](),"if_false",[],(function(){return e.yieldX(a,[])})):l}))})),$(y,"$on_call_translate",(function(e,t,r,n){var a,s,i=this,l=g,$=g,u=g,c=g,_=g;return l=i.$unique_literal("source"),$=i.$unique_literal("find"),u=i.$unique_literal("replace"),c=i.$unique_literal("replaced"),_=i.$literal(w("Conversion")),a=i.$unique_literal("char"),s=i.$unique_literal("index"),o(o(o(o(o(o(o(l.$assign(i.$try_match_first_node(t,e)),"followed_by",[],(function(){return c.$assign(_.$to_string(l))})),"followed_by",[],(function t(){var n=null==t.$$s?this:t.$$s;return $.$assign(n.$try_match_first_node(r,e))}),{$$s:i}),"followed_by",[],(function(){return $.$assign(_.$to_string($).$chars().$to_array())})),"followed_by",[],(function t(){var r=null==t.$$s?this:t.$$s;return u.$assign(r.$try_match_first_node(n,e))}),{$$s:i}),"followed_by",[],(function(){return u.$assign(_.$to_string(u).$chars().$to_array())})),"followed_by",[],(function e(){var t=null==e.$$s?this:e.$$s;return o($.$each_with_index(),"add_block",[a,s],(function e(){var t,r=null==e.$$s?this:e.$$s;return t=o(o(u["$[]"](s),"if_true",[],(function(){return u["$[]"](s)})),"else",[],(function e(){return(null==e.$$s?this:e.$$s).$string("")}),{$$s:r}),c.$assign(c.$gsub(a,t))}),{$$s:t})}),{$$s:i}),"followed_by",[],(function(){return c}))})),$(y,"$on_call_last",(function(e){var t=g;return m(arguments),t=this.$predicate_nodeset(),i(t)||this.$raise("last() can only be used in a predicate"),t.$length().$to_f()}),-1),$(y,"$on_call_position",(function(e){var t=g;return m(arguments),t=this.$predicate_index(),i(t)||this.$raise("position() can only be used in a predicate"),t.$to_f()}),-1),$(y,"$on_type_test",(function e(t,r){var n,a,s,i=e.$$p||g,l=g;return e.$$p=null,l=null==(n=[].concat(u(t)))[0]?g:n[0],a=null==n[1]?g:n[1],s=l.$gsub("-","_"),o(this,"send",["on_type_test_"+s,r],(function e(t){return null==t&&(t=g),o(null==e.$$s?this:e.$$s,"process_following_or_yield",[a,t],i.$to_proc())}),{$$s:this})})),$(y,"$on_type_test_comment",(function(e){return e["$is_a?"](b(w("XML"),"Comment"))})),$(y,"$on_type_test_text",(function(e){return e["$is_a?"](b(w("XML"),"Text"))})),$(y,"$on_type_test_processing_instruction",(function(e){return e["$is_a?"](b(w("XML"),"ProcessingInstruction"))})),$(y,"$on_type_test_node",(function(e){return this.$document_or_node(e).$or(e["$is_a?"](b(w("XML"),"Attribute")))})),$(y,"$literal",(function(e){return b(w("Ruby"),"Node").$new("lit",[e.$to_s()])})),$(y,"$range",(function(e,t){return b(w("Ruby"),"Node").$new("range",[e,t])})),$(y,"$unique_literal",(function(e){var t,r=this;return t=r.literal_id=c(r.literal_id,1),r.$literal(""+e+t)})),$(y,"$string",(function(e){return b(w("Ruby"),"Node").$new("string",[e.$to_s()])})),$(y,"$symbol",(function(e){return b(w("Ruby"),"Node").$new("symbol",[e.$to_sym()])})),$(y,"$send_message",(function(e,t){var r;return r=m(arguments,1),b(w("Ruby"),"Node").$new("send",[g,e.$to_s()].concat(u(r)))}),-2),$(y,"$raise_message",(function(e,t){var r=this;return r.$send_message("raise",r.$literal(e),r.$string(t))})),$(y,"$nil",(function(){var e,t=this;return t.nil=i(e=t.nil)?e:t.$literal("nil")})),$(y,"$true",(function(){var e,t=this;return t.true=i(e=t.true)?e:t.$literal("true")})),$(y,"$false",(function(){var e,t=this;return t.false=i(e=t.false)?e:t.$literal("false")})),$(y,"$element_or_attribute",(function(e){return e["$is_a?"](b(w("XML"),"Element")).$or(e["$is_a?"](b(w("XML"),"Attribute")))})),$(y,"$attribute_or_node",(function(e){return e["$is_a?"](b(w("XML"),"Attribute")).$or(e["$is_a?"](b(w("XML"),"Node")))})),$(y,"$document_or_node",(function(e){return e["$is_a?"](b(w("XML"),"Document")).$or(e["$is_a?"](b(w("XML"),"Node")))})),$(y,"$match_name_and_namespace",(function(e,t){var r,n,a,s,o,l=this,$=g,c=g,_=g;return n=null==(r=[].concat(u(e)))[0]?g:r[0],a=null==r[1]?g:r[1],$=g,s=l.$string(a),o=l.$literal(0),f(a,w("STAR"))&&($=t.$name().$eq(s).$or(t.$name().$casecmp(s).$eq(o))),i(n)&&f(n,w("STAR"))&&(i(l.namespaces)?(c=l.namespaces["$[]"](n),_=i(c)?t.$namespace().$and(t.$namespace().$uri().$eq(l.$string(c))):l.$false()):_=p(n,b(b(w("XML"),"Element"),"XMLNS_PREFIX"))?t:t.$namespace_name().$eq(l.$string(n)),$=i($)?$.$and(_):_),$})),$(y,"$match_first_node",(function(e,t){return o(this,"catch_message",["value"],(function r(){var n=null==r.$$s?this:r.$$s;return o(n,"process",[e,t],(function e(t){return null==t&&(t=g),(null==e.$$s?this:e.$$s).$throw_message("value",t)}),{$$s:n})}),{$$s:this})})),$(y,"$try_match_first_node",(function(e,t,r){var n=this;return null==r&&(r=!0),i(n["$return_nodeset?"](e))&&i(r)?n.$match_first_node(e,t):n.$process(e,t)}),-3),$(y,"$ensure_element_or_attribute",(function(e){return o(this.$element_or_attribute(e),"if_false",[],(function e(){return(null==e.$$s?this:e.$$s).$raise_message(w("TypeError"),"argument is not an Element or Attribute")}),{$$s:this})})),$(y,"$argument_or_first_node",(function t(r,n){var a,s=t.$$p||g,l=g;return t.$$p=null,null==n&&(n=g),a=i(n)?this.$try_match_first_node(n,r):r,l=this.$unique_literal("argument_or_first_node"),o(l.$assign(a),"followed_by",[],(function(){return e.yield1(s,l)}))}),-2),$(y,"$operator",(function t(r,n,a){var s,i,l,$,c,_=t.$$p||g,p=this,m=g,d=g;return t.$$p=null,null==a&&(a=!0),i=null==(s=[].concat(u(r)))[0]?g:s[0],l=null==s[1]?g:s[1],m=p.$unique_literal("op_left"),d=p.$unique_literal("op_right"),$=p.$try_match_first_node(i,n,a),c=p.$try_match_first_node(l,n,a),o(m.$assign($).$followed_by(d.$assign(c)),"followed_by",[],(function(){return e.yieldX(_,[m,d])}))}),-3),$(y,"$matched_literal",(function(){return this.$literal("matched")})),$(y,"$original_input_literal",(function(){return this.$literal("original_input")})),$(y,"$variables_literal",(function(){return this.$literal("variables")})),$(y,"$to_int",(function(e){return this.$literal(e.$children()["$[]"](0).$to_i().$to_s())})),$(y,"$mass_assign",(function(e,t){return b(w("Ruby"),"Node").$new("massign",[e,t])})),$(y,"$number?",(function(e){var t;return i(t=e.$type()["$=="]("int"))?t:e.$type()["$=="]("float")})),$(y,"$string?",(function(e){return e.$type()["$=="]("string")})),$(y,"$catch_message",(function t(r){var n=t.$$p||g,a=this;return t.$$p=null,o(a.$send_message("catch",a.$symbol(r)),"add_block",[],(function t(){var r=null==t.$$s?this:t.$$s;return e.yieldX(n,[]).$followed_by(r.$nil())}),{$$s:a})})),$(y,"$throw_message",(function(e,t){var r;return r=m(arguments,1),o(this,"send_message",["throw",this.$symbol(e)].concat(u(r)))}),-2),$(y,"$break",(function(){return this.$send_message("break")})),$(y,"$return_nodeset?",(function(e){return w("RETURN_NODESET")["$include?"](e.$type())})),$(y,"$has_call_node?",(function(e,t){var r=g,n=g;for(r=[e];!i(r["$empty?"]());){if(n=r.$pop(),p(n.$type(),"call")&&p(n.$children()["$[]"](0),t))return!0;o(n.$children(),"each",[],(function(e){return null==e&&(e=g),i(e["$is_a?"](b(w("AST"),"Node")))?r["$<<"](e):g}))}return!1})),$(y,"$predicate_index",(function(){return this.predicate_indexes.$last()})),$(y,"$predicate_nodeset",(function(){return this.predicate_nodesets.$last()})),$(y,"$process_following_or_yield",(function t(r,n){var a=t.$$p||g;return t.$$p=null,i(r)?o(this,"process",[r,n],a.$to_proc()):e.yield1(a,n)}))}(y[0],0,y)}(y[0],y)}(h[0],h)},Opal.modules["oga/xpath/conversion"]=function(e){var t=e.module,r=e.truthy,n=e.not,a=e.defs,s=e.eqeq,i=[],o=e.nil,l=e.$$$;return e.add_stubs("respond_to?,is_a?,to_string,!,to_float,boolean?,to_boolean,zero?,modulo,to_i,first_node_text,text,to_s,==,Float,nan?,empty?,[]"),function(i,$){var u=[t(i,"Oga")].concat($);return function(i,$){var u=[t(i,"XPath")].concat($);return function(i,$){var u=t(i,"Conversion"),c=[u].concat($),_=e.$r(c);return a(u,"$to_compatible_types",(function(e,t){var a=this;return(r(e["$is_a?"](l(_("XML"),"NodeSet")))||r(e["$respond_to?"]("text")))&&(e=a.$to_string(e)),(r(t["$is_a?"](l(_("XML"),"NodeSet")))||r(t["$respond_to?"]("text")))&&(t=a.$to_string(t)),r(e["$is_a?"](_("Numeric")))&&n(t["$is_a?"](_("Numeric")))&&(t=a.$to_float(t)),r(e["$is_a?"](_("String")))&&n(t["$is_a?"](_("String")))&&(t=a.$to_string(t)),r(a["$boolean?"](e))&&n(a["$boolean?"](t))&&(t=a.$to_boolean(t)),[e,t]})),a(u,"$to_string",(function(e){return r(e["$is_a?"](_("Float")))&&r(e.$modulo(1)["$zero?"]())&&(e=e.$to_i()),r(e["$is_a?"](l(_("XML"),"NodeSet")))&&(e=this.$first_node_text(e)),r(e["$respond_to?"]("text"))&&(e=e.$text()),e.$to_s()})),a(u,"$to_float",(function(t){if(r(t["$is_a?"](l(_("XML"),"NodeSet")))&&(t=this.$first_node_text(t)),r(t["$respond_to?"]("text"))&&(t=t.$text()),s(t,!0))return 1;if(s(t,!1))return 0;try{return this.$Float(t)}catch(t){if(!e.rescue(t,[_("StandardError")]))throw t;try{return l(_("Float"),"NAN")}finally{e.pop_exception(t)}}})),a(u,"$to_boolean",(function(e){var t=o,n=o;return t=!1,r(e["$is_a?"](_("Float")))?t=r(n=e["$nan?"]()["$!"]())?e["$zero?"]()["$!"]():n:r(e["$is_a?"](_("Integer")))?t=e["$zero?"]()["$!"]():r(e["$respond_to?"]("empty?"))?t=e["$empty?"]()["$!"]():r(e)&&(t=!0),t})),a(u,"$boolean?",(function(e){var t;return r(t=e["$=="](!0))?t:e["$=="](!1)})),a(u,"$first_node_text",(function(e){return r(e["$[]"](0)["$respond_to?"]("text"))?e["$[]"](0).$text():""}))}(u[0],u)}(u[0],u)}(i[0],i)},Opal.modules["oga/css/lexer"]=function(e){var t=e.module,r=e.klass,n=e.def,a=e.send,s=e.to_ary,i=e.truthy,o=e.rb_le,l=e.eqeq,$=e.rb_plus,u=e.rb_gt,c=e.rb_minus,_=e.neqeq,p=[],m=e.nil;return e.add_stubs("attr_accessor,private,_css_lexer_trans_keys=,_css_lexer_key_spans=,_css_lexer_index_offsets=,_css_lexer_indicies=,_css_lexer_trans_targs=,_css_lexer_trans_actions=,_css_lexer_to_state_actions=,_css_lexer_from_state_actions=,_css_lexer_eof_trans=,css_lexer_start=,css_lexer_first_final=,css_lexer_error=,css_lexer_en_pseudo_args=,css_lexer_en_predicate=,css_lexer_en_main=,strip,advance,<<,css_lexer_start,class,bytesize,send,<=,==,[],getbyte,+,>,-,!=,add_token,slice_input,gsub,to_i,emit,byteslice,call"),function(p,d){var f=[t(p,"Oga")].concat(d);return function(p,d){var f=[t(p,"CSS")].concat(d);return function(t,p,d){var f=r(t,null,"Lexer"),h=([f].concat(d),f.$$prototype);return h.data=h.escaped=h.block=m,function(e,t){e.$attr_accessor("_css_lexer_trans_keys"),e.$private("_css_lexer_trans_keys","_css_lexer_trans_keys=")}(e.get_singleton_class(f)),f["$_css_lexer_trans_keys="](e.large_array_unpack("0,0,46,46,46,46,43,57,118,118,101,101,110,110,100,100,100,100,46,46,34,34,61,61,39,39,61,61,61,61,61,61,0,127,0,127,0,127,9,126,9,32,9,32,9,32,9,32,0,0,0,0,0,0,0,127,0,127,0,127,9,32,0,0,48,57,43,57,0,0,0,0,0,127,0,127,0,127,9,32,61,61,0")),function(e,t){e.$attr_accessor("_css_lexer_key_spans"),e.$private("_css_lexer_key_spans","_css_lexer_key_spans=")}(e.get_singleton_class(f)),f["$_css_lexer_key_spans="](e.large_array_unpack("0,1,1,15,1,1,1,1,1,1,1,1,1,1,1,1,128,128,128,118,24,24,24,24,0,0,0,128,128,128,24,0,10,15,0,0,128,128,128,24,1")),function(e,t){e.$attr_accessor("_css_lexer_index_offsets"),e.$private("_css_lexer_index_offsets","_css_lexer_index_offsets=")}(e.get_singleton_class(f)),f["$_css_lexer_index_offsets="](e.large_array_unpack("0,0,2,4,20,22,24,26,28,30,32,34,36,38,40,42,44,173,302,431,550,575,600,625,650,651,652,653,782,911,1040,1065,1066,1077,1093,1094,1095,1224,1353,1482,1507")),function(e,t){e.$attr_accessor("_css_lexer_indicies"),e.$private("_css_lexer_indicies","_css_lexer_indicies=")}(e.get_singleton_class(f)),f["$_css_lexer_indicies="](e.large_array_unpack("1,0,3,2,5,4,5,4,4,6,6,6,6,6,6,6,6,6,6,4,7,8,9,8,10,8,11,8,12,8,14,13,16,15,17,8,16,18,19,8,20,8,21,8,23,23,23,23,23,23,23,23,23,24,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,24,23,23,25,23,23,23,23,26,23,27,28,29,23,30,23,23,23,23,23,23,23,23,23,23,23,31,23,23,23,32,23,23,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,33,23,23,23,22,23,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,23,34,23,35,23,22,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,22,36,36,22,22,22,22,22,22,22,22,22,22,36,36,36,36,36,36,36,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,36,37,36,36,22,36,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,36,36,36,36,36,22,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,39,38,38,39,39,39,39,39,39,39,39,39,39,38,38,38,38,38,38,38,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,38,40,38,38,39,38,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,38,38,38,38,38,39,24,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,24,41,41,41,41,41,41,41,41,41,41,28,29,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,32,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,35,41,28,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,28,42,29,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,29,43,32,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,32,44,35,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,35,45,46,47,48,8,8,8,8,8,8,8,8,8,50,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,50,8,8,51,8,8,8,8,8,52,53,5,8,54,55,8,6,6,6,6,6,6,6,6,6,6,56,8,8,8,8,8,8,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,8,8,8,8,49,8,49,49,49,49,57,49,49,49,49,49,49,49,49,58,59,49,49,49,49,49,49,49,49,49,49,49,8,8,8,8,8,49,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,49,60,60,49,49,49,49,49,49,49,49,49,49,60,60,60,60,60,60,60,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,60,61,60,60,49,60,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,60,60,60,60,60,49,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,63,62,62,63,63,63,63,63,63,63,63,63,63,62,62,62,62,62,62,62,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,62,64,62,62,63,62,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,62,62,62,62,62,63,50,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,50,65,66,6,6,6,6,6,6,6,6,6,6,67,5,68,5,68,68,6,6,6,6,6,6,6,6,6,6,68,69,70,8,8,8,8,8,8,8,8,8,72,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,72,8,15,8,73,8,8,18,8,8,74,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,75,8,8,8,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,8,8,76,77,71,8,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,8,78,8,79,8,71,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,71,80,80,71,71,71,71,71,71,71,71,71,71,80,80,80,80,80,80,80,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,80,81,80,80,71,80,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,80,80,80,80,80,71,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,83,82,82,83,83,83,83,83,83,83,83,83,83,82,82,82,82,82,82,82,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,82,84,82,82,83,82,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,82,82,82,82,82,83,72,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,72,85,86,80,0")),function(e,t){e.$attr_accessor("_css_lexer_trans_targs"),e.$private("_css_lexer_trans_targs","_css_lexer_trans_targs=")}(e.get_singleton_class(f)),f["$_css_lexer_trans_targs="](e.large_array_unpack("16,18,27,29,27,3,32,5,0,6,27,8,27,36,38,10,36,36,12,36,36,36,17,16,19,24,16,16,20,21,25,26,22,16,16,23,16,1,16,17,1,16,16,16,16,16,16,16,16,28,30,31,27,27,33,34,35,4,27,7,27,2,27,28,2,27,27,27,27,27,27,37,39,11,40,36,36,13,14,15,36,9,36,37,9,36,36")),function(e,t){e.$attr_accessor("_css_lexer_trans_actions"),e.$private("_css_lexer_trans_actions","_css_lexer_trans_actions=")}(e.get_singleton_class(f)),f["$_css_lexer_trans_actions="](e.large_array_unpack("1,2,3,2,4,0,0,0,0,0,5,0,6,7,2,0,8,9,0,10,11,12,2,15,0,0,16,17,0,0,0,0,0,18,19,0,20,0,21,22,23,24,25,26,27,28,29,30,31,2,0,0,33,34,35,0,0,0,36,0,37,0,38,22,23,39,40,41,42,43,44,2,0,0,0,45,46,0,0,0,47,0,48,22,23,49,50")),function(e,t){e.$attr_accessor("_css_lexer_to_state_actions"),e.$private("_css_lexer_to_state_actions","_css_lexer_to_state_actions=")}(e.get_singleton_class(f)),f["$_css_lexer_to_state_actions="](e.large_array_unpack("0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,13,0,0,0,0,0,0,0,0,0,0,32,0,0,0,0,0,0,0,0,13,0,0,0,0")),function(e,t){e.$attr_accessor("_css_lexer_from_state_actions"),e.$private("_css_lexer_from_state_actions","_css_lexer_from_state_actions=")}(e.get_singleton_class(f)),f["$_css_lexer_from_state_actions="](e.large_array_unpack("0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,0,14,0,0,0,0")),function(e,t){e.$attr_accessor("_css_lexer_eof_trans"),e.$private("_css_lexer_eof_trans","_css_lexer_eof_trans=")}(e.get_singleton_class(f)),f["$_css_lexer_eof_trans="](e.large_array_unpack("0,1,3,5,0,0,0,0,0,14,0,0,0,0,0,0,0,37,39,42,43,44,45,46,47,48,49,0,61,63,66,67,68,69,70,71,0,81,83,86,81")),function(e,t){e.$attr_accessor("css_lexer_start")}(e.get_singleton_class(f)),f["$css_lexer_start="](16),function(e,t){e.$attr_accessor("css_lexer_first_final")}(e.get_singleton_class(f)),f["$css_lexer_first_final="](16),function(e,t){e.$attr_accessor("css_lexer_error")}(e.get_singleton_class(f)),f["$css_lexer_error="](0),function(e,t){e.$attr_accessor("css_lexer_en_pseudo_args")}(e.get_singleton_class(f)),f["$css_lexer_en_pseudo_args="](27),function(e,t){e.$attr_accessor("css_lexer_en_predicate")}(e.get_singleton_class(f)),f["$css_lexer_en_predicate="](36),function(e,t){e.$attr_accessor("css_lexer_en_main")}(e.get_singleton_class(f)),f["$css_lexer_en_main="](16),n(f,"$initialize",(function(e){return this.data=e.$strip()})),n(f,"$lex",(function(){var e=m;return e=[],a(this,"advance",[],(function(t,r){return null==t&&(t=m),null==r&&(r=m),e["$<<"]([t,r])})),e})),n(f,"$advance",(function e(){var t,r=e.$$p||m,n=this,a=m,p=m,d=m,f=m,h=m,g=m,b=m,v=m,y=m,x=m,w=m,k=m,U=m,E=m,M=m,q=m,S=m,O=m,A=m,T=m,N=m,z=m,R=m,I=m,C=m,P=m,L=m,F=m,D=m,j=m;return e.$$p=null,function(){try{for(n.block=r,n.escaped=!1,a=n.data,p=m,d=m,[],0,f=n.$class().$css_lexer_start(),h=0,g=n.data.$bytesize(),b=0,v=g,y=n.$class().$send("_css_lexer_eof_trans"),x=n.$class().$send("_css_lexer_from_state_actions"),w=n.$class().$send("_css_lexer_index_offsets"),k=n.$class().$send("_css_lexer_indicies"),U=n.$class().$send("_css_lexer_key_spans"),E=n.$class().$send("_css_lexer_to_state_actions"),M=n.$class().$send("_css_lexer_trans_actions"),q=n.$class().$send("_css_lexer_trans_keys"),S=n.$class().$send("_css_lexer_trans_targs"),!1,t=s(m),O=null==t[0]?m:t[0],A=null==t[1]?m:t[1],T=null==t[2]?m:t[2],N=null==t[3]?m:t[3],null==t[4]?m:t[4],null==t[5]?m:t[5],z=0,R=10,I=15,C=20,P=30,L=40;i(!0);){if(i(o(z,0))){if(l(b,v)){z=P;continue}if(l(f,0)){z=L;continue}}if(i(o(z,R))){if(14===x["$[]"](f).valueOf())p=b;T=f["$<<"](1),N=w["$[]"](f),O=U["$[]"](f),F=i(D=a.$getbyte(b))?D:0,A=i(u(O,0))&&i(o(q["$[]"](T),F))&&i(o(F,q["$[]"]($(T,1))))?k["$[]"](c($(N,F),q["$[]"](T))):k["$[]"]($(N,O))}if(i(o(z,I))&&(f=S["$[]"](A),_(M["$[]"](A),0)))switch(M["$[]"](A).valueOf()){case 23:n.escaped=!0;break;case 2:case 15:d=$(b,1);break;case 36:d=$(b,1),n.$add_token("T_NTH");break;case 6:d=$(b,1),n.$add_token("T_ODD");break;case 5:d=$(b,1),n.$add_token("T_EVEN");break;case 33:d=$(b,1),n.$add_token("T_RPAREN"),f=16;break;case 34:case 17:d=$(b,1),j=n.$slice_input(p,d),i(n.escaped)&&(j=j.$gsub("\\.","."),n.escaped=!1),n.$add_token("T_IDENT",j);break;case 39:case 49:d=b,b=c(b,1);break;case 42:d=b,b=c(b,1),n.$add_token("T_MINUS");break;case 41:d=b,b=c(b,1),j=n.$slice_input(p,d).$to_i(),n.$add_token("T_INT",j);break;case 37:case 47:case 20:d=b,b=c(b,1),j=n.$slice_input(p,d),i(n.escaped)&&(j=j.$gsub("\\.","."),n.escaped=!1),n.$add_token("T_IDENT",j);break;case 3:case 7:case 1:b=c(d,1),j=n.$slice_input(p,d),i(n.escaped)&&(j=j.$gsub("\\.","."),n.escaped=!1),n.$add_token("T_IDENT",j);break;case 4:switch(h.valueOf()){case 0:f=0,z=C;continue;case 4:b=c(d,1),n.$add_token("T_MINUS")}break;case 45:d=$(b,1),n.$add_token("T_EQ");break;case 12:d=$(b,1),n.$add_token("T_SPACE_IN");break;case 10:d=$(b,1),n.$add_token("T_STARTS_WITH");break;case 9:d=$(b,1),n.$add_token("T_ENDS_WITH");break;case 50:d=$(b,1),n.$add_token("T_IN");break;case 11:d=$(b,1),n.$add_token("T_HYPHEN_IN");break;case 46:d=$(b,1),n.$add_token("T_RBRACK"),f=16;break;case 8:d=$(b,1),n.$emit("T_STRING",$(p,1),c(d,1));break;case 18:d=$(b,1),n.$add_token("T_LBRACK"),f=36;break;case 19:d=$(b,1),n.$add_token("T_PIPE");break;case 16:d=$(b,1),n.$add_token("T_LPAREN"),f=27;break;case 27:d=b,b=c(b,1),n.$add_token("T_GREATER");break;case 25:d=b,b=c(b,1),n.$add_token("T_PLUS");break;case 28:d=b,b=c(b,1),n.$add_token("T_TILDE");break;case 26:d=b,b=c(b,1),n.$add_token("T_COMMA");break;case 24:d=b,b=c(b,1),n.$add_token("T_SPACE");break;case 40:case 29:n.$add_token("T_HASH"),d=b,b=c(b,1);break;case 43:case 30:n.$add_token("T_DOT"),d=b,b=c(b,1);break;case 44:case 31:n.$add_token("T_COLON"),d=b,b=c(b,1);break;case 38:case 48:case 21:n.escaped=!0,d=b,b=c(b,1),j=n.$slice_input(p,d),i(n.escaped)&&(j=j.$gsub("\\.","."),n.escaped=!1),n.$add_token("T_IDENT",j);break;case 22:d=$(b,1),n.escaped=!0;break;case 35:d=$(b,1),h=4}if(i(o(z,C))){switch(E["$[]"](f).valueOf()){case 13:p=m;break;case 32:p=m,h=0}if(l(f,0)){z=L;continue}if(b=$(b,1),_(b,v)){z=R;continue}}if(i(o(z,P))&&l(b,g)&&i(u(y["$[]"](f),0)))A=c(y["$[]"](f),1),z=I;else if(i(o(z,L)))break}}finally{n.block=m}}()})),f.$private(),n(f,"$emit",(function(e,t,r){var n;return n=this.$slice_input(t,r),this.$add_token(e,n)})),n(f,"$slice_input",(function(e,t){return this.data.$byteslice(e,c(t,e))})),n(f,"$add_token",(function(e,t){return null==t&&(t=m),this.block.$call(e,t)}),-2)}(f[0],0,f)}(f[0],f)}(p[0],p)},Opal.modules["oga/css/parser"]=function(e){var t=e.module,r=e.klass,n=e.const_set,a=e.send,s=e.defs,i=e.def,o=e.assign_ivar_val,l=e.slice,$=e.truthy,u=e.send2,c=e.find_super,_=e.eqeq,p=e.rb_minus,m=e.to_a,d=e.rb_le,f=e.rb_ge,h=e.rb_plus,g=e.return_val,b=e.to_ary,v=e.rb_lt,y=e.top,x=[],w=e.nil,k=e.$$$;return e.add_stubs("require,new,terminals=,freeze,rules=,table=,actions=,get_or_set,parse,advance,s,reset,gsub,send,generate_nth_child,current_element,generate_no_siblings,on_pseudo_class_first_child,on_pseudo_class_last_child,on_pseudo_class_first_of_type,on_pseudo_class_last_of_type,==,type,[],children,private,int_node?,-,step_comparison,step_modulo_value,equal?,<=,>=,non_positive_number?,-@,on_test,add_child,updated,+,each,generate_axis,on_op_eq,on_op_space_in,on_op_starts_with,on_op_ends_with,on_op_in,on_op_hyphen_in,on_pseudo_class,to_i,<,%"),y.$require("ll/setup"),function(y,x){var U=[t(y,"Oga")].concat(x);return function(y,x){var U=[t(y,"CSS")].concat(x),E=e.$r(U);return function(t,y,x){var U=r(t,y,"Parser"),E=[U].concat(x),M=e.$r(E),q=U.$$prototype;return q.lexer=q.current_element=w,n(E[0],"CONFIG",k(M("LL"),"DriverConfig").$new()),M("CONFIG")["$terminals="](["$EOF","T_IDENT","T_PIPE","T_LBRACK","T_RBRACK","T_COLON","T_SPACE","T_LPAREN","T_RPAREN","T_MINUS","T_EQ","T_SPACE_IN","T_STARTS_WITH","T_ENDS_WITH","T_IN","T_HYPHEN_IN","T_GREATER","T_TILDE","T_PLUS","T_NTH","T_INT","T_STRING","T_ODD","T_EVEN","T_DOT","T_HASH","T_COMMA"].$freeze()),M("CONFIG")["$rules="]([[3,0,0,1],[3,1,2,0],[3,2,4,30,6,0,0,3],[3,3,0,3,1,26],[3,4,8,32,8,31,0,8],[3,5,0,5],[3,6,8,33,0,11],[3,7,0,3,1,6],[3,8,0,5],[3,9,8,34,0,6,1,16],[3,10,8,35,0,6,1,18],[3,11,8,36,0,6,1,17],[3,12,8,37,0,8],[3,13,0,11],[3,14,0,19],[3,15,0,18],[3,16,0,20],[3,17,0,9],[3,18,8,38,1,1],[3,19,1,1,1,2],[3,20,4,39,6,0,0,12],[3,21,0,7],[3,22,0,13],[3,23,1,4,0,14,1,3],[3,24,0,16],[3,25,0,9],[3,26,8,40,0,15],[3,27,1,10],[3,28,1,11],[3,29,1,12],[3,30,1,13],[3,31,1,14],[3,32,1,15],[3,33,1,1,1,24],[3,34,1,1,1,25],[3,35,8,41,0,21],[3,36,1,1,1,5],[3,37,1,8,0,23,1,7],[3,38,0,28],[3,39,0,29],[3,40,0,26],[3,41,0,3],[3,42,1,21],[3,43,1,20],[3,44,8,42,0,27],[3,45,8,43,0,27,1,9],[3,46,8,45,8,44,0,25],[3,47,1,19],[3,48,1,22],[3,49,1,23],[3,50,0,2],[3,51,0,11],[3,52,0,4],[3,53,0,4],[3,54,0,4],[3,55,0,4],[3,56,0,4],[3,57,0,11],[3,58,0,10],[3,59,0,12],[3,60,0,24,0,17],[3,61,0,22],[3,62,0,25],[3,63,0,25],[3,64,0,27],[3,65,0,25]].$freeze()),M("CONFIG")["$table="]([[1,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,0,0,1],[-1,2,-1,2,-1,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2,2,2,-1,-1,-1,-1,-1,2,2,-1],[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3],[-1,4,-1,6,-1,6,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5,5,5,-1,-1,-1,-1,-1,6,6,-1],[-1,-1,-1,-1,-1,-1,7,-1,-1,-1,-1,-1,-1,-1,-1,-1,8,8,8,-1,-1,-1,-1,-1,-1,-1,-1],[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,9,11,10,-1,-1,-1,-1,-1,-1,-1,-1],[-1,12,-1,13,-1,13,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,13,13,-1],[-1,-1,-1,-1,-1,16,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,15,14,-1],[-1,17,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],[-1,18,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],[-1,-1,19,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],[-1,-1,-1,20,-1,20,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,20,20,-1],[-1,-1,-1,22,-1,21,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,21,21,-1],[-1,-1,-1,23,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],[-1,24,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],[-1,25,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],[-1,26,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,27,28,29,30,31,32,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,33,-1,-1],[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,34,-1],[-1,-1,-1,-1,-1,35,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],[-1,-1,-1,-1,-1,36,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],[-1,-1,-1,-1,-1,-1,-1,37,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],[-1,41,-1,41,-1,41,-1,-1,-1,40,-1,-1,-1,-1,-1,-1,41,41,41,40,40,-1,38,39,41,41,-1],[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,42,-1,-1,-1,-1,-1],[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,43,-1,-1,-1,-1,-1,-1],[-1,-1,-1,-1,-1,-1,-1,-1,-1,45,-1,-1,-1,-1,-1,-1,-1,-1,-1,44,46,-1,-1,-1,-1,-1,-1],[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,47,-1,-1,-1,-1,-1,-1,-1],[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,-1,-1,-1,-1],[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,49,-1,-1,-1],[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,50],[-1,-1,-1,51,-1,51,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,51,51,-1],[-1,-1,-1,-1,-1,-1,52,-1,-1,-1,-1,-1,-1,-1,-1,-1,52,52,52,-1,-1,-1,-1,-1,-1,-1,-1],[-1,-1,-1,-1,-1,-1,53,-1,-1,-1,-1,-1,-1,-1,-1,-1,53,53,53,-1,-1,-1,-1,-1,-1,-1,-1],[-1,-1,-1,-1,-1,-1,54,-1,-1,-1,-1,-1,-1,-1,-1,-1,54,54,54,-1,-1,-1,-1,-1,-1,-1,-1],[-1,-1,-1,-1,-1,-1,55,-1,-1,-1,-1,-1,-1,-1,-1,-1,55,55,55,-1,-1,-1,-1,-1,-1,-1,-1],[-1,-1,-1,-1,-1,-1,56,-1,-1,-1,-1,-1,-1,-1,-1,-1,56,56,56,-1,-1,-1,-1,-1,-1,-1,-1],[-1,-1,-1,57,-1,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,57,57,-1],[-1,-1,58,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],[-1,-1,-1,59,-1,59,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,59,59,-1],[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,60,60,60,60,60,60,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],[-1,-1,-1,-1,-1,-1,-1,61,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,62,-1,-1,-1,-1,-1,-1],[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,63,-1,-1,-1,-1,-1,-1],[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,64,-1,-1,-1,-1,-1,-1,-1],[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,65,-1,-1,-1,-1,-1,-1]].$freeze()),M("CONFIG")["$actions="]([["_rule_0",1],["_rule_1",0],["_rule_2",2],["_rule_3",2],["_rule_4",3],["_rule_5",1],["_rule_6",2],["_rule_7",2],["_rule_8",1],["_rule_9",3],["_rule_10",3],["_rule_11",3],["_rule_12",2],["_rule_13",1],["_rule_14",1],["_rule_15",1],["_rule_16",1],["_rule_17",1],["_rule_18",2],["_rule_19",2],["_rule_20",2],["_rule_21",1],["_rule_22",1],["_rule_23",3],["_rule_24",1],["_rule_25",1],["_rule_26",2],["_rule_27",1],["_rule_28",1],["_rule_29",1],["_rule_30",1],["_rule_31",1],["_rule_32",1],["_rule_33",2],["_rule_34",2],["_rule_35",2],["_rule_36",2],["_rule_37",3],["_rule_38",1],["_rule_39",1],["_rule_40",1],["_rule_41",1],["_rule_42",1],["_rule_43",1],["_rule_44",2],["_rule_45",3],["_rule_46",3],["_rule_47",1],["_rule_48",1],["_rule_49",1],["_rule_50",1],["_rule_51",1],["_rule_52",1],["_rule_53",1],["_rule_54",1],["_rule_55",1],["_rule_56",1],["_rule_57",1],["_rule_58",1],["_rule_59",1],["_rule_60",2],["_rule_61",1],["_rule_62",1],["_rule_63",1],["_rule_64",1],["_rule_65",1]].$freeze()),n(E[0],"CACHE",M("LRU").$new()),s(U,"$parse_with_cache",(function(e){return a(M("CACHE"),"get_or_set",[e],(function t(){return(null==t.$$s?this:t.$$s).$new(e).$parse()}),{$$s:this})})),i(U,"$initialize",(function(e){return this.lexer=M("Lexer").$new(e)})),i(U,"$reset",o("current_element",w)),i(U,"$s",(function(e,t){var r;return r=l(arguments,1),k(M("AST"),"Node").$new(e,r)}),-2),i(U,"$each_token",(function t(){var r=t.$$p||w;return t.$$p=null,a(this.lexer,"advance",[],(function(t){var n;return n=l(arguments),e.yield1(r,n)}),-1),e.yield1(r,[-1,-1])})),i(U,"$current_element",(function(){var e,t=this;return t.current_element=$(e=t.current_element)?e:t.$s("test",w,"*")})),i(U,"$parse",(function e(){var t=e.$$p||w,r=this;return e.$$p=null,r.$reset(),u(r,c(r,"parse",e,!1,!0),"parse",[],t)})),i(U,"$on_test",(function(e,t){return this.current_element=this.$s("test",e,t)})),i(U,"$on_pseudo_class",(function(e,t){var r;return null==t&&(t=w),r="on_pseudo_class_"+e.$gsub("-","_"),$(t)?this.$send(r,t):this.$send(r)}),-2),i(U,"$on_pseudo_class_root",(function(){var e=this;return e.$s("call","not",e.$s("axis","parent",e.$s("test",w,"*")))})),i(U,"$on_pseudo_class_nth_child",(function(e){return this.$generate_nth_child("preceding-sibling",e)})),i(U,"$on_pseudo_class_nth_last_child",(function(e){return this.$generate_nth_child("following-sibling",e)})),i(U,"$on_pseudo_class_nth_of_type",(function(e){return this.$generate_nth_child("preceding-sibling",e,this.$current_element())})),i(U,"$on_pseudo_class_nth_last_of_type",(function(e){return this.$generate_nth_child("following-sibling",e,this.$current_element())})),i(U,"$on_pseudo_class_nth",(function(e){return this.$s("eq",this.$s("call","position"),e)})),i(U,"$on_pseudo_class_first_child",(function(){return this.$generate_no_siblings("preceding-sibling")})),i(U,"$on_pseudo_class_last_child",(function(){return this.$generate_no_siblings("following-sibling")})),i(U,"$on_pseudo_class_first_of_type",(function(){return this.$generate_no_siblings("preceding-sibling",this.$current_element())})),i(U,"$on_pseudo_class_last_of_type",(function(){return this.$generate_no_siblings("following-sibling",this.$current_element())})),i(U,"$on_pseudo_class_only_child",(function(){var e=this;return e.$s("and",e.$on_pseudo_class_first_child(),e.$on_pseudo_class_last_child())})),i(U,"$on_pseudo_class_only_of_type",(function(){var e=this;return e.$s("and",e.$on_pseudo_class_first_of_type(),e.$on_pseudo_class_last_of_type())})),i(U,"$on_pseudo_class_empty",(function(){var e=this;return e.$s("call","not",e.$s("axis","child",e.$s("type_test","node")))})),i(U,"$on_pseudo_class_not",(function(e){return _(e.$type(),"axis")?e=this.$s("axis","self",e.$children()["$[]"](1)):_(e.$type(),"predicate")&&(e=e.$children()["$[]"](1)),this.$s("call","not",e)})),i(U,"$on_op_eq",(function(e,t){return this.$s("eq",e,t)})),i(U,"$on_op_space_in",(function(e,t){var r=this;return r.$s("call","contains",r.$s("call","concat",r.$s("string"," "),e,r.$s("string"," ")),r.$s("call","concat",r.$s("string"," "),t,r.$s("string"," ")))})),i(U,"$on_op_starts_with",(function(e,t){return this.$s("call","starts-with",e,t)})),i(U,"$on_op_ends_with",(function(e,t){var r=this;return r.$s("eq",r.$s("call","substring",e,r.$s("add",r.$s("sub",r.$s("call","string-length",e),r.$s("call","string-length",t)),r.$s("int",1)),r.$s("call","string-length",t)),t)})),i(U,"$on_op_in",(function(e,t){return this.$s("call","contains",e,t)})),i(U,"$on_op_hyphen_in",(function(e,t){var r=this;return r.$s("or",r.$s("eq",e,t),r.$s("call","starts-with",e,r.$s("call","concat",t,r.$s("string","-"))))})),U.$private(),i(U,"$generate_nth_child",(function(e,t,r){var n,a,s=this,i=w,o=w,l=w,u=w,c=w,_=w;return null==r&&(r=s.$s("test",w,"*")),a=s.$s("call","count",s.$s("axis",e,r)),$(s["$int_node?"](t))?i=s.$s("eq",a,s.$s("int",p(t.$children()["$[]"](0),1))):(o=null==(n=[].concat(m(t)))[0]?w:n[0],l=null==n[1]?w:n[1],u=s.$s("add",a,s.$s("int",1)),c=s.$step_comparison(o),$(l)?(_=s.$step_modulo_value(o),i=s.$s("and",s.$s(c,u,l),s.$s("eq",s.$s("mod",s.$s("sub",u,l),_),s.$s("int",0)))):i=s.$s("eq",s.$s("mod",u,o),s.$s("int",0))),i}),-3),i(U,"$generate_no_siblings",(function(e,t){var r=this;return null==t&&(t=r.$s("test",w,"*")),r.$s("eq",r.$s("call","count",r.$s("axis",e,t)),r.$s("int",0))}),-2),i(U,"$int_node?",(function(e){return e.$type()["$equal?"]("int")})),i(U,"$non_positive_number?",(function(e){return d(e.$children()["$[]"](0),0)})),i(U,"$step_comparison",(function(e){return $(f(e.$children()["$[]"](0),0))?"gte":"lte"})),i(U,"$step_modulo_value",(function(e){var t=this;return $(e)&&$(t["$non_positive_number?"](e))?t.$s("int",e.$children()["$[]"](0)["$-@"]()):$(e)?e:t.$s("int",1)})),i(U,"$generate_axis",(function(e,t,r,n){var a=this,s=w;return null==t&&(t=w),null==r&&(r=w),null==n&&(n=w),s=$(t)?a.$s("axis",e,t):a.$s("axis",e,a.$on_test(w,"*")),$(r)&&(s=a.$s("predicate",s,r)),$(n)&&(s=a.$add_child(s,n)),s}),-2),i(U,"$add_child",(function(e,t){return e.$updated(w,h(e.$children(),[t]))})),i(U,"$_rule_0",(function(e){return e["$[]"](0)})),i(U,"$_rule_1",g(w)),i(U,"$_rule_2",(function(e){var t=w;return t=e["$[]"](0),a(e["$[]"](1),"each",[],(function e(r){return null==r&&(r=w),t=(null==e.$$s?this:e.$$s).$s("pipe",t,r)}),{$$s:this}),t})),i(U,"$_rule_3",(function(e){return e["$[]"](1)})),i(U,"$_rule_4",(function(e){var t,r,n=this,a=w;return a=n.$s("axis","descendant",e["$[]"](0)),t=e["$[]"](1),r=e["$[]"](2),$(t)&&(a=n.$s("predicate",a,t)),$(r)&&(a=n.$add_child(a,r)),a})),i(U,"$_rule_5",(function(e){return e["$[]"](0)})),i(U,"$_rule_6",(function(e){var t,r,n=this,a=w;return a=n.$s("axis","descendant",n.$on_test(w,"*")),t=e["$[]"](0),r=e["$[]"](1),a=$(t)?n.$s("predicate",a,t):n.$s("predicate",a),$(r)&&(a=n.$add_child(a,r)),a})),i(U,"$_rule_7",(function(e){return e["$[]"](1)})),i(U,"$_rule_8",(function(e){return e["$[]"](0)})),i(U,"$_rule_9",(function(e){var t,r,n,a,s;return r=e["$[]"](1),n=null==(t=b(r))[0]?w:t[0],a=null==t[1]?w:t[1],s=e["$[]"](2),this.$generate_axis("child",n,a,s)})),i(U,"$_rule_10",(function(e){var t,r,n,a,s,i=this;return r=e["$[]"](1),n=null==(t=b(r))[0]?w:t[0],a=null==t[1]?w:t[1],s=e["$[]"](2),i.$s("predicate",i.$s("axis","following-sibling",i.$on_test(w,"*")),i.$s("int",1),i.$generate_axis("self",n,a,s))})),i(U,"$_rule_11",(function(e){var t,r,n,a,s;return r=e["$[]"](1),n=null==(t=b(r))[0]?w:t[0],a=null==t[1]?w:t[1],s=e["$[]"](2),this.$generate_axis("following-sibling",n,a,s)})),i(U,"$_rule_12",(function(e){return e})),i(U,"$_rule_13",(function(e){return[w,e["$[]"](0)]})),i(U,"$_rule_14",(function(e){return e["$[]"](0)})),i(U,"$_rule_15",(function(e){return e["$[]"](0)})),i(U,"$_rule_16",(function(e){return e["$[]"](0)})),i(U,"$_rule_17",(function(e){return a(this,"on_test",m(e["$[]"](0)))})),i(U,"$_rule_18",(function(e){return $(e["$[]"](1))?[e["$[]"](0),e["$[]"](1)]:[w,e["$[]"](0)]})),i(U,"$_rule_19",(function(e){return e["$[]"](1)})),i(U,"$_rule_20",(function(e){var t=w;return t=e["$[]"](0),a(e["$[]"](1),"each",[],(function e(r){return null==r&&(r=w),t=(null==e.$$s?this:e.$$s).$s("and",t,r)}),{$$s:this}),t})),i(U,"$_rule_21",(function(e){return e["$[]"](0)})),i(U,"$_rule_22",(function(e){return e["$[]"](0)})),i(U,"$_rule_23",(function(e){return e["$[]"](1)})),i(U,"$_rule_24",(function(e){return e["$[]"](0)})),i(U,"$_rule_25",(function(e){return this.$s("axis","attribute",a(this,"on_test",m(e["$[]"](0))))})),i(U,"$_rule_26",(function(e){var t=this;switch(($(e["$[]"](1))?e["$[]"](1)["$[]"](0):w).valueOf()){case"eq":return t.$on_op_eq(e["$[]"](0),e["$[]"](1)["$[]"](1));case"space_in":return t.$on_op_space_in(e["$[]"](0),e["$[]"](1)["$[]"](1));case"starts_with":return t.$on_op_starts_with(e["$[]"](0),e["$[]"](1)["$[]"](1));case"ends_with":return t.$on_op_ends_with(e["$[]"](0),e["$[]"](1)["$[]"](1));case"in":return t.$on_op_in(e["$[]"](0),e["$[]"](1)["$[]"](1));case"hyphen_in":return t.$on_op_hyphen_in(e["$[]"](0),e["$[]"](1)["$[]"](1));default:return e["$[]"](0)}})),i(U,"$_rule_27",g("eq")),i(U,"$_rule_28",g("space_in")),i(U,"$_rule_29",g("starts_with")),i(U,"$_rule_30",g("ends_with")),i(U,"$_rule_31",g("in")),i(U,"$_rule_32",g("hyphen_in")),i(U,"$_rule_33",(function(e){var t,r=this;return t=r.$s("axis","attribute",r.$s("test",w,"class")),r.$s("call","contains",r.$s("call","concat",r.$s("string"," "),t,r.$s("string"," ")),r.$s("string"," "+e["$[]"](1)+" "))})),i(U,"$_rule_34",(function(e){var t=this;return t.$s("eq",t.$s("axis","attribute",t.$s("test",w,"id")),t.$s("string",e["$[]"](1)))})),i(U,"$_rule_35",(function(e){return this.$on_pseudo_class(e["$[]"](0),e["$[]"](1))})),i(U,"$_rule_36",(function(e){return e["$[]"](1)})),i(U,"$_rule_37",(function(e){return e["$[]"](1)})),i(U,"$_rule_38",(function(e){return e["$[]"](0)})),i(U,"$_rule_39",(function(e){return e["$[]"](0)})),i(U,"$_rule_40",(function(e){return e["$[]"](0)})),i(U,"$_rule_41",(function(e){return e["$[]"](0)})),i(U,"$_rule_42",(function(e){return this.$s("string",e["$[]"](0))})),i(U,"$_rule_43",(function(e){return this.$s("int",e["$[]"](0).$to_i())})),i(U,"$_rule_44",(function(e){var t=this;return $(e["$[]"](1))?t.$s("nth",t.$s("int",1),e["$[]"](1)):t.$s("nth",t.$s("int",1))})),i(U,"$_rule_45",(function(e){var t=this;return $(e["$[]"](2))?t.$s("nth",t.$s("int",-1),e["$[]"](2)):t.$s("nth",t.$s("int",1))})),i(U,"$_rule_46",(function(e){var t=this,r=w,n=w;return $(e["$[]"](1))&&$(e["$[]"](2))?(r=e["$[]"](0),n=e["$[]"](2),$(v(n.$children()["$[]"](0),0))&&(n=t.$s("int",p(r.$children()["$[]"](0),n.$children()["$[]"](0)["$%"](r.$children()["$[]"](0))))),t.$s("nth",r,n)):$(e["$[]"](1))?t.$s("nth",e["$[]"](0)):e["$[]"](0)})),i(U,"$_rule_47",g("nth")),i(U,"$_rule_48",(function(e){var t=this;return t.$s("nth",t.$s("int",2),t.$s("int",1))})),i(U,"$_rule_49",(function(e){return this.$s("nth",this.$s("int",2))})),i(U,"$_rule_50",(function(e){return e["$[]"](0)})),i(U,"$_rule_51",(function(e){return e["$[]"](0)})),i(U,"$_rule_52",(function(e){return e["$[]"](0)})),i(U,"$_rule_53",(function(e){return e["$[]"](0)})),i(U,"$_rule_54",(function(e){return e["$[]"](0)})),i(U,"$_rule_55",(function(e){return e["$[]"](0)})),i(U,"$_rule_56",(function(e){return e["$[]"](0)})),i(U,"$_rule_57",(function(e){return e["$[]"](0)})),i(U,"$_rule_58",(function(e){return e["$[]"](0)})),i(U,"$_rule_59",(function(e){return e["$[]"](0)})),i(U,"$_rule_60",(function(e){return e})),i(U,"$_rule_61",(function(e){return e["$[]"](0)})),i(U,"$_rule_62",(function(e){return e["$[]"](0)})),i(U,"$_rule_63",(function(e){return e["$[]"](0)})),i(U,"$_rule_64",(function(e){return e["$[]"](0)})),i(U,"$_rule_65",(function(e){return e["$[]"](0)}))}(U[0],k(E("LL"),"Driver"),U)}(U[0],U)}(x[0],x)},Opal.modules.oga=function(e){var t=e.eqeq,r=e.top,n=e.$r([]);e.nil;return e.add_stubs("require,==,load,Liboga,liboga,org,runtime"),r.$require("ast"),r.$require("set"),r.$require("stringio"),r.$require("thread"),r.$require("oga/version"),r.$require("oga/oga"),r.$require("oga/lru"),r.$require("oga/entity_decoder"),r.$require("oga/blacklist"),r.$require("oga/whitelist"),r.$require("oga/xml/lexer"),r.$require("oga/xml/parser"),r.$require("oga/native/lexer"),t(n("RUBY_PLATFORM"),"java")&&(r.$require("jruby"),r.$org().$liboga().$Liboga().$load(n("JRuby").$runtime())),r.$require("oga/xml/to_xml"),r.$require("oga/xml/html_void_elements"),r.$require("oga/xml/entities"),r.$require("oga/xml/querying"),r.$require("oga/xml/traversal"),r.$require("oga/xml/expanded_name"),r.$require("oga/xml/node"),r.$require("oga/xml/document"),r.$require("oga/xml/character_node"),r.$require("oga/xml/text"),r.$require("oga/xml/comment"),r.$require("oga/xml/cdata"),r.$require("oga/xml/processing_instruction"),r.$require("oga/xml/xml_declaration"),r.$require("oga/xml/doctype"),r.$require("oga/xml/namespace"),r.$require("oga/xml/default_namespace"),r.$require("oga/xml/attribute"),r.$require("oga/xml/element"),r.$require("oga/xml/node_set"),r.$require("oga/xml/generator"),r.$require("oga/xml/sax_parser"),r.$require("oga/xml/pull_parser"),r.$require("oga/html/parser"),r.$require("oga/html/sax_parser"),r.$require("oga/html/entities"),r.$require("oga/ruby/node"),r.$require("oga/ruby/generator"),r.$require("oga/xpath/lexer"),r.$require("oga/xpath/parser"),r.$require("oga/xpath/context"),r.$require("oga/xpath/compiler"),r.$require("oga/xpath/conversion"),r.$require("oga/css/lexer"),r.$require("oga/css/parser")},Opal.modules["plurimath/xml_engine/oga"]=function(e){var t=e.module,r=e.klass,n=e.def,a=e.ensure_kwargs,s=e.hash_get,i=e.truthy,o=e.assign_ivar,l=e.return_ivar,$=e.send,u=e.eqeq,c=e.rb_minus,_=e.thrower,p=e.eqeqeq,m=e.not,d=e.const_set,f=e.rb_plus,h=e.rb_lt,g=e.defs,b=e.rb_times,v=e.top,y=[],x=e.nil,w=e.$$$;return e.add_stubs("require,new,out,dump,parse,xml_declaration,first,nodes,respond_to?,unwrap,is_a?,==,class,inspect,children,length,compact,with_index,map,-,text,remove_indentation,to_s,each,attributes,include?,name,last,split,value,element=,instance_variable_set,<<,===,dup,to_h,xpath,name=,private,instance_variable_get,strip,!,line_break,+,dump_attrs,entities,object_id,attr_reader,ord,join,chars,to_proc,chr,<,rjust,attr_entities,*"),v.$require("plurimath/xml_engine"),v.$require("corelib/array/pack"),v.$require("oga"),function(v,y){var k=[t(v,"Plurimath")].concat(y);return function(v,y){var k=[t(v,"XMLEngine")].concat(y);return function(t,v,y){var k=r(t,null,"Oga"),U=[k].concat(y),E=e.$r(U);return function(t,r){var o=[t].concat(r),l=e.$r(o);n(t,"$new_element",(function(e){var t;return t=w(w(w("Oga"),"XML"),"Element").$new(new Map([["name",e]])),l("Node").$new(t)})),n(t,"$dump",(function(e,t){var r;return t=a(t),null==(r=s(t,"indent"))&&(r=x),l("Dumper").$new(e,new Map([["indent",r]])).$dump().$out()}),-2),n(t,"$load",(function(e){return e=w(w(w("Oga"),"XML"),"Parser").$new(e,new Map([["html",!0]])).$parse(),i(e.$xml_declaration())?l("Document").$new(e):l("Document").$new(e).$nodes().$first()})),n(t,"$is_xml_comment?",(function(e){return i(e["$respond_to?"]("unwrap"))&&(e=e.$unwrap()),e["$is_a?"](l("Comment"))}))}(e.get_singleton_class(k),U),function(e,t){var a=r(e,null,"Wrapper");a.$$prototype.wrapped=x,n(a,"$initialize",o("wrapped")),n(a,"$unwrap",l("wrapped")),n(a,"$==",(function(e){var t;return i(t=this.$class()["$=="](e.$class()))?this.wrapped.$inspect()["$=="](e.$unwrap().$inspect()):t}))}(U[0]),function(t,a,s){var o=r(t,a,"Node"),l=[o].concat(s),d=e.$r(l);o.$$prototype.wrapped=x,n(o,"$nodes",(function(){var e,t=x,r=x;return t=this.wrapped.$children(),e=t.$length(),r=!0,$(t.$map(),"with_index",[],(function t(n,a){var s=null==t.$$s?this:t.$$s;return null==n&&(n=x),null==a&&(a=x),i(r)&&u(a,c(e,1))&&i(n["$is_a?"](w(w(w("Oga"),"XML"),"Text")))?n.$text():i(n["$is_a?"](w(w(w("Oga"),"XML"),"Text")))?s.$remove_indentation(n):(i(n["$is_a?"](w(w(w("Oga"),"XML"),"Comment")))||(r=!1),d("Node").$new(n))}),{$$s:this}).$compact()})),n(o,"$[]",(function(e){try{var t=_("return");return e=e.$to_s(),$(this.wrapped.$attributes(),"each",[],(function r(n){if(null==n&&(n=x),!i([n.$name(),n.$name().$split(":").$last()]["$include?"](e)))return x;t.$throw(n.$value(),r.$$is_lambda)}),{$$ret:t}),x}catch(e){if(e===t)return e.$v;throw e}finally{t.is_orphan=!0}})),n(o,"$[]=",(function(e,t){return(e=w(w(w("Oga"),"XML"),"Attribute").$new(new Map([["name",e.$to_s()]])))["$element="](this.wrapped),e.$instance_variable_set("@value",t.$to_s()),e.$instance_variable_set("@decoded",!0),this.wrapped.$attributes()["$<<"](e)})),n(o,"$<<",(function(e){var t=x;return i(e["$respond_to?"]("unwrap"))&&(e=e.$unwrap()),p(d("String"),e)&&(t=e,(e=w(w(w("Oga"),"XML"),"Text").$new()).$instance_variable_set("@from_plurimath",!0),e.$instance_variable_set("@text",t),e.$instance_variable_set("@decoded",!0)),this.wrapped.$children()["$<<"](e.$dup()),this})),n(o,"$attributes",(function(){return $(this.wrapped.$attributes(),"to_h",[],(function(e){return null==e&&(e=x),[e.$name().$split(":").$last(),e.$value()]}))})),n(o,"$locate",(function(e){return $(this.wrapped.$xpath(e),"map",[],(function(e){var t;return null==e&&(e=x),p(w(w(w("Oga"),"XML"),"Text"),t=e)?e.$text():p(w(w(w("Oga"),"XML"),"Attribute"),t)?e.$value():d("Node").$new(e)}))})),n(o,"$name",(function(){return this.wrapped.$name()})),n(o,"$name=",(function(e){var t;return t=[e],$(this.wrapped,"name=",t),t[t.length-1]})),o.$private(),n(o,"$remove_indentation",(function(e){var t;return t=e.$instance_variable_get("@from_plurimath"),m(t)&&u(e.$text().$strip(),"")?x:e.$text()}))}(U[0],E("Wrapper"),U),r(U[0],E("Node"),"Document"),d(U[0],"Comment",w(w(w("Oga"),"XML"),"Comment")),function(t,o,l){var _=r(t,null,"Dumper"),m=[_].concat(l),v=e.$r(m),y=_.$$prototype;return y.tree=y.out=y.depth=y.indent=x,n(_,"$initialize",(function(e,t){var r,n=this;return t=a(t),null==(r=s(t,"indent"))&&(r=x),n.tree=e,n.indent=r,n.depth=0,n.out=""}),-2),n(_,"$dump",(function(e){var t,r=this,n=x;return null==e&&(e=r.tree),p(v("Node"),t=e)?(n=e.$nodes(),u(n.$length(),0)?(r.$line_break(),r.out=f(r.out,"<"+e.$unwrap().$name()+r.$dump_attrs(e)+"/>")):(r.$line_break(),r.out=f(r.out,"<"+e.$unwrap().$name()+r.$dump_attrs(e)+">"),r.depth=f(r.depth,1),$(n,"each",[],(function e(t){return null==t&&(t=x),(null==e.$$s?this:e.$$s).$dump(t)}),{$$s:r}),r.depth=c(r.depth,1),i(n.$last()["$is_a?"](w("String")))||r.$line_break(),r.out=f(r.out,"</"+e.$unwrap().$name()+">"))):p(w("String"),t)&&(r.out=f(r.out,r.$entities(e))),u(e.$object_id(),r.tree.$object_id())&&r.$line_break(),r}),-1),_.$attr_reader("out"),d(m[0],"ORD_AMP","&".$ord()),d(m[0],"ORD_LT","<".$ord()),d(m[0],"ORD_GT",">".$ord()),d(m[0],"ORD_APOS","'".$ord()),d(m[0],"ORD_QUOT",'"'.$ord()),d(m[0],"ORD_NEWLINE","\n".$ord()),d(m[0],"ORD_CARRIAGERETURN","\r".$ord()),g(_,"$entities",(function(e,t){return null==t&&(t=!1),$($(e.$to_s().$chars(),"map",[],"ord".$to_proc()),"map",[],(function(e){return null==e&&(e=x),u(e,v("ORD_AMP"))?"&amp;":u(e,v("ORD_LT"))?"&lt;":u(e,v("ORD_GT"))?"&gt;":u(e,v("ORD_QUOT"))&&i(t)?"&quot;":u(e,v("ORD_NEWLINE"))||u(e,v("ORD_CARRIAGERETURN"))?e.$chr("utf-8"):i(h(e,32))?"&#x"+e.$to_s(16).$rjust(4,"0")+";":e.$chr("utf-8")})).$join()}),-2),_.$private(),n(_,"$dump_attrs",(function(e){return $(e.$unwrap().$attributes(),"map",[],(function e(t){var r=null==e.$$s?this:e.$$s;return null==t&&(t=x)," "+t.$name()+'="'+r.$attr_entities(t.$value())+'"'}),{$$s:this}).$join()})),n(_,"$entities",(function(e){return this.$class().$entities(e)})),n(_,"$attr_entities",(function(e){return this.$class().$entities(e,!0)})),n(_,"$line_break",(function(){var e=this;return e.out=f(e.out,"\n"),i(e.indent)?e.out=f(e.out,b(" ",b(e.indent,e.depth))):x}))}(U[0],0,U)}(k[0],0,k)}(k[0],k)}(y[0],y)},Opal.modules["plurimath/setup/oga"]=function(e){var t,r=e.send,n=e.top,a=e.$r([]),s=(e.nil,e.$$$);return e.add_stubs("require,xml_engine="),n.$require("plurimath/xml_engine/oga"),t=[s(s(a("Plurimath"),"XMLEngine"),"Oga")],r(a("Plurimath"),"xml_engine=",t),t[t.length-1]},Opal.modules["plurimath/math/core"]=function(e){var t=e.module,r=e.klass,n=e.def,a=e.return_val,s=e.ensure_kwargs,i=e.get_kwarg,o=e.hash_get,l=e.truthy,$=e.annotate_regexp,u=e.send,c=[],_=e.nil,p=e.$$$;return e.add_stubs("downcase,last,split,name,class,Array,to_omml_without_math_tag,ox_element,<<,empty_tag,update_nodes,insert_t_tag,nil?,common_math_zone_conversion,[],to_asciimath,validate_math_zone,to_asciimath_math_zone,to_latex,to_latex_math_zone,dump_mathml,to_mathml_math_zone,dump_omml,to_omml_math_zone,dump_ox_nodes,to_mathml_without_math_tag,gsub,omml_nodes,is_a?,join,map,flatten,!,filter_math_zone_values,dump,xml_engine,invert,class_name"),function(c,m){var d=[t(c,"Plurimath")].concat(m);return function(c,m){var d=[t(c,"Math")].concat(m);return function(t,c,m){var d=r(t,null,"Core"),f=[d].concat(m),h=e.$r(f);return n(d,"$class_name",(function(){return this.$class().$name().$split("::").$last().$downcase()})),n(d,"$insert_t_tag",(function(e){return this.$Array(this.$to_omml_without_math_tag(e))})),n(d,"$tag_name",a("subsup")),n(d,"$omml_tag_name",a("subSup")),n(d,"$nary_attr_value",a("")),n(d,"$empty_tag",(function(e){var t=_;return(t=h("Utility").$ox_element("r",new Map([["namespace","m"]])))["$<<"](h("Utility").$ox_element("t",new Map([["namespace","m"]]))["$<<"]("&#8203;")),e["$<<"](t)})),n(d,"$omml_parameter",(function(e,t,r){var n,a,$,u;return r=s(r),n=i(r,"tag_name"),null==(a=o(r,"namespace"))&&(a="m"),u=h("Utility").$ox_element(n,new Map([["namespace",a]])),l(e)?h("Utility").$update_nodes(u,($=e)===_||null==$?_:$.$insert_t_tag(t)):this.$empty_tag(u)})),n(d,"$validate_function_formula",a(!0)),n(d,"$r_element",(function(e,t){var r,n=_,a=_;return t=s(t),null==(r=o(t,"rpr_tag"))&&(r=!0),n=h("Utility").$ox_element("r",new Map([["namespace","m"]])),l(r)&&(a=h("Utility").$ox_element("sty",new Map([["namespace","m"],["attributes",new Map([["m:val","p"]])]])),n["$<<"](h("Utility").$ox_element("rPr",new Map([["namespace","m"]]))["$<<"](a))),n["$<<"](h("Utility").$ox_element("t",new Map([["namespace","m"]]))["$<<"](e)),this.$Array(n)}),-2),n(d,"$extractable?",a(!1)),n(d,"$extract_class_from_text",a("")),n(d,"$font_style_t_tag",(function(e){return this.$to_omml_without_math_tag(e)})),n(d,"$ascii_fields_to_print",(function(e,t){var r,n,a=_;return null==t&&(t=new Map),l(e["$nil?"]())?_:(a=this.$common_math_zone_conversion(e,t),t["$[]"]("array")["$<<"](a["$[]"]("spacing")+'|_ "'+(((r=e)===_||null==r?_:r.$to_asciimath())+'"')+a["$[]"]("field_name")+"\n"),l(h("Utility").$validate_math_zone(e))?t["$[]"]("array")["$<<"]((n=e)===_||null==n?_:n.$to_asciimath_math_zone(a["$[]"]("function_spacing"),a["$[]"]("last"),a["$[]"]("indent"))):_)}),-2),n(d,"$latex_fields_to_print",(function(e,t){var r,n,a=_;return null==t&&(t=new Map),l(e["$nil?"]())?_:(a=this.$common_math_zone_conversion(e,t),t["$[]"]("array")["$<<"](a["$[]"]("spacing")+'|_ "'+(((r=e)===_||null==r?_:r.$to_latex())+'"')+a["$[]"]("field_name")+"\n"),l(h("Utility").$validate_math_zone(e))?t["$[]"]("array")["$<<"]((n=e)===_||null==n?_:n.$to_latex_math_zone(a["$[]"]("function_spacing"),a["$[]"]("last"),a["$[]"]("indent"))):_)}),-2),n(d,"$mathml_fields_to_print",(function(e,t){var r,n=_;return null==t&&(t=new Map),l(e["$nil?"]())?_:(n=this.$common_math_zone_conversion(e,t),t["$[]"]("array")["$<<"](n["$[]"]("spacing")+'|_ "'+this.$dump_mathml(e)+'"'+n["$[]"]("field_name")+"\n"),l(h("Utility").$validate_math_zone(e))?t["$[]"]("array")["$<<"]((r=e)===_||null==r?_:r.$to_mathml_math_zone(n["$[]"]("function_spacing"),n["$[]"]("last"),n["$[]"]("indent"))):_)}),-2),n(d,"$omml_fields_to_print",(function(e,t){var r,n,a=_;return null==t&&(t=new Map),l(e["$nil?"]())?_:(a=this.$common_math_zone_conversion(e,t),n=t["$[]"]("display_style"),t["$[]"]("array")["$<<"](a["$[]"]("spacing")+'|_ "'+this.$dump_omml(e,n)+'"'+a["$[]"]("field_name")+"\n"),l(h("Utility").$validate_math_zone(e))?t["$[]"]("array")["$<<"]((r=e)===_||null==r?_:r.$to_omml_math_zone(a["$[]"]("function_spacing"),a["$[]"]("last"),a["$[]"]("indent"),new Map([["display_style",n]]))):_)}),-2),n(d,"$dump_mathml",(function(e){return this.$dump_ox_nodes(e.$to_mathml_without_math_tag()).$gsub($(/\n\s*/u,null,""),"").$gsub("&amp;","&")})),n(d,"$dump_omml",(function(e,t){var r=_;return l(e["$nil?"]())?_:(r=e.$omml_nodes(t),(l(r["$is_a?"](h("Array")))?u(r.$flatten(),"map",[],(function e(t){return null==t&&(t=_),(null==e.$$s?this:e.$$s).$dump_ox_nodes(t)}),{$$s:this}).$join():this.$dump_ox_nodes(r)).$gsub($(/\n\s*/u,null,""),"").$gsub("&amp;","&"))})),n(d,"$omml_nodes",(function(e){return this.$to_omml_without_math_tag(e)})),n(d,"$validate_mathml_fields",(function(e){return l(e["$nil?"]())?h("Utility").$ox_element("mi"):e.$to_mathml_without_math_tag()})),n(d,"$common_math_zone_conversion",(function(e,t){var r,n;return null==t&&(t=new Map),new Map([["spacing",t["$[]"]("spacing")],["last",!l(n=t["$[]"]("last"))||n],["indent",(r=e,r===_||null==r?_:r["$is_a?"](h("Formula")))["$!"]()],["function_spacing",""+t["$[]"]("spacing")+t["$[]"]("additional_space")],["field_name",l(t["$[]"]("field_name"))?" "+t["$[]"]("field_name"):""]])}),-2),n(d,"$filtered_values",(function(e){return this.values=h("Utility").$filter_math_zone_values(e)})),n(d,"$dump_ox_nodes",(function(e){return h("Plurimath").$xml_engine().$dump(e)})),n(d,"$gsub_spacing",(function(e,t){return e.$gsub($(/\|_/u,"\\|\\_",""),l(t)?" ":"| ")})),n(d,"$invert_unicode_symbols",(function(){var e;return l(e=p(p(h("Mathml"),"Constants"),"UNICODE_SYMBOLS").$invert()["$[]"](this.$class_name()))?e:this.$class_name()}))}(d[0],0,d)}(d[0],d)}(c[0],c)},Opal.modules["plurimath/math/function"]=function(e){var t=e.module,r=[],n=e.nil;return function(e,r){var n=[t(e,"Plurimath")].concat(r);(function(e,r){var n=[t(e,"Math")].concat(r);t(n[0],"Function")})(n[0],n)}(r[0],r),n},Opal.modules["plurimath/math/function/unary_function"]=function(e){var t=e.module,r=e.klass,n=e.truthy,a=e.def,s=e.rb_plus,i=e.send,o=e.slice,l=e.extract_kwargs,$=e.ensure_kwargs,u=e.get_kwarg,c=e.eqeqeq,_=[],p=e.nil,m=e.$$$;return e.add_stubs("attr_accessor,is_a?,to_s,validate_left_right,==,class,parameter_one,any?,class_name,asciimath_value,ox_element,include?,<<,+,mathml_value,update_nodes,first,latex_value,join,map,to_proc,to_html,invert_unicode_symbols,r_element,pr_element,rpr_element,omml_value,gsub_spacing,to_asciimath,ascii_fields_to_print,to_latex,latex_fields_to_print,dump_mathml,mathml_fields_to_print,dump_omml,omml_fields_to_print,protected,===,compact,Array,to_mathml_without_math_tag,insert_t_tag,[],invert"),function(_,d){var f=[t(_,"Plurimath")].concat(d);return function(_,d){var f=[t(_,"Math")].concat(d);return function(_,d){var f=[t(_,"Function")].concat(d),h=e.$r(f);return function(t,_,d){var f=r(t,_,"UnaryFunction"),h=[f].concat(d),g=e.$r(h);return f.$attr_accessor("parameter_one"),a(f,"$initialize",(function(e){return null==e&&(e=p),n(e["$is_a?"](m(g("Parslet"),"Slice")))&&(e=e.$to_s()),this.parameter_one=e,g("Utility").$validate_left_right([e])}),-1),a(f,"$==",(function(e){var t;return n(t=e.$class()["$=="](this.$class()))?e.$parameter_one()["$=="](this.$parameter_one()):t})),a(f,"$to_asciimath",(function(){var e,t=this;return e=n(m(g("Utility"),"UNARY_CLASSES")["$any?"](t.$class_name()))?t.$asciimath_value():n(t.$parameter_one())?"("+t.$asciimath_value()+")":p,""+t.$class_name()+e})),a(f,"$to_mathml_without_math_tag",(function(){var e,t,r=this,a=p;return e=g("Utility").$ox_element("mrow"),t=n(m(g("Utility"),"UNARY_CLASSES")["$include?"](r.$class_name()))?"mi":"mo",a=[g("Utility").$ox_element(t)["$<<"](r.$class_name())],n(r.$parameter_one())?(a=s(a,r.$mathml_value()),g("Utility").$update_nodes(e,a)):a.$first()})),a(f,"$to_latex",(function(){return"\\"+this.$class_name()+"{"+this.$latex_value()+"}"})),a(f,"$to_html",(function(){var e,t=this;return e=n(t.$parameter_one()["$is_a?"](g("Array")))?"<i>"+i(t.$parameter_one(),"map",[],"to_html".$to_proc()).$join()+"</i>":n(t.$parameter_one())?"<i>"+t.$parameter_one().$to_html()+"</i>":p,"<i>"+t.$invert_unicode_symbols()+"</i>"+e})),a(f,"$to_omml_without_math_tag",(function(e){var t,r,a,s,i,o=this,l=p,$=p;return n(o.$parameter_one())?(t=g("Utility").$ox_element("func",new Map([["namespace","m"]])),(l=g("Utility").$ox_element("funcPr",new Map([["namespace","m"]])))["$<<"](g("Utility").$pr_element("ctrl",!0,new Map([["namespace","m"]]))),$=g("Utility").$ox_element("fName",new Map([["namespace","m"]])),r=g("Utility").$ox_element("r",new Map([["namespace","m"]])),a=g("Utility").$rpr_element(),s=g("Utility").$ox_element("t",new Map([["namespace","m"]]))["$<<"](o.$class_name()),$["$<<"](g("Utility").$update_nodes(r,[a,s])),i=g("Utility").$ox_element("e",new Map([["namespace","m"]])),n(o.$parameter_one())&&g("Utility").$update_nodes(i,o.$omml_value(e)),g("Utility").$update_nodes(t,[l,$,i]),[t]):o.$r_element(o.$class_name(),new Map([["rpr_tag",!1]]))})),a(f,"$to_asciimath_math_zone",(function(e,t,r){var n,a,s,i,l=this;return(n=o(arguments,1)).length>1&&(a=n.shift()),null==a&&(a=!1),null==n.shift()&&p,s=l.$gsub_spacing(e,a),i=[e+'"'+l.$to_asciimath()+'" function apply\n',s+'|_ "'+l.$class_name()+'" function name\n'],l.$ascii_fields_to_print(l.$parameter_one(),new Map([["spacing",s],["field_name","argument"],["additional_space"," |_ "],["array",i]])),i}),-3),a(f,"$to_latex_math_zone",(function(e,t,r){var n,a,s,i,l=this;return(n=o(arguments,1)).length>1&&(a=n.shift()),null==a&&(a=!1),null==n.shift()&&p,s=l.$gsub_spacing(e,a),i=[e+'"'+l.$to_latex()+'" function apply\n',s+'|_ "'+l.$class_name()+'" function name\n'],l.$latex_fields_to_print(l.$parameter_one(),new Map([["spacing",s],["field_name","argument"],["additional_space"," |_ "],["array",i]])),i}),-3),a(f,"$to_mathml_math_zone",(function(e,t,r){var n,a,s,i,l=this;return(n=o(arguments,1)).length>1&&(a=n.shift()),null==a&&(a=!1),null==n.shift()&&p,s=l.$gsub_spacing(e,a),i=[e+'"'+l.$dump_mathml(l)+'" function apply\n',s+'|_ "'+l.$class_name()+'" function name\n'],l.$mathml_fields_to_print(l.$parameter_one(),new Map([["spacing",s],["field_name","argument"],["additional_space"," |_ "],["array",i]])),i}),-3),a(f,"$to_omml_math_zone",(function(e,t,r,n){var a,s,i,c,_,m,d=this;return a=o(arguments,1),s=l(a),s=$(s),a.length>1&&(i=a.shift()),null==i&&(i=!1),null==a.shift()&&p,c=u(s,"display_style"),_=d.$gsub_spacing(e,i),m=[e+'"'+d.$dump_omml(d,c)+'" function apply\n',_+'|_ "'+d.$class_name()+'" function name\n'],d.$omml_fields_to_print(d.$parameter_one(),new Map([["spacing",_],["field_name","argument"],["additional_space"," |_ "],["array",m],["display_style",c]])),m}),-4),f.$protected(),a(f,"$asciimath_value",(function(){var e=this;return n(e.$parameter_one())?c(g("Array"),e.$parameter_one())?i(e.$parameter_one().$compact(),"map",[],"to_asciimath".$to_proc()).$join():e.$parameter_one().$to_asciimath():""})),a(f,"$mathml_value",(function(){var e,t=this;return c(g("Array"),t.$parameter_one())?i(t.$parameter_one().$compact(),"map",[],"to_mathml_without_math_tag".$to_proc()):t.$Array((e=t.$parameter_one())===p||null==e?p:e.$to_mathml_without_math_tag())})),a(f,"$latex_value",(function(){var e,t,r,a,s=this;return n(s.$parameter_one()["$is_a?"](g("Array")))?(e=(t=(r=s.$parameter_one())===p||null==r?p:r.$compact())===p||null==t?p:i(t,"map",[],"to_latex".$to_proc()))===p||null==e?p:e.$join(" "):(a=s.$parameter_one())===p||null==a?p:a.$to_latex()})),a(f,"$omml_value",(function(e){var t,r,a,s=this;return n(s.$parameter_one()["$is_a?"](g("Array")))?(t=(r=s.$parameter_one())===p||null==r?p:r.$compact())===p||null==t?p:i(t,"map",[],(function(t){return null==t&&(t=p),t.$insert_t_tag(e)})):s.$Array((a=s.$parameter_one())===p||null==a?p:a.$insert_t_tag(e))})),a(f,"$latex_paren",(function(){var e;return n(e=m(m(g("Latex"),"Constants"),"LEFT_RIGHT_PARENTHESIS").$invert()["$[]"](this.$parameter_one()))?e:"."}))}(f[0],h("Core"),f)}(f[0],f)}(f[0],f)}(_[0],_)},Opal.modules["plurimath/math/function/abs"]=function(e){var t=e.module,r=e.klass,n=e.def,a=e.top,s=[],i=e.nil;return e.add_stubs("<<,ox_element,insert,mathml_value,update_nodes,mdpr_tag,omml_value,Array,protected,pr_element"),a.$require("plurimath//math/function/abs.rb/../unary_function"),function(a,s){var o=[t(a,"Plurimath")].concat(s);return function(a,s){var o=[t(a,"Math")].concat(s);return function(a,s){var o=[t(a,"Function")].concat(s),l=e.$r(o);return function(t,a,s){var o=r(t,a,"Abs"),l=[o].concat(s),$=e.$r(l);return n(o,"$to_mathml_without_math_tag",(function(){var e,t,r=i;return t=$("Utility").$ox_element("mo")["$<<"]("|"),r=(e=this.$mathml_value())===i||null==e?i:e.$insert(0,t),$("Utility").$update_nodes($("Utility").$ox_element("mrow"),r["$<<"](t))})),n(o,"$to_omml_without_math_tag",(function(e){var t,r,n=this;return t=$("Utility").$ox_element("d",new Map([["namespace","m"]]))["$<<"](n.$mdpr_tag()),r=$("Utility").$ox_element("e",new Map([["namespace","m"]])),$("Utility").$update_nodes(r,n.$omml_value(e)),$("Utility").$update_nodes(t,n.$Array(r)),[t]})),o.$protected(),n(o,"$mdpr_tag",(function(){var e,t=i;return e=new Map([["m:val","|"]]),(t=$("Utility").$pr_element("d",new Map([["namespace","m"]])))["$<<"]($("Utility").$ox_element("begChr",new Map([["namespace","m"],["attributes",e]]))),t["$<<"]($("Utility").$ox_element("endChr",new Map([["namespace","m"],["attributes",e]]))),t["$<<"]($("Utility").$ox_element("sepChr",new Map([["namespace","m"],["attributes",new Map([["m:val",""]])]]))),t["$<<"]($("Utility").$ox_element("grow",new Map([["namespace","m"]])))}))}(o[0],l("UnaryFunction"),o)}(o[0],o)}(o[0],o)}(s[0],s)},Opal.modules["plurimath/math/function/arccos"]=function(e){var t=e.module,r=e.klass,n=e.return_val,a=e.def,s=e.top,i=[];e.nil;return s.$require("plurimath//math/function/arccos.rb/../unary_function"),function(s,i){var o=[t(s,"Plurimath")].concat(i);return function(s,i){var o=[t(s,"Math")].concat(i);return function(s,i){var o=[t(s,"Function")].concat(i),l=e.$r(o);return function(e,t){var s=r(e,t,"Arccos");return a(s,"$validate_function_formula",n(!1))}(o[0],l("UnaryFunction"))}(o[0],o)}(o[0],o)}(i[0],i)},Opal.modules["plurimath/math/function/arcsin"]=function(e){var t=e.module,r=e.klass,n=e.return_val,a=e.def,s=e.top,i=[];e.nil;return s.$require("plurimath//math/function/arcsin.rb/../unary_function"),function(s,i){var o=[t(s,"Plurimath")].concat(i);return function(s,i){var o=[t(s,"Math")].concat(i);return function(s,i){var o=[t(s,"Function")].concat(i),l=e.$r(o);return function(e,t){var s=r(e,t,"Arcsin");return a(s,"$validate_function_formula",n(!1))}(o[0],l("UnaryFunction"))}(o[0],o)}(o[0],o)}(i[0],i)},Opal.modules["plurimath/math/function/arctan"]=function(e){var t=e.module,r=e.klass,n=e.return_val,a=e.def,s=e.top,i=[];e.nil;return s.$require("plurimath//math/function/arctan.rb/../unary_function"),function(s,i){var o=[t(s,"Plurimath")].concat(i);return function(s,i){var o=[t(s,"Math")].concat(i);return function(s,i){var o=[t(s,"Function")].concat(i),l=e.$r(o);return function(e,t){var s=r(e,t,"Arctan");return a(s,"$validate_function_formula",n(!1))}(o[0],l("UnaryFunction"))}(o[0],o)}(o[0],o)}(i[0],i)},Opal.modules["plurimath/math/function/bar"]=function(e){var t=e.module,r=e.klass,n=e.send2,a=e.find_super,s=e.def,i=e.truthy,o=e.not,l=e.top,$=[],u=e.nil;return e.add_stubs("attr_accessor,parameter_one,to_asciimath,to_latex,<<,ox_element,!,empty?,attributes,merge!,update_nodes,to_mathml_without_math_tag,r_element,[],acc_tag,bar_tag,new,protected,omml_parameter,bar_pr,pr_element"),l.$require("plurimath//math/function/bar.rb/../unary_function"),function(l,$){var c=[t(l,"Plurimath")].concat($);return function(l,$){var c=[t(l,"Math")].concat($);return function(l,$){var c=[t(l,"Function")].concat($),_=e.$r(c);return function(t,l,$){var c=r(t,l,"Bar"),_=[c].concat($),p=e.$r(_);return c.$attr_accessor("attributes"),s(c,"$initialize",(function e(t,r){var s=this;return e.$$p=null,null==t&&(t=u),null==r&&(r=new Map),n(s,a(s,"initialize",e,!1,!0),"initialize",[t],null),s.attributes=r}),-1),s(c,"$to_asciimath",(function(){var e=u;return i(this.$parameter_one())&&(e="("+this.$parameter_one().$to_asciimath()+")"),"bar"+e})),s(c,"$to_latex",(function(){var e=u;return i(this.$parameter_one())&&(e="{"+this.$parameter_one().$to_latex()+"}"),"\\overline"+e})),s(c,"$to_mathml_without_math_tag",(function(){var e,t,r=this,n=u;return t=p("Utility").$ox_element("mo")["$<<"]("&#xaf;"),i(r.$parameter_one())?(n=p("Utility").$ox_element("mover"),i(r.$attributes())&&o(r.$attributes()["$empty?"]())&&n.$attributes()["$merge!"](r.$attributes()),p("Utility").$update_nodes(n,[(e=r.$parameter_one(),e===u||null==e?u:e.$to_mathml_without_math_tag()),t])):t})),s(c,"$to_omml_without_math_tag",(function(e){var t=this;return i(t.$parameter_one())?i(t.$attributes())&&i(t.$attributes()["$[]"]("accent"))?t.$acc_tag(e):t.$bar_tag(e):t.$r_element("&#xaf;",new Map([["rpr_tag",!1]]))})),s(c,"$swap_class",(function(){return p("Ul").$new(this.$parameter_one(),this.$attributes())})),c.$protected(),s(c,"$acc_tag",(function(e){var t,r,n;return t=p("Utility").$ox_element("acc",new Map([["namespace","m"]])),r=p("Utility").$ox_element("chr",new Map([["namespace","m"],["attributes",new Map([["m:val","‾"]])]])),n=p("Utility").$ox_element("accPr",new Map([["namespace","m"]]))["$<<"](r),p("Utility").$update_nodes(t,[n,this.$omml_parameter(this.$parameter_one(),e,new Map([["tag_name","e"]]))]),[t]})),s(c,"$bar_tag",(function(e){var t,r=this;return t=p("Utility").$ox_element("bar",new Map([["namespace","m"]])),p("Utility").$update_nodes(t,[r.$bar_pr(),r.$omml_parameter(r.$parameter_one(),e,new Map([["tag_name","e"],["namespace","m"]]))]),[t]})),s(c,"$bar_pr",(function(){var e,t,r,n;return e=new Map([["m:val","top"]]),t=p("Utility").$ox_element("barPr",new Map([["namespace","m"]])),r=p("Utility").$ox_element("pos",new Map([["namespace","m"],["attributes",e]])),n=p("Utility").$pr_element("ctrl",!0,new Map([["namespace","m"]])),p("Utility").$update_nodes(t,[r,n])}))}(c[0],_("UnaryFunction"),c)}(c[0],c)}(c[0],c)}($[0],$)},Opal.modules["plurimath/math/function/binary_function"]=function(e){var t=e.module,r=e.klass,n=e.def,a=e.truthy,s=e.slice,i=e.extract_kwargs,o=e.ensure_kwargs,l=e.get_kwarg,$=e.not,u=[],c=e.nil,_=e.$$$;return e.add_stubs("attr_accessor,validate_left_right,class_name,wrapped,parameter_one,parameter_two,==,class,ox_element,<<,to_s,invert_unicode_symbols,to_mathml_without_math_tag,update_nodes,latex_wrapped,to_html,insert_t_tag,!,nil?,gsub_spacing,to_asciimath,[],ascii_fields_to_print,to_latex,latex_fields_to_print,dump_mathml,mathml_fields_to_print,dump_omml,omml_fields_to_print,protected,validate_function_formula,all_values_exist?,r_element,new,to_omml_without_math_tag,Array"),function(u,p){var m=[t(u,"Plurimath")].concat(p);return function(u,p){var m=[t(u,"Math")].concat(p);return function(u,p){var m=[t(u,"Function")].concat(p),d=e.$r(m);return function(t,u,p){var m=r(t,u,"BinaryFunction"),d=[m].concat(p),f=e.$r(d);return m.$attr_accessor("parameter_one","parameter_two"),n(m,"$initialize",(function(e,t){return null==e&&(e=c),null==t&&(t=c),this.parameter_one=e,this.parameter_two=t,f("Utility").$validate_left_right([e,t])}),-1),n(m,"$to_asciimath",(function(){var e=this;return""+e.$class_name()+e.$wrapped(e.$parameter_one())+e.$wrapped(e.$parameter_two())})),n(m,"$==",(function(e){var t,r,n=this;return a(t=a(r=e.$class()["$=="](n.$class()))?e.$parameter_one()["$=="](n.$parameter_one()):r)?e.$parameter_two()["$=="](n.$parameter_two()):t})),n(m,"$to_mathml_without_math_tag",(function(){var e,t,r,n,s=this,i=c,o=c;return r=f("Utility").$ox_element("mrow"),n=f("Utility").$ox_element("mo")["$<<"](s.$invert_unicode_symbols().$to_s()),a(s.$parameter_one())&&(i=(e=s.$parameter_one())===c||null==e?c:e.$to_mathml_without_math_tag()),a(s.$parameter_two())&&(o=(t=s.$parameter_two())===c||null==t?c:t.$to_mathml_without_math_tag()),f("Utility").$update_nodes(r,[i,n,o])})),n(m,"$to_latex",(function(){var e=this,t=c,r=c;return a(e.$parameter_one())&&(t=e.$latex_wrapped(e.$parameter_one())),a(e.$parameter_two())&&(r=e.$latex_wrapped(e.$parameter_two())),"\\"+e.$class_name()+t+r})),n(m,"$to_html",(function(){var e=this,t=c,r=c;return a(e.$parameter_one())&&(t="<i>"+e.$parameter_one().$to_html()+"</i>"),a(e.$parameter_two())&&(r="<i>"+e.$parameter_two().$to_html()+"</i>"),""+t+r})),n(m,"$to_omml_without_math_tag",(function(e){var t,r=this;return t=f("Utility").$ox_element("r",new Map([["namespace","m"]])),a(r.$parameter_one())&&f("Utility").$update_nodes(t,[r.$parameter_one().$insert_t_tag(e)]),a(r.$parameter_two())&&f("Utility").$update_nodes(t,[r.$parameter_two().$insert_t_tag(e)]),[t]})),n(m,"$any_value_exist?",(function(){var e;return(a(e=this.$parameter_one()["$nil?"]())?e:this.$parameter_two()["$nil?"]())["$!"]()})),n(m,"$all_values_exist?",(function(){var e;return(a(e=this.$parameter_one()["$nil?"]())?this.$parameter_two()["$nil?"]():e)["$!"]()})),n(m,"$to_asciimath_math_zone",(function(e,t,r){var n,a,i,o,l=this,$=c;return(n=s(arguments,1)).length>1&&(a=n.shift()),null==a&&(a=!1),null==n.shift()&&c,$=_(l.$class(),"FUNCTION"),i=l.$gsub_spacing(e,a),o=[e+'"'+l.$to_asciimath()+'" '+$["$[]"]("name")+"\n"],l.$ascii_fields_to_print(l.$parameter_one(),new Map([["spacing",i],["field_name",$["$[]"]("first_value")],["additional_space","| |_ "],["array",o]])),l.$ascii_fields_to_print(l.$parameter_two(),new Map([["spacing",i],["field_name",$["$[]"]("second_value")],["additional_space"," |_ "],["array",o]])),o}),-3),n(m,"$to_latex_math_zone",(function(e,t,r){var n,a,i,o,l=this,$=c;return(n=s(arguments,1)).length>1&&(a=n.shift()),null==a&&(a=!1),null==n.shift()&&c,$=_(l.$class(),"FUNCTION"),i=l.$gsub_spacing(e,a),o=[e+'"'+l.$to_latex()+'" '+$["$[]"]("name")+"\n"],l.$latex_fields_to_print(l.$parameter_one(),new Map([["spacing",i],["field_name",$["$[]"]("first_value")],["additional_space","| |_ "],["array",o]])),l.$latex_fields_to_print(l.$parameter_two(),new Map([["spacing",i],["field_name",$["$[]"]("second_value")],["additional_space"," |_ "],["array",o]])),o}),-3),n(m,"$to_mathml_math_zone",(function(e,t,r){var n,a,i,o,l=this,$=c;return(n=s(arguments,1)).length>1&&(a=n.shift()),null==a&&(a=!1),null==n.shift()&&c,$=_(l.$class(),"FUNCTION"),i=l.$gsub_spacing(e,a),o=[e+'"'+l.$dump_mathml(l)+'" '+$["$[]"]("name")+"\n"],l.$mathml_fields_to_print(l.$parameter_one(),new Map([["spacing",i],["field_name",$["$[]"]("first_value")],["additional_space","| |_ "],["array",o]])),l.$mathml_fields_to_print(l.$parameter_two(),new Map([["spacing",i],["field_name",$["$[]"]("second_value")],["additional_space"," |_ "],["array",o]])),o}),-3),n(m,"$to_omml_math_zone",(function(e,t,r,n){var a,$,u,p,m,d,f=this,h=c;return a=s(arguments,1),$=i(a),$=o($),a.length>1&&(u=a.shift()),null==u&&(u=!1),null==a.shift()&&c,p=l($,"display_style"),h=_(f.$class(),"FUNCTION"),m=f.$gsub_spacing(e,u),d=[e+'"'+f.$dump_omml(f,p)+'" '+h["$[]"]("name")+"\n"],f.$omml_fields_to_print(f.$parameter_one(),new Map([["spacing",m],["field_name",h["$[]"]("first_value")],["additional_space","| |_ "],["array",d],["display_style",p]])),f.$omml_fields_to_print(f.$parameter_two(),new Map([["spacing",m],["field_name",h["$[]"]("second_value")],["additional_space"," |_ "],["array",d],["display_style",p]])),d}),-4),m.$protected(),n(m,"$latex_wrapped",(function(e){return a(e.$validate_function_formula())?"{ \\left ( "+e.$to_latex()+" \\right ) }":"{"+e.$to_latex()+"}"})),n(m,"$wrapped",(function(e){return a(e)?"("+e.$to_asciimath()+")":""})),n(m,"$empty_tag",(function(e){var t=c;return(t=f("Utility").$ox_element("r",new Map([["namespace","m"]])))["$<<"](f("Utility").$ox_element("t",new Map([["namespace","m"]]))["$<<"]("&#8203;")),e["$<<"](t)})),n(m,"$underover",(function(e){var t,r=this,n=c,s=c;return a(r["$all_values_exist?"]())?(t=f("Symbol").$new(r.$class_name()),$(e)?f("PowerBase").$new(t,r.$parameter_one(),r.$parameter_two()).$to_omml_without_math_tag(e):(n=f("Overset").$new(t,r.$parameter_two()),a(r.$parameter_one())?(s=f("Underset").$new(n,r.$parameter_one()),r.$Array(s.$to_omml_without_math_tag(e))):r.$Array(n.$to_omml_without_math_tag(e)))):r.$r_element(r.$class_name(),new Map([["rpr_tag",!1]]))}))}(m[0],d("Core"),m)}(m[0],m)}(m[0],m)}(u[0],u)},Opal.modules["plurimath/math/function/base"]=function(e){var t=e.module,r=e.klass,n=e.const_set,a=e.truthy,s=e.def,i=e.top,o=[],l=e.nil,$=e.$$$;return e.add_stubs("freeze,parameter_one,to_asciimath,parameter_two,wrapped,include?,class_name,ox_element,<<,validate_mathml_fields,update_nodes,to_latex,is_a?,to_html,pr_element,omml_parameter"),i.$require("plurimath//math/function/base.rb/../binary_function"),function(i,o){var u=[t(i,"Plurimath")].concat(o);return function(i,o){var u=[t(i,"Math")].concat(o);return function(i,o){var u=[t(i,"Function")].concat(o),c=e.$r(u);return function(t,i,o){var u=r(t,i,"Base"),c=[u].concat(o),_=e.$r(c);return n(c[0],"FUNCTION",new Map([["name","subscript"],["first_value","base"],["second_value","script"]]).$freeze()),s(u,"$to_asciimath",(function(){var e=this,t=l,r=l;return a(e.$parameter_one())&&(t=e.$parameter_one().$to_asciimath()),a(e.$parameter_two())&&(r="_"+e.$wrapped(e.$parameter_two())),""+t+r})),s(u,"$to_mathml_without_math_tag",(function(){var e,t,r,n=this,s=l;return t=a($(_("Utility"),"MUNDER_CLASSES")["$include?"]((e=n.$parameter_one())===l||null==e?l:e.$class_name()))?"under":"sub",r=_("Utility").$ox_element("m"+t),(s=[])["$<<"](n.$validate_mathml_fields(n.$parameter_one())),s["$<<"](n.$validate_mathml_fields(n.$parameter_two())),_("Utility").$update_nodes(r,s)})),s(u,"$to_latex",(function(){var e=this,t=l,r=l;return a(e.$parameter_one())&&(t=e.$parameter_one().$to_latex()),a(e.$parameter_one()["$is_a?"](_("Formula")))&&(t="{"+t+"}"),a(e.$parameter_two())&&(r=e.$parameter_two().$to_latex()),t+"_{"+r+"}"})),s(u,"$to_html",(function(){var e=this,t=l,r=l;return a(e.$parameter_one())&&(t="<i>"+e.$parameter_one().$to_html()+"</i>"),a(e.$parameter_two())&&(r="<sub>"+e.$parameter_two().$to_html()+"</sub>"),""+t+r})),s(u,"$to_omml_without_math_tag",(function(e){var t,r=this,n=l;return t=_("Utility").$ox_element("sSub",new Map([["namespace","m"]])),(n=_("Utility").$ox_element("sSubPr",new Map([["namespace","m"]])))["$<<"](_("Utility").$pr_element("ctrl",!0,new Map([["namespace","m"]]))),_("Utility").$update_nodes(t,[n,r.$omml_parameter(r.$parameter_one(),e,new Map([["tag_name","e"]])),r.$omml_parameter(r.$parameter_two(),e,new Map([["tag_name","sub"]]))]),[t]}))}(u[0],c("BinaryFunction"),u)}(u[0],u)}(u[0],u)}(o[0],o)},Opal.modules["plurimath/math/function/binary_function"]=function(e){var t=e.module,r=e.klass,n=e.def,a=e.truthy,s=e.slice,i=e.extract_kwargs,o=e.ensure_kwargs,l=e.get_kwarg,$=e.not,u=[],c=e.nil,_=e.$$$;return e.add_stubs("attr_accessor,validate_left_right,class_name,wrapped,parameter_one,parameter_two,==,class,ox_element,<<,to_s,invert_unicode_symbols,to_mathml_without_math_tag,update_nodes,latex_wrapped,to_html,insert_t_tag,!,nil?,gsub_spacing,to_asciimath,[],ascii_fields_to_print,to_latex,latex_fields_to_print,dump_mathml,mathml_fields_to_print,dump_omml,omml_fields_to_print,protected,validate_function_formula,all_values_exist?,r_element,new,to_omml_without_math_tag,Array"),function(u,p){var m=[t(u,"Plurimath")].concat(p);return function(u,p){var m=[t(u,"Math")].concat(p);return function(u,p){var m=[t(u,"Function")].concat(p),d=e.$r(m);return function(t,u,p){var m=r(t,u,"BinaryFunction"),d=[m].concat(p),f=e.$r(d);return m.$attr_accessor("parameter_one","parameter_two"),n(m,"$initialize",(function(e,t){return null==e&&(e=c),null==t&&(t=c),this.parameter_one=e,this.parameter_two=t,f("Utility").$validate_left_right([e,t])}),-1),n(m,"$to_asciimath",(function(){var e=this;return""+e.$class_name()+e.$wrapped(e.$parameter_one())+e.$wrapped(e.$parameter_two())})),n(m,"$==",(function(e){var t,r,n=this;return a(t=a(r=e.$class()["$=="](n.$class()))?e.$parameter_one()["$=="](n.$parameter_one()):r)?e.$parameter_two()["$=="](n.$parameter_two()):t})),n(m,"$to_mathml_without_math_tag",(function(){var e,t,r,n,s=this,i=c,o=c;return r=f("Utility").$ox_element("mrow"),n=f("Utility").$ox_element("mo")["$<<"](s.$invert_unicode_symbols().$to_s()),a(s.$parameter_one())&&(i=(e=s.$parameter_one())===c||null==e?c:e.$to_mathml_without_math_tag()),a(s.$parameter_two())&&(o=(t=s.$parameter_two())===c||null==t?c:t.$to_mathml_without_math_tag()),f("Utility").$update_nodes(r,[i,n,o])})),n(m,"$to_latex",(function(){var e=this,t=c,r=c;return a(e.$parameter_one())&&(t=e.$latex_wrapped(e.$parameter_one())),a(e.$parameter_two())&&(r=e.$latex_wrapped(e.$parameter_two())),"\\"+e.$class_name()+t+r})),n(m,"$to_html",(function(){var e=this,t=c,r=c;return a(e.$parameter_one())&&(t="<i>"+e.$parameter_one().$to_html()+"</i>"),a(e.$parameter_two())&&(r="<i>"+e.$parameter_two().$to_html()+"</i>"),""+t+r})),n(m,"$to_omml_without_math_tag",(function(e){var t,r=this;return t=f("Utility").$ox_element("r",new Map([["namespace","m"]])),a(r.$parameter_one())&&f("Utility").$update_nodes(t,[r.$parameter_one().$insert_t_tag(e)]),a(r.$parameter_two())&&f("Utility").$update_nodes(t,[r.$parameter_two().$insert_t_tag(e)]),[t]})),n(m,"$any_value_exist?",(function(){var e;return(a(e=this.$parameter_one()["$nil?"]())?e:this.$parameter_two()["$nil?"]())["$!"]()})),n(m,"$all_values_exist?",(function(){var e;return(a(e=this.$parameter_one()["$nil?"]())?this.$parameter_two()["$nil?"]():e)["$!"]()})),n(m,"$to_asciimath_math_zone",(function(e,t,r){var n,a,i,o,l=this,$=c;return(n=s(arguments,1)).length>1&&(a=n.shift()),null==a&&(a=!1),null==n.shift()&&c,$=_(l.$class(),"FUNCTION"),i=l.$gsub_spacing(e,a),o=[e+'"'+l.$to_asciimath()+'" '+$["$[]"]("name")+"\n"],l.$ascii_fields_to_print(l.$parameter_one(),new Map([["spacing",i],["field_name",$["$[]"]("first_value")],["additional_space","| |_ "],["array",o]])),l.$ascii_fields_to_print(l.$parameter_two(),new Map([["spacing",i],["field_name",$["$[]"]("second_value")],["additional_space"," |_ "],["array",o]])),o}),-3),n(m,"$to_latex_math_zone",(function(e,t,r){var n,a,i,o,l=this,$=c;return(n=s(arguments,1)).length>1&&(a=n.shift()),null==a&&(a=!1),null==n.shift()&&c,$=_(l.$class(),"FUNCTION"),i=l.$gsub_spacing(e,a),o=[e+'"'+l.$to_latex()+'" '+$["$[]"]("name")+"\n"],l.$latex_fields_to_print(l.$parameter_one(),new Map([["spacing",i],["field_name",$["$[]"]("first_value")],["additional_space","| |_ "],["array",o]])),l.$latex_fields_to_print(l.$parameter_two(),new Map([["spacing",i],["field_name",$["$[]"]("second_value")],["additional_space"," |_ "],["array",o]])),o}),-3),n(m,"$to_mathml_math_zone",(function(e,t,r){var n,a,i,o,l=this,$=c;return(n=s(arguments,1)).length>1&&(a=n.shift()),null==a&&(a=!1),null==n.shift()&&c,$=_(l.$class(),"FUNCTION"),i=l.$gsub_spacing(e,a),o=[e+'"'+l.$dump_mathml(l)+'" '+$["$[]"]("name")+"\n"],l.$mathml_fields_to_print(l.$parameter_one(),new Map([["spacing",i],["field_name",$["$[]"]("first_value")],["additional_space","| |_ "],["array",o]])),l.$mathml_fields_to_print(l.$parameter_two(),new Map([["spacing",i],["field_name",$["$[]"]("second_value")],["additional_space"," |_ "],["array",o]])),o}),-3),n(m,"$to_omml_math_zone",(function(e,t,r,n){var a,$,u,p,m,d,f=this,h=c;return a=s(arguments,1),$=i(a),$=o($),a.length>1&&(u=a.shift()),null==u&&(u=!1),null==a.shift()&&c,p=l($,"display_style"),h=_(f.$class(),"FUNCTION"),m=f.$gsub_spacing(e,u),d=[e+'"'+f.$dump_omml(f,p)+'" '+h["$[]"]("name")+"\n"],f.$omml_fields_to_print(f.$parameter_one(),new Map([["spacing",m],["field_name",h["$[]"]("first_value")],["additional_space","| |_ "],["array",d],["display_style",p]])),f.$omml_fields_to_print(f.$parameter_two(),new Map([["spacing",m],["field_name",h["$[]"]("second_value")],["additional_space"," |_ "],["array",d],["display_style",p]])),d}),-4),m.$protected(),n(m,"$latex_wrapped",(function(e){return a(e.$validate_function_formula())?"{ \\left ( "+e.$to_latex()+" \\right ) }":"{"+e.$to_latex()+"}"})),n(m,"$wrapped",(function(e){return a(e)?"("+e.$to_asciimath()+")":""})),n(m,"$empty_tag",(function(e){var t=c;return(t=f("Utility").$ox_element("r",new Map([["namespace","m"]])))["$<<"](f("Utility").$ox_element("t",new Map([["namespace","m"]]))["$<<"]("&#8203;")),e["$<<"](t)})),n(m,"$underover",(function(e){var t,r=this,n=c,s=c;return a(r["$all_values_exist?"]())?(t=f("Symbol").$new(r.$class_name()),$(e)?f("PowerBase").$new(t,r.$parameter_one(),r.$parameter_two()).$to_omml_without_math_tag(e):(n=f("Overset").$new(t,r.$parameter_two()),a(r.$parameter_one())?(s=f("Underset").$new(n,r.$parameter_one()),r.$Array(s.$to_omml_without_math_tag(e))):r.$Array(n.$to_omml_without_math_tag(e)))):r.$r_element(r.$class_name(),new Map([["rpr_tag",!1]]))}))}(m[0],d("Core"),m)}(m[0],m)}(m[0],m)}(u[0],u)},Opal.modules["plurimath/math/function/cancel"]=function(e){var t=e.module,r=e.klass,n=e.def,a=e.top,s=[],i=e.nil;return e.add_stubs("ox_element,to_mathml_without_math_tag,parameter_one,update_nodes,omml_value"),a.$require("plurimath//math/function/cancel.rb/../unary_function"),function(a,s){var o=[t(a,"Plurimath")].concat(s);return function(a,s){var o=[t(a,"Math")].concat(s);return function(a,s){var o=[t(a,"Function")].concat(s),l=e.$r(o);return function(t,a,s){var o=r(t,a,"Cancel"),l=[o].concat(s),$=e.$r(l);return n(o,"$to_mathml_without_math_tag",(function(){var e,t,r=i;return t=$("Utility").$ox_element("menclose",new Map([["attributes",new Map([["notation","updiagonalstrike"]])]])),r=(e=this.$parameter_one())===i||null==e?i:e.$to_mathml_without_math_tag(),$("Utility").$update_nodes(t,[r])})),n(o,"$to_omml_without_math_tag",(function(e){return this.$omml_value(e)}))}(o[0],l("UnaryFunction"),o)}(o[0],o)}(o[0],o)}(s[0],s)},Opal.modules["plurimath/math/function/ceil"]=function(e){var t=e.module,r=e.klass,n=e.def,a=e.truthy,s=e.top,i=[],o=e.nil;return e.add_stubs("latex_value,<<,ox_element,insert,mathml_value,update_nodes,new,Array,parameter_one,to_omml_without_math_tag,to_html"),s.$require("plurimath//math/function/ceil.rb/../unary_function"),function(s,i){var l=[t(s,"Plurimath")].concat(i);return function(s,i){var l=[t(s,"Math")].concat(i);return function(s,i){var l=[t(s,"Function")].concat(i),$=e.$r(l);return function(t,s,i){var l=r(t,s,"Ceil"),$=[l].concat(i),u=e.$r($);return n(l,"$to_latex",(function(){return"{\\lceil "+this.$latex_value()+" \\rceil}"})),n(l,"$to_mathml_without_math_tag",(function(){var e,t,r,n=o;return t=u("Utility").$ox_element("mo")["$<<"]("&#x2308;"),n=(e=this.$mathml_value())===o||null==e?o:e.$insert(0,t),r=u("Utility").$ox_element("mo")["$<<"]("&#x2309;"),u("Utility").$update_nodes(u("Utility").$ox_element("mrow"),n["$<<"](r))})),n(l,"$to_omml_without_math_tag",(function(e){var t,r,n=this,a=o;return t=u("Symbol").$new("⌈"),r=u("Symbol").$new("⌉"),a=u("Fenced").$new(t,n.$Array(n.$parameter_one()),r),n.$Array(a.$to_omml_without_math_tag(e))})),n(l,"$to_html",(function(){var e=o;return a(this.$parameter_one())&&(e="<i>"+this.$parameter_one().$to_html()+"</i>"),"<i>&#x2308;</i>"+e+"<i>&#x2309;</i>"}))}(l[0],$("UnaryFunction"),l)}(l[0],l)}(l[0],l)}(i[0],i)},Opal.modules["plurimath/math/function/color"]=function(e){var t=e.module,r=e.klass,n=e.const_set,a=e.annotate_regexp,s=e.def,i=e.slice,o=e.extract_kwargs,l=e.ensure_kwargs,$=e.get_kwarg,u=e.top,c=[],_=e.nil,p=e.$$$;return e.add_stubs("freeze,gsub,to_asciimath,parameter_one,parameter_two,update_nodes,ox_element,to_mathml_without_math_tag,to_latex,class_name,Array,insert_t_tag,class,gsub_spacing,dump_omml,[],omml_fields_to_print"),u.$require("plurimath//math/function/color.rb/../binary_function"),function(u,c){var m=[t(u,"Plurimath")].concat(c);return function(u,c){var m=[t(u,"Math")].concat(c);return function(u,c){var m=[t(u,"Function")].concat(c),d=e.$r(m);return function(t,u,c){var m=r(t,u,"Color"),d=[m].concat(c),f=e.$r(d);return n(d[0],"FUNCTION",new Map([["name","color"],["first_value","mathcolor"],["second_value","text"]]).$freeze()),s(m,"$to_asciimath",(function(){var e,t,r;return"color"+("("+(((e=(t=this.$parameter_one())===_||null==t?_:t.$to_asciimath())===_||null==e?_:e.$gsub(a(/\s/u,null,""),""))+")"))+("("+(((r=this.$parameter_two())===_||null==r?_:r.$to_asciimath())+")"))})),s(m,"$to_mathml_without_math_tag",(function(){var e,t,r,n;return f("Utility").$update_nodes(f("Utility").$ox_element("mstyle",new Map([["attributes",new Map([["mathcolor",(r=this.$parameter_one(),t=r===_||null==r?_:r.$to_asciimath(),e=t===_||null==t?_:t.$gsub(a(/\s/u,null,""),""),e===_||null==e?_:e.$gsub(a(/"/u,null,""),""))]])]])),[(n=this.$parameter_two(),n===_||null==n?_:n.$to_mathml_without_math_tag())])})),s(m,"$to_latex",(function(){var e,t,r,n=this,s=_,i=_;return s=(e=(t=n.$parameter_one())===_||null==t?_:t.$to_asciimath())===_||null==e?_:e.$gsub(a(/\s/u,null,""),""),i=(r=n.$parameter_two())===_||null==r?_:r.$to_latex(),"{\\"+n.$class_name()+"{"+s+"} "+i+"}"})),s(m,"$to_omml_without_math_tag",(function(e){return this.$Array(this.$parameter_two().$insert_t_tag(e))})),s(m,"$to_omml_math_zone",(function(e,t,r,n){var a,s,u,c,m,d,f=this,h=_;return a=i(arguments,1),s=o(a),s=l(s),a.length>1&&(u=a.shift()),null==u&&(u=!1),null==a.shift()&&_,c=$(s,"display_style"),h=p(f.$class(),"FUNCTION"),m=f.$gsub_spacing(e,u),d=[e+'"'+f.$dump_omml(f,c)+'" '+h["$[]"]("name")+"\n"],f.$omml_fields_to_print(f.$parameter_two(),new Map([["spacing",m],["field_name","text"],["additional_space","| |_ "],["array",d],["display_style",c]])),d}),-4)}(m[0],d("BinaryFunction"),m)}(m[0],m)}(m[0],m)}(c[0],c)},Opal.modules["plurimath/math/function/cos"]=function(e){var t=e.module,r=e.klass,n=e.return_val,a=e.def,s=e.top,i=[];e.nil;return s.$require("plurimath//math/function/cos.rb/../unary_function"),function(s,i){var o=[t(s,"Plurimath")].concat(i);return function(s,i){var o=[t(s,"Math")].concat(i);return function(s,i){var o=[t(s,"Function")].concat(i),l=e.$r(o);return function(e,t){var s=r(e,t,"Cos");return a(s,"$validate_function_formula",n(!1))}(o[0],l("UnaryFunction"))}(o[0],o)}(o[0],o)}(i[0],i)},Opal.modules["plurimath/math/function/cosh"]=function(e){var t=e.module,r=e.klass,n=e.return_val,a=e.def,s=e.top,i=[];e.nil;return s.$require("plurimath//math/function/cosh.rb/../unary_function"),function(s,i){var o=[t(s,"Plurimath")].concat(i);return function(s,i){var o=[t(s,"Math")].concat(i);return function(s,i){var o=[t(s,"Function")].concat(i),l=e.$r(o);return function(e,t){var s=r(e,t,"Cosh");return a(s,"$validate_function_formula",n(!1))}(o[0],l("UnaryFunction"))}(o[0],o)}(o[0],o)}(i[0],i)},Opal.modules["plurimath/math/function/cot"]=function(e){var t=e.module,r=e.klass,n=e.return_val,a=e.def,s=e.top,i=[];e.nil;return s.$require("plurimath//math/function/cot.rb/../unary_function"),function(s,i){var o=[t(s,"Plurimath")].concat(i);return function(s,i){var o=[t(s,"Math")].concat(i);return function(s,i){var o=[t(s,"Function")].concat(i),l=e.$r(o);return function(e,t){var s=r(e,t,"Cot");return a(s,"$validate_function_formula",n(!1))}(o[0],l("UnaryFunction"))}(o[0],o)}(o[0],o)}(i[0],i)},Opal.modules["plurimath/math/function/coth"]=function(e){var t=e.module,r=e.klass,n=e.return_val,a=e.def,s=e.top,i=[];e.nil;return s.$require("plurimath//math/function/coth.rb/../unary_function"),function(s,i){var o=[t(s,"Plurimath")].concat(i);return function(s,i){var o=[t(s,"Math")].concat(i);return function(s,i){var o=[t(s,"Function")].concat(i),l=e.$r(o);return function(e,t){var s=r(e,t,"Coth");return a(s,"$validate_function_formula",n(!1))}(o[0],l("UnaryFunction"))}(o[0],o)}(o[0],o)}(i[0],i)},Opal.modules["plurimath/math/function/csc"]=function(e){var t=e.module,r=e.klass,n=e.return_val,a=e.def,s=e.top,i=[];e.nil;return s.$require("plurimath//math/function/csc.rb/../unary_function"),function(s,i){var o=[t(s,"Plurimath")].concat(i);return function(s,i){var o=[t(s,"Math")].concat(i);return function(s,i){var o=[t(s,"Function")].concat(i),l=e.$r(o);return function(e,t){var s=r(e,t,"Csc");return a(s,"$validate_function_formula",n(!1))}(o[0],l("UnaryFunction"))}(o[0],o)}(o[0],o)}(i[0],i)},Opal.modules["plurimath/math/function/csch"]=function(e){var t=e.module,r=e.klass,n=e.return_val,a=e.def,s=e.top,i=[];e.nil;return s.$require("plurimath//math/function/csch.rb/../unary_function"),function(s,i){var o=[t(s,"Plurimath")].concat(i);return function(s,i){var o=[t(s,"Math")].concat(i);return function(s,i){var o=[t(s,"Function")].concat(i),l=e.$r(o);return function(e,t){var s=r(e,t,"Csch");return a(s,"$validate_function_formula",n(!1))}(o[0],l("UnaryFunction"))}(o[0],o)}(o[0],o)}(i[0],i)},Opal.modules["plurimath/math/function/ddot"]=function(e){var t=e.module,r=e.klass,n=e.send2,a=e.find_super,s=e.def,i=e.truthy,o=e.top,l=[],$=e.nil;return e.add_stubs("attr_accessor,<<,ox_element,update_nodes,mathml_value,parameter_one,r_element,new,to_omml_without_math_tag,to_html"),o.$require("plurimath//math/function/ddot.rb/../unary_function"),function(o,l){var u=[t(o,"Plurimath")].concat(l);return function(o,l){var u=[t(o,"Math")].concat(l);return function(o,l){var u=[t(o,"Function")].concat(l),c=e.$r(u);return function(t,o,l){var u=r(t,o,"Ddot"),c=[u].concat(l),_=e.$r(c);return u.$attr_accessor("attributes"),s(u,"$initialize",(function e(t,r){var s=this;return e.$$p=null,null==t&&(t=$),null==r&&(r=new Map),n(s,a(s,"initialize",e,!1,!0),"initialize",[t],null),s.attributes=r}),-1),s(u,"$to_mathml_without_math_tag",(function(){var e;return e=_("Utility").$ox_element("mo")["$<<"](".."),_("Utility").$update_nodes(_("Utility").$ox_element("mover",new Map([["attributes",new Map([["accent","true"]])]])),this.$mathml_value()["$<<"](e))})),s(u,"$to_omml_without_math_tag",(function(e){var t,r=this;return i(r.$parameter_one())?(t=_("Symbol").$new(".."),_("Overset").$new(r.$parameter_one(),t).$to_omml_without_math_tag(!0)):r.$r_element("..",new Map([["rpr_tag",!1]]))})),s(u,"$to_html",(function(){var e=$;return i(this.$parameter_one())&&(e="<i>"+this.$parameter_one().$to_html()+"</i>"),e+"<i>..</i>"}))}(u[0],c("UnaryFunction"),u)}(u[0],u)}(u[0],u)}(l[0],l)},Opal.modules["plurimath/math/function/deg"]=function(e){var t=e.module,r=e.klass,n=e.return_val,a=e.def,s=e.top,i=[];e.nil;return e.add_stubs("r_element,omml_value"),s.$require("plurimath//math/function/deg.rb/../unary_function"),function(s,i){var o=[t(s,"Plurimath")].concat(i);return function(s,i){var o=[t(s,"Math")].concat(i);return function(s,i){var o=[t(s,"Function")].concat(i),l=e.$r(o);return function(e,t){var s=r(e,t,"Deg");return a(s,"$validate_function_formula",n(!1)),a(s,"$to_omml_without_math_tag",(function(e){return[this.$r_element("deg",new Map([["rpr_tag",!1]])),this.$omml_value(e)]}))}(o[0],l("UnaryFunction"))}(o[0],o)}(o[0],o)}(i[0],i)},Opal.modules["plurimath/math/function/det"]=function(e){var t=e.module,r=e.klass,n=e.return_val,a=e.def,s=e.top,i=[];e.nil;return e.add_stubs("r_element,omml_value"),s.$require("plurimath//math/function/det.rb/../unary_function"),function(s,i){var o=[t(s,"Plurimath")].concat(i);return function(s,i){var o=[t(s,"Math")].concat(i);return function(s,i){var o=[t(s,"Function")].concat(i),l=e.$r(o);return function(e,t){var s=r(e,t,"Det");return a(s,"$validate_function_formula",n(!1)),a(s,"$to_omml_without_math_tag",(function(e){return[this.$r_element("det",new Map([["rpr_tag",!1]])),this.$omml_value(e)]}))}(o[0],l("UnaryFunction"))}(o[0],o)}(o[0],o)}(i[0],i)},Opal.modules["plurimath/math/function/dim"]=function(e){var t=e.module,r=e.klass,n=e.return_val,a=e.def,s=e.top,i=[];e.nil;return e.add_stubs("r_element,omml_value"),s.$require("plurimath//math/function/dim.rb/../unary_function"),function(s,i){var o=[t(s,"Plurimath")].concat(i);return function(s,i){var o=[t(s,"Math")].concat(i);return function(s,i){var o=[t(s,"Function")].concat(i),l=e.$r(o);return function(e,t){var s=r(e,t,"Dim");return a(s,"$validate_function_formula",n(!1)),a(s,"$to_omml_without_math_tag",(function(e){return[this.$r_element("dim",new Map([["rpr_tag",!1]])),this.$omml_value(e)]}))}(o[0],l("UnaryFunction"))}(o[0],o)}(o[0],o)}(i[0],i)},Opal.modules["plurimath/math/function/dot"]=function(e){var t=e.module,r=e.klass,n=e.send2,a=e.find_super,s=e.def,i=e.truthy,o=e.top,l=[],$=e.nil;return e.add_stubs("attr_accessor,<<,ox_element,parameter_one,to_mathml_without_math_tag,[],attributes,merge!,update_nodes,r_element,acc_tag,new,to_omml_without_math_tag,protected,omml_parameter"),o.$require("plurimath//math/function/dot.rb/../unary_function"),function(o,l){var u=[t(o,"Plurimath")].concat(l);return function(o,l){var u=[t(o,"Math")].concat(l);return function(o,l){var u=[t(o,"Function")].concat(l),c=e.$r(u);return function(t,o,l){var u=r(t,o,"Dot"),c=[u].concat(l),_=e.$r(c);return u.$attr_accessor("attributes"),s(u,"$initialize",(function e(t,r){var s=this;return e.$$p=null,null==t&&(t=$),null==r&&(r=new Map),n(s,a(s,"initialize",e,!1,!0),"initialize",[t],null),s.attributes=r}),-1),s(u,"$to_mathml_without_math_tag",(function(){var e,t=this,r=$,n=$,a=$;return r=_("Utility").$ox_element("mo")["$<<"]("."),i(t.$parameter_one())?(n=(e=t.$parameter_one())===$||null==e?$:e.$to_mathml_without_math_tag(),r=_("Utility").$ox_element("mo")["$<<"]("."),a=_("Utility").$ox_element("mover"),i(t.$attributes())&&i(t.$attributes()["$[]"]("accent"))&&a.$attributes()["$merge!"](new Map([["accent",t.$attributes()["$[]"]("accent")]])),_("Utility").$update_nodes(a,[n,r])):r})),s(u,"$to_omml_without_math_tag",(function(e){var t=this,r=$;return i(t.$parameter_one())?i(t.$attributes())&&i(t.$attributes()["$[]"]("accent"))?t.$acc_tag(e):(r=_("Symbol").$new("."),_("Overset").$new(t.$parameter_one(),r).$to_omml_without_math_tag(!0)):t.$r_element(".",new Map([["rpr_tag",!1]]))})),u.$protected(),s(u,"$acc_tag",(function(e){var t,r=$;return t=_("Utility").$ox_element("acc",new Map([["namespace","m"]])),(r=_("Utility").$ox_element("accPr",new Map([["namespace","m"]])))["$<<"](_("Utility").$ox_element("chr",new Map([["namespace","m"],["attributes",new Map([["m:val","."]])]]))),_("Utility").$update_nodes(t,[r,this.$omml_parameter(this.$parameter_one(),e,new Map([["tag_name","e"]]))]),[t]}))}(u[0],c("UnaryFunction"),u)}(u[0],u)}(u[0],u)}(l[0],l)},Opal.modules["plurimath/math/function/exp"]=function(e){var t=e.module,r=e.klass,n=e.return_val,a=e.def,s=e.top,i=[];e.nil;return e.add_stubs("r_element,omml_value"),s.$require("plurimath//math/function/exp.rb/../unary_function"),function(s,i){var o=[t(s,"Plurimath")].concat(i);return function(s,i){var o=[t(s,"Math")].concat(i);return function(s,i){var o=[t(s,"Function")].concat(i),l=e.$r(o);return function(e,t){var s=r(e,t,"Exp");return a(s,"$validate_function_formula",n(!1)),a(s,"$to_omml_without_math_tag",(function(e){return[this.$r_element("exp",new Map([["rpr_tag",!1]])),this.$omml_value(e)]}))}(o[0],l("UnaryFunction"))}(o[0],o)}(o[0],o)}(i[0],i)},Opal.modules["plurimath/math/function/ternary_function"]=function(e){var t=e.module,r=e.klass,n=e.def,a=e.truthy,s=e.slice,i=e.extract_kwargs,o=e.ensure_kwargs,l=e.get_kwarg,$=e.hash_get,u=e.eqeq,c=e.eqeqeq,_=[],p=e.nil,m=e.$$$;return e.add_stubs("attr_accessor,validate_left_right,parameter_one,first_field_wrap,parameter_two,wrapped,parameter_three,==,class,to_mathml_without_math_tag,<<,ox_element,class_name,update_nodes,to_latex,to_html,!,nil?,gsub_spacing,to_asciimath,[],ascii_fields_to_print,latex_fields_to_print,dump_mathml,mathml_fields_to_print,dump_omml,omml_fields_to_print,protected,validate_function_formula,ascii_wrap,latex_wrap,include?,latex,===,name,Array,new,to_omml_without_math_tag"),function(_,d){var f=[t(_,"Plurimath")].concat(d);return function(_,d){var f=[t(_,"Math")].concat(d);return function(_,d){var f=[t(_,"Function")].concat(d),h=e.$r(f);return function(t,_,d){var f=r(t,_,"TernaryFunction"),h=[f].concat(d),g=e.$r(h);return f.$attr_accessor("parameter_one","parameter_two","parameter_three"),n(f,"$initialize",(function(e,t,r){var n=this;return null==e&&(e=p),null==t&&(t=p),null==r&&(r=p),n.parameter_one=e,n.parameter_two=t,n.parameter_three=r,g("Utility").$validate_left_right([e,t,r])}),-1),n(f,"$to_asciimath",(function(){var e=this,t=p,r=p,n=p;return a(e.$parameter_one())&&(t=e.$first_field_wrap(e.$parameter_one())),a(e.$parameter_two())&&(r="_"+e.$wrapped(e.$parameter_two())),a(e.$parameter_three())&&(n="^"+e.$wrapped(e.$parameter_three())),""+t+r+n})),n(f,"$==",(function(e){var t,r,n,s=this;return a(t=a(r=a(n=s.$class()["$=="](e.$class()))?e.$parameter_one()["$=="](s.$parameter_one()):n)?e.$parameter_two()["$=="](s.$parameter_two()):r)?e.$parameter_three()["$=="](s.$parameter_three()):t})),n(f,"$to_mathml_without_math_tag",(function(){var e,t,r,n,a=this,s=p;return(s=[(e=a.$parameter_one(),e===p||null==e?p:e.$to_mathml_without_math_tag())])["$<<"]((t=a.$parameter_two())===p||null==t?p:t.$to_mathml_without_math_tag()),s["$<<"]((r=a.$parameter_three())===p||null==r?p:r.$to_mathml_without_math_tag()),n=g("Utility").$ox_element("m"+a.$class_name()),g("Utility").$update_nodes(n,s)})),n(f,"$to_latex",(function(){var e,t,r,n=this;return""+((e=n.$parameter_one())===p||null==e?p:e.$to_latex())+((t=n.$parameter_two())===p||null==t?p:t.$to_latex())+((r=n.$parameter_three())===p||null==r?p:r.$to_latex())})),n(f,"$to_html",(function(){var e=this,t=p,r=p,n=p;return a(e.$parameter_one())&&(t="<i>"+e.$parameter_one().$to_html()+"</i>"),a(e.$parameter_two())&&(r="<i>"+e.$parameter_two().$to_html()+"</i>"),a(e.$parameter_three())&&(n="<i>"+e.$parameter_three().$to_html()+"</i>"),""+t+r+n})),n(f,"$any_value_exist?",(function(){var e,t,r=this;return(a(e=a(t=r.$parameter_one()["$nil?"]())?t:r.$parameter_two()["$nil?"]())?e:r.$parameter_three()["$nil?"]())["$!"]()})),n(f,"$all_values_exist?",(function(){var e,t,r=this;return(a(e=a(t=r.$parameter_one()["$nil?"]())?r.$parameter_two()["$nil?"]():t)?r.$parameter_three()["$nil?"]():e)["$!"]()})),n(f,"$to_asciimath_math_zone",(function(e,t,r){var n,a,i,o,l=this,$=p;return(n=s(arguments,1)).length>1&&(a=n.shift()),null==a&&(a=!1),null==n.shift()&&p,$=m(l.$class(),"FUNCTION"),i=l.$gsub_spacing(e,a),o=[e+'"'+l.$to_asciimath()+'" '+$["$[]"]("name")+"\n"],l.$ascii_fields_to_print(l.$parameter_one(),new Map([["spacing",i],["field_name",$["$[]"]("first_value")],["additional_space","| |_ "],["array",o]])),l.$ascii_fields_to_print(l.$parameter_two(),new Map([["spacing",i],["field_name",$["$[]"]("second_value")],["additional_space"," |_ "],["array",o]])),l.$ascii_fields_to_print(l.$parameter_three(),new Map([["spacing",i],["field_name",$["$[]"]("third_value")],["additional_space"," |_ "],["array",o]])),o}),-3),n(f,"$to_latex_math_zone",(function(e,t,r){var n,a,i,o,l=this,$=p;return(n=s(arguments,1)).length>1&&(a=n.shift()),null==a&&(a=!1),null==n.shift()&&p,$=m(l.$class(),"FUNCTION"),i=l.$gsub_spacing(e,a),o=[e+'"'+l.$to_latex()+'" '+$["$[]"]("name")+"\n"],l.$latex_fields_to_print(l.$parameter_one(),new Map([["spacing",i],["field_name",$["$[]"]("first_value")],["additional_space","| |_ "],["array",o]])),l.$latex_fields_to_print(l.$parameter_two(),new Map([["spacing",i],["field_name",$["$[]"]("second_value")],["additional_space"," |_ "],["array",o]])),l.$latex_fields_to_print(l.$parameter_three(),new Map([["spacing",i],["field_name",$["$[]"]("third_value")],["additional_space"," |_ "],["array",o]])),o}),-3),n(f,"$to_mathml_math_zone",(function(e,t,r){var n,a,i,o,l=this,$=p;return(n=s(arguments,1)).length>1&&(a=n.shift()),null==a&&(a=!1),null==n.shift()&&p,$=m(l.$class(),"FUNCTION"),i=l.$gsub_spacing(e,a),o=[e+'"'+l.$dump_mathml(l)+'" '+$["$[]"]("name")+"\n"],l.$mathml_fields_to_print(l.$parameter_one(),new Map([["spacing",i],["field_name",$["$[]"]("first_value")],["additional_space","| |_ "],["array",o]])),l.$mathml_fields_to_print(l.$parameter_two(),new Map([["spacing",i],["field_name",$["$[]"]("second_value")],["additional_space"," |_ "],["array",o]])),l.$mathml_fields_to_print(l.$parameter_three(),new Map([["spacing",i],["field_name",$["$[]"]("third_value")],["additional_space"," |_ "],["array",o]])),o}),-3),n(f,"$to_omml_math_zone",(function(e,t,r,n){var a,$,u,c,_,d,f=this,h=p;return a=s(arguments,1),$=i(a),$=o($),a.length>1&&(u=a.shift()),null==u&&(u=!1),null==a.shift()&&p,c=l($,"display_style"),h=m(f.$class(),"FUNCTION"),_=f.$gsub_spacing(e,u),d=[e+'"'+f.$dump_omml(f,c)+'" '+h["$[]"]("name")+"\n"],f.$omml_fields_to_print(f.$parameter_one(),new Map([["spacing",_],["field_name",h["$[]"]("first_value")],["additional_space","| |_ "],["array",d],["display_style",c]])),f.$omml_fields_to_print(f.$parameter_two(),new Map([["spacing",_],["field_name",h["$[]"]("second_value")],["additional_space"," |_ "],["array",d],["display_style",c]])),f.$omml_fields_to_print(f.$parameter_three(),new Map([["spacing",_],["field_name",h["$[]"]("third_value")],["additional_space"," |_ "],["array",d],["display_style",c]])),d}),-4),n(f,"$any_value_exist?",(function(){var e,t,r=this;return(a(e=a(t=r.$parameter_one()["$nil?"]())?t:r.$parameter_two()["$nil?"]())?e:r.$parameter_three()["$nil?"]())["$!"]()})),f.$protected(),n(f,"$latex_wrapped",(function(e){return a(e.$validate_function_formula())?"{ \\left ( "+e.$to_latex()+" \\right ) }":"{"+e.$to_latex()+"}"})),n(f,"$wrapped",(function(e,t){var r;return t=o(t),null==(r=$(t,"type"))&&(r="ascii"),a(e)?u(r,"ascii")?"("+e.$to_asciimath()+")":"{"+e.$to_latex()+"}":""}),-2),n(f,"$first_field_wrap",(function(e,t){var r;return t=o(t),null==(r=$(t,"type"))&&(r="ascii"),a(e)?u(r,"ascii")?this.$ascii_wrap(e):this.$latex_wrap(e):""}),-2),n(f,"$ascii_wrap",(function(e){var t,r;return t=e.$to_asciimath(),a(["obrace","ubrace"]["$include?"](e.$class_name()))?this.$latex():c(a(r=g("Formula"))?r:e.$class().$name()["$include?"]("Function"),e)?"("+t+")":t})),n(f,"$latex_wrap",(function(e){var t,r;return t=e.$to_latex(),a(["obrace","ubrace"]["$include?"](e.$class_name()))?t:c(a(r=g("Formula"))?r:e.$class().$name()["$include?"]("Function"),e)?"{"+t+"}":t})),n(f,"$narypr",(function(e,t){var r,n,s,i,l,u,c,_,p,m;return t=o(t),null==(r=$(t,"function_type"))&&(r="undOvr"),n=new Map([["m:val",e]]),s=new Map([["m:val",r]]),i=new Map([["m:val",a(this.$parameter_one())?"0":"1"]]),l=new Map([["m:val",a(this.$parameter_two())?"0":"1"]]),u=g("Utility").$ox_element("chr",new Map([["attributes",n],["namespace","m"]])),c=g("Utility").$ox_element("limLoc",new Map([["attributes",s],["namespace","m"]])),_=g("Utility").$ox_element("subHide",new Map([["attributes",i],["namespace","m"]])),p=g("Utility").$ox_element("supHide",new Map([["attributes",l],["namespace","m"]])),m=g("Utility").$ox_element("naryPr",new Map([["namespace","m"]])),g("Utility").$update_nodes(m,[u,c,_,p])}),-2),n(f,"$validate_mathml_tag",(function(e){return a(e)?this.$Array(e.$to_mathml_without_math_tag()):this.$Array(g("Utility").$ox_element("mrow"))})),n(f,"$underover",(function(e){var t,r=this,n=p;return n=g("Overset").$new(r.$parameter_one(),r.$parameter_three()),a(r.$parameter_two())?(t=g("Underset").$new(n,r.$parameter_two()))===p||null==t?p:t.$to_omml_without_math_tag(e):n.$to_omml_without_math_tag(e)}))}(f[0],h("Core"),f)}(f[0],f)}(f[0],f)}(_[0],_)},Opal.modules["plurimath/math/function/fenced"]=function(e){var t=e.module,r=e.klass,n=e.truthy,a=e.send,s=e.def,i=e.slice,o=e.extract_kwargs,l=e.ensure_kwargs,$=e.get_kwarg,u=e.annotate_regexp,c=e.top,_=[],p=e.nil,m=e.$$$;return e.add_stubs("parameter_one,to_asciimath,parameter_three,join,map,parameter_two,to_proc,<<,ox_element,mathml_paren,update_nodes,insert,value,latex_paren,first_value,third_value,pr_element,omml_parameter,new,Array,with_index,filtered_values,==,length,to_asciimath_math_zone,to_latex_math_zone,to_mathml_math_zone,to_omml_math_zone,!,protected,empty?,nil?,include?,gsub,match?,to_s,[],invert"),c.$require("plurimath//math/function/fenced.rb/../ternary_function"),function(c,_){var d=[t(c,"Plurimath")].concat(_);return function(c,_){var d=[t(c,"Math")].concat(_);return function(c,_){var d=[t(c,"Function")].concat(_),f=e.$r(d);return function(t,c,_){var d=r(t,c,"Fenced"),f=[d].concat(_),h=e.$r(f);return s(d,"$to_asciimath",(function(){var e,t,r,s,i=this;return r=n(i.$parameter_one())?i.$parameter_one().$to_asciimath():"(",s=n(i.$parameter_three())?i.$parameter_three().$to_asciimath():")",""+r+((e=(t=i.$parameter_two())===p||null==t?p:a(t,"map",[],"to_asciimath".$to_proc()))===p||null==e?p:e.$join(" "))+s})),s(d,"$to_mathml_without_math_tag",(function(){var e,t,r,s=this,i=p,o=p;return t=h("Utility").$ox_element("mo")["$<<"](n(i=s.$mathml_paren(s.$parameter_one()))?i:""),o=n(i=(e=s.$parameter_two())===p||null==e?p:a(e,"map",[],"to_mathml_without_math_tag".$to_proc()))?i:[],r=h("Utility").$ox_element("mo")["$<<"](n(i=s.$mathml_paren(s.$parameter_three()))?i:""),h("Utility").$update_nodes(h("Utility").$ox_element("mrow"),o.$insert(0,t)["$<<"](r))})),s(d,"$to_html",(function(){var e=this,t=p,r=p,s=p;return n(e.$parameter_one())&&(t="<i>"+e.$parameter_one().$value()+"</i>"),n(e.$parameter_two())&&(r=a(e.$parameter_two(),"map",[],"to_html".$to_proc()).$join()),n(e.$parameter_three())&&(s="<i>"+e.$parameter_three().$value()+"</i>"),""+t+r+s})),s(d,"$to_latex",(function(){var e,t,r,n,s=this,i=p;return i=(e=(t=s.$parameter_two())===p||null==t?p:a(t,"map",[],"to_latex".$to_proc()))===p||null==e?p:e.$join(" "),s.$latex_paren((r=s.$parameter_one())===p||null==r?p:r.$value())+" "+i+" "+s.$latex_paren((n=s.$parameter_three())===p||null==n?p:n.$value())})),s(d,"$to_omml_without_math_tag",(function(e){var t,r=this,n=p;return t=h("Utility").$ox_element("d",new Map([["namespace","m"]])),n=h("Utility").$ox_element("dPr",new Map([["namespace","m"]])),r.$first_value(n),r.$third_value(n),n["$<<"](h("Utility").$pr_element("ctrl",!0,new Map([["namespace","m"]]))),h("Utility").$update_nodes(t,[n,r.$omml_parameter(h("Formula").$new(r.$Array(r.$parameter_two())),e,new Map([["tag_name","e"]]))]),[t]})),s(d,"$to_asciimath_math_zone",(function(e,t,r){var n=this;return null==t&&(t=!1),null==r&&(r=!0),a(n.$filtered_values(n.$parameter_two()).$map(),"with_index",[1],(function n(a,s){var i=null==n.$$s?this:n.$$s;return null==i.values&&(i.values=p),null==a&&(a=p),null==s&&(s=p),t=s["$=="](i.values.$length()),a.$to_asciimath_math_zone(e,t,r)}),{$$s:n})}),-2),s(d,"$to_latex_math_zone",(function(e,t,r){var n=this;return null==t&&(t=!1),null==r&&(r=!0),a(n.$filtered_values(n.$parameter_two()).$map(),"with_index",[1],(function n(a,s){var i=null==n.$$s?this:n.$$s;return null==i.values&&(i.values=p),null==a&&(a=p),null==s&&(s=p),t=s["$=="](i.values.$length()),a.$to_latex_math_zone(e,t,r)}),{$$s:n})}),-2),s(d,"$to_mathml_math_zone",(function(e,t,r){var n=this;return null==t&&(t=!1),null==r&&(r=!0),a(n.$filtered_values(n.$parameter_two()).$map(),"with_index",[1],(function n(a,s){var i=null==n.$$s?this:n.$$s;return null==i.values&&(i.values=p),null==a&&(a=p),null==s&&(s=p),t=s["$=="](i.values.$length()),a.$to_mathml_math_zone(e,t,r)}),{$$s:n})}),-2),s(d,"$to_omml_math_zone",(function(e,t,r,n){var s,u,c,_,m;return s=i(arguments,1),u=o(s),u=l(u),s.length>0&&(c=s.shift()),null==c&&(c=!1),s.length>0&&(_=s.shift()),null==_&&(_=!0),m=$(u,"display_style"),a(this.$filtered_values(this.$parameter_two()).$map(),"with_index",[1],(function(t,r){return null==t&&(t=p),null==r&&(r=p),t.$to_omml_math_zone(e,c,_["$!"](),new Map([["display_style",m]]))}))}),-3),d.$protected(),s(d,"$first_value",(function(e){var t,r,a=p;return a=(t=this.$parameter_one())===p||null==t?p:t.$value(),n(a["$nil?"]())||n(a["$empty?"]())?e:(r=new Map([["m:val",a]]),e["$<<"](h("Utility").$ox_element("begChr",new Map([["namespace","m"],["attributes",r]]))))})),s(d,"$third_value",(function(e){var t,r,a=p;return a=(t=this.$parameter_three())===p||null==t?p:t.$value(),n(a["$nil?"]())||n(a["$empty?"]())?e:(r=new Map([["m:val",a]]),e["$<<"](h("Utility").$ox_element("endChr",new Map([["namespace","m"],["attributes",r]]))))})),s(d,"$latex_paren",(function(e){var t,r,a;return n(e["$nil?"]())||n(e["$empty?"]())?"":n(e["$include?"](":"))&&n(["{:",":}"]["$include?"](e))?e.$gsub(":",""):(e=n(["{","}"]["$include?"](e))?"\\"+e:e,n((t=(r=e)===p||null==r?p:r.$to_s())===p||null==t?p:t["$match?"](u(/&#x.{0,4};/u,null,"")))&&(e="\\"+m(m(h("Latex"),"Constants"),"UNICODE_SYMBOLS").$invert()["$[]"](e)),(a=e)===p||null==a?p:a.$to_s())})),s(d,"$mathml_paren",(function(e){var t,r,a;return n((t=(r=e)===p||null==r?p:r.$value())===p||null==t?p:t["$include?"](":"))?"":(a=e)===p||null==a?p:a.$value()}))}(d[0],f("TernaryFunction"),d)}(d[0],d)}(d[0],d)}(_[0],_)},Opal.modules["plurimath/math/function/floor"]=function(e){var t=e.module,r=e.klass,n=e.def,a=e.top,s=[],i=e.nil;return e.add_stubs("to_latex,parameter_one,to_mathml_without_math_tag,update_nodes,ox_element,<<,r_element,omml_value"),a.$require("plurimath//math/function/floor.rb/../unary_function"),function(a,s){var o=[t(a,"Plurimath")].concat(s);return function(a,s){var o=[t(a,"Math")].concat(s);return function(a,s){var o=[t(a,"Function")].concat(s),l=e.$r(o);return function(t,a,s){var o=r(t,a,"Floor"),l=[o].concat(s),$=e.$r(l);return n(o,"$to_latex",(function(){return"{\\lfloor "+this.$parameter_one().$to_latex()+" \\rfloor}"})),n(o,"$to_mathml_without_math_tag",(function(){var e,t=i;return t=(e=this.$parameter_one())===i||null==e?i:e.$to_mathml_without_math_tag(),$("Utility").$update_nodes($("Utility").$ox_element("mrow"),[$("Utility").$ox_element("mo")["$<<"]("&#x230a;"),t,$("Utility").$ox_element("mo")["$<<"]("&#x230b;")])})),n(o,"$to_omml_without_math_tag",(function(e){var t=this;return[t.$r_element("⌊"),t.$omml_value(e),t.$r_element("⌋")]}))}(o[0],l("UnaryFunction"),o)}(o[0],o)}(o[0],o)}(s[0],s)},Opal.modules["plurimath/math/function/font_style"]=function(e){var t=e.module,r=e.klass,n=e.def,a=e.return_val,s=e.truthy,i=e.ensure_kwargs,o=e.hash_get,l=e.slice,$=e.extract_kwargs,u=e.get_kwarg,c=e.send,_=e.top,p=[],m=e.nil,d=e.$$$;return e.add_stubs("to_asciimath,parameter_one,to_mathml_without_math_tag,update_nodes,ox_element,parameter_two,font_styles,to_html,to_latex,is_a?,class_name,<<,Array,font_style_t_tag,gsub_spacing,ascii_fields_to_print,latex_fields_to_print,dump_mathml,omml_and_mathml_font_family,mathml_fields_to_print,dump_omml,omml_fields_to_print,map,keys,select,==,class,to_proc,find,values,include?"),_.$require("plurimath//math/function/font_style.rb/../binary_function"),function(_,p){var f=[t(_,"Plurimath")].concat(p);return function(_,p){var f=[t(_,"Math")].concat(p);return function(_,p){var f=[t(_,"Function")].concat(p),h=e.$r(f);return function(t,_,p){var f=r(t,_,"FontStyle"),h=[f].concat(p),g=e.$r(h);return n(f,"$to_asciimath",(function(){var e;return(e=this.$parameter_one())===m||null==e?m:e.$to_asciimath()})),n(f,"$to_mathml_without_math_tag",(function(){var e,t=m;return t=(e=this.$parameter_one())===m||null==e?m:e.$to_mathml_without_math_tag(),g("Utility").$update_nodes(g("Utility").$ox_element("mstyle",new Map([["attributes",new Map([["mathvariant",this.$parameter_two()]])]])),[t])})),n(f,"$to_omml_without_math_tag",(function(e){return this.$font_styles(e)})),n(f,"$to_html",(function(){var e;return(e=this.$parameter_one())===m||null==e?m:e.$to_html()})),n(f,"$to_latex",(function(){var e;return(e=this.$parameter_one())===m||null==e?m:e.$to_latex()})),n(f,"$validate_function_formula",a(!0)),n(f,"$extract_class_from_text",(function(){var e=this;return s(e.$parameter_one()["$is_a?"](g("Text")))&&e.$parameter_one().$parameter_one(),e.$parameter_one().$class_name()})),n(f,"$extractable?",(function(){return this.$parameter_one()["$is_a?"](g("Text"))})),n(f,"$font_styles",(function(e,t){var r,n,a,l=m,$=m;return t=i(t),null==(r=o(t,"sty"))&&(r="p"),null==(n=o(t,"scr"))&&(n=m),l=g("Utility").$ox_element("r",new Map([["namespace","m"]])),a=g("Utility").$ox_element("rPr",new Map([["namespace","m"]])),$=[],s(n)&&$["$<<"](g("Utility").$ox_element("scr",new Map([["namespace","m"],["attributes",new Map([["m:val",n]])]]))),s(r)&&$["$<<"](g("Utility").$ox_element("sty",new Map([["namespace","m"],["attributes",new Map([["m:val",r]])]]))),l["$<<"](g("Utility").$update_nodes(a,$)),g("Utility").$update_nodes(l,this.$Array(this.$parameter_one().$font_style_t_tag(e))),[l]}),-2),n(f,"$to_asciimath_math_zone",(function(e,t,r){var n,a,s,i,o=this;return(n=l(arguments,1)).length>1&&(a=n.shift()),null==a&&(a=!1),null==n.shift()&&m,s=o.$gsub_spacing(e,a),i=[e+'"'+o.$to_asciimath()+'" function apply\n',s+'|_ "'+o.$parameter_two()+'" font family\n'],o.$ascii_fields_to_print(o.$parameter_one(),new Map([["spacing",s],["field_name","argument"],["additional_space","| |_ "],["array",i]])),i}),-3),n(f,"$to_latex_math_zone",(function(e,t,r){var n,a,s,i,o=this;return(n=l(arguments,1)).length>1&&(a=n.shift()),null==a&&(a=!1),null==n.shift()&&m,s=o.$gsub_spacing(e,a),i=[e+'"'+o.$to_latex()+'" function apply\n',s+'|_ "'+o.$parameter_two()+'" font family\n'],o.$latex_fields_to_print(o.$parameter_one(),new Map([["spacing",s],["field_name","argument"],["additional_space","| |_ "],["array",i]])),i}),-3),n(f,"$to_mathml_math_zone",(function(e,t,r){var n,a,s,i,o=this;return(n=l(arguments,1)).length>1&&(a=n.shift()),null==a&&(a=!1),null==n.shift()&&m,s=o.$gsub_spacing(e,a),i=[e+'"'+o.$dump_mathml(o)+'" function apply\n',s+'|_ "'+o.$omml_and_mathml_font_family()+'" font family\n'],o.$mathml_fields_to_print(o.$parameter_one(),new Map([["spacing",s],["field_name","argument"],["additional_space","| |_ "],["array",i]])),i}),-3),n(f,"$to_omml_math_zone",(function(e,t,r,n){var a,s,o,c,_,p,d=this;return a=l(arguments,1),s=$(a),s=i(s),a.length>1&&(o=a.shift()),null==o&&(o=!1),null==a.shift()&&m,c=u(s,"display_style"),_=d.$gsub_spacing(e,o),p=[e+'"'+d.$dump_omml(d,c)+'" function apply\n',_+'|_ "'+d.$omml_and_mathml_font_family()+'" font family\n'],d.$omml_fields_to_print(d.$parameter_one(),new Map([["spacing",_],["field_name","argument"],["additional_space","| |_ "],["array",p],["display_style",c]])),p}),-4),n(f,"$omml_and_mathml_font_family",(function(){var e=m;return e=c(c(d(g("Utility"),"FONT_STYLES"),"select",[],(function e(t,r){var n=null==e.$$s?this:e.$$s;return null==t&&(t=m),null==r&&(r=m),r["$=="](n.$class())}),{$$s:this}).$keys(),"map",[],"to_s".$to_proc()),c(d(d(g("Omml"),"Parser"),"SUPPORTED_FONTS").$values(),"find",[],(function(t){return null==t&&(t=m),e["$include?"](t)}))}))}(f[0],h("BinaryFunction"),f)}(f[0],f)}(f[0],f)}(p[0],p)},Opal.modules["plurimath/math/function/frac"]=function(e){var t=e.module,r=e.klass,n=e.const_set,a=e.truthy,s=e.def,i=e.top,o=[],l=e.nil;return e.add_stubs("freeze,parameter_one,to_asciimath,parameter_two,ox_element,to_mathml_without_math_tag,update_nodes,flatten,to_latex,<<,pr_element,omml_parameter"),i.$require("plurimath//math/function/frac.rb/../binary_function"),function(i,o){var $=[t(i,"Plurimath")].concat(o);return function(i,o){var $=[t(i,"Math")].concat(o);return function(i,o){var $=[t(i,"Function")].concat(o),u=e.$r($);return function(t,i,o){var $=r(t,i,"Frac"),u=[$].concat(o),c=e.$r(u);return n(u[0],"FUNCTION",new Map([["name","fraction"],["first_value","numerator"],["second_value","denominator"]]).$freeze()),s($,"$to_asciimath",(function(){var e,t,r=this,n=l,s=l;return a(r.$parameter_one())&&(n="("+(((e=r.$parameter_one())===l||null==e?l:e.$to_asciimath())+")")),a(r.$parameter_two())&&(s="("+(((t=r.$parameter_two())===l||null==t?l:t.$to_asciimath())+")")),"frac"+n+s})),s($,"$to_mathml_without_math_tag",(function(){var e,t,r,n=l,a=l;return r=c("Utility").$ox_element("mfrac"),n=(e=this.$parameter_one())===l||null==e?l:e.$to_mathml_without_math_tag(),a=(t=this.$parameter_two())===l||null==t?l:t.$to_mathml_without_math_tag(),c("Utility").$update_nodes(r,[n,a].$flatten())})),s($,"$to_latex",(function(){var e,t;return"\\frac{"+((e=this.$parameter_one())===l||null==e?l:e.$to_latex())+"}{"+((t=this.$parameter_two())===l||null==t?l:t.$to_latex())+"}"})),s($,"$to_omml_without_math_tag",(function(e){var t,r=this,n=l;return t=c("Utility").$ox_element("f",new Map([["namespace","m"]])),(n=c("Utility").$ox_element("fPr",new Map([["namespace","m"]])))["$<<"](c("Utility").$pr_element("ctrl",!0,new Map([["namespace","m"]]))),c("Utility").$update_nodes(t,[n,r.$omml_parameter(r.$parameter_one(),e,new Map([["tag_name","num"]])),r.$omml_parameter(r.$parameter_two(),e,new Map([["tag_name","den"]]))]),[t]}))}($[0],u("BinaryFunction"),$)}($[0],$)}($[0],$)}(o[0],o)},Opal.modules["plurimath/math/function/gcd"]=function(e){var t=e.module,r=e.klass,n=e.return_val,a=e.def,s=e.top,i=[];e.nil;return e.add_stubs("r_element,omml_value"),s.$require("plurimath//math/function/gcd.rb/../unary_function"),function(s,i){var o=[t(s,"Plurimath")].concat(i);return function(s,i){var o=[t(s,"Math")].concat(i);return function(s,i){var o=[t(s,"Function")].concat(i),l=e.$r(o);return function(e,t){var s=r(e,t,"Gcd");return a(s,"$validate_function_formula",n(!1)),a(s,"$to_omml_without_math_tag",(function(e){return[this.$r_element("gcd",new Map([["rpr_tag",!1]])),this.$omml_value(e)]}))}(o[0],l("UnaryFunction"))}(o[0],o)}(o[0],o)}(i[0],i)},Opal.modules["plurimath/math/function/glb"]=function(e){var t=e.module,r=e.klass,n=e.return_val,a=e.def,s=e.top,i=[];e.nil;return e.add_stubs("r_element,omml_value"),s.$require("plurimath//math/function/glb.rb/../unary_function"),function(s,i){var o=[t(s,"Plurimath")].concat(i);return function(s,i){var o=[t(s,"Math")].concat(i);return function(s,i){var o=[t(s,"Function")].concat(i),l=e.$r(o);return function(e,t){var s=r(e,t,"Glb");return a(s,"$validate_function_formula",n(!1)),a(s,"$to_omml_without_math_tag",(function(e){return[this.$r_element("glb",new Map([["rpr_tag",!1]])),this.$omml_value(e)]}))}(o[0],l("UnaryFunction"))}(o[0],o)}(o[0],o)}(i[0],i)},Opal.modules["plurimath/math/function/hat"]=function(e){var t=e.module,r=e.klass,n=e.send2,a=e.find_super,s=e.def,i=e.truthy,o=e.not,l=e.return_val,$=e.top,u=[],c=e.nil;return e.add_stubs("attr_accessor,parameter_one,to_asciimath,to_latex,<<,ox_element,!,empty?,attributes,merge!,update_nodes,to_mathml_without_math_tag,r_element,[],accent_tag,new,to_omml_without_math_tag,protected,omml_parameter"),$.$require("plurimath//math/function/hat.rb/../unary_function"),function($,u){var _=[t($,"Plurimath")].concat(u);return function($,u){var _=[t($,"Math")].concat(u);return function($,u){var _=[t($,"Function")].concat(u),p=e.$r(_);return function(t,$,u){var _=r(t,$,"Hat"),p=[_].concat(u),m=e.$r(p);return _.$attr_accessor("attributes"),s(_,"$initialize",(function e(t,r){var s=this;return e.$$p=null,null==t&&(t=c),null==r&&(r=new Map),n(s,a(s,"initialize",e,!1,!0),"initialize",[t],null),s.attributes=r}),-1),s(_,"$to_asciimath",(function(){var e=c;return i(this.$parameter_one())&&(e="("+this.$parameter_one().$to_asciimath()+")"),"hat"+e})),s(_,"$to_latex",(function(){var e=c;return i(this.$parameter_one())&&(e="{"+this.$parameter_one().$to_latex()+"}"),"\\hat"+e})),s(_,"$to_mathml_without_math_tag",(function(){var e,t,r=this,n=c;return t=m("Utility").$ox_element("mo")["$<<"]("^"),i(r.$parameter_one())?(n=m("Utility").$ox_element("mover"),i(r.$attributes())&&o(r.$attributes()["$empty?"]())&&n.$attributes()["$merge!"](r.$attributes()),m("Utility").$update_nodes(n,[(e=r.$parameter_one(),e===c||null==e?c:e.$to_mathml_without_math_tag()),t])):t})),s(_,"$validate_function_formula",l(!1)),s(_,"$to_omml_without_math_tag",(function(e){var t=this,r=c;return i(t.$parameter_one())?i(t.$attributes())&&i(t.$attributes()["$[]"]("accent"))?t.$accent_tag(e):(r=m("Symbol").$new("&#x302;"),m("Overset").$new(t.$parameter_one(),r).$to_omml_without_math_tag(!0)):t.$r_element("^",new Map([["rpr_tag",!1]]))})),_.$protected(),s(_,"$accent_tag",(function(e){var t,r=c;return t=m("Utility").$ox_element("acc",new Map([["namespace","m"]])),(r=m("Utility").$ox_element("accPr",new Map([["namespace","m"]])))["$<<"](m("Utility").$ox_element("chr",new Map([["namespace","m"],["attributes",new Map([["m:val","̂"]])]]))),m("Utility").$update_nodes(t,[r,this.$omml_parameter(this.$parameter_one(),e,new Map([["tag_name","e"],["namespace","m"]]))]),[t]}))}(_[0],p("UnaryFunction"),_)}(_[0],_)}(_[0],_)}(u[0],u)},Opal.modules["plurimath/math/function/hom"]=function(e){var t=e.module,r=e.klass,n=e.def,a=e.top,s=[];e.nil;return e.add_stubs("r_element,omml_value"),a.$require("plurimath//math/function/hom.rb/../unary_function"),function(a,s){var i=[t(a,"Plurimath")].concat(s);return function(a,s){var i=[t(a,"Math")].concat(s);return function(a,s){var i=[t(a,"Function")].concat(s),o=e.$r(i);return function(e,t){var a=r(e,t,"Hom");return n(a,"$to_omml_without_math_tag",(function(e){return[this.$r_element("hom",new Map([["rpr_tag",!1]])),this.$omml_value(e)]}))}(i[0],o("UnaryFunction"))}(i[0],i)}(i[0],i)}(s[0],s)},Opal.modules["plurimath/math/function/inf"]=function(e){var t=e.module,r=e.klass,n=e.truthy,a=e.def,s=e.top,i=[],o=e.nil;return e.add_stubs("parameter_one,to_latex,parameter_two,class_name,<<,ox_element,all_values_exist?,to_mathml_without_math_tag,update_nodes,underover"),s.$require("plurimath//math/function/inf.rb/../binary_function"),function(s,i){var l=[t(s,"Plurimath")].concat(i);return function(s,i){var l=[t(s,"Math")].concat(i);return function(s,i){var l=[t(s,"Function")].concat(i),$=e.$r(l);return function(t,s,i){var l=r(t,s,"Inf"),$=[l].concat(i),u=e.$r($);return a(l,"$to_latex",(function(){var e=this,t=o,r=o;return n(e.$parameter_one())&&(t="_{"+e.$parameter_one().$to_latex()+"}"),n(e.$parameter_two())&&(r="^{"+e.$parameter_two().$to_latex()+"}"),"\\"+e.$class_name()+t+r})),a(l,"$to_mathml_without_math_tag",(function(){var e,t,r,a,s=this,i=o;return r=u("Utility").$ox_element("mo")["$<<"](s.$class_name()),n(s["$all_values_exist?"]())?((i=[r])["$<<"]((e=s.$parameter_one())===o||null==e?o:e.$to_mathml_without_math_tag()),i["$<<"]((t=s.$parameter_two())===o||null==t?o:t.$to_mathml_without_math_tag()),a=n(s.$parameter_two())&&n(s.$parameter_one())?"underover":n(s.$parameter_one())?"under":"over",u("Utility").$update_nodes(u("Utility").$ox_element("m"+a),i)):r})),a(l,"$to_omml_without_math_tag",(function(e){return this.$underover(e)}))}(l[0],$("BinaryFunction"),l)}(l[0],l)}(l[0],l)}(i[0],i)},Opal.modules["plurimath/math/function/int"]=function(e){var t=e.module,r=e.klass,n=e.const_set,a=e.truthy,s=e.def,i=e.top,o=[],l=e.nil;return e.add_stubs("parameter_one,wrapped,parameter_two,strip,to_asciimath,parameter_three,to_latex,class_name,<<,ox_element,to_s,invert_unicode_symbols,all_values_exist?,update_nodes,validate_mathml_tag,nil?,compact,flatten,to_mathml_without_math_tag,narypr,omml_parameter"),i.$require("plurimath//math/function/int.rb/../ternary_function"),function(i,o){var $=[t(i,"Plurimath")].concat(o);return function(i,o){var $=[t(i,"Math")].concat(o);return function(i,o){var $=[t(i,"Function")].concat(o),u=e.$r($);return function(t,i,o){var $=r(t,i,"Int"),u=[$].concat(o),c=e.$r(u);return n(u[0],"FUNCTION",new Map([["name","integral"],["first_value","lower limit"],["second_value","upper limit"],["third_value","integrand"]])),s($,"$to_asciimath",(function(){var e,t=this,r=l,n=l;return a(t.$parameter_one())&&(r="_"+t.$wrapped(t.$parameter_one())),a(t.$parameter_two())&&(n="^"+t.$wrapped(t.$parameter_two())),("int"+r+n+" "+(e=t.$parameter_three(),e===l||null==e?l:e.$to_asciimath())).$strip()})),s($,"$to_latex",(function(){var e,t=this,r=l,n=l;return a(t.$parameter_one())&&(r="_{"+t.$parameter_one().$to_latex()+"}"),a(t.$parameter_two())&&(n="^{"+t.$parameter_two().$to_latex()+"}"),("\\"+t.$class_name()+r+n+" "+(e=t.$parameter_three(),e===l||null==e?l:e.$to_latex())).$strip()})),s($,"$to_mathml_without_math_tag",(function(){var e,t,r=this,n=l;return t=c("Utility").$ox_element("mo")["$<<"](r.$invert_unicode_symbols().$to_s()),a(r["$all_values_exist?"]())?(n=c("Utility").$ox_element("msubsup"),c("Utility").$update_nodes(n,[t,r.$validate_mathml_tag(r.$parameter_one()),r.$validate_mathml_tag(r.$parameter_two())]),a(r.$parameter_three()["$nil?"]())?n:c("Utility").$update_nodes(c("Utility").$ox_element("mrow"),[n,(e=r.$parameter_three(),e===l||null==e?l:e.$to_mathml_without_math_tag())].$flatten().$compact())):t})),s($,"$to_omml_without_math_tag",(function(e){var t=this,r=l,n=l,s=l;return a(t["$all_values_exist?"]())?(r=c("Utility").$ox_element("nary",new Map([["namespace","m"]])),c("Utility").$update_nodes(r,[t.$narypr("∫",new Map([["function_type","subSup"]])),t.$omml_parameter(t.$parameter_one(),e,new Map([["tag_name","sub"]])),t.$omml_parameter(t.$parameter_two(),e,new Map([["tag_name","sup"]])),t.$omml_parameter(t.$parameter_three(),e,new Map([["tag_name","e"]]))]),[r]):(n=c("Utility").$ox_element("r",new Map([["namespace","m"]])),s=c("Utility").$ox_element("t",new Map([["namespace","m"]])),n["$<<"](s["$<<"]("&#x222b;")),[n])}))}($[0],u("TernaryFunction"),$)}($[0],$)}($[0],$)}(o[0],o)},Opal.modules["plurimath/math/function/ker"]=function(e){var t=e.module,r=e.klass,n=e.def,a=e.top,s=[];e.nil;return e.add_stubs("r_element,omml_value"),a.$require("plurimath//math/function/ker.rb/../unary_function"),function(a,s){var i=[t(a,"Plurimath")].concat(s);return function(a,s){var i=[t(a,"Math")].concat(s);return function(a,s){var i=[t(a,"Function")].concat(s),o=e.$r(i);return function(e,t){var a=r(e,t,"Ker");return n(a,"$to_omml_without_math_tag",(function(e){return[this.$r_element("ker",new Map([["rpr_tag",!1]])),this.$omml_value(e)]}))}(i[0],o("UnaryFunction"))}(i[0],i)}(i[0],i)}(s[0],s)},Opal.modules["plurimath/math/function/lcm"]=function(e){var t=e.module,r=e.klass,n=e.def,a=e.top,s=[];e.nil;return e.add_stubs("r_element,omml_value"),a.$require("plurimath//math/function/lcm.rb/../unary_function"),function(a,s){var i=[t(a,"Plurimath")].concat(s);return function(a,s){var i=[t(a,"Math")].concat(s);return function(a,s){var i=[t(a,"Function")].concat(s),o=e.$r(i);return function(e,t){var a=r(e,t,"Lcm");return n(a,"$to_omml_without_math_tag",(function(e){return[this.$r_element("lcm",new Map([["rpr_tag",!1]])),this.$omml_value(e)]}))}(i[0],o("UnaryFunction"))}(i[0],i)}(i[0],i)}(s[0],s)},Opal.modules["plurimath/math/function/left"]=function(e){var t=e.module,r=e.klass,n=e.def,a=e.truthy,s=e.return_val,i=e.slice,o=e.annotate_regexp,l=e.extract_kwargs,$=e.ensure_kwargs,u=e.get_kwarg,c=e.eqeq,_=e.top,p=[],m=e.nil;return e.add_stubs("parameter_one,ox_element,<<,left_paren,latex_paren,gsub,dump_ox_nodes,protected,=="),_.$require("plurimath//math/function/left.rb/../unary_function"),function(_,p){var d=[t(_,"Plurimath")].concat(p);return function(_,p){var d=[t(_,"Math")].concat(p);return function(_,p){var d=[t(_,"Function")].concat(p),f=e.$r(d);return function(t,_,p){var d=r(t,_,"Left"),f=[d].concat(p),h=e.$r(f);return n(d,"$to_asciimath",(function(){return"left"+this.$parameter_one()})),n(d,"$to_mathml_without_math_tag",(function(){var e=m;return e=h("Utility").$ox_element("mo"),a(this.$parameter_one())&&e["$<<"](this.$left_paren()),e})),n(d,"$to_omml_without_math_tag",(function(e){var t=m,r=m;return t=h("Utility").$ox_element("m:r"),a(this.$parameter_one())&&(r=h("Utility").$ox_element("m:t"),t["$<<"](r["$<<"](this.$parameter_one()))),[t]})),n(d,"$to_html",(function(){return"<i>"+this.$parameter_one()+"</i>"})),n(d,"$to_latex",(function(){return"\\left "+this.$latex_paren()})),n(d,"$validate_function_formula",s(!1)),n(d,"$to_asciimath_math_zone",(function(e,t,r){var n,a;return(n=i(arguments)).length>2&&(a=n.shift()),null==a&&(a=""),null==n.shift()&&m,null==n.shift()&&m,a+'"'+this.$latex_paren()+'" left\n'}),-3),n(d,"$to_latex_math_zone",(function(e,t,r){var n,a;return(n=i(arguments)).length>2&&(a=n.shift()),null==a&&(a=""),null==n.shift()&&m,null==n.shift()&&m,a+'"'+this.$latex_paren()+'" left\n'}),-3),n(d,"$to_mathml_math_zone",(function(e,t,r){var n,a,s;return(n=i(arguments)).length>2&&(a=n.shift()),null==a&&(a=""),null==n.shift()&&m,null==n.shift()&&m,s=h("Utility").$ox_element("mo")["$<<"](this.$left_paren()),a+'"'+this.$dump_ox_nodes(s).$gsub(o(/\s+/u,null,""),"")+'" left\n'}),-3),n(d,"$to_omml_math_zone",(function(e,t,r,n){var a,s,c,_;return a=i(arguments),s=l(a),s=$(s),a.length>2&&(c=a.shift()),null==c&&(c=""),null==a.shift()&&m,null==a.shift()&&m,u(s,"display_style"),_=h("Utility").$ox_element("t",new Map([["namespace","m"]]))["$<<"](this.$left_paren()),c+'"'+this.$dump_ox_nodes(_).$gsub(o(/\s+/u,null,""),"")+'" left\n'}),-4),d.$protected(),n(d,"$left_paren",(function(){return c(this.$parameter_one(),"\\{")?"{":this.$parameter_one()}))}(d[0],f("UnaryFunction"),d)}(d[0],d)}(d[0],d)}(p[0],p)},Opal.modules["plurimath/math/function/lg"]=function(e){var t=e.module,r=e.klass,n=e.return_val,a=e.def,s=e.top,i=[];e.nil;return e.add_stubs("r_element,omml_value"),s.$require("plurimath//math/function/lg.rb/../unary_function"),function(s,i){var o=[t(s,"Plurimath")].concat(i);return function(s,i){var o=[t(s,"Math")].concat(i);return function(s,i){var o=[t(s,"Function")].concat(i),l=e.$r(o);return function(e,t){var s=r(e,t,"Lg");return a(s,"$validate_function_formula",n(!1)),a(s,"$to_omml_without_math_tag",(function(e){return[this.$r_element("lg",new Map([["rpr_tag",!1]])),this.$omml_value(e)]}))}(o[0],l("UnaryFunction"))}(o[0],o)}(o[0],o)}(i[0],i)},Opal.modules["plurimath/math/function/lim"]=function(e){var t=e.module,r=e.klass,n=e.const_set,a=e.truthy,s=e.def,i=e.top,o=[],l=e.nil;return e.add_stubs("freeze,parameter_one,wrapped,parameter_two,to_latex,class_name,<<,ox_element,to_mathml_without_math_tag,update_nodes,underover"),i.$require("plurimath//math/function/lim.rb/../binary_function"),function(i,o){var $=[t(i,"Plurimath")].concat(o);return function(i,o){var $=[t(i,"Math")].concat(o);return function(i,o){var $=[t(i,"Function")].concat(o),u=e.$r($);return function(t,i,o){var $=r(t,i,"Lim"),u=[$].concat(o),c=e.$r(u);return n(u[0],"FUNCTION",new Map([["name","limit"],["first_value","limit subscript"],["second_value","limit supscript"]]).$freeze()),s($,"$to_asciimath",(function(){var e=this,t=l,r=l;return a(e.$parameter_one())&&(t="_"+e.$wrapped(e.$parameter_one())),a(e.$parameter_two())&&(r="^"+e.$wrapped(e.$parameter_two())),"lim"+t+r})),s($,"$to_latex",(function(){var e=this,t=l,r=l;return a(e.$parameter_one())&&(t="_{"+e.$parameter_one().$to_latex()+"}"),a(e.$parameter_two())&&(r="^{"+e.$parameter_two().$to_latex()+"}"),"\\"+e.$class_name()+t+r})),s($,"$to_mathml_without_math_tag",(function(){var e,t,r,n=this,s=l,i=l,o=l;return r=c("Utility").$ox_element("mo")["$<<"]("lim"),a(n.$parameter_one())||a(n.$parameter_two())?((s=[r])["$<<"]((e=n.$parameter_one())===l||null==e?l:e.$to_mathml_without_math_tag()),s["$<<"]((t=n.$parameter_two())===l||null==t?l:t.$to_mathml_without_math_tag()),i=a(n.$parameter_two())&&a(n.$parameter_one())?"underover":a(n.$parameter_one())?"under":"over",o=c("Utility").$ox_element("m"+i),c("Utility").$update_nodes(o,s)):r})),s($,"$to_omml_without_math_tag",(function(e){return this.$underover(e)}))}($[0],u("BinaryFunction"),$)}($[0],$)}($[0],$)}(o[0],o)},Opal.modules["plurimath/math/function/liminf"]=function(e){var t=e.module,r=e.klass,n=e.def,a=e.top,s=[];e.nil;return e.add_stubs("r_element,omml_value"),a.$require("plurimath//math/function/liminf.rb/../unary_function"),function(a,s){var i=[t(a,"Plurimath")].concat(s);return function(a,s){var i=[t(a,"Math")].concat(s);return function(a,s){var i=[t(a,"Function")].concat(s),o=e.$r(i);return function(e,t){var a=r(e,t,"Liminf");return n(a,"$to_omml_without_math_tag",(function(e){return[this.$r_element("liminf",new Map([["rpr_tag",!1]])),this.$omml_value(e)]}))}(i[0],o("UnaryFunction"))}(i[0],i)}(i[0],i)}(s[0],s)},Opal.modules["plurimath/math/function/limits"]=function(e){var t=e.module,r=e.klass,n=e.const_set,a=e.def,s=e.truthy,i=e.top,o=[],l=e.nil;return e.add_stubs("freeze,ox_element,<<,to_mathml_without_math_tag,parameter_one,parameter_two,parameter_three,update_nodes,to_latex,class_name,insert_t_tag"),i.$require("plurimath//math/function/limits.rb/../ternary_function"),function(i,o){var $=[t(i,"Plurimath")].concat(o);return function(i,o){var $=[t(i,"Math")].concat(o);return function(i,o){var $=[t(i,"Function")].concat(o),u=e.$r($);return function(t,i,o){var $=r(t,i,"Limits"),u=[$].concat(o),c=e.$r(u);return n(u[0],"FUNCTION",new Map([["name","function apply"],["first_value","base"],["second_value","subscript"],["third_value","supscript"]]).$freeze()),a($,"$to_mathml_without_math_tag",(function(){var e,t,r,n,a=this,s=l;return n=c("Utility").$ox_element("munderover"),(s=[])["$<<"]((e=a.$parameter_one())===l||null==e?l:e.$to_mathml_without_math_tag()),s["$<<"]((t=a.$parameter_two())===l||null==t?l:t.$to_mathml_without_math_tag()),s["$<<"]((r=a.$parameter_three())===l||null==r?l:r.$to_mathml_without_math_tag()),c("Utility").$update_nodes(n,s)})),a($,"$to_latex",(function(){var e,t=this,r=l,n=l,a=l;return r=(e=t.$parameter_one())===l||null==e?l:e.$to_latex(),s(t.$parameter_two())&&(n="{"+t.$parameter_two().$to_latex()+"}"),s(t.$parameter_three())&&(a="{"+t.$parameter_three().$to_latex()+"}"),r+"\\"+t.$class_name()+"_"+n+"^"+a})),a($,"$to_omml_without_math_tag",(function(e){var t=this,r=l;return r=[],s(t.$parameter_one())&&r["$<<"](t.$parameter_one().$insert_t_tag(e)),s(t.$parameter_two())&&r["$<<"](t.$parameter_two().$insert_t_tag(e)),s(t.$parameter_three())&&r["$<<"](t.$parameter_three().$insert_t_tag(e)),r}))}($[0],u("TernaryFunction"),$)}($[0],$)}($[0],$)}(o[0],o)},Opal.modules["plurimath/math/function/limsup"]=function(e){var t=e.module,r=e.klass,n=e.def,a=e.top,s=[];e.nil;return e.add_stubs("r_element,omml_value"),a.$require("plurimath//math/function/limsup.rb/../unary_function"),function(a,s){var i=[t(a,"Plurimath")].concat(s);return function(a,s){var i=[t(a,"Math")].concat(s);return function(a,s){var i=[t(a,"Function")].concat(s),o=e.$r(i);return function(e,t){var a=r(e,t,"Limsup");return n(a,"$to_omml_without_math_tag",(function(e){return[this.$r_element("limsup",new Map([["rpr_tag",!1]])),this.$omml_value(e)]}))}(i[0],o("UnaryFunction"))}(i[0],i)}(i[0],i)}(s[0],s)},Opal.modules["plurimath/math/function/ln"]=function(e){var t=e.module,r=e.klass,n=e.return_val,a=e.def,s=e.top,i=[];e.nil;return e.add_stubs("r_element,omml_value"),s.$require("plurimath//math/function/ln.rb/../unary_function"),function(s,i){var o=[t(s,"Plurimath")].concat(i);return function(s,i){var o=[t(s,"Math")].concat(i);return function(s,i){var o=[t(s,"Function")].concat(i),l=e.$r(o);return function(e,t){var s=r(e,t,"Ln");return a(s,"$validate_function_formula",n(!1)),a(s,"$to_omml_without_math_tag",(function(e){return[this.$r_element("ln",new Map([["rpr_tag",!1]])),this.$omml_value(e)]}))}(o[0],l("UnaryFunction"))}(o[0],o)}(o[0],o)}(i[0],i)},Opal.modules["plurimath/math/function/log"]=function(e){var t=e.module,r=e.klass,n=e.const_set,a=e.truthy,s=e.def,i=e.top,o=[],l=e.nil;return e.add_stubs("parameter_one,wrapped,parameter_two,latex_wrapped,to_html,all_values_exist?,r_element,ox_element,<<,hide_tags,pr_element,update_nodes,e_parameter,omml_parameter,to_mathml_without_math_tag,protected,rpr_tag,nil?"),i.$require("plurimath//math/function/log.rb/../binary_function"),function(i,o){var $=[t(i,"Plurimath")].concat(o);return function(i,o){var $=[t(i,"Math")].concat(o);return function(i,o){var $=[t(i,"Function")].concat(o),u=e.$r($);return function(t,i,o){var $=r(t,i,"Log"),u=[$].concat(o),c=e.$r(u);return n(u[0],"FUNCTION",new Map([["name","function apply"],["first_value","subscript"],["second_value","supscript"]])),s($,"$to_asciimath",(function(){var e=this,t=l,r=l;return a(e.$parameter_one())&&(t="_"+e.$wrapped(e.$parameter_one())),a(e.$parameter_two())&&(r="^"+e.$wrapped(e.$parameter_two())),"log"+t+r})),s($,"$to_latex",(function(){var e=this,t=l,r=l;return a(e.$parameter_one())&&(t="_"+e.$latex_wrapped(e.$parameter_one())),a(e.$parameter_two())&&(r="^"+e.$latex_wrapped(e.$parameter_two())),"\\log"+t+r})),s($,"$to_html",(function(){var e=this,t=l,r=l;return a(e.$parameter_one())&&(t="<sub>"+e.$parameter_one().$to_html()+"</sub>"),a(e.$parameter_two())&&(r="<sup>"+e.$parameter_two().$to_html()+"</sup>"),"<i>log</i>"+t+r})),s($,"$to_omml_without_math_tag",(function(e){var t,r=this,n=l;return a(r["$all_values_exist?"]())?(t=c("Utility").$ox_element("sSubSup",new Map([["namespace","m"]])),(n=c("Utility").$ox_element("sSubSupPr",new Map([["namespace","m"]])))["$<<"](r.$hide_tags(c("Utility").$pr_element("ctrl",!0,new Map([["namespace","m"]])))),c("Utility").$update_nodes(t,[n,r.$e_parameter(),r.$omml_parameter(r.$parameter_one(),e,new Map([["tag_name","sub"]])),r.$omml_parameter(r.$parameter_two(),e,new Map([["tag_name","sup"]]))]),[t]):r.$r_element("log",new Map([["rpr_tag",!1]]))})),s($,"$to_mathml_without_math_tag",(function(){var e,t,r,n,s=this,i=l;return r=c("Utility").$ox_element("msubsup"),n=c("Utility").$ox_element("mi")["$<<"]("log"),a(s.$parameter_one())||a(s.$parameter_two())?((i=[n])["$<<"]((e=s.$parameter_one())===l||null==e?l:e.$to_mathml_without_math_tag()),i["$<<"]((t=s.$parameter_two())===l||null==t?l:t.$to_mathml_without_math_tag()),c("Utility").$update_nodes(r,i)):n})),$.$protected(),s($,"$e_parameter",(function(){return c("Utility").$ox_element("e",new Map([["namespace","m"]]))["$<<"](this.$rpr_tag())})),s($,"$hide_tags",(function(e){var t;return t=new Map([["m:val","1"]]),a(this.$parameter_one()["$nil?"]())&&e["$<<"](c("Utility").$ox_element("subHide",new Map([["namespace","m"],["attributes",t]]))),a(this.$parameter_two()["$nil?"]())&&e["$<<"](c("Utility").$ox_element("supHide",new Map([["namespace","m"],["attributes",t]]))),e})),s($,"$rpr_tag",(function(){var e,t,r,n,a;return e=new Map([["m:val","p"]]),t=c("Utility").$ox_element("sty",new Map([["attributes",e],["namespace","m"]])),r=c("Utility").$ox_element("rPr",new Map([["namespace","m"]]))["$<<"](t),n=c("Utility").$ox_element("r",new Map([["namespace","m"]])),a=c("Utility").$ox_element("t",new Map([["namespace","m"]]))["$<<"]("log"),c("Utility").$update_nodes(n,[r,a])}))}($[0],u("BinaryFunction"),$)}($[0],$)}($[0],$)}(o[0],o)},Opal.modules["plurimath/math/function/longdiv"]=function(e){var t=e.module,r=e.klass,n=e.def,a=e.top,s=[];e.nil;return e.add_stubs("omml_value"),a.$require("plurimath//math/function/longdiv.rb/../unary_function"),function(a,s){var i=[t(a,"Plurimath")].concat(s);return function(a,s){var i=[t(a,"Math")].concat(s);return function(a,s){var i=[t(a,"Function")].concat(s),o=e.$r(i);return function(e,t){var a=r(e,t,"Longdiv");return n(a,"$to_omml_without_math_tag",(function(e){return this.$omml_value(e)}))}(i[0],o("UnaryFunction"))}(i[0],i)}(i[0],i)}(s[0],s)},Opal.modules["plurimath/math/function/lub"]=function(e){var t=e.module,r=e.klass,n=e.return_val,a=e.def,s=e.top,i=[];e.nil;return e.add_stubs("r_element,omml_value"),s.$require("plurimath//math/function/lub.rb/../unary_function"),function(s,i){var o=[t(s,"Plurimath")].concat(i);return function(s,i){var o=[t(s,"Math")].concat(i);return function(s,i){var o=[t(s,"Function")].concat(i),l=e.$r(o);return function(e,t){var s=r(e,t,"Lub");return a(s,"$validate_function_formula",n(!1)),a(s,"$to_omml_without_math_tag",(function(e){return[this.$r_element("lub",new Map([["rpr_tag",!1]])),this.$omml_value(e)]}))}(o[0],l("UnaryFunction"))}(o[0],o)}(o[0],o)}(i[0],i)},Opal.modules["plurimath/math/function/max"]=function(e){var t=e.module,r=e.klass,n=e.return_val,a=e.def,s=e.top,i=[];e.nil;return e.add_stubs("r_element,omml_value"),s.$require("plurimath//math/function/max.rb/../unary_function"),function(s,i){var o=[t(s,"Plurimath")].concat(i);return function(s,i){var o=[t(s,"Math")].concat(i);return function(s,i){var o=[t(s,"Function")].concat(i),l=e.$r(o);return function(e,t){var s=r(e,t,"Max");return a(s,"$validate_function_formula",n(!1)),a(s,"$to_omml_without_math_tag",(function(e){return[this.$r_element("max",new Map([["rpr_tag",!1]])),this.$omml_value(e)]}))}(o[0],l("UnaryFunction"))}(o[0],o)}(o[0],o)}(i[0],i)},Opal.modules["plurimath/math/function/mbox"]=function(e){var t=e.module,r=e.klass,n=e.truthy,a=e.def,s=e.top,i=[],o=e.nil;return e.add_stubs("ox_element,parameter_one,<<,to_mathml_without_math_tag,to_latex,to_html,omml_value"),s.$require("plurimath//math/function/mbox.rb/../unary_function"),function(s,i){var l=[t(s,"Plurimath")].concat(i);return function(s,i){var l=[t(s,"Math")].concat(i);return function(s,i){var l=[t(s,"Function")].concat(i),$=e.$r(l);return function(t,s,i){var l=r(t,s,"Mbox"),$=[l].concat(i),u=e.$r($);return a(l,"$to_mathml_without_math_tag",(function(){var e=o;return e=u("Utility").$ox_element("mtext"),n(this.$parameter_one())&&e["$<<"](this.$parameter_one().$to_mathml_without_math_tag()),e})),a(l,"$to_latex",(function(){var e;return"\\mbox{"+((e=this.$parameter_one())===o||null==e?o:e.$to_latex())+"}"})),a(l,"$to_html",(function(){var e;return(e=this.$parameter_one())===o||null==e?o:e.$to_html()})),a(l,"$to_omml_without_math_tag",(function(e){return this.$omml_value(e)}))}(l[0],$("UnaryFunction"),l)}(l[0],l)}(l[0],l)}(i[0],i)},Opal.modules["plurimath/math/function/menclose"]=function(e){var t=e.module,r=e.klass,n=e.const_set,a=e.def,s=e.truthy,i=e.top,o=[],l=e.nil;return e.add_stubs("freeze,to_asciimath,parameter_two,parameter_one,ox_element,<<,to_mathml_without_math_tag,to_latex,to_html,pr_element,update_nodes,omml_parameter"),i.$require("plurimath//math/function/menclose.rb/../binary_function"),function(i,o){var $=[t(i,"Plurimath")].concat(o);return function(i,o){var $=[t(i,"Math")].concat(o);return function(i,o){var $=[t(i,"Function")].concat(o),u=e.$r($);return function(t,i,o){var $=r(t,i,"Menclose"),u=[$].concat(o),c=e.$r(u);return n(u[0],"FUNCTION",new Map([["name","enclosure"],["first_value","enclosure type"],["second_value","expression"]]).$freeze()),a($,"$to_asciimath",(function(){var e;return(e=this.$parameter_two())===l||null==e?l:e.$to_asciimath()})),a($,"$to_mathml_without_math_tag",(function(){var e,t=this,r=l;return e=new Map([["notation",t.$parameter_one()]]),r=c("Utility").$ox_element("menclose",new Map([["attributes",e]])),s(t.$parameter_two())&&r["$<<"](t.$parameter_two().$to_mathml_without_math_tag()),r})),a($,"$to_latex",(function(){var e;return(e=this.$parameter_two())===l||null==e?l:e.$to_latex()})),a($,"$to_html",(function(){var e,t=l;return t=(e=this.$parameter_two())===l||null==e?l:e.$to_html(),'<menclose notation="'+this.$parameter_one()+'">'+t+"</menclose>"})),a($,"$to_omml_without_math_tag",(function(e){var t,r=l;return t=c("Utility").$ox_element("borderBox",new Map([["namespace","m"]])),(r=c("Utility").$ox_element("borderBoxPr",new Map([["namespace","m"]])))["$<<"](c("Utility").$pr_element("ctrl",!0,new Map([["namespace","m"]]))),c("Utility").$update_nodes(t,[r,this.$omml_parameter(this.$parameter_two(),e,new Map([["tag_name","e"]]))]),[t]}))}($[0],u("BinaryFunction"),$)}($[0],$)}($[0],$)}(o[0],o)},Opal.modules["plurimath/math/function/merror"]=function(e){var t=e.module,r=e.klass,n=e.return_val,a=e.def,s=e.top,i=[],o=e.nil;return s.$require("plurimath//math/function/merror.rb/../binary_function"),function(s,i){var l=[t(s,"Plurimath")].concat(i);return function(s,i){var l=[t(s,"Math")].concat(i);return function(s,i){var l=[t(s,"Function")].concat(i),$=e.$r(l);return function(e,t){var s=r(e,t,"Merror");return a(s,"$to_omml_without_math_tag",n(o))}(l[0],$("BinaryFunction"))}(l[0],l)}(l[0],l)}(i[0],i)},Opal.modules["plurimath/math/function/min"]=function(e){var t=e.module,r=e.klass,n=e.return_val,a=e.def,s=e.top,i=[];e.nil;return e.add_stubs("r_element,omml_value"),s.$require("plurimath//math/function/min.rb/../unary_function"),function(s,i){var o=[t(s,"Plurimath")].concat(i);return function(s,i){var o=[t(s,"Math")].concat(i);return function(s,i){var o=[t(s,"Function")].concat(i),l=e.$r(o);return function(e,t){var s=r(e,t,"Min");return a(s,"$validate_function_formula",n(!1)),a(s,"$to_omml_without_math_tag",(function(e){return[this.$r_element("min",new Map([["rpr_tag",!1]])),this.$omml_value(e)]}))}(o[0],l("UnaryFunction"))}(o[0],o)}(o[0],o)}(i[0],i)},Opal.modules["plurimath/math/function/mod"]=function(e){var t=e.module,r=e.klass,n=e.const_set,a=e.def,s=e.truthy,i=e.top,o=[],l=e.nil;return e.add_stubs("to_asciimath,parameter_one,parameter_two,ox_element,<<,to_mathml_without_math_tag,update_nodes,to_latex,to_html,insert_t_tag,r_element"),i.$require("plurimath//math/function/mod.rb/../binary_function"),function(i,o){var $=[t(i,"Plurimath")].concat(o);return function(i,o){var $=[t(i,"Math")].concat(o);return function(i,o){var $=[t(i,"Function")].concat(o),u=e.$r($);return function(t,i,o){var $=r(t,i,"Mod"),u=[$].concat(o),c=e.$r(u);return n(u[0],"FUNCTION",new Map([["name","mod"],["first_value","base"],["second_value","argument"]])),a($,"$to_asciimath",(function(){var e,t;return((e=this.$parameter_one())===l||null==e?l:e.$to_asciimath())+" mod "+((t=this.$parameter_two())===l||null==t?l:t.$to_asciimath())})),a($,"$to_mathml_without_math_tag",(function(){var e,t,r,n,a=this,i=l,o=l;return r=c("Utility").$ox_element("mrow"),n=c("Utility").$ox_element("mi")["$<<"]("mod"),s(a.$parameter_one())&&(i=(e=a.$parameter_one())===l||null==e?l:e.$to_mathml_without_math_tag()),s(a.$parameter_two())&&(o=(t=a.$parameter_two())===l||null==t?l:t.$to_mathml_without_math_tag()),c("Utility").$update_nodes(r,[i,n,o])})),a($,"$to_latex",(function(){var e=this,t=l,r=l;return s(e.$parameter_one())&&(t="{"+e.$parameter_one().$to_latex()+"}"),s(e.$parameter_two())&&(r="{"+e.$parameter_two().$to_latex()+"}"),t+" \\mod "+r})),a($,"$to_html",(function(){var e=this,t=l,r=l;return s(e.$parameter_one())&&(t="<i>"+e.$parameter_one().$to_html()+"</i>"),s(e.$parameter_two())&&(r="<i>"+e.$parameter_two().$to_html()+"</i>"),t+"<i>mod</i>"+r})),a($,"$to_omml_without_math_tag",(function(e){var t=this,r=l;return r=[],s(t.$parameter_one())&&r["$<<"](t.$parameter_one().$insert_t_tag(e)),r["$<<"](t.$r_element("mod")),s(t.$parameter_two())&&r["$<<"](t.$parameter_two().$insert_t_tag(e)),r}))}($[0],u("BinaryFunction"),$)}($[0],$)}($[0],$)}(o[0],o)},Opal.modules["plurimath/math/function/msgroup"]=function(e){var t=e.module,r=e.klass,n=e.send,a=e.def,s=e.slice,i=e.extract_kwargs,o=e.ensure_kwargs,l=e.get_kwarg,$=e.top,u=[];e.nil;return e.add_stubs("join,map,parameter_one,to_proc,update_nodes,ox_element,omml_value,to_asciimath_math_zone,new,gsub_spacing,to_latex_math_zone,to_mathml_math_zone,to_omml_math_zone"),$.$require("plurimath//math/function/msgroup.rb/../unary_function"),function($,u){var c=[t($,"Plurimath")].concat(u);return function($,u){var c=[t($,"Math")].concat(u);return function($,u){var c=[t($,"Function")].concat(u),_=e.$r(c);return function(t,$,u){var c=r(t,$,"Msgroup"),_=[c].concat(u),p=e.$r(_);return a(c,"$to_asciimath",(function(){return n(this.$parameter_one(),"map",[],"to_asciimath".$to_proc()).$join()})),a(c,"$to_latex",(function(){return n(this.$parameter_one(),"map",[],"to_latex".$to_proc()).$join()})),a(c,"$to_mathml_without_math_tag",(function(){return p("Utility").$update_nodes(p("Utility").$ox_element("msgroup"),n(this.$parameter_one(),"map",[],"to_mathml_without_math_tag".$to_proc()))})),a(c,"$to_omml_without_math_tag",(function(e){return this.$omml_value(e)})),a(c,"$to_html",(function(){return"<i>"+n(this.$parameter_one(),"map",[],"to_html".$to_proc()).$join()+"</i>"})),a(c,"$to_asciimath_math_zone",(function(e,t,r){return null==t&&(t=!1),null==r&&(r=!0),[e+'"msgroup" function apply\n',p("Formula").$new(this.$parameter_one()).$to_asciimath_math_zone(this.$gsub_spacing(e,t))]}),-2),a(c,"$to_latex_math_zone",(function(e,t,r){return null==t&&(t=!1),null==r&&(r=!0),[e+'"msgroup" function apply\n',p("Formula").$new(this.$parameter_one()).$to_latex_math_zone(this.$gsub_spacing(e,t),t,r)]}),-2),a(c,"$to_mathml_math_zone",(function(e,t,r){return null==t&&(t=!1),null==r&&(r=!0),[e+'"msgroup" function apply\n',p("Formula").$new(this.$parameter_one()).$to_mathml_math_zone(this.$gsub_spacing(e,t),t,r)]}),-2),a(c,"$to_omml_math_zone",(function(e,t,r,n){var a,$,u,c,_;return a=s(arguments,1),$=i(a),$=o($),a.length>0&&(u=a.shift()),null==u&&(u=!1),a.length>0&&(c=a.shift()),null==c&&(c=!0),_=l($,"display_style"),[e+'"msgroup" function apply\n',p("Formula").$new(this.$parameter_one()).$to_omml_math_zone(this.$gsub_spacing(e,u),u,c,new Map([["display_style",_]]))]}),-3)}(c[0],_("UnaryFunction"),c)}(c[0],c)}(c[0],c)}(u[0],u)},Opal.modules["plurimath/math/function/msline"]=function(e){var t=e.module,r=e.klass,n=e.def,a=e.top,s=[];e.nil;return e.add_stubs("omml_value"),a.$require("plurimath//math/function/msline.rb/../unary_function"),function(a,s){var i=[t(a,"Plurimath")].concat(s);return function(a,s){var i=[t(a,"Math")].concat(s);return function(a,s){var i=[t(a,"Function")].concat(s),o=e.$r(i);return function(e,t){var a=r(e,t,"Msline");return n(a,"$to_omml_without_math_tag",(function(e){return this.$omml_value(e)}))}(i[0],o("UnaryFunction"))}(i[0],i)}(i[0],i)}(s[0],s)},Opal.modules["plurimath/math/function/multiscript"]=function(e){var t=e.module,r=e.klass,n=e.const_set,a=e.def,s=e.top,i=[],o=e.nil;return e.add_stubs("freeze,ox_element,update_nodes,<<,pr_element,omml_parameter,parameter_two,parameter_three,parameter_one"),s.$require("plurimath//math/function/multiscript.rb/../ternary_function"),function(s,i){var l=[t(s,"Plurimath")].concat(i);return function(s,i){var l=[t(s,"Math")].concat(i);return function(s,i){var l=[t(s,"Function")].concat(i),$=e.$r(l);return function(t,s,i){var l=r(t,s,"Multiscript"),$=[l].concat(i),u=e.$r($);return n($[0],"FUNCTION",new Map([["name","multiscript"],["first_value","base"],["second_value","subscript"],["third_value","supscript"]]).$freeze()),a(l,"$to_omml_without_math_tag",(function(e){var t,r=this,n=o;return t=u("Utility").$ox_element("sPre",new Map([["namespace","m"]])),n=u("Utility").$ox_element("sPrePr",new Map([["namespace","m"]])),u("Utility").$update_nodes(t,[n["$<<"](u("Utility").$pr_element("ctrl",!0,new Map([["namespace","m"]]))),r.$omml_parameter(r.$parameter_two(),e,new Map([["tag_name","sub"]])),r.$omml_parameter(r.$parameter_three(),e,new Map([["tag_name","sup"]])),r.$omml_parameter(r.$parameter_one(),e,new Map([["tag_name","e"]]))]),[t]}))}(l[0],$("TernaryFunction"),l)}(l[0],l)}(l[0],l)}(i[0],i)},Opal.modules["plurimath/math/function/nary"]=function(e){var t=e.module,r=e.klass,n=e.def,a=e.truthy,s=e.eqeq,i=[],o=e.nil;return e.add_stubs("attr_accessor,validate_left_right,==,class,parameter_one,parameter_two,parameter_three,parameter_four,options,to_asciimath,to_latex,[],ox_element,<<,validate_mathml_fields,update_nodes,omml_nary_tag,Array,protected,html_entity_to_unicode,nary_attr_value,to_s,hide_tags,nil?,chr_value,pr_element,omml_parameter"),function(i,l){var $=[t(i,"Plurimath")].concat(l);return function(i,l){var $=[t(i,"Math")].concat(l);return function(i,l){var $=[t(i,"Function")].concat(l),u=e.$r($);return function(t,i,l){var $=r(t,i,"Nary"),u=[$].concat(l),c=e.$r(u);return $.$attr_accessor("parameter_one","parameter_two","parameter_three","parameter_four","options"),n($,"$initialize",(function(e,t,r,n,a){var s=this;return null==e&&(e=o),null==t&&(t=o),null==r&&(r=o),null==n&&(n=o),null==a&&(a=new Map),s.parameter_one=e,s.parameter_two=t,s.parameter_three=r,s.parameter_four=n,s.options=a,c("Utility").$validate_left_right([e,t,r,n])}),-1),n($,"$==",(function(e){var t,r,n,s,i,o=this;return a(t=a(r=a(n=a(s=a(i=o.$class()["$=="](e.$class()))?e.$parameter_one()["$=="](o.$parameter_one()):i)?e.$parameter_two()["$=="](o.$parameter_two()):s)?e.$parameter_three()["$=="](o.$parameter_three()):n)?e.$parameter_four()["$=="](o.$parameter_four()):r)?e.$options()["$=="](o.$options()):t})),n($,"$to_asciimath",(function(){var e,t,r=this,n=o,s=o,i=o,l=o;return t=a(n=(e=r.$parameter_one())===o||null==e?o:e.$to_asciimath())?n:"int",a(r.$parameter_two())&&(s="_"+r.$parameter_two().$to_asciimath()),a(r.$parameter_three())&&(i="^"+r.$parameter_three().$to_asciimath()),a(r.$parameter_four())&&(l=" "+r.$parameter_four().$to_asciimath()),""+t+s+i+l})),n($,"$to_latex",(function(){var e,t,r=this,n=o,s=o,i=o,l=o;return t=a(n=(e=r.$parameter_one())===o||null==e?o:e.$to_latex())?n:"\\int",a(r.$parameter_two())&&(s="_"+r.$parameter_two().$to_latex()),a(r.$parameter_three())&&(i="^"+r.$parameter_three().$to_latex()),a(r.$parameter_four())&&(l="{"+r.$parameter_four().$to_latex()+"}"),""+t+s+i+l})),n($,"$to_mathml_without_math_tag",(function(){var e,t,r=this,n=o;return e=s(r.$options()["$[]"]("type"),"undOvr")?"munderover":"msubsup",t=c("Utility").$ox_element(e),(n=[])["$<<"](r.$validate_mathml_fields(r.$parameter_one())),n["$<<"](r.$validate_mathml_fields(r.$parameter_two())),n["$<<"](r.$validate_mathml_fields(r.$parameter_three())),c("Utility").$update_nodes(t,n)})),n($,"$to_omml_without_math_tag",(function(e){var t;return t=c("Utility").$ox_element("nary",new Map([["namespace","m"]])),c("Utility").$update_nodes(t,this.$omml_nary_tag(e)),this.$Array(t)})),$.$protected(),n($,"$chr_value",(function(e){var t,r,n=this;return r=c("Utility").$html_entity_to_unicode((t=n.$parameter_one())===o||null==t?o:t.$nary_attr_value()),s(r,"∫")||e["$<<"](c("Utility").$ox_element("chr",new Map([["namespace","m"],["attributes",new Map([["m:val",r]])]]))),e["$<<"](c("Utility").$ox_element("limLoc",new Map([["namespace","m"],["attributes",new Map([["m:val",n.$options()["$[]"]("type").$to_s()]])]]))),n.$hide_tags(e,n.$parameter_two(),"sub"),n.$hide_tags(e,n.$parameter_three(),"sup"),e})),n($,"$hide_tags",(function(e,t,r){return a(t["$nil?"]())?e["$<<"](c("Utility").$ox_element(r+"Hide",new Map([["namespace","m"],["attributes",new Map([["m:val","1"]])]]))):e})),n($,"$omml_nary_tag",(function(e){var t=this,r=o;return r=c("Utility").$ox_element("naryPr",new Map([["namespace","m"]])),t.$chr_value(r),[r["$<<"](c("Utility").$pr_element("ctrl",!0,new Map([["namespace","m"]]))),t.$omml_parameter(t.$parameter_two(),e,new Map([["tag_name","sub"]])),t.$omml_parameter(t.$parameter_three(),e,new Map([["tag_name","sup"]])),t.$omml_parameter(t.$parameter_four(),e,new Map([["tag_name","e"]]))]}))}($[0],u("Core"),$)}($[0],$)}($[0],$)}(i[0],i)},Opal.modules["plurimath/math/function/norm"]=function(e){var t=e.module,r=e.klass,n=e.truthy,a=e.send2,s=e.find_super,i=e.def,o=e.top,l=[],$=e.nil;return e.add_stubs("is_a?,parameter_one,to_asciimath,to_latex,to_mathml_without_math_tag,<<,ox_element,update_nodes,r_element,omml_value"),o.$require("plurimath//math/function/norm.rb/../unary_function"),function(o,l){var u=[t(o,"Plurimath")].concat(l);return function(o,l){var u=[t(o,"Math")].concat(l);return function(o,l){var u=[t(o,"Function")].concat(l),c=e.$r(u);return function(t,o,l){var u=r(t,o,"Norm"),c=[u].concat(l),_=e.$r(c);return i(u,"$to_asciimath",(function e(){var t=e.$$p||$,r=this;return e.$$p=null,n(r.$parameter_one()["$is_a?"](_("Table")))?"norm"+r.$parameter_one().$to_asciimath():a(r,s(r,"to_asciimath",e,!1,!0),"to_asciimath",[],t)})),i(u,"$to_latex",(function(){var e;return"{\\lVert "+(((e=this.$parameter_one())===$||null==e?$:e.$to_latex())+" \\lVert}")})),i(u,"$to_mathml_without_math_tag",(function(){var e,t,r=$;return r=(e=this.$parameter_one())===$||null==e?$:e.$to_mathml_without_math_tag(),t=_("Utility").$ox_element("mo")["$<<"]("&#x2225;"),_("Utility").$update_nodes(_("Utility").$ox_element("mrow"),[t,r,t])})),i(u,"$to_omml_without_math_tag",(function(e){var t=this;return[t.$r_element("∥"),t.$omml_value(e),t.$r_element("∥")]}))}(u[0],c("UnaryFunction"),u)}(u[0],u)}(u[0],u)}(l[0],l)},Opal.modules["plurimath/math/function/obrace"]=function(e){var t=e.module,r=e.klass,n=e.send2,a=e.find_super,s=e.def,i=e.truthy,o=e.not,l=e.return_val,$=e.const_set,u=e.top,c=[],_=e.nil;return e.add_stubs("attr_accessor,parameter_one,to_asciimath,to_latex,<<,ox_element,!,empty?,attributes,merge!,update_nodes,to_mathml_without_math_tag,r_element,[],acc_tag,new,to_omml_without_math_tag,protected,omml_parameter"),u.$require("plurimath//math/function/obrace.rb/../unary_function"),function(u,c){var p=[t(u,"Plurimath")].concat(c);return function(u,c){var p=[t(u,"Math")].concat(c);return function(u,c){var p=[t(u,"Function")].concat(c),m=e.$r(p);return function(t,$,u){var c=r(t,$,"Obrace"),p=[c].concat(u),m=e.$r(p);c.$attr_accessor("attributes"),s(c,"$initialize",(function e(t,r){var s=this;return e.$$p=null,null==t&&(t=_),null==r&&(r=new Map),n(s,a(s,"initialize",e,!1,!0),"initialize",[t],null),s.attributes=r}),-1),s(c,"$to_asciimath",(function(){var e=_;return i(this.$parameter_one())&&(e="("+this.$parameter_one().$to_asciimath()+")"),"obrace"+e})),s(c,"$to_latex",(function(){var e=_;return i(this.$parameter_one())&&(e="{"+this.$parameter_one().$to_latex()+"}"),"\\overbrace"+e})),s(c,"$to_mathml_without_math_tag",(function(){var e,t=this,r=_;return e=m("Utility").$ox_element("mo")["$<<"]("&#x23de;"),i(t.$parameter_one())?(r=m("Utility").$ox_element("mover"),i(t.$attributes())&&o(t.$attributes()["$empty?"]())&&r.$attributes()["$merge!"](t.$attributes()),m("Utility").$update_nodes(r,[t.$parameter_one().$to_mathml_without_math_tag(),e])):e})),s(c,"$validate_function_formula",l(!1)),s(c,"$to_omml_without_math_tag",(function(e){var t=this,r=_;return i(t.$parameter_one())?i(t.$attributes())&&i(t.$attributes()["$[]"]("accent"))?t.$acc_tag(e):(r=m("Symbol").$new("⏞"),m("Overset").$new(t.$parameter_one(),r).$to_omml_without_math_tag(!0)):t.$r_element("⏞",new Map([["rpr_tag",!1]]))})),c.$protected(),s(c,"$acc_tag",(function(e){var t,r=_;return t=m("Utility").$ox_element("acc",new Map([["namespace","m"]])),(r=m("Utility").$ox_element("accPr",new Map([["namespace","m"]])))["$<<"](m("Utility").$ox_element("chr",new Map([["namespace","m"],["attributes",new Map([["m:val","⏞"]])]]))),m("Utility").$update_nodes(t,[r,this.$omml_parameter(this.$parameter_one(),e,new Map([["tag_name","e"],["namespace","m"]]))]),[t]}))}(p[0],m("UnaryFunction"),p),$(p[0],"Overbrace",m("Obrace"))}(p[0],p)}(p[0],p)}(c[0],c)},Opal.modules["plurimath/math/function/oint"]=function(e){var t=e.module,r=e.klass,n=e.const_set,a=e.truthy,s=e.def,i=e.top,o=[],l=e.nil;return e.add_stubs("parameter_one,wrapped,parameter_two,strip,to_asciimath,parameter_three,latex_wrapped,class_name,to_latex,<<,ox_element,to_s,invert_unicode_symbols,all_values_exist?,to_mathml_without_math_tag,update_nodes,nil?,compact,narypr,omml_parameter"),i.$require("plurimath//math/function/oint.rb/../ternary_function"),function(i,o){var $=[t(i,"Plurimath")].concat(o);return function(i,o){var $=[t(i,"Math")].concat(o);return function(i,o){var $=[t(i,"Function")].concat(o),u=e.$r($);return function(t,i,o){var $=r(t,i,"Oint"),u=[$].concat(o),c=e.$r(u);return n(u[0],"FUNCTION",new Map([["name","contour integral"],["first_value","subscript"],["second_value","supscript"]])),s($,"$to_asciimath",(function(){var e,t=this,r=l,n=l;return a(t.$parameter_one())&&(r="_"+t.$wrapped(t.$parameter_one())),a(t.$parameter_two())&&(n="^"+t.$wrapped(t.$parameter_two())),("oint"+r+n+" "+(e=t.$parameter_three(),e===l||null==e?l:e.$to_asciimath())).$strip()})),s($,"$to_latex",(function(){var e,t=this,r=l,n=l;return a(t.$parameter_one())&&(r="_"+t.$latex_wrapped(t.$parameter_one())),a(t.$parameter_two())&&(n="^"+t.$latex_wrapped(t.$parameter_two())),("\\"+t.$class_name()+r+n+" "+(e=t.$parameter_three(),e===l||null==e?l:e.$to_latex())).$strip()})),s($,"$to_mathml_without_math_tag",(function(){var e,t,r,n,s,i=this,o=l,$=l;return n=c("Utility").$ox_element("mo")["$<<"](i.$invert_unicode_symbols().$to_s()),a(i["$all_values_exist?"]())?((o=[n])["$<<"]((e=i.$parameter_one())===l||null==e?l:e.$to_mathml_without_math_tag()),o["$<<"]((t=i.$parameter_two())===l||null==t?l:t.$to_mathml_without_math_tag()),s=a(i.$parameter_one())&&a(i.$parameter_two())?"subsup":a(i.$parameter_one())?"sub":"sup",$=c("Utility").$ox_element("m"+s),c("Utility").$update_nodes($,o),a(i.$parameter_three()["$nil?"]())?$:c("Utility").$update_nodes(c("Utility").$ox_element("mrow"),[$,(r=i.$parameter_three(),r===l||null==r?l:r.$to_mathml_without_math_tag())].$compact())):n})),s($,"$to_omml_without_math_tag",(function(e){var t=this,r=l,n=l,s=l;return a(t["$all_values_exist?"]())?(r=c("Utility").$ox_element("nary",new Map([["namespace","m"]])),c("Utility").$update_nodes(r,[t.$narypr("∮",new Map([["function_type","subSup"]])),t.$omml_parameter(t.$parameter_one(),e,new Map([["tag_name","sub"]])),t.$omml_parameter(t.$parameter_two(),e,new Map([["tag_name","sup"]])),t.$omml_parameter(t.$parameter_three(),e,new Map([["tag_name","e"]]))]),[r]):(n=c("Utility").$ox_element("r",new Map([["namespace","m"]])),s=c("Utility").$ox_element("t",new Map([["namespace","m"]])),n["$<<"](s["$<<"]("&#x222e;")),[n])}))}($[0],u("TernaryFunction"),$)}($[0],$)}($[0],$)}(o[0],o)},Opal.modules["plurimath/math/function/over"]=function(e){var t=e.module,r=e.klass,n=e.const_set,a=e.def,s=e.top,i=[],o=e.nil;return e.add_stubs("freeze,wrapped,parameter_one,parameter_two,ox_element,to_mathml_without_math_tag,update_nodes,to_latex,<<,pr_element,omml_parameter"),s.$require("plurimath//math/function/over.rb/../binary_function"),function(s,i){var l=[t(s,"Plurimath")].concat(i);return function(s,i){var l=[t(s,"Math")].concat(i);return function(s,i){var l=[t(s,"Function")].concat(i),$=e.$r(l);return function(t,s,i){var l=r(t,s,"Over"),$=[l].concat(i),u=e.$r($);return n($[0],"FUNCTION",new Map([["name","over"],["first_value","numerator"],["second_value","denominator"]]).$freeze()),a(l,"$to_asciimath",(function(){var e=this;return"frac"+e.$wrapped(e.$parameter_one())+e.$wrapped(e.$parameter_two())})),a(l,"$to_mathml_without_math_tag",(function(){var e,t,r,n=o,a=o;return r=u("Utility").$ox_element("mfrac"),n=(e=this.$parameter_one())===o||null==e?o:e.$to_mathml_without_math_tag(),a=(t=this.$parameter_two())===o||null==t?o:t.$to_mathml_without_math_tag(),u("Utility").$update_nodes(r,[n,a])})),a(l,"$to_latex",(function(){var e,t;return"{"+((e=this.$parameter_one())===o||null==e?o:e.$to_latex())+" \\over "+((t=this.$parameter_two())===o||null==t?o:t.$to_latex())+"}"})),a(l,"$to_omml_without_math_tag",(function(e){var t,r=this,n=o;return t=u("Utility").$ox_element("f",new Map([["namespace","m"]])),n=u("Utility").$ox_element("fPr",new Map([["namespace","m"]])),u("Utility").$update_nodes(t,[n["$<<"](u("Utility").$pr_element("ctrl",!0,new Map([["namespace","m"]]))),r.$omml_parameter(r.$parameter_one(),e,new Map([["tag_name","num"]])),r.$omml_parameter(r.$parameter_two(),e,new Map([["tag_name","den"]]))]),[t]}))}(l[0],$("BinaryFunction"),l)}(l[0],l)}(l[0],l)}(i[0],i)},Opal.modules["plurimath/math/function/overset"]=function(e){var t=e.module,r=e.klass,n=e.const_set,a=e.def,s=e.not,i=e.top,o=[],l=e.nil;return e.add_stubs("freeze,to_mathml_without_math_tag,parameter_one,parameter_two,ox_element,update_nodes,!,new,to_omml_without_math_tag,<<,pr_element,omml_parameter"),i.$require("plurimath//math/function/overset.rb/../binary_function"),function(i,o){var $=[t(i,"Plurimath")].concat(o);return function(i,o){var $=[t(i,"Math")].concat(o);return function(i,o){var $=[t(i,"Function")].concat(o),u=e.$r($);return function(t,i,o){var $=r(t,i,"Overset"),u=[$].concat(o),c=e.$r(u);return n(u[0],"FUNCTION",new Map([["name","overset"],["first_value","base"],["second_value","supscript"]]).$freeze()),a($,"$to_mathml_without_math_tag",(function(){var e,t,r,n=l,a=l;return n=(e=this.$parameter_one())===l||null==e?l:e.$to_mathml_without_math_tag(),a=(t=this.$parameter_two())===l||null==t?l:t.$to_mathml_without_math_tag(),r=c("Utility").$ox_element("mover"),c("Utility").$update_nodes(r,[a,n])})),a($,"$to_omml_without_math_tag",(function(e){var t,r=this,n=l;return s(e)?c("Power").$new(r.$parameter_one(),r.$parameter_two()).$to_omml_without_math_tag(e):(t=c("Utility").$ox_element("limUpp",new Map([["namespace","m"]])),(n=c("Utility").$ox_element("limUppPr",new Map([["namespace","m"]])))["$<<"](c("Utility").$pr_element("ctrl",!0,new Map([["namespace","m"]]))),c("Utility").$update_nodes(t,[n,r.$omml_parameter(r.$parameter_one(),e,new Map([["tag_name","e"]])),r.$omml_parameter(r.$parameter_two(),e,new Map([["tag_name","lim"]]))]),[t])}))}($[0],u("BinaryFunction"),$)}($[0],$)}($[0],$)}(o[0],o)},Opal.modules["plurimath/math/function/phantom"]=function(e){var t=e.module,r=e.klass,n=e.def,a=e.send,s=e.top,i=[],o=e.nil;return e.add_stubs("join,new,length,parameter_one,ox_element,update_nodes,map,to_proc"),s.$require("plurimath//math/function/phantom.rb/../unary_function"),function(s,i){var l=[t(s,"Plurimath")].concat(i);return function(s,i){var l=[t(s,"Math")].concat(i);return function(s,i){var l=[t(s,"Function")].concat(i),$=e.$r(l);return function(t,s,i){var l=r(t,s,"Phantom"),$=[l].concat(i),u=e.$r($);return n(l,"$to_asciimath",(function(){var e;return""+u("Array").$new((e=this.$parameter_one(),e===o||null==e?o:e.$length()),"\\ ").$join()})),n(l,"$to_html",(function(){var e;return"<i>"+u("Array").$new((e=this.$parameter_one(),e===o||null==e?o:e.$length()),"&nbsp;").$join()+"</i>"})),n(l,"$to_latex",(function(){var e;return u("Array").$new((e=this.$parameter_one(),e===o||null==e?o:e.$length()),"\\ ").$join()})),n(l,"$to_mathml_without_math_tag",(function(){var e,t;return t=u("Utility").$ox_element("mphantom"),u("Utility").$update_nodes(t,(e=this.$parameter_one())===o||null==e?o:a(e,"map",[],"to_mathml_without_math_tag".$to_proc()))}))}(l[0],$("UnaryFunction"),l)}(l[0],l)}(l[0],l)}(i[0],i)},Opal.modules["plurimath/math/function/power"]=function(e){var t=e.module,r=e.klass,n=e.const_set,a=e.truthy,s=e.def,i=e.top,o=[],l=e.nil;return e.add_stubs("freeze,parameter_two,wrapped,to_asciimath,parameter_one,include?,class_name,ox_element,validate_mathml_fields,<<,update_nodes,to_latex,to_html,pr_element,omml_parameter"),i.$require("plurimath//math/function/power.rb/../binary_function"),function(i,o){var $=[t(i,"Plurimath")].concat(o);return function(i,o){var $=[t(i,"Math")].concat(o);return function(i,o){var $=[t(i,"Function")].concat(o),u=e.$r($);return function(t,i,o){var $=r(t,i,"Power"),u=[$].concat(o),c=e.$r(u);return n(u[0],"FUNCTION",new Map([["name","superscript"],["first_value","base"],["second_value","script"]]).$freeze()),s($,"$to_asciimath",(function(){var e=this,t=l;return a(e.$parameter_two())&&(t="^"+e.$wrapped(e.$parameter_two())),""+e.$parameter_one().$to_asciimath()+t})),s($,"$to_mathml_without_math_tag",(function(){var e,t,r,n=this,s=l;return t=a(["ubrace","obrace"]["$include?"]((e=n.$parameter_one())===l||null==e?l:e.$class_name()))?"over":"sup",r=c("Utility").$ox_element("m"+t),(s=[n.$validate_mathml_fields(n.$parameter_one())])["$<<"](n.$validate_mathml_fields(n.$parameter_two())),c("Utility").$update_nodes(r,s)})),s($,"$to_latex",(function(){var e,t=this,r=l;return e=t.$parameter_one().$to_latex(),a(t.$parameter_two())&&(r=t.$parameter_two().$to_latex()),e+"^{"+r+"}"})),s($,"$to_html",(function(){var e=this,t=l,r=l;return a(e.$parameter_one())&&(t="<i>"+e.$parameter_one().$to_html()+"</i>"),a(e.$parameter_two())&&(r="<sup>"+e.$parameter_two().$to_html()+"</sup>"),""+t+r})),s($,"$to_omml_without_math_tag",(function(e){var t,r=this,n=l;return t=c("Utility").$ox_element("sSup",new Map([["namespace","m"]])),(n=c("Utility").$ox_element("sSupPr",new Map([["namespace","m"]])))["$<<"](c("Utility").$pr_element("ctrl",!0,new Map([["namespace","m"]]))),c("Utility").$update_nodes(t,[n,r.$omml_parameter(r.$parameter_one(),e,new Map([["tag_name","e"]])),r.$omml_parameter(r.$parameter_two(),e,new Map([["tag_name","sup"]]))]),[t]}))}($[0],u("BinaryFunction"),$)}($[0],$)}($[0],$)}(o[0],o)},Opal.modules["plurimath/math/function/power_base"]=function(e){var t=e.module,r=e.klass,n=e.const_set,a=e.def,s=e.truthy,i=e.eqeq,o=e.top,l=[],$=e.nil;return e.add_stubs("freeze,ox_element,tag_name,parameter_one,<<,validate_mathml_fields,parameter_two,parameter_three,update_nodes,to_latex,to_html,==,omml_tag_name,underover,hide_tags,pr_element,omml_parameter,protected,nil?"),o.$require("plurimath//math/function/power_base.rb/../ternary_function"),function(o,l){var u=[t(o,"Plurimath")].concat(l);return function(o,l){var u=[t(o,"Math")].concat(l);return function(o,l){var u=[t(o,"Function")].concat(l),c=e.$r(u);return function(t,o,l){var u=r(t,o,"PowerBase"),c=[u].concat(l),_=e.$r(c);return n(c[0],"FUNCTION",new Map([["name","subsup"],["first_value","base"],["second_value","subscript"],["third_value","supscript"]]).$freeze()),a(u,"$to_mathml_without_math_tag",(function(){var e,t=this,r=$;return e=_("Utility").$ox_element("m"+t.$parameter_one().$tag_name()),(r=[])["$<<"](t.$validate_mathml_fields(t.$parameter_one())),r["$<<"](t.$validate_mathml_fields(t.$parameter_two())),r["$<<"](t.$validate_mathml_fields(t.$parameter_three())),_("Utility").$update_nodes(e,r)})),a(u,"$to_latex",(function(){var e=this,t=$,r=$,n=$;return s(e.$parameter_one())&&(t=e.$parameter_one().$to_latex()),s(e.$parameter_two())&&(r=e.$parameter_two().$to_latex()),s(e.$parameter_three())&&(n=e.$parameter_three().$to_latex()),t+"_{"+r+"}^{"+n+"}"})),a(u,"$to_html",(function(){var e=this,t=$,r=$,n=$;return s(e.$parameter_one())&&(t="<i>"+e.$parameter_one().$to_html()+"</i>"),s(e.$parameter_two())&&(r="<sub>"+e.$parameter_two().$to_html()+"</sub>"),s(e.$parameter_three())&&(n="<sup>"+e.$parameter_three().$to_html()+"</sup>"),""+t+r+n})),a(u,"$to_omml_without_math_tag",(function(e){var t,r=this,n=$;return i(r.$parameter_one().$omml_tag_name(),"undOvr")?r.$underover(e):(t=_("Utility").$ox_element("sSubSup",new Map([["namespace","m"]])),(n=_("Utility").$ox_element("sSubSupPr",new Map([["namespace","m"]])))["$<<"](r.$hide_tags(_("Utility").$pr_element("ctrl",!0,new Map([["namespace","m"]])))),_("Utility").$update_nodes(t,[n,r.$omml_parameter(r.$parameter_one(),e,new Map([["tag_name","e"]])),r.$omml_parameter(r.$parameter_two(),e,new Map([["tag_name","sub"]])),r.$omml_parameter(r.$parameter_three(),e,new Map([["tag_name","sup"]]))]),[t])})),u.$protected(),a(u,"$hide_tags",(function(e){var t;return t=new Map([["m:val","1"]]),s(this.$parameter_two()["$nil?"]())&&e["$<<"](_("Utility").$ox_element("subHide",new Map([["namespace","m"],["attributes",t]]))),s(this.$parameter_three()["$nil?"]())&&e["$<<"](_("Utility").$ox_element("supHide",new Map([["namespace","m"],["attributes",t]]))),e}))}(u[0],c("TernaryFunction"),u)}(u[0],u)}(u[0],u)}(l[0],l)},Opal.modules["plurimath/math/function/prod"]=function(e){var t=e.module,r=e.klass,n=e.const_set,a=e.truthy,s=e.def,i=e.return_val,o=e.top,l=[],$=e.nil;return e.add_stubs("freeze,parameter_one,wrapped,parameter_two,strip,to_asciimath,parameter_three,to_latex,<<,ox_element,to_s,invert_unicode_symbols,to_mathml_without_math_tag,update_nodes,nil?,compact,flatten,to_html,all_values_exist?,r_element,narypr,omml_parameter"),o.$require("plurimath//math/function/prod.rb/../ternary_function"),function(o,l){var u=[t(o,"Plurimath")].concat(l);return function(o,l){var u=[t(o,"Math")].concat(l);return function(o,l){var u=[t(o,"Function")].concat(l),c=e.$r(u);return function(t,o,l){var u=r(t,o,"Prod"),c=[u].concat(l),_=e.$r(c);return n(c[0],"FUNCTION",new Map([["name","prod"],["first_value","subscript"],["second_value","supscript"]]).$freeze()),s(u,"$to_asciimath",(function(){var e,t=this,r=$,n=$;return a(t.$parameter_one())&&(r="_"+t.$wrapped(t.$parameter_one())),a(t.$parameter_two())&&(n="^"+t.$wrapped(t.$parameter_two())),("prod"+r+n+" "+(e=t.$parameter_three(),e===$||null==e?$:e.$to_asciimath())).$strip()})),s(u,"$to_latex",(function(){var e,t=this,r=$,n=$;return a(t.$parameter_one())&&(r="_{"+t.$parameter_one().$to_latex()+"}"),a(t.$parameter_two())&&(n="^{"+t.$parameter_two().$to_latex()+"}"),("\\prod"+r+n+" "+(e=t.$parameter_three(),e===$||null==e?$:e.$to_latex())).$strip()})),s(u,"$to_mathml_without_math_tag",(function(){var e,t,r,n,s=this,i=$,o=$,l=$;return n=_("Utility").$ox_element("mo")["$<<"](s.$invert_unicode_symbols().$to_s()),a(s.$parameter_one())||a(s.$parameter_two())?((i=[n])["$<<"]((e=s.$parameter_one())===$||null==e?$:e.$to_mathml_without_math_tag()),i["$<<"]((t=s.$parameter_two())===$||null==t?$:t.$to_mathml_without_math_tag()),o=a(s.$parameter_two())&&a(s.$parameter_one())?"underover":a(s.$parameter_one())?"under":"over",l=_("Utility").$ox_element("m"+o),_("Utility").$update_nodes(l,i),a(s.$parameter_three()["$nil?"]())?l:_("Utility").$update_nodes(_("Utility").$ox_element("mrow"),[l,(r=s.$parameter_three(),r===$||null==r?$:r.$to_mathml_without_math_tag())].$flatten().$compact())):n})),s(u,"$to_html",(function(){var e=this,t=$,r=$;return a(e.$parameter_one())&&(t="<sub>"+e.$parameter_one().$to_html()+"</sub>"),a(e.$parameter_two())&&(r="<sup>"+e.$parameter_two().$to_html()+"</sup>"),"<i>&prod;</i>"+t+r})),s(u,"$to_omml_without_math_tag",(function(e){var t,r=this;return a(r["$all_values_exist?"]())?(t=_("Utility").$ox_element("nary",new Map([["namespace","m"]])),_("Utility").$update_nodes(t,[r.$narypr("∏"),r.$omml_parameter(r.$parameter_one(),e,new Map([["tag_name","sub"]])),r.$omml_parameter(r.$parameter_two(),e,new Map([["tag_name","sup"]])),r.$omml_parameter(r.$parameter_three(),e,new Map([["tag_name","e"]]))]),[t]):r.$r_element("&#x220f;",new Map([["rpr_tag",!1]]))})),s(u,"$nary_attr_value",i("∏"))}(u[0],c("TernaryFunction"),u)}(u[0],u)}(u[0],u)}(l[0],l)},Opal.modules["plurimath/math/function/right"]=function(e){var t=e.module,r=e.klass,n=e.def,a=e.truthy,s=e.return_val,i=e.slice,o=e.annotate_regexp,l=e.extract_kwargs,$=e.ensure_kwargs,u=e.get_kwarg,c=e.eqeq,_=e.top,p=[],m=e.nil;return e.add_stubs("parameter_one,ox_element,<<,right_paren,latex_paren,gsub,dump_ox_nodes,protected,=="),_.$require("plurimath//math/function/right.rb/../unary_function"),function(_,p){var d=[t(_,"Plurimath")].concat(p);return function(_,p){var d=[t(_,"Math")].concat(p);return function(_,p){var d=[t(_,"Function")].concat(p),f=e.$r(d);return function(t,_,p){var d=r(t,_,"Right"),f=[d].concat(p),h=e.$r(f);return n(d,"$to_asciimath",(function(){return"right"+this.$parameter_one()})),n(d,"$to_mathml_without_math_tag",(function(){var e=m;return e=h("Utility").$ox_element("mo"),a(this.$parameter_one())&&e["$<<"](this.$right_paren()),e})),n(d,"$to_omml_without_math_tag",(function(e){var t=m,r=m;return t=h("Utility").$ox_element("m:r"),a(this.$parameter_one())&&(r=h("Utility").$ox_element("m:t"),t["$<<"](r["$<<"](this.$parameter_one()))),[t]})),n(d,"$to_html",(function(){return"<i>"+this.$parameter_one()+"</i>"})),n(d,"$to_latex",(function(){return"\\right "+this.$latex_paren()})),n(d,"$validate_function_formula",s(!1)),n(d,"$to_asciimath_math_zone",(function(e,t,r){var n,a;return(n=i(arguments)).length>2&&(a=n.shift()),null==a&&(a=""),null==n.shift()&&m,null==n.shift()&&m,a+'"'+this.$latex_paren()+'" right\n'}),-3),n(d,"$to_latex_math_zone",(function(e,t,r){var n,a;return(n=i(arguments)).length>2&&(a=n.shift()),null==a&&(a=""),null==n.shift()&&m,null==n.shift()&&m,a+'"'+this.$latex_paren()+'" right\n'}),-3),n(d,"$to_mathml_math_zone",(function(e,t,r){var n,a,s;return(n=i(arguments)).length>2&&(a=n.shift()),null==a&&(a=""),null==n.shift()&&m,null==n.shift()&&m,s=h("Utility").$ox_element("mo")["$<<"](this.$right_paren()),a+'"'+this.$dump_ox_nodes(s).$gsub(o(/\s+/u,null,""),"")+'" right\n'}),-3),n(d,"$to_omml_math_zone",(function(e,t,r,n){var a,s,c,_;return a=i(arguments),s=l(a),s=$(s),a.length>2&&(c=a.shift()),null==c&&(c=""),null==a.shift()&&m,null==a.shift()&&m,u(s,"display_style"),_=h("Utility").$ox_element("t",new Map([["namespace","m"]]))["$<<"](this.$right_paren()),c+'"'+this.$dump_ox_nodes(_).$gsub(o(/\s+/u,null,""),"")+'" right\n'}),-4),d.$protected(),n(d,"$right_paren",(function(){return c(this.$parameter_one(),"\\}")?"}":this.$parameter_one()}))}(d[0],f("UnaryFunction"),d)}(d[0],d)}(d[0],d)}(p[0],p)},Opal.modules["plurimath/math/function/root"]=function(e){var t=e.module,r=e.klass,n=e.const_set,a=e.def,s=e.top,i=[],o=e.nil;return e.add_stubs("freeze,to_mathml_without_math_tag,parameter_one,parameter_two,update_nodes,ox_element,to_latex,<<,pr_element,omml_parameter"),s.$require("plurimath//math/function/root.rb/../binary_function"),function(s,i){var l=[t(s,"Plurimath")].concat(i);return function(s,i){var l=[t(s,"Math")].concat(i);return function(s,i){var l=[t(s,"Function")].concat(i),$=e.$r(l);return function(t,s,i){var l=r(t,s,"Root"),$=[l].concat(i),u=e.$r($);return n($[0],"FUNCTION",new Map([["name","root"],["first_value","radicand"],["second_value","index"]]).$freeze()),a(l,"$to_mathml_without_math_tag",(function(){var e,t,r=o,n=o;return r=(e=this.$parameter_one())===o||null==e?o:e.$to_mathml_without_math_tag(),n=(t=this.$parameter_two())===o||null==t?o:t.$to_mathml_without_math_tag(),u("Utility").$update_nodes(u("Utility").$ox_element("mroot"),[n,r])})),a(l,"$to_latex",(function(){var e,t;return"\\sqrt["+((e=this.$parameter_one())===o||null==e?o:e.$to_latex())+"]{"+((t=this.$parameter_two())===o||null==t?o:t.$to_latex())+"}"})),a(l,"$to_omml_without_math_tag",(function(e){var t,r=this,n=o;return t=u("Utility").$ox_element("rad",new Map([["namespace","m"]])),n=u("Utility").$ox_element("radPr",new Map([["namespace","m"]])),u("Utility").$update_nodes(t,[n["$<<"](u("Utility").$pr_element("ctrl",!0,new Map([["namespace","m"]]))),r.$omml_parameter(r.$parameter_two(),e,new Map([["tag_name","deg"]])),r.$omml_parameter(r.$parameter_one(),e,new Map([["tag_name","e"]]))]),[t]}))}(l[0],$("BinaryFunction"),l)}(l[0],l)}(l[0],l)}(i[0],i)},Opal.modules["plurimath/math/function/rule"]=function(e){var t=e.module,r=e.klass,n=e.const_set,a=e.return_val,s=e.def,i=e.truthy,o=e.top,l=[],$=e.nil;return e.add_stubs("freeze,parameter_one,to_latex,parameter_two,parameter_three,ox_element,<<"),o.$require("plurimath//math/function/rule.rb/../ternary_function"),function(o,l){var u=[t(o,"Plurimath")].concat(l);return function(o,l){var u=[t(o,"Math")].concat(l);return function(o,l){var u=[t(o,"Function")].concat(l),c=e.$r(u);return function(t,o,l){var u=r(t,o,"Rule"),c=[u].concat(l),_=e.$r(c);return n(c[0],"FUNCTION",new Map([["name","rule"],["first_value","first argument"],["second_value","second argument"],["third_value","third argument"]]).$freeze()),s(u,"$to_asciimath",a("")),s(u,"$to_latex",(function(){var e=this,t=$,r=$,n=$;return i(e.$parameter_one())&&(t="["+e.$parameter_one().$to_latex()+"]"),i(e.$parameter_two())&&(r="{"+e.$parameter_two().$to_latex()+"}"),i(e.$parameter_three())&&(n="{"+e.$parameter_three().$to_latex()+"}"),"\\rule"+t+r+n})),s(u,"$to_mathml_without_math_tag",(function(){return _("Utility").$ox_element("mi")})),s(u,"$to_omml_without_math_tag",(function(e){return[_("Utility").$ox_element("m:r")["$<<"](_("Utility").$ox_element("m:t"))]})),s(u,"$to_html",a(""))}(u[0],c("TernaryFunction"),u)}(u[0],u)}(u[0],u)}(l[0],l)},Opal.modules["plurimath/math/function/scarries"]=function(e){var t=e.module,r=e.klass,n=e.def,a=e.top,s=[];e.nil;return e.add_stubs("omml_value"),a.$require("plurimath//math/function/scarries.rb/../unary_function"),function(a,s){var i=[t(a,"Plurimath")].concat(s);return function(a,s){var i=[t(a,"Math")].concat(s);return function(a,s){var i=[t(a,"Function")].concat(s),o=e.$r(i);return function(e,t){var a=r(e,t,"Scarries");return n(a,"$to_omml_without_math_tag",(function(e){return this.$omml_value(e)}))}(i[0],o("UnaryFunction"))}(i[0],i)}(i[0],i)}(s[0],s)},Opal.modules["plurimath/math/function/scarry"]=function(e){var t=e.module,r=e.klass,n=e.top,a=[],s=e.nil;return n.$require("plurimath//math/function/scarry.rb/../unary_function"),function(n,a){var i=[t(n,"Plurimath")].concat(a);return function(n,a){var i=[t(n,"Math")].concat(a);return function(n,a){var i=[t(n,"Function")].concat(a),o=e.$r(i);return r(i[0],o("UnaryFunction"),"Scarry"),s}(i[0],i)}(i[0],i)}(a[0],a)},Opal.modules["plurimath/math/function/sec"]=function(e){var t=e.module,r=e.klass,n=e.return_val,a=e.def,s=e.top,i=[];e.nil;return s.$require("plurimath//math/function/sec.rb/../unary_function"),function(s,i){var o=[t(s,"Plurimath")].concat(i);return function(s,i){var o=[t(s,"Math")].concat(i);return function(s,i){var o=[t(s,"Function")].concat(i),l=e.$r(o);return function(e,t){var s=r(e,t,"Sec");return a(s,"$validate_function_formula",n(!1))}(o[0],l("UnaryFunction"))}(o[0],o)}(o[0],o)}(i[0],i)},Opal.modules["plurimath/math/function/sech"]=function(e){var t=e.module,r=e.klass,n=e.return_val,a=e.def,s=e.top,i=[];e.nil;return s.$require("plurimath//math/function/sech.rb/../unary_function"),function(s,i){var o=[t(s,"Plurimath")].concat(i);return function(s,i){var o=[t(s,"Math")].concat(i);return function(s,i){var o=[t(s,"Function")].concat(i),l=e.$r(o);return function(e,t){var s=r(e,t,"Sech");return a(s,"$validate_function_formula",n(!1))}(o[0],l("UnaryFunction"))}(o[0],o)}(o[0],o)}(i[0],i)},Opal.modules["plurimath/math/function/semantics"]=function(e){var t=e.module,r=e.klass,n=e.const_set,a=e.def,s=e.send,i=e.top,o=[],l=e.nil;return e.add_stubs("freeze,to_mathml_without_math_tag,parameter_one,other_tags,parameter_two,update_nodes,ox_element,insert,to_latex,to_asciimath,Array,insert_t_tag,protected,each,to_s,<<,map,to_proc"),i.$require("plurimath//math/function/semantics.rb/../binary_function"),function(i,o){var $=[t(i,"Plurimath")].concat(o);return function(i,o){var $=[t(i,"Math")].concat(o);return function(i,o){var $=[t(i,"Function")].concat(o),u=e.$r($);return function(t,i,o){var $=r(t,i,"Semantics"),u=[$].concat(o),c=e.$r(u);return n(u[0],"FUNCTION",new Map([["name","semantics"],["first_value","first argument"],["second_value","second argument"]]).$freeze()),a($,"$to_mathml_without_math_tag",(function(){var e,t=this,r=l,n=l;return r=(e=t.$parameter_one())===l||null==e?l:e.$to_mathml_without_math_tag(),n=t.$other_tags(t.$parameter_two()),c("Utility").$update_nodes(c("Utility").$ox_element("semantics"),n.$insert(0,r))})),a($,"$to_latex",(function(){var e;return(e=this.$parameter_one())===l||null==e?l:e.$to_latex()})),a($,"$to_asciimath",(function(){var e;return(e=this.$parameter_one())===l||null==e?l:e.$to_asciimath()})),a($,"$to_omml_without_math_tag",(function(e){return this.$Array(this.$parameter_one().$insert_t_tag(e))})),$.$protected(),a($,"$other_tags",(function(e){var t,r=l;return r=[],(t=e)===l||null==t||s(t,"each",[],(function(e){return null==e&&(e=l),s(e,"each",[],(function(e,t){var n,a,i;return null==e&&(e=l),null==t&&(t=l),i=c("Utility").$ox_element((n=e)===l||null==n?l:n.$to_s()),r["$<<"](c("Utility").$update_nodes(i,(a=t)===l||null==a?l:s(a,"map",[],"to_mathml_without_math_tag".$to_proc())))}))})),r}))}($[0],u("BinaryFunction"),$)}($[0],$)}($[0],$)}(o[0],o)},Opal.modules["plurimath/math/function/sin"]=function(e){var t=e.module,r=e.klass,n=e.return_val,a=e.def,s=e.top,i=[];e.nil;return s.$require("plurimath//math/function/sin.rb/../unary_function"),function(s,i){var o=[t(s,"Plurimath")].concat(i);return function(s,i){var o=[t(s,"Math")].concat(i);return function(s,i){var o=[t(s,"Function")].concat(i),l=e.$r(o);return function(e,t){var s=r(e,t,"Sin");return a(s,"$validate_function_formula",n(!1))}(o[0],l("UnaryFunction"))}(o[0],o)}(o[0],o)}(i[0],i)},Opal.modules["plurimath/math/function/sinh"]=function(e){var t=e.module,r=e.klass,n=e.return_val,a=e.def,s=e.top,i=[];e.nil;return s.$require("plurimath//math/function/sinh.rb/../unary_function"),function(s,i){var o=[t(s,"Plurimath")].concat(i);return function(s,i){var o=[t(s,"Math")].concat(i);return function(s,i){var o=[t(s,"Function")].concat(i),l=e.$r(o);return function(e,t){var s=r(e,t,"Sinh");return a(s,"$validate_function_formula",n(!1))}(o[0],l("UnaryFunction"))}(o[0],o)}(o[0],o)}(i[0],i)},Opal.modules["plurimath/math/function/sqrt"]=function(e){var t=e.module,r=e.klass,n=e.def,a=e.top,s=[],i=e.nil;return e.add_stubs("ox_element,update_nodes,Array,to_mathml_without_math_tag,parameter_one,<<,pr_element,omml_parameter"),a.$require("plurimath//math/function/sqrt.rb/../unary_function"),function(a,s){var o=[t(a,"Plurimath")].concat(s);return function(a,s){var o=[t(a,"Math")].concat(s);return function(a,s){var o=[t(a,"Function")].concat(s),l=e.$r(o);return function(t,a,s){var o=r(t,a,"Sqrt"),l=[o].concat(s),$=e.$r(l);return n(o,"$to_mathml_without_math_tag",(function(){var e,t;return t=$("Utility").$ox_element("msqrt"),$("Utility").$update_nodes(t,this.$Array((e=this.$parameter_one())===i||null==e?i:e.$to_mathml_without_math_tag())),t})),n(o,"$to_omml_without_math_tag",(function(e){var t,r=i;return t=$("Utility").$ox_element("rad",new Map([["namespace","m"]])),(r=$("Utility").$ox_element("radPr",new Map([["namespace","m"]])))["$<<"]($("Utility").$ox_element("degHide",new Map([["namespace","m"],["attributes",new Map([["m:val","1"]])]]))),$("Utility").$update_nodes(t,[r["$<<"]($("Utility").$pr_element("ctrl",!0,new Map([["namespace","m"]]))),$("Utility").$ox_element("deg",new Map([["namespace","m"]])),this.$omml_parameter(this.$parameter_one(),e,new Map([["tag_name","e"]]))]),[t]}))}(o[0],l("UnaryFunction"),o)}(o[0],o)}(o[0],o)}(s[0],s)},Opal.modules["plurimath/math/function/stackrel"]=function(e){var t=e.module,r=e.klass,n=e.const_set,a=e.def,s=e.truthy,i=e.top,o=[],l=e.nil;return e.add_stubs("freeze,wrapped,parameter_one,parameter_two,class_name,ox_element,<<,to_mathml_without_math_tag,update_nodes,to_html,pr_element,omml_parameter,protected,to_asciimath,start_with?"),i.$require("plurimath//math/function/stackrel.rb/../binary_function"),function(i,o){var $=[t(i,"Plurimath")].concat(o);return function(i,o){var $=[t(i,"Math")].concat(o);return function(i,o){var $=[t(i,"Function")].concat(o),u=e.$r($);return function(t,i,o){var $=r(t,i,"Stackrel"),u=[$].concat(o),c=e.$r(u);return n(u[0],"FUNCTION",new Map([["name","stackrel"],["first_value","above"],["second_value","below"]]).$freeze()),a($,"$to_asciimath",(function(){var e,t,r=this;return e=r.$wrapped(r.$parameter_one()),t=r.$wrapped(r.$parameter_two()),""+r.$class_name()+e+t})),a($,"$to_mathml_without_math_tag",(function(){var e,t=this,r=l,n=l;return e=c("Utility").$ox_element("mover"),r=c("Utility").$ox_element("mrow"),s(t.$parameter_one())&&r["$<<"](t.$parameter_one().$to_mathml_without_math_tag()),n=c("Utility").$ox_element("mrow"),s(t.$parameter_two())&&n["$<<"](t.$parameter_two().$to_mathml_without_math_tag()),c("Utility").$update_nodes(e,[n,r])})),a($,"$to_html",(function(){var e,t;return""+((e=this.$parameter_one())===l||null==e?l:e.$to_html())+((t=this.$parameter_two())===l||null==t?l:t.$to_html())})),a($,"$to_omml_without_math_tag",(function(e){var t,r=this,n=l;return t=c("Utility").$ox_element("limUpp",new Map([["namespace","m"]])),(n=c("Utility").$ox_element("limUppPr",new Map([["namespace","m"]])))["$<<"](c("Utility").$pr_element("ctrl",!0,new Map([["namespace","m"]]))),c("Utility").$update_nodes(t,[n,r.$omml_parameter(r.$parameter_two(),e,new Map([["tag_name","e"]])),r.$omml_parameter(r.$parameter_one(),e,new Map([["tag_name","lim"]]))]),[t]})),$.$protected(),a($,"$wrapped",(function(e){var t,r=l,n=l;return r=s(n=(t=e)===l||null==t?l:t.$to_asciimath())?n:"",s(r["$start_with?"]("("))?r:"("+r+")"}))}($[0],u("BinaryFunction"),$)}($[0],$)}($[0],$)}(o[0],o)},Opal.modules["plurimath/math/function/substack"]=function(e){var t=e.module,r=e.klass,n=e.const_set,a=e.truthy,s=e.def,i=e.top,o=[],l=e.nil;return e.add_stubs("freeze,parameter_one,to_latex,parameter_two,class_name,<<,to_mathml_without_math_tag,update_nodes,ox_element,Array,mm_element,omml_parameter,protected"),i.$require("plurimath//math/function/substack.rb/../binary_function"),function(i,o){var $=[t(i,"Plurimath")].concat(o);return function(i,o){var $=[t(i,"Math")].concat(o);return function(i,o){var $=[t(i,"Function")].concat(o),u=e.$r($);return function(t,i,o){var $=r(t,i,"Substack"),u=[$].concat(o),c=e.$r(u);return n(u[0],"FUNCTION",new Map([["name","substack"],["first_value","above"],["second_value","below"]]).$freeze()),s($,"$to_latex",(function(){var e=this,t=l,r=l;return a(e.$parameter_one())&&(t=e.$parameter_one().$to_latex()),a(e.$parameter_two())&&(r="\\\\"+e.$parameter_two().$to_latex()),"\\"+e.$class_name()+"{"+t+r+"}"})),s($,"$to_mathml_without_math_tag",(function(){var e=this,t=l;return t=[],a(e.$parameter_one())&&t["$<<"](e.$parameter_one().$to_mathml_without_math_tag()),a(e.$parameter_two())&&t["$<<"](e.$parameter_two().$to_mathml_without_math_tag()),c("Utility").$update_nodes(c("Utility").$ox_element("mtable"),t)})),s($,"$to_omml_without_math_tag",(function(e){var t=this;return t.$Array(c("Utility").$update_nodes(t.$mm_element(),[t.$omml_parameter(t.$parameter_one(),e,new Map([["tag_name","mr"]])),t.$omml_parameter(t.$parameter_two(),e,new Map([["tag_name","mr"]]))]))})),$.$protected(),s($,"$mm_element",(function(){var e,t,r,n,a,s=l,i=l;return e=c("Utility").$ox_element("mcJc",new Map([["namespace","m"],["attributes",new Map([["m:val","center"]])]])),t=c("Utility").$ox_element("count",new Map([["namespace","m"],["attributes",new Map([["m:val","1"]])]])),c("Utility").$ox_element("baseJc",new Map([["namespace","m"],["attributes",new Map([["m:val","center"]])]])),c("Utility").$ox_element("plcHide",new Map([["namespace","m"],["attributes",new Map([["m:val","1"]])]])),r=c("Utility").$ox_element("m",new Map([["namespace","m"]])),s=c("Utility").$ox_element("mc",new Map([["namespace","m"]])),n=c("Utility").$ox_element("mpr",new Map([["namespace","m"]])),i=c("Utility").$ox_element("mcs",new Map([["namespace","m"]])),a=c("Utility").$ox_element("mcPr",new Map([["namespace","m"]])),s["$<<"](c("Utility").$update_nodes(a,[e,t])),i["$<<"](s),c("Utility").$update_nodes(r,[n])}))}($[0],u("BinaryFunction"),$)}($[0],$)}($[0],$)}(o[0],o)},Opal.modules["plurimath/math/function/sum"]=function(e){var t=e.module,r=e.klass,n=e.const_set,a=e.truthy,s=e.def,i=e.return_val,o=e.top,l=[],$=e.nil;return e.add_stubs("freeze,parameter_one,wrapped,parameter_two,strip,to_asciimath,parameter_three,to_latex,<<,ox_element,to_s,invert_unicode_symbols,to_mathml_without_math_tag,update_nodes,insert,nil?,compact,flatten,to_html,all_values_exist?,r_element,narypr,omml_parameter"),o.$require("plurimath//math/function/sum.rb/../ternary_function"),function(o,l){var u=[t(o,"Plurimath")].concat(l);return function(o,l){var u=[t(o,"Math")].concat(l);return function(o,l){var u=[t(o,"Function")].concat(l),c=e.$r(u);return function(t,o,l){var u=r(t,o,"Sum"),c=[u].concat(l),_=e.$r(c);return n(c[0],"FUNCTION",new Map([["name","summation"],["first_value","subscript"],["second_value","supscript"],["third_value","term"]]).$freeze()),s(u,"$to_asciimath",(function(){var e,t=this,r=$,n=$;return a(t.$parameter_one())&&(r="_"+t.$wrapped(t.$parameter_one())),a(t.$parameter_two())&&(n="^"+t.$wrapped(t.$parameter_two())),("sum"+r+n+" "+(e=t.$parameter_three(),e===$||null==e?$:e.$to_asciimath())).$strip()})),s(u,"$to_latex",(function(){var e,t=this,r=$,n=$;return a(t.$parameter_one())&&(r="_{"+t.$parameter_one().$to_latex()+"}"),a(t.$parameter_two())&&(n="^{"+t.$parameter_two().$to_latex()+"}"),("\\sum"+r+n+" "+(e=t.$parameter_three(),e===$||null==e?$:e.$to_latex())).$strip()})),s(u,"$to_mathml_without_math_tag",(function(){var e,t,r,n,s,i=this,o=$,l=$;return n=_("Utility").$ox_element("mo")["$<<"](i.$invert_unicode_symbols().$to_s()),a(i.$parameter_one())||a(i.$parameter_two())?((o=[(e=i.$parameter_one(),e===$||null==e?$:e.$to_mathml_without_math_tag())])["$<<"]((t=i.$parameter_two())===$||null==t?$:t.$to_mathml_without_math_tag()),s=a(i.$parameter_two())&&a(i.$parameter_one())?"underover":a(i.$parameter_one())?"under":"over",l=_("Utility").$ox_element("m"+s),_("Utility").$update_nodes(l,o.$insert(0,n)),a(i.$parameter_three()["$nil?"]())?l:_("Utility").$update_nodes(_("Utility").$ox_element("mrow"),[l,(r=i.$parameter_three(),r===$||null==r?$:r.$to_mathml_without_math_tag())].$flatten().$compact())):n})),s(u,"$to_html",(function(){var e=this,t=$,r=$;return a(e.$parameter_one())&&(t="<sub>"+e.$parameter_one().$to_html()+"</sub>"),a(e.$parameter_two())&&(r="<sup>"+e.$parameter_two().$to_html()+"</sup>"),"<i>&sum;</i>"+t+r})),s(u,"$to_omml_without_math_tag",(function(e){var t,r=this;return a(r["$all_values_exist?"]())?(t=_("Utility").$ox_element("nary",new Map([["namespace","m"]])),_("Utility").$update_nodes(t,[r.$narypr("∑"),r.$omml_parameter(r.$parameter_one(),e,new Map([["tag_name","sub"]])),r.$omml_parameter(r.$parameter_two(),e,new Map([["tag_name","sup"]])),r.$omml_parameter(r.$parameter_three(),e,new Map([["tag_name","e"]]))]),[t]):r.$r_element("&#x2211;",new Map([["rpr_tag",!1]]))})),s(u,"$omml_tag_name",i("undOvr")),s(u,"$nary_attr_value",i("∑"))}(u[0],c("TernaryFunction"),u)}(u[0],u)}(u[0],u)}(l[0],l)},Opal.modules["plurimath/math/function/sup"]=function(e){var t=e.module,r=e.klass,n=e.def,a=e.top,s=[];e.nil;return e.add_stubs("<<,ox_element,r_element,omml_value"),a.$require("plurimath//math/function/sup.rb/../unary_function"),function(a,s){var i=[t(a,"Plurimath")].concat(s);return function(a,s){var i=[t(a,"Math")].concat(s);return function(a,s){var i=[t(a,"Function")].concat(s),o=e.$r(i);return function(t,a,s){var i=r(t,a,"Sup"),o=[i].concat(s),l=e.$r(o);return n(i,"$to_mathml_without_math_tag",(function(){return l("Utility").$ox_element("mo")["$<<"]("sup")})),n(i,"$to_omml_without_math_tag",(function(e){return[this.$r_element("sup",new Map([["rpr_tag",!1]])),this.$omml_value(e)]}))}(i[0],o("UnaryFunction"),i)}(i[0],i)}(i[0],i)}(s[0],s)},Opal.modules["plurimath/math/function/table"]=function(e){var t=e.module,r=e.klass,n=e.def,a=e.truthy,s=e.send,i=e.eqeq,o=e.slice,l=e.extract_kwargs,$=e.ensure_kwargs,u=e.get_kwarg,c=e.rb_minus,_=[],p=e.nil,m=e.$$$;return e.add_stubs("attr_accessor,==,class,value,options,open_paren,close_paren,join,map,to_proc,is_a?,nil?,[],to_sym,ox_element,table_attribute,update_nodes,norm_table,present?,<<,mathml_parenthesis,latex_content,include?,environment,latex_parenthesis,all?,length,parameter_one,single_td_table,multiple_td_table,fenced_table,to_asciimath_math_zone,new,gsub_spacing,to_latex_math_zone,to_mathml_math_zone,to_omml_math_zone,protected,!,empty?,column_lines,mathml_attrs,insert,each_with_index,first,find,symbol_value,[]=,-,reject,dup,to_s,invert,class_name,key?,matrix_class,latex_columnalign,Hash,td_hash,parameter_two,value?,pr_element,flatten,to_omml_without_math_tag,compact,count,mdpr_node,begchr,endchr,paren"),function(_,d){var f=[t(_,"Plurimath")].concat(d);return function(_,d){var f=[t(_,"Math")].concat(d);return function(_,d){var f=[t(_,"Function")].concat(d),h=e.$r(f);return function(t,_,d){var f=r(t,_,"Table"),h=[f].concat(d),g=e.$r(h);return f.$attr_accessor("value","open_paren","close_paren","options"),n(f,"$initialize",(function(e,t,r,n){var a=this;return null==e&&(e=p),null==t&&(t=p),null==r&&(r=p),null==n&&(n=new Map),a.value=e,a.open_paren=t,a.close_paren=r,a.options=n}),-1),n(f,"$==",(function(e){var t,r,n,s,i=this;return a(t=a(r=a(n=a(s=e.$class()["$=="](i.$class()))?e.$value()["$=="](i.$value()):s)?e.$options()["$=="](i.$options()):n)?e.$open_paren()["$=="](i.$open_paren()):r)?e.$close_paren()["$=="](i.$close_paren()):t})),n(f,"$to_asciimath",(function(){var e,t,r,n,i=this,o=p,l=p;return o=m(m(g("Asciimath"),"Constants"),"TABLE_PARENTHESIS"),e=s(i.$value(),"map",[],"to_asciimath".$to_proc()).$join(", "),t=a(r=i.$close_paren()["$is_a?"](m("Array")))?r:i.$close_paren()["$nil?"](),l=a(i.$open_paren()["$nil?"]())?"[":i.$open_paren(),n=a(t)?o["$[]"](l.$to_sym()):i.$close_paren(),""+l+e+n})),n(f,"$to_mathml_without_math_tag",(function(){var e,t,r=this,n=p,o=p,l=p;return t=g("Utility").$ox_element("mtable",new Map([["attributes",r.$table_attribute()]])),g("Utility").$update_nodes(t,(e=r.$value())===p||null==e?p:s(e,"map",[],"to_mathml_without_math_tag".$to_proc())),i(r.$open_paren(),"norm[")?r.$norm_table(t):a(r["$present?"](r.$open_paren()))||a(r["$present?"](r.$close_paren()))?(n=g("Utility").$ox_element("mo")["$<<"](r.$mathml_parenthesis(r.$open_paren())),o=g("Utility").$ox_element("mo")["$<<"](r.$mathml_parenthesis(r.$close_paren())),l=g("Utility").$ox_element("mrow"),g("Utility").$update_nodes(l,[n,t,o])):t})),n(f,"$to_latex",(function(){var e,t,r,n=this,s=p;return i(n.$open_paren(),"norm[")?"\\begin{Vmatrix}"+n.$latex_content()+"\\end{Vmatrix}":(a((e=n.$environment())===p||null==e?p:e["$include?"]("array"))&&(s="{"+n.$table_attribute("latex")+"}"),t=n.$latex_parenthesis(n.$open_paren()),r="\\end{matrix}\\right "+n.$latex_parenthesis(n.$close_paren()),""+("\\left "+t+"\\begin{matrix}")+s+n.$latex_content()+r)})),n(f,"$to_html",(function(){return"<table>"+s(this.$value(),"map",[],"to_html".$to_proc()).$join()+"</table>"})),n(f,"$to_omml_without_math_tag",(function(e){var t,r=this;return t=a(s(r.$value(),"map",[],(function(e){return null==e&&(e=p),e.$parameter_one().$length()["$=="](1)}))["$all?"]())?r.$single_td_table(e):r.$multiple_td_table(e),r.$fenced_table(t)})),n(f,"$to_asciimath_math_zone",(function(e,t,r){return null==t&&(t=!1),null==r&&(r=!0),[e+'"table" function apply\n',g("Formula").$new(this.$value()).$to_asciimath_math_zone(this.$gsub_spacing(e,t),t,r)]}),-2),n(f,"$to_latex_math_zone",(function(e,t,r){return null==t&&(t=!1),null==r&&(r=!0),[e+'"table" function apply\n',g("Formula").$new(this.$value()).$to_latex_math_zone(this.$gsub_spacing(e,t),t,r)]}),-2),n(f,"$to_mathml_math_zone",(function(e,t,r){return null==t&&(t=!1),null==r&&(r=!0),[e+'"table" function apply\n',g("Formula").$new(this.$value()).$to_mathml_math_zone(this.$gsub_spacing(e,t),t,r)]}),-2),n(f,"$to_omml_math_zone",(function(e,t,r,n){var a,s,i,c,_;return a=o(arguments,1),s=l(a),s=$(s),a.length>0&&(i=a.shift()),null==i&&(i=!1),a.length>0&&(c=a.shift()),null==c&&(c=!0),_=u(s,"display_style"),[e+'"table" function apply\n',g("Formula").$new(this.$value()).$to_omml_math_zone(this.$gsub_spacing(e,i),i,c,new Map([["display_style",_]]))]}),-3),f.$protected(),n(f,"$present?",(function(e){var t;return(a(t=e["$nil?"]())?t:e["$empty?"]())["$!"]()})),n(f,"$mathml_parenthesis",(function(e){var t;return a((t=e)===p||null==t?p:t["$include?"](":"))?"":a(this["$present?"](e))?e:""})),n(f,"$latex_parenthesis",(function(e){var t;return a(e)?a((t=e)===p||null==t?p:t["$include?"](":"))?" .":a(["{","}"]["$include?"](e))?"\\"+e:e:"."})),n(f,"$table_attribute",(function(e){var t,r,n=p;switch(null==e&&(e="mathml"),n=this.$column_lines(),e.valueOf()){case"mathml":return this.$mathml_attrs(n);case"latex":return a(n["$include?"]("solid"))&&n.$insert(0,"none"),(t=(r=n)===p||null==r?p:s(r,"map",[],(function(e){return null==e&&(e=p),i(e,"solid")?"|":"a"})))===p||null==t?p:t.$join();default:return p}}),-1),n(f,"$column_lines",(function(){var e=p;return e=[],s(this.$value().$first().$parameter_one(),"each_with_index",[],(function(t,r){var n;return null==t&&(t=p),null==r&&(r=p),a(s(t.$parameter_one(),"find",[],(function(e){return null==e&&(e=p),g("Utility").$symbol_value(e,"|")})))?a(e["$empty?"]())?e=["solid"]:(n=[c(r,1),"solid"],s(e,"[]=",n),n[n.length-1]):e["$<<"]("none")})),e})),n(f,"$mathml_attrs",(function(e){var t,r,n,i=p;return i=(t=(r=this.$options())===p||null==r?p:r.$dup())===p||null==t?p:s(t,"reject",[],(function(e){return null==e&&(e=p),e.$to_s()["$=="]("asterisk")})),a(e["$include?"]("solid"))&&i["$[]="]("columnlines",e.$join(" ")),a((n=this.$close_paren())===p||null==n?p:n["$include?"](":}"))&&i["$[]="]("columnalign","left"),i})),n(f,"$latex_content",(function(){var e,t;return(e=(t=this.$value())===p||null==t?p:s(t,"map",[],"to_latex".$to_proc()))===p||null==e?p:e.$join(" \\\\ ")})),n(f,"$matrix_class",(function(){var e,t,r=this;return t=a(r.$open_paren())?m(m(g("Latex"),"Constants"),"MATRICES").$invert()["$[]"](r.$open_paren()):r.$class_name(),a((e=r.$options())===p||null==e?p:e["$key?"]("asterisk"))?"{"+t+"*}":"{"+t+"}"})),n(f,"$opening",(function(){return""+this.$matrix_class()+this.$latex_columnalign()})),n(f,"$latex_columnalign",(function(){var e=this;return a(e.$Hash(e.$options())["$[]"]("asterisk"))?"["+m(g("Utility"),"ALIGNMENT_LETTERS").$invert()["$[]"](e.$Hash(e.$td_hash())["$[]"]("columnalign"))+"]":""})),n(f,"$td_hash",(function(){var e,t,r,n;return(e=(t=(r=(n=this.$value())===p||null==n?p:n.$first())===p||null==r?p:r.$parameter_one())===p||null==t?p:t.$first())===p||null==e?p:e.$parameter_two()})),n(f,"$environment",(function(){var e,t=p;return e=(t=m(m(g("Latex"),"Constants"),"MATRICES"))["$value?"](this.$open_paren()),a(e)?t.$invert()["$[]"](this.$open_paren()).$to_s():p})),n(f,"$single_td_table",(function(e){var t=p,r=p,n=p;return t=g("Utility").$ox_element("eqArr",new Map([["namespace","m"]])),(r=g("Utility").$ox_element("eqArrPr",new Map([["namespace","m"]])))["$<<"](g("Utility").$pr_element("ctrl",!0,new Map([["namespace","m"]]))),t["$<<"](r),n=s(this.$value(),"map",[],(function(t){return null==t&&(t=p),t.$to_omml_without_math_tag(e)})).$flatten(),g("Utility").$update_nodes(t,n.$compact()),[t]})),n(f,"$multiple_td_table",(function(e){var t,r,n,a,i,o,l,$,u,c=p,_=p,m=p,d=p,f=p;return i=new Map([["m:val",(n=this.$value(),r=n===p||null==n?p:n.$first(),t=r===p||null==r?p:r.$parameter_one(),t===p||null==t?p:t.$count())]]),c=new Map([["m:val","center"]]),o=g("Utility").$ox_element("m",new Map([["namespace","m"]])),_=g("Utility").$ox_element("mpr",new Map([["namespace","m"]])),m=g("Utility").$ox_element("mcs",new Map([["namespace","m"]])),d=g("Utility").$ox_element("mc",new Map([["namespace","m"]])),l=g("Utility").$ox_element("mcPr",new Map([["namespace","m"]])),$=g("Utility").$ox_element("count",new Map([["namespace","m"],["attributes",i]])),c=g("Utility").$ox_element("mcJc",new Map([["namespace","m"],["attributes",c]])),u=g("Utility").$pr_element("ctrl",!0,new Map([["namespace","m"]])),g("Utility").$update_nodes(l,[$,c]),d["$<<"](l),m["$<<"](d),_["$<<"](m),_["$<<"](u),f=(a=this.$value())===p||null==a?p:s(a,"map",[],(function(t){return null==t&&(t=p),t.$to_omml_without_math_tag(e)})),g("Utility").$update_nodes(o,f.$insert(0,_).$flatten()),[o]})),n(f,"$norm_table",(function(e){var t;return t=g("Utility").$ox_element("mo")["$<<"]("&#x2225;"),g("Utility").$update_nodes(g("Utility").$ox_element("mrow"),[t,e,t])})),n(f,"$fenced_table",(function(e){var t,r,n=this;return a(n.$open_paren())||a(n.$close_paren())?(t=g("Utility").$ox_element("d",new Map([["namespace","m"]])),r=g("Utility").$ox_element("e",new Map([["namespace","m"]])),g("Utility").$update_nodes(r,e),g("Utility").$update_nodes(t,[n.$mdpr_node(),r]),[t]):e})),n(f,"$mdpr_node",(function(){var e,t,r;return e=g("Utility").$ox_element("sepChr",new Map([["attributes",new Map([["m:val",""]])],["namespace","m"]])),t=g("Utility").$ox_element("grow",new Map([["namespace","m"]])),r=g("Utility").$ox_element("dPr",new Map([["namespace","m"]])),g("Utility").$update_nodes(r,[this.$begchr(),this.$endchr(),e,t])})),n(f,"$begchr",(function(){var e=this;return a(e.$open_paren())?g("Utility").$ox_element("begChr",new Map([["attributes",new Map([["m:val",e.$paren(e.$open_paren())]])],["namespace","m"]])):p})),n(f,"$endchr",(function(){var e=this;return a(e.$close_paren())?g("Utility").$ox_element("endChr",new Map([["attributes",new Map([["m:val",e.$paren(e.$close_paren())]])],["namespace","m"]])):p})),n(f,"$paren",(function(e){return a(["{:",":}"]["$include?"](e))?"":e}))}(f[0],h("Core"),f)}(f[0],f)}(f[0],f)}(_[0],_)},Opal.modules["plurimath/math/function/tan"]=function(e){var t=e.module,r=e.klass,n=e.return_val,a=e.def,s=e.top,i=[];e.nil;return s.$require("plurimath//math/function/tan.rb/../unary_function"),function(s,i){var o=[t(s,"Plurimath")].concat(i);return function(s,i){var o=[t(s,"Math")].concat(i);return function(s,i){var o=[t(s,"Function")].concat(i),l=e.$r(o);return function(e,t){var s=r(e,t,"Tan");return a(s,"$validate_function_formula",n(!1))}(o[0],l("UnaryFunction"))}(o[0],o)}(o[0],o)}(i[0],i)},Opal.modules["plurimath/math/function/tanh"]=function(e){var t=e.module,r=e.klass,n=e.return_val,a=e.def,s=e.top,i=[];e.nil;return s.$require("plurimath//math/function/tanh.rb/../unary_function"),function(s,i){var o=[t(s,"Plurimath")].concat(i);return function(s,i){var o=[t(s,"Math")].concat(i);return function(s,i){var o=[t(s,"Function")].concat(i),l=e.$r(o);return function(e,t){var s=r(e,t,"Tanh");return a(s,"$validate_function_formula",n(!1))}(o[0],l("UnaryFunction"))}(o[0],o)}(o[0],o)}(i[0],i)},Opal.modules["plurimath/math/function/td"]=function(e){var t=e.module,r=e.klass,n=e.send,a=e.def,s=e.truthy,i=e.slice,o=e.extract_kwargs,l=e.ensure_kwargs,$=e.get_kwarg,u=e.top,c=[],_=e.nil;return e.add_stubs("join,map,parameter_one,to_proc,symbol_value,first,any?,parameter_two,update_nodes,ox_element,empty?,omml_content,new,to_asciimath_math_zone,gsub_spacing,to_latex_math_zone,to_mathml_math_zone,to_omml_math_zone"),u.$require("plurimath//math/function/td.rb/../binary_function"),function(u,c){var p=[t(u,"Plurimath")].concat(c);return function(u,c){var p=[t(u,"Math")].concat(c);return function(u,c){var p=[t(u,"Function")].concat(c),m=e.$r(p);return function(t,u,c){var p=r(t,u,"Td"),m=[p].concat(c),d=e.$r(m);return a(p,"$to_asciimath",(function(){return n(this.$parameter_one(),"map",[],"to_asciimath".$to_proc()).$join(" ")})),a(p,"$to_mathml_without_math_tag",(function(){var e,t=this,r=_;return s(d("Utility").$symbol_value(t.$parameter_one().$first(),"|"))?"":(s((e=t.$parameter_two())===_||null==e?_:e["$any?"]())&&(r=t.$parameter_two()),d("Utility").$update_nodes(d("Utility").$ox_element("mtd",new Map([["attributes",r]])),n(t.$parameter_one(),"map",[],"to_mathml_without_math_tag".$to_proc())))})),a(p,"$to_latex",(function(){return s(d("Utility").$symbol_value(this.$parameter_one().$first(),"|"))?"":n(this.$parameter_one(),"map",[],"to_latex".$to_proc()).$join(" ")})),a(p,"$to_html",(function(){return"<td>"+n(this.$parameter_one(),"map",[],"to_html".$to_proc()).$join()+"</td>"})),a(p,"$to_omml_without_math_tag",(function(e){var t,r;return r=d("Utility").$ox_element("e",new Map([["namespace","m"]])),s((t=this.$parameter_one())===_||null==t?_:t["$empty?"]())||d("Utility").$update_nodes(r,d("Formula").$new(this.$parameter_one()).$omml_content(e)),[r]})),a(p,"$to_asciimath_math_zone",(function(e,t,r){var n,a;return(n=i(arguments,1)).length>1&&(a=n.shift()),null==a&&(a=!1),null==n.shift()&&_,[e+'"td" function apply\n',d("Formula").$new(this.$parameter_one()).$to_asciimath_math_zone(this.$gsub_spacing(e,a),a)]}),-3),a(p,"$to_latex_math_zone",(function(e,t,r){return null==t&&(t=!1),null==r&&(r=!0),[e+'"td" function apply\n',d("Formula").$new(this.$parameter_one()).$to_latex_math_zone(this.$gsub_spacing(e,t),t,r)]}),-2),a(p,"$to_mathml_math_zone",(function(e,t,r){return null==t&&(t=!1),null==r&&(r=!0),[e+'"td" function apply\n',d("Formula").$new(this.$parameter_one()).$to_mathml_math_zone(this.$gsub_spacing(e,t),t,r)]}),-2),a(p,"$to_omml_math_zone",(function(e,t,r,n){var a,s,u,c,_;return a=i(arguments,1),s=o(a),s=l(s),a.length>0&&(u=a.shift()),null==u&&(u=!1),a.length>0&&(c=a.shift()),null==c&&(c=!0),_=$(s,"display_style"),[e+'"td" function apply\n',d("Formula").$new(this.$parameter_one()).$to_omml_math_zone(this.$gsub_spacing(e,u),u,c,new Map([["display_style",_]]))]}),-3)}(p[0],m("BinaryFunction"),p)}(p[0],p)}(p[0],p)}(c[0],c)},Opal.modules["plurimath/math/function/ternary_function"]=function(e){var t=e.module,r=e.klass,n=e.def,a=e.truthy,s=e.slice,i=e.extract_kwargs,o=e.ensure_kwargs,l=e.get_kwarg,$=e.hash_get,u=e.eqeq,c=e.eqeqeq,_=[],p=e.nil,m=e.$$$;return e.add_stubs("attr_accessor,validate_left_right,parameter_one,first_field_wrap,parameter_two,wrapped,parameter_three,==,class,to_mathml_without_math_tag,<<,ox_element,class_name,update_nodes,to_latex,to_html,!,nil?,gsub_spacing,to_asciimath,[],ascii_fields_to_print,latex_fields_to_print,dump_mathml,mathml_fields_to_print,dump_omml,omml_fields_to_print,protected,validate_function_formula,ascii_wrap,latex_wrap,include?,latex,===,name,Array,new,to_omml_without_math_tag"),function(_,d){var f=[t(_,"Plurimath")].concat(d);return function(_,d){var f=[t(_,"Math")].concat(d);return function(_,d){var f=[t(_,"Function")].concat(d),h=e.$r(f);return function(t,_,d){var f=r(t,_,"TernaryFunction"),h=[f].concat(d),g=e.$r(h);return f.$attr_accessor("parameter_one","parameter_two","parameter_three"),n(f,"$initialize",(function(e,t,r){var n=this;return null==e&&(e=p),null==t&&(t=p),null==r&&(r=p),n.parameter_one=e,n.parameter_two=t,n.parameter_three=r,g("Utility").$validate_left_right([e,t,r])}),-1),n(f,"$to_asciimath",(function(){var e=this,t=p,r=p,n=p;return a(e.$parameter_one())&&(t=e.$first_field_wrap(e.$parameter_one())),a(e.$parameter_two())&&(r="_"+e.$wrapped(e.$parameter_two())),a(e.$parameter_three())&&(n="^"+e.$wrapped(e.$parameter_three())),""+t+r+n})),n(f,"$==",(function(e){var t,r,n,s=this;return a(t=a(r=a(n=s.$class()["$=="](e.$class()))?e.$parameter_one()["$=="](s.$parameter_one()):n)?e.$parameter_two()["$=="](s.$parameter_two()):r)?e.$parameter_three()["$=="](s.$parameter_three()):t})),n(f,"$to_mathml_without_math_tag",(function(){var e,t,r,n,a=this,s=p;return(s=[(e=a.$parameter_one(),e===p||null==e?p:e.$to_mathml_without_math_tag())])["$<<"]((t=a.$parameter_two())===p||null==t?p:t.$to_mathml_without_math_tag()),s["$<<"]((r=a.$parameter_three())===p||null==r?p:r.$to_mathml_without_math_tag()),n=g("Utility").$ox_element("m"+a.$class_name()),g("Utility").$update_nodes(n,s)})),n(f,"$to_latex",(function(){var e,t,r,n=this;return""+((e=n.$parameter_one())===p||null==e?p:e.$to_latex())+((t=n.$parameter_two())===p||null==t?p:t.$to_latex())+((r=n.$parameter_three())===p||null==r?p:r.$to_latex())})),n(f,"$to_html",(function(){var e=this,t=p,r=p,n=p;return a(e.$parameter_one())&&(t="<i>"+e.$parameter_one().$to_html()+"</i>"),a(e.$parameter_two())&&(r="<i>"+e.$parameter_two().$to_html()+"</i>"),a(e.$parameter_three())&&(n="<i>"+e.$parameter_three().$to_html()+"</i>"),""+t+r+n})),n(f,"$any_value_exist?",(function(){var e,t,r=this;return(a(e=a(t=r.$parameter_one()["$nil?"]())?t:r.$parameter_two()["$nil?"]())?e:r.$parameter_three()["$nil?"]())["$!"]()})),n(f,"$all_values_exist?",(function(){var e,t,r=this;return(a(e=a(t=r.$parameter_one()["$nil?"]())?r.$parameter_two()["$nil?"]():t)?r.$parameter_three()["$nil?"]():e)["$!"]()})),n(f,"$to_asciimath_math_zone",(function(e,t,r){var n,a,i,o,l=this,$=p;return(n=s(arguments,1)).length>1&&(a=n.shift()),null==a&&(a=!1),null==n.shift()&&p,$=m(l.$class(),"FUNCTION"),i=l.$gsub_spacing(e,a),o=[e+'"'+l.$to_asciimath()+'" '+$["$[]"]("name")+"\n"],l.$ascii_fields_to_print(l.$parameter_one(),new Map([["spacing",i],["field_name",$["$[]"]("first_value")],["additional_space","| |_ "],["array",o]])),l.$ascii_fields_to_print(l.$parameter_two(),new Map([["spacing",i],["field_name",$["$[]"]("second_value")],["additional_space"," |_ "],["array",o]])),l.$ascii_fields_to_print(l.$parameter_three(),new Map([["spacing",i],["field_name",$["$[]"]("third_value")],["additional_space"," |_ "],["array",o]])),o}),-3),n(f,"$to_latex_math_zone",(function(e,t,r){var n,a,i,o,l=this,$=p;return(n=s(arguments,1)).length>1&&(a=n.shift()),null==a&&(a=!1),null==n.shift()&&p,$=m(l.$class(),"FUNCTION"),i=l.$gsub_spacing(e,a),o=[e+'"'+l.$to_latex()+'" '+$["$[]"]("name")+"\n"],l.$latex_fields_to_print(l.$parameter_one(),new Map([["spacing",i],["field_name",$["$[]"]("first_value")],["additional_space","| |_ "],["array",o]])),l.$latex_fields_to_print(l.$parameter_two(),new Map([["spacing",i],["field_name",$["$[]"]("second_value")],["additional_space"," |_ "],["array",o]])),l.$latex_fields_to_print(l.$parameter_three(),new Map([["spacing",i],["field_name",$["$[]"]("third_value")],["additional_space"," |_ "],["array",o]])),o}),-3),n(f,"$to_mathml_math_zone",(function(e,t,r){var n,a,i,o,l=this,$=p;return(n=s(arguments,1)).length>1&&(a=n.shift()),null==a&&(a=!1),null==n.shift()&&p,$=m(l.$class(),"FUNCTION"),i=l.$gsub_spacing(e,a),o=[e+'"'+l.$dump_mathml(l)+'" '+$["$[]"]("name")+"\n"],l.$mathml_fields_to_print(l.$parameter_one(),new Map([["spacing",i],["field_name",$["$[]"]("first_value")],["additional_space","| |_ "],["array",o]])),l.$mathml_fields_to_print(l.$parameter_two(),new Map([["spacing",i],["field_name",$["$[]"]("second_value")],["additional_space"," |_ "],["array",o]])),l.$mathml_fields_to_print(l.$parameter_three(),new Map([["spacing",i],["field_name",$["$[]"]("third_value")],["additional_space"," |_ "],["array",o]])),o}),-3),n(f,"$to_omml_math_zone",(function(e,t,r,n){var a,$,u,c,_,d,f=this,h=p;return a=s(arguments,1),$=i(a),$=o($),a.length>1&&(u=a.shift()),null==u&&(u=!1),null==a.shift()&&p,c=l($,"display_style"),h=m(f.$class(),"FUNCTION"),_=f.$gsub_spacing(e,u),d=[e+'"'+f.$dump_omml(f,c)+'" '+h["$[]"]("name")+"\n"],f.$omml_fields_to_print(f.$parameter_one(),new Map([["spacing",_],["field_name",h["$[]"]("first_value")],["additional_space","| |_ "],["array",d],["display_style",c]])),f.$omml_fields_to_print(f.$parameter_two(),new Map([["spacing",_],["field_name",h["$[]"]("second_value")],["additional_space"," |_ "],["array",d],["display_style",c]])),f.$omml_fields_to_print(f.$parameter_three(),new Map([["spacing",_],["field_name",h["$[]"]("third_value")],["additional_space"," |_ "],["array",d],["display_style",c]])),d}),-4),n(f,"$any_value_exist?",(function(){var e,t,r=this;return(a(e=a(t=r.$parameter_one()["$nil?"]())?t:r.$parameter_two()["$nil?"]())?e:r.$parameter_three()["$nil?"]())["$!"]()})),f.$protected(),n(f,"$latex_wrapped",(function(e){return a(e.$validate_function_formula())?"{ \\left ( "+e.$to_latex()+" \\right ) }":"{"+e.$to_latex()+"}"})),n(f,"$wrapped",(function(e,t){var r;return t=o(t),null==(r=$(t,"type"))&&(r="ascii"),a(e)?u(r,"ascii")?"("+e.$to_asciimath()+")":"{"+e.$to_latex()+"}":""}),-2),n(f,"$first_field_wrap",(function(e,t){var r;return t=o(t),null==(r=$(t,"type"))&&(r="ascii"),a(e)?u(r,"ascii")?this.$ascii_wrap(e):this.$latex_wrap(e):""}),-2),n(f,"$ascii_wrap",(function(e){var t,r;return t=e.$to_asciimath(),a(["obrace","ubrace"]["$include?"](e.$class_name()))?this.$latex():c(a(r=g("Formula"))?r:e.$class().$name()["$include?"]("Function"),e)?"("+t+")":t})),n(f,"$latex_wrap",(function(e){var t,r;return t=e.$to_latex(),a(["obrace","ubrace"]["$include?"](e.$class_name()))?t:c(a(r=g("Formula"))?r:e.$class().$name()["$include?"]("Function"),e)?"{"+t+"}":t})),n(f,"$narypr",(function(e,t){var r,n,s,i,l,u,c,_,p,m;return t=o(t),null==(r=$(t,"function_type"))&&(r="undOvr"),n=new Map([["m:val",e]]),s=new Map([["m:val",r]]),i=new Map([["m:val",a(this.$parameter_one())?"0":"1"]]),l=new Map([["m:val",a(this.$parameter_two())?"0":"1"]]),u=g("Utility").$ox_element("chr",new Map([["attributes",n],["namespace","m"]])),c=g("Utility").$ox_element("limLoc",new Map([["attributes",s],["namespace","m"]])),_=g("Utility").$ox_element("subHide",new Map([["attributes",i],["namespace","m"]])),p=g("Utility").$ox_element("supHide",new Map([["attributes",l],["namespace","m"]])),m=g("Utility").$ox_element("naryPr",new Map([["namespace","m"]])),g("Utility").$update_nodes(m,[u,c,_,p])}),-2),n(f,"$validate_mathml_tag",(function(e){return a(e)?this.$Array(e.$to_mathml_without_math_tag()):this.$Array(g("Utility").$ox_element("mrow"))})),n(f,"$underover",(function(e){var t,r=this,n=p;return n=g("Overset").$new(r.$parameter_one(),r.$parameter_three()),a(r.$parameter_two())?(t=g("Underset").$new(n,r.$parameter_two()))===p||null==t?p:t.$to_omml_without_math_tag(e):n.$to_omml_without_math_tag(e)}))}(f[0],h("Core"),f)}(f[0],f)}(f[0],f)}(_[0],_)},Opal.modules["htmlentities/mappings/html4"]=function(e){var t=e.klass,r=e.send,n=[];e.nil;return e.add_stubs("[]="),function(n,a,s){var i,o=[t(n,null,"HTMLEntities")].concat(s),l=e.$r(o);return i=["html4",new Map([["Aacute",193],["aacute",225],["Acirc",194],["acirc",226],["acute",180],["AElig",198],["aelig",230],["Agrave",192],["agrave",224],["alefsym",8501],["Alpha",913],["alpha",945],["amp",38],["and",8743],["ang",8736],["Aring",197],["aring",229],["asymp",8776],["Atilde",195],["atilde",227],["Auml",196],["auml",228],["bdquo",8222],["Beta",914],["beta",946],["brvbar",166],["bull",8226],["cap",8745],["Ccedil",199],["ccedil",231],["cedil",184],["cent",162],["Chi",935],["chi",967],["circ",710],["clubs",9827],["cong",8773],["copy",169],["crarr",8629],["cup",8746],["curren",164],["Dagger",8225],["dagger",8224],["dArr",8659],["darr",8595],["deg",176],["Delta",916],["delta",948],["diams",9830],["divide",247],["Eacute",201],["eacute",233],["Ecirc",202],["ecirc",234],["Egrave",200],["egrave",232],["empty",8709],["emsp",8195],["ensp",8194],["Epsilon",917],["epsilon",949],["equiv",8801],["Eta",919],["eta",951],["ETH",208],["eth",240],["Euml",203],["euml",235],["euro",8364],["exist",8707],["fnof",402],["forall",8704],["frac12",189],["frac14",188],["frac34",190],["frasl",8260],["Gamma",915],["gamma",947],["ge",8805],["gt",62],["hArr",8660],["harr",8596],["hearts",9829],["hellip",8230],["Iacute",205],["iacute",237],["Icirc",206],["icirc",238],["iexcl",161],["Igrave",204],["igrave",236],["image",8465],["infin",8734],["int",8747],["Iota",921],["iota",953],["iquest",191],["isin",8712],["Iuml",207],["iuml",239],["Kappa",922],["kappa",954],["Lambda",923],["lambda",955],["lang",9001],["laquo",171],["lArr",8656],["larr",8592],["lceil",8968],["ldquo",8220],["le",8804],["lfloor",8970],["lowast",8727],["loz",9674],["lrm",8206],["lsaquo",8249],["lsquo",8216],["lt",60],["macr",175],["mdash",8212],["micro",181],["middot",183],["minus",8722],["Mu",924],["mu",956],["nabla",8711],["nbsp",160],["ndash",8211],["ne",8800],["ni",8715],["not",172],["notin",8713],["nsub",8836],["Ntilde",209],["ntilde",241],["Nu",925],["nu",957],["Oacute",211],["oacute",243],["Ocirc",212],["ocirc",244],["OElig",338],["oelig",339],["Ograve",210],["ograve",242],["oline",8254],["Omega",937],["omega",969],["Omicron",927],["omicron",959],["oplus",8853],["or",8744],["ordf",170],["ordm",186],["Oslash",216],["oslash",248],["Otilde",213],["otilde",245],["otimes",8855],["Ouml",214],["ouml",246],["para",182],["part",8706],["permil",8240],["perp",8869],["Phi",934],["phi",966],["Pi",928],["pi",960],["piv",982],["plusmn",177],["pound",163],["Prime",8243],["prime",8242],["prod",8719],["prop",8733],["Psi",936],["psi",968],["quot",34],["radic",8730],["rang",9002],["raquo",187],["rArr",8658],["rarr",8594],["rceil",8969],["rdquo",8221],["real",8476],["reg",174],["rfloor",8971],["Rho",929],["rho",961],["rlm",8207],["rsaquo",8250],["rsquo",8217],["sbquo",8218],["Scaron",352],["scaron",353],["sdot",8901],["sect",167],["shy",173],["Sigma",931],["sigma",963],["sigmaf",962],["sim",8764],["spades",9824],["sub",8834],["sube",8838],["sum",8721],["sup",8835],["sup1",185],["sup2",178],["sup3",179],["supe",8839],["szlig",223],["Tau",932],["tau",964],["there4",8756],["Theta",920],["theta",952],["thetasym",977],["thinsp",8201],["THORN",222],["thorn",254],["tilde",732],["times",215],["trade",8482],["Uacute",218],["uacute",250],["uArr",8657],["uarr",8593],["Ucirc",219],["ucirc",251],["Ugrave",217],["ugrave",249],["uml",168],["upsih",978],["Upsilon",933],["upsilon",965],["Uuml",220],["uuml",252],["weierp",8472],["Xi",926],["xi",958],["Yacute",221],["yacute",253],["yen",165],["Yuml",376],["yuml",255],["Zeta",918],["zeta",950],["zwj",8205],["zwnj",8204]])],r(l("MAPPINGS"),"[]=",i),i[i.length-1]}(n[0],0,n)},Opal.modules["htmlentities/mappings/xhtml1"]=function(e){var t=e.klass,r=e.send,n=[];e.nil;return e.add_stubs("[]="),function(n,a,s){var i,o=[t(n,null,"HTMLEntities")].concat(s),l=e.$r(o);return i=["xhtml1",new Map([["Aacute",193],["aacute",225],["Acirc",194],["acirc",226],["acute",180],["AElig",198],["aelig",230],["Agrave",192],["agrave",224],["alefsym",8501],["Alpha",913],["alpha",945],["amp",38],["and",8743],["ang",8736],["apos",39],["Aring",197],["aring",229],["asymp",8776],["Atilde",195],["atilde",227],["Auml",196],["auml",228],["bdquo",8222],["Beta",914],["beta",946],["brvbar",166],["bull",8226],["cap",8745],["Ccedil",199],["ccedil",231],["cedil",184],["cent",162],["Chi",935],["chi",967],["circ",710],["clubs",9827],["cong",8773],["copy",169],["crarr",8629],["cup",8746],["curren",164],["Dagger",8225],["dagger",8224],["dArr",8659],["darr",8595],["deg",176],["Delta",916],["delta",948],["diams",9830],["divide",247],["Eacute",201],["eacute",233],["Ecirc",202],["ecirc",234],["Egrave",200],["egrave",232],["empty",8709],["emsp",8195],["ensp",8194],["Epsilon",917],["epsilon",949],["equiv",8801],["Eta",919],["eta",951],["ETH",208],["eth",240],["Euml",203],["euml",235],["euro",8364],["exist",8707],["fnof",402],["forall",8704],["frac12",189],["frac14",188],["frac34",190],["frasl",8260],["Gamma",915],["gamma",947],["ge",8805],["gt",62],["hArr",8660],["harr",8596],["hearts",9829],["hellip",8230],["Iacute",205],["iacute",237],["Icirc",206],["icirc",238],["iexcl",161],["Igrave",204],["igrave",236],["image",8465],["infin",8734],["int",8747],["Iota",921],["iota",953],["iquest",191],["isin",8712],["Iuml",207],["iuml",239],["Kappa",922],["kappa",954],["Lambda",923],["lambda",955],["lang",9001],["laquo",171],["lArr",8656],["larr",8592],["lceil",8968],["ldquo",8220],["le",8804],["lfloor",8970],["lowast",8727],["loz",9674],["lrm",8206],["lsaquo",8249],["lsquo",8216],["lt",60],["macr",175],["mdash",8212],["micro",181],["middot",183],["minus",8722],["Mu",924],["mu",956],["nabla",8711],["nbsp",160],["ndash",8211],["ne",8800],["ni",8715],["not",172],["notin",8713],["nsub",8836],["Ntilde",209],["ntilde",241],["Nu",925],["nu",957],["Oacute",211],["oacute",243],["Ocirc",212],["ocirc",244],["OElig",338],["oelig",339],["Ograve",210],["ograve",242],["oline",8254],["Omega",937],["omega",969],["Omicron",927],["omicron",959],["oplus",8853],["or",8744],["ordf",170],["ordm",186],["Oslash",216],["oslash",248],["Otilde",213],["otilde",245],["otimes",8855],["Ouml",214],["ouml",246],["para",182],["part",8706],["permil",8240],["perp",8869],["Phi",934],["phi",966],["Pi",928],["pi",960],["piv",982],["plusmn",177],["pound",163],["Prime",8243],["prime",8242],["prod",8719],["prop",8733],["Psi",936],["psi",968],["quot",34],["radic",8730],["rang",9002],["raquo",187],["rArr",8658],["rarr",8594],["rceil",8969],["rdquo",8221],["real",8476],["reg",174],["rfloor",8971],["Rho",929],["rho",961],["rlm",8207],["rsaquo",8250],["rsquo",8217],["sbquo",8218],["Scaron",352],["scaron",353],["sdot",8901],["sect",167],["shy",173],["Sigma",931],["sigma",963],["sigmaf",962],["sim",8764],["spades",9824],["sub",8834],["sube",8838],["sum",8721],["sup",8835],["sup1",185],["sup2",178],["sup3",179],["supe",8839],["szlig",223],["Tau",932],["tau",964],["there4",8756],["Theta",920],["theta",952],["thetasym",977],["thinsp",8201],["THORN",222],["thorn",254],["tilde",732],["times",215],["trade",8482],["Uacute",218],["uacute",250],["uArr",8657],["uarr",8593],["Ucirc",219],["ucirc",251],["Ugrave",217],["ugrave",249],["uml",168],["upsih",978],["Upsilon",933],["upsilon",965],["Uuml",220],["uuml",252],["weierp",8472],["Xi",926],["xi",958],["Yacute",221],["yacute",253],["yen",165],["Yuml",376],["yuml",255],["Zeta",918],["zeta",950],["zwj",8205],["zwnj",8204]])],r(l("MAPPINGS"),"[]=",i),i[i.length-1]}(n[0],0,n)},Opal.modules["htmlentities/mappings/expanded"]=function(e){var t=e.klass,r=e.send,n=[];e.nil;return e.add_stubs("[]="),function(n,a,s){var i,o=[t(n,null,"HTMLEntities")].concat(s),l=e.$r(o);return l("MAPPINGS")["$[]="]("expanded",new Map([["Aacgr",902],["aacgr",940],["Aacute",193],["aacute",225],["Abreve",258],["abreve",259],["acaron",462],["Acirc",194],["acirc",226],["acute",180],["Acy",1040],["acy",1072],["AElig",198],["aelig",230],["Agr",913],["agr",945],["Agrave",192],["agrave",224],["alefsym",8501],["aleph",8501],["Alpha",913],["alpha",945],["Amacr",256],["amacr",257],["amalg",8720],["amp",38],["and",8743],["ang",8736],["ang90",8735],["angmsd",8737],["angsph",8738],["angst",8491],["Aogon",260],["aogon",261],["ap",8776],["ape",8778],["apolhook",261],["apos",39],["Aring",197],["aring",229],["ast",42],["asymp",8776],["Atilde",195],["atilde",227],["Auml",196],["auml",228],["b.alpha",945],["b.beta",946],["b.chi",967],["b.Delta",916],["b.delta",948],["b.epsi",949],["b.epsis",949],["b.epsiv",949],["b.eta",951],["b.Gamma",915],["b.gamma",947],["b.gammad",988],["b.iota",953],["b.kappa",954],["b.kappav",1008],["b.Lambda",923],["b.lambda",955],["b.mu",956],["b.nu",957],["b.Omega",937],["b.omega",974],["b.Phi",934],["b.phis",966],["b.phiv",981],["b.Pi",928],["b.pi",960],["b.piv",982],["b.Psi",936],["b.psi",968],["b.rho",961],["b.rhov",1009],["b.Sigma",931],["b.sigma",963],["b.sigmav",962],["b.tau",964],["b.Theta",920],["b.thetas",952],["b.thetav",977],["b.Upsi",933],["b.upsi",965],["b.Xi",926],["b.xi",958],["b.zeta",950],["barwed",8892],["Barwed",8966],["bcong",8780],["Bcy",1041],["bcy",1073],["bdquo",8222],["becaus",8757],["bepsi",8717],["bernou",8492],["Beta",914],["beta",946],["beth",8502],["Bgr",914],["bgr",946],["blank",9251],["blk12",9618],["blk14",9617],["blk34",9619],["block",9608],["bottom",8869],["bowtie",8904],["boxdl",9488],["boxdL",9557],["boxDl",9558],["boxDL",9559],["boxdr",9484],["boxdR",9554],["boxDr",9555],["boxDR",9556],["boxh",9472],["boxH",9552],["boxhd",9516],["boxHd",9572],["boxhD",9573],["boxHD",9574],["boxhu",9524],["boxHu",9575],["boxhU",9576],["boxHU",9577],["boxul",9496],["boxuL",9563],["boxUl",9564],["boxUL",9565],["boxur",9492],["boxuR",9560],["boxUr",9561],["boxUR",9562],["boxv",9474],["boxV",9553],["boxvh",9532],["boxvH",9578],["boxVh",9579],["boxVH",9580],["boxvl",9508],["boxvL",9569],["boxVl",9570],["boxVL",9571],["boxvr",9500],["boxvR",9566],["boxVr",9567],["boxVR",9568],["bprime",8245],["breve",728],["brvbar",166],["bsim",8765],["bsime",8909],["bsol",92],["bull",8226],["bump",8782],["bumpe",8783],["Cacute",262],["cacute",263],["cap",8745],["Cap",8914],["caret",8257],["caron",711],["Ccaron",268],["ccaron",269],["Ccedil",199],["ccedil",231],["Ccirc",264],["ccirc",265],["Cdot",266],["cdot",267],["cedil",184],["cent",162],["CHcy",1063],["chcy",1095],["check",10003],["Chi",935],["chi",967],["cir",9675],["circ",710],["cire",8791],["clubs",9827],["Codot",266],["colon",58],["colone",8788],["comma",44],["commat",64],["comp",8705],["compfn",8728],["cong",8773],["conint",8750],["coprod",8720],["copy",169],["copysr",8471],["crarr",8629],["cross",10007],["cuepr",8926],["cuesc",8927],["cularr",8630],["cup",8746],["Cup",8915],["cupre",8828],["curarr",8631],["curren",164],["cuvee",8910],["cuwed",8911],["dagger",8224],["Dagger",8225],["daleth",8504],["darr",8595],["dArr",8659],["darr2",8650],["dash",8208],["dashv",8867],["dblac",733],["Dcaron",270],["dcaron",271],["dcross",273],["Dcy",1044],["dcy",1076],["deg",176],["Delta",916],["delta",948],["Dgr",916],["dgr",948],["dharl",8643],["dharr",8642],["diam",8900],["diams",9830],["die",168],["divide",247],["divonx",8903],["DJcy",1026],["djcy",1106],["dlarr",8601],["dlcorn",8990],["dlcrop",8973],["dollar",36],["Dot",168],["dot",729],["DotDot",8412],["drarr",8600],["drcorn",8991],["drcrop",8972],["DScy",1029],["dscy",1109],["Dstrok",272],["dstrok",273],["dsubdot",7693],["dtri",9663],["dtrif",9662],["DZcy",1039],["dzcy",1119],["Eacgr",904],["eacgr",941],["Eacute",201],["eacute",233],["Ecaron",282],["ecaron",283],["ecir",8790],["Ecirc",202],["ecirc",234],["ecolon",8789],["Ecy",1069],["ecy",1101],["Edot",278],["edot",279],["eDot",8785],["EEacgr",905],["eeacgr",942],["EEgr",919],["eegr",951],["efDot",8786],["Egr",917],["egr",949],["Egrave",200],["egrave",232],["egs",8925],["ell",8467],["els",8924],["Emacr",274],["emacr",275],["empty",8709],["emsp",8195],["emsp13",8196],["emsp14",8197],["ENG",330],["eng",331],["ensp",8194],["Eogon",280],["eogon",281],["epolhook",281],["epsi",949],["Epsilon",917],["epsilon",949],["epsis",8714],["equals",61],["equiv",8801],["erDot",8787],["esdot",8784],["Eta",919],["eta",951],["ETH",208],["eth",240],["Euml",203],["euml",235],["excl",33],["exist",8707],["Fcy",1060],["fcy",1092],["female",9792],["ffilig",64259],["fflig",64256],["ffllig",64260],["filig",64257],["flat",9837],["fllig",64258],["fnof",402],["forall",8704],["fork",8916],["frac12",189],["frac13",8531],["frac14",188],["frac15",8533],["frac16",8537],["frac18",8539],["frac23",8532],["frac25",8534],["frac34",190],["frac35",8535],["frac38",8540],["frac45",8536],["frac56",8538],["frac58",8541],["frac78",8542],["frasl",8260],["frown",8994],["gacute",501],["Gamma",915],["gamma",947],["gammad",988],["Gbreve",286],["gbreve",287],["Gcedil",290],["gcedil",291],["Gcirc",284],["gcirc",285],["Gcy",1043],["gcy",1075],["Gdot",288],["gdot",289],["ge",8805],["gE",8807],["gel",8923],["ges",8805],["Gg",8921],["Ggr",915],["ggr",947],["gimel",8503],["GJcy",1027],["gjcy",1107],["gl",8823],["gnE",8809],["gne",8809],["gnsim",8935],["godot",289],["grave",96],["gsdot",8919],["gsim",8819],["gt",62],["Gt",8811],["gvnE",8809],["hairsp",8202],["half",189],["hamilt",8459],["HARDcy",1066],["hardcy",1098],["harr",8596],["hArr",8660],["harrw",8621],["Hcirc",292],["hcirc",293],["hearts",9829],["hellip",8230],["horbar",8213],["Hstrok",294],["hstrok",295],["Hsubdot",7717],["hsubdot",7717],["hybull",8259],["hyphen",45],["Iacgr",906],["iacgr",943],["Iacute",205],["iacute",237],["Icirc",206],["icirc",238],["Icy",1048],["icy",1080],["idiagr",912],["Idigr",938],["idigr",970],["Idot",304],["idotless",305],["IEcy",1045],["iecy",1077],["iexcl",161],["iff",8660],["Igr",921],["igr",953],["Igrave",204],["igrave",236],["IJlig",306],["ijlig",307],["Imacr",298],["imacr",299],["image",8465],["incare",8453],["infin",8734],["inodot",305],["int",8747],["intcal",8890],["IOcy",1025],["iocy",1105],["Iogon",302],["iogon",303],["Iota",921],["iota",953],["iquest",191],["isin",8712],["Itilde",296],["itilde",297],["Iukcy",1030],["iukcy",1110],["Iuml",207],["iuml",239],["Jcirc",308],["jcirc",309],["Jcy",1049],["jcy",1081],["Jsercy",1032],["jsercy",1112],["Jukcy",1028],["jukcy",1108],["Kappa",922],["kappa",954],["kappav",1008],["Kcedil",310],["kcedil",311],["Kcy",1050],["kcy",1082],["Kgr",922],["kgr",954],["kgreen",312],["KHcy",1061],["khcy",1093],["KHgr",935],["khgr",967],["KJcy",1036],["kjcy",1116],["ksubdot",7731],["lAarr",8666],["Lacute",313],["lacute",314],["lagran",8466],["Lambda",923],["lambda",955],["lang",9001],["laquo",171],["larr",8592],["Larr",8606],["lArr",8656],["larr2",8647],["larrhk",8617],["larrlp",8619],["larrtl",8610],["Lcaron",317],["lcaron",318],["Lcedil",315],["lcedil",316],["lceil",8968],["lcub",123],["Lcy",1051],["lcy",1083],["ldot",8918],["ldquo",8220],["ldquor",8222],["le",8804],["lE",8806],["leg",8922],["les",8804],["lfloor",8970],["lg",8822],["Lgr",923],["lgr",955],["lhard",8637],["lharu",8636],["lhblk",9604],["LJcy",1033],["ljcy",1113],["Ll",8920],["Lmidot",319],["lmidot",320],["lnE",8808],["lne",8808],["lnsim",8934],["lowast",8727],["lowbar",95],["loz",9674],["lozf",10022],["lpar",40],["lrarr2",8646],["lrhar2",8651],["lrm",8206],["lsaquo",8249],["lsh",8624],["lsim",8818],["Lslash",321],["lslash",322],["lsqb",91],["lsquo",8216],["lsquor",8218],["Lstrok",321],["lstrok",322],["lt",60],["Lt",8810],["lthree",8907],["ltimes",8905],["ltri",9667],["ltrie",8884],["ltrif",9666],["lvnE",8808],["macr",175],["male",9794],["malt",10016],["map",8614],["marker",9646],["Mcy",1052],["mcy",1084],["mdash",8212],["Mgr",924],["mgr",956],["micro",181],["mid",8739],["middot",183],["minus",8722],["minusb",8863],["mldr",8230],["mnplus",8723],["models",8871],["msubdot",7747],["Mu",924],["mu",956],["mumap",8888],["nabla",8711],["Nacute",323],["nacute",324],["nap",8777],["napos",329],["natur",9838],["nbsp",160],["Ncaron",327],["ncaron",328],["Ncedil",325],["ncedil",326],["ncong",8775],["Ncy",1053],["ncy",1085],["ndash",8211],["ne",8800],["nearr",8599],["nequiv",8802],["nexist",8708],["nge",8817],["nges",8817],["Ngr",925],["ngr",957],["ngt",8815],["nharr",8622],["nhArr",8654],["ni",8715],["NJcy",1034],["njcy",1114],["nlarr",8602],["nlArr",8653],["nldr",8229],["nle",8816],["nles",8816],["nlt",8814],["nltri",8938],["nltrie",8940],["nmid",8740],["nodot",7749],["not",172],["notin",8713],["npar",8742],["npr",8832],["npre",8928],["nrarr",8603],["nrArr",8655],["nrtri",8939],["nrtrie",8941],["nsc",8833],["nsce",8929],["nsim",8769],["nsime",8772],["nspar",8742],["nsub",8836],["nsubdot",7751],["nsubE",8840],["nsube",8840],["nsup",8837],["nsupE",8841],["nsupe",8841],["Ntilde",209],["ntilde",241],["Nu",925],["nu",957],["num",35],["numero",8470],["numsp",8199],["nvdash",8876],["nvDash",8877],["nVdash",8878],["nVDash",8879],["nwarr",8598],["Oacgr",908],["oacgr",972],["Oacute",211],["oacute",243],["oast",8859],["ocir",8858],["Ocirc",212],["ocirc",244],["Ocy",1054],["ocy",1086],["odash",8861],["Odblac",336],["odblac",337],["odot",8857],["OElig",338],["oelig",339],["ogon",731],["Ogr",927],["ogr",959],["Ograve",210],["ograve",242],["OHacgr",911],["ohacgr",974],["OHgr",937],["ohgr",969],["ohm",8486],["olarr",8634],["oline",8254],["Omacr",332],["omacr",333],["Omega",937],["omega",969],["Omicron",927],["omicron",959],["ominus",8854],["oplus",8853],["or",8744],["orarr",8635],["order",8500],["ordf",170],["ordm",186],["oS",9416],["Oslash",216],["oslash",248],["osol",8856],["Otilde",213],["otilde",245],["otimes",8855],["Ouml",214],["ouml",246],["par",8741],["para",182],["part",8706],["Pcy",1055],["pcy",1087],["percnt",37],["period",46],["permil",8240],["perp",8869],["Pgr",928],["pgr",960],["PHgr",934],["phgr",966],["Phi",934],["phi",966],["phis",966],["phiv",981],["phmmat",8499],["phone",9742],["Pi",928],["pi",960],["piv",982],["planck",8463],["plus",43],["plusb",8862],["plusdo",8724],["plusmn",177],["pound",163],["pr",8826],["pre",8828],["prime",8242],["Prime",8243],["prnsim",8936],["prod",8719],["prop",8733],["prsim",8830],["PSgr",936],["psgr",968],["Psi",936],["psi",968],["puncsp",8200],["quest",63],["quot",34],["rAarr",8667],["Racute",340],["racute",341],["radic",8730],["rang",9002],["raquo",187],["rarr",8594],["Rarr",8608],["rArr",8658],["rarr2",8649],["rarrhk",8618],["rarrlp",8620],["rarrtl",8611],["rarrw",8605],["Rcaron",344],["rcaron",345],["Rcedil",342],["rcedil",343],["rceil",8969],["rcub",125],["Rcy",1056],["rcy",1088],["rdquo",8221],["rdquor",8220],["real",8476],["rect",9645],["reg",174],["rfloor",8971],["Rgr",929],["rgr",961],["rhard",8641],["rharu",8640],["Rho",929],["rho",961],["rhov",1009],["ring",730],["rlarr2",8644],["rlhar2",8652],["rlm",8207],["rpar",41],["rsaquo",8250],["rsh",8625],["rsqb",93],["rsquo",8217],["rsquor",8216],["Rsubdot",7770],["rsubdot",7771],["rthree",8908],["rtimes",8906],["rtri",9657],["rtrie",8885],["rtrif",9656],["rx",8478],["Sacute",346],["sacute",347],["samalg",8720],["sbquo",8218],["sbsol",92],["sc",8827],["Scaron",352],["scaron",353],["sccue",8829],["sce",8829],["Scedil",350],["scedil",351],["Scirc",348],["scirc",349],["scnsim",8937],["scsim",8831],["Scy",1057],["scy",1089],["sdot",8901],["sdotb",8865],["sect",167],["semi",59],["setmn",8726],["sext",10038],["sfgr",962],["sfrown",8994],["Sgr",931],["sgr",963],["sharp",9839],["SHCHcy",1065],["shchcy",1097],["SHcy",1064],["shcy",1096],["shy",173],["Sigma",931],["sigma",963],["sigmaf",962],["sigmav",962],["sim",8764],["sime",8771],["smile",8995],["SOFTcy",1068],["softcy",1100],["sol",47],["spades",9824],["spar",8741],["sqcap",8851],["sqcup",8852],["sqsub",8847],["sqsube",8849],["sqsup",8848],["sqsupe",8850],["squ",9633],["square",9633],["squf",9642],["ssetmn",8726],["ssmile",8995],["sstarf",8902],["ssubdot",7779],["star",9734],["starf",9733],["sub",8834],["Sub",8912],["subE",8838],["sube",8838],["subnE",8842],["subne",8842],["sum",8721],["sung",9834],["sup",8835],["Sup",8913],["sup1",185],["sup2",178],["sup3",179],["supE",8839],["supe",8839],["supnE",8843],["supne",8843],["szlig",223],["target",8982],["Tau",932],["tau",964],["Tcaron",356],["tcaron",357],["Tcedil",354],["tcedil",355],["Tcy",1058],["tcy",1090],["tdot",8411],["telrec",8981],["Tgr",932],["tgr",964],["there4",8756],["Theta",920],["theta",952],["thetas",952],["thetasym",977],["thetav",977],["THgr",920],["thgr",952],["thinsp",8201],["thkap",8776],["thksim",8764],["THORN",222],["thorn",254],["tilde",732],["times",215],["timesb",8864],["top",8868],["tprime",8244],["trade",8482],["trie",8796],["TScy",1062],["tscy",1094],["TSHcy",1035],["tshcy",1115],["Tstrok",358],["tstrok",359],["tsubdot",7789],["twixt",8812],["Uacgr",910],["uacgr",973],["Uacute",218],["uacute",250],["uarr",8593],["uArr",8657],["uarr2",8648],["Ubrcy",1038],["ubrcy",1118],["Ubreve",364],["ubreve",365],["Ucirc",219],["ucirc",251],["Ucy",1059],["ucy",1091],["Udblac",368],["udblac",369],["udiagr",944],["Udigr",939],["udigr",971],["Ugr",933],["ugr",965],["Ugrave",217],["ugrave",249],["uharl",8639],["uharr",8638],["uhblk",9600],["ulcorn",8988],["ulcrop",8975],["Umacr",362],["umacr",363],["uml",168],["Uogon",370],["uogon",371],["uplus",8846],["Upsi",933],["upsi",965],["upsih",978],["Upsilon",933],["upsilon",965],["urcorn",8989],["urcrop",8974],["Uring",366],["uring",367],["Utilde",360],["utilde",361],["utri",9653],["utrif",9652],["Uuml",220],["uuml",252],["varr",8597],["vArr",8661],["Vcy",1042],["vcy",1074],["vdash",8866],["vDash",8872],["Vdash",8873],["veebar",8891],["vellip",8942],["verbar",124],["Verbar",8214],["vltri",8882],["vprime",8242],["vprop",8733],["vrtri",8883],["vsubnE",8842],["vsubne",8842],["vsupnE",8843],["vsupne",8843],["Vvdash",8874],["Wcirc",372],["wcirc",373],["wedgeq",8793],["weierp",8472],["wreath",8768],["xcirc",9675],["xdtri",9661],["Xgr",926],["xgr",958],["xhArr",8596],["xharr",8596],["Xi",926],["xi",958],["xlArr",8656],["xrArr",8658],["xutri",9651],["Yacute",221],["yacute",253],["YAcy",1071],["yacy",1103],["Ycirc",374],["ycirc",375],["Ycy",1067],["ycy",1099],["yen",165],["YIcy",1031],["yicy",1111],["YUcy",1070],["yucy",1102],["yuml",255],["Yuml",376],["Zacute",377],["zacute",378],["Zcaron",381],["zcaron",382],["Zcy",1047],["zcy",1079],["Zdot",379],["zdot",380],["Zeta",918],["zeta",950],["Zgr",918],["zgr",950],["ZHcy",1046],["zhcy",1078],["Zodot",379],["zodot",380],["Zsubdot",7826],["zsubdot",7827],["zwj",8205],["zwnj",8204],["euro",8364]])),i=["expanded",e.large_array_unpack("ap,thkap,rsquor,aleph,lsquor,square,rdquor,ldquor,b.kappav,b.rhov,mldr,xlArr,die,Dot,xrArr,iff,les,ges,vprime,lne,lvnE,gne,gvnE,nles,nges,half,xcirc,pre,sce,Agr,Bgr,subE,b.Gamma,Ggr,supE,b.Delta,Dgr,nsube,nsupe,Egr,Zgr,subne,vsubnE,vsubne,EEgr,supne,vsupnE,vsupne,b.Theta,THgr,Igr,Kgr,b.Lambda,Lgr,Mgr,Ngr,b.Xi,Xgr,Ogr,b.Pi,Pgr,sfrown,Rgr,ssmile,b.Sigma,Sgr,Tgr,b.Upsi,Ugr,Upsi,b.Phi,PHgr,KHgr,b.Psi,PSgr,b.Omega,OHgr,coprod,samalg,sbsol,ssetmn,agr,b.alpha,bottom,b.beta,bgr,b.gamma,ggr,b.delta,dgr,b.epsi,b.epsis,b.epsiv,egr,epsi,b.zeta,zgr,vprop,b.eta,eegr,b.thetas,thetas,thgr,b.iota,igr,b.kappa,kgr,b.lambda,lgr,xhArr,xharr,b.mu,mgr,b.nu,ngr,b.xi,xgr,spar,ogr,nspar,b.pi,pgr,b.rho,rgr,b.sigmav,sfgr,sigmav,b.sigma,sgr,b.tau,tgr,b.upsi,ugr,upsi,b.phis,phgr,phis,b.chi,khgr,b.psi,psgr,ohgr,b.omega,b.thetav,thetav,b.phiv,thksim,b.piv,b.gammad")],r(l("SKIP_DUP_ENCODINGS"),"[]=",i),i[i.length-1]}(n[0],0,n)},Opal.modules["htmlentities/flavors"]=function(e){var t=e.klass,r=e.const_set,n=e.truthy,a=e.top,s=[],i=e.nil;return e.add_stubs("require"),function(a,s,o){var l=[t(a,null,"HTMLEntities")].concat(o),$=e.$r(l);r(l[0],"FLAVORS",["html4","xhtml1","expanded"]),n($("MAPPINGS","skip_raise")?"constant":i)||r(l[0],"MAPPINGS",new Map),n($("SKIP_DUP_ENCODINGS","skip_raise")?"constant":i)||r(l[0],"SKIP_DUP_ENCODINGS",new Map)}(s[0],0,s),a.$require("htmlentities/mappings/html4"),a.$require("htmlentities/mappings/xhtml1"),a.$require("htmlentities/mappings/expanded")},Opal.modules["htmlentities/encoder"]=function(e){var t=e.klass,r=e.const_set,n=e.truthy,a=e.def,s=e.neqeq,i=e.annotate_regexp,o=e.eqeq,l=e.rb_plus,$=e.send,u=e.rb_minus,c=e.thrower,_=[],p=e.nil,m=e.$$$;return e.add_stubs("new,empty?,validate_instructions,build_basic_entity_encoder,build_extended_entity_encoder,minimize_encoding,replace_extended,replace_basic,prepare,private,encode,to_s,contains_only_ascii?,!=,encoding,match,==,+,gsub,basic_entity_regexp,encode_basic,extended_entity_regexp,encode_extended,-,any?,raise,inspect,include?,define_method,singleton_class,send,&,each,first,codepoints,[],reverse_map,reject,invert"),function(_,d,f){var h=[t(_,null,"HTMLEntities")].concat(f),g=e.$r(h);return r(h[0],"InstructionError",g("Class").$new(g("RuntimeError"))),function(_,d,f){var h=t(_,null,"Encoder"),g=[h].concat(f),b=e.$r(g),v=h.$$prototype;return v.basic_entity_regexp=v.flavor=v.extended_entity_regexp=v.reverse_map=p,r(g[0],"INSTRUCTIONS",["basic","named","decimal","hexadecimal"]),a(h,"$initialize",(function(e,t){var r=this;return r.flavor=e,n(t["$empty?"]())&&(t=["basic"]),r.$validate_instructions(t),r.$build_basic_entity_encoder(t),r.$build_extended_entity_encoder(t)})),a(h,"$encode",(function(e){var t=this;return t.$minimize_encoding(t.$replace_extended(t.$replace_basic(t.$prepare(e))))})),h.$private(),a(h,"$prepare",(function(e){return e.$to_s().$encode(m(b("Encoding"),"UTF_8"))})),a(h,"$minimize_encoding",(function(e){return s(e.$encoding(),m(b("Encoding"),"ASCII"))&&n(this["$contains_only_ascii?"](e))?e.$encode(m(b("Encoding"),"ASCII")):e})),a(h,"$contains_only_ascii?",(function(e){return e.$match(i(/^[\x01-\x7F]*$/u,"\\A[\\x01-\\x7F]*\\z",""))})),a(h,"$basic_entity_regexp",(function(){var e,t=this;return t.basic_entity_regexp=n(e=t.basic_entity_regexp)?e:n(t.flavor.$match(i(/^html/m,null,"")))?i(/[<>"&]/u,null,""):i(/[<>'"&]/u,null,"")})),a(h,"$extended_entity_regexp",(function(){var e,t=this,r=p;return t.extended_entity_regexp=n(e=t.extended_entity_regexp)?e:(r="[^\\u0020-\\u007E]",o(t.flavor,"html4")&&(r=l(r,"|'")),b("Regexp").$new(r))})),a(h,"$replace_basic",(function(e){return $(e,"gsub",[this.$basic_entity_regexp()],(function e(t){return null==t&&(t=p),(null==e.$$s?this:e.$$s).$encode_basic(t)}),{$$s:this})})),a(h,"$replace_extended",(function(e){return $(e,"gsub",[this.$extended_entity_regexp()],(function e(t){return null==t&&(t=p),(null==e.$$s?this:e.$$s).$encode_extended(t)}),{$$s:this})})),a(h,"$validate_instructions",(function(e){var t=p;return t=u(e,b("INSTRUCTIONS")),n(t["$any?"]())&&this.$raise(b("InstructionError"),"unknown encode_entities command(s): "+t.$inspect()),n(e["$include?"]("decimal"))&&n(e["$include?"]("hexadecimal"))?this.$raise(b("InstructionError"),"hexadecimal and decimal encoding are mutually exclusive"):p})),a(h,"$build_basic_entity_encoder",(function(e){var t=p;return n(e["$include?"]("basic"))||n(e["$include?"]("named"))?t="encode_named":n(e["$include?"]("decimal"))?t="encode_decimal":n(e["$include?"]("hexadecimal"))&&(t="encode_hexadecimal"),$(this.$singleton_class(),"define_method",["encode_basic"],(function e(r){return null==r&&(r=p),(null==e.$$s?this:e.$$s).$send(t,r)}),{$$s:this})})),a(h,"$build_extended_entity_encoder",(function(e){var t;return t=["named","decimal","hexadecimal"]["$&"](e),$(this.$singleton_class(),"define_method",["encode_extended"],(function e(r){var a,s=null==e.$$s?this:e.$$s,i=p;return null==r&&(r=p),i=p,function(){try{var e=c("break");return $(t,"each",[],(function t(a){var s;if(null==a&&(a=p),s=(null==t.$$s?this:t.$$s).$send("encode_"+a,r),!n(s))return p;i=s,e.$throw(p,t.$$is_lambda)}),{$$s:s})}catch(t){if(t===e)return t.$v;throw t}finally{e.is_orphan=!0}}(),n(a=i)?a:r}),{$$s:this})})),a(h,"$encode_named",(function(e){var t,r,a;return t=e.$codepoints().$first(),n(r=a=this.$reverse_map()["$[]"](t))?"&"+a+";":r})),a(h,"$encode_decimal",(function(e){return"&#"+e.$codepoints().$first()+";"})),a(h,"$encode_hexadecimal",(function(e){return"&#x"+e.$codepoints().$first().$to_s(16)+";"})),a(h,"$reverse_map",(function(){var e,t=this,r=p,a=p;return t.reverse_map=n(e=t.reverse_map)?e:(r=m(b("HTMLEntities"),"SKIP_DUP_ENCODINGS")["$[]"](t.flavor),a=m(b("HTMLEntities"),"MAPPINGS")["$[]"](t.flavor),(n(r)?$(a,"reject",[],(function(e,t){return null==e&&(e=p),null==t&&(t=p),r["$include?"](e)})):a).$invert())}))}(h[0],0,h)}(_[0],0,_)},Opal.modules["htmlentities/decoder"]=function(e){var t=e.klass,r=e.def,n=e.send,a=e.truthy,s=e.gvars,i=e.eqeq,o=e.regexp,l=e.rb_minus,$=[],u=e.nil,c=e.$$$;return e.add_stubs("[],entity_regexp,gsub,prepare,chr,to_i,private,encode,to_s,map,keys,length,==,-,min,max"),function($,_,p){var m=[t($,null,"HTMLEntities")].concat(p);return function($,_,p){var m=t($,null,"Decoder"),d=[m].concat(p),f=e.$r(d),h=m.$$prototype;return h.flavor=h.entity_regexp=h.map=u,r(m,"$initialize",(function(e){var t=this;return t.flavor=e,t.map=c(f("HTMLEntities"),"MAPPINGS")["$[]"](t.flavor),t.entity_regexp=t.$entity_regexp()})),r(m,"$decode",(function(e){var t=this;return n(t.$prepare(e),"gsub",[t.entity_regexp],(function e(){var t,r=null==e.$$s?this:e.$$s,n=u;return null==r.map&&(r.map=u),a((t=s["~"])===u?u:t["$[]"](1))&&a(n=r.map["$[]"]((t=s["~"])===u?u:t["$[]"](1)))?n.$chr(c(f("Encoding"),"UTF_8")):a((t=s["~"])===u?u:t["$[]"](2))?((t=s["~"])===u?u:t["$[]"](2)).$to_i(10).$chr(c(f("Encoding"),"UTF_8")):a((t=s["~"])===u?u:t["$[]"](3))?((t=s["~"])===u?u:t["$[]"](3)).$to_i(16).$chr(c(f("Encoding"),"UTF_8")):(t=s["~"])===u?u:t["$[]"](0)}),{$$s:t})})),m.$private(),r(m,"$prepare",(function(e){return e.$to_s().$encode(c(f("Encoding"),"UTF_8"))})),r(m,"$entity_regexp",(function(){var e=u,t=u;return e=n(this.map.$keys(),"map",[],(function(e){return null==e&&(e=u),e.$length()})),t=i(this.flavor,"expanded")?"(?:b\\.)?[a-z][a-z0-9]":"[a-z][a-z0-9]",o(["&(?:(",t,"{",l(e.$min(),1),",",l(e.$max(),1),"})|#([0-9]{1,7})|#x([0-9a-f]{1,6}));"],"i")}))}(m[0],0,m)}($[0],0,$)},Opal.modules["htmlentities/version"]=function(e){var t=e.klass,r=e.module,n=e.const_set,a=[];e.nil;return e.add_stubs("join"),function(a,s,i){var o=[t(a,null,"HTMLEntities")].concat(i);return function(t,a){var s=[r(t,"VERSION")].concat(a),i=e.$r(s);return n(s[0],"MAJOR",4),n(s[0],"MINOR",3),n(s[0],"TINY",4),n(s[0],"STRING",[i("MAJOR"),i("MINOR"),i("TINY")].$join("."))}(o[0],o)}(a[0],0,a)},Opal.modules.htmlentities=function(e){var t=e.klass,r=e.const_set,n=e.truthy,a=e.def,s=e.slice,i=e.top,o=[],l=e.nil;return e.add_stubs("require,new,downcase,to_s,include?,raise,decode,encode"),i.$require("htmlentities/flavors"),i.$require("htmlentities/encoder"),i.$require("htmlentities/decoder"),i.$require("htmlentities/version"),function(i,o,$){var u=t(i,null,"HTMLEntities"),c=[u].concat($),_=e.$r(c),p=u.$$prototype;return p.flavor=p.decoder=l,r(c[0],"UnknownFlavor",_("Class").$new(_("RuntimeError"))),a(u,"$initialize",(function(e){var t=this;return null==e&&(e="xhtml1"),t.flavor=e.$to_s().$downcase(),n(_("FLAVORS")["$include?"](t.flavor))?l:t.$raise(_("UnknownFlavor"),"Unknown flavor "+e)}),-1),a(u,"$decode",(function(e){var t,r=this;return(r.decoder=n(t=r.decoder)?t:_("Decoder").$new(r.flavor)).$decode(e)})),a(u,"$encode",(function(e,t){var r;return r=s(arguments,1),_("Encoder").$new(this.flavor,r).$encode(e)}),-2)}(o[0],0,o)},Opal.modules["plurimath/math/function/text"]=function(e){var t=e.module,r=e.klass,n=e.const_set,a=e.regexp,s=e.truthy,i=e.def,o=e.return_val,l=e.ensure_kwargs,$=e.get_kwarg,u=e.send,c=e.eqeq,_=e.top,p=[],m=e.nil,d=e.$$$;return e.add_stubs("require,freeze,parse_text,parameter_one,ox_element,<<,update_nodes,to_omml_without_math_tag,to_asciimath,dump_mathml,dump_omml,protected,[],invert,dup,first_value,gsub,last_match,symbol_value,==,new,encode,decode"),_.$require("htmlentities"),_.$require("plurimath//math/function/text.rb/../unary_function"),function(_,p){var f=[t(_,"Plurimath")].concat(p);return function(_,p){var f=[t(_,"Math")].concat(p);return function(_,p){var f=[t(_,"Function")].concat(p),h=e.$r(f);return function(t,_,p){var f=r(t,_,"Text"),h=[f].concat(p),g=e.$r(h);return n(h[0],"PARSER_REGEX",a(["unicode\\[:(?<unicode>\\w{1,})\\]"]).$freeze()),i(f,"$to_asciimath",(function(){var e;return'"'+(s(e=this.$parse_text("asciimath"))?e:this.$parameter_one())+'"'})),i(f,"$to_mathml_without_math_tag",(function(){var e,t=this,r=m;return r=g("Utility").$ox_element("mtext"),s(t.$parameter_one())?r["$<<"](s(e=t.$parse_text("mathml"))?e:t.$parameter_one()):r})),i(f,"$to_latex",(function(){var e;return"\\text{"+(s(e=this.$parse_text("latex"))?e:this.$parameter_one())+"}"})),i(f,"$to_html",(function(){var e;return s(e=this.$parse_text("html"))?e:this.$parameter_one()})),i(f,"$to_omml_without_math_tag",(function(e){var t,r=m;return(r=g("Utility").$ox_element("t",new Map([["namespace","m"]])))["$<<"](s(t=this.$parse_text("omml"))?t:this.$parameter_one()),[r]})),i(f,"$insert_t_tag",(function(e){var t;return t=g("Utility").$ox_element("r",new Map([["namespace","m"]])),g("Utility").$update_nodes(t,this.$to_omml_without_math_tag(e)),[t]})),i(f,"$validate_function_formula",o(!1)),i(f,"$to_asciimath_math_zone",(function(e,t,r){return""+e+this.$to_asciimath()+" text\n"})),i(f,"$to_latex_math_zone",(function(e,t,r){return""+e+this.$to_asciimath()+" text\n"})),i(f,"$to_mathml_math_zone",(function(e,t,r){return e+'"'+this.$dump_mathml(this)+'" text\n'})),i(f,"$to_omml_math_zone",(function(e,t,r,n){var a;return n=l(n),a=$(n,"display_style"),e+'"'+this.$dump_omml(this,a)+'" text\n'})),i(f,"$value",(function(){return this.$parameter_one()})),f.$protected(),i(f,"$symbol_value",(function(e){var t;return s(t=d(d(g("Mathml"),"Constants"),"UNICODE_SYMBOLS").$invert()["$[]"](e))?t:d(d(g("Mathml"),"Constants"),"SYMBOLS").$invert()["$[]"](e)})),i(f,"$parse_text",(function(e){var t;return(t=this.$first_value(e).$dup())===m||null==t?m:u(t,"gsub",[g("PARSER_REGEX")],(function t(r){var n=null==t.$$s?this:t.$$s,a=m;switch(null==r&&(r=m),a=g("Regexp").$last_match(),e.valueOf()){case"mathml":case"html":case"omml":return n.$symbol_value(a["$[]"]("unicode"));default:return a["$[]"]("unicode")}}),{$$s:this})})),i(f,"$first_value",(function(e){var t,r=m;return c(e,"omml")?(r=g("HTMLEntities").$new()).$encode(r.$decode((t=this.$parameter_one())===m||null==t?m:t.$gsub(/ /,"&#xa0;")),"hexadecimal"):this.$parameter_one()}))}(f[0],h("UnaryFunction"),f)}(f[0],f)}(f[0],f)}(p[0],p)},Opal.modules["plurimath/math/function/tilde"]=function(e){var t=e.module,r=e.klass,n=e.send2,a=e.find_super,s=e.def,i=e.truthy,o=e.return_val,l=e.top,$=[],u=e.nil;return e.add_stubs("attr_accessor,ox_element,[],attributes,merge!,<<,parameter_one,to_mathml_without_math_tag,update_nodes,r_element,acc_tag,new,to_omml_without_math_tag,protected,omml_parameter"),l.$require("plurimath//math/function/tilde.rb/../unary_function"),function(l,$){var c=[t(l,"Plurimath")].concat($);return function(l,$){var c=[t(l,"Math")].concat($);return function(l,$){var c=[t(l,"Function")].concat($),_=e.$r(c);return function(t,l,$){var c=r(t,l,"Tilde"),_=[c].concat($),p=e.$r(_);return c.$attr_accessor("attributes"),s(c,"$initialize",(function e(t,r){var s=this;return e.$$p=null,null==t&&(t=u),null==r&&(r=new Map),n(s,a(s,"initialize",e,!1,!0),"initialize",[t],null),s.attributes=r}),-1),s(c,"$to_mathml_without_math_tag",(function(){var e,t=this,r=u,n=u;return r=p("Utility").$ox_element("mover"),i(t.$attributes())&&i(t.$attributes()["$[]"]("accent"))&&r.$attributes()["$merge!"](new Map([["accent",t.$attributes()["$[]"]("accent")]])),e=p("Utility").$ox_element("mo")["$<<"]("~"),i(t.$parameter_one())&&(n=t.$parameter_one().$to_mathml_without_math_tag()),p("Utility").$update_nodes(r,[n,e])})),s(c,"$to_omml_without_math_tag",(function(e){var t=this,r=u;return i(t.$parameter_one())?i(t.$attributes())&&i(t.$attributes()["$[]"]("accent"))?t.$acc_tag(e):(r=p("Symbol").$new("~"),p("Overset").$new(t.$parameter_one(),r).$to_omml_without_math_tag(!0)):t.$r_element("~",new Map([["rpr_tag",!1]]))})),s(c,"$validate_function_formula",o(!1)),c.$protected(),s(c,"$acc_tag",(function(e){var t,r=u;return t=p("Utility").$ox_element("acc",new Map([["namespace","m"]])),(r=p("Utility").$ox_element("accPr",new Map([["namespace","m"]])))["$<<"](p("Utility").$ox_element("chr",new Map([["namespace","m"],["attributes",new Map([["m:val","˜"]])]]))),p("Utility").$update_nodes(t,[r,this.$omml_parameter(this.$parameter_one(),e,new Map([["tag_name","e"]]))]),[t]}))}(c[0],_("UnaryFunction"),c)}(c[0],c)}(c[0],c)}($[0],$)},Opal.modules["plurimath/math/function/tr"]=function(e){var t=e.module,r=e.klass,n=e.send,a=e.def,s=e.truthy,i=e.slice,o=e.extract_kwargs,l=e.ensure_kwargs,$=e.get_kwarg,u=e.top,c=[],_=e.nil;return e.add_stubs("join,map,parameter_one,to_proc,dup,first,symbol_value,shift,update_nodes,ox_element,compact,reject,to_omml_without_math_tag,eql?,count,to_asciimath_math_zone,new,gsub_spacing,to_latex_math_zone,to_mathml_math_zone,to_omml_math_zone"),u.$require("plurimath//math/function/tr.rb/../unary_function"),function(u,c){var p=[t(u,"Plurimath")].concat(c);return function(u,c){var p=[t(u,"Math")].concat(c);return function(u,c){var p=[t(u,"Function")].concat(c),m=e.$r(p);return function(t,u,c){var p=r(t,u,"Tr"),m=[p].concat(c),d=e.$r(m);return a(p,"$to_asciimath",(function(){return"["+n(this.$parameter_one(),"map",[],"to_asciimath".$to_proc()).$join(", ")+"]"})),a(p,"$to_mathml_without_math_tag",(function(){var e=_,t=_;return t=(e=this.$parameter_one().$dup()).$first().$parameter_one(),s(d("Utility").$symbol_value(t.$first(),"&#x23af;"))&&t.$shift(),d("Utility").$update_nodes(d("Utility").$ox_element("mtr"),n(e,"map",[],"to_mathml_without_math_tag".$to_proc()).$compact())})),a(p,"$to_latex",(function(){return n(n(this.$parameter_one(),"reject",[],(function(e){return null==e&&(e=_),s(d("Utility").$symbol_value(e,"|"))||s(d("Utility").$symbol_value(e.$parameter_one().$first(),"|"))?e:_})),"map",[],"to_latex".$to_proc()).$join(" & ")})),a(p,"$to_html",(function(){return"<tr>"+n(this.$parameter_one(),"map",[],"to_html".$to_proc()).$join()+"</tr>"})),a(p,"$to_omml_without_math_tag",(function(e){var t,r=_,a=_;return r=(t=this.$parameter_one())===_||null==t?_:n(t,"map",[],(function(t){return null==t&&(t=_),t.$to_omml_without_math_tag(e)})),s(this.$parameter_one().$count()["$eql?"](1))?r:(a=d("Utility").$ox_element("mr",new Map([["namespace","m"]])),d("Utility").$update_nodes(a,r),[a])})),a(p,"$to_asciimath_math_zone",(function(e,t,r){return null==t&&(t=!1),null==r&&(r=!0),[e+'"tr" function apply\n',d("Formula").$new(this.$parameter_one()).$to_asciimath_math_zone(this.$gsub_spacing(e,t),t,r)]}),-2),a(p,"$to_latex_math_zone",(function(e,t,r){return null==t&&(t=!1),null==r&&(r=!0),[e+'"tr" function apply\n',d("Formula").$new(this.$parameter_one()).$to_latex_math_zone(this.$gsub_spacing(e,t),t,r)]}),-2),a(p,"$to_mathml_math_zone",(function(e,t,r){return null==t&&(t=!1),null==r&&(r=!0),[e+'"tr" function apply\n',d("Formula").$new(this.$parameter_one()).$to_mathml_math_zone(this.$gsub_spacing(e,t),t,r)]}),-2),a(p,"$to_omml_math_zone",(function(e,t,r,n){var a,s,u,c,_;return a=i(arguments,1),s=o(a),s=l(s),a.length>0&&(u=a.shift()),null==u&&(u=!1),a.length>0&&(c=a.shift()),null==c&&(c=!0),_=$(s,"display_style"),[e+'"tr" function apply\n',d("Formula").$new(this.$parameter_one()).$to_omml_math_zone(this.$gsub_spacing(e,u),u,c,new Map([["display_style",_]]))]}),-3)}(p[0],m("UnaryFunction"),p)}(p[0],p)}(p[0],p)}(c[0],c)},Opal.modules["plurimath/math/function/ubrace"]=function(e){var t=e.module,r=e.klass,n=e.send2,a=e.find_super,s=e.def,i=e.truthy,o=e.not,l=e.return_val,$=e.const_set,u=e.top,c=[],_=e.nil;return e.add_stubs("attr_accessor,parameter_one,to_asciimath,to_latex,<<,ox_element,!,empty?,attributes,merge!,update_nodes,to_mathml_without_math_tag,r_element,new,to_omml_without_math_tag"),u.$require("plurimath//math/function/ubrace.rb/../unary_function"),function(u,c){var p=[t(u,"Plurimath")].concat(c);return function(u,c){var p=[t(u,"Math")].concat(c);return function(u,c){var p=[t(u,"Function")].concat(c),m=e.$r(p);return function(t,$,u){var c=r(t,$,"Ubrace"),p=[c].concat(u),m=e.$r(p);c.$attr_accessor("attributes"),s(c,"$initialize",(function e(t,r){var s=this;return e.$$p=null,null==t&&(t=_),null==r&&(r=new Map),n(s,a(s,"initialize",e,!1,!0),"initialize",[t],null),s.attributes=r}),-1),s(c,"$to_asciimath",(function(){var e=_;return i(this.$parameter_one())&&(e="("+this.$parameter_one().$to_asciimath()+")"),"ubrace"+e})),s(c,"$to_latex",(function(){var e=_;return i(this.$parameter_one())&&(e="{"+this.$parameter_one().$to_latex()+"}"),"\\underbrace"+e})),s(c,"$to_mathml_without_math_tag",(function(){var e,t=this,r=_;return e=m("Utility").$ox_element("mo")["$<<"]("&#x23df;"),i(t.$parameter_one())?(r=m("Utility").$ox_element("munder"),i(t.$attributes())&&o(t.$attributes()["$empty?"]())&&r.$attributes()["$merge!"](t.$attributes()),m("Utility").$update_nodes(r,[t.$parameter_one().$to_mathml_without_math_tag(),e])):e})),s(c,"$tag_name",l("underover")),s(c,"$omml_tag_name",l("undOvr")),s(c,"$validate_function_formula",l(!1)),s(c,"$to_omml_without_math_tag",(function(e){var t,r=this;return i(r.$parameter_one())?(t=m("Symbol").$new("⏟"),m("Underset").$new(r.$parameter_one(),t).$to_omml_without_math_tag(!0)):r.$r_element("⏟",new Map([["rpr_tag",!1]]))}))}(p[0],m("UnaryFunction"),p),$(p[0],"Underbrace",m("Ubrace"))}(p[0],p)}(p[0],p)}(c[0],c)},Opal.modules["plurimath/math/function/ul"]=function(e){var t=e.module,r=e.klass,n=e.send2,a=e.find_super,s=e.def,i=e.truthy,o=e.not,l=e.return_val,$=e.const_set,u=e.top,c=[],_=e.nil;return e.add_stubs("attr_accessor,parameter_one,to_asciimath,to_latex,<<,ox_element,!,empty?,attributes,merge!,update_nodes,to_mathml_without_math_tag,r_element,[],groupchr_tag,new,to_omml_without_math_tag,protected,omml_parameter"),u.$require("plurimath//math/function/ul.rb/../unary_function"),function(u,c){var p=[t(u,"Plurimath")].concat(c);return function(u,c){var p=[t(u,"Math")].concat(c);return function(u,c){var p=[t(u,"Function")].concat(c),m=e.$r(p);return function(t,$,u){var c=r(t,$,"Ul"),p=[c].concat(u),m=e.$r(p);c.$attr_accessor("attributes"),s(c,"$initialize",(function e(t,r){var s=this;return e.$$p=null,null==t&&(t=_),null==r&&(r=new Map),n(s,a(s,"initialize",e,!1,!0),"initialize",[t],null),s.attributes=r}),-1),s(c,"$to_asciimath",(function(){var e=_;return i(this.$parameter_one())&&(e="("+this.$parameter_one().$to_asciimath()+")"),"underline"+e})),s(c,"$to_latex",(function(){var e=_;return i(this.$parameter_one())&&(e="{"+this.$parameter_one().$to_latex()+"}"),"\\underline"+e})),s(c,"$to_mathml_without_math_tag",(function(){var e,t,r=this,n=_;return t=m("Utility").$ox_element("mo")["$<<"]("&#x332;"),i(r.$parameter_one())?(n=m("Utility").$ox_element("munder"),i(r.$attributes())&&o(r.$attributes()["$empty?"]())&&n.$attributes()["$merge!"](r.$attributes()),m("Utility").$update_nodes(n,[(e=r.$parameter_one(),e===_||null==e?_:e.$to_mathml_without_math_tag()),t])):t})),s(c,"$to_omml_without_math_tag",(function(e){var t=this,r=_;return i(t.$parameter_one())?i(t.$attributes())&&i(t.$attributes()["$[]"]("accentunder"))?t.$groupchr_tag(e):(r=m("Symbol").$new("&#x332;"),m("Underset").$new(t.$parameter_one(),r).$to_omml_without_math_tag(!0)):t.$r_element("&#x332;",new Map([["rpr_tag",!1]]))})),s(c,"$class_name",l("underline")),s(c,"$swap_class",(function(){return m("Bar").$new(this.$parameter_one(),this.$attributes())})),c.$protected(),s(c,"$groupchr_tag",(function(e){var t,r,n,a;return t=m("Utility").$ox_element("groupChr",new Map([["namespace","m"]])),r=m("Utility").$ox_element("groupChrPR",new Map([["namespace","m"]])),n=m("Utility").$ox_element("chr",new Map([["namespace","m"],["attributes",new Map([["m:val","_"]])]])),a=m("Utility").$ox_element("pos",new Map([["namespace","m"],["attributes",new Map([["m:val","bot"]])]])),m("Utility").$update_nodes(r,[n,a]),m("Utility").$update_nodes(t,[r,this.$omml_parameter(this.$parameter_one(),e,new Map([["tag_name","e"],["namespace","m"]]))])}))}(p[0],m("UnaryFunction"),p),$(p[0],"Underline",m("Ul"))}(p[0],p)}(p[0],p)}(c[0],c)},Opal.modules["plurimath/math/function/unary_function"]=function(e){var t=e.module,r=e.klass,n=e.truthy,a=e.def,s=e.rb_plus,i=e.send,o=e.slice,l=e.extract_kwargs,$=e.ensure_kwargs,u=e.get_kwarg,c=e.eqeqeq,_=[],p=e.nil,m=e.$$$;return e.add_stubs("attr_accessor,is_a?,to_s,validate_left_right,==,class,parameter_one,any?,class_name,asciimath_value,ox_element,include?,<<,+,mathml_value,update_nodes,first,latex_value,join,map,to_proc,to_html,invert_unicode_symbols,r_element,pr_element,rpr_element,omml_value,gsub_spacing,to_asciimath,ascii_fields_to_print,to_latex,latex_fields_to_print,dump_mathml,mathml_fields_to_print,dump_omml,omml_fields_to_print,protected,===,compact,Array,to_mathml_without_math_tag,insert_t_tag,[],invert"),function(_,d){var f=[t(_,"Plurimath")].concat(d);return function(_,d){var f=[t(_,"Math")].concat(d);return function(_,d){var f=[t(_,"Function")].concat(d),h=e.$r(f);return function(t,_,d){var f=r(t,_,"UnaryFunction"),h=[f].concat(d),g=e.$r(h);return f.$attr_accessor("parameter_one"),a(f,"$initialize",(function(e){return null==e&&(e=p),n(e["$is_a?"](m(g("Parslet"),"Slice")))&&(e=e.$to_s()),this.parameter_one=e,g("Utility").$validate_left_right([e])}),-1),a(f,"$==",(function(e){var t;return n(t=e.$class()["$=="](this.$class()))?e.$parameter_one()["$=="](this.$parameter_one()):t})),a(f,"$to_asciimath",(function(){var e,t=this;return e=n(m(g("Utility"),"UNARY_CLASSES")["$any?"](t.$class_name()))?t.$asciimath_value():n(t.$parameter_one())?"("+t.$asciimath_value()+")":p,""+t.$class_name()+e})),a(f,"$to_mathml_without_math_tag",(function(){var e,t,r=this,a=p;return e=g("Utility").$ox_element("mrow"),t=n(m(g("Utility"),"UNARY_CLASSES")["$include?"](r.$class_name()))?"mi":"mo",a=[g("Utility").$ox_element(t)["$<<"](r.$class_name())],n(r.$parameter_one())?(a=s(a,r.$mathml_value()),g("Utility").$update_nodes(e,a)):a.$first()})),a(f,"$to_latex",(function(){return"\\"+this.$class_name()+"{"+this.$latex_value()+"}"})),a(f,"$to_html",(function(){var e,t=this;return e=n(t.$parameter_one()["$is_a?"](g("Array")))?"<i>"+i(t.$parameter_one(),"map",[],"to_html".$to_proc()).$join()+"</i>":n(t.$parameter_one())?"<i>"+t.$parameter_one().$to_html()+"</i>":p,"<i>"+t.$invert_unicode_symbols()+"</i>"+e})),a(f,"$to_omml_without_math_tag",(function(e){var t,r,a,s,i,o=this,l=p,$=p;return n(o.$parameter_one())?(t=g("Utility").$ox_element("func",new Map([["namespace","m"]])),(l=g("Utility").$ox_element("funcPr",new Map([["namespace","m"]])))["$<<"](g("Utility").$pr_element("ctrl",!0,new Map([["namespace","m"]]))),$=g("Utility").$ox_element("fName",new Map([["namespace","m"]])),r=g("Utility").$ox_element("r",new Map([["namespace","m"]])),a=g("Utility").$rpr_element(),s=g("Utility").$ox_element("t",new Map([["namespace","m"]]))["$<<"](o.$class_name()),$["$<<"](g("Utility").$update_nodes(r,[a,s])),i=g("Utility").$ox_element("e",new Map([["namespace","m"]])),n(o.$parameter_one())&&g("Utility").$update_nodes(i,o.$omml_value(e)),g("Utility").$update_nodes(t,[l,$,i]),[t]):o.$r_element(o.$class_name(),new Map([["rpr_tag",!1]]))})),a(f,"$to_asciimath_math_zone",(function(e,t,r){var n,a,s,i,l=this;return(n=o(arguments,1)).length>1&&(a=n.shift()),null==a&&(a=!1),null==n.shift()&&p,s=l.$gsub_spacing(e,a),i=[e+'"'+l.$to_asciimath()+'" function apply\n',s+'|_ "'+l.$class_name()+'" function name\n'],l.$ascii_fields_to_print(l.$parameter_one(),new Map([["spacing",s],["field_name","argument"],["additional_space"," |_ "],["array",i]])),i}),-3),a(f,"$to_latex_math_zone",(function(e,t,r){var n,a,s,i,l=this;return(n=o(arguments,1)).length>1&&(a=n.shift()),null==a&&(a=!1),null==n.shift()&&p,s=l.$gsub_spacing(e,a),i=[e+'"'+l.$to_latex()+'" function apply\n',s+'|_ "'+l.$class_name()+'" function name\n'],l.$latex_fields_to_print(l.$parameter_one(),new Map([["spacing",s],["field_name","argument"],["additional_space"," |_ "],["array",i]])),i}),-3),a(f,"$to_mathml_math_zone",(function(e,t,r){var n,a,s,i,l=this;return(n=o(arguments,1)).length>1&&(a=n.shift()),null==a&&(a=!1),null==n.shift()&&p,s=l.$gsub_spacing(e,a),i=[e+'"'+l.$dump_mathml(l)+'" function apply\n',s+'|_ "'+l.$class_name()+'" function name\n'],l.$mathml_fields_to_print(l.$parameter_one(),new Map([["spacing",s],["field_name","argument"],["additional_space"," |_ "],["array",i]])),i}),-3),a(f,"$to_omml_math_zone",(function(e,t,r,n){var a,s,i,c,_,m,d=this;return a=o(arguments,1),s=l(a),s=$(s),a.length>1&&(i=a.shift()),null==i&&(i=!1),null==a.shift()&&p,c=u(s,"display_style"),_=d.$gsub_spacing(e,i),m=[e+'"'+d.$dump_omml(d,c)+'" function apply\n',_+'|_ "'+d.$class_name()+'" function name\n'],d.$omml_fields_to_print(d.$parameter_one(),new Map([["spacing",_],["field_name","argument"],["additional_space"," |_ "],["array",m],["display_style",c]])),m}),-4),f.$protected(),a(f,"$asciimath_value",(function(){var e=this;return n(e.$parameter_one())?c(g("Array"),e.$parameter_one())?i(e.$parameter_one().$compact(),"map",[],"to_asciimath".$to_proc()).$join():e.$parameter_one().$to_asciimath():""})),a(f,"$mathml_value",(function(){var e,t=this;return c(g("Array"),t.$parameter_one())?i(t.$parameter_one().$compact(),"map",[],"to_mathml_without_math_tag".$to_proc()):t.$Array((e=t.$parameter_one())===p||null==e?p:e.$to_mathml_without_math_tag())})),a(f,"$latex_value",(function(){var e,t,r,a,s=this;return n(s.$parameter_one()["$is_a?"](g("Array")))?(e=(t=(r=s.$parameter_one())===p||null==r?p:r.$compact())===p||null==t?p:i(t,"map",[],"to_latex".$to_proc()))===p||null==e?p:e.$join(" "):(a=s.$parameter_one())===p||null==a?p:a.$to_latex()})),a(f,"$omml_value",(function(e){var t,r,a,s=this;return n(s.$parameter_one()["$is_a?"](g("Array")))?(t=(r=s.$parameter_one())===p||null==r?p:r.$compact())===p||null==t?p:i(t,"map",[],(function(t){return null==t&&(t=p),t.$insert_t_tag(e)})):s.$Array((a=s.$parameter_one())===p||null==a?p:a.$insert_t_tag(e))})),a(f,"$latex_paren",(function(){var e;return n(e=m(m(g("Latex"),"Constants"),"LEFT_RIGHT_PARENTHESIS").$invert()["$[]"](this.$parameter_one()))?e:"."}))}(f[0],h("Core"),f)}(f[0],f)}(f[0],f)}(_[0],_)},Opal.modules["plurimath/math/function/underover"]=function(e){var t=e.module,r=e.klass,n=e.const_set,a=e.truthy,s=e.def,i=e.not,o=e.top,l=[],$=e.nil;return e.add_stubs("freeze,parameter_one,first_field_wrap,parameter_two,wrapped,parameter_three,to_mathml_without_math_tag,ox_element,class_name,update_nodes,!,new,to_omml_without_math_tag,underover"),o.$require("plurimath//math/function/underover.rb/../ternary_function"),function(o,l){var u=[t(o,"Plurimath")].concat(l);return function(o,l){var u=[t(o,"Math")].concat(l);return function(o,l){var u=[t(o,"Function")].concat(l),c=e.$r(u);return function(t,o,l){var u=r(t,o,"Underover"),c=[u].concat(l),_=e.$r(c);return n(c[0],"FUNCTION",new Map([["name","UnderOver"],["first_value","base"],["second_value","Under"],["third_value","Over"]]).$freeze()),s(u,"$to_asciimath",(function(){var e=this,t=$,r=$,n=$;return a(e.$parameter_one())&&(t=e.$first_field_wrap(e.$parameter_one())),a(e.$parameter_two())&&(r="_"+e.$wrapped(e.$parameter_two())),a(e.$parameter_three())&&(n="^"+e.$wrapped(e.$parameter_three())),""+t+r+n})),s(u,"$to_latex",(function(){var e=this,t=$,r=$,n=$;return a(e.$parameter_one())&&(t=e.$first_field_wrap(e.$parameter_one(),new Map([["type","latex"]]))),a(e.$parameter_two())&&(r="_"+e.$wrapped(e.$parameter_two(),new Map([["type","latex"]]))),a(e.$parameter_three())&&(n="^"+e.$wrapped(e.$parameter_three(),new Map([["type","latex"]]))),""+t+r+n})),s(u,"$to_mathml_without_math_tag",(function(){var e,t,r,n,a=this,s=$,i=$,o=$;return s=(e=a.$parameter_one())===$||null==e?$:e.$to_mathml_without_math_tag(),i=(t=a.$parameter_two())===$||null==t?$:t.$to_mathml_without_math_tag(),o=(r=a.$parameter_three())===$||null==r?$:r.$to_mathml_without_math_tag(),n=_("Utility").$ox_element("m"+a.$class_name()),_("Utility").$update_nodes(n,[s,i,o])})),s(u,"$to_omml_without_math_tag",(function(e){var t=this;return i(e)?_("PowerBase").$new(t.$parameter_one(),t.$parameter_two(),t.$parameter_three()).$to_omml_without_math_tag(e):t.$underover(e)}))}(u[0],c("TernaryFunction"),u)}(u[0],u)}(u[0],u)}(l[0],l)},Opal.modules["plurimath/math/function/underset"]=function(e){var t=e.module,r=e.klass,n=e.const_set,a=e.def,s=e.not,i=e.top,o=[],l=e.nil;return e.add_stubs("freeze,to_mathml_without_math_tag,parameter_one,parameter_two,update_nodes,ox_element,!,new,to_omml_without_math_tag,<<,pr_element,omml_parameter"),i.$require("plurimath//math/function/underset.rb/../binary_function"),function(i,o){var $=[t(i,"Plurimath")].concat(o);return function(i,o){var $=[t(i,"Math")].concat(o);return function(i,o){var $=[t(i,"Function")].concat(o),u=e.$r($);return function(t,i,o){var $=r(t,i,"Underset"),u=[$].concat(o),c=e.$r(u);return n(u[0],"FUNCTION",new Map([["name","underscript"],["first_value","underscript value"],["second_value","base expression"]]).$freeze()),a($,"$to_mathml_without_math_tag",(function(){var e,t,r=l,n=l;return r=(e=this.$parameter_one())===l||null==e?l:e.$to_mathml_without_math_tag(),n=(t=this.$parameter_two())===l||null==t?l:t.$to_mathml_without_math_tag(),c("Utility").$update_nodes(c("Utility").$ox_element("munder"),[n,r])})),a($,"$to_omml_without_math_tag",(function(e){var t,r=this,n=l;return s(e)?c("Base").$new(r.$parameter_one(),r.$parameter_two()).$to_omml_without_math_tag(e):(t=c("Utility").$ox_element("limLow",new Map([["namespace","m"]])),(n=c("Utility").$ox_element("limLowPr",new Map([["namespace","m"]])))["$<<"](c("Utility").$pr_element("ctrl",!0,new Map([["namespace","m"]]))),c("Utility").$update_nodes(t,[n,r.$omml_parameter(r.$parameter_one(),e,new Map([["tag_name","e"]])),r.$omml_parameter(r.$parameter_two(),e,new Map([["tag_name","lim"]]))]),[t])}))}($[0],u("BinaryFunction"),$)}($[0],$)}($[0],$)}(o[0],o)},Opal.modules["plurimath/math/function/vec"]=function(e){var t=e.module,r=e.klass,n=e.send2,a=e.find_super,s=e.def,i=e.truthy,o=e.slice,l=e.extract_kwargs,$=e.ensure_kwargs,u=e.get_kwarg,c=e.top,_=[],p=e.nil;return e.add_stubs("attr_accessor,ox_element,to_mathml_without_math_tag,parameter_one,[],attributes,merge!,update_nodes,<<,r_element,acc_tag,new,to_omml_without_math_tag,gsub_spacing,to_asciimath,class_name,ascii_fields_to_print,to_latex,latex_fields_to_print,dump_mathml,mathml_fields_to_print,dump_omml,omml_fields_to_print,protected,omml_parameter"),c.$require("plurimath//math/function/vec.rb/../unary_function"),function(c,_){var m=[t(c,"Plurimath")].concat(_);return function(c,_){var m=[t(c,"Math")].concat(_);return function(c,_){var m=[t(c,"Function")].concat(_),d=e.$r(m);return function(t,c,_){var m=r(t,c,"Vec"),d=[m].concat(_),f=e.$r(d);return m.$attr_accessor("attributes"),s(m,"$initialize",(function e(t,r){var s=this;return e.$$p=null,null==t&&(t=p),null==r&&(r=new Map),n(s,a(s,"initialize",e,!1,!0),"initialize",[t],null),s.attributes=r}),-1),s(m,"$to_mathml_without_math_tag",(function(){var e,t=this,r=p,n=p;return r=f("Utility").$ox_element("mover"),n=(e=t.$parameter_one())===p||null==e?p:e.$to_mathml_without_math_tag(),i(t.$attributes())&&i(t.$attributes()["$[]"]("accent"))&&r.$attributes()["$merge!"](new Map([["accent",t.$attributes()["$[]"]("accent")]])),f("Utility").$update_nodes(r,[n,f("Utility").$ox_element("mo")["$<<"]("&#x2192;")])})),s(m,"$to_omml_without_math_tag",(function(e){var t=this,r=p;return i(t.$parameter_one())?i(t.$attributes())&&i(t.$attributes()["$[]"]("accent"))?t.$acc_tag(e):(r=f("Symbol").$new("→"),f("Overset").$new(t.$parameter_one(),r).$to_omml_without_math_tag(!0)):t.$r_element("&#x2192;",new Map([["rpr_tag",!1]]))})),s(m,"$to_asciimath_math_zone",(function(e,t,r){var n,a,s,i,l=this;return(n=o(arguments,1)).length>1&&(a=n.shift()),null==a&&(a=!1),null==n.shift()&&p,s=l.$gsub_spacing(e,a),i=[e+'"'+l.$to_asciimath()+'" function apply\n',s+'|_ "'+l.$class_name()+'" function name\n'],l.$ascii_fields_to_print(l.$parameter_one(),new Map([["spacing",s],["field_name","supscript"],["additional_space","| |_ "],["array",i]])),i}),-3),s(m,"$to_latex_math_zone",(function(e,t,r){var n,a,s,i,l=this;return(n=o(arguments,1)).length>1&&(a=n.shift()),null==a&&(a=!1),null==n.shift()&&p,s=l.$gsub_spacing(e,a),i=[e+'"'+l.$to_latex()+'" function apply\n',s+'|_ "'+l.$class_name()+'" function name\n'],l.$latex_fields_to_print(l.$parameter_one(),new Map([["spacing",s],["field_name","supscript"],["additional_space","| |_ "],["array",i]])),i}),-3),s(m,"$to_mathml_math_zone",(function(e,t,r){var n,a,s,i,l=this;return(n=o(arguments,1)).length>1&&(a=n.shift()),null==a&&(a=!1),null==n.shift()&&p,s=l.$gsub_spacing(e,a),i=[e+'"'+l.$dump_mathml(l)+'" overset\n',s+'|_ "<mo>&#x2192;</mo>" base\n'],l.$mathml_fields_to_print(l.$parameter_one(),new Map([["spacing",s],["field_name","supscript"],["additional_space","| |_ "],["array",i]])),i}),-3),s(m,"$to_omml_math_zone",(function(e,t,r,n){var a,s,i,c,_,m,d=this;return a=o(arguments,1),s=l(a),s=$(s),a.length>1&&(i=a.shift()),null==i&&(i=!1),null==a.shift()&&p,c=u(s,"display_style"),_=d.$gsub_spacing(e,i),m=[e+'"'+d.$dump_omml(d,c)+'" overset\n',_+'|_ "<m:t>&#x2192;</m:t>" base\n'],d.$omml_fields_to_print(d.$parameter_one(),new Map([["spacing",_],["field_name","supscript"],["additional_space","| |_ "],["array",m],["display_style",c]])),m}),-4),m.$protected(),s(m,"$acc_tag",(function(e){var t,r=p;return t=f("Utility").$ox_element("acc",new Map([["namespace","m"]])),(r=f("Utility").$ox_element("accPr",new Map([["namespace","m"]])))["$<<"](f("Utility").$ox_element("chr",new Map([["namespace","m"],["attributes",new Map([["m:val","→"]])]]))),f("Utility").$update_nodes(t,[r,this.$omml_parameter(this.$parameter_one(),e,new Map([["tag_name","e"]]))]),[t]}))}(m[0],d("UnaryFunction"),m)}(m[0],m)}(m[0],m)}(_[0],_)},Opal.modules["plurimath/math/function/font_style"]=function(e){var t=e.module,r=e.klass,n=e.def,a=e.return_val,s=e.truthy,i=e.ensure_kwargs,o=e.hash_get,l=e.slice,$=e.extract_kwargs,u=e.get_kwarg,c=e.send,_=e.top,p=[],m=e.nil,d=e.$$$;return e.add_stubs("to_asciimath,parameter_one,to_mathml_without_math_tag,update_nodes,ox_element,parameter_two,font_styles,to_html,to_latex,is_a?,class_name,<<,Array,font_style_t_tag,gsub_spacing,ascii_fields_to_print,latex_fields_to_print,dump_mathml,omml_and_mathml_font_family,mathml_fields_to_print,dump_omml,omml_fields_to_print,map,keys,select,==,class,to_proc,find,values,include?"),_.$require("plurimath/math/function/font_style.rb/../binary_function"),function(_,p){var f=[t(_,"Plurimath")].concat(p);return function(_,p){var f=[t(_,"Math")].concat(p);return function(_,p){var f=[t(_,"Function")].concat(p),h=e.$r(f);return function(t,_,p){var f=r(t,_,"FontStyle"),h=[f].concat(p),g=e.$r(h);return n(f,"$to_asciimath",(function(){var e;return(e=this.$parameter_one())===m||null==e?m:e.$to_asciimath()})),n(f,"$to_mathml_without_math_tag",(function(){var e,t=m;return t=(e=this.$parameter_one())===m||null==e?m:e.$to_mathml_without_math_tag(),g("Utility").$update_nodes(g("Utility").$ox_element("mstyle",new Map([["attributes",new Map([["mathvariant",this.$parameter_two()]])]])),[t])})),n(f,"$to_omml_without_math_tag",(function(e){return this.$font_styles(e)})),n(f,"$to_html",(function(){var e;return(e=this.$parameter_one())===m||null==e?m:e.$to_html()})),n(f,"$to_latex",(function(){var e;return(e=this.$parameter_one())===m||null==e?m:e.$to_latex()})),n(f,"$validate_function_formula",a(!0)),n(f,"$extract_class_from_text",(function(){var e=this;return s(e.$parameter_one()["$is_a?"](g("Text")))&&e.$parameter_one().$parameter_one(),e.$parameter_one().$class_name()})),n(f,"$extractable?",(function(){return this.$parameter_one()["$is_a?"](g("Text"))})),n(f,"$font_styles",(function(e,t){var r,n,a,l=m,$=m;return t=i(t),null==(r=o(t,"sty"))&&(r="p"),null==(n=o(t,"scr"))&&(n=m),l=g("Utility").$ox_element("r",new Map([["namespace","m"]])),a=g("Utility").$ox_element("rPr",new Map([["namespace","m"]])),$=[],s(n)&&$["$<<"](g("Utility").$ox_element("scr",new Map([["namespace","m"],["attributes",new Map([["m:val",n]])]]))),s(r)&&$["$<<"](g("Utility").$ox_element("sty",new Map([["namespace","m"],["attributes",new Map([["m:val",r]])]]))),l["$<<"](g("Utility").$update_nodes(a,$)),g("Utility").$update_nodes(l,this.$Array(this.$parameter_one().$font_style_t_tag(e))),[l]}),-2),n(f,"$to_asciimath_math_zone",(function(e,t,r){var n,a,s,i,o=this;return(n=l(arguments,1)).length>1&&(a=n.shift()),null==a&&(a=!1),null==n.shift()&&m,s=o.$gsub_spacing(e,a),i=[e+'"'+o.$to_asciimath()+'" function apply\n',s+'|_ "'+o.$parameter_two()+'" font family\n'],o.$ascii_fields_to_print(o.$parameter_one(),new Map([["spacing",s],["field_name","argument"],["additional_space","| |_ "],["array",i]])),i}),-3),n(f,"$to_latex_math_zone",(function(e,t,r){var n,a,s,i,o=this;return(n=l(arguments,1)).length>1&&(a=n.shift()),null==a&&(a=!1),null==n.shift()&&m,s=o.$gsub_spacing(e,a),i=[e+'"'+o.$to_latex()+'" function apply\n',s+'|_ "'+o.$parameter_two()+'" font family\n'],o.$latex_fields_to_print(o.$parameter_one(),new Map([["spacing",s],["field_name","argument"],["additional_space","| |_ "],["array",i]])),i}),-3),n(f,"$to_mathml_math_zone",(function(e,t,r){var n,a,s,i,o=this;return(n=l(arguments,1)).length>1&&(a=n.shift()),null==a&&(a=!1),null==n.shift()&&m,s=o.$gsub_spacing(e,a),i=[e+'"'+o.$dump_mathml(o)+'" function apply\n',s+'|_ "'+o.$omml_and_mathml_font_family()+'" font family\n'],o.$mathml_fields_to_print(o.$parameter_one(),new Map([["spacing",s],["field_name","argument"],["additional_space","| |_ "],["array",i]])),i}),-3),n(f,"$to_omml_math_zone",(function(e,t,r,n){var a,s,o,c,_,p,d=this;return a=l(arguments,1),s=$(a),s=i(s),a.length>1&&(o=a.shift()),null==o&&(o=!1),null==a.shift()&&m,c=u(s,"display_style"),_=d.$gsub_spacing(e,o),p=[e+'"'+d.$dump_omml(d,c)+'" function apply\n',_+'|_ "'+d.$omml_and_mathml_font_family()+'" font family\n'],d.$omml_fields_to_print(d.$parameter_one(),new Map([["spacing",_],["field_name","argument"],["additional_space","| |_ "],["array",p],["display_style",c]])),p}),-4),n(f,"$omml_and_mathml_font_family",(function(){var e=m;return e=c(c(d(g("Utility"),"FONT_STYLES"),"select",[],(function e(t,r){var n=null==e.$$s?this:e.$$s;return null==t&&(t=m),null==r&&(r=m),r["$=="](n.$class())}),{$$s:this}).$keys(),"map",[],"to_s".$to_proc()),c(d(d(g("Omml"),"Parser"),"SUPPORTED_FONTS").$values(),"find",[],(function(t){return null==t&&(t=m),e["$include?"](t)}))}))}(f[0],h("BinaryFunction"),f)}(f[0],f)}(f[0],f)}(p[0],p)},Opal.modules["plurimath/math/function/font_style/bold-fraktur"]=function(e){var t=e.module,r=e.klass,n=e.def,a=e.top,s=[];e.nil;return e.add_stubs("font_styles"),a.$require("plurimath//math/function/font_style/bold-fraktur.rb/../../font_style"),function(a,s){var i=[t(a,"Plurimath")].concat(s);return function(a,s){var i=[t(a,"Math")].concat(s);return function(a,s){var i=[t(a,"Function")].concat(s);return function(t,a,s){var i=[r(t,null,"FontStyle")].concat(s),o=e.$r(i);return function(e,t){var a=r(e,t,"BoldFraktur");return n(a,"$to_omml_without_math_tag",(function(e){return this.$font_styles(e,new Map([["sty","b"],["scr","fraktur"]]))}))}(i[0],o("FontStyle"))}(i[0],0,i)}(i[0],i)}(i[0],i)}(s[0],s)},Opal.modules["plurimath/math/function/font_style/bold-italic"]=function(e){var t=e.module,r=e.klass,n=e.def,a=e.top,s=[];e.nil;return e.add_stubs("font_styles"),a.$require("plurimath//math/function/font_style/bold-italic.rb/../../font_style"),function(a,s){var i=[t(a,"Plurimath")].concat(s);return function(a,s){var i=[t(a,"Math")].concat(s);return function(a,s){var i=[t(a,"Function")].concat(s);return function(t,a,s){var i=[r(t,null,"FontStyle")].concat(s),o=e.$r(i);return function(e,t){var a=r(e,t,"BoldItalic");return n(a,"$to_omml_without_math_tag",(function(e){return this.$font_styles(e,new Map([["sty","bi"]]))}))}(i[0],o("FontStyle"))}(i[0],0,i)}(i[0],i)}(i[0],i)}(s[0],s)},Opal.modules["plurimath/math/function/font_style/bold-sans-serif"]=function(e){var t=e.module,r=e.klass,n=e.def,a=e.top,s=[];e.nil;return e.add_stubs("font_styles"),a.$require("plurimath//math/function/font_style/bold-sans-serif.rb/../../font_style"),function(a,s){var i=[t(a,"Plurimath")].concat(s);return function(a,s){var i=[t(a,"Math")].concat(s);return function(a,s){var i=[t(a,"Function")].concat(s);return function(t,a,s){var i=[r(t,null,"FontStyle")].concat(s),o=e.$r(i);return function(e,t){var a=r(e,t,"BoldSansSerif");return n(a,"$to_omml_without_math_tag",(function(e){return this.$font_styles(e,new Map([["sty","b"],["scr","sans-serif"]]))}))}(i[0],o("FontStyle"))}(i[0],0,i)}(i[0],i)}(i[0],i)}(s[0],s)},Opal.modules["plurimath/math/function/font_style/bold-script"]=function(e){var t=e.module,r=e.klass,n=e.def,a=e.top,s=[];e.nil;return e.add_stubs("font_styles"),a.$require("plurimath//math/function/font_style/bold-script.rb/../../font_style"),function(a,s){var i=[t(a,"Plurimath")].concat(s);return function(a,s){var i=[t(a,"Math")].concat(s);return function(a,s){var i=[t(a,"Function")].concat(s);return function(t,a,s){var i=[r(t,null,"FontStyle")].concat(s),o=e.$r(i);return function(e,t){var a=r(e,t,"BoldScript");return n(a,"$to_omml_without_math_tag",(function(e){return this.$font_styles(e,new Map([["sty","b"],["scr","script"]]))}))}(i[0],o("FontStyle"))}(i[0],0,i)}(i[0],i)}(i[0],i)}(s[0],s)},Opal.modules["plurimath/math/function/font_style/bold"]=function(e){var t=e.module,r=e.klass,n=e.send2,a=e.find_super,s=e.def,i=e.top,o=[],l=e.nil;return e.add_stubs("to_asciimath,parameter_one,to_latex,update_nodes,ox_element,to_mathml_without_math_tag,font_styles"),i.$require("plurimath//math/function/font_style/bold.rb/../../font_style"),function(i,o){var $=[t(i,"Plurimath")].concat(o);return function(i,o){var $=[t(i,"Math")].concat(o);return function(i,o){var $=[t(i,"Function")].concat(o);return function(t,i,o){var $=[r(t,null,"FontStyle")].concat(o),u=e.$r($);return function(t,i,o){var $=r(t,i,"Bold"),u=[$].concat(o),c=e.$r(u);return s($,"$initialize",(function e(t,r){var s=e.$$p||l;return e.$$p=null,null==r&&(r="bold"),n(this,a(this,"initialize",e,!1,!0),"initialize",[t,r],s)}),-2),s($,"$to_asciimath",(function(){var e;return"mathbf("+(((e=this.$parameter_one())===l||null==e?l:e.$to_asciimath())+")")})),s($,"$to_latex",(function(){var e;return"\\mathbf{"+(((e=this.$parameter_one())===l||null==e?l:e.$to_latex())+"}")})),s($,"$to_mathml_without_math_tag",(function(){var e;return c("Utility").$update_nodes(c("Utility").$ox_element("mstyle",new Map([["attributes",new Map([["mathvariant","bold"]])]])),[(e=this.$parameter_one(),e===l||null==e?l:e.$to_mathml_without_math_tag())])})),s($,"$to_omml_without_math_tag",(function(e){return this.$font_styles(e,new Map([["sty","b"]]))}))}($[0],u("FontStyle"),$)}($[0],0,$)}($[0],$)}($[0],$)}(o[0],o)},Opal.modules["plurimath/math/function/font_style/double_struck"]=function(e){var t=e.module,r=e.klass,n=e.send2,a=e.find_super,s=e.def,i=e.top,o=[],l=e.nil;return e.add_stubs("to_asciimath,parameter_one,to_latex,update_nodes,ox_element,to_mathml_without_math_tag,font_styles"),i.$require("plurimath//math/function/font_style/double_struck.rb/../../font_style"),function(i,o){var $=[t(i,"Plurimath")].concat(o);return function(i,o){var $=[t(i,"Math")].concat(o);return function(i,o){var $=[t(i,"Function")].concat(o);return function(t,i,o){var $=[r(t,null,"FontStyle")].concat(o),u=e.$r($);return function(t,i,o){var $=r(t,i,"DoubleStruck"),u=[$].concat(o),c=e.$r(u);return s($,"$initialize",(function e(t,r){var s=e.$$p||l;return e.$$p=null,null==r&&(r="double-struck"),n(this,a(this,"initialize",e,!1,!0),"initialize",[t,r],s)}),-2),s($,"$to_asciimath",(function(){var e;return"mathbb("+(((e=this.$parameter_one())===l||null==e?l:e.$to_asciimath())+")")})),s($,"$to_latex",(function(){var e;return"\\mathbb{"+(((e=this.$parameter_one())===l||null==e?l:e.$to_latex())+"}")})),s($,"$to_mathml_without_math_tag",(function(){var e;return c("Utility").$update_nodes(c("Utility").$ox_element("mstyle",new Map([["attributes",new Map([["mathvariant","double-struck"]])]])),[(e=this.$parameter_one(),e===l||null==e?l:e.$to_mathml_without_math_tag())])})),s($,"$to_omml_without_math_tag",(function(e){return this.$font_styles(e,new Map([["sty",l],["scr","double-struck"]]))}))}($[0],u("FontStyle"),$)}($[0],0,$)}($[0],$)}($[0],$)}(o[0],o)},Opal.modules["plurimath/math/function/font_style/fraktur"]=function(e){var t=e.module,r=e.klass,n=e.send2,a=e.find_super,s=e.def,i=e.top,o=[],l=e.nil;return e.add_stubs("to_asciimath,parameter_one,to_latex,update_nodes,ox_element,to_mathml_without_math_tag,font_styles"),i.$require("plurimath//math/function/font_style/fraktur.rb/../../font_style"),function(i,o){var $=[t(i,"Plurimath")].concat(o);return function(i,o){var $=[t(i,"Math")].concat(o);return function(i,o){var $=[t(i,"Function")].concat(o);return function(t,i,o){var $=[r(t,null,"FontStyle")].concat(o),u=e.$r($);return function(t,i,o){var $=r(t,i,"Fraktur"),u=[$].concat(o),c=e.$r(u);return s($,"$initialize",(function e(t,r){var s=e.$$p||l;return e.$$p=null,null==r&&(r="fraktur"),n(this,a(this,"initialize",e,!1,!0),"initialize",[t,r],s)}),-2),s($,"$to_asciimath",(function(){var e;return"mathfrak("+(((e=this.$parameter_one())===l||null==e?l:e.$to_asciimath())+")")})),s($,"$to_latex",(function(){var e;return"\\mathfrak{"+(((e=this.$parameter_one())===l||null==e?l:e.$to_latex())+"}")})),s($,"$to_mathml_without_math_tag",(function(){var e;return c("Utility").$update_nodes(c("Utility").$ox_element("mstyle",new Map([["attributes",new Map([["mathvariant","fraktur"]])]])),[(e=this.$parameter_one(),e===l||null==e?l:e.$to_mathml_without_math_tag())])})),s($,"$to_omml_without_math_tag",(function(e){return this.$font_styles(e,new Map([["scr","fraktur"]]))}))}($[0],u("FontStyle"),$)}($[0],0,$)}($[0],$)}($[0],$)}(o[0],o)},Opal.modules["plurimath/math/function/font_style/italic"]=function(e){var t=e.module,r=e.klass,n=e.send2,a=e.find_super,s=e.def,i=e.top,o=[],l=e.nil;return e.add_stubs("to_asciimath,parameter_one,to_latex,update_nodes,ox_element,to_mathml_without_math_tag,font_styles"),i.$require("plurimath//math/function/font_style/italic.rb/../../font_style"),function(i,o){var $=[t(i,"Plurimath")].concat(o);return function(i,o){var $=[t(i,"Math")].concat(o);return function(i,o){var $=[t(i,"Function")].concat(o);return function(t,i,o){var $=[r(t,null,"FontStyle")].concat(o),u=e.$r($);return function(t,i,o){var $=r(t,i,"Italic"),u=[$].concat(o),c=e.$r(u);return s($,"$initialize",(function e(t,r){var s=e.$$p||l;return e.$$p=null,null==r&&(r="italic"),n(this,a(this,"initialize",e,!1,!0),"initialize",[t,r],s)}),-2),s($,"$to_asciimath",(function(){var e;return"ii("+(((e=this.$parameter_one())===l||null==e?l:e.$to_asciimath())+")")})),s($,"$to_latex",(function(){var e;return"\\mathit{"+(((e=this.$parameter_one())===l||null==e?l:e.$to_latex())+"}")})),s($,"$to_mathml_without_math_tag",(function(){var e;return c("Utility").$update_nodes(c("Utility").$ox_element("mstyle",new Map([["attributes",new Map([["mathvariant","italic"]])]])),[(e=this.$parameter_one(),e===l||null==e?l:e.$to_mathml_without_math_tag())])})),s($,"$to_omml_without_math_tag",(function(e){return this.$font_styles(e,new Map([["sty","i"]]))}))}($[0],u("FontStyle"),$)}($[0],0,$)}($[0],$)}($[0],$)}(o[0],o)},Opal.modules["plurimath/math/function/font_style/monospace"]=function(e){var t=e.module,r=e.klass,n=e.send2,a=e.find_super,s=e.def,i=e.top,o=[],l=e.nil;return e.add_stubs("to_asciimath,parameter_one,to_latex,update_nodes,ox_element,to_mathml_without_math_tag,font_styles"),i.$require("plurimath//math/function/font_style/monospace.rb/../../font_style"),function(i,o){var $=[t(i,"Plurimath")].concat(o);return function(i,o){var $=[t(i,"Math")].concat(o);return function(i,o){var $=[t(i,"Function")].concat(o);return function(t,i,o){var $=[r(t,null,"FontStyle")].concat(o),u=e.$r($);return function(t,i,o){var $=r(t,i,"Monospace"),u=[$].concat(o),c=e.$r(u);return s($,"$initialize",(function e(t,r){var s=e.$$p||l;return e.$$p=null,null==r&&(r="monospace"),n(this,a(this,"initialize",e,!1,!0),"initialize",[t,r],s)}),-2),s($,"$to_asciimath",(function(){var e;return"mathtt("+(((e=this.$parameter_one())===l||null==e?l:e.$to_asciimath())+")")})),s($,"$to_latex",(function(){var e;return"\\mathtt{"+(((e=this.$parameter_one())===l||null==e?l:e.$to_latex())+"}")})),s($,"$to_mathml_without_math_tag",(function(){var e;return c("Utility").$update_nodes(c("Utility").$ox_element("mstyle",new Map([["attributes",new Map([["mathvariant","monospace"]])]])),[(e=this.$parameter_one(),e===l||null==e?l:e.$to_mathml_without_math_tag())])})),s($,"$to_omml_without_math_tag",(function(e){return this.$font_styles(e,new Map([["sty",l],["scr","monospace"]]))}))}($[0],u("FontStyle"),$)}($[0],0,$)}($[0],$)}($[0],$)}(o[0],o)},Opal.modules["plurimath/math/function/font_style/normal"]=function(e){var t=e.module,r=e.klass,n=e.send2,a=e.find_super,s=e.def,i=e.top,o=[],l=e.nil;return e.add_stubs("to_asciimath,parameter_one,to_latex,update_nodes,ox_element,to_mathml_without_math_tag,font_styles"),i.$require("plurimath//math/function/font_style/normal.rb/../../font_style"),function(i,o){var $=[t(i,"Plurimath")].concat(o);return function(i,o){var $=[t(i,"Math")].concat(o);return function(i,o){var $=[t(i,"Function")].concat(o);return function(t,i,o){var $=[r(t,null,"FontStyle")].concat(o),u=e.$r($);return function(t,i,o){var $=r(t,i,"Normal"),u=[$].concat(o),c=e.$r(u);return s($,"$initialize",(function e(t,r){var s=e.$$p||l;return e.$$p=null,null==r&&(r="rm"),n(this,a(this,"initialize",e,!1,!0),"initialize",[t,r],s)}),-2),s($,"$to_asciimath",(function(){var e;return"rm("+(((e=this.$parameter_one())===l||null==e?l:e.$to_asciimath())+")")})),s($,"$to_latex",(function(){var e;return"\\mathrm{"+(((e=this.$parameter_one())===l||null==e?l:e.$to_latex())+"}")})),s($,"$to_mathml_without_math_tag",(function(){var e;return c("Utility").$update_nodes(c("Utility").$ox_element("mstyle",new Map([["attributes",new Map([["mathvariant","normal"]])]])),[(e=this.$parameter_one(),e===l||null==e?l:e.$to_mathml_without_math_tag())])})),s($,"$to_omml_without_math_tag",(function(e){return this.$font_styles(e,new Map([["sty","p"]]))}))}($[0],u("FontStyle"),$)}($[0],0,$)}($[0],$)}($[0],$)}(o[0],o)},Opal.modules["plurimath/math/function/font_style/sans-serif-bold-italic"]=function(e){var t=e.module,r=e.klass,n=e.def,a=e.top,s=[];e.nil;return e.add_stubs("font_styles"),a.$require("plurimath//math/function/font_style/sans-serif-bold-italic.rb/../../font_style"),function(a,s){var i=[t(a,"Plurimath")].concat(s);return function(a,s){var i=[t(a,"Math")].concat(s);return function(a,s){var i=[t(a,"Function")].concat(s);return function(t,a,s){var i=[r(t,null,"FontStyle")].concat(s),o=e.$r(i);return function(e,t){var a=r(e,t,"SansSerifBoldItalic");return n(a,"$to_omml_without_math_tag",(function(e){return this.$font_styles(e,new Map([["sty","bi"],["scr","sans-serif"]]))}))}(i[0],o("FontStyle"))}(i[0],0,i)}(i[0],i)}(i[0],i)}(s[0],s)},Opal.modules["plurimath/math/function/font_style/sans-serif-italic"]=function(e){var t=e.module,r=e.klass,n=e.def,a=e.top,s=[];e.nil;return e.add_stubs("font_styles"),a.$require("plurimath//math/function/font_style/sans-serif-italic.rb/../../font_style"),function(a,s){var i=[t(a,"Plurimath")].concat(s);return function(a,s){var i=[t(a,"Math")].concat(s);return function(a,s){var i=[t(a,"Function")].concat(s);return function(t,a,s){var i=[r(t,null,"FontStyle")].concat(s),o=e.$r(i);return function(e,t){var a=r(e,t,"SansSerifItalic");return n(a,"$to_omml_without_math_tag",(function(e){return this.$font_styles(e,new Map([["sty","i"],["scr","sans-serif"]]))}))}(i[0],o("FontStyle"))}(i[0],0,i)}(i[0],i)}(i[0],i)}(s[0],s)},Opal.modules["plurimath/math/function/font_style/sans-serif"]=function(e){var t=e.module,r=e.klass,n=e.send2,a=e.find_super,s=e.def,i=e.top,o=[],l=e.nil;return e.add_stubs("to_asciimath,parameter_one,to_latex,update_nodes,ox_element,to_mathml_without_math_tag,font_styles"),i.$require("plurimath//math/function/font_style/sans-serif.rb/../../font_style"),function(i,o){var $=[t(i,"Plurimath")].concat(o);return function(i,o){var $=[t(i,"Math")].concat(o);return function(i,o){var $=[t(i,"Function")].concat(o);return function(t,i,o){var $=[r(t,null,"FontStyle")].concat(o),u=e.$r($);return function(t,i,o){var $=r(t,i,"SansSerif"),u=[$].concat(o),c=e.$r(u);return s($,"$initialize",(function e(t,r){var s=e.$$p||l;return e.$$p=null,null==r&&(r="sans-serif"),n(this,a(this,"initialize",e,!1,!0),"initialize",[t,r],s)}),-2),s($,"$to_asciimath",(function(){var e;return"mathsf("+(((e=this.$parameter_one())===l||null==e?l:e.$to_asciimath())+")")})),s($,"$to_latex",(function(){var e;return"\\mathsf{"+(((e=this.$parameter_one())===l||null==e?l:e.$to_latex())+"}")})),s($,"$to_mathml_without_math_tag",(function(){var e;return c("Utility").$update_nodes(c("Utility").$ox_element("mstyle",new Map([["attributes",new Map([["mathvariant","sans-serif"]])]])),[(e=this.$parameter_one(),e===l||null==e?l:e.$to_mathml_without_math_tag())])})),s($,"$to_omml_without_math_tag",(function(e){return this.$font_styles(e,new Map([["sty","p"],["scr","sans-serif"]]))}))}($[0],u("FontStyle"),$)}($[0],0,$)}($[0],$)}($[0],$)}(o[0],o)},Opal.modules["plurimath/math/function/font_style/script"]=function(e){var t=e.module,r=e.klass,n=e.send2,a=e.find_super,s=e.def,i=e.top,o=[],l=e.nil;return e.add_stubs("to_asciimath,parameter_one,to_latex,update_nodes,ox_element,to_mathml_without_math_tag,font_styles"),i.$require("plurimath//math/function/font_style/script.rb/../../font_style"),function(i,o){var $=[t(i,"Plurimath")].concat(o);return function(i,o){var $=[t(i,"Math")].concat(o);return function(i,o){var $=[t(i,"Function")].concat(o);return function(t,i,o){var $=[r(t,null,"FontStyle")].concat(o),u=e.$r($);return function(t,i,o){var $=r(t,i,"Script"),u=[$].concat(o),c=e.$r(u);return s($,"$initialize",(function e(t,r){var s=e.$$p||l;return e.$$p=null,null==r&&(r="script"),n(this,a(this,"initialize",e,!1,!0),"initialize",[t,r],s)}),-2),s($,"$to_asciimath",(function(){var e;return"mathcal("+(((e=this.$parameter_one())===l||null==e?l:e.$to_asciimath())+")")})),s($,"$to_latex",(function(){var e;return"\\mathcal{"+(((e=this.$parameter_one())===l||null==e?l:e.$to_latex())+"}")})),s($,"$to_mathml_without_math_tag",(function(){var e;return c("Utility").$update_nodes(c("Utility").$ox_element("mstyle",new Map([["attributes",new Map([["mathvariant","script"]])]])),[(e=this.$parameter_one(),e===l||null==e?l:e.$to_mathml_without_math_tag())])})),s($,"$to_omml_without_math_tag",(function(e){return this.$font_styles(e,new Map([["scr","script"]]))}))}($[0],u("FontStyle"),$)}($[0],0,$)}($[0],$)}($[0],$)}(o[0],o)},Opal.modules["plurimath/math/function/table"]=function(e){var t=e.module,r=e.klass,n=e.def,a=e.truthy,s=e.send,i=e.eqeq,o=e.slice,l=e.extract_kwargs,$=e.ensure_kwargs,u=e.get_kwarg,c=e.rb_minus,_=[],p=e.nil,m=e.$$$;return e.add_stubs("attr_accessor,==,class,value,options,open_paren,close_paren,join,map,to_proc,is_a?,nil?,[],to_sym,ox_element,table_attribute,update_nodes,norm_table,present?,<<,mathml_parenthesis,latex_content,include?,environment,latex_parenthesis,all?,length,parameter_one,single_td_table,multiple_td_table,fenced_table,to_asciimath_math_zone,new,gsub_spacing,to_latex_math_zone,to_mathml_math_zone,to_omml_math_zone,protected,!,empty?,column_lines,mathml_attrs,insert,each_with_index,first,find,symbol_value,[]=,-,reject,dup,to_s,invert,class_name,key?,matrix_class,latex_columnalign,Hash,td_hash,parameter_two,value?,pr_element,flatten,to_omml_without_math_tag,compact,count,mdpr_node,begchr,endchr,paren"),function(_,d){var f=[t(_,"Plurimath")].concat(d);return function(_,d){var f=[t(_,"Math")].concat(d);return function(_,d){var f=[t(_,"Function")].concat(d),h=e.$r(f);return function(t,_,d){var f=r(t,_,"Table"),h=[f].concat(d),g=e.$r(h);return f.$attr_accessor("value","open_paren","close_paren","options"),n(f,"$initialize",(function(e,t,r,n){var a=this;return null==e&&(e=p),null==t&&(t=p),null==r&&(r=p),null==n&&(n=new Map),a.value=e,a.open_paren=t,a.close_paren=r,a.options=n}),-1),n(f,"$==",(function(e){var t,r,n,s,i=this;return a(t=a(r=a(n=a(s=e.$class()["$=="](i.$class()))?e.$value()["$=="](i.$value()):s)?e.$options()["$=="](i.$options()):n)?e.$open_paren()["$=="](i.$open_paren()):r)?e.$close_paren()["$=="](i.$close_paren()):t})),n(f,"$to_asciimath",(function(){var e,t,r,n,i=this,o=p,l=p;return o=m(m(g("Asciimath"),"Constants"),"TABLE_PARENTHESIS"),e=s(i.$value(),"map",[],"to_asciimath".$to_proc()).$join(", "),t=a(r=i.$close_paren()["$is_a?"](m("Array")))?r:i.$close_paren()["$nil?"](),l=a(i.$open_paren()["$nil?"]())?"[":i.$open_paren(),n=a(t)?o["$[]"](l.$to_sym()):i.$close_paren(),""+l+e+n})),n(f,"$to_mathml_without_math_tag",(function(){var e,t,r=this,n=p,o=p,l=p;return t=g("Utility").$ox_element("mtable",new Map([["attributes",r.$table_attribute()]])),g("Utility").$update_nodes(t,(e=r.$value())===p||null==e?p:s(e,"map",[],"to_mathml_without_math_tag".$to_proc())),i(r.$open_paren(),"norm[")?r.$norm_table(t):a(r["$present?"](r.$open_paren()))||a(r["$present?"](r.$close_paren()))?(n=g("Utility").$ox_element("mo")["$<<"](r.$mathml_parenthesis(r.$open_paren())),o=g("Utility").$ox_element("mo")["$<<"](r.$mathml_parenthesis(r.$close_paren())),l=g("Utility").$ox_element("mrow"),g("Utility").$update_nodes(l,[n,t,o])):t})),n(f,"$to_latex",(function(){var e,t,r,n=this,s=p;return i(n.$open_paren(),"norm[")?"\\begin{Vmatrix}"+n.$latex_content()+"\\end{Vmatrix}":(a((e=n.$environment())===p||null==e?p:e["$include?"]("array"))&&(s="{"+n.$table_attribute("latex")+"}"),t=n.$latex_parenthesis(n.$open_paren()),r="\\end{matrix}\\right "+n.$latex_parenthesis(n.$close_paren()),""+("\\left "+t+"\\begin{matrix}")+s+n.$latex_content()+r)})),n(f,"$to_html",(function(){return"<table>"+s(this.$value(),"map",[],"to_html".$to_proc()).$join()+"</table>"})),n(f,"$to_omml_without_math_tag",(function(e){var t,r=this;return t=a(s(r.$value(),"map",[],(function(e){return null==e&&(e=p),e.$parameter_one().$length()["$=="](1)}))["$all?"]())?r.$single_td_table(e):r.$multiple_td_table(e),r.$fenced_table(t)})),n(f,"$to_asciimath_math_zone",(function(e,t,r){return null==t&&(t=!1),null==r&&(r=!0),[e+'"table" function apply\n',g("Formula").$new(this.$value()).$to_asciimath_math_zone(this.$gsub_spacing(e,t),t,r)]}),-2),n(f,"$to_latex_math_zone",(function(e,t,r){return null==t&&(t=!1),null==r&&(r=!0),[e+'"table" function apply\n',g("Formula").$new(this.$value()).$to_latex_math_zone(this.$gsub_spacing(e,t),t,r)]}),-2),n(f,"$to_mathml_math_zone",(function(e,t,r){return null==t&&(t=!1),null==r&&(r=!0),[e+'"table" function apply\n',g("Formula").$new(this.$value()).$to_mathml_math_zone(this.$gsub_spacing(e,t),t,r)]}),-2),n(f,"$to_omml_math_zone",(function(e,t,r,n){var a,s,i,c,_;return a=o(arguments,1),s=l(a),s=$(s),a.length>0&&(i=a.shift()),null==i&&(i=!1),a.length>0&&(c=a.shift()),null==c&&(c=!0),_=u(s,"display_style"),[e+'"table" function apply\n',g("Formula").$new(this.$value()).$to_omml_math_zone(this.$gsub_spacing(e,i),i,c,new Map([["display_style",_]]))]}),-3),f.$protected(),n(f,"$present?",(function(e){var t;return(a(t=e["$nil?"]())?t:e["$empty?"]())["$!"]()})),n(f,"$mathml_parenthesis",(function(e){var t;return a((t=e)===p||null==t?p:t["$include?"](":"))?"":a(this["$present?"](e))?e:""})),n(f,"$latex_parenthesis",(function(e){var t;return a(e)?a((t=e)===p||null==t?p:t["$include?"](":"))?" .":a(["{","}"]["$include?"](e))?"\\"+e:e:"."})),n(f,"$table_attribute",(function(e){var t,r,n=p;switch(null==e&&(e="mathml"),n=this.$column_lines(),e.valueOf()){case"mathml":return this.$mathml_attrs(n);case"latex":return a(n["$include?"]("solid"))&&n.$insert(0,"none"),(t=(r=n)===p||null==r?p:s(r,"map",[],(function(e){return null==e&&(e=p),i(e,"solid")?"|":"a"})))===p||null==t?p:t.$join();default:return p}}),-1),n(f,"$column_lines",(function(){var e=p;return e=[],s(this.$value().$first().$parameter_one(),"each_with_index",[],(function(t,r){var n;return null==t&&(t=p),null==r&&(r=p),a(s(t.$parameter_one(),"find",[],(function(e){return null==e&&(e=p),g("Utility").$symbol_value(e,"|")})))?a(e["$empty?"]())?e=["solid"]:(n=[c(r,1),"solid"],s(e,"[]=",n),n[n.length-1]):e["$<<"]("none")})),e})),n(f,"$mathml_attrs",(function(e){var t,r,n,i=p;return i=(t=(r=this.$options())===p||null==r?p:r.$dup())===p||null==t?p:s(t,"reject",[],(function(e){return null==e&&(e=p),e.$to_s()["$=="]("asterisk")})),a(e["$include?"]("solid"))&&i["$[]="]("columnlines",e.$join(" ")),a((n=this.$close_paren())===p||null==n?p:n["$include?"](":}"))&&i["$[]="]("columnalign","left"),i})),n(f,"$latex_content",(function(){var e,t;return(e=(t=this.$value())===p||null==t?p:s(t,"map",[],"to_latex".$to_proc()))===p||null==e?p:e.$join(" \\\\ ")})),n(f,"$matrix_class",(function(){var e,t,r=this;return t=a(r.$open_paren())?m(m(g("Latex"),"Constants"),"MATRICES").$invert()["$[]"](r.$open_paren()):r.$class_name(),a((e=r.$options())===p||null==e?p:e["$key?"]("asterisk"))?"{"+t+"*}":"{"+t+"}"})),n(f,"$opening",(function(){return""+this.$matrix_class()+this.$latex_columnalign()})),n(f,"$latex_columnalign",(function(){var e=this;return a(e.$Hash(e.$options())["$[]"]("asterisk"))?"["+m(g("Utility"),"ALIGNMENT_LETTERS").$invert()["$[]"](e.$Hash(e.$td_hash())["$[]"]("columnalign"))+"]":""})),n(f,"$td_hash",(function(){var e,t,r,n;return(e=(t=(r=(n=this.$value())===p||null==n?p:n.$first())===p||null==r?p:r.$parameter_one())===p||null==t?p:t.$first())===p||null==e?p:e.$parameter_two()})),n(f,"$environment",(function(){var e,t=p;return e=(t=m(m(g("Latex"),"Constants"),"MATRICES"))["$value?"](this.$open_paren()),a(e)?t.$invert()["$[]"](this.$open_paren()).$to_s():p})),n(f,"$single_td_table",(function(e){var t=p,r=p,n=p;return t=g("Utility").$ox_element("eqArr",new Map([["namespace","m"]])),(r=g("Utility").$ox_element("eqArrPr",new Map([["namespace","m"]])))["$<<"](g("Utility").$pr_element("ctrl",!0,new Map([["namespace","m"]]))),t["$<<"](r),n=s(this.$value(),"map",[],(function(t){return null==t&&(t=p),t.$to_omml_without_math_tag(e)})).$flatten(),g("Utility").$update_nodes(t,n.$compact()),[t]})),n(f,"$multiple_td_table",(function(e){var t,r,n,a,i,o,l,$,u,c=p,_=p,m=p,d=p,f=p;return i=new Map([["m:val",(n=this.$value(),r=n===p||null==n?p:n.$first(),t=r===p||null==r?p:r.$parameter_one(),t===p||null==t?p:t.$count())]]),c=new Map([["m:val","center"]]),o=g("Utility").$ox_element("m",new Map([["namespace","m"]])),_=g("Utility").$ox_element("mpr",new Map([["namespace","m"]])),m=g("Utility").$ox_element("mcs",new Map([["namespace","m"]])),d=g("Utility").$ox_element("mc",new Map([["namespace","m"]])),l=g("Utility").$ox_element("mcPr",new Map([["namespace","m"]])),$=g("Utility").$ox_element("count",new Map([["namespace","m"],["attributes",i]])),c=g("Utility").$ox_element("mcJc",new Map([["namespace","m"],["attributes",c]])),u=g("Utility").$pr_element("ctrl",!0,new Map([["namespace","m"]])),g("Utility").$update_nodes(l,[$,c]),d["$<<"](l),m["$<<"](d),_["$<<"](m),_["$<<"](u),f=(a=this.$value())===p||null==a?p:s(a,"map",[],(function(t){return null==t&&(t=p),t.$to_omml_without_math_tag(e)})),g("Utility").$update_nodes(o,f.$insert(0,_).$flatten()),[o]})),n(f,"$norm_table",(function(e){var t;return t=g("Utility").$ox_element("mo")["$<<"]("&#x2225;"),g("Utility").$update_nodes(g("Utility").$ox_element("mrow"),[t,e,t])})),n(f,"$fenced_table",(function(e){var t,r,n=this;return a(n.$open_paren())||a(n.$close_paren())?(t=g("Utility").$ox_element("d",new Map([["namespace","m"]])),r=g("Utility").$ox_element("e",new Map([["namespace","m"]])),g("Utility").$update_nodes(r,e),g("Utility").$update_nodes(t,[n.$mdpr_node(),r]),[t]):e})),n(f,"$mdpr_node",(function(){var e,t,r;return e=g("Utility").$ox_element("sepChr",new Map([["attributes",new Map([["m:val",""]])],["namespace","m"]])),t=g("Utility").$ox_element("grow",new Map([["namespace","m"]])),r=g("Utility").$ox_element("dPr",new Map([["namespace","m"]])),g("Utility").$update_nodes(r,[this.$begchr(),this.$endchr(),e,t])})),n(f,"$begchr",(function(){var e=this;return a(e.$open_paren())?g("Utility").$ox_element("begChr",new Map([["attributes",new Map([["m:val",e.$paren(e.$open_paren())]])],["namespace","m"]])):p})),n(f,"$endchr",(function(){var e=this;return a(e.$close_paren())?g("Utility").$ox_element("endChr",new Map([["attributes",new Map([["m:val",e.$paren(e.$close_paren())]])],["namespace","m"]])):p})),n(f,"$paren",(function(e){return a(["{:",":}"]["$include?"](e))?"":e}))}(f[0],h("Core"),f)}(f[0],f)}(f[0],f)}(_[0],_)},Opal.modules["plurimath/math/function/table/align"]=function(e){var t=e.module,r=e.klass,n=e.send2,a=e.find_super,s=e.def,i=e.top,o=[],l=e.nil;return e.add_stubs("opening,latex_content,matrix_class"),i.$require("plurimath//math/function/table/align.rb/../../table"),function(i,o){var $=[t(i,"Plurimath")].concat(o);return function(i,o){var $=[t(i,"Math")].concat(o);return function(i,o){var $=[t(i,"Function")].concat(o);return function(t,i,o){var $=[r(t,null,"Table")].concat(o),u=e.$r($);return function(e,t){var i=r(e,t,"Align");return s(i,"$initialize",(function e(t,r,s,i){var o=e.$$p||l;return e.$$p=null,null==r&&(r="["),null==s&&(s="]"),null==i&&(i=new Map),n(this,a(this,"initialize",e,!1,!0),"initialize",[t,r,s,i],o)}),-2),s(i,"$to_latex",(function(){var e=this;return"\\begin"+e.$opening()+e.$latex_content()+"\\end"+e.$matrix_class()}))}($[0],u("Table"))}($[0],0,$)}($[0],$)}($[0],$)}(o[0],o)},Opal.modules["plurimath/math/function/table/array"]=function(e){var t=e.module,r=e.klass,n=e.send2,a=e.find_super,s=e.def,i=e.send,o=e.truthy,l=e.top,$=[],u=e.nil,c=e.$$$;return e.add_stubs("array_args,latex_content,each,parameter_one,first,value,<<,symbol_value,to_s,[],invert,Hash,parameter_two,empty?,compact,join,ox_element,table_attribute,update_nodes,map,to_proc"),l.$require("plurimath//math/function/table/array.rb/../../table"),function(l,$){var _=[t(l,"Plurimath")].concat($);return function(l,$){var _=[t(l,"Math")].concat($);return function(l,$){var _=[t(l,"Function")].concat($);return function(t,l,$){var _=[r(t,null,"Table")].concat($),p=e.$r(_);return function(t,l,$){var _=r(t,l,"Array"),p=[_].concat($),m=e.$r(p);return s(_,"$initialize",(function e(t,r,s,i){var o=e.$$p||u;return e.$$p=null,null==t&&(t=[]),null==r&&(r="["),null==s&&(s="]"),null==i&&(i=new Map),n(this,a(this,"initialize",e,!1,!0),"initialize",[t,r,s,i],o)}),-1),s(_,"$to_latex",(function(){return"\\begin{array}"+this.$array_args()+this.$latex_content()+"\\end{array}"})),s(_,"$array_args",(function(){var e=u;return e=[],i(this.$value().$first().$parameter_one(),"each",[],(function t(r){var n,a=null==t.$$s?this:t.$$s;return null==r&&(r=u),e["$<<"](o(m("Utility").$symbol_value(r.$parameter_one().$first(),"|"))?"|":(n=c(m("Utility"),"ALIGNMENT_LETTERS").$invert()["$[]"](a.$Hash(r.$parameter_two())["$[]"]("columnalign")))===u||null==n?u:n.$to_s())}),{$$s:this}),o(e.$compact()["$empty?"]())?u:"{"+e.$join()+"}"})),s(_,"$to_mathml_without_math_tag",(function(){var e,t;return t=m("Utility").$ox_element("mtable",new Map([["attributes",this.$table_attribute()]])),m("Utility").$update_nodes(t,(e=this.$value())===u||null==e?u:i(e,"map",[],"to_mathml_without_math_tag".$to_proc()))}))}(_[0],p("Table"),_)}(_[0],0,_)}(_[0],_)}(_[0],_)}($[0],$)},Opal.modules["plurimath/math/function/table/bmatrix"]=function(e){var t=e.module,r=e.klass,n=e.send2,a=e.find_super,s=e.def,i=e.send,o=e.top,l=[],$=e.nil;return e.add_stubs("opening,latex_content,matrix_class,ox_element,table_attribute,update_nodes,map,value,to_proc,mathml_parenthesis,open_paren,close_paren,<<"),o.$require("plurimath//math/function/table/bmatrix.rb/../../table"),function(o,l){var u=[t(o,"Plurimath")].concat(l);return function(o,l){var u=[t(o,"Math")].concat(l);return function(o,l){var u=[t(o,"Function")].concat(l);return function(t,o,l){var u=[r(t,null,"Table")].concat(l),c=e.$r(u);return function(t,o,l){var u=r(t,o,"Bmatrix"),c=[u].concat(l),_=e.$r(c);return s(u,"$initialize",(function e(t,r,s,i){var o=e.$$p||$;return e.$$p=null,null==r&&(r="["),null==s&&(s="]"),null==i&&(i=new Map),n(this,a(this,"initialize",e,!1,!0),"initialize",[t,r,s,i],o)}),-2),s(u,"$to_latex",(function(){var e=this;return"\\begin"+e.$opening()+e.$latex_content()+"\\end"+e.$matrix_class()})),s(u,"$to_mathml_without_math_tag",(function(){var e,t,r,n=this;return t=_("Utility").$ox_element("mtable",new Map([["attributes",n.$table_attribute()]])),_("Utility").$update_nodes(t,(e=n.$value())===$||null==e?$:i(e,"map",[],"to_mathml_without_math_tag".$to_proc())),r=new Map([["open",n.$mathml_parenthesis(n.$open_paren())],["close",n.$mathml_parenthesis(n.$close_paren())]]),_("Utility").$ox_element("mfenced",new Map([["attributes",r]]))["$<<"](t)}))}(u[0],c("Table"),u)}(u[0],0,u)}(u[0],u)}(u[0],u)}(l[0],l)},Opal.modules["plurimath/math/function/table/matrix"]=function(e){var t=e.module,r=e.klass,n=e.send2,a=e.find_super,s=e.def,i=e.send,o=e.top,l=[],$=e.nil;return e.add_stubs("opening,latex_content,matrix_class,ox_element,table_attribute,update_nodes,map,value,to_proc"),o.$require("plurimath//math/function/table/matrix.rb/../../table"),function(o,l){var u=[t(o,"Plurimath")].concat(l);return function(o,l){var u=[t(o,"Math")].concat(l);return function(o,l){var u=[t(o,"Function")].concat(l);return function(t,o,l){var u=[r(t,null,"Table")].concat(l),c=e.$r(u);return function(t,o,l){var u=r(t,o,"Matrix"),c=[u].concat(l),_=e.$r(c);return s(u,"$initialize",(function e(t,r,s,i){var o=e.$$p||$;return e.$$p=null,null==t&&(t=[]),null==r&&(r="("),null==s&&(s=")"),null==i&&(i=new Map),n(this,a(this,"initialize",e,!1,!0),"initialize",[t,r,s,i],o)}),-1),s(u,"$to_latex",(function(){var e=this;return"\\begin"+e.$opening()+e.$latex_content()+"\\end"+e.$matrix_class()})),s(u,"$to_mathml_without_math_tag",(function(){var e,t;return t=_("Utility").$ox_element("mtable",new Map([["attributes",this.$table_attribute()]])),_("Utility").$update_nodes(t,(e=this.$value())===$||null==e?$:i(e,"map",[],"to_mathml_without_math_tag".$to_proc()))}))}(u[0],c("Table"),u)}(u[0],0,u)}(u[0],u)}(u[0],u)}(l[0],l)},Opal.modules["plurimath/math/function/table/multline"]=function(e){var t=e.module,r=e.klass,n=e.send2,a=e.find_super,s=e.def,i=e.top,o=[],l=e.nil;return e.add_stubs("opening,latex_content,matrix_class"),i.$require("plurimath//math/function/table/multline.rb/../../table"),function(i,o){var $=[t(i,"Plurimath")].concat(o);return function(i,o){var $=[t(i,"Math")].concat(o);return function(i,o){var $=[t(i,"Function")].concat(o);return function(t,i,o){var $=[r(t,null,"Table")].concat(o),u=e.$r($);return function(e,t){var i=r(e,t,"Multline");return s(i,"$initialize",(function e(t,r,s,i){var o=e.$$p||l;return e.$$p=null,null==r&&(r="["),null==s&&(s="]"),null==i&&(i=new Map),n(this,a(this,"initialize",e,!1,!0),"initialize",[t,r,s,i],o)}),-2),s(i,"$to_latex",(function(){var e=this;return"\\begin"+e.$opening()+e.$latex_content()+"\\end"+e.$matrix_class()}))}($[0],u("Table"))}($[0],0,$)}($[0],$)}($[0],$)}(o[0],o)},Opal.modules["plurimath/math/function/table/pmatrix"]=function(e){var t=e.module,r=e.klass,n=e.send2,a=e.find_super,s=e.def,i=e.top,o=[],l=e.nil;return e.add_stubs("opening,latex_content,matrix_class"),i.$require("plurimath//math/function/table/pmatrix.rb/../../table"),function(i,o){var $=[t(i,"Plurimath")].concat(o);return function(i,o){var $=[t(i,"Math")].concat(o);return function(i,o){var $=[t(i,"Function")].concat(o);return function(t,i,o){var $=[r(t,null,"Table")].concat(o),u=e.$r($);return function(e,t){var i=r(e,t,"Pmatrix");return s(i,"$initialize",(function e(t,r,s,i){var o=e.$$p||l;return e.$$p=null,null==r&&(r="("),null==s&&(s=")"),null==i&&(i=new Map),n(this,a(this,"initialize",e,!1,!0),"initialize",[t,r,s,i],o)}),-2),s(i,"$to_latex",(function(){var e=this;return"\\begin"+e.$opening()+e.$latex_content()+"\\end"+e.$matrix_class()}))}($[0],u("Table"))}($[0],0,$)}($[0],$)}($[0],$)}(o[0],o)},Opal.modules["plurimath/math/function/table/split"]=function(e){var t=e.module,r=e.klass,n=e.send2,a=e.find_super,s=e.def,i=e.top,o=[],l=e.nil;return e.add_stubs("opening,latex_content,matrix_class"),i.$require("plurimath//math/function/table/split.rb/../../table"),function(i,o){var $=[t(i,"Plurimath")].concat(o);return function(i,o){var $=[t(i,"Math")].concat(o);return function(i,o){var $=[t(i,"Function")].concat(o);return function(t,i,o){var $=[r(t,null,"Table")].concat(o),u=e.$r($);return function(e,t){var i=r(e,t,"Split");return s(i,"$initialize",(function e(t,r,s,i){var o=e.$$p||l;return e.$$p=null,null==r&&(r="["),null==s&&(s="]"),null==i&&(i=new Map),n(this,a(this,"initialize",e,!1,!0),"initialize",[t,r,s,i],o)}),-2),s(i,"$to_latex",(function(){var e=this;return"\\begin"+e.$opening()+e.$latex_content()+"\\end"+e.$matrix_class()}))}($[0],u("Table"))}($[0],0,$)}($[0],$)}($[0],$)}(o[0],o)},Opal.modules["plurimath/math/function/table/vmatrix"]=function(e){var t=e.module,r=e.klass,n=e.send2,a=e.find_super,s=e.def,i=e.top,o=[],l=e.nil;return e.add_stubs("opening,latex_content,matrix_class"),i.$require("plurimath//math/function/table/vmatrix.rb/../../table"),function(i,o){var $=[t(i,"Plurimath")].concat(o);return function(i,o){var $=[t(i,"Math")].concat(o);return function(i,o){var $=[t(i,"Function")].concat(o);return function(t,i,o){var $=[r(t,null,"Table")].concat(o),u=e.$r($);return function(e,t){var i=r(e,t,"Vmatrix");return s(i,"$initialize",(function e(t,r,s,i){var o=e.$$p||l;return e.$$p=null,null==r&&(r="|"),null==s&&(s="|"),null==i&&(i=new Map),n(this,a(this,"initialize",e,!1,!0),"initialize",[t,r,s,i],o)}),-2),s(i,"$to_latex",(function(){var e=this;return"\\begin"+e.$opening()+e.$latex_content()+"\\end"+e.$matrix_class()}))}($[0],u("Table"))}($[0],0,$)}($[0],$)}($[0],$)}(o[0],o)},Opal.modules["plurimath/setup/opal"]=function(e){var t=e.top;e.nil;return e.add_stubs("require"),t.$require("plurimath/math/core"),t.$require("plurimath/math/function"),t.$require("plurimath//math/function/abs"),t.$require("plurimath//math/function/arccos"),t.$require("plurimath//math/function/arcsin"),t.$require("plurimath//math/function/arctan"),t.$require("plurimath//math/function/bar"),t.$require("plurimath//math/function/base"),t.$require("plurimath//math/function/binary_function"),t.$require("plurimath//math/function/cancel"),t.$require("plurimath//math/function/ceil"),t.$require("plurimath//math/function/color"),t.$require("plurimath//math/function/cos"),t.$require("plurimath//math/function/cosh"),t.$require("plurimath//math/function/cot"),t.$require("plurimath//math/function/coth"),t.$require("plurimath//math/function/csc"),t.$require("plurimath//math/function/csch"),t.$require("plurimath//math/function/ddot"),t.$require("plurimath//math/function/deg"),t.$require("plurimath//math/function/det"),t.$require("plurimath//math/function/dim"),t.$require("plurimath//math/function/dot"),t.$require("plurimath//math/function/exp"),t.$require("plurimath//math/function/fenced"),t.$require("plurimath//math/function/floor"),t.$require("plurimath//math/function/font_style"),t.$require("plurimath//math/function/frac"),t.$require("plurimath//math/function/gcd"),t.$require("plurimath//math/function/glb"),t.$require("plurimath//math/function/hat"),t.$require("plurimath//math/function/hom"),t.$require("plurimath//math/function/inf"),t.$require("plurimath//math/function/int"),t.$require("plurimath//math/function/ker"),t.$require("plurimath//math/function/lcm"),t.$require("plurimath//math/function/left"),t.$require("plurimath//math/function/lg"),t.$require("plurimath//math/function/lim"),t.$require("plurimath//math/function/liminf"),t.$require("plurimath//math/function/limits"),t.$require("plurimath//math/function/limsup"),t.$require("plurimath//math/function/ln"),t.$require("plurimath//math/function/log"),t.$require("plurimath//math/function/longdiv"),t.$require("plurimath//math/function/lub"),t.$require("plurimath//math/function/max"),t.$require("plurimath//math/function/mbox"),t.$require("plurimath//math/function/menclose"),t.$require("plurimath//math/function/merror"),t.$require("plurimath//math/function/min"),t.$require("plurimath//math/function/mod"),t.$require("plurimath//math/function/msgroup"),t.$require("plurimath//math/function/msline"),t.$require("plurimath//math/function/multiscript"),t.$require("plurimath//math/function/nary"),t.$require("plurimath//math/function/norm"),t.$require("plurimath//math/function/obrace"),t.$require("plurimath//math/function/oint"),t.$require("plurimath//math/function/over"),t.$require("plurimath//math/function/overset"),t.$require("plurimath//math/function/phantom"),t.$require("plurimath//math/function/power"),t.$require("plurimath//math/function/power_base"),t.$require("plurimath//math/function/prod"),t.$require("plurimath//math/function/right"),t.$require("plurimath//math/function/root"),t.$require("plurimath//math/function/rule"),t.$require("plurimath//math/function/scarries"),t.$require("plurimath//math/function/scarry"),t.$require("plurimath//math/function/sec"),t.$require("plurimath//math/function/sech"),t.$require("plurimath//math/function/semantics"),t.$require("plurimath//math/function/sin"),t.$require("plurimath//math/function/sinh"),t.$require("plurimath//math/function/sqrt"),t.$require("plurimath//math/function/stackrel"),t.$require("plurimath//math/function/substack"),t.$require("plurimath//math/function/sum"),t.$require("plurimath//math/function/sup"),t.$require("plurimath//math/function/table"),t.$require("plurimath//math/function/tan"),t.$require("plurimath//math/function/tanh"),t.$require("plurimath//math/function/td"),t.$require("plurimath//math/function/ternary_function"),t.$require("plurimath//math/function/text"),t.$require("plurimath//math/function/tilde"),t.$require("plurimath//math/function/tr"),t.$require("plurimath//math/function/ubrace"),t.$require("plurimath//math/function/ul"),t.$require("plurimath//math/function/unary_function"),t.$require("plurimath//math/function/underover"),t.$require("plurimath//math/function/underset"),t.$require("plurimath//math/function/vec"),t.$require("plurimath//math/function/abs"),t.$require("plurimath//math/function/arccos"),t.$require("plurimath//math/function/arcsin"),t.$require("plurimath//math/function/arctan"),t.$require("plurimath//math/function/bar"),t.$require("plurimath//math/function/base"),t.$require("plurimath//math/function/binary_function"),t.$require("plurimath//math/function/cancel"),t.$require("plurimath//math/function/ceil"),t.$require("plurimath//math/function/color"),t.$require("plurimath//math/function/cos"),t.$require("plurimath//math/function/cosh"),t.$require("plurimath//math/function/cot"),t.$require("plurimath//math/function/coth"),t.$require("plurimath//math/function/csc"),t.$require("plurimath//math/function/csch"),t.$require("plurimath//math/function/ddot"),t.$require("plurimath//math/function/deg"),t.$require("plurimath//math/function/det"),t.$require("plurimath//math/function/dim"),t.$require("plurimath//math/function/dot"),t.$require("plurimath//math/function/exp"),t.$require("plurimath//math/function/fenced"),t.$require("plurimath//math/function/floor"),t.$require("plurimath//math/function/font_style/bold-fraktur"),t.$require("plurimath//math/function/font_style/bold-italic"),t.$require("plurimath//math/function/font_style/bold-sans-serif"),t.$require("plurimath//math/function/font_style/bold-script"),t.$require("plurimath//math/function/font_style/bold"),t.$require("plurimath//math/function/font_style/double_struck"),t.$require("plurimath//math/function/font_style/fraktur"),t.$require("plurimath//math/function/font_style/italic"),t.$require("plurimath//math/function/font_style/monospace"),t.$require("plurimath//math/function/font_style/normal"),t.$require("plurimath//math/function/font_style/sans-serif-bold-italic"),t.$require("plurimath//math/function/font_style/sans-serif-italic"),t.$require("plurimath//math/function/font_style/sans-serif"),t.$require("plurimath//math/function/font_style/script"),t.$require("plurimath//math/function/font_style"),t.$require("plurimath//math/function/frac"),t.$require("plurimath//math/function/gcd"),t.$require("plurimath//math/function/glb"),t.$require("plurimath//math/function/hat"),t.$require("plurimath//math/function/hom"),t.$require("plurimath//math/function/inf"),t.$require("plurimath//math/function/int"),t.$require("plurimath//math/function/ker"),t.$require("plurimath//math/function/lcm"),t.$require("plurimath//math/function/left"),t.$require("plurimath//math/function/lg"),t.$require("plurimath//math/function/lim"),t.$require("plurimath//math/function/liminf"),t.$require("plurimath//math/function/limits"),t.$require("plurimath//math/function/limsup"),t.$require("plurimath//math/function/ln"),t.$require("plurimath//math/function/log"),t.$require("plurimath//math/function/longdiv"),t.$require("plurimath//math/function/lub"),t.$require("plurimath//math/function/max"),t.$require("plurimath//math/function/mbox"),t.$require("plurimath//math/function/menclose"),t.$require("plurimath//math/function/merror"),t.$require("plurimath//math/function/min"),t.$require("plurimath//math/function/mod"),t.$require("plurimath//math/function/msgroup"),t.$require("plurimath//math/function/msline"),t.$require("plurimath//math/function/multiscript"),t.$require("plurimath//math/function/nary"),t.$require("plurimath//math/function/norm"),t.$require("plurimath//math/function/obrace"),t.$require("plurimath//math/function/oint"),t.$require("plurimath//math/function/over"),t.$require("plurimath//math/function/overset"),t.$require("plurimath//math/function/phantom"),t.$require("plurimath//math/function/power"),t.$require("plurimath//math/function/power_base"),t.$require("plurimath//math/function/prod"),t.$require("plurimath//math/function/right"),t.$require("plurimath//math/function/root"),t.$require("plurimath//math/function/rule"),t.$require("plurimath//math/function/scarries"),t.$require("plurimath//math/function/scarry"),t.$require("plurimath//math/function/sec"),t.$require("plurimath//math/function/sech"),t.$require("plurimath//math/function/semantics"),t.$require("plurimath//math/function/sin"),t.$require("plurimath//math/function/sinh"),t.$require("plurimath//math/function/sqrt"),t.$require("plurimath//math/function/stackrel"),t.$require("plurimath//math/function/substack"),t.$require("plurimath//math/function/sum"),t.$require("plurimath//math/function/sup"),t.$require("plurimath//math/function/table/align"),t.$require("plurimath//math/function/table/array"),t.$require("plurimath//math/function/table/bmatrix"),t.$require("plurimath//math/function/table/matrix"),t.$require("plurimath//math/function/table/multline"),t.$require("plurimath//math/function/table/pmatrix"),t.$require("plurimath//math/function/table/split"),t.$require("plurimath//math/function/table/vmatrix"),t.$require("plurimath//math/function/table"),t.$require("plurimath//math/function/tan"),t.$require("plurimath//math/function/tanh"),t.$require("plurimath//math/function/td"),t.$require("plurimath//math/function/ternary_function"),t.$require("plurimath//math/function/text"),t.$require("plurimath//math/function/tilde"),t.$require("plurimath//math/function/tr"),t.$require("plurimath//math/function/ubrace"),t.$require("plurimath//math/function/ul"),t.$require("plurimath//math/function/unary_function"),t.$require("plurimath//math/function/underover"),t.$require("plurimath//math/function/underset"),t.$require("plurimath//math/function/vec")},Opal.modules["plurimath/unicode"]=function(e){var t,r=e.module,n=e.klass,a=e.assign_ivar,s=e.def,i=e.return_val,o=[],l=e.nil;return e.add_stubs("attr_accessor"),t=o,function(e,t){var r=n(e,null,"Unicode");return r.$attr_accessor("text"),s(r,"$initialize",a("text")),s(r,"$to_formula",i(l))}([r(o[0],"Plurimath")].concat(t)[0])},Opal.modules["plurimath/asciimath"]=function(e){var t=e.module,r=e.klass,n=e.assign_ivar,a=e.def,s=e.top,i=[];e.nil;return e.add_stubs("attr_accessor,parse,new,text"),s.$require("plurimath/asciimath.rb/../math"),function(s,i){var o=[t(s,"Plurimath")].concat(i);return function(t,s,i){var o=r(t,null,"Asciimath"),l=[o].concat(i),$=e.$r(l);return o.$attr_accessor("text"),a(o,"$initialize",n("text")),a(o,"$to_formula",(function(){return $("Parser").$new(this.$text()).$parse()}))}(o[0],0,o)}(i[0],i)},Opal.modules["plurimath/omml"]=function(e){var t=e.module,r=e.klass,n=e.assign_ivar,a=e.def,s=[];e.nil;return e.add_stubs("attr_accessor,parse,new,text"),function(s,i){var o=[t(s,"Plurimath")].concat(i);return function(t,s,i){var o=r(t,null,"Omml"),l=[o].concat(i),$=e.$r(l);return o.$attr_accessor("text"),a(o,"$initialize",n("text")),a(o,"$to_formula",(function(){return $("Parser").$new(this.$text()).$parse()}))}(o[0],0,o)}(s[0],s)},Opal.modules["plurimath/mathml"]=function(e){var t=e.module,r=e.klass,n=e.assign_ivar,a=e.def,s=e.top,i=[];e.nil;return e.add_stubs("attr_accessor,parse,new,text"),s.$require("plurimath/mathml.rb/../math"),function(s,i){var o=[t(s,"Plurimath")].concat(i);return function(t,s,i){var o=r(t,null,"Mathml"),l=[o].concat(i),$=e.$r(l);return o.$attr_accessor("text"),a(o,"$initialize",n("text")),a(o,"$to_formula",(function(){return $("Parser").$new(this.$text()).$parse()}))}(o[0],0,o)}(i[0],i)},Opal.modules["plurimath/html"]=function(e){var t=e.module,r=e.klass,n=e.assign_ivar,a=e.def,s=[];e.nil;return e.add_stubs("attr_accessor,parse,new,text"),function(s,i){var o=[t(s,"Plurimath")].concat(i);return function(t,s,i){var o=r(t,null,"Html"),l=[o].concat(i),$=e.$r(l);return o.$attr_accessor("text"),a(o,"$initialize",n("text")),a(o,"$to_formula",(function(){return $("Parser").$new(this.$text()).$parse()}))}(o[0],0,o)}(s[0],s)},Opal.modules["plurimath/latex"]=function(e){var t=e.module,r=e.klass,n=e.assign_ivar,a=e.def,s=[];e.nil;return e.add_stubs("attr_accessor,parse,new,text"),function(s,i){var o=[t(s,"Plurimath")].concat(i);return function(t,s,i){var o=r(t,null,"Latex"),l=[o].concat(i),$=e.$r(l);return o.$attr_accessor("text"),a(o,"$initialize",n("text")),a(o,"$to_formula",(function(){return $("Parser").$new(this.$text()).$parse()}))}(o[0],0,o)}(s[0],s)},Opal.modules["plurimath/unitsml"]=function(e){var t,r=e.module,n=e.klass,a=e.assign_ivar,s=e.def,i=e.return_val,o=[],l=e.nil;return e.add_stubs("attr_accessor"),t=o,function(e,t){var r=n(e,null,"Unitsml");return r.$attr_accessor("text"),s(r,"$initialize",a("text")),s(r,"$to_formula",i(l))}([r(o[0],"Plurimath")].concat(t)[0])},Opal.modules["plurimath/math/number"]=function(e){var t=e.module,r=e.klass,n=e.truthy,a=e.def,s=e.return_val,i=[],o=(e.nil,e.$$$);return e.add_stubs("attr_accessor,is_a?,to_s,respond_to?,==,value,<<,ox_element,t_tag"),function(i,l){var $=[t(i,"Plurimath")].concat(l);return function(i,l){var $=[t(i,"Math")].concat(l),u=e.$r($);return function(t,i,l){var $=r(t,i,"Number"),u=[$].concat(l),c=e.$r(u);return $.$attr_accessor("value"),a($,"$initialize",(function(e){return this.value=n(e["$is_a?"](o(c("Parslet"),"Slice")))?e.$to_s():e})),a($,"$==",(function(e){var t;return n(t=e["$respond_to?"]("value"))?e.$value()["$=="](this.$value()):t})),a($,"$to_asciimath",(function(){return this.$value()})),a($,"$to_mathml_without_math_tag",(function(){return c("Utility").$ox_element("mn")["$<<"](this.$value())})),a($,"$to_latex",(function(){return this.$value()})),a($,"$to_html",(function(){return this.$value()})),a($,"$to_omml_without_math_tag",(function(e){return[this.$t_tag()]})),a($,"$insert_t_tag",(function(e){return[c("Utility").$ox_element("r",new Map([["namespace","m"]]))["$<<"](this.$t_tag())]})),a($,"$font_style_t_tag",(function(e){return this.$t_tag()})),a($,"$t_tag",(function(){return c("Utility").$ox_element("t",new Map([["namespace","m"]]))["$<<"](this.$value())})),a($,"$nary_attr_value",(function(){return this.$value()})),a($,"$validate_function_formula",s(!1))}($[0],u("Core"),$)}($[0],$)}(i[0],i)},Opal.modules["plurimath/math/symbol"]=function(e){var t=e.module,r=e.klass,n=e.truthy,a=e.def,s=e.annotate_regexp,i=e.eqeq,o=e.return_val,l=e.send,$=[],u=e.nil,c=e.$$$;return e.add_stubs("attr_accessor,is_a?,to_s,respond_to?,==,value,nil?,[],invert,to_sym,strip,match?,ox_element,include?,explicit_checks,operator?,<<,specific_values,key?,t_tag,Array,private,any?"),function($,_){var p=[t($,"Plurimath")].concat(_);return function($,_){var p=[t($,"Math")].concat(_),m=e.$r(p);return function(t,$,_){var p=r(t,$,"Symbol"),m=[p].concat(_),d=e.$r(m);return p.$attr_accessor("value"),a(p,"$initialize",(function(e){return this.value=n(e["$is_a?"](c(d("Parslet"),"Slice")))?e.$to_s():e})),a(p,"$==",(function(e){var t;return n(t=e["$respond_to?"]("value"))?e.$value()["$=="](this.$value()):t})),a(p,"$to_asciimath",(function(){var e=this,t=u,r=u;return n(e.$value()["$nil?"]())?"":(t=c(c(d("Asciimath"),"Constants"),"SYMBOLS").$invert()["$[]"](e.$value().$strip().$to_sym()),r=c(c(d("Latex"),"Constants"),"UNICODE_SYMBOLS").$invert(),n(e.$value()["$match?"](s(/&#x[0-9\w]+;/u,null,"")))&&n(t["$nil?"]())&&n(r["$[]"](e.$value()))?r["$[]"](e.$value()).$to_s():n(t)?t.$to_s():e.$value())})),a(p,"$to_mathml_without_math_tag",(function(){var e,t=this,r=u,a=u;return r=d("Utility").$ox_element("mi"),n(["{:",":}"]["$include?"](t.$value()))?r:(e=c(c(d("Mathml"),"Constants"),"UNICODE_SYMBOLS").$invert()["$[]"](t.$value()),n(t["$operator?"](e))||n(e)||n(t.$explicit_checks(e))?d("Utility").$ox_element("mo")["$<<"]((n(a=e)?a:t.$value()).$to_s()):r["$<<"](t.$value()))})),a(p,"$to_latex",(function(){var e,t,r=this,a=u,s=u;return e=r.$specific_values(),n(e)?e:(a=["&#x26;","&#x23;"],t=(s=c(c(d("Latex"),"Constants"),"UNICODE_SYMBOLS").$invert())["$[]"](r.$value()),i(c(c(d("Latex"),"Constants"),"SYMBOLS")["$[]"](t),"operant")?n(a["$include?"](r.$value()))?"\\"+t:t:n(s["$key?"](r.$value()))?"\\"+t:r.$value())})),a(p,"$to_html",(function(){return this.$value()})),a(p,"$to_omml_without_math_tag",(function(e){return this.$value()})),a(p,"$insert_t_tag",(function(e){return[d("Utility").$ox_element("r",new Map([["namespace","m"]]))["$<<"](this.$t_tag())]})),a(p,"$tag_name",(function(){return n(["&#x22c0;","&#x22c1;","&#x22c2;","&#x22c3;"]["$include?"](this.$value()))?"underover":"subsup"})),a(p,"$omml_tag_name",(function(){return n(["&#x22c0;","&#x22c1;","&#x22c2;","&#x22c3;","&#x22c3;","&#x2211;","&#x220f;"]["$include?"](this.$value()))?"undOvr":"subSup"})),a(p,"$font_style_t_tag",(function(e){return this.$t_tag()})),a(p,"$nary_attr_value",(function(){return this.$value()})),a(p,"$validate_function_formula",o(!1)),a(p,"$omml_nodes",(function(e){return this.$Array(this.$t_tag())})),a(p,"$t_tag",(function(){return d("Utility").$ox_element("t",new Map([["namespace","m"]]))["$<<"](this.$value())})),p.$private(),a(p,"$operator?",(function(e){return l(c(c(d("Mathml"),"Constants"),"OPERATORS"),"any?",[],(function t(r){var n=null==t.$$s?this:t.$$s;return null==r&&(r=u),[e.$to_s(),n.$value().$strip()]["$include?"](r)}),{$$s:this})})),a(p,"$explicit_checks",(function(e){return!!n(l([e,this.$value()],"any?",[],(function(e){return null==e&&(e=u),["","|"]["$include?"](e)})))||u})),a(p,"$specific_values",(function(){var e=this;return n(["{:",":}"]["$include?"](e.$value()))?"":n(["{","}"]["$include?"](e.$value()))||i(e.$value(),"_")?"\\"+e.$value():i(e.$value(),"if")?"\\operatorname{if}":u}))}(p[0],m("Core"),p)}(p[0],p)}($[0],$)},Opal.modules["plurimath/math/unicode"]=function(e){var t=e.module,r=e.klass,n=e.def,a=[];e.nil;return e.add_stubs("<<,ox_element,value"),function(a,s){var i=[t(a,"Plurimath")].concat(s);return function(a,s){var i=[t(a,"Math")].concat(s),o=e.$r(i);return function(t,a,s){var i=r(t,a,"Unicode"),o=[i].concat(s),l=e.$r(o);return n(i,"$to_mathml_without_math_tag",(function(){return l("Utility").$ox_element("mo")["$<<"](this.$value())}))}(i[0],o("Symbol"),i)}(i[0],i)}(a[0],a)},Opal.modules["plurimath/math/formula"]=function(e){var t=e.module,r=e.klass,n=e.const_set,a=e.slice,s=e.extract_kwargs,i=e.ensure_kwargs,o=e.hash_get,l=e.truthy,$=e.def,u=e.send,c=e.eqeqeq,_=e.annotate_regexp,p=e.get_kwarg,m=e.rb_lt,d=e.rb_plus,f=[],h=e.nil,g=e.$$$;return e.add_stubs("attr_accessor,freeze,is_a?,first,boolean_display_style,respond_to?,==,value,left_right_wrapper,join,map,to_proc,parse_error!,displaystyle,ox_element,update_nodes,mathml_content,gsub,dump,xml_engine,omml_math_attrs,omml_content,<<,lstrip,insert_t_tag,include?,to_sym,downcase,type_error!,===,to_asciimath,to_asciimath_math_zone,to_latex,to_latex_math_zone,to_mathml,to_mathml_math_zone,to_omml,to_omml_math_zone,sub,with_index,filtered_values,length,new_space,<,parameter_one,nary_attr_value,none?,protected,load,to_s,any?,class_name,wrapable?,+,!,end_with?,input_string"),function(f,b){var v=[t(f,"Plurimath")].concat(b);return function(f,b){var v=[t(f,"Math")].concat(b),y=e.$r(v);return function(t,f,b){var v=r(t,f,"Formula"),y=[v].concat(b),x=e.$r(y);return v.$$prototype.value=h,v.$attr_accessor("value","left_right_wrapper","displaystyle","input_string"),n(y[0],"MATH_ZONE_TYPES",["omml","latex","mathml","asciimath"].$freeze()),$(v,"$initialize",(function(e,t,r){var n,$,u,c,_,p=this;return n=a(arguments),$=s(n),$=i($),n.length>0&&(u=n.shift()),null==u&&(u=[]),n.length>0&&(c=n.shift()),null==c&&(c=!0),null==(_=o($,"display_style"))&&(_=!0),null==o($,"input_string")&&h,p.value=l(u["$is_a?"](x("Array")))?u:[u],l(p.value.$first()["$is_a?"](g(x("Function"),"Left")))&&(c=!1),p.left_right_wrapper=c,p.displaystyle=p.$boolean_display_style(_)}),-1),$(v,"$==",(function(e){var t,r,n;return l(t=l(r=l(n=e["$respond_to?"]("value"))?e["$respond_to?"]("left_right_wrapper"):n)?e.$value()["$=="](this.$value()):r)?e.$left_right_wrapper()["$=="](this.$left_right_wrapper()):t})),$(v,"$to_asciimath",(function(){try{return u(this.$value(),"map",[],"to_asciimath".$to_proc()).$join(" ")}catch(t){if(!e.rescue(t,[x("StandardError")]))throw t;try{return this["$parse_error!"]("asciimath")}finally{e.pop_exception(t)}}})),$(v,"$to_mathml",(function(t){var r,n=this,a=h,s=h,l=h,$=h;t=i(t),null==(r=o(t,"display_style"))&&(r=n.$displaystyle());try{return a=new Map([["xmlns","http://www.w3.org/1998/Math/MathML"],["display","block"]]),s=new Map([["displaystyle",n.$boolean_display_style(r)]]),l=x("Utility").$ox_element("math",new Map([["attributes",a]])),$=x("Utility").$ox_element("mstyle",new Map([["attributes",s]])),x("Utility").$update_nodes($,n.$mathml_content()),x("Utility").$update_nodes(l,[$]),x("Plurimath").$xml_engine().$dump(l,new Map([["indent",2]])).$gsub("&amp;","&")}catch(t){if(!e.rescue(t,[x("StandardError")]))throw t;try{return n["$parse_error!"]("mathml")}finally{e.pop_exception(t)}}}),-1),$(v,"$to_mathml_without_math_tag",(function(){var e=this;return l(e.$left_right_wrapper())?x("Utility").$update_nodes(x("Utility").$ox_element("mrow"),e.$mathml_content()):e.$mathml_content()})),$(v,"$mathml_content",(function(){return u(this.$value(),"map",[],"to_mathml_without_math_tag".$to_proc())})),$(v,"$to_latex",(function(){var t,r;try{return(t=(r=this.$value())===h||null==r?h:u(r,"map",[],"to_latex".$to_proc()))===h||null==t?h:t.$join(" ")}catch(t){if(!e.rescue(t,[x("StandardError")]))throw t;try{return this["$parse_error!"]("latex")}finally{e.pop_exception(t)}}})),$(v,"$to_html",(function(){var t,r;try{return(t=(r=this.$value())===h||null==r?h:u(r,"map",[],"to_html".$to_proc()))===h||null==t?h:t.$join(" ")}catch(t){if(!e.rescue(t,[x("StandardError")]))throw t;try{return this["$parse_error!"]("html")}finally{e.pop_exception(t)}}})),$(v,"$omml_math_attrs",(function(){return new Map([["xmlns:m","http://schemas.openxmlformats.org/officeDocument/2006/math"],["xmlns:mc","http://schemas.openxmlformats.org/markup-compatibility/2006"],["xmlns:mo","http://schemas.microsoft.com/office/mac/office/2008/main"],["xmlns:mv","urn:schemas-microsoft-com:mac:vml"],["xmlns:o","urn:schemas-microsoft-com:office:office"],["xmlns:r","http://schemas.openxmlformats.org/officeDocument/2006/relationships"],["xmlns:v","urn:schemas-microsoft-com:vml"],["xmlns:w","http://schemas.openxmlformats.org/wordprocessingml/2006/main"],["xmlns:w10","urn:schemas-microsoft-com:office:word"],["xmlns:w14","http://schemas.microsoft.com/office/word/2010/wordml"],["xmlns:w15","http://schemas.microsoft.com/office/word/2012/wordml"],["xmlns:wne","http://schemas.microsoft.com/office/word/2006/wordml"],["xmlns:wp","http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing"],["xmlns:wp14","http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing"],["xmlns:wpc","http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas"],["xmlns:wpg","http://schemas.microsoft.com/office/word/2010/wordprocessingGroup"],["xmlns:wpi","http://schemas.microsoft.com/office/word/2010/wordprocessingInk"],["xmlns:wps","http://schemas.microsoft.com/office/word/2010/wordprocessingShape"]])})),$(v,"$to_omml",(function(t){var r,n=this,a=h,s=h,l=h;t=i(t),null==(r=o(t,"display_style"))&&(r=n.$displaystyle());try{return a=x("Utility").$ox_element("oMathPara",new Map([["attributes",n.$omml_math_attrs()],["namespace","m"]])),s=x("Utility").$ox_element("oMath",new Map([["namespace","m"]])),l=n.$omml_content(n.$boolean_display_style(r)),a["$<<"](x("Utility").$update_nodes(s,l)),x("Plurimath").$xml_engine().$dump(a,new Map([["indent",2]])).$gsub("&amp;","&").$lstrip()}catch(t){if(!e.rescue(t,[x("StandardError")]))throw t;try{return n["$parse_error!"]("omml")}finally{e.pop_exception(t)}}}),-1),$(v,"$omml_content",(function(e){var t;return(t=this.$value())===h||null==t?h:u(t,"map",[],(function(t){return null==t&&(t=h),t.$insert_t_tag(e)}))})),$(v,"$to_omml_without_math_tag",(function(e){return this.$omml_content(e)})),$(v,"$to_display",(function(e){var t,r=this;return null==e&&(e=h),l(x("MATH_ZONE_TYPES")["$include?"](e.$downcase().$to_sym()))?("|_ Math zone\n"+(c("asciimath",t=e)?' |_ "'+r.$to_asciimath()+'"\n'+r.$to_asciimath_math_zone(" ").$join():c("latex",t)?' |_ "'+r.$to_latex()+'"\n'+r.$to_latex_math_zone(" ").$join():c("mathml",t)?' |_ "'+r.$to_mathml().$gsub(_(/\n\s*/u,null,""),"")+'"\n'+r.$to_mathml_math_zone(" ").$join():c("omml",t)?' |_ "'+r.$to_omml().$gsub(_(/\n\s*/u,null,""),"")+'"\n'+r.$to_omml_math_zone(" ",new Map([["display_style",r.$displaystyle()]])).$join():h)+"\n").$sub(_(/\n$/m,null,""),""):r["$type_error!"]()}),-1),$(v,"$to_asciimath_math_zone",(function(e,t,r){var n=this;return null==e&&(e=""),null==t&&(t=!1),null==r&&(r=!0),u(n.$filtered_values(n.$value()).$map(),"with_index",[1],(function n(a,s){var i=null==n.$$s?this:n.$$s;return null==i.values&&(i.values=h),null==a&&(a=h),null==s&&(s=h),t=s["$=="](i.values.$length()),a.$to_asciimath_math_zone(i.$new_space(e,r),t,r)}),{$$s:n})}),-1),$(v,"$to_latex_math_zone",(function(e,t,r){var n=this;return null==e&&(e=""),null==t&&(t=!1),null==r&&(r=!0),u(n.$filtered_values(n.$value()).$map(),"with_index",[1],(function n(a,s){var i=null==n.$$s?this:n.$$s;return null==i.values&&(i.values=h),null==a&&(a=h),null==s&&(s=h),t=s["$=="](i.values.$length()),a.$to_latex_math_zone(i.$new_space(e,r),t,r)}),{$$s:n})}),-1),$(v,"$to_mathml_math_zone",(function(e,t,r){var n=this;return null==e&&(e=""),null==t&&(t=!1),null==r&&(r=!0),u(n.$filtered_values(n.$value()).$map(),"with_index",[1],(function n(a,s){var i=null==n.$$s?this:n.$$s;return null==i.values&&(i.values=h),null==a&&(a=h),null==s&&(s=h),t=s["$=="](i.values.$length()),a.$to_mathml_math_zone(i.$new_space(e,r),t,r)}),{$$s:n})}),-1),$(v,"$to_omml_math_zone",(function(e,t,r,n){var o,l,$,c,_,m,d=this;return o=a(arguments),l=s(o),l=i(l),o.length>0&&($=o.shift()),null==$&&($=""),o.length>0&&(c=o.shift()),null==c&&(c=!1),o.length>0&&(_=o.shift()),null==_&&(_=!0),m=p(l,"display_style"),u(d.$filtered_values(d.$value()).$map(),"with_index",[1],(function e(t,r){var n=null==e.$$s?this:e.$$s;return null==n.values&&(n.values=h),null==t&&(t=h),null==r&&(r=h),c=r["$=="](n.values.$length()),t.$to_omml_math_zone(n.$new_space($,_),c,_,new Map([["display_style",m]]))}),{$$s:d})}),-2),$(v,"$extract_class_from_text",(function(){var e,t,r=this;return!(!l(m(r.$value().$length(),2))||!l((t=r.$value(),e=t===h||null==t?h:t.$first(),e===h||null==e?h:e["$is_a?"](g(x("Function"),"Text")))))&&r.$value().$first().$parameter_one()})),$(v,"$nary_attr_value",(function(){return this.$value().$first().$nary_attr_value()})),$(v,"$validate_function_formula",(function(){var e;return l(e=this.$value()["$none?"](g(x("Function"),"Left")))?e:this.$value()["$none?"](g(x("Function"),"Right"))})),v.$protected(),$(v,"$boolean_display_style",(function(e){return null==e&&(e=this.$displaystyle()),x("YAML").$load(e.$to_s())}),-1),$(v,"$new_space",(function(e,t){var r=this;return l(u(r.$value(),"any?",[],(function(e){return null==e&&(e=h),e.$class_name()["$=="]("left")})))&&l(u(r.$value(),"any?",[],(function(e){return null==e&&(e=h),e.$class_name()["$=="]("right")})))?e:l(t)&&l(r["$wrapable?"](e))?d(e,"|_ "):e})),$(v,"$wrapable?",(function(e){var t;return l(t=this.$left_right_wrapper())?e["$end_with?"]("|_ ")["$!"]():t})),$(v,"$parse_error!",(function(e){return x("Math")["$parse_error!"](this.$input_string(),e)}))}(v[0],y("Core"),v)}(v[0],v)}(f[0],f)},Opal.modules["parslet/expression/treetop"]=function(e){var t=e.klass,r=e.send,n=e.def,a=e.eqeq,s=e.truthy,i=e.to_a,o=[],l=e.$r(o),$=e.nil,u=e.$$$;return e.add_stubs("root,rule,alternatives,as,>>,simple,repeat,spaced,occurrence,|,atom,repetition_spec,expression,dot,string,char_class,str,any,absent?,space?,maybe,integer,[],match,space,==,sign,new,rep,Integer,min,max,subtree,alt,sequence,s,u,m"),function(o,l,c){var _=[t(o,null,"Treetop")].concat(c),p=e.$r(_);return function(e,a){var s=t(e,a,"Parser");s.$root("expression"),r(s,"rule",["expression"],(function e(){return(null==e.$$s?this:e.$$s).$alternatives()}),{$$s:s}),r(s,"rule",["alternatives"],(function e(){var t=null==e.$$s?this:e.$$s;return t.$simple()["$>>"](t.$spaced("/")["$>>"](t.$simple()).$repeat()).$as("alt")}),{$$s:s}),r(s,"rule",["simple"],(function e(){return(null==e.$$s?this:e.$$s).$occurrence().$repeat(1).$as("seq")}),{$$s:s}),r(s,"rule",["occurrence"],(function e(){var t=null==e.$$s?this:e.$$s;return t.$atom().$as("repetition")["$>>"](t.$spaced("*").$as("sign"))["$|"](t.$atom().$as("repetition")["$>>"](t.$spaced("+").$as("sign")))["$|"](t.$atom().$as("repetition")["$>>"](t.$repetition_spec()))["$|"](t.$atom().$as("maybe")["$>>"](t.$spaced("?")))["$|"](t.$atom())}),{$$s:s}),r(s,"rule",["atom"],(function e(){var t=null==e.$$s?this:e.$$s;return t.$spaced("(")["$>>"](t.$expression().$as("unwrap"))["$>>"](t.$spaced(")"))["$|"](t.$dot())["$|"](t.$string())["$|"](t.$char_class())}),{$$s:s}),r(s,"rule",["char_class"],(function e(){var t=null==e.$$s?this:e.$$s;return t.$str("[")["$>>"](t.$str("\\")["$>>"](t.$any())["$|"](t.$str("]")["$absent?"]()["$>>"](t.$any())).$repeat(1))["$>>"](t.$str("]")).$as("match")["$>>"](t["$space?"]())}),{$$s:s}),r(s,"rule",["dot"],(function e(){return(null==e.$$s?this:e.$$s).$spaced(".").$as("any")}),{$$s:s}),r(s,"rule",["string"],(function e(){var t=null==e.$$s?this:e.$$s;return t.$str("'")["$>>"](t.$str("\\")["$>>"](t.$any())["$|"](t.$str("'")["$absent?"]()["$>>"](t.$any())).$repeat().$as("string"))["$>>"](t.$str("'"))["$>>"](t["$space?"]())}),{$$s:s}),r(s,"rule",["repetition_spec"],(function e(){var t=null==e.$$s?this:e.$$s;return t.$spaced("{")["$>>"](t.$integer().$maybe().$as("min"))["$>>"](t.$spaced(","))["$>>"](t.$integer().$maybe().$as("max"))["$>>"](t.$spaced("}"))}),{$$s:s}),r(s,"rule",["integer"],(function e(){return(null==e.$$s?this:e.$$s).$match()["$[]"]("0-9").$repeat(1)}),{$$s:s}),r(s,"rule",["space"],(function e(){return(null==e.$$s?this:e.$$s).$match(" ").$repeat(1)}),{$$s:s}),r(s,"rule",["space?"],(function e(){return(null==e.$$s?this:e.$$s).$space().$maybe()}),{$$s:s}),n(s,"$spaced",(function(e){return this.$str(e)["$>>"](this["$space?"]())}))}(_[0],u(p("Parslet"),"Parser")),function(n,o,l){var c=t(n,o,"Transform"),_=[c].concat(l),p=e.$r(_);return r(c,"rule",[new Map([["repetition",c.$simple("rep")],["sign",c.$simple("sign")]])],(function e(){var t,r=null==e.$$s?this:e.$$s;return t=a(r.$sign(),"+")?1:0,u(u(p("Parslet"),"Atoms"),"Repetition").$new(r.$rep(),t,$)}),{$$s:c}),r(c,"rule",[new Map([["repetition",c.$simple("rep")],["min",c.$simple("min")],["max",c.$simple("max")]])],(function e(){var t,r=null==e.$$s?this:e.$$s,n=$;return u(u(p("Parslet"),"Atoms"),"Repetition").$new(r.$rep(),r.$Integer(s(n=r.$min())?n:0),s(n=s(t=r.$max())?r.$Integer(r.$max()):t)?n:$)}),{$$s:c}),r(c,"rule",[new Map([["alt",c.$subtree("alt")]])],(function e(){var t=null==e.$$s?this:e.$$s;return r(u(u(p("Parslet"),"Atoms"),"Alternative"),"new",i(t.$alt()))}),{$$s:c}),r(c,"rule",[new Map([["seq",c.$sequence("s")]])],(function e(){var t=null==e.$$s?this:e.$$s;return r(u(u(p("Parslet"),"Atoms"),"Sequence"),"new",i(t.$s()))}),{$$s:c}),r(c,"rule",[new Map([["unwrap",c.$simple("u")]])],(function e(){return(null==e.$$s?this:e.$$s).$u()}),{$$s:c}),r(c,"rule",[new Map([["maybe",c.$simple("m")]])],(function(e){return null==e&&(e=$),e["$[]"]("m").$maybe()})),r(c,"rule",[new Map([["string",c.$simple("s")]])],(function e(){var t=null==e.$$s?this:e.$$s;return u(u(p("Parslet"),"Atoms"),"Str").$new(t.$s())}),{$$s:c}),r(c,"rule",[new Map([["match",c.$simple("m")]])],(function e(){var t=null==e.$$s?this:e.$$s;return u(u(p("Parslet"),"Atoms"),"Re").$new(t.$m())}),{$$s:c}),r(c,"rule",[new Map([["any",c.$simple("a")]])],(function(){return u(u(p("Parslet"),"Atoms"),"Re").$new(".")}))}(_[0],u(p("Parslet"),"Transform"),_)}(u(l("Parslet"),"Expression"),0,o)},Opal.modules["parslet/expression"]=function(e){var t=e.klass,r=e.truthy,n=e.def,a=e.rb_plus,s=e.return_ivar,i=[],o=e.$r(i),l=(e.nil,e.$$$);return e.add_stubs("include,autoload,[],transform,parse,new,apply,warn,+,inspect,raise"),function(i,o,$){var u=t(i,null,"Expression"),c=[u].concat($),_=e.$r(c);return u.$include(_("Parslet")),u.$autoload("Treetop","parslet/expression/treetop"),n(u,"$initialize",(function(e,t,n){var a,s=this;return null==t&&(t=new Map),null==n&&(n=s),s.type=r(a=t["$[]"]("type"))?a:"treetop",s.exp=e,s.parslet=s.$transform(s.$parse(e))}),-2),n(u,"$transform",(function(t){try{return l(_("Treetop"),"Transform").$new().$apply(t)}catch(r){if(!e.rescue(r,[_("StandardError")]))throw r;try{return this.$warn(a("Could not transform: ",t.$inspect())),this.$raise()}finally{e.pop_exception(r)}}})),n(u,"$parse",(function(e){return l(_("Treetop"),"Parser").$new().$parse(e)})),n(u,"$to_parslet",s("parslet"))}(o("Parslet"),0,i)},Opal.modules["parslet/slice"]=function(e){var t=e.klass,r=e.def,n=e.alias,a=e.rb_plus,s=e.truthy,i=e.return_self,o=[],l=e.$r(o),$=e.nil;return e.add_stubs("attr_reader,charpos,==,str,match,size,new,class,+,to_s,line_cache,raise,line_and_column,bytepos,to_str,to_sym,to_i,to_f,inspect,offset"),function(o,l,u){var c=t(o,null,"Slice"),_=[c].concat(u),p=e.$r(_);return c.$$prototype.position=$,c.$attr_reader("str"),c.$attr_reader("position"),c.$attr_reader("line_cache"),r(c,"$initialize",(function(e,t,r){var n=this;return null==r&&(r=$),n.position=e,n.str=t,n.line_cache=r}),-3),r(c,"$offset",(function(){return this.position.$charpos()})),r(c,"$==",(function(e){return this.$str()["$=="](e)})),r(c,"$match",(function(e){return this.$str().$match(e)})),r(c,"$size",(function(){return this.$str().$size()})),n(c,"length","size"),r(c,"$+",(function(e){var t=this;return t.$class().$new(t.position,a(t.$str(),e.$to_s()),t.$line_cache())})),r(c,"$line_and_column",(function(){var e=this;return s(e.$line_cache())||e.$raise(p("ArgumentError"),"No line cache was given, cannot infer line and column."),e.$line_cache().$line_and_column(e.position.$bytepos())})),r(c,"$to_str",(function(){return this.$str()})),n(c,"to_s","to_str"),r(c,"$to_slice",i),r(c,"$to_sym",(function(){return this.$str().$to_sym()})),r(c,"$to_i",(function(){return this.$str().$to_i()})),r(c,"$to_f",(function(){return this.$str().$to_f()})),r(c,"$inspect",(function(){return a(this.$str().$inspect(),"@"+this.$offset())}))}(l("Parslet"),0,o)},Opal.modules["parslet/cause"]=function(e){var t=e.module,r=e.klass,n=e.def,a=e.truthy,s=e.defs,i=e.send,o=e.to_ary,l=e.rb_plus,$=e.rb_lt,u=e.range,c=[],_=e.nil,p=e.$$$;return e.add_stubs("attr_reader,new,each,children,set_label,line_and_column,source,pos,+,join,map,Array,message,respond_to?,inspect,str,to_s,raise,string,tap,recursive_ascii_tree,private,append_prefix,puts,==,last,<,size,[],print"),function(c,m){var d=[t(c,"Parslet")].concat(m);return function(t,c,m){var d=r(t,null,"Cause"),f=[d].concat(m),h=e.$r(f),g=d.$$prototype;return g.children=g.context=_,n(d,"$initialize",(function(e,t,r,n){var a,s=this;return a=[e,t,r,n,_],s.message=a[0],s.source=a[1],s.pos=a[2],s.children=a[3],s.context=a[4],a})),d.$attr_reader("message"),d.$attr_reader("source"),d.$attr_reader("pos"),n(d,"$children",(function(){var e;return this.children=a(e=this.children)?e:[]})),s(d,"$format",(function(e,t,r,n){return null==n&&(n=[]),this.$new(r,e,t,n)}),-4),n(d,"$set_label",(function(e){return this.context=" when parsing "+e,i(this.$children(),"each",[],(function(t){return null==t&&(t=_),t.$set_label(e)}))})),n(d,"$to_s",(function(){var e,t,r,n,s=this;return t=s.$source().$line_and_column(s.$pos()),r=null==(e=o(t))[0]?_:e[0],n=null==e[1]?_:e[1],l(i(s.$Array(s.$message()),"map",[],(function(e){return null==e&&(e=_),a(e["$respond_to?"]("to_slice"))?e.$str().$inspect():e.$to_s()})).$join()," at line "+r+" char "+n+s.context+".")})),n(d,"$raise",(function(e){var t;return null==e&&(e=p(h("Parslet"),"ParseFailed")),t=e.$new(this.$to_s(),this),h("Kernel").$raise(t)}),-1),n(d,"$ascii_tree",(function(){return i(h("StringIO").$new(),"tap",[],(function e(t){var r=null==e.$$s?this:e.$$s;return null==t&&(t=_),r.$recursive_ascii_tree(r,t,[!0])}),{$$s:this}).$string()})),d.$private(),n(d,"$recursive_ascii_tree",(function(e,t,r){return this.$append_prefix(t,r),t.$puts(e.$to_s()),i(e.$children(),"each",[],(function n(a){var s,i=null==n.$$s?this:n.$$s;return null==a&&(a=_),s=e.$children().$last()["$=="](a),i.$recursive_ascii_tree(a,t,l(r,[s]))}),{$$s:this})})),n(d,"$append_prefix",(function(e,t){return a($(t.$size(),2))?_:(i(t["$[]"](u(1,-2,!1)),"each",[],(function(t){return null==t&&(t=_),e.$print(a(t)?" ":"| ")})),e.$print(a(t.$last())?"`- ":"|- "))}))}(d[0],0,d)}(c[0],c)},Opal.modules.strscan=function(e){var t=e.klass,r=e.def,n=e.truthy,a=e.eqeqeq,s=e.Opal,i=e.return_ivar,o=e.send,l=e.alias,$=[],u=e.nil;return e.add_stubs("attr_reader,anchor,empty?,===,to_s,coerce_to!,scan_until,length,size,rest,pos=,beginning_of_line?,get_byte,private"),function($,c,_){var p=t($,null,"StringScanner"),m=[p].concat(_),d=e.$r(m),f=p.$$prototype;return f.pos=f.string=f.working=f.matched=f.prev_pos=f.match=u,p.$attr_reader("pos","matched"),r(p,"$initialize",(function(e){var t=this;return t.string=e,t.pos=0,t.matched=u,t.working=e,t.match=[]})),p.$attr_reader("string"),r(p,"$beginning_of_line?",(function(){var e=this;return 0===e.pos||"\n"===e.string.charAt(e.pos-1)})),r(p,"$scan",(function(e){var t=this,r=(e=t.$anchor(e)).exec(t.working);return null==r?t.matched=u:(t.prev_pos=t.pos,t.pos+=r[0].length,t.working=t.working.substring(r[0].length),t.matched=r[0],t.match=r,r[0])})),r(p,"$scan_until",(function(e){var t=this;e=t.$anchor(e);for(var r=t.working,n=0;r.length!=n;++n){var a=e.exec(r.substr(n));if(null!==a){var s=n+a[0].length,i=r.substr(0,s);return t.matched=a[0],t.match=a,t.prev_pos=t.pos+n,t.pos+=s,t.working=r.substr(s),i}}return t.matched=u})),r(p,"$[]",(function(e){var t;if(n(this.match["$empty?"]()))return u;a(d("Symbol"),t=e)?e=e.$to_s():a(d("String"),t)||(e=s["$coerce_to!"](e,d("Integer"),"to_int"));var r=this.match;return e<0&&(e+=r.length),e<0||e>=r.length||null==r[e]?u:r[e]})),r(p,"$check",(function(e){var t=this,r=(e=t.$anchor(e)).exec(t.working);return t.matched=null==r?u:r[0]})),r(p,"$check_until",(function(e){var t=this,r=t.prev_pos,n=t.pos,a=t.working,s=t.$scan_until(e);return t.prev_pos=r,t.pos=n,t.working=a,s})),r(p,"$peek",(function(e){return this.working.substring(0,e)})),r(p,"$eos?",(function(){return 0===this.working.length})),r(p,"$exist?",(function(e){var t=e.exec(this.working);return null==t?u:0==t.index?0:t.index+1})),r(p,"$skip",(function(e){var t=this,r=(e=t.$anchor(e)).exec(t.working);if(null==r)return t.match=[],t.matched=u;var n=r[0],a=n.length;return t.matched=n,t.match=r,t.prev_pos=t.pos,t.pos+=a,t.working=t.working.substring(a),a})),r(p,"$skip_until",(function(e){var t=this.$scan_until(e);return t===u?u:(this.matched=t.substr(-1),t.length)})),r(p,"$get_byte",(function(){var e=this,t=u;return e.pos<e.string.length?(e.prev_pos=e.pos,e.pos+=1,t=e.matched=e.working.substring(0,1),e.working=e.working.substring(1)):e.matched=u,t})),r(p,"$match?",(function(e){var t=this,r=(e=t.$anchor(e)).exec(t.working);return null==r?u:(t.prev_pos=t.pos,r[0].length)})),r(p,"$pos=",(function(e){var t=this;return e<0&&(e+=t.string.$length()),t.pos=e,t.working=t.string.slice(e)})),r(p,"$matched_size",(function(){return this.matched===u?u:this.matched.length})),r(p,"$post_match",(function(){var e=this;return e.matched===u?u:e.string.substr(e.pos)})),r(p,"$pre_match",(function(){var e=this;return e.matched===u?u:e.string.substr(0,e.prev_pos)})),r(p,"$reset",(function(){var e=this;return e.working=e.string,e.matched=u,e.pos=0})),r(p,"$rest",i("working")),r(p,"$rest?",(function(){return 0!==this.working.length})),r(p,"$rest_size",(function(){return this.$rest().$size()})),r(p,"$terminate",(function(){var e,t=this;return t.match=u,e=[t.string.$length()],o(t,"pos=",e),e[e.length-1]})),r(p,"$unscan",(function(){var e=this;return e.pos=e.prev_pos,e.prev_pos=u,e.match=u,e})),l(p,"bol?","beginning_of_line?"),l(p,"getch","get_byte"),p.$private(),r(p,"$anchor",(function(e){var t=e.toString().match(/\/([^\/]+)$/);return t=t?t[1]:void 0,new RegExp("^(?:"+e.source+")",t)}))}($[0],0,$)},Opal.modules["parslet/position"]=function(e){var t=e.klass,r=e.def,n=[],a=e.$r(n),s=e.nil;return e.add_stubs("attr_reader,include,size,byteslice,<=>,bytepos"),function(n,a,i){var o=t(n,null,"Position"),l=[o].concat(i),$=e.$r(l),u=o.$$prototype;return u.string=u.bytepos=s,o.$attr_reader("bytepos"),o.$include($("Comparable")),r(o,"$initialize",(function(e,t){return this.string=e,this.bytepos=t})),r(o,"$charpos",(function(){return this.string.$byteslice(0,this.bytepos).$size()})),r(o,"$<=>",(function(e){return this.$bytepos()["$<=>"](e.$bytepos())}))}(a("Parslet"),0,n)},Opal.modules["parslet/source/line_cache"]=function(e){var t=e.klass,r=e.def,n=e.truthy,a=e.rb_gt,s=e.rb_minus,i=e.rb_plus,o=e.rb_lt,l=e.module,$=e.rb_divide,u=e.send,c=e.rb_le,_=e.thrower,p=[],m=e.$r(p),d=e.nil;return e.add_stubs("extend,respond_to?,bytepos,lbound,>,[],-,+,last,size,new,exist?,<,pos=,skip_until,pos,<<,floor,/,empty?,loop,find_mid,<="),function(p,m,f){var h=[t(p,null,"Source")].concat(f);return function(l,$,u){var c=t(l,null,"LineCache"),_=[c].concat(u),p=e.$r(_),m=c.$$prototype;m.line_ends=m.last_line_end=d,r(c,"$initialize",(function(){var e=this;return e.line_ends=[],e.line_ends.$extend(p("RangeSearch")),e.last_line_end=d})),r(c,"$line_and_column",(function(e){var t,r=this,o=d,l=d,$=d;return n(e["$respond_to?"]("bytepos"))&&(e=e.$bytepos()),t=r.line_ends.$lbound(e),n(t)?(o=n(l=n($=a(t,0))?r.line_ends["$[]"](s(t,1)):$)?l:0,[i(t,1),i(s(e,o),1)]):(o=n(l=r.line_ends.$last())?l:0,[i(r.line_ends.$size(),1),i(s(e,o),1)])})),r(c,"$scan_for_line_endings",(function(e,t){var r=this;if(!n(t))return d;if(t=p("StringScanner").$new(t),!n(t["$exist?"](/\n/)))return d;for(n(r.last_line_end)&&n(o(e,r.last_line_end))&&t["$pos="](s(r.last_line_end,e));n(t.$skip_until(/\n/));)r.last_line_end=i(e,t.$pos()),r.line_ends["$<<"](r.last_line_end)}))}(h[0],0,h),function(e){var t=l(e,"RangeSearch");return r(t,"$find_mid",(function(e,t){return i(e,$(s(t,e),2).$floor())})),r(t,"$lbound",(function(e){try{var t=_("return"),r=this,o=d,l=d;return n(r["$empty?"]())?d:n(a(r.$last(),e))?(o=0,l=s(r.$size(),1),u(r,"loop",[],(function r(){var s,$=null==r.$$s?this:r.$$s;if(s=$.$find_mid(o,l),n(a($["$[]"](s),e))?l=s:o=i(s,1),!n(c(l,o)))return d;t.$throw(l,r.$$is_lambda)}),{$$s:r,$$ret:t})):d}catch(e){if(e===t)return e.$v;throw e}finally{t.is_orphan=!0}}))}(h[0])}(m("Parslet"),0,p)},Opal.modules["parslet/source"]=function(e){var t=e.module,r=e.klass,n=e.truthy,a=e.send,s=e.regexp,i=e.def,o=e.alias,l=e.rb_minus,$=e.top,u=[],c=e.nil,_=e.$$$;return e.add_stubs("require,respond_to?,raise,new,[]=,scan_for_line_endings,match?,matches?,pos,scan,[],rest_size,check_until,escape,chars_left,-,size,string,pos=,line_and_column,bytepos"),$.$require("stringio"),$.$require("strscan"),$.$require("parslet/position"),$.$require("parslet/source/line_cache"),function($,u){var p=[t($,"Parslet")].concat(u);return function(t,$,u){var p=r(t,null,"Source"),m=[p].concat(u),d=e.$r(m),f=p.$$prototype;return f.line_cache=f.str=f.re_cache=c,i(p,"$initialize",(function(e){var t=this;return n(e["$respond_to?"]("to_str"))||t.$raise(d("ArgumentError"),"Must construct Source with a string like object."),t.str=d("StringScanner").$new(e),t.re_cache=a(d("Hash"),"new",[],(function(e,t){var r;return null==e&&(e=c),null==t&&(t=c),r=[t,s(["(.|$){",t,"}"],"m")],a(e,"[]=",r),r[r.length-1]})),t.line_cache=d("LineCache").$new(),t.line_cache.$scan_for_line_endings(0,e)})),i(p,"$matches?",(function(e){return this.str["$match?"](e)})),o(p,"match","matches?"),i(p,"$consume",(function(e){var t,r,n=this;return t=n.$pos(),r=n.str.$scan(n.re_cache["$[]"](e)),_(d("Parslet"),"Slice").$new(t,r,n.line_cache)})),i(p,"$chars_left",(function(){return this.str.$rest_size()})),i(p,"$chars_until",(function(e){var t=c;return t=this.str.$check_until(d("Regexp").$new(d("Regexp").$escape(e))),n(t)?l(t.$size(),e.$size()):this.$chars_left()})),i(p,"$pos",(function(){return d("Position").$new(this.str.$string(),this.str.$pos())})),i(p,"$bytepos",(function(){return this.str.$pos()})),i(p,"$bytepos=",(function(t){var r;try{return r=[t],a(this.str,"pos=",r),r[r.length-1]}catch(t){if(!e.rescue(t,[d("RangeError")]))throw t;try{return c}finally{e.pop_exception(t)}}})),i(p,"$line_and_column",(function(e){var t;return null==e&&(e=c),this.line_cache.$line_and_column(n(t=e)?t:this.$bytepos())}),-1)}(p[0],0,p)}(u[0],u)},Opal.modules["parslet/atoms/can_flatten"]=function(e){var t=e.module,r=e.truthy,n=e.to_ary,a=e.slice,s=e.send,i=e.def,o=e.range,l=e.eqeq,$=e.rb_plus,u=[],c=e.$r(u),_=e.nil;return e.add_stubs("instance_of?,map,flatten,flatten_sequence,first,flatten_repetition,fail,inspect,empty?,inject,[],to_proc,foldl,compact,merge_fold,==,class,is_a?,warn_about_duplicate_keys,merge,+,respond_to?,any?,select,&,keys,warn"),function(u,c){var p=[t(u,"Atoms")].concat(c);return function(u,c){var p=t(u,"CanFlatten"),m=[p].concat(c),d=e.$r(m);return i(p,"$flatten",(function(e,t){var i,o,l=this,$=_,u=_,c=_;if(null==t&&(t=!1),!r(e["$instance_of?"](d("Array"))))return e;switch($=null==(i=n(e))[0]?_:i[0],o=a(i,1),u=s(o,"map",[],(function e(t){return null==t&&(t=_),(null==e.$$s?this:e.$$s).$flatten(t)}),{$$s:l}),$.valueOf()){case"sequence":return l.$flatten_sequence(u);case"maybe":return r(t)?u.$first():r(c=u.$first())?c:"";case"repetition":return l.$flatten_repetition(u,t)}return l.$fail("BUG: Unknown tag "+$.$inspect()+".")}),-2),i(p,"$foldl",(function e(t){var n=e.$$p||_;return e.$$p=null,r(t["$empty?"]())?"":s(t["$[]"](o(1,-1,!1)),"inject",[t.$first()],n.$to_proc())})),i(p,"$flatten_sequence",(function(e){return s(this,"foldl",[e.$compact()],(function e(t,r){return null==t&&(t=_),null==r&&(r=_),(null==e.$$s?this:e.$$s).$merge_fold(t,r)}),{$$s:this})})),i(p,"$merge_fold",(function(e,t){var n=this;if(l(e.$class(),t.$class()))return r(e["$is_a?"](d("Hash")))?(n.$warn_about_duplicate_keys(e,t),e.$merge(t)):$(e,t);if(r(e["$respond_to?"]("to_str"))&&r(t["$respond_to?"]("to_str"))){if(r(t["$respond_to?"]("to_slice")))return t;if(r(e["$respond_to?"]("to_slice")))return e;n.$fail("NOTREACHED: What other stringlike classes are there?")}return r(t["$respond_to?"]("to_str"))?e:r(e["$respond_to?"]("to_str"))?t:l(t.$class(),d("Hash"))?$(e,[t]):l(e.$class(),d("Hash"))?$([e],t):n.$fail("Unhandled case when foldr'ing sequence.")})),i(p,"$flatten_repetition",(function(e,t){return r(s(e,"any?",[],(function(e){return null==e&&(e=_),e["$instance_of?"](d("Hash"))})))?s(e,"select",[],(function(e){return null==e&&(e=_),e["$instance_of?"](d("Hash"))})):r(s(e,"any?",[],(function(e){return null==e&&(e=_),e["$instance_of?"](d("Array"))})))?s(e,"select",[],(function(e){return null==e&&(e=_),e["$instance_of?"](d("Array"))})).$flatten(1):r(t)&&r(e["$empty?"]())?[]:s(this,"foldl",[e.$compact()],(function(e,t){return null==e&&(e=_),null==t&&(t=_),$(e,t)}))})),i(p,"$warn_about_duplicate_keys",(function(e,t){var n=_;return n=e.$keys()["$&"](t.$keys()),r(n["$empty?"]())?_:this.$warn($("Duplicate subtrees while merging result of \n "+this.$inspect()+"\nonly the values"," of the latter will be kept. (keys: "+n.$inspect()+")"))}))}(p[0],p)}(c("Parslet"),u)},Opal.modules["parslet/atoms/context"]=function(e){var t=e.module,r=e.klass,n=e.send,a=e.def,s=e.truthy,i=e.rb_minus,o=e.to_ary,l=e.rb_plus,$=e.slice,u=e.to_a,c=[],_=e.$r(c),p=e.nil,m=e.$$$;return e.add_stubs("new,[]=,bytepos,lookup,try,cached?,set,-,bytepos=,+,err_at,err,succ,attr_reader,push,captures,pop,private,[],object_id"),function(c,_){var d=[t(c,"Atoms")].concat(_);return function(t,c,_){var d=r(t,null,"Context"),f=[d].concat(_),h=e.$r(f),g=d.$$prototype;return g.reporter=g.cache=p,a(d,"$initialize",(function(e){var t=this;return null==e&&(e=m(m(h("Parslet"),"ErrorReporter"),"Tree").$new()),t.cache=n(h("Hash"),"new",[],(function(e,t){var r;return null==e&&(e=p),null==t&&(t=p),r=[t,new Map],n(e,"[]=",r),r[r.length-1]})),t.reporter=e,t.captures=m(h("Parslet"),"Scope").$new()}),-1),a(d,"$try_with_cache",(function(e,t,r){var n,a,$,u,c=this,_=p;return a=t.$bytepos(),s($=c.$lookup(e,a))?(_=null==(n=o($))[0]?p:n[0],u=null==n[1]?p:n[1],t["$bytepos="](l(a,u)),_):(_=e.$try(t,c,r),s(e["$cached?"]())&&c.$set(e,a,[_,i(t.$bytepos(),a)]),_)})),a(d,"$err_at",(function(e){var t;return t=$(arguments),s(this.reporter)?[!1,n(this.reporter,"err_at",u(t))]:[!1,p]}),-1),a(d,"$err",(function(e){var t;return t=$(arguments),s(this.reporter)?[!1,n(this.reporter,"err",u(t))]:[!1,p]}),-1),a(d,"$succ",(function(e){var t;return t=$(arguments),s(this.reporter)?[!0,n(this.reporter,"succ",u(t))]:[!0,p]}),-1),d.$attr_reader("captures"),a(d,"$scope",(function t(){var r=t.$$p||p,n=this;return t.$$p=null,function(){try{return n.$captures().$push(),e.yieldX(r,[])}finally{n.$captures().$pop()}}()})),d.$private(),a(d,"$lookup",(function(e,t){return this.cache["$[]"](t)["$[]"](e.$object_id())})),a(d,"$set",(function(e,t,r){var a;return a=[e.$object_id(),r],n(this.cache["$[]"](t),"[]=",a),a[a.length-1]}))}(d[0],0,d)}(_("Parslet"),c)},Opal.modules["parslet/atoms/dsl"]=function(e){var t=e.module,r=e.def,n=[],a=e.$r(n),s=e.nil,i=e.$$$;return e.add_stubs("new"),function(n,a){var o=t(n,"DSL"),l=[o].concat(a),$=e.$r(l);return r(o,"$repeat",(function(e,t){return null==e&&(e=0),null==t&&(t=s),i(i($("Parslet"),"Atoms"),"Repetition").$new(this,e,t)}),-1),r(o,"$maybe",(function(){return i(i($("Parslet"),"Atoms"),"Repetition").$new(this,0,1,"maybe")})),r(o,"$ignore",(function(){return i(i($("Parslet"),"Atoms"),"Ignored").$new(this)})),r(o,"$>>",(function(e){return i(i($("Parslet"),"Atoms"),"Sequence").$new(this,e)})),r(o,"$|",(function(e){return i(i($("Parslet"),"Atoms"),"Alternative").$new(this,e)})),r(o,"$absent?",(function(){return i(i($("Parslet"),"Atoms"),"Lookahead").$new(this,!1)})),r(o,"$present?",(function(){return i(i($("Parslet"),"Atoms"),"Lookahead").$new(this,!0)})),r(o,"$as",(function(e){return i(i($("Parslet"),"Atoms"),"Named").$new(this,e)})),r(o,"$capture",(function(e){return i(i($("Parslet"),"Atoms"),"Capture").$new(this,e)}))}(i(a("Parslet"),"Atoms"),n)},Opal.modules["parslet/atoms/base"]=function(e){var t=e.klass,r=e.truthy,n=e.to_ary,a=e.rb_gt,s=e.not,i=e.def,o=e.return_val,l=e.send,$=e.defs,u=e.rb_lt,c=[],_=e.$r(c),p=e.nil,m=e.$$$;return e.add_stubs("include,attr_accessor,respond_to?,new,setup_and_apply,!,[],bytepos=,fail,raise,>,chars_left,flatten,apply,bytepos,try_with_cache,succ,pos,consume,err_at,inspect,to_s,define_method,precedence,label,to_s_inner,<,private"),function(c,_,d){var f=t(c,null,"Base"),h=[f].concat(d),g=e.$r(h);return f.$include(m(m(g("Parslet"),"Atoms"),"Precedence")),f.$include(m(m(g("Parslet"),"Atoms"),"DSL")),f.$include(m(m(g("Parslet"),"Atoms"),"CanFlatten")),f.$attr_accessor("label"),i(f,"$parse",(function(e,t){var i,o,l=this,$=p,u=p,c=p,_=p,d=p;return null==t&&(t=new Map),$=r(e["$respond_to?"]("line_and_column"))?e:m(g("Parslet"),"Source").$new(e),o=l.$setup_and_apply($,p,t["$[]"]("prefix")["$!"]()),u=null==(i=n(o))[0]?p:i[0],c=null==i[1]?p:i[1],r(u)||(_=r(d=t["$[]"]("reporter"))?d:m(m(g("Parslet"),"ErrorReporter"),"Tree").$new(),$["$bytepos="](0),o=l.$setup_and_apply($,_,t["$[]"]("prefix")["$!"]()),u=null==(i=n(o))[0]?p:i[0],c=null==i[1]?p:i[1],r(u)&&l.$fail("Assertion failed: success was true when parsing with reporter"),c.$raise(),l.$fail("NEVER REACHED")),s(t["$[]"]("prefix"))&&r(a($.$chars_left(),0))&&l.$fail("BUG: New error strategy should not reach this point."),l.$flatten(c)}),-2),i(f,"$setup_and_apply",(function(e,t,r){var n;return n=m(m(g("Parslet"),"Atoms"),"Context").$new(t),this.$apply(e,n,r)})),i(f,"$apply",(function(e,t,s){var i,o,l,$,u,c=p,_=p;return null==s&&(s=!1),l=e.$bytepos(),o=$=t.$try_with_cache(this,e,s),u=null==(i=n(o))[0]?p:i[0],null==i[1]?p:i[1],r(u)?(t.$succ(e),r(s)&&r(a(e.$chars_left(),0))?(c=e.$pos(),_=e.$consume(10),e["$bytepos="](l),t.$err_at(this,e,"Don't know what to do with "+_.$to_s().$inspect(),c)):$):(e["$bytepos="](l),$)}),-3),i(f,"$try",(function(e,t,r){return this.$raise(g("NotImplementedError"),"Atoms::Base doesn't have behaviour, please implement #try(source, context).")})),i(f,"$cached?",o(!0)),$(f,"$precedence",(function(e){return l(this,"define_method",["precedence"],(function(){return e}))})),f.$precedence(g("BASE")),i(f,"$to_s",(function(e){var t,n,a=this;return null==e&&(e=g("OUTER")),t=r(n=a.$label())?n:a.$to_s_inner(a.$precedence()),r(u(e,a.$precedence()))?"("+t+")":t}),-1),i(f,"$inspect",(function(){return this.$to_s(g("OUTER"))})),f.$private(),i(f,"$succ",(function(e){return[!0,e]}))}(m(_("Parslet"),"Atoms"),0,c)},Opal.modules["parslet/atoms/ignored"]=function(e){var t=e.klass,r=e.send2,n=e.find_super,a=e.def,s=e.to_ary,i=e.truthy,o=e.$r([]),l=e.nil,$=e.$$$;return e.add_stubs("attr_reader,apply,parslet,succ,to_s"),function(e,o){var $=t(e,o,"Ignored");return $.$attr_reader("parslet"),a($,"$initialize",(function e(t){var a=this;return e.$$p=null,r(a,n(a,"initialize",e,!1,!0),"initialize",[],null),a.parslet=t})),a($,"$apply",(function(e,t,r){var n,a,o,$;return a=o=this.$parslet().$apply(e,t,r),$=null==(n=s(a))[0]?l:n[0],null==n[1]?l:n[1],i($)?this.$succ(l):o})),a($,"$to_s_inner",(function(e){return"ignored("+this.$parslet().$to_s(e)+")"}))}($(o("Parslet"),"Atoms"),$($(o("Parslet"),"Atoms"),"Base"))},Opal.modules["parslet/atoms/named"]=function(e){var t=e.klass,r=e.send2,n=e.find_super,a=e.def,s=e.to_ary,i=e.truthy,o=e.hash_rehash,l=e.$r([]),$=e.nil,u=e.$$$;return e.add_stubs("attr_reader,apply,parslet,succ,produce_return_value,name,to_s,private,flatten"),function(e,l){var u=t(e,l,"Named");return u.$attr_reader("parslet","name"),a(u,"$initialize",(function e(t,a){var s,i=this;return e.$$p=null,r(i,n(i,"initialize",e,!1,!0),"initialize",[],null),s=[t,a],i.parslet=s[0],i.name=s[1],s})),a(u,"$apply",(function(e,t,r){var n,a,o,l,u,c=this;return a=o=c.$parslet().$apply(e,t,r),l=null==(n=s(a))[0]?$:n[0],u=null==n[1]?$:n[1],i(l)?c.$succ(c.$produce_return_value(u)):o})),a(u,"$to_s_inner",(function(e){return this.$name()+":"+this.$parslet().$to_s(e)})),u.$private(),a(u,"$produce_return_value",(function(e){return o(new Map([[this.$name(),this.$flatten(e,!0)]]))}))}(u(l("Parslet"),"Atoms"),u(u(l("Parslet"),"Atoms"),"Base"))},Opal.modules["parslet/atoms/lookahead"]=function(e){var t=e.klass,r=e.send2,n=e.find_super,a=e.def,s=e.truthy,i=e.to_ary,o=e.send,l=e.thrower,$=[],u=e.$r($),c=e.nil,_=e.$$$;return e.add_stubs("attr_reader,bound_parslet,bytepos,pos,apply,positive,succ,err_at,[],error_msgs,bytepos=,precedence,to_s"),function($,u,_){var p=t($,u,"Lookahead"),m=[p].concat(_),d=e.$r(m),f=p.$$prototype;return f.error_msgs=f.char=c,p.$attr_reader("positive"),p.$attr_reader("bound_parslet"),a(p,"$initialize",(function e(t,a){var s=this;return e.$$p=null,null==a&&(a=!0),r(s,n(s,"initialize",e,!1,!0),"initialize",[],null),s.positive=a,s.bound_parslet=t}),-2),a(p,"$error_msgs",(function(){var e,t=this;return t.error_msgs=s(e=t.error_msgs)?e:new Map([["positive",["Input should start with ",t.$bound_parslet()]],["negative",["Input should not start with ",t.$bound_parslet()]]])})),a(p,"$try",(function e(t,r,n){try{var a,$,u=l("return"),_=this,p=c,m=c,d=c;return function(){try{p=t.$bytepos(),m=t.$pos(),$=_.$bound_parslet().$apply(t,r,n),a=i($),d=null==a[0]?c:a[0],null==a[1]?c:a[1],s(_.$positive())?(s(d)&&u.$throw(_.$succ(c),e.$$is_lambda),u.$throw(r.$err_at(_,t,_.$error_msgs()["$[]"]("positive"),m),e.$$is_lambda)):(s(d)||u.$throw(_.$succ(c),e.$$is_lambda),u.$throw(r.$err_at(_,t,_.$error_msgs()["$[]"]("negative"),m),e.$$is_lambda))}finally{o(t,"bytepos=",a=[p]),a[a.length-1]}}()}catch(e){if(e===u)return e.$v;throw e}finally{u.is_orphan=!0}})),p.$precedence(d("LOOKAHEAD")),a(p,"$to_s_inner",(function(e){var t=this;return t.char=s(t.$positive())?"&":"!",""+t.char+t.$bound_parslet().$to_s(e)}))}(_(u("Parslet"),"Atoms"),_(_(u("Parslet"),"Atoms"),"Base"),$)},Opal.modules["parslet/atoms/alternative"]=function(e){var t=e.klass,r=e.slice,n=e.send2,a=e.find_super,s=e.def,i=e.send,o=e.to_a,l=e.rb_plus,$=e.truthy,u=e.to_ary,c=e.thrower,_=[],p=e.$r(_),m=e.nil,d=e.$$$;return e.add_stubs("attr_reader,new,class,+,inspect,alternatives,map,apply,err,error_msg,precedence,join,to_s"),function(_,p,d){var f=t(_,p,"Alternative"),h=[f].concat(d),g=e.$r(h),b=f.$$prototype;return b.alternatives=b.error_msg=m,f.$attr_reader("alternatives"),s(f,"$initialize",(function e(t){var s,i=this;return e.$$p=null,s=r(arguments),n(i,a(i,"initialize",e,!1,!0),"initialize",[],null),i.alternatives=s}),-1),s(f,"$|",(function(e){return i(this.$class(),"new",o(l(this.alternatives,[e])))})),s(f,"$error_msg",(function(){var e,t=this;return t.error_msg=$(e=t.error_msg)?e:"Expected one of "+t.$alternatives().$inspect()})),s(f,"$try",(function(e,t,r){try{var n,a=c("return"),s=this;return n=i(s.$alternatives(),"map",[],(function n(s){var i,o,l,c,_;return null==s&&(s=m),o=l=s.$apply(e,t,r),c=null==(i=u(o))[0]?m:i[0],_=null==i[1]?m:i[1],$(c)&&a.$throw(l,n.$$is_lambda),_}),{$$ret:a}),t.$err(s,e,s.$error_msg(),n)}catch(e){if(e===a)return e.$v;throw e}finally{a.is_orphan=!0}})),f.$precedence(g("ALTERNATE")),s(f,"$to_s_inner",(function(e){return i(this.$alternatives(),"map",[],(function(t){return null==t&&(t=m),t.$to_s(e)})).$join(" / ")}))}(d(p("Parslet"),"Atoms"),d(d(p("Parslet"),"Atoms"),"Base"),_)},Opal.modules["parslet/atoms/sequence"]=function(e){var t=e.klass,r=e.slice,n=e.send2,a=e.find_super,s=e.def,i=e.truthy,o=e.send,l=e.to_a,$=e.rb_plus,u=e.rb_minus,c=e.to_ary,_=e.thrower,p=[],m=e.$r(p),d=e.nil,f=e.$$$;return e.add_stubs("attr_reader,inspect,new,class,+,size,parslets,[]=,each_with_index,==,-,apply,err,[],error_msgs,succ,precedence,join,map,to_s"),function(p,m,f){var h=t(p,m,"Sequence"),g=[h].concat(f),b=e.$r(g),v=h.$$prototype;return v.error_msgs=v.parslets=d,h.$attr_reader("parslets"),s(h,"$initialize",(function e(t){var s,i=this;return e.$$p=null,s=r(arguments),n(i,a(i,"initialize",e,!1,!0),"initialize",[],null),i.parslets=s}),-1),s(h,"$error_msgs",(function(){var e,t=this;return t.error_msgs=i(e=t.error_msgs)?e:new Map([["failed","Failed to match sequence ("+t.$inspect()+")"]])})),s(h,"$>>",(function(e){return o(this.$class(),"new",l($(this.parslets,[e])))})),s(h,"$try",(function(e,t,r){try{var n=_("return"),a=this,s=d;return(s=b("Array").$new($(a.$parslets().$size(),1)))["$[]="](0,"sequence"),o(a.$parslets(),"each_with_index",[],(function a(l,_){var p,m,f,h,g,b,v=null==a.$$s?this:a.$$s;return null==l&&(l=d),null==_&&(_=d),f=i(h=r)?_["$=="](u(v.$parslets().$size(),1)):h,m=l.$apply(e,t,f),g=null==(p=c(m))[0]?d:p[0],b=null==p[1]?d:p[1],i(g)||n.$throw(t.$err(v,e,v.$error_msgs()["$[]"]("failed"),[b]),a.$$is_lambda),p=[$(_,1),b],o(s,"[]=",p),p[p.length-1]}),{$$s:a,$$ret:n}),a.$succ(s)}catch(e){if(e===n)return e.$v;throw e}finally{n.is_orphan=!0}})),h.$precedence(b("SEQUENCE")),s(h,"$to_s_inner",(function(e){return o(this.$parslets(),"map",[],(function(t){return null==t&&(t=d),t.$to_s(e)})).$join(" ")}))}(f(m("Parslet"),"Atoms"),f(f(m("Parslet"),"Atoms"),"Base"),p)},Opal.modules["parslet/atoms/repetition"]=function(e){var t=e.klass,r=e.send2,n=e.find_super,a=e.eqeq,s=e.def,i=e.truthy,o=e.send,l=e.to_ary,$=e.rb_plus,u=e.rb_ge,c=e.thrower,_=e.rb_lt,p=e.rb_gt,m=[],d=e.$r(m),f=e.nil,h=e.$$$;return e.add_stubs("attr_reader,==,raise,inspect,min,parslet,pos,loop,apply,+,<<,>=,max,succ,<,err_at,[],error_msgs,>,chars_left,err,precedence,to_s"),function(m,d,h){var g=t(m,d,"Repetition"),b=[g].concat(h),v=e.$r(b),y=g.$$prototype;return y.error_msgs=y.tag=f,g.$attr_reader("min","max","parslet"),s(g,"$initialize",(function e(t,s,i,o){var l=this;return e.$$p=null,null==o&&(o="repetition"),r(l,n(l,"initialize",e,!1,!0),"initialize",[],null),a(i,0)&&l.$raise(v("ArgumentError"),"Asking for zero repetitions of a parslet. ("+t.$inspect()+" repeating "+s+","+i+")"),l.parslet=t,l.min=s,l.max=i,l.tag=o}),-4),s(g,"$error_msgs",(function(){var e,t=this;return t.error_msgs=i(e=t.error_msgs)?e:new Map([["minrep","Expected at least "+t.$min()+" of "+t.$parslet().$inspect()],["unconsumed","Extra input after last repetition"]])})),s(g,"$try",(function(e,t,r){try{var n,a=c("return"),s=this,m=f,d=f,h=f;return m=0,d=[s.tag],n=e.$pos(),h=f,function(){try{var r=c("break");return o(s,"loop",[],(function n(){var s,o,c,_,p=null==n.$$s?this:n.$$s;if(o=p.$parslet().$apply(e,t,!1),c=null==(s=l(o))[0]?f:s[0],_=null==s[1]?f:s[1],h=_,i(c)||r.$throw(f,n.$$is_lambda),m=$(m,1),d["$<<"](_),!i(p.$max())||!i(u(m,p.$max())))return f;a.$throw(p.$succ(d),n.$$is_lambda)}),{$$s:s,$$ret:a})}catch(e){if(e===r)return e.$v;throw e}finally{r.is_orphan=!0}}(),i(_(m,s.$min()))?t.$err_at(s,e,s.$error_msgs()["$[]"]("minrep"),n,[h]):i(r)&&i(p(e.$chars_left(),0))?t.$err(s,e,s.$error_msgs()["$[]"]("unconsumed"),[h]):s.$succ(d)}catch(e){if(e===a)return e.$v;throw e}finally{a.is_orphan=!0}})),g.$precedence(v("REPETITION")),s(g,"$to_s_inner",(function(e){var t=this,r=f;return r="{"+t.$min()+", "+t.$max()+"}",a(t.$min(),0)&&a(t.$max(),1)&&(r="?"),$(t.$parslet().$to_s(e),r)}))}(h(d("Parslet"),"Atoms"),h(h(d("Parslet"),"Atoms"),"Base"),m)},Opal.modules["parslet/atoms/re"]=function(e){var t=e.klass,r=e.send2,n=e.find_super,a=e.def,s=e.truthy,i=e.range,o=e.rb_lt,l=[],$=e.$r(l),u=e.nil,c=e.$$$;return e.add_stubs("attr_reader,to_s,new,match,[],inspect,matches?,succ,consume,<,chars_left,err,error_msgs"),function(l,$,_){var p=t(l,$,"Re"),m=[p].concat(_),d=e.$r(m),f=p.$$prototype;return f.error_msgs=f.re=u,p.$attr_reader("match","re"),a(p,"$initialize",(function e(t){var a=this;return e.$$p=null,r(a,n(a,"initialize",e,!1,!0),"initialize",[],null),a.match=t.$to_s(),a.re=d("Regexp").$new(a.$match(),c(d("Regexp"),"MULTILINE"))})),a(p,"$error_msgs",(function(){var e,t=this;return t.error_msgs=s(e=t.error_msgs)?e:new Map([["premature","Premature end of input"],["failed","Failed to match "+t.$match().$inspect()["$[]"](i(1,-2,!1))]])})),a(p,"$try",(function(e,t,r){var n=this;return s(e["$matches?"](n.re))?n.$succ(e.$consume(1)):s(o(e.$chars_left(),1))?t.$err(n,e,n.$error_msgs()["$[]"]("premature")):t.$err(n,e,n.$error_msgs()["$[]"]("failed"))})),a(p,"$to_s_inner",(function(e){return this.$match().$inspect()["$[]"](i(1,-2,!1))}))}(c($("Parslet"),"Atoms"),c(c($("Parslet"),"Atoms"),"Base"),l)},Opal.modules["parslet/atoms/str"]=function(e){var t=e.klass,r=e.send2,n=e.find_super,a=e.def,s=e.truthy,i=e.rb_lt,o=[],l=e.$r(o),$=e.nil,u=e.$$$;return e.add_stubs("attr_reader,to_s,new,escape,size,inspect,str,matches?,succ,consume,<,chars_left,err,[],error_msgs,pos,err_at"),function(o,l,u){var c=t(o,l,"Str"),_=[c].concat(u),p=e.$r(_),m=c.$$prototype;return m.error_msgs=m.pat=m.len=$,c.$attr_reader("str"),a(c,"$initialize",(function e(t){var a=this;return e.$$p=null,r(a,n(a,"initialize",e,!1,!0),"initialize",[],null),a.str=t.$to_s(),a.pat=p("Regexp").$new(p("Regexp").$escape(t)),a.len=t.$size()})),a(c,"$error_msgs",(function(){var e,t=this;return t.error_msgs=s(e=t.error_msgs)?e:new Map([["premature","Premature end of input"],["failed","Expected "+t.$str().$inspect()+", but got "]])})),a(c,"$try",(function(e,t,r){var n,a=this;return s(e["$matches?"](a.pat))?a.$succ(e.$consume(a.len)):s(i(e.$chars_left(),a.len))?t.$err(a,e,a.$error_msgs()["$[]"]("premature")):(n=e.$pos(),t.$err_at(a,e,[a.$error_msgs()["$[]"]("failed"),e.$consume(a.len)],n))})),a(c,"$to_s_inner",(function(e){return"'"+this.$str()+"'"}))}(u(l("Parslet"),"Atoms"),u(u(l("Parslet"),"Atoms"),"Base"),o)},Opal.modules["parslet/atoms/entity"]=function(e){var t=e.klass,r=e.send2,n=e.find_super,a=e.def,s=e.truthy,i=e.send,o=e.regexp,l=[],$=e.$r(l),u=e.nil,c=e.$$$;return e.add_stubs("attr_reader,apply,parslet,nil?,call,raise_not_implemented,label=,upcase,to_s,name,private,reject,caller,=~,escape,new,inspect,set_backtrace,raise"),function(l,$,c){var _=t(l,$,"Entity"),p=[_].concat(c),m=e.$r(p),d=_.$$prototype;return d.parslet=d.block=d.label=u,_.$attr_reader("name","block"),a(_,"$initialize",(function e(t,a){var s=e.$$p||u,i=this;return e.$$p=null,null==a&&(a=u),r(i,n(i,"initialize",e,!1,!0),"initialize",[],null),i.name=t,i.label=a,i.block=s,i.parslet=u}),-2),a(_,"$try",(function(e,t,r){return this.$parslet().$apply(e,t,r)})),a(_,"$parslet",(function(){var e=this;return s(e.parslet["$nil?"]())?(e.parslet=e.block.$call(),s(e.parslet["$nil?"]())&&e.$raise_not_implemented(),e.parslet["$label="](e.label),e.parslet):e.parslet})),a(_,"$to_s_inner",(function(e){return this.$name().$to_s().$upcase()})),_.$private(),a(_,"$raise_not_implemented",(function(){var e,t=this,r=u;return e=i(t.$caller(),"reject",[],(function(e){return null==e&&(e=u),e["$=~"](o([m("Regexp").$escape("parslet/atoms/entity.rb")]))})),(r=m("NotImplementedError").$new("rule("+t.$name().$inspect()+") { ... } returns nil. Still not implemented, but already used?")).$set_backtrace(e),t.$raise(r)}))}(c($("Parslet"),"Atoms"),c(c($("Parslet"),"Atoms"),"Base"),l)},Opal.modules["parslet/atoms/capture"]=function(e){var t=e.klass,r=e.send2,n=e.find_super,a=e.def,s=e.to_ary,i=e.truthy,o=e.$r([]),l=e.nil,$=e.$$$;return e.add_stubs("attr_reader,apply,parslet,[]=,captures,to_sym,name,flatten,inspect,to_s"),function(e,o){var $=t(e,o,"Capture");return $.$attr_reader("parslet","name"),a($,"$initialize",(function e(t,a){var s,i=this;return e.$$p=null,r(i,n(i,"initialize",e,!1,!0),"initialize",[],null),s=[t,a],i.parslet=s[0],i.name=s[1],s})),a($,"$apply",(function(e,t,r){var n,a,o,$,u,c=this;return a=o=c.$parslet().$apply(e,t,r),$=null==(n=s(a))[0]?l:n[0],u=null==n[1]?l:n[1],i($)&&t.$captures()["$[]="](c.$name().$to_sym(),c.$flatten(u)),o})),a($,"$to_s_inner",(function(e){return"("+this.$name().$inspect()+" = "+this.$parslet().$to_s(e)+")"}))}($(o("Parslet"),"Atoms"),$($(o("Parslet"),"Atoms"),"Base"))},Opal.modules["parslet/atoms/dynamic"]=function(e){var t=e.klass,r=e.assign_ivar,n=e.def,a=e.return_val,s=e.$r([]),i=(e.nil,e.$$$);return e.add_stubs("attr_reader,call,block,apply"),function(e,s){var i=t(e,s,"Dynamic");return i.$attr_reader("block"),n(i,"$initialize",r("block")),n(i,"$cached?",a(!1)),n(i,"$try",(function(e,t,r){return this.$block().$call(e,t).$apply(e,t,r)})),n(i,"$to_s_inner",a("dynamic { ... }"))}(i(s("Parslet"),"Atoms"),i(i(s("Parslet"),"Atoms"),"Base"))},Opal.modules["parslet/atoms/scope"]=function(e){var t=e.klass,r=e.send2,n=e.find_super,a=e.def,s=e.return_val,i=e.send,o=e.thrower,l=e.$r([]),$=e.nil,u=e.$$$;return e.add_stubs("attr_reader,scope,call,block,apply,to_s"),function(e,l){var u=t(e,l,"Scope");return u.$attr_reader("block"),a(u,"$initialize",(function e(t){var a=this;return e.$$p=null,r(a,n(a,"initialize",e,!1,!0),"initialize",[],null),a.block=t})),a(u,"$cached?",s(!1)),a(u,"$apply",(function(e,t,r){try{var n=o("return");return i(t,"scope",[],(function a(){var s=$;s=(null==a.$$s?this:a.$$s).$block().$call(),n.$throw(s.$apply(e,t,r),a.$$is_lambda)}),{$$s:this,$$ret:n})}catch(e){if(e===n)return e.$v;throw e}finally{n.is_orphan=!0}})),a(u,"$to_s_inner",(function(e){return"scope { "+this.$block().$call().$to_s(e)+" }"}))}(u(l("Parslet"),"Atoms"),u(u(l("Parslet"),"Atoms"),"Base"))},Opal.modules["parslet/atoms/infix"]=function(e){var t=e.klass,r=e.send2,n=e.find_super,a=e.truthy,s=e.send,i=e.def,o=e.thrower,l=e.to_ary,$=e.rb_ge,u=e.eqeq,c=e.rb_plus,_=[],p=e.$r(_),m=e.nil,d=e.$$$;return e.add_stubs("attr_reader,lambda,catch,succ,produce_tree,precedence_climb,kind_of?,shift,empty?,call,reducer,apply,throw,err,inspect,<<,flatten,loop,bytepos,match_operation,>=,==,+,bytepos=,unwrap,size,first,each,join,map"),function(_,p,d){var f=t(_,p,"Infix"),h=[f].concat(d),g=e.$r(h),b=f.$$prototype;return b.element=b.operations=m,f.$attr_reader("element","operations","reducer"),i(f,"$initialize",(function e(t,i){var o,l=e.$$p||m,$=this;return e.$$p=null,r($,n($,"initialize",e,!1,!0),"initialize",[],null),$.element=t,$.operations=i,$.reducer=a(o=l)?o:s($,"lambda",[],(function(e,t,r){return null==e&&(e=m),null==t&&(t=m),null==r&&(r=m),new Map([["l",e],["o",t],["r",r]])}))})),i(f,"$try",(function(e,t,r){try{var n=o("return");return s(this,"catch",["error"],(function a(){var s=null==a.$$s?this:a.$$s;n.$throw(s.$succ(s.$produce_tree(s.$precedence_climb(e,t,r))),a.$$is_lambda)}),{$$s:this,$$ret:n})}catch(e){if(e===n)return e.$v;throw e}finally{n.is_orphan=!0}})),i(f,"$produce_tree",(function(e){var t,r,n=this,s=m,i=m,o=m;if(!a(e["$kind_of?"](g("Array"))))return e;for(s=e.$shift();!a(e["$empty?"]());)r=e.$shift(2),i=null==(t=l(r))[0]?m:t[0],o=null==t[1]?m:t[1],s=a(o["$kind_of?"](g("Array")))?n.$reducer().$call(s,i,n.$produce_tree(o)):n.$reducer().$call(s,i,o);return s})),i(f,"$precedence_climb",(function(e,t,r,n,i){try{var _,p,d,f,h=o("return"),g=this,b=m;return null==n&&(n=1),null==i&&(i=!1),b=[],p=g.element.$apply(e,t,!1),d=null==(_=l(p))[0]?m:_[0],f=null==_[1]?m:_[1],a(d)||g.$throw("error",t.$err(g,e,g.element.$inspect()+" was expected",[f])),b["$<<"](g.$flatten(f,!0)),function(){try{var i=o("break");return s(g,"loop",[],(function s(){var o,_,p,d,f,g,v=null==s.$$s?this:s.$$s,y=m;if(p=e.$bytepos(),_=v.$match_operation(e,t,!1),d=null==(o=l(_))[0]?m:o[0],f=null==o[1]?m:o[1],g=null==o[2]?m:o[2],a(d)||i.$throw(m,s.$$is_lambda),a($(f,n)))return y=u(g,"left")?c(f,1):f,b["$<<"](d),b["$<<"](v.$precedence_climb(e,t,r,y,!0));e["$bytepos="](p),h.$throw(v.$unwrap(b),s.$$is_lambda)}),{$$s:g,$$ret:h})}catch(e){if(e===i)return e.$v;throw e}finally{i.is_orphan=!0}}(),g.$unwrap(b)}catch(e){if(e===h)return e.$v;throw e}finally{h.is_orphan=!0}}),-4),i(f,"$unwrap",(function(e){return u(e.$size(),1)?e.$first():e})),i(f,"$match_operation",(function(e,t,r){try{var n=o("return"),i=m;return i=[],s(this.operations,"each",[],(function s(o,$,u){var c,_,p,d,f=null==s.$$s?this:s.$$s;return null==o&&(o=m),null==$&&($=m),null==u&&(u=m),_=o.$apply(e,t,r),p=null==(c=l(_))[0]?m:c[0],d=null==c[1]?m:c[1],a(p)&&n.$throw([f.$flatten(d,!0),$,u],s.$$is_lambda),i["$<<"](d)}),{$$s:this,$$ret:n}),m}catch(e){if(e===n)return e.$v;throw e}finally{n.is_orphan=!0}})),i(f,"$to_s_inner",(function(e){var t;return t=s(this.operations,"map",[],(function(e,t,r){return null==e&&(e=m),null==t&&(t=m),null==r&&(r=m),e.$inspect()})).$join(", "),"infix_expression("+this.element.$inspect()+", ["+t+"])"}))}(d(p("Parslet"),"Atoms"),d(d(p("Parslet"),"Atoms"),"Base"),_)},Opal.modules["parslet/atoms"]=function(e){var t=e.module,r=e.const_set,n=[],a=e.$r(n);e.nil;return e.add_stubs("require"),function(e,n){var a=t(e,"Atoms"),s=[a].concat(n);return function(e,n){var a=[t(e,"Precedence")].concat(n);r(a[0],"BASE",1),r(a[0],"LOOKAHEAD",2),r(a[0],"REPETITION",3),r(a[0],"SEQUENCE",4),r(a[0],"ALTERNATE",5),r(a[0],"OUTER",6)}(s[0],s),a.$require("parslet/atoms/can_flatten"),a.$require("parslet/atoms/context"),a.$require("parslet/atoms/dsl"),a.$require("parslet/atoms/base"),a.$require("parslet/atoms/ignored"),a.$require("parslet/atoms/named"),a.$require("parslet/atoms/lookahead"),a.$require("parslet/atoms/alternative"),a.$require("parslet/atoms/sequence"),a.$require("parslet/atoms/repetition"),a.$require("parslet/atoms/re"),a.$require("parslet/atoms/str"),a.$require("parslet/atoms/entity"),a.$require("parslet/atoms/capture"),a.$require("parslet/atoms/dynamic"),a.$require("parslet/atoms/scope"),a.$require("parslet/atoms/infix")}(a("Parslet"),n)},Opal.modules["parslet/pattern"]=function(e){var t=e.klass,r=e.assign_ivar,n=e.def,a=e.truthy,s=e.eqeqeq,i=e.neqeq,o=e.send,l=e.eqeq,$=e.thrower,u=[],c=e.$r(u),_=e.nil;return e.add_stubs("dup,new,element_match,is_a?,element_match_hash,element_match_ary_single,===,can_bind?,respond_to?,element_match_binding,variable_name,[],==,store,!=,size,all?,zip,each,has_key?"),function(u,c,p){var m=t(u,null,"Pattern"),d=[m].concat(p),f=e.$r(d);return m.$$prototype.pattern=_,n(m,"$initialize",r("pattern")),n(m,"$match",(function(e,t){var r,n;return null==t&&(t=_),t=a(r=a(n=t)?t.$dup():n)?r:f("Hash").$new(),a(this.$element_match(e,this.pattern,t))?t:_}),-2),n(m,"$element_match",(function(e,t,r){var n=this;return a(e["$is_a?"](f("Hash")))&&a(t["$is_a?"](f("Hash")))?n.$element_match_hash(e,t,r):a(e["$is_a?"](f("Array")))&&a(t["$is_a?"](f("Array")))?n.$element_match_ary_single(e,t,r):!!s(t,e)||!(!a(t["$respond_to?"]("can_bind?"))||!a(t["$can_bind?"](e)))&&n.$element_match_binding(e,t,r)})),n(m,"$element_match_binding",(function(e,t,r){var n,s=_;return n=t.$variable_name(),a(n)&&a(s=r["$[]"](n))?s["$=="](e):(r.$store(n,e),!0)})),n(m,"$element_match_ary_single",(function(e,t,r){return!i(e.$size(),t.$size())&&o(e.$zip(t),"all?",[],(function e(t,n){return null==t&&(t=_),null==n&&(n=_),(null==e.$$s?this:e.$$s).$element_match(t,n,r)}),{$$s:this})})),n(m,"$element_match_hash",(function(e,t,r){try{var n=$("return");return!!l(t.$size(),e.$size())&&(o(t,"each",[],(function t(s,i){var o,l=null==t.$$s?this:t.$$s;if(null==s&&(s=_),null==i&&(i=_),a(e["$has_key?"](s))||n.$throw(!1,t.$$is_lambda),o=e["$[]"](s),a(l.$element_match(o,i,r)))return _;n.$throw(!1,t.$$is_lambda)}),{$$s:this,$$ret:n}),!0)}catch(e){if(e===n)return e.$v;throw e}finally{n.is_orphan=!0}}))}(c("Parslet"),0,u)},Opal.modules["parslet/pattern/binding"]=function(e){var t=e.klass,r=e.def,n=e.return_val,a=e.truthy,s=e.annotate_regexp,i=e.send,o=[],l=e.$r(o),$=e.nil,u=e.$$$;return e.add_stubs("symbol,bind_type_name,inspect,private,match,name,class,downcase,first,captures,new,!,include?,kind_of?,any?"),function(e,i){var o=t(e,i,"SubtreeBind");r(o,"$variable_name",(function(){return this.$symbol()})),r(o,"$inspect",(function(){return this.$bind_type_name()+"("+this.$symbol().$inspect()+")"})),r(o,"$can_bind?",n(!0)),o.$private(),r(o,"$bind_type_name",(function(){var e=$;return a(e=this.$class().$name().$match(s(/(\w+)Bind/u,null,"")))?e.$captures().$first().$downcase():"unknown_bind"}))}(u(l("Parslet"),"Pattern"),l("Struct").$new("symbol")),function(n,a,s){var i=t(n,a,"SimpleBind"),o=[i].concat(s),l=e.$r(o);r(i,"$can_bind?",(function(e){return[l("Hash"),l("Array")]["$include?"](e.$class())["$!"]()}))}(u(l("Parslet"),"Pattern"),u(u(l("Parslet"),"Pattern"),"SubtreeBind"),o),function(n,s,o){var l=t(n,s,"SequenceBind"),u=[l].concat(o),c=e.$r(u);return r(l,"$can_bind?",(function(e){var t;return a(t=e["$kind_of?"](c("Array")))?i(e,"any?",[],(function(e){return null==e&&(e=$),[c("Hash"),c("Array")]["$include?"](e.$class())}))["$!"]():t}))}(u(l("Parslet"),"Pattern"),u(u(l("Parslet"),"Pattern"),"SubtreeBind"),o)},Opal.modules["parslet/context"]=function(e){var t=e.klass,r=e.send,n=e.def,a=[],s=e.$r(a),i=e.nil;return e.add_stubs("include,each,send,singleton_class,instance_variable_set"),function(a,s,o){var l=t(a,null,"Context"),$=[l].concat(o),u=e.$r($);return l.$include(u("Parslet")),n(l,"$initialize",(function(e){return r(e,"each",[],(function e(t,n){var a=null==e.$$s?this:e.$$s;return null==t&&(t=i),null==n&&(n=i),r(a.$singleton_class(),"send",["define_method",t],(function(){return n})),a.$instance_variable_set("@"+t,n)}),{$$s:this})}))}(s("Parslet"),0,a)},Opal.modules["parslet/transform"]=function(e){var t=e.klass,r=e.truthy,n=e.def,a=e.send2,s=e.find_super,i=e.send,o=e.eqeqeq,l=e.eqeq,$=e.rb_plus,u=e.thrower,c=e.to_ary,_=e.top,p=[],m=e.$r(p),d=e.nil,f=e.$$$;return e.add_stubs("require,include,unshift,new,instance_variable_set,dup,rules,instance_eval,to_proc,transform_elt,===,recurse_hash,recurse_array,==,arity,call,+,class,each,match,call_on_match,is_a?,to_h,map,raise,inspect,inject,[]=,apply"),_.$require("parslet/pattern"),function(_,p,m){var h=t(_,null,"Transform"),g=[h].concat(m),b=e.$r(g),v=h.$$prototype;v.rules=v.raise_on_unmatch=d,h.$include(b("Parslet")),function(t,i){var o=[t].concat(i),l=e.$r(o);t.$include(l("Parslet")),n(t,"$rule",(function e(t){var n,a=e.$$p||d,s=this;return null==s.__transform_rules&&(s.__transform_rules=d),e.$$p=null,s.__transform_rules=r(n=s.__transform_rules)?n:[],s.__transform_rules.$unshift([f(l("Parslet"),"Pattern").$new(t),a])})),n(t,"$rules",(function(){var e,t=this;return null==t.__transform_rules&&(t.__transform_rules=d),t.__transform_rules=r(e=t.__transform_rules)?e:[]})),n(t,"$inherited",(function e(t){var r=e.$$p||d,n=this;return e.$$p=null,a(n,s(n,"inherited",e,!1,!0),"inherited",[t],r),t.$instance_variable_set("@__transform_rules",n.$rules().$dup())}))}(e.get_singleton_class(h),g),n(h,"$initialize",(function e(t){var n=e.$$p||d,a=this;return e.$$p=null,null==t&&(t=!1),a.raise_on_unmatch=t,a.rules=[],r(n)?i(a,"instance_eval",[],n.$to_proc()):d}),-1),n(h,"$rule",(function e(t){var r=e.$$p||d;return e.$$p=null,this.rules.$unshift([f(b("Parslet"),"Pattern").$new(t),r])})),n(h,"$apply",(function(e,t){var r,n=this;return null==t&&(t=d),n.$transform_elt(o(b("Hash"),r=e)?n.$recurse_hash(e,t):o(b("Array"),r)?n.$recurse_array(e,t):e,t)}),-2),n(h,"$call_on_match",(function(e,t){var n=d;return r(t)?l(t.$arity(),1)?t.$call(e):(n=b("Context").$new(e),i(n,"instance_eval",[],t.$to_proc())):d})),n(h,"$rules",(function(){return $(this.$class().$rules(),this.rules)})),n(h,"$transform_elt",(function(e,t){try{var n=u("return"),a=this,s=d;return i(a.$rules(),"each",[],(function a(s,i){var o,l=null==a.$$s?this:a.$$s;if(null==s&&(s=d),null==i&&(i=d),!r(o=s.$match(e,t)))return d;n.$throw(l.$call_on_match(o,i),a.$$is_lambda)}),{$$s:a,$$ret:n}),r(a.raise_on_unmatch)&&r(e["$is_a?"](b("Hash")))?(s=i(e,"map",[],(function(e,t){return null==e&&(e=d),null==t&&(t=d),[e,t.$class()]})).$to_h(),a.$raise(b("NotImplementedError"),"Failed to match `"+s.$inspect()+"`")):e}catch(e){if(e===n)return e.$v;throw e}finally{n.is_orphan=!0}})),n(h,"$recurse_hash",(function(e,t){return i(e,"inject",[new Map],(function e(r,n){var a,s,i,o=null==e.$$s?this:e.$$s;return null==r&&(r=d),null==n&&(n=d),s=null==(a=c(n))[0]?d:a[0],i=null==a[1]?d:a[1],r["$[]="](s,o.$apply(i,t)),r}),{$$s:this,$$has_top_level_mlhs_arg:!0})})),n(h,"$recurse_array",(function(e,t){return i(e,"map",[],(function e(r){return null==r&&(r=d),(null==e.$$s?this:e.$$s).$apply(r,t)}),{$$s:this})}))}(m("Parslet"),0,p),_.$require("parslet/context")},Opal.modules["parslet/parser"]=function(e){var t=e.klass,r=e.truthy,n=e.send,a=e.def,s=[],i=e.$r(s),o=(e.nil,e.$$$);return e.add_stubs("include,method_defined?,undef_method,define_method,send,try,root,to_s"),function(s,i,o){var l=t(s,i,"Parser"),$=[l].concat(o),u=e.$r($);return l.$include(u("Parslet")),function(e,t){a(e,"$root",(function(e){var t=this;return r(t["$method_defined?"]("root"))&&t.$undef_method("root"),n(t,"define_method",["root"],(function t(){return(null==t.$$s?this:t.$$s).$send(e)}),{$$s:t})}))}(e.get_singleton_class(l)),a(l,"$try",(function(e,t,r){return this.$root().$try(e,t,r)})),a(l,"$to_s_inner",(function(e){return this.$root().$to_s(e)}))}(i("Parslet"),o(o(i("Parslet"),"Atoms"),"Base"),s)},Opal.modules["parslet/error_reporter/tree"]=function(e){var t=e.module,r=e.klass,n=e.def,a=e.return_val,s=[],i=e.nil;return e.add_stubs("pos,format"),function(s,o){var l=[t(s,"Parslet")].concat(o);return function(s,o){var l=[t(s,"ErrorReporter")].concat(o);return function(t,s,o){var l=r(t,null,"Tree"),$=[l].concat(o),u=e.$r($);return n(l,"$err",(function(e,t,r,n){var a;return null==n&&(n=i),a=t.$pos(),u("Cause").$format(t,a,r,n)}),-4),n(l,"$err_at",(function(e,t,r,n,a){var s;return null==a&&(a=i),s=n,u("Cause").$format(t,s,r,a)}),-5),n(l,"$succ",a(i))}(l[0],0,l)}(l[0],l)}(s[0],s)},Opal.modules["parslet/error_reporter/deepest"]=function(e){var t=e.module,r=e.klass,n=e.assign_ivar_val,a=e.def,s=e.return_val,i=e.to_ary,o=e.truthy,l=e.rb_ge,$=e.not,u=e.send,c=e.rb_plus,_=e.rb_gt,p=[],m=e.nil;return e.add_stubs("pos,format,deepest,attr_reader,deepest_child,>=,deepest_cause,!,private,empty?,children,each,+,>"),function(p,d){var f=[t(p,"Parslet")].concat(d);return function(p,d){var f=[t(p,"ErrorReporter")].concat(d);return function(t,p,d){var f=r(t,null,"Deepest"),h=[f].concat(d),g=e.$r(h);return a(f,"$initialize",n("deepest_cause",m)),a(f,"$err",(function(e,t,r,n){var a,s;return null==n&&(n=m),a=t.$pos(),s=g("Cause").$format(t,a,r,n),this.$deepest(s)}),-4),a(f,"$err_at",(function(e,t,r,n,a){var s,i;return null==a&&(a=m),s=n,i=g("Cause").$format(t,s,r,a),this.$deepest(i)}),-5),a(f,"$succ",s(m)),f.$attr_reader("deepest_cause"),a(f,"$deepest",(function(e){var t,r,n=this,a=m;return r=n.$deepest_child(e),null==(t=i(r))[0]?m:t[0],a=null==t[1]?m:t[1],$(n.$deepest_cause())||o(l(a.$pos(),n.$deepest_cause().$pos()))?(n.deepest_cause=a,e):n.$deepest_cause()})),f.$private(),a(f,"$deepest_child",(function(e,t){var r=m,n=m;return null==t&&(t=0),r=e,n=t,o(e.$children())&&$(e.$children()["$empty?"]())&&u(e.$children(),"each",[],(function e(a){var s,l,$,u;return null==a&&(a=m),l=(null==e.$$s?this:e.$$s).$deepest_child(a,c(t,1)),$=null==(s=i(l))[0]?m:s[0],u=null==s[1]?m:s[1],o(_($,n))?(n=$,r=u):m}),{$$s:this}),[n,r]}),-2)}(f[0],0,f)}(f[0],f)}(p[0],p)},Opal.modules["parslet/error_reporter/contextual"]=function(e){var t=e.module,r=e.klass,n=e.def,a=e.truthy,s=e.rb_lt,i=e.send2,o=e.find_super,l=e.rb_ge,$=[],u=e.nil;return e.add_stubs("reset,bytepos,pos,<,respond_to?,label,update_label,set_label,>="),function($,c){var _=[t($,"Parslet")].concat(c);return function($,c){var _=[t($,"ErrorReporter")].concat(c),p=e.$r(_);return function(e,t){var $=r(e,t,"Contextual"),c=$.$$prototype;return c.last_reset_pos=c.label=c.label_pos=u,n($,"$initialize",(function(){return this.last_reset_pos=0,this.$reset()})),n($,"$succ",(function(e){var t,r=this;return t=e.$pos().$bytepos(),a(s(t,r.last_reset_pos))?u:(r.last_reset_pos=t,r.$reset())})),n($,"$reset",(function(){return this.deepest_cause=u,this.label_pos=-1})),n($,"$err",(function e(t,r,n,s){var l,$,c=this,_=u;return e.$$p=null,null==s&&(s=u),_=i(c,o(c,"err",e,!1,!0),"err",[t,r,n,s],null),a(l=a($=t["$respond_to?"]("label"))?t.$label():$)&&(c.$update_label(l,r.$pos().$bytepos()),_.$set_label(c.label)),_}),-4),n($,"$update_label",(function(e,t){var r=this;return a(l(t,r.label_pos))?(r.label_pos=t,r.label=e):u}))}(_[0],p("Deepest"))}(_[0],_)}($[0],$)},Opal.modules["parslet/error_reporter"]=function(e){var t=e.module,r=e.top,n=e.$r([]);e.nil;return e.add_stubs("require"),t(n("Parslet"),"ErrorReporter"),r.$require("parslet/error_reporter/tree"),r.$require("parslet/error_reporter/deepest"),r.$require("parslet/error_reporter/contextual")},Opal.modules["parslet/scope"]=function(e){var t=e.klass,r=e.def,n=e.truthy,a=e.send,s=[],i=e.$r(s),o=e.nil;return e.add_stubs("attr_reader,new,has_key?,[],parent,raise,store,[]="),function(s,i,l){var $=t(s,null,"Scope"),u=[$].concat(l),c=e.$r(u);return $.$$prototype.current=o,t(u[0],c("StandardError"),"NotFound"),function(a,s,i){var l=t(a,null,"Binding"),$=[l].concat(i),u=e.$r($);l.$$prototype.hash=o,l.$attr_reader("parent"),r(l,"$initialize",(function(e){return null==e&&(e=o),this.parent=e,this.hash=u("Hash").$new()}),-1),r(l,"$[]",(function(e){var t,r,a=this,s=o;return n(t=n(r=n(s=a.hash["$has_key?"](e))?a.hash["$[]"](e):s)?r:n(s=a.$parent())?a.$parent()["$[]"](e):s)?t:a.$raise(u("NotFound"))})),r(l,"$[]=",(function(e,t){return this.hash.$store(e,t)}))}(u[0],0,u),r($,"$[]",(function(e){return this.current["$[]"](e)})),r($,"$[]=",(function(e,t){var r;return r=[e,t],a(this.current,"[]=",r),r[r.length-1]})),r($,"$initialize",(function(){return this.current=c("Binding").$new()})),r($,"$push",(function(){return this.current=c("Binding").$new(this.current)})),r($,"$pop",(function(){return this.current=this.current.$parent()}))}(i("Parslet"),0,s)},Opal.modules.parslet=function(e){var t=e.module,r=e.defs,n=e.klass,a=e.send2,s=e.find_super,i=e.def,o=e.truthy,l=e.send,$=e.thrower,u=e.rb_plus,c=e.slice,_=e.top,p=[],m=e.nil,d=e.$$$;return e.add_stubs("extend,attr_reader,method_defined?,undef_method,define_method,has_key?,[],proc,instance_eval,to_proc,[]=,new,+,module_function,to_parslet,autoload,require"),function(_,p){var f=t(_,"Parslet"),h=[f].concat(p),g=e.$r(h);r(f,"$included",(function(e){return e.$extend(g("ClassMethods"))})),function(e,t){var r=n(e,t,"ParseFailed");i(r,"$initialize",(function e(t,r){var n=this;return e.$$p=null,null==r&&(r=m),a(n,s(n,"initialize",e,!1,!0),"initialize",[t],null),n.parse_failure_cause=r}),-2),r.$attr_reader("parse_failure_cause")}(h[0],g("StandardError")),function(r,n){var a=t(r,"ClassMethods"),s=[a].concat(n),u=e.$r(s);i(a,"$rule",(function e(t,r){try{var n=$("return"),a=e.$$p||m,s=this;return e.$$p=null,null==r&&(r=new Map),o(s["$method_defined?"](t))&&s.$undef_method(t),l(s,"define_method",[t],(function e(){var s,i,$=null==e.$$s?this:e.$$s,c=m;return null==$.rules&&($.rules=m),$.rules=o(i=$.rules)?i:new Map,o($.rules["$has_key?"](t))&&n.$throw($.rules["$[]"](t),e.$$is_lambda),c=l($,"proc",[],(function e(){return l(null==e.$$s?this:e.$$s,"instance_eval",[],a.$to_proc())}),{$$s:$}),s=[t,l(d(u("Atoms"),"Entity"),"new",[t,r["$[]"]("label")],c.$to_proc())],l($.rules,"[]=",s),s[s.length-1]}),{$$s:s,$$ret:n})}catch(e){if(e===n)return e.$v;throw e}finally{n.is_orphan=!0}}),-2)}(h[0],h),function(t,r,a){var s=n(t,null,"DelayedMatchConstructor"),o=[s].concat(a),l=e.$r(o);i(s,"$[]",(function(e){return d(l("Atoms"),"Re").$new(u(u("[",e),"]"))}))}(h[0],0,h),i(f,"$match",(function(e){return null==e&&(e=m),o(e)?d(g("Atoms"),"Re").$new(e):g("DelayedMatchConstructor").$new()}),-1),f.$module_function("match"),i(f,"$str",(function(e){return d(g("Atoms"),"Str").$new(e)})),f.$module_function("str"),i(f,"$any",(function(){return d(g("Atoms"),"Re").$new(".")})),f.$module_function("any"),i(f,"$scope",(function e(){var t=e.$$p||m;return e.$$p=null,d(d(g("Parslet"),"Atoms"),"Scope").$new(t)})),f.$module_function("scope"),i(f,"$dynamic",(function e(){var t=e.$$p||m;return e.$$p=null,d(d(g("Parslet"),"Atoms"),"Dynamic").$new(t)})),f.$module_function("dynamic"),i(f,"$infix_expression",(function e(t,r){var n,a=e.$$p||m;return e.$$p=null,n=c(arguments,1),l(d(d(g("Parslet"),"Atoms"),"Infix"),"new",[t,n],a.$to_proc())}),-2),f.$module_function("infix_expression"),i(f,"$exp",(function(e){return d(g("Parslet"),"Expression").$new(e).$to_parslet()})),f.$module_function("exp"),i(f,"$sequence",(function(e){return d(g("Pattern"),"SequenceBind").$new(e)})),f.$module_function("sequence"),i(f,"$simple",(function(e){return d(g("Pattern"),"SimpleBind").$new(e)})),f.$module_function("simple"),i(f,"$subtree",(function(e){return d(g("Pattern"),"SubtreeBind").$new(e)})),f.$module_function("subtree"),f.$autoload("Expression","parslet/expression")}(p[0],p),_.$require("parslet/slice"),_.$require("parslet/cause"),_.$require("parslet/source"),_.$require("parslet/atoms"),_.$require("parslet/pattern"),_.$require("parslet/pattern/binding"),_.$require("parslet/transform"),_.$require("parslet/parser"),_.$require("parslet/error_reporter"),_.$require("parslet/scope")},Opal.modules["plurimath/asciimath/parse"]=function(e){var t=e.module,r=e.klass,n=e.send,a=e.annotate_regexp,s=e.truthy,i=e.regexp,o=e.def,l=e.class_variable_set,$=e.class_variable_get,u=e.top,c=[],_=e.nil,p=e.$$$;return e.add_stubs("require,rule,as,expression,str,match,>>,space?,maybe,space,|,repeat,power_base,left_right_open_paren,ternary_classes,iteration,left_right_close_paren,arr_to_expression,keys,values,reduce,is_a?,sequence,table,sub_sup_classes,binary_classes,hash_to_expression,precompile_constants,comma,quoted_text,absent?,[],number,base,power,tr,close_table,open_table,td,capture,color_left_parenthesis,color_right_parenthesis,lparen,rparen,read_text,symbol_text_or_integer,power_base_rules,ternary_classes_rules,mod,color_value,frac,left_right,controversial_symbols,root,class,first,dynamic,to_sym,captures,dynamic_parser_rules,to_s,last"),u.$require("parslet"),function(u,c){var m=[t(u,"Plurimath")].concat(c);return function(t,u,c){var m=[r(t,null,"Asciimath")].concat(c),d=e.$r(m);return function(t,u,c){var m=r(t,u,"Parse"),d=[m].concat(c),f=e.$r(d);return n(m,"rule",["td"],(function e(){return(null==e.$$s?this:e.$$s).$expression().$as("td")}),{$$s:m}),n(m,"rule",["base"],(function e(){return(null==e.$$s?this:e.$$s).$str("_")}),{$$s:m}),n(m,"rule",["power"],(function e(){return(null==e.$$s?this:e.$$s).$str("^")}),{$$s:m}),n(m,"rule",["space"],(function e(){return(null==e.$$s?this:e.$$s).$match(a(/\s+/u,null,""))}),{$$s:m}),n(m,"rule",["comma"],(function e(){var t=null==e.$$s?this:e.$$s;return t.$str(",")["$>>"](t["$space?"]())}),{$$s:m}),n(m,"rule",["space?"],(function e(){return(null==e.$$s?this:e.$$s).$space().$maybe()}),{$$s:m}),n(m,"rule",["number"],(function e(){var t=null==e.$$s?this:e.$$s;return t.$match("[0-9]").$repeat(1)["$>>"](t.$str("."))["$>>"](t.$match("[0-9]").$repeat(1)).$as("number")["$|"](t.$match("[0-9]").$repeat(1).$as("number"))["$|"](t.$str(".").$as("symbol"))}),{$$s:m}),n(m,"rule",["controversial_symbols"],(function e(){var t=null==e.$$s?this:e.$$s;return t.$power_base()["$|"](t.$expression())}),{$$s:m}),n(m,"rule",["left_right_open_paren"],(function e(){var t=null==e.$$s?this:e.$$s;return t.$str("(")["$|"](t.$str("["))}),{$$s:m}),n(m,"rule",["left_right_close_paren"],(function e(){var t=null==e.$$s?this:e.$$s;return t.$str(")")["$|"](t.$str("]"))}),{$$s:m}),n(m,"rule",["color_left_parenthesis"],(function e(){var t=null==e.$$s?this:e.$$s;return t.$str("(")["$|"](t.$str("["))["$|"](t.$str("{"))}),{$$s:m}),n(m,"rule",["color_right_parenthesis"],(function e(){var t=null==e.$$s?this:e.$$s;return t.$str(")")["$|"](t.$str("]"))["$|"](t.$str("}"))}),{$$s:m}),n(m,"rule",["ternary_classes_rules"],(function e(){var t=null==e.$$s?this:e.$$s;return t.$str("left")["$>>"](t["$space?"]())["$>>"](t.$left_right_open_paren().$as("left"))["$>>"](t["$space?"]())["$>>"](t.$ternary_classes()["$>>"](t.$power_base())["$>>"](t["$space?"]())["$>>"](t.$iteration().$as("third_value").$maybe()).$as("ternary"))["$>>"](t["$space?"]())["$>>"](t.$str("right"))["$>>"](t["$space?"]())["$>>"](t.$left_right_close_paren().$as("right"))["$|"](t.$ternary_classes()["$>>"](t.$power_base())["$>>"](t["$space?"]())["$>>"](t.$iteration().$as("third_value").$maybe()).$as("ternary"))["$|"](t.$ternary_classes())}),{$$s:m}),n(m,"rule",["ternary_classes"],(function e(){return(null==e.$$s?this:e.$$s).$arr_to_expression(p(f("Constants"),"TERNARY_CLASSES"),"ternary_class")}),{$$s:m}),n(m,"rule",["binary_classes"],(function e(){return(null==e.$$s?this:e.$$s).$arr_to_expression(p(f("Constants"),"BINARY_CLASSES"),"binary_class")}),{$$s:m}),n(m,"rule",["sub_sup_classes"],(function e(){return(null==e.$$s?this:e.$$s).$arr_to_expression(p(f("Constants"),"SUB_SUP_CLASSES"),"binary_class")}),{$$s:m}),n(m,"rule",["open_table"],(function e(){return(null==e.$$s?this:e.$$s).$arr_to_expression(p(f("Constants"),"TABLE_PARENTHESIS").$keys(),"table_left")}),{$$s:m}),n(m,"rule",["close_table"],(function e(){return(null==e.$$s?this:e.$$s).$arr_to_expression(p(f("Constants"),"TABLE_PARENTHESIS").$values(),"table_right")}),{$$s:m}),n(m,"rule",["lparen"],(function e(){var t=null==e.$$s?this:e.$$s;return n(p(f("Constants"),"PARENTHESIS").$keys(),"reduce",[],(function e(t,r){var n=null==e.$$s?this:e.$$s;return null==t&&(t=_),null==r&&(r=_),s(t["$is_a?"](f("Symbol")))&&(t=n.$str(t)),t["$|"](n.$str(r))}),{$$s:t})}),{$$s:m}),n(m,"rule",["rparen"],(function e(){var t=null==e.$$s?this:e.$$s;return n(p(f("Constants"),"PARENTHESIS").$values(),"reduce",[],(function e(t,r){var n=null==e.$$s?this:e.$$s;return null==t&&(t=_),null==r&&(r=_),s(t["$is_a?"](f("String")))&&(t=n.$str(t)),t["$|"](n.$str(r))}),{$$s:t})}),{$$s:m}),n(m,"rule",["left_right"],(function e(){var t=null==e.$$s?this:e.$$s;return t.$str("left")["$>>"](t["$space?"]())["$>>"](t.$left_right_open_paren().$as("left"))["$>>"](t["$space?"]())["$>>"](t.$iteration().$maybe()["$>>"](t.$sequence().$maybe()).$as("left_right_value"))["$>>"](t["$space?"]())["$>>"](t.$str("right"))["$>>"](t["$space?"]())["$>>"](t.$left_right_close_paren().$as("right"))["$|"](t.$table().$as("numerator")["$>>"](t["$space?"]())["$>>"](t.$match(i(["(?<!/)/(?!/)"])))["$>>"](t["$space?"]())["$>>"](t.$iteration().$as("denominator")).$as("frac")["$>>"](t.$expression()))["$|"](t.$table().$as("table")["$>>"](t.$expression().$maybe()))}),{$$s:m}),n(m,"rule",["quoted_text"],(function e(){var t=null==e.$$s?this:e.$$s;return t.$str('"')["$>>"](t.$match('[^"]').$repeat().$as("text"))["$>>"](t.$str('"'))["$|"](t.$str('"')["$>>"](t.$str("").$as("text")))}),{$$s:m}),n(m,"rule",["symbol_text_or_integer"],(function e(){var t=null==e.$$s?this:e.$$s;return t.$sub_sup_classes()["$|"](t.$binary_classes())["$|"](t.$ternary_classes())["$|"](t.$hash_to_expression(f("Constants").$precompile_constants()))["$|"](t.$match(a(/[0-9]/u,null,"")).$as("number")["$>>"](t.$comma().$as("comma")).$repeat(1).$as("comma_separated"))["$|"](t.$quoted_text())["$|"](t.$str("d").$as("d")["$>>"](t.$str("x").$as("x")).$as("intermediate_exp"))["$|"](t.$str("left")["$absent?"]()["$>>"](t.$str("right")["$absent?"]())["$>>"](t.$match()["$[]"]("a-zA-Z").$as("symbol")))["$|"](t.$match(a(/[^\[{(\\\/@;:.,'"|\]})0-9a-zA-Z\-><$%^&*_=+!`~\s?\u2112\u211B\u1455\u1450]/u,null,"")).$as("symbol"))["$|"](t.$number())}),{$$s:m}),n(m,"rule",["power_base"],(function e(){var t=null==e.$$s?this:e.$$s;return t.$base()["$>>"](t["$space?"]())["$>>"](t.$sequence().$as("base_value"))["$>>"](t.$power())["$>>"](t["$space?"]())["$>>"](t.$sequence().$as("power_value"))["$|"](t["$space?"]()["$>>"](t.$base())["$>>"](t["$space?"]())["$>>"](t.$sequence().$as("base_value")).$as("base"))["$|"](t["$space?"]()["$>>"](t.$power())["$>>"](t["$space?"]())["$>>"](t.$sequence().$as("power_value")).$as("power"))["$|"](t["$space?"]()["$>>"](t.$base())["$>>"](t["$space?"]())["$>>"](t.$power().$as("symbol").$as("base_value")).$as("base"))["$|"](t["$space?"]()["$>>"](t.$power())["$>>"](t["$space?"]())["$>>"](t.$base().$as("symbol").$as("power_value")).$as("power"))}),{$$s:m}),n(m,"rule",["power_base_rules"],(function e(){var t=null==e.$$s?this:e.$$s;return t.$sub_sup_classes()["$>>"](t.$power_base()).$as("power_base")["$|"](t.$binary_classes()["$>>"](t["$space?"]())["$>>"](t.$sequence().$as("base_value").$maybe())["$>>"](t["$space?"]())["$>>"](t.$sequence().$as("power_value").$maybe()).$as("power_base"))["$|"](t.$sequence().$as("power_base")["$>>"](t.$power_base()).$as("power_base"))}),{$$s:m}),n(m,"rule",["table"],(function e(){var t=null==e.$$s?this:e.$$s;return t.$str("{").$as("table_left")["$>>"](t["$space?"]())["$>>"](t.$tr())["$>>"](t["$space?"]())["$>>"](t.$close_table().$as("table_right"))["$|"](t.$open_table().$as("table_left")["$>>"](t["$space?"]())["$>>"](t.$tr())["$>>"](t["$space?"]())["$>>"](t.$close_table().$as("table_right")))["$|"](t.$str("norm").$as("norm")["$>>"](t.$open_table().$as("table_left"))["$>>"](t["$space?"]())["$>>"](t.$tr())["$>>"](t["$space?"]())["$>>"](t.$close_table().$as("table_right")))["$|"](t.$str("|").$as("table_left")["$>>"](t["$space?"]())["$>>"](t.$tr())["$>>"](t["$space?"]())["$>>"](t.$str("|").$as("table_right")))["$|"](t.$str("left")["$>>"](t["$space?"]())["$>>"](t.$left_right_open_paren().$as("left"))["$>>"](t["$space?"]())["$>>"](t.$tr())["$>>"](t["$space?"]())["$>>"](t.$str("right"))["$>>"](t["$space?"]())["$>>"](t.$left_right_close_paren().$as("right")))}),{$$s:m}),n(m,"rule",["tr"],(function e(){var t=null==e.$$s?this:e.$$s;return t.$left_right_open_paren().$as("open_tr")["$>>"](t.$td().$as("tds_list"))["$>>"](t.$left_right_close_paren()).$as("table_row")["$>>"](t.$comma())["$>>"](t["$space?"]())["$>>"](t.$tr().$as("expr"))["$|"](t.$left_right_open_paren().$as("open_tr")["$>>"](t.$td().$as("tds_list"))["$>>"](t.$left_right_close_paren()).$as("table_row"))}),{$$s:m}),n(m,"rule",["color_value"],(function e(){var t=null==e.$$s?this:e.$$s;return t.$color_left_parenthesis().$capture("paren").$as("lparen")["$>>"](t.$expression().$as("rgb_color"))["$>>"](t.$color_right_parenthesis().$maybe().$as("rparen")).$as("intermediate_exp")["$|"](t.$iteration())}),{$$s:m}),n(m,"rule",["sequence"],(function e(){var t=null==e.$$s?this:e.$$s;return t.$lparen().$as("lparen")["$>>"](t["$space?"]())["$>>"](t.$expression().$maybe().$as("expr"))["$>>"](t["$space?"]())["$>>"](t.$rparen().$maybe().$as("rparen")).$as("intermediate_exp")["$|"](t.$str("text")["$>>"](t.$lparen().$capture("paren"))["$>>"](t.$read_text().$as("text"))["$>>"](t.$rparen().$maybe()).$as("intermediate_exp"))["$|"](t.$symbol_text_or_integer())}),{$$s:m}),n(m,"rule",["frac"],(function e(){var t=null==e.$$s?this:e.$$s;return t.$sequence().$as("numerator")["$>>"](t["$space?"]())["$>>"](t.$match(i(["(?<!/)/(?!/)"])))["$>>"](t["$space?"]())["$>>"](t.$iteration().$as("denominator")).$as("frac")["$|"](t.$power_base_rules()["$|"](t.$power_base()).$as("numerator")["$>>"](t.$match(i(["(?<!/)/(?!/)"])))["$>>"](t.$iteration().$as("denominator")).$as("frac"))}),{$$s:m}),n(m,"rule",["mod"],(function e(){var t=null==e.$$s?this:e.$$s;return t.$sequence().$as("dividend")["$>>"](t["$space?"]())["$>>"](t.$str("mod").$as("mod"))["$>>"](t["$space?"]())["$>>"](t.$iteration().$as("divisor")).$as("mod")["$|"](t.$power_base_rules()["$>>"](t.$power_base()).$as("dividend")["$>>"](t["$space?"]())["$>>"](t.$str("mod").$as("mod"))["$>>"](t["$space?"]())["$>>"](t.$iteration().$as("divisor")).$as("mod"))["$|"](t.$power_base_rules().$as("dividend")["$>>"](t["$space?"]())["$>>"](t.$str("mod").$as("mod"))["$>>"](t["$space?"]())["$>>"](t.$iteration().$as("divisor")).$as("mod"))}),{$$s:m}),n(m,"rule",["iteration"],(function e(){var t=null==e.$$s?this:e.$$s;return t.$ternary_classes_rules()["$|"](t.$table().$as("table"))["$|"](t.$comma().$as("comma"))["$|"](t.$mod())["$|"](t.$sequence().$as("sequence")["$>>"](t["$space?"]())["$>>"](t.$str("//").$as("symbol")))["$|"](t.$str("color")["$>>"](t.$color_value().$as("color"))["$>>"](t.$sequence().$as("color_value")))["$|"](t.$frac())["$|"](t.$power_base_rules()["$>>"](t.$power_base()))["$|"](t.$power_base_rules())["$|"](t.$sequence().$as("sequence"))["$|"](t.$space())}),{$$s:m}),n(m,"rule",["expression"],(function e(){var t=null==e.$$s?this:e.$$s;return t.$left_right().$as("left_right")["$|"](t.$iteration()["$>>"](t["$space?"]())["$>>"](t.$expression()).$as("expr"))["$|"](t.$base().$as("symbol")["$>>"](t.$expression().$maybe()).$as("expr"))["$|"](t.$power().$as("symbol")["$>>"](t.$expression().$maybe()).$as("expr"))["$|"](t.$str(""))["$|"](t.$rparen().$as("rparen")["$>>"](t["$space?"]())["$>>"](t.$controversial_symbols())["$>>"](t.$comma().$as("comma").$maybe())["$>>"](t.$expression()).$repeat(1).$as("expr"))["$|"](t.$power().$as("symbol")["$>>"](t["$space?"]())["$>>"](t.$expression()).$as("expr"))["$|"](t.$comma().$as("comma").$maybe())}),{$$s:m}),m.$root("expression"),o(m,"$arr_to_expression",(function(e,t){var r;return null==t&&(t=_),r=e.$first().$class(),n(e,"reduce",[],(function e(n,a){var i=null==e.$$s?this:e.$$s;return null==n&&(n=_),null==a&&(a=_),s(n["$is_a?"](r))&&(n=i.$str(n).$as(t)),n["$|"](i.$str(a).$as(t))}),{$$s:this})}),-2),o(m,"$read_text",(function(){return n(this,"dynamic",[],(function e(t,r){var n,a=null==e.$$s?this:e.$$s;return null==t&&(t=_),null==r&&(r=_),n=p(f("Constants"),"PARENTHESIS")["$[]"](r.$captures()["$[]"]("paren").$to_sym()),a.$match("[^"+n+"]").$repeat()}),{$$s:this})})),o(m,"$hash_to_expression",(function(e){var t,r=_;return t=e.$first().$class(),l(d[0],"@@expression",s(null!=d[0].$$cvars["@@expression"]?"class variable":_)?s(r=$(d[0],"@@expression",!1))?r:n(e,"reduce",[],(function e(r,n){var a=null==e.$$s?this:e.$$s;return null==r&&(r=_),null==n&&(n=_),s(r["$is_a?"](t))&&(r=a.$dynamic_parser_rules(r)),r["$|"](a.$dynamic_parser_rules(n))}),{$$s:this}):n(e,"reduce",[],(function e(r,n){var a=null==e.$$s?this:e.$$s;return null==r&&(r=_),null==n&&(n=_),s(r["$is_a?"](t))&&(r=a.$dynamic_parser_rules(r)),r["$|"](a.$dynamic_parser_rules(n))}),{$$s:this}))})),o(m,"$dynamic_parser_rules",(function(e){var t=this,r=_;switch(r=t.$str(e.$first().$to_s()),e.$last().valueOf()){case"symbol":return r.$as("symbol");case"unary_class":return r.$as("unary_class")["$>>"](t["$space?"]())["$>>"](t.$sequence().$maybe()).$as("unary");case"fonts":return r.$as("fonts_class")["$>>"](t["$space?"]())["$>>"](t.$sequence().$as("fonts_value"));case"special_fonts":return r.$as("bold_fonts");default:return _}}))}(m[0],p(d("Parslet"),"Parser"),m)}(m[0],0,m)}(c[0],c)},Opal.modules["plurimath/asciimath/constants"]=function(e){var t=e.module,r=e.klass,n=e.const_set,a=e.truthy,s=e.send,i=e.def,o=[],l=e.nil;return e.add_stubs("freeze,merge,named_hash,keys,to_h,sort_by,-@,length,each_with_object,[]="),function(o,$){var u=[t(o,"Plurimath")].concat($);return function(t,o,$){var u=[r(t,null,"Asciimath")].concat($);return function(t,o,$){var u=r(t,null,"Constants"),c=[u].concat($);return n(c[0],"TABLE_PARENTHESIS",new Map([["ᑕ","ᑐ"],["",""],["[","]"],["(",")"]]).$freeze()),n(c[0],"PARENTHESIS",new Map([["ᑕ","ᑐ"],["",""],["(",")"],["{","}"],["[","]"]]).$freeze()),n(c[0],"SYMBOLS",new Map([["twoheadrightarrowtail","&#x2916;"],["twoheadrightarrow","&#x21a0;"],["rightarrowtail","&#x21a3;"],["Leftrightarrow","&#x21d4;"],["leftrightarrow","&#x2194;"],["Rightarrow","&#x21d2;"],["rightarrow","&#x2192;"],["varepsilon","&#x25b;"],["Leftarrow","&#x21d0;"],["leftarrow","&#x2190;"],["downarrow","&#x2193;"],["therefore","&#x2234;"],["backslash","&#x5c;"],["setminus","&#x29f5;"],["triangle","&#x25b3;"],["bigwedge","&#x22c0;"],["rceiling","&#x2309;"],["lceiling","&#x2308;"],["supseteq","&#x2287;"],["subseteq","&#x2286;"],["vartheta","&#x3d1;"],["emptyset","&#x2205;"],["diamond","&#x22c4;"],["uparrow","&#x2191;"],["implies","&#x21d2;"],["partial","&#x2202;"],["because","&#x2235;"],["upsilon","&#x3c5;"],["epsilon","&#x3b5;"],["bigcap","&#x22c2;"],["bigvee","&#x22c1;"],["propto","&#x221d;"],["approx","&#x2248;"],["exists","&#x2203;"],["forall","&#x2200;"],["otimes","&#x2297;"],["ltimes","&#x22c9;"],["bowtie","&#x22c8;"],["rtimes","&#x22ca;"],["models","&#x22a8;"],["mapsto","&#x21a6;"],["bigcup","&#x22c3;"],["succeq","&#x2ab0;"],["preceq","&#x2aaf;"],["rfloor","&#x230b;"],["lfloor","&#x230a;"],["square","&#x25a1;"],["supset","&#x2283;"],["subset","&#x2282;"],["lambda","&#x3bb;"],["Lambda","&#x39b;"],["varphi","&#x3c6;"],["rangle","&#x232a;"],["langle","&#x2329;"],[">->>","&#x2916;"],["/_\\","&#x25b3;"],["|><|","&#x22c8;"],["kappa","&#x3ba;"],["Delta","&#x394;"],["delta","&#x3b4;"],["gamma","&#x3b3;"],["Gamma","&#x393;"],["Theta","&#x398;"],["theta","&#x3b8;"],["alpha","&#x3b1;"],["aleph","&#x2135;"],["infty","&#x221e;"],["equiv","&#x2261;"],["frown","&#x2322;"],["notin","&#x2209;"],["angle","&#x2220;"],["prime","&#x2032;"],["!in","&#x2209;"],["cdots","&#x22ef;"],["vdash","&#x22a2;"],["wedge","&#x2227;"],["oplus","&#x2295;"],["nabla","&#x2207;"],["ddots","&#x22f1;"],["vdots","&#x22ee;"],["Sigma","&#x3a3;"],["Omega","&#x3a9;"],["omega","&#x3c9;"],["sigma","&#x3c3;"],["times","&#xd7;"],["ldots","&#x2026;"],[">-=","&#x2ab0;"],["-<=","&#x2aaf;"],["><|","&#x22ca;"],["|==","&#x22a8;"],["|--","&#x22a2;"],["^^^","&#x22c0;"],["|->","&#x21a6;"],[">->","&#x21a3;"],["->>","&#x21a0;"],["__|","&#x230b;"],["|__","&#x230a;"],["|><","&#x22c9;"],["_|_","&#x22a5;"],["***","&#x22c6;"],["<=>","&#x21d4;"],["...","&#x2026;"],["(:","&#x2329;"],[":)","&#x232a;"],["quad","&#x2001;"],["star","&#x22c6;"],["odot","&#x2299;"],["cdot","&#x22c5;"],["rarr","&#x2192;"],["darr","&#x2193;"],["prop","&#x221d;"],["lArr","&#x21d0;"],["rArr","&#x21d2;"],["uarr","&#x2191;"],["hArr","&#x21d4;"],["harr","&#x2194;"],["larr","&#x2190;"],["grad","&#x2207;"],["circ","&#x2218;"],["sube","&#x2286;"],["supe","&#x2287;"],["succ","&#x227b;"],["prec","&#x227a;"],["cong","&#x2245;"],["beta","&#x3b2;"],["zeta","&#x3b6;"],["iota","&#x3b9;"],[":'","&#x2235;"],["^^","&#x2227;"],["o+","&#x2295;"],["o.","&#x2299;"],["**","&#x2217;"],["~~","&#x2248;"],["O/","&#x2205;"],["->","&#x2192;"],["=>","&#x21d2;"],[">>","&#x232a;"],["<<","&#x2329;"],["~|","&#x2309;"],["!=","&#x2260;"],[">-","&#x227b;"],["-<","&#x227a;"],["~=","&#x2245;"],["-=","&#x2261;"],[":.","&#x2234;"],[">=","&#x2265;"],["<=","&#x2264;"],["|~","&#x2308;"],["/_","&#x2220;"],["''","&#x2033;"],["+-","&#xb1;"],["-:","&#xf7;"],["\\ ","&#xa0;"],["\\","\\"],["//","/"],["sup","&#x2283;"],["sub","&#x2282;"],["top","&#x22a4;"],["vvv","&#x22c1;"],["vee","&#x2228;"],["nnn","&#x22c2;"],["cap","&#x2229;"],["ast","&#x2217;"],["bot","&#x22a5;"],["del","&#x2202;"],["uuu","&#x22c3;"],["cup","&#x222a;"],["iff","&#x21d4;"],["eta","&#x3b7;"],["Phi","&#x3a6;"],["Psi","&#x3a8;"],["psi","&#x3c8;"],["chi","&#x3c7;"],["phi","&#x3d5;"],["rho","&#x3c1;"],["tau","&#x3c4;"],["div","&#xf7;"],["neg","&#xac;"],["not","&#xac;"],["*","&#x22c5;"],["@","&#x2218;"],["<","&#x3c;"],[">","&#x3e;"],["/","&#x2f;"],[":","&#x3a;"],["!","&#x21;"],[",","&#x2c;"],[";","&#x3b;"],["?","&#x3f;"],["$","&#x24;"],["~","&#x7e;"],["|","&#x7c;"],["%","&#x25;"],["'","&#x2032;"],["&","&#x26;"],["#","&#x23;"],["=","="],["-","-"],["+","+"],["nn","&#x2229;"],["vv","&#x2228;"],["TT","&#x22a4;"],["EE","&#x2203;"],["ox","&#x2297;"],["to","&#x2192;"],["AA","&#x2200;"],["uu","&#x222a;"],["ne","&#x2260;"],["oo","&#x221e;"],["ge","&#x2265;"],["le","&#x2264;"],["in","&#x2208;"],["nu","&#x3bd;"],["mu","&#x3bc;"],["pi","&#x3c0;"],["Pi","&#x3a0;"],["xi","&#x3be;"],["Xi","&#x39e;"],["xx","&#xd7;"],["pm","&#xb1;"],["gt","&#x3e;"],["lt","&#x3c;"],["if","if"]]).$freeze()),n(c[0],"UNARY_CLASSES",e.large_array_unpack("underbrace,overbrace,underline,arccos,arcsin,arctan,ubrace,obrace,cancel,tilde,floor,ceil,ddot,coth,csch,sech,sinh,tanh,cosh,sqrt,norm,text,sec,sin,tan,cos,exp,gcd,glb,lcm,lub,cot,csc,det,dim,max,min,abs,bar,dot,hat,vec,ul,ln").$freeze()),n(c[0],"BINARY_CLASSES",["underset","stackrel","overset","frac","root"].$freeze()),n(c[0],"FONT_STYLES",["mathfrak","mathcal","mathbb","mathsf","mathtt","mathbf","bbb","bb","rm","fr","cc","sf","tt","ii"].$freeze()),n(c[0],"TERNARY_CLASSES",["prod","oint","sum","int"].$freeze()),n(c[0],"SUB_SUP_CLASSES",["lim","log"].$freeze()),n(c[0],"SPECIAL_BOLD_ALPHABETS",["ZZ","RR","QQ","NN","CC"].$freeze()),function(t,r){var n=[t].concat(r),o=e.$r(n);return i(t,"$precompile_constants",(function(){var e,t=this;return null==t.values&&(t.values=l),t.values=a(e=t.values)?e:t.$named_hash(o("UNARY_CLASSES"),"unary_class").$merge(t.$named_hash(o("SYMBOLS").$keys(),"symbol")).$merge(t.$named_hash(o("FONT_STYLES"),"fonts")).$merge(t.$named_hash(o("SPECIAL_BOLD_ALPHABETS"),"special_fonts")),s(t.values,"sort_by",[],(function(e,t){return null==e&&(e=l),null==t&&(t=l),e.$length()["$-@"]()})).$to_h()})),i(t,"$named_hash",(function(e,t){return s(e,"each_with_object",[new Map],(function(e,r){var n;return null==e&&(e=l),null==r&&(r=l),s(r,"[]=",n=[e,t]),n[n.length-1]}))}))}(e.get_singleton_class(u),c)}(u[0],0,u)}(u[0],0,u)}(o[0],o)},Opal.modules["plurimath/asciimath/transform"]=function(e){var t=e.module,r=e.klass,n=e.send,a=e.truthy,s=e.eqeqeq,i=e.rb_plus,o=[],l=e.nil,$=e.$$$;return e.add_stubs("rule,simple,mod,frac,unary,table,symbol_object,comma,sequence,filter_values,rparen,new,number,ternary,table_row,power_base,left_right,table_left,table_right,int_exp,power_value,expr,[],to_s,font,get_class,binary,subtree,flatten,comma_separated,to_sym,symbol,===,compact,is_a?,text,join,base_value,frac_values,numerator,shift,value,<<,unfenced_value,denominator,pop,empty?,insert,strip,+,power,base,td_value,td,td_values,tds_list,font_style,fonts_value,include?,function,any?,symbol_value,to_a,slice_before,first,d,x,sym,third,new_number,binary_class,ternary_class,left,right,dividend,divisor,lparen,color,parameter_one,color_value"),function(o,u){var c=[t(o,"Plurimath")].concat(u);return function(t,o,u){var c=[r(t,null,"Asciimath")].concat(u),_=e.$r(c);return function(t,o,u){var c=r(t,o,"Transform"),_=[c].concat(u),p=e.$r(_);return n(c,"rule",[new Map([["mod",c.$simple("mod")]])],(function e(){return(null==e.$$s?this:e.$$s).$mod()}),{$$s:c}),n(c,"rule",[new Map([["frac",c.$simple("frac")]])],(function e(){return(null==e.$$s?this:e.$$s).$frac()}),{$$s:c}),n(c,"rule",[new Map([["unary",c.$simple("unary")]])],(function e(){return(null==e.$$s?this:e.$$s).$unary()}),{$$s:c}),n(c,"rule",[new Map([["table",c.$simple("table")]])],(function e(){return(null==e.$$s?this:e.$$s).$table()}),{$$s:c}),n(c,"rule",[new Map([["comma",c.$simple("comma")]])],(function e(){var t=null==e.$$s?this:e.$$s;return p("Utility").$symbol_object(t.$comma())}),{$$s:c}),n(c,"rule",[new Map([["unary",c.$sequence("unary")]])],(function e(){var t=null==e.$$s?this:e.$$s;return p("Utility").$filter_values(t.$unary())}),{$$s:c}),n(c,"rule",[new Map([["rparen",c.$simple("rparen")]])],(function e(){var t=null==e.$$s?this:e.$$s;return p("Utility").$symbol_object(t.$rparen())}),{$$s:c}),n(c,"rule",[new Map([["number",c.$simple("number")]])],(function e(){var t=null==e.$$s?this:e.$$s;return $(p("Math"),"Number").$new(t.$number())}),{$$s:c}),n(c,"rule",[new Map([["ternary",c.$simple("ternary")]])],(function e(){return(null==e.$$s?this:e.$$s).$ternary()}),{$$s:c}),n(c,"rule",[new Map([["sequence",c.$simple("sequence")]])],(function e(){return(null==e.$$s?this:e.$$s).$sequence()}),{$$s:c}),n(c,"rule",[new Map([["table_row",c.$simple("table_row")]])],(function e(){return(null==e.$$s?this:e.$$s).$table_row()}),{$$s:c}),n(c,"rule",[new Map([["sequence",c.$sequence("sequence")]])],(function e(){return(null==e.$$s?this:e.$$s).$sequence()}),{$$s:c}),n(c,"rule",[new Map([["power_base",c.$simple("power_base")]])],(function e(){return(null==e.$$s?this:e.$$s).$power_base()}),{$$s:c}),n(c,"rule",[new Map([["left_right",c.$simple("left_right")]])],(function e(){return(null==e.$$s?this:e.$$s).$left_right()}),{$$s:c}),n(c,"rule",[new Map([["table_left",c.$simple("table_left")]])],(function e(){return(null==e.$$s?this:e.$$s).$table_left()}),{$$s:c}),n(c,"rule",[new Map([["left_right",c.$sequence("left_right")]])],(function e(){return(null==e.$$s?this:e.$$s).$left_right()}),{$$s:c}),n(c,"rule",[new Map([["power_base",c.$sequence("power_base")]])],(function e(){return(null==e.$$s?this:e.$$s).$power_base()}),{$$s:c}),n(c,"rule",[new Map([["table_right",c.$simple("table_right")]])],(function e(){return(null==e.$$s?this:e.$$s).$table_right()}),{$$s:c}),n(c,"rule",[new Map([["intermediate_exp",c.$simple("int_exp")]])],(function e(){return(null==e.$$s?this:e.$$s).$int_exp()}),{$$s:c}),n(c,"rule",[new Map([["power_value",c.$sequence("power_value")]])],(function e(){return(null==e.$$s?this:e.$$s).$power_value()}),{$$s:c}),n(c,"rule",[new Map([["mod",c.$simple("mod")],["expr",c.$simple("expr")]])],(function e(){var t=null==e.$$s?this:e.$$s;return[t.$mod(),t.$expr()]}),{$$s:c}),n(c,"rule",[new Map([["bold_fonts",c.$simple("font")]])],(function e(){var t=null==e.$$s?this:e.$$s;return $($($(p("Math"),"Function"),"FontStyle"),"DoubleStruck").$new(p("Utility").$symbol_object(t.$font().$to_s()["$[]"](0)),"mathbf")}),{$$s:c}),n(c,"rule",[new Map([["unary_class",c.$simple("unary")]])],(function e(){var t=null==e.$$s?this:e.$$s;return p("Utility").$get_class(t.$unary()).$new()}),{$$s:c}),n(c,"rule",[new Map([["binary_class",c.$simple("binary")]])],(function e(){var t=null==e.$$s?this:e.$$s;return p("Utility").$get_class(t.$binary()).$new()}),{$$s:c}),n(c,"rule",[new Map([["ternary_class",c.$simple("ternary")]])],(function e(){var t=null==e.$$s?this:e.$$s;return p("Utility").$get_class(t.$ternary()).$new()}),{$$s:c}),n(c,"rule",[new Map([["comma_separated",c.$subtree("comma_separated")]])],(function e(){return(null==e.$$s?this:e.$$s).$comma_separated().$flatten()}),{$$s:c}),n(c,"rule",[new Map([["symbol",c.$simple("symbol")]])],(function e(){var t,r=null==e.$$s?this:e.$$s;return p("Utility").$symbol_object((a(t=$(p("Constants"),"SYMBOLS")["$[]"](r.$symbol().$to_sym()))?t:r.$symbol()).$to_s())}),{$$s:c}),n(c,"rule",[new Map([["expr",c.$subtree("expr")]])],(function e(){var t=null==e.$$s?this:e.$$s;return s(p("Array"),t.$expr())?t.$expr().$flatten().$compact():t.$expr()}),{$$s:c}),n(c,"rule",[new Map([["text",c.$simple("text")]])],(function e(){var t=null==e.$$s?this:e.$$s;return a(t.$text()["$is_a?"](p("Slice")))?p("Utility").$get_class("text").$new(t.$text()):t.$text()}),{$$s:c}),n(c,"rule",[new Map([["text",c.$sequence("text")]])],(function e(){var t=null==e.$$s?this:e.$$s;return p("Utility").$get_class("text").$new(t.$text().$join())}),{$$s:c}),n(c,"rule",[new Map([["power_value",c.$simple("power_value")]])],(function e(){return(null==e.$$s?this:e.$$s).$power_value()}),{$$s:c}),n(c,"rule",[new Map([["base_value",c.$simple("base_value")]])],(function e(){return(null==e.$$s?this:e.$$s).$base_value()}),{$$s:c}),n(c,"rule",[new Map([["base_value",c.$sequence("base_value")]])],(function e(){var t=null==e.$$s?this:e.$$s;return p("Utility").$filter_values(t.$base_value())}),{$$s:c}),n(c,"rule",[new Map([["numerator",c.$simple("numerator")],["denominator",c.$simple("denominator")]])],(function e(){var t,r=null==e.$$s?this:e.$$s,n=l,s=l,i=l;return n=[],a(p("Utility").$frac_values(r.$numerator()))&&(s=r.$numerator().$value().$shift()),n["$<<"](s),s=p("Utility").$unfenced_value(r.$numerator()),a(p("Utility").$frac_values(r.$denominator()))&&(i=r.$denominator().$value().$pop()),n["$<<"](i),i=p("Utility").$unfenced_value(r.$denominator()),t=$($(p("Math"),"Function"),"Frac").$new(s,i),a(n.$compact()["$empty?"]())?t:$(p("Math"),"Formula").$new(n.$insert(1,t).$compact())}),{$$s:c}),n(c,"rule",[new Map([["numerator",c.$simple("numerator")],["denominator",c.$sequence("denominator")]])],(function e(){var t,r=null==e.$$s?this:e.$$s,n=l,s=l,i=l;return n=[],a(p("Utility").$frac_values(r.$numerator()))&&(s=r.$numerator().$value().$shift()),n["$<<"](s),s=p("Utility").$unfenced_value(r.$numerator()),a(p("Utility").$frac_values(r.$denominator()))&&(i=r.$denominator().$pop()),n["$<<"](i),i=p("Utility").$unfenced_value(r.$denominator()),t=$($(p("Math"),"Function"),"Frac").$new(s,i),a(n.$compact()["$empty?"]())?t:$(p("Math"),"Formula").$new(n.$insert(1,t).$compact())}),{$$s:c}),n(c,"rule",[new Map([["sequence",c.$simple("sequence")],["left_right",c.$simple("left_right")]])],(function e(){var t=null==e.$$s?this:e.$$s,r=l;return r=[t.$sequence()],a(t.$left_right().$to_s().$strip()["$empty?"]())||r["$<<"](t.$left_right()),r}),{$$s:c}),n(c,"rule",[new Map([["sequence",c.$simple("sequence")],["left_right",c.$sequence("left_right")]])],(function e(){var t=null==e.$$s?this:e.$$s,r=l;return r=[t.$sequence()],a(t.$left_right()["$empty?"]())||(r=i(r,t.$left_right())),r}),{$$s:c}),n(c,"rule",[new Map([["sequence",c.$simple("sequence")],["number",c.$simple("number")]])],(function e(){var t=null==e.$$s?this:e.$$s;return[t.$sequence(),$(p("Math"),"Number").$new(t.$number().$to_s())]}),{$$s:c}),n(c,"rule",[new Map([["table_row",c.$simple("table_row")],["expr",c.$simple("expr")]])],(function e(){var t=null==e.$$s?this:e.$$s,r=l;return r=[t.$table_row()],a(t.$expr().$to_s().$strip()["$empty?"]())||r["$<<"](t.$expr()),r}),{$$s:c}),n(c,"rule",[new Map([["table_row",c.$simple("table_row")],["expr",c.$sequence("expr")]])],(function e(){var t=null==e.$$s?this:e.$$s;return t.$expr().$flatten().$compact().$insert(0,t.$table_row())}),{$$s:c}),n(c,"rule",[new Map([["comma",c.$simple("comma")],["expr",c.$simple("expr")]])],(function e(){var t=null==e.$$s?this:e.$$s,r=l;return r=[p("Utility").$symbol_object(t.$comma())],a(t.$expr().$to_s().$strip()["$empty?"]())||r["$<<"](t.$expr()),r}),{$$s:c}),n(c,"rule",[new Map([["comma",c.$simple("comma")],["expr",c.$sequence("expr")]])],(function e(){var t=null==e.$$s?this:e.$$s;return t.$expr().$flatten().$compact().$insert(0,p("Utility").$symbol_object(t.$comma()))}),{$$s:c}),n(c,"rule",[new Map([["symbol",c.$simple("symbol")],["expr",c.$sequence("expr")]])],(function e(){var t=null==e.$$s?this:e.$$s;return t.$expr().$flatten().$compact().$insert(0,p("Utility").$symbol_object(t.$symbol()))}),{$$s:c}),n(c,"rule",[new Map([["rparen",c.$simple("rparen")],["expr",c.$simple("expr")]])],(function e(){var t=null==e.$$s?this:e.$$s;return[p("Utility").$symbol_object(t.$rparen()),t.$expr()]}),{$$s:c}),n(c,"rule",[new Map([["rparen",c.$simple("rparen")],["expr",c.$sequence("expr")]])],(function e(){var t=null==e.$$s?this:e.$$s;return t.$expr().$flatten().$compact().$insert(0,p("Utility").$symbol_object(t.$rparen()))}),{$$s:c}),n(c,"rule",[new Map([["rparen",c.$simple("rparen")],["power",c.$simple("power")]])],(function e(){var t=null==e.$$s?this:e.$$s;return $($(p("Math"),"Function"),"Power").$new(p("Utility").$symbol_object(t.$rparen()),p("Utility").$unfenced_value(t.$power()))}),{$$s:c}),n(c,"rule",[new Map([["rparen",c.$simple("rparen")],["power",c.$simple("power")],["expr",c.$simple("expr")]])],(function e(){var t=null==e.$$s?this:e.$$s,r=l;return r=[$($(p("Math"),"Function"),"Power").$new(p("Utility").$symbol_object(t.$rparen()),p("Utility").$unfenced_value(t.$power()))],a(t.$expr().$to_s().$strip()["$empty?"]())||r["$<<"](t.$expr()),r}),{$$s:c}),n(c,"rule",[new Map([["rparen",c.$simple("rparen")],["power",c.$simple("power")],["expr",c.$sequence("expr")]])],(function e(){var t,r=null==e.$$s?this:e.$$s;return t=$($(p("Math"),"Function"),"Power").$new(p("Utility").$symbol_object(r.$rparen()),p("Utility").$unfenced_value(r.$power())),i([t],r.$expr())}),{$$s:c}),n(c,"rule",[new Map([["rparen",c.$simple("rparen")],["base",c.$simple("base")]])],(function e(){var t=null==e.$$s?this:e.$$s;return $($(p("Math"),"Function"),"Base").$new(p("Utility").$symbol_object(t.$rparen()),p("Utility").$unfenced_value(t.$base()))}),{$$s:c}),n(c,"rule",[new Map([["rparen",c.$simple("rparen")],["base",c.$simple("base")],["expr",c.$simple("expr")]])],(function e(){var t=null==e.$$s?this:e.$$s,r=l;return r=[$($(p("Math"),"Function"),"Base").$new(p("Utility").$symbol_object(t.$rparen()),p("Utility").$unfenced_value(t.$base()))],a(t.$expr().$to_s().$strip()["$empty?"]())||r["$<<"](t.$expr()),r}),{$$s:c}),n(c,"rule",[new Map([["rparen",c.$simple("rparen")],["power",c.$simple("power")],["comma",c.$simple("comma")]])],(function e(){var t=null==e.$$s?this:e.$$s;return[$($(p("Math"),"Function"),"Power").$new(p("Utility").$symbol_object(t.$rparen()),p("Utility").$unfenced_value(t.$power())),p("Utility").$symbol_object(t.$comma())]}),{$$s:c}),n(c,"rule",[new Map([["rparen",c.$simple("rparen")],["power",c.$simple("power")],["comma",c.$simple("comma")],["expr",c.$simple("expr")]])],(function e(){var t=null==e.$$s?this:e.$$s,r=l;return r=[$($(p("Math"),"Function"),"Power").$new(p("Utility").$symbol_object(t.$rparen()),p("Utility").$unfenced_value(t.$power())),p("Utility").$symbol_object(t.$comma())],a(t.$expr().$to_s().$strip()["$empty?"]())||r["$<<"](t.$expr()),r}),{$$s:c}),n(c,"rule",[new Map([["rparen",c.$simple("rparen")],["power",c.$simple("power")],["comma",c.$simple("comma")],["expr",c.$sequence("expr")]])],(function e(){var t=null==e.$$s?this:e.$$s,r=l;return r=[$($(p("Math"),"Function"),"Power").$new(p("Utility").$symbol_object(t.$rparen()),p("Utility").$unfenced_value(t.$power())),p("Utility").$symbol_object(t.$comma())],r=i(r,t.$expr())}),{$$s:c}),n(c,"rule",[new Map([["rparen",c.$simple("rparen")],["base",c.$simple("base")],["comma",c.$simple("comma")]])],(function e(){var t=null==e.$$s?this:e.$$s;return[$($(p("Math"),"Function"),"Base").$new(p("Utility").$symbol_object(t.$rparen()),p("Utility").$unfenced_value(t.$base())),p("Utility").$symbol_object(t.$comma())]}),{$$s:c}),n(c,"rule",[new Map([["comma",c.$simple("comma")],["left_right",c.$simple("left_right")]])],(function e(){var t=null==e.$$s?this:e.$$s;return[p("Utility").$symbol_object(t.$comma()),t.$left_right()]}),{$$s:c}),n(c,"rule",[new Map([["td",c.$simple("td")]])],(function e(){var t=null==e.$$s?this:e.$$s;return $($(p("Math"),"Function"),"Td").$new([p("Utility").$td_value(t.$td())])}),{$$s:c}),n(c,"rule",[new Map([["td",c.$sequence("td")]])],(function e(){var t=null==e.$$s?this:e.$$s;return p("Utility").$td_values(t.$td(),",")}),{$$s:c}),n(c,"rule",[new Map([["open_tr",c.$simple("tr")],["tds_list",c.$simple("tds_list")]])],(function e(){var t=null==e.$$s?this:e.$$s;return $($(p("Math"),"Function"),"Tr").$new([t.$tds_list()])}),{$$s:c}),n(c,"rule",[new Map([["open_tr",c.$simple("tr")],["tds_list",c.$sequence("tds_list")]])],(function e(){var t=null==e.$$s?this:e.$$s;return $($(p("Math"),"Function"),"Tr").$new(t.$tds_list())}),{$$s:c}),n(c,"rule",[new Map([["fonts_class",c.$simple("font_style")],["fonts_value",c.$simple("fonts_value")]])],(function e(){var t=null==e.$$s?this:e.$$s;return $(p("Utility"),"FONT_STYLES")["$[]"](t.$font_style().$to_sym()).$new(p("Utility").$unfenced_value(t.$fonts_value()),t.$font_style().$to_s())}),{$$s:c}),n(c,"rule",[new Map([["unary_class",c.$simple("function")],["fonts_class",c.$simple("font_style")],["fonts_value",c.$simple("fonts_value")]])],(function e(){var t,r,n=null==e.$$s?this:e.$$s;return t=$(p("Utility"),"FONT_STYLES")["$[]"](n.$font_style().$to_sym()).$new(p("Utility").$unfenced_value(n.$fonts_value()),n.$font_style().$to_s()),r=a($(p("Utility"),"UNARY_CLASSES")["$include?"](n.$function()))?t:p("Utility").$unfenced_value(t),p("Utility").$get_class(n.$function()).$new(r)}),{$$s:c}),n(c,"rule",[new Map([["power_base",c.$simple("power_base")],["expr",c.$subtree("expr")]])],(function e(){var t=null==e.$$s?this:e.$$s;return t.$expr().$flatten().$compact().$insert(0,t.$power_base())}),{$$s:c}),n(c,"rule",[new Map([["power_base",c.$simple("power_base")],["expr",c.$simple("expr")]])],(function e(){var t=null==e.$$s?this:e.$$s,r=l;return r=[t.$power_base()],a(t.$expr().$to_s().$strip()["$empty?"]())||r["$<<"](t.$expr()),r}),{$$s:c}),n(c,"rule",[new Map([["frac",c.$simple("frac")],["expr",c.$subtree("expr")]])],(function e(){var t=null==e.$$s?this:e.$$s,r=l;return s(p("Array"),t.$expr())?t.$expr().$flatten().$compact().$insert(0,t.$frac()):(r=[t.$frac()],a(t.$expr().$to_s().$strip()["$empty?"]())||r["$<<"](t.$expr()),r)}),{$$s:c}),n(c,"rule",[new Map([["mod",c.$simple("mod")],["expr",c.$sequence("expr")]])],(function e(){var t=null==e.$$s?this:e.$$s;return t.$expr().$flatten().$compact().$insert(0,t.$mod())}),{$$s:c}),n(c,"rule",[new Map([["frac",c.$simple("frac")],["left_right",c.$simple("left_right")]])],(function e(){var t=null==e.$$s?this:e.$$s,r=l;return r=[t.$frac()],a(t.$left_right().$to_s().$strip()["$empty?"]())||r["$<<"](t.$left_right()),r}),{$$s:c}),n(c,"rule",[new Map([["power_base",c.$simple("power_base")],["power",c.$sequence("power")]])],(function e(){var t,r=null==e.$$s?this:e.$$s,n=l;return a(p("Utility").$frac_values(r.$power()))&&(n=r.$power().$shift()),t=$($(p("Math"),"Function"),"Power").$new(r.$power_base(),n),a(r.$power()["$empty?"]())?t:i([t],r.$power())}),{$$s:c}),n(c,"rule",[new Map([["power_base",c.$simple("power_base")],["left_right",c.$simple("left_right")]])],(function e(){var t=null==e.$$s?this:e.$$s,r=l;return r=[t.$power_base()],a(t.$left_right().$to_s().$strip()["$empty?"]())||r["$<<"](t.$left_right()),r}),{$$s:c}),n(c,"rule",[new Map([["power_base",c.$simple("power_base")],["power",c.$simple("power")]])],(function e(){var t=null==e.$$s?this:e.$$s;return $($(p("Math"),"Function"),"Power").$new(t.$power_base(),p("Utility").$unfenced_value(t.$power()))}),{$$s:c}),n(c,"rule",[new Map([["power_base",c.$simple("power_base")],["power",c.$simple("power")],["expr",c.$sequence("expr")]])],(function e(){var t,r=null==e.$$s?this:e.$$s;return t=$($(p("Math"),"Function"),"Power").$new(r.$power_base(),p("Utility").$unfenced_value(r.$power())),$(p("Math"),"Formula").$new(r.$expr().$flatten().$compact().$insert(0,t))}),{$$s:c}),n(c,"rule",[new Map([["power_base",c.$simple("power_base")],["base",c.$simple("base")]])],(function e(){var t=null==e.$$s?this:e.$$s,r=l;return a(t.$base()["$is_a?"]($(p("Math"),"Formula")))&&a(n(t.$base().$value(),"any?",[],(function(e){return null==e&&(e=l),p("Utility").$symbol_value(e,",")})))?(r=n(t.$base().$value(),"slice_before",[],(function(e){return null==e&&(e=l),p("Utility").$symbol_value(e,",")})).$to_a(),[$($(p("Math"),"Function"),"Base").$new(t.$power_base(),p("Utility").$filter_values(p("Utility").$unfenced_value(r.$shift()))),r.$shift().$first(),p("Utility").$filter_values(r)].$compact()):$($(p("Math"),"Function"),"Base").$new(t.$power_base(),p("Utility").$unfenced_value(t.$base()))}),{$$s:c}),n(c,"rule",[new Map([["power_base",c.$simple("power_base")],["base",c.$simple("base")],["expr",c.$sequence("expr")]])],(function e(){var t,r=null==e.$$s?this:e.$$s;return t=$($(p("Math"),"Function"),"Base").$new(r.$power_base(),p("Utility").$unfenced_value(r.$base())),$(p("Math"),"Formula").$new(r.$expr().$flatten().$compact().$insert(0,t))}),{$$s:c}),n(c,"rule",[new Map([["power_base",c.$simple("power_base")],["base",c.$simple("base")],["expr",c.$simple("expr")]])],(function e(){var t=null==e.$$s?this:e.$$s,r=l;return r=[$($(p("Math"),"Function"),"Base").$new(t.$power_base(),p("Utility").$unfenced_value(t.$base()))],a(t.$expr().$to_s().$strip()["$empty?"]())||r["$<<"](t.$expr()),$(p("Math"),"Formula").$new(r)}),{$$s:c}),n(c,"rule",[new Map([["power_base",c.$simple("power_base")],["base_value",c.$simple("base_value")],["power_value",c.$simple("power_value")]])],(function e(){var t=null==e.$$s?this:e.$$s;return $($(p("Math"),"Function"),"PowerBase").$new(t.$power_base(),p("Utility").$unfenced_value(t.$base_value()),p("Utility").$unfenced_value(t.$power_value()))}),{$$s:c}),n(c,"rule",[new Map([["power_base",c.$simple("power_base")],["base_value",c.$simple("base_value")],["power_value",c.$sequence("power_value")]])],(function e(){var t,r=null==e.$$s?this:e.$$s,n=l;return n=r.$power_value(),a(p("Utility").$frac_values(r.$power_value()))&&(n=r.$power_value().$shift()),t=$($(p("Math"),"Function"),"PowerBase").$new(r.$power_base(),p("Utility").$unfenced_value(r.$base_value()),p("Utility").$filter_values(n)),r.$power_value().$insert(0,t)}),{$$s:c}),n(c,"rule",[new Map([["power_base",c.$simple("power_base")],["base_value",c.$simple("base_value")],["power_value",c.$simple("power_value")],["expr",c.$sequence("expr")]])],(function e(){var t,r=null==e.$$s?this:e.$$s;return t=$($(p("Math"),"Function"),"PowerBase").$new(r.$power_base(),p("Utility").$unfenced_value(r.$base_value()),p("Utility").$unfenced_value(r.$power_value())),$(p("Math"),"Formula").$new(r.$expr().$flatten().$compact().$insert(0,t))}),{$$s:c}),n(c,"rule",[new Map([["rparen",c.$simple("rparen")],["base_value",c.$simple("base_value")],["power_value",c.$simple("power_value")]])],(function e(){var t=null==e.$$s?this:e.$$s;return $($(p("Math"),"Function"),"PowerBase").$new(p("Utility").$symbol_object(t.$rparen()),p("Utility").$unfenced_value(t.$base_value()),p("Utility").$unfenced_value(t.$power_value()))}),{$$s:c}),n(c,"rule",[new Map([["rparen",c.$simple("rparen")],["base_value",c.$simple("base_value")],["power_value",c.$simple("power_value")],["expr",c.$simple("expr")]])],(function e(){var t=null==e.$$s?this:e.$$s,r=l;return r=[$($(p("Math"),"Function"),"PowerBase").$new(p("Utility").$symbol_object(t.$rparen()),p("Utility").$unfenced_value(t.$base_value()),p("Utility").$unfenced_value(t.$power_value()))],a(t.$expr().$to_s().$strip()["$empty?"]())||r["$<<"](t.$expr()),r}),{$$s:c}),n(c,"rule",[new Map([["rparen",c.$simple("rparen")],["base_value",c.$sequence("base_value")],["power_value",c.$simple("power_value")],["expr",c.$simple("expr")]])],(function e(){var t=null==e.$$s?this:e.$$s,r=l;return r=[$($(p("Math"),"Function"),"PowerBase").$new(p("Utility").$symbol_object(t.$rparen()),p("Utility").$unfenced_value(t.$base_value()),p("Utility").$unfenced_value(t.$power_value()))],a(t.$expr().$to_s().$strip()["$empty?"]())||r["$<<"](t.$expr()),r}),{$$s:c}),n(c,"rule",[new Map([["rparen",c.$simple("rparen")],["base_value",c.$simple("base_value")],["power_value",c.$simple("power_value")],["expr",c.$sequence("expr")]])],(function e(){var t,r=null==e.$$s?this:e.$$s;return t=$($(p("Math"),"Function"),"PowerBase").$new(p("Utility").$symbol_object(r.$rparen()),p("Utility").$unfenced_value(r.$base_value()),p("Utility").$unfenced_value(r.$power_value())),r.$expr().$flatten().$compact().$insert(0,t)}),{$$s:c}),n(c,"rule",[new Map([["rparen",c.$simple("rparen")],["base_value",c.$sequence("base_value")],["power_value",c.$simple("power_value")],["expr",c.$sequence("expr")]])],(function e(){var t,r=null==e.$$s?this:e.$$s;return t=$($(p("Math"),"Function"),"PowerBase").$new(p("Utility").$symbol_object(r.$rparen()),p("Utility").$unfenced_value(r.$base_value()),p("Utility").$unfenced_value(r.$power_value())),r.$expr().$flatten().$compact().$insert(0,t)}),{$$s:c}),n(c,"rule",[new Map([["rparen",c.$simple("rparen")],["base_value",c.$sequence("base_value")],["power_value",c.$simple("power_value")],["comma",c.$simple("comma")],["expr",c.$sequence("expr")]])],(function e(){var t,r=null==e.$$s?this:e.$$s,n=l;return t=p("Utility").$symbol_object(r.$comma()),n=[$($(p("Math"),"Function"),"PowerBase").$new(p("Utility").$symbol_object(r.$rparen()),p("Utility").$unfenced_value(r.$base_value()),p("Utility").$unfenced_value(r.$power_value())),t],a(r.$expr().$to_s().$strip()["$empty?"]())||(n=i(n,r.$expr().$flatten().$compact())),n}),{$$s:c}),n(c,"rule",[new Map([["rparen",c.$simple("rparen")],["base_value",c.$simple("base_value")],["power_value",c.$simple("power_value")],["comma",c.$simple("comma")],["expr",c.$sequence("expr")]])],(function e(){var t,r=null==e.$$s?this:e.$$s,n=l;return t=p("Utility").$symbol_object(r.$comma()),n=[$($(p("Math"),"Function"),"PowerBase").$new(p("Utility").$symbol_object(r.$rparen()),p("Utility").$unfenced_value(r.$base_value()),p("Utility").$unfenced_value(r.$power_value())),t],a(r.$expr().$to_s().$strip()["$empty?"]())||(n=i(n,r.$expr().$flatten().$compact())),n}),{$$s:c}),n(c,"rule",[new Map([["power_base",c.$sequence("power_base")],["expr",c.$simple("expr")]])],(function e(){var t=null==e.$$s?this:e.$$s,r=l;return r=t.$power_base(),a(t.$expr().$to_s().$strip()["$empty?"]())||r["$<<"](t.$expr()),r}),{$$s:c}),n(c,"rule",[new Map([["power_base",c.$sequence("power_base")],["expr",c.$sequence("expr")]])],(function e(){var t=null==e.$$s?this:e.$$s;return i(t.$power_base(),t.$expr())}),{$$s:c}),n(c,"rule",[new Map([["sequence",c.$simple("sequence")],["expr",c.$subtree("expr")]])],(function e(){var t=null==e.$$s?this:e.$$s,r=l;return s(p("Array"),t.$expr())?t.$expr().$flatten().$compact().$insert(0,t.$sequence()):(r=[t.$sequence()],a(t.$expr().$to_s().$strip()["$empty?"]())||r["$<<"](t.$expr()),r)}),{$$s:c}),n(c,"rule",[new Map([["sequence",c.$sequence("sequence")],["expr",c.$simple("expr")]])],(function e(){var t=null==e.$$s?this:e.$$s,r=l;return r=t.$sequence().$flatten().$compact(),a(t.$expr().$to_s().$strip()["$empty?"]())||r["$<<"](t.$expr()),r}),{$$s:c}),n(c,"rule",[new Map([["sequence",c.$sequence("sequence")],["expr",c.$sequence("expr")]])],(function e(){var t=null==e.$$s?this:e.$$s;return i(t.$sequence().$flatten().$compact(),t.$expr().$flatten().$compact())}),{$$s:c}),n(c,"rule",[new Map([["sequence",c.$simple("sequence")],["symbol",c.$simple("symbol")]])],(function e(){var t=null==e.$$s?this:e.$$s;return[t.$sequence(),$(p("Math"),"Symbol").$new(t.$symbol())]}),{$$s:c}),n(c,"rule",[new Map([["binary_class",c.$simple("function")],["base_value",c.$simple("base")]])],(function e(){var t=null==e.$$s?this:e.$$s;return p("Utility").$get_class(t.$function()).$new(p("Utility").$unfenced_value(t.$base()))}),{$$s:c}),n(c,"rule",[new Map([["d",c.$simple("d")],["x",c.$simple("x")]])],(function e(){var t=null==e.$$s?this:e.$$s;return $(p("Math"),"Formula").$new([p("Utility").$symbol_object(t.$d()),p("Utility").$symbol_object(t.$x())])}),{$$s:c}),n(c,"rule",[new Map([["binary_class",c.$simple("function")],["base",c.$simple("base")]])],(function e(){var t=null==e.$$s?this:e.$$s;return p("Utility").$get_class(t.$function()).$new(p("Utility").$unfenced_value(t.$base()))}),{$$s:c}),n(c,"rule",[new Map([["binary_class",c.$simple("function")],["power",c.$simple("power")]])],(function e(){var t=null==e.$$s?this:e.$$s;return p("Utility").$get_class(t.$function()).$new(l,p("Utility").$unfenced_value(t.$power()))}),{$$s:c}),n(c,"rule",[new Map([["sequence",c.$simple("sequence")],["symbol",c.$simple("sym")],["expr",c.$simple("expr")]])],(function e(){var t,r,n=null==e.$$s?this:e.$$s;return t=p("Utility").$symbol_object((a(r=$(p("Constants"),"SYMBOLS")["$[]"](n.$sym().$to_sym()))?r:n.$sym()).$to_s()),[n.$sequence(),t,n.$expr()]}),{$$s:c}),n(c,"rule",[new Map([["sequence",c.$simple("sequence")],["symbol",c.$simple("sym")],["expr",c.$sequence("expr")]])],(function e(){var t,r,n=null==e.$$s?this:e.$$s,s=l;return t=p("Utility").$symbol_object((a(r=$(p("Constants"),"SYMBOLS")["$[]"](n.$sym().$to_sym()))?r:n.$sym()).$to_s()),s=[n.$sequence(),t],a(n.$expr().$to_s().$strip()["$empty?"]())||(s=i(s,n.$expr().$flatten().$compact())),s}),{$$s:c}),n(c,"rule",[new Map([["binary_class",c.$simple("function")],["base_value",c.$simple("base")],["power_value",c.$simple("power")]])],(function e(){var t=null==e.$$s?this:e.$$s;return p("Utility").$get_class(t.$function()).$new(p("Utility").$unfenced_value(t.$base()),p("Utility").$unfenced_value(t.$power()))}),{$$s:c}),n(c,"rule",[new Map([["ternary_class",c.$simple("function")],["base_value",c.$simple("base")],["power_value",c.$simple("power")]])],(function e(){var t=null==e.$$s?this:e.$$s;return p("Utility").$get_class(t.$function()).$new(p("Utility").$unfenced_value(t.$base()),p("Utility").$unfenced_value(t.$power()))}),{$$s:c}),n(c,"rule",[new Map([["ternary_class",c.$simple("function")],["base",c.$simple("base")]])],(function e(){var t=null==e.$$s?this:e.$$s;return p("Utility").$get_class(t.$function()).$new(p("Utility").$unfenced_value(t.$base()))}),{$$s:c}),n(c,"rule",[new Map([["ternary_class",c.$simple("function")],["base",c.$simple("base")],["third_value",c.$simple("third")]])],(function e(){var t,r=null==e.$$s?this:e.$$s;return t=a(r.$third()["$is_a?"](p("Slice")))?l:r.$third(),p("Utility").$get_class(r.$function()).$new(p("Utility").$unfenced_value(r.$base()),l,t)}),{$$s:c}),n(c,"rule",[new Map([["ternary_class",c.$simple("function")],["power",c.$simple("power")]])],(function e(){var t=null==e.$$s?this:e.$$s;return p("Utility").$get_class(t.$function()).$new(l,p("Utility").$unfenced_value(t.$power()))}),{$$s:c}),n(c,"rule",[new Map([["ternary_class",c.$simple("function")],["expr",c.$simple("expr")]])],(function e(){var t=null==e.$$s?this:e.$$s;return[p("Utility").$get_class(t.$function()).$new(),t.$expr()]}),{$$s:c}),n(c,"rule",[new Map([["ternary_class",c.$simple("function")],["expr",c.$sequence("expr")]])],(function e(){var t=null==e.$$s?this:e.$$s;return t.$expr().$insert(0,p("Utility").$get_class(t.$function()).$new())}),{$$s:c}),n(c,"rule",[new Map([["ternary",c.$simple("ternary")],["expr",c.$simple("expr")]])],(function e(){var t=null==e.$$s?this:e.$$s;return[t.$ternary(),t.$expr()]}),{$$s:c}),n(c,"rule",[new Map([["ternary_class",c.$simple("function")],["power",c.$simple("power")],["third_value",c.$simple("third")]])],(function e(){var t,r=null==e.$$s?this:e.$$s;return t=a(r.$third()["$is_a?"](p("Slice")))?l:r.$third(),p("Utility").$get_class(r.$function()).$new(l,p("Utility").$unfenced_value(r.$power()),t)}),{$$s:c}),n(c,"rule",[new Map([["ternary_class",c.$simple("function")],["base_value",c.$simple("base")],["power_value",c.$simple("power")],["third_value",c.$simple("third")]])],(function e(){var t,r=null==e.$$s?this:e.$$s;return t=a(r.$third()["$is_a?"](p("Slice")))?l:r.$third(),p("Utility").$get_class(r.$function()).$new(p("Utility").$unfenced_value(r.$base()),p("Utility").$unfenced_value(r.$power()),t)}),{$$s:c}),n(c,"rule",[new Map([["ternary_class",c.$simple("function")],["base_value",c.$simple("base")],["power_value",c.$simple("power")],["third_value",c.$sequence("third")]])],(function e(){var t,r=null==e.$$s?this:e.$$s;return t=a(r.$third()["$is_a?"](p("Slice")))?l:r.$third(),p("Utility").$get_class(r.$function()).$new(p("Utility").$unfenced_value(r.$base()),p("Utility").$unfenced_value(r.$power()),p("Utility").$filter_values(t))}),{$$s:c}),n(c,"rule",[new Map([["unary_class",c.$simple("function")],["intermediate_exp",c.$simple("int_exp")]])],(function e(){var t,r=null==e.$$s?this:e.$$s;return t=a($(p("Utility"),"UNARY_CLASSES")["$include?"](r.$function()))?r.$int_exp():p("Utility").$unfenced_value(r.$int_exp()),p("Utility").$get_class(r.$function()).$new(t)}),{$$s:c}),n(c,"rule",[new Map([["unary_class",c.$simple("function")],["symbol",c.$simple("symbol")]])],(function e(){var t,r,n=null==e.$$s?this:e.$$s;return t=p("Utility").$symbol_object((a(r=$(p("Constants"),"SYMBOLS")["$[]"](n.$symbol().$to_sym()))?r:n.$symbol()).$to_s()),p("Utility").$get_class(n.$function()).$new(t)}),{$$s:c}),n(c,"rule",[new Map([["unary_class",c.$simple("function")],["number",c.$simple("new_number")]])],(function e(){var t,r=null==e.$$s?this:e.$$s;return t=$(p("Math"),"Number").$new(r.$new_number()),p("Utility").$get_class(r.$function()).$new(t)}),{$$s:c}),n(c,"rule",[new Map([["unary_class",c.$simple("function")],["unary",c.$simple("unary")]])],(function e(){var t,r=null==e.$$s?this:e.$$s;return t=a($(p("Utility"),"UNARY_CLASSES")["$include?"](r.$function()))?r.$unary():p("Utility").$unfenced_value(r.$unary()),p("Utility").$get_class(r.$function()).$new(t)}),{$$s:c}),n(c,"rule",[new Map([["unary_class",c.$simple("function")],["binary_class",c.$simple("binary_class")]])],(function e(){var t=null==e.$$s?this:e.$$s;return[p("Utility").$get_class(t.$function()).$new(),p("Utility").$get_class(t.$binary_class()).$new()]}),{$$s:c}),n(c,"rule",[new Map([["unary_class",c.$simple("function")],["ternary_class",c.$simple("ternary_class")]])],(function e(){var t=null==e.$$s?this:e.$$s;return[p("Utility").$get_class(t.$function()).$new(),p("Utility").$get_class(t.$ternary_class()).$new()]}),{$$s:c}),n(c,"rule",[new Map([["ternary",c.$simple("ternary")],["expr",c.$sequence("expr")]])],(function e(){var t=null==e.$$s?this:e.$$s;return t.$expr().$insert(0,t.$ternary())}),{$$s:c}),n(c,"rule",[new Map([["ternary",c.$simple("ternary")],["left_right",c.$simple("left_right")]])],(function e(){var t=null==e.$$s?this:e.$$s;return[t.$ternary(),t.$left_right()]}),{$$s:c}),n(c,"rule",[new Map([["unary_class",c.$simple("function")],["text",c.$simple("text")]])],(function e(){var t=null==e.$$s?this:e.$$s;return p("Utility").$get_class(t.$function()).$new($($(p("Math"),"Function"),"Text").$new(t.$text()))}),{$$s:c}),n(c,"rule",[new Map([["number",c.$simple("number")],["comma",c.$simple("comma")]])],(function e(){var t=null==e.$$s?this:e.$$s;return[$(p("Math"),"Number").$new(t.$number()),p("Utility").$symbol_object(t.$comma())]}),{$$s:c}),n(c,"rule",[new Map([["table",c.$simple("table")],["expr",c.$sequence("expr")]])],(function e(){var t=null==e.$$s?this:e.$$s;return $(p("Math"),"Formula").$new(i([t.$table()],t.$expr().$flatten().$compact()))}),{$$s:c}),n(c,"rule",[new Map([["table",c.$simple("table")],["expr",c.$simple("expr")]])],(function e(){var t=null==e.$$s?this:e.$$s,r=l;return r=[t.$table()],a(t.$expr().$to_s().$strip()["$empty?"]())||r["$<<"](t.$expr()),$(p("Math"),"Formula").$new(r)}),{$$s:c}),n(c,"rule",[new Map([["left",c.$simple("left")],["left_right_value",c.$simple("left_right")],["right",c.$simple("right")]])],(function e(){var t=null==e.$$s?this:e.$$s;return $(p("Math"),"Formula").$new([$($(p("Math"),"Function"),"Left").$new(t.$left()),t.$left_right(),$($(p("Math"),"Function"),"Right").$new(t.$right())])}),{$$s:c}),n(c,"rule",[new Map([["left",c.$simple("left")],["left_right_value",c.$sequence("left_right")],["right",c.$simple("right")]])],(function e(){var t=null==e.$$s?this:e.$$s;return $(p("Math"),"Formula").$new([$($(p("Math"),"Function"),"Left").$new(t.$left()),$(p("Math"),"Formula").$new(t.$left_right()),$($(p("Math"),"Function"),"Right").$new(t.$right())])}),{$$s:c}),n(c,"rule",[new Map([["dividend",c.$simple("dividend")],["mod",c.$simple("mod")],["divisor",c.$simple("divisor")]])],(function e(){var t=null==e.$$s?this:e.$$s;return $($(p("Math"),"Function"),"Mod").$new(t.$dividend(),t.$divisor())}),{$$s:c}),n(c,"rule",[new Map([["lparen",c.$simple("lparen")],["expr",c.$simple("expr")],["rparen",c.$simple("rparen")]])],(function e(){var t,r,n,s,i=null==e.$$s?this:e.$$s;return n=a(i.$expr()["$is_a?"](p("Slice")))&&a(i.$expr().$to_s()["$empty?"]())?l:[i.$expr()],s=a(i.$rparen().$to_s()["$empty?"]())?"":i.$rparen(),$($(p("Math"),"Function"),"Fenced").$new(p("Utility").$symbol_object(i.$lparen()),(t=(r=n)===l||null==r?l:r.$flatten())===l||null==t?l:t.$compact(),p("Utility").$symbol_object(s))}),{$$s:c}),n(c,"rule",[new Map([["lparen",c.$simple("lparen")],["expr",c.$sequence("expr")],["rparen",c.$simple("rparen")]])],(function e(){var t,r=null==e.$$s?this:e.$$s;return t=a(r.$rparen().$to_s()["$empty?"]())?"":r.$rparen(),$($(p("Math"),"Function"),"Fenced").$new(p("Utility").$symbol_object(r.$lparen()),r.$expr().$flatten().$compact(),p("Utility").$symbol_object(t))}),{$$s:c}),n(c,"rule",[new Map([["lparen",c.$simple("lparen")],["rgb_color",c.$sequence("color")],["rparen",c.$simple("rparen")]])],(function e(){var t=null==e.$$s?this:e.$$s;return $(p("Math"),"Formula").$new(t.$color())}),{$$s:c}),n(c,"rule",[new Map([["lparen",c.$simple("lparen")],["rgb_color",c.$simple("color")],["rparen",c.$simple("rparen")]])],(function e(){var t=null==e.$$s?this:e.$$s;return $(p("Math"),"Formula").$new(t.$color())}),{$$s:c}),n(c,"rule",[new Map([["color",c.$sequence("color")],["color_value",c.$sequence("color_value")]])],(function e(){var t=null==e.$$s?this:e.$$s;return p("Utility").$symbol_object(t.$color())}),{$$s:c}),n(c,"rule",[new Map([["color",c.$simple("color")],["color_value",c.$simple("value")],["expr",c.$simple("expr")]])],(function e(){var t=null==e.$$s?this:e.$$s;return[$($(p("Math"),"Function"),"Color").$new(t.$color(),p("Utility").$unfenced_value(t.$value())),t.$expr()]}),{$$s:c}),n(c,"rule",[new Map([["color",c.$simple("color")],["color_value",c.$simple("value")],["expr",c.$sequence("expr")]])],(function e(){var t,r=null==e.$$s?this:e.$$s;return t=$($(p("Math"),"Function"),"Color").$new(r.$color(),p("Utility").$unfenced_value(r.$value())),r.$expr().$insert(0,t)}),{$$s:c}),n(c,"rule",[new Map([["color",c.$simple("color")],["color_value",c.$simple("color_value")]])],(function e(){var t,r=null==e.$$s?this:e.$$s;return t=a(r.$color()["$is_a?"]($($(p("Math"),"Function"),"Text")))?p("Utility").$symbol_object(r.$color().$parameter_one()):r.$color(),$($(p("Math"),"Function"),"Color").$new(t,p("Utility").$unfenced_value(r.$color_value()))}),{$$s:c}),n(c,"rule",[new Map([["table_left",c.$simple("table_left")],["table_row",c.$simple("table_row")],["table_right",c.$simple("table_right")]])],(function e(){var t=null==e.$$s?this:e.$$s;return $($(p("Math"),"Function"),"Table").$new([t.$table_row()],p("Utility").$symbol_object(t.$table_left()).$value(),p("Utility").$symbol_object(t.$table_right()).$value())}),{$$s:c}),n(c,"rule",[new Map([["table_left",c.$simple("table_left")],["table_row",c.$simple("table_row")],["expr",c.$simple("expr")],["table_right",c.$simple("table_right")]])],(function e(){var t=null==e.$$s?this:e.$$s,r=l;return r=[t.$table_row()],a(t.$expr().$to_s().$strip()["$empty?"]())||r["$<<"](t.$expr()),$($(p("Math"),"Function"),"Table").$new(r,p("Utility").$symbol_object(t.$table_left()).$value(),p("Utility").$symbol_object(t.$table_right()).$value())}),{$$s:c}),n(c,"rule",[new Map([["norm",c.$simple("function")],["table_left",c.$simple("table_left")],["table_row",c.$simple("table_row")],["expr",c.$simple("expr")],["table_right",c.$simple("table_right")]])],(function e(){var t,r=null==e.$$s?this:e.$$s;return t=$($(p("Math"),"Function"),"Table").$new([r.$table_row(),r.$expr()],p("Utility").$symbol_object(r.$table_left()).$value(),p("Utility").$symbol_object(r.$table_right()).$value()),$($(p("Math"),"Function"),"Norm").$new(t)}),{$$s:c}),n(c,"rule",[new Map([["table_left",c.$simple("table_left")],["table_row",c.$simple("table_row")],["expr",c.$sequence("expr")],["table_right",c.$simple("table_right")]])],(function e(){var t=null==e.$$s?this:e.$$s;return $($(p("Math"),"Function"),"Table").$new(t.$expr().$flatten().$compact().$insert(0,t.$table_row()),p("Utility").$symbol_object(t.$table_left()).$value(),p("Utility").$symbol_object(t.$table_right()).$value())}),{$$s:c}),n(c,"rule",[new Map([["left",c.$simple("left")],["table_row",c.$simple("table_row")],["expr",c.$sequence("expr")],["right",c.$simple("right")]])],(function e(){var t=null==e.$$s?this:e.$$s;return $($(p("Math"),"Function"),"Table").$new(t.$expr().$flatten().$compact().$insert(0,t.$table_row()),p("Utility").$symbol_object(t.$left()).$value(),p("Utility").$symbol_object(t.$right()).$value())}),{$$s:c})}(c[0],$(_("Parslet"),"Transform"),c)}(c[0],0,c)}(o[0],o)},Opal.modules["plurimath/asciimath/parser"]=function(e){var t=e.module,r=e.klass,n=e.annotate_regexp,a=e.def,s=e.truthy,i=e.top,o=[],l=e.nil,$=e.$$$;return e.add_stubs("attr_accessor,gsub,parse,new,text,apply,is_a?"),i.$require("plurimath/asciimath/parser.rb/../parse"),i.$require("plurimath/asciimath/parser.rb/../constants"),i.$require("plurimath/asciimath/parser.rb/../transform"),function(i,o){var u=[t(i,"Plurimath")].concat(o);return function(t,i,o){var u=[r(t,null,"Asciimath")].concat(o);return function(t,i,o){var u=r(t,null,"Parser"),c=[u].concat(o),_=e.$r(c);return u.$attr_accessor("text"),a(u,"$initialize",(function(e){var t,r,a,s,i;return this.text=(t=(r=(a=(s=(i=e)===l||null==i?l:i.$gsub(n(/(\|:|:\|)/u,null,""),"|"))===l||null==s?l:s.$gsub(n(/(\{:)/u,null,""),""))===l||null==a?l:a.$gsub(n(/(:\})/u,null,""),""))===l||null==r?l:r.$gsub(n(/(\(:)/u,null,""),"ᑕ"))===l||null==t?l:t.$gsub(n(/(:\))/u,null,""),"ᑐ")})),a(u,"$parse",(function(){var e,t=l;return e=_("Parse").$new().$parse(this.$text()),t=_("Transform").$new().$apply(e),s(t["$is_a?"]($(_("Math"),"Formula")))?t:$(_("Math"),"Formula").$new(t)}))}(u[0],0,u)}(u[0],0,u)}(o[0],o)},Opal.modules["plurimath/mathml/constants"]=function(e){var t=e.module,r=e.klass,n=e.const_set,a=[];e.nil;return e.add_stubs("freeze"),function(a,s){var i=[t(a,"Plurimath")].concat(s);return function(t,a,s){var i=[r(t,null,"Mathml")].concat(s);return function(t,a,s){var i=[r(t,null,"Constants")].concat(s);return n(i[0],"UNICODE_SYMBOLS",new Map([["&#x3b1;","alpha"],["&#x3b2;","beta"],["&#x3b3;","gamma"],["&#x393;","Gamma"],["&#x3b4;","delta"],["&#x394;","Delta"],["&#x2206;","Delta"],["&#x3b5;","epsilon"],["&#x25b;","varepsilon"],["&#x3b6;","zeta"],["&#x3b7;","eta"],["&#x3b8;","theta"],["&#x398;","Theta"],["&#x3d1;","vartheta"],["&#x3b9;","iota"],["&#x3ba;","kappa"],["&#x3bb;","lambda"],["&#x39b;","Lambda"],["&#x3bc;","mu"],["&#x3bd;","nu"],["&#x3be;","xi"],["&#x39e;","Xi"],["&#x3C0;","pi"],["&#x3a0;","Pi"],["&#x3c1;","rho"],["&#x3c2;","beta"],["&#x3c3;","sigma"],["&#x3a3;","Sigma"],["&#x3c4;","tau"],["&#x3c5;","upsilon"],["&#x3c6;","phi"],["&#x3a6;","Phi"],["&#x3d5;","varphi"],["&#x3c7;","chi"],["&#x3c8;","psi"],["&#x3a8;","Psi"],["&#x3c9;","omega"],["&#x3a9;","omega"],["&#x22c5;","cdot"],["&#x2219;","*"],["&#x2e;","."],["&#x2217;","**"],["&#x22c6;","***"],["&#xd7;","xx"],["&#x22c9;","|><"],["&#x22ca;","><|"],["&#x22c8;","|><|"],["&#xf7;","-:"],["&#x2218;","@"],["&#x2295;","o+"],["&#x2a01;","o+"],["&#x2297;","ox"],["&#x2299;"," "],["&#x2211;","sum"],["&#x220f;","prod"],["&#x2227;","^^"],["&#x22c0;","^^^"],["&#x2228;","vv"],["&#x22c1;","vvv"],["&#x2229;","nn"],["&#x22c2;","nnn"],["&#x222a;","cup"],["&#x22c3;","uuu"],["&#x2260;","!="],["&#x2264;","<="],["&#x2265;",">="],["&#x227a;","-<"],["&#x227b;",">-"],["&#x2aaf;","-<="],["&#x2ab0;"," >-="],["&#x2208;","in"],["&#x2209;","!in"],["&#x2282;","sub"],["&#x2283;","sup"],["&#x2286;","sube"],["&#x2287;","supe"],["&#x2261;","-="],["&#x2245;","~="],["&#x2248;","~~"],["&#x221d;","prop"],["&#xac;","not"],["&#x2200;","AA"],["&#x2203;","EE"],["&#x22a5;","_|_"],["&#x22a4;","TT"],["&#x22a2;","|--"],["&#x22a8;","|=="],["&#x2329;","<<"],["&#x232a;",">>"],["&#x222b;","int"],["&#x222e;","oint"],["&#x2202;","del"],["&#x2207;","grad"],["&#xb1;","+-"],["&#x2205;","O/"],["&#x221e;","oo"],["&#x2135;","aleph"],["&#x2234;",":."],["&#x2235;",":'"],["&#x2220;","/_"],["&#x25b3;","/_\\"],["&#x2032;","'"],["&#xa0;&#xa0;","quad"],["&#xa0;&#xa0;&#xa0;&#xa0;","qquad"],["&#x203e;","overline"],["&#x2322;","frown"],["&#x22ef;","cdots"],["&#x22ee;","vdots"],["&#x22f1;","ddots"],["&#x22c4;","diamond"],["&#x25a1;","square"],["&#x230a;","|__"],["&#x230b;","__|"],["&#x2308;","|~"],["&#x2309;","~|"],["&#x2102;","CC"],["&#x2115;","NN"],["&#x211a;","QQ"],["&#x211d;","RR"],["&#x2124;","ZZ"],["&#x2191;","uarr"],["&#x2193;","darr"],["&#x2190;","larr"],["&#x2194;","harr"],["&#x21d2;","rArr"],["&#x21d0;","lArr"],["&#x21d4;","hArr"],["&#x21a3;",">->"],["&#x21a0;","->>"],["&#x2916;",">->>"],["&#x21a6;","|->"],["&#x2026;","..."],["&#x2212;","-"],["&#x23de;","obrace"],["&#x23df;","ubrace"],["&#x2192;","vec"],["&#x302;","hat"],["&#x332;","ul"],["&#xaf;","bar"],["&#x26;","&"],["&#x3e;",">"],["&#x3c;","<"],["&amp;","&"],["~","tilde"],["..","ddot"],["^","hat"],["¯","bar"],["_","ul"]]).$freeze()),n(i[0],"SYMBOLS",new Map([["|","|"],["/","//"],["\\","\\\\"],["~","tilde"],["(","("],[")",")"],["(:","(:"],[":)",":)"],["{","{"],["}","}"],["{:","{:"],[":}",":}"],["]","]"],["[","["],["=","="],["+","+"],["-","-"]]).$freeze()),n(i[0],"CLASSES",e.large_array_unpack("mathfrak,underset,stackrel,overset,mathcal,arccos,arcsin,arctan,mathsf,mathbb,mathbf,mathtt,ubrace,obrace,cancel,tilde,floor,color,frac,root,oint,ceil,ddot,coth,csch,sech,sinh,tanh,cosh,sqrt,norm,text,prod,sec,int,sin,tan,cos,sum,exp,gcd,glb,lcm,lub,cot,csc,det,dim,max,min,abs,bar,dot,hat,vec,mod,log,ul,ln").$freeze()),n(i[0],"OPERATORS",["&#x00a0;&#x00a0;&#x00a0;&#x00a0;","&#x00a0;&#x00a0;","&#x002a;","&#x003c;","&#x003e;","&#x00a0;","&#x00ac;","&#x00b1;","&#x00d7;","&#x00f7;","&#x0393;","&#x0394;","&#x0398;","&#x039b;","&#x039e;","&#x03a0;","&#x03a3;","&#x03a9;","&#x2026;","&#x2032;","&#x2102;","&#x2115;","&#x211a;","&#x211d;","&#x2124;","&#x2135;","&#x2190;","&#x2191;","&#x2192;","&#x2192;","&#x2193;","&#x2194;","&#x21a0;","&#x21a3;","&#x21a6;","&#x21d0;","&#x21d2;","&#x21d2;","&#x21d4;","&#x21d4;","&#x2200;","&#x2202;","&#x2203;","&#x2205;","&#x2207;","&#x2208;","&#x2209;","&#x220f;","&#x2211;","&#x2212;","&#x2213;","&#x221d;","&#x221e;","&#x2220;","&#x2227;","&#x2228;","&#x2229;","&#x222a;","&#x222b;","&#x222e;","&#x2234;","&#x2235;","&#x223c;","&#x2245;","&#x2248;","&#x2254;","&#x2260;","&#x2261;","&#x2264;","&#x2265;","&#x226a;","&#x226b;","&#x227a;","&#x227b;","&#x2282;","&#x2283;","&#x2286;","&#x2287;","&#x2295;","&#x2297;","&#x2299;","&#x22a2;","&#x22a4;","&#x22a5;","&#x22a8;","&#x22c0;","&#x22c1;","&#x22c2;","&#x22c3;","&#x22c4;","&#x22c5;","&#x22c6;","&#x22c8;","&#x22c9;","&#x22ca;","&#x22ee;","&#x22ef;","&#x22f1;","&#x2308;","&#x2309;","&#x230a;","&#x230b;","&#x2322;","&#x25a1;","&#x25b3;","&#x26ac;","&#x2916;","&#x2aaf;","&#x2ab0;","&#x2b;","&#x3d;","&#x3a;","&#x3c;","&#xd7;","&#xb1;","&#x26;","&#x3b;","&#x3e;","&#x7c;","lim","max","min","\\","//","/","if","^","_","+","/","=",":",",",")","(","[","]"].$freeze())}(i[0],0,i)}(i[0],0,i)}(a[0],a)},Opal.modules["plurimath/mathml/transform"]=function(e){var t=e.module,r=e.klass,n=e.send,a=e.return_val,s=e.truthy,i=e.not,o=e.eqeq,l=e.rb_gt,$=[],u=e.nil,c=e.$$$;return e.add_stubs("rule,simple,mi,mo,sequence,mathml_unary_classes,new,mtd,mtr,att,table,first,sqrt,mstyle,filter_values,value,mfenced,mtable,enclose,padded,lines,subtree,compact,flatten,math,phantom,string_to_html_entity,join,mn,[],to_sym,variant,any?,lparen,group,each_with_index,is_a?,[]=,text_classes,long,close,mroot,merror,mfrac,msub,msup,function,!,any_value_exist?,parameter_one=,parameter_two=,parameter_three=,populate_function_classes,mrow,fenceable_classes,==,length,mrow_left_right,msrow,stack,mover,class_name,swap_class,last,>,shift,munder,scarries,transform_keys,to_proc,encode,mtext,each,gsub,downcase,ms,fenced,multiscript,script,color,rparen,join_attr_value,attrs,keys,include?,to_s"),function($,_){var p=[t($,"Plurimath")].concat(_);return function(t,$,_){var p=[r(t,null,"Mathml")].concat(_),m=e.$r(p);return function(t,$,_){var p=r(t,$,"Transform"),m=[p].concat(_),d=e.$r(m);return n(p,"rule",[new Map([["mi",p.$simple("mi")]])],(function e(){return(null==e.$$s?this:e.$$s).$mi()}),{$$s:p}),n(p,"rule",[new Map([["mo",p.$simple("mo")]])],(function e(){return(null==e.$$s?this:e.$$s).$mo()}),{$$s:p}),n(p,"rule",[new Map([["mo",p.$sequence("mo")]])],(function e(){var t=null==e.$$s?this:e.$$s;return d("Utility").$mathml_unary_classes(t.$mo())}),{$$s:p}),n(p,"rule",[new Map([["mtd",p.$sequence("mtd")]])],(function e(){var t=null==e.$$s?this:e.$$s;return c(c(d("Math"),"Function"),"Td").$new(t.$mtd())}),{$$s:p}),n(p,"rule",[new Map([["mtr",p.$sequence("mtr")]])],(function e(){var t=null==e.$$s?this:e.$$s;return c(c(d("Math"),"Function"),"Tr").$new(t.$mtr())}),{$$s:p}),n(p,"rule",[new Map([["none",p.$sequence("none")]])],a(u)),n(p,"rule",[new Map([["notation",p.$simple("att")]])],(function e(){var t=null==e.$$s?this:e.$$s;return c(c(d("Math"),"Function"),"Menclose").$new(t.$att())}),{$$s:p}),n(p,"rule",[new Map([["mtable",p.$simple("table")]])],(function e(){return(null==e.$$s?this:e.$$s).$table()}),{$$s:p}),n(p,"rule",[new Map([["msqrt",p.$sequence("sqrt")]])],(function e(){var t=null==e.$$s?this:e.$$s;return c(c(d("Math"),"Function"),"Sqrt").$new(t.$sqrt().$first())}),{$$s:p}),n(p,"rule",[new Map([["mstyle",p.$simple("mstyle")]])],(function e(){return(null==e.$$s?this:e.$$s).$mstyle()}),{$$s:p}),n(p,"rule",[new Map([["msline",p.$sequence("line")]])],(function(){return c(c(d("Math"),"Function"),"Msline").$new()})),n(p,"rule",[new Map([["value",p.$sequence("value")]])],(function e(){var t=null==e.$$s?this:e.$$s;return d("Utility").$filter_values(t.$value())}),{$$s:p}),n(p,"rule",[new Map([["mspace",p.$sequence("space")]])],a(u)),n(p,"rule",[new Map([["mstyle",p.$sequence("mstyle")]])],(function e(){var t=null==e.$$s?this:e.$$s;return d("Utility").$filter_values(t.$mstyle())}),{$$s:p}),n(p,"rule",[new Map([["mfenced",p.$simple("mfenced")]])],(function e(){return(null==e.$$s?this:e.$$s).$mfenced()}),{$$s:p}),n(p,"rule",[new Map([["mtable",p.$sequence("mtable")]])],(function e(){var t=null==e.$$s?this:e.$$s;return c(c(d("Math"),"Function"),"Table").$new(t.$mtable())}),{$$s:p}),n(p,"rule",[new Map([["mscarry",p.$sequence("scarry")]])],a(u)),n(p,"rule",[new Map([["menclose",p.$simple("enclose")]])],(function e(){return(null==e.$$s?this:e.$$s).$enclose()}),{$$s:p}),n(p,"rule",[new Map([["mlabeledtr",p.$sequence("mtr")]])],(function e(){var t=null==e.$$s?this:e.$$s;return c(c(d("Math"),"Function"),"Tr").$new(t.$mtr())}),{$$s:p}),n(p,"rule",[new Map([["mpadded",p.$sequence("padded")]])],(function e(){var t=null==e.$$s?this:e.$$s;return d("Utility").$filter_values(t.$padded())}),{$$s:p}),n(p,"rule",[new Map([["malignmark",p.$sequence("mark")]])],a(u)),n(p,"rule",[new Map([["maligngroup",p.$sequence("att")]])],a(u)),n(p,"rule",[new Map([["mprescripts",p.$sequence("att")]])],a("mprescripts")),n(p,"rule",[new Map([["columnlines",p.$simple("lines")]])],(function e(){return(null==e.$$s?this:e.$$s).$lines()}),{$$s:p}),n(p,"rule",[new Map([["math",p.$subtree("math")]])],(function e(){var t=null==e.$$s?this:e.$$s;return d("Utility").$filter_values(t.$math().$flatten().$compact())}),{$$s:p}),n(p,"rule",[new Map([["mphantom",p.$sequence("phantom")]])],(function e(){var t=null==e.$$s?this:e.$$s;return c(c(d("Math"),"Function"),"Phantom").$new(t.$phantom())}),{$$s:p}),n(p,"rule",[new Map([["mn",p.$sequence("mn")]])],(function e(){var t=null==e.$$s?this:e.$$s;return c(d("Math"),"Number").$new(d("Utility").$string_to_html_entity(t.$mn().$join()))}),{$$s:p}),n(p,"rule",[new Map([["mathvariant",p.$simple("variant")]])],(function e(){var t,r=null==e.$$s?this:e.$$s;return(t=c(d("Utility"),"FONT_STYLES")["$[]"](r.$variant().$to_sym()))===u||null==t?u:t.$new(u,r.$variant())}),{$$s:p}),n(p,"rule",[new Map([["mi",p.$sequence("mi")]])],(function e(){var t=null==e.$$s?this:e.$$s;return s(t.$mi()["$any?"](d("String")))?d("Utility").$mathml_unary_classes(t.$mi()):t.$mi()}),{$$s:p}),n(p,"rule",[new Map([["open",p.$simple("lparen")]])],(function e(){var t=null==e.$$s?this:e.$$s;return c(c(d("Math"),"Function"),"Fenced").$new(c(d("Math"),"Symbol").$new(t.$lparen()))}),{$$s:p}),n(p,"rule",[new Map([["msgroup",p.$sequence("group")]])],(function e(){var t=null==e.$$s?this:e.$$s;return s(t.$group()["$any?"](d("String")))&&n(t.$group(),"each_with_index",[],(function e(t,r){var a,i=null==e.$$s?this:e.$$s;return null==t&&(t=u),null==r&&(r=u),s(t["$is_a?"](d("String")))?(a=[r,d("Utility").$text_classes(t)],n(i.$group(),"[]=",a),a[a.length-1]):u}),{$$s:t}),c(c(d("Math"),"Function"),"Msgroup").$new(t.$group().$flatten().$compact())}),{$$s:p}),n(p,"rule",[new Map([["mlongdiv",p.$sequence("long")]])],(function e(){var t=null==e.$$s?this:e.$$s;return c(c(d("Math"),"Function"),"Longdiv").$new(t.$long().$flatten().$compact())}),{$$s:p}),n(p,"rule",[new Map([["menclose",p.$sequence("close")]])],(function e(){var t=null==e.$$s?this:e.$$s;return c(c(d("Math"),"Function"),"Menclose").$new(u,d("Utility").$filter_values(t.$close()))}),{$$s:p}),n(p,"rule",[new Map([["mroot",p.$sequence("mroot")]])],(function e(){var t=null==e.$$s?this:e.$$s;return c(c(d("Math"),"Function"),"Root").$new(t.$mroot()["$[]"](1),t.$mroot()["$[]"](0))}),{$$s:p}),n(p,"rule",[new Map([["merror",p.$sequence("merror")]])],(function e(){var t=null==e.$$s?this:e.$$s;return c(c(d("Math"),"Function"),"Merror").$new(d("Utility").$filter_values(t.$merror()))}),{$$s:p}),n(p,"rule",[new Map([["mfrac",p.$sequence("mfrac")]])],(function e(){var t=null==e.$$s?this:e.$$s;return c(c(d("Math"),"Function"),"Frac").$new(t.$mfrac()["$[]"](0),t.$mfrac()["$[]"](1))}),{$$s:p}),n(p,"rule",[new Map([["mfraction",p.$sequence("mfrac")]])],(function e(){var t=null==e.$$s?this:e.$$s;return c(c(d("Math"),"Function"),"Frac").$new(t.$mfrac()["$[]"](0),t.$mfrac()["$[]"](1))}),{$$s:p}),n(p,"rule",[new Map([["msub",p.$sequence("msub")]])],(function e(){var t=null==e.$$s?this:e.$$s;return c(c(d("Math"),"Function"),"Base").$new(t.$msub()["$[]"](0),t.$msub()["$[]"](1))}),{$$s:p}),n(p,"rule",[new Map([["msub",p.$subtree("msub")]])],(function e(){var t=null==e.$$s?this:e.$$s;return c(c(d("Math"),"Function"),"Base").$new(d("Utility").$filter_values(t.$msub()["$[]"](0)),d("Utility").$filter_values(t.$msub()["$[]"](1)))}),{$$s:p}),n(p,"rule",[new Map([["msup",p.$subtree("msup")]])],(function e(){var t=null==e.$$s?this:e.$$s;return c(c(d("Math"),"Function"),"Power").$new(d("Utility").$filter_values(t.$msup()["$[]"](0)),d("Utility").$filter_values(t.$msup()["$[]"](1)))}),{$$s:p}),n(p,"rule",[new Map([["msup",p.$sequence("msup")]])],(function e(){var t=null==e.$$s?this:e.$$s;return c(c(d("Math"),"Function"),"Power").$new(t.$msup()["$[]"](0),t.$msup()["$[]"](1))}),{$$s:p}),n(p,"rule",[new Map([["msubsup",p.$sequence("function")]])],(function e(){var t=null==e.$$s?this:e.$$s,r=u;return r=(s(t.$function()["$[]"](0)["$is_a?"](c(d("Math"),"Formula")))?t.$function()["$[]"](0).$value():t.$function()).$first(),s(r["$is_a?"](c(c(d("Math"),"Function"),"BinaryFunction")))&&i(r["$any_value_exist?"]())?(r["$parameter_one="](t.$function()["$[]"](1)),r["$parameter_two="](t.$function()["$[]"](2)),r):s(r["$is_a?"](c(c(d("Math"),"Function"),"TernaryFunction")))&&i(r["$any_value_exist?"]())?(r["$parameter_one="](t.$function()["$[]"](1)),r["$parameter_two="](t.$function()["$[]"](2)),r["$parameter_three="](t.$function()["$[]"](3)),r):c(c(d("Math"),"Function"),"PowerBase").$new(t.$function()["$[]"](0),t.$function()["$[]"](1),t.$function()["$[]"](2))}),{$$s:p}),n(p,"rule",[new Map([["munderover",p.$sequence("function")]])],(function e(){var t=null==e.$$s?this:e.$$s,r=u;return r=(s(t.$function()["$[]"](0)["$is_a?"](c(d("Math"),"Formula")))?t.$function()["$[]"](0).$value():t.$function()).$first(),s(r["$is_a?"](c(c(d("Math"),"Function"),"BinaryFunction")))&&i(r["$any_value_exist?"]())?(r["$parameter_one="](t.$function()["$[]"](1)),r["$parameter_two="](t.$function()["$[]"](2)),r):s(r["$is_a?"](c(c(d("Math"),"Function"),"TernaryFunction")))&&i(r["$any_value_exist?"]())?(r["$parameter_one="](t.$function()["$[]"](1)),r["$parameter_two="](t.$function()["$[]"](2)),r["$parameter_three="](t.$function()["$[]"](3)),r):c(c(d("Math"),"Function"),"Underover").$new(t.$function()["$[]"](0),t.$function()["$[]"](1),t.$function()["$[]"](2))}),{$$s:p}),n(p,"rule",[new Map([["mrow",p.$subtree("mrow")]])],(function e(){var t=null==e.$$s?this:e.$$s,r=u;return r=d("Utility").$populate_function_classes(t.$mrow()),d("Utility").$fenceable_classes(r),o(r.$length(),1)?r.$first():c(d("Math"),"Formula").$new(r,d("Utility").$mrow_left_right(r))}),{$$s:p}),n(p,"rule",[new Map([["msrow",p.$sequence("msrow")]])],(function e(){var t=null==e.$$s?this:e.$$s;return c(d("Math"),"Formula").$new(t.$msrow().$flatten().$compact())}),{$$s:p}),n(p,"rule",[new Map([["mstack",p.$sequence("stack")]])],(function e(){var t=null==e.$$s?this:e.$$s;return c(c(d("Math"),"Function"),"Stackrel").$new(d("Utility").$filter_values(t.$stack()))}),{$$s:p}),n(p,"rule",[new Map([["mover",p.$subtree("mover")]])],(function e(){var t,r,n,a=null==e.$$s?this:e.$$s,i=u;return o((t=a.$mover())===u||null==t?u:t.$length(),1)?(i=a.$mover().$first(),o(i.$class_name(),"underline")?i.$swap_class():i):s(c(d("Constants"),"CLASSES")["$any?"]((r=(n=a.$mover())===u||null==n?u:n.$last())===u||null==r?u:r.$class_name()))?(s(l(a.$mover().$length(),1))&&a.$mover().$last()["$parameter_one="](a.$mover().$shift()),a.$mover().$last()):c(c(d("Math"),"Function"),"Overset").$new(a.$mover()["$[]"](1),a.$mover()["$[]"](0))}),{$$s:p}),n(p,"rule",[new Map([["munder",p.$sequence("munder")]])],(function e(){var t=null==e.$$s?this:e.$$s;return s(t.$munder()["$any?"](d("String")))&&n(t.$munder(),"each_with_index",[],(function e(t,r){var a,i=null==e.$$s?this:e.$$s;return null==t&&(t=u),null==r&&(r=u),s(t["$is_a?"](d("String")))?(a=[r,d("Utility").$mathml_unary_classes([t])],n(i.$munder(),"[]=",a),a[a.length-1]):u}),{$$s:t}),o(t.$munder().$length(),1)?o(t.$munder().$first().$class_name(),"bar")?t.$munder().$first().$swap_class():t.$munder().$last():s(["ubrace","obrace","underline"]["$any?"](t.$munder().$last().$class_name()))?(s(l(t.$munder().$length(),1))&&t.$munder().$last()["$parameter_one="](t.$munder().$shift()),t.$munder().$last()):c(c(d("Math"),"Function"),"Underset").$new(t.$munder()["$[]"](1),t.$munder()["$[]"](0))}),{$$s:p}),n(p,"rule",[new Map([["mscarries",p.$sequence("scarries")]])],(function e(){var t=null==e.$$s?this:e.$$s;return c(c(d("Math"),"Function"),"Scarries").$new(d("Utility").$filter_values(t.$scarries()))}),{$$s:p}),n(p,"rule",[new Map([["mtext",p.$subtree("mtext")]])],(function e(){var t,r=null==e.$$s?this:e.$$s,a=u,s=u;return a=d("HTMLEntities").$new(),t=n(c(d("Constants"),"UNICODE_SYMBOLS"),"transform_keys",[],"to_s".$to_proc()),s=a.$encode(r.$mtext().$flatten().$join(),"hexadecimal"),n(t,"each",[],(function(e,t){return null==e&&(e=u),null==t&&(t=u),s=s.$gsub(e.$downcase(),"unicode[:"+t+"]")})),c(c(d("Math"),"Function"),"Text").$new(s)}),{$$s:p}),n(p,"rule",[new Map([["ms",p.$sequence("ms")]])],(function e(){var t,r=null==e.$$s?this:e.$$s,a=u,s=u;return a=d("HTMLEntities").$new(),t=n(c(d("Constants"),"UNICODE_SYMBOLS"),"transform_keys",[],"to_s".$to_proc()),s=a.$encode(r.$ms().$first(),"hexadecimal"),n(t,"each",[],(function(e,t){return null==e&&(e=u),null==t&&(t=u),s=s.$gsub(e.$downcase(),"unicode[:"+t+"]")})),c(c(d("Math"),"Function"),"Text").$new(s)}),{$$s:p}),n(p,"rule",[new Map([["mfenced",p.$sequence("fenced")]])],(function e(){var t=null==e.$$s?this:e.$$s;return c(c(d("Math"),"Function"),"Fenced").$new(c(d("Math"),"Symbol").$new("("),t.$fenced().$compact(),c(d("Math"),"Symbol").$new(")"))}),{$$s:p}),n(p,"rule",[new Map([["mmultiscripts",p.$subtree("script")]])],(function e(){var t=null==e.$$s?this:e.$$s,r=u,n=u;return n=(r=d("Utility").$multiscript(t.$script().$compact()))["$[]"](1),c(c(d("Math"),"Function"),"Multiscript").$new(r["$[]"](0),s(n)?n["$[]"](0):u,s(n)?n["$[]"](1):u)}),{$$s:p}),n(p,"rule",[new Map([["mathcolor",p.$simple("color")]])],(function e(){var t=null==e.$$s?this:e.$$s;return c(c(d("Math"),"Function"),"Color").$new(c(c(d("Math"),"Function"),"Text").$new(t.$color()))}),{$$s:p}),n(p,"rule",[new Map([["open",p.$simple("lparen")],["close",p.$simple("rparen")]])],(function e(){var t=null==e.$$s?this:e.$$s;return c(c(d("Math"),"Function"),"Fenced").$new(c(d("Math"),"Symbol").$new(t.$lparen()),u,c(d("Math"),"Symbol").$new(t.$rparen()))}),{$$s:p}),n(p,"rule",[new Map([["mathcolor",p.$simple("color")],["mathvariant",p.$simple("variant")]])],(function e(){var t=null==e.$$s?this:e.$$s,r=u;return r=c(d("Utility"),"FONT_STYLES")["$[]"](t.$variant().$to_sym()),s(r)?c(c(d("Math"),"Function"),"Color").$new(c(c(d("Math"),"Function"),"Text").$new(t.$color()),r.$new(u,t.$variant())):c(c(d("Math"),"Function"),"Color").$new(c(c(d("Math"),"Function"),"Text").$new(t.$color()))}),{$$s:p}),n(p,"rule",[new Map([["attributes",p.$simple("attrs")],["value",p.$subtree("value")]])],(function e(){var t,r,n=null==e.$$s?this:e.$$s;return d("Utility").$join_attr_value(n.$attrs(),(t=(r=n.$value())===u||null==r?u:r.$flatten())===u||null==t?u:t.$compact())}),{$$s:p}),n(p,"rule",[new Map([["semantics",p.$subtree("value")]])],(function e(){var t=null==e.$$s?this:e.$$s;return c(c(d("Math"),"Function"),"Semantics").$new(t.$value().$shift(),t.$value())}),{$$s:p}),n(p,"rule",[new Map([["attributes",p.$subtree("attrs")],["value",p.$sequence("value")]])],(function e(){var t,r,a,i=null==e.$$s?this:e.$$s,o=u;return a=s(i.$attrs()["$is_a?"](d("Hash")))?(o=["accentunder","accent"],s(n(i.$attrs().$keys(),"any?",[],(function(e){return null==e&&(e=u),o["$include?"](e.$to_s())})))?i.$attrs():u):i.$attrs(),d("Utility").$join_attr_value(a,(t=(r=i.$value())===u||null==r?u:r.$flatten())===u||null==t?u:t.$compact())}),{$$s:p})}(p[0],c(m("Parslet"),"Transform"),p)}(p[0],0,p)}($[0],$)},Opal.modules["plurimath/mathml/parser"]=function(e){var t=e.module,r=e.klass,n=e.const_set,a=e.assign_ivar,s=e.def,i=e.truthy,o=e.send,l=e.not,$=e.hash_rehash,u=e.top,c=[],_=e.nil,p=e.$$$;return e.add_stubs("attr_accessor,freeze,load,xml_engine,text,first,locate,parse_nodes,nodes,new,compact,flatten,apply,map,is_xml_comment?,is_a?,!,empty?,attributes,attrs_hash,to_sym,name,select!,include?,to_s,any?,transform_keys,to_proc,validate_attributes"),u.$require("plurimath/mathml/parser.rb/../constants"),u.$require("plurimath/mathml/parser.rb/../transform"),function(u,c){var m=[t(u,"Plurimath")].concat(c);return function(t,u,c){var m=[r(t,null,"Mathml")].concat(c);return function(t,u,c){var m=r(t,null,"Parser"),d=[m].concat(c),f=e.$r(d);return m.$attr_accessor("text"),n(d[0],"SUPPORTED_ATTRS",["columnlines","mathvariant","accentunder","mathcolor","notation","accent","close","open"].$freeze()),s(m,"$initialize",a("text")),s(m,"$parse",(function(){var e,t,r,n,a=_,s=_;return s=(e=(t=a=f("Plurimath").$xml_engine().$load(this.$text()))===_||null==t?_:t.$locate("mstyle/@displaystyle"))===_||null==e?_:e.$first(),r=this.$parse_nodes(a.$nodes()),p(f("Math"),"Formula").$new(f("Transform").$new().$apply(r).$flatten().$compact(),new Map([["display_style",!i(n=s)||n]]))})),s(m,"$parse_nodes",(function(e){return o(e,"map",[],(function e(t){var r=null==e.$$s?this:e.$$s;return null==t&&(t=_),i(f("Plurimath").$xml_engine()["$is_xml_comment?"](t))?_:i(t["$is_a?"](f("String")))?t:l(t.$attributes()["$empty?"]())?r.$attrs_hash(t):$(new Map([[t.$name().$to_sym(),r.$parse_nodes(t.$nodes())]]))}),{$$s:this})})),s(m,"$validate_attributes",(function(e){var t,r,n;return(t=e)===_||null==t||o(t,"select!",[],(function(e,t){return null==e&&(e=_),null==t&&(t=_),f("SUPPORTED_ATTRS")["$include?"](e.$to_s())})),i((r=e)===_||null==r?_:r["$any?"]())?(n=e)===_||null==n?_:o(n,"transform_keys",[],"to_sym".$to_proc()):_})),s(m,"$attrs_hash",(function(e){return $(new Map([[e.$name().$to_sym(),new Map([["attributes",this.$validate_attributes(e.$attributes())],["value",this.$parse_nodes(e.$nodes())]])]]))}))}(m[0],0,m)}(m[0],0,m)}(c[0],c)},Opal.modules["plurimath/latex/parse"]=function(e){var t=e.module,r=e.klass,n=e.send,a=e.annotate_regexp,s=e.class_variable_set,i=e.truthy,o=e.class_variable_get,l=e.def,$=e.to_ary,u=e.top,c=[],_=e.nil,p=e.$$$;return e.add_stubs("require,rule,str,>>,slash,underover_classes,as,expression,maybe,intermediate_exp,|,repeat,absent?,any,symbol_text_or_integer,optional_args,arr_to_expression,keys,values,base,power,math_operators,[],match,hash_to_expression,under_over,environment,numeric_values,symbol_class_commands,math_operators_classes,lparen,rparen,parsing_text_values,subscript,supscript,sqrt_arg,color_rules,limits,binary_functions,sequence,over_class,left_right,array_begin,array_args,ending,begining,power_base,left_parens,right_parens,iteration,root,class,first,[]=,reduce,is_a?,dynamic_rules,last,to_s,slashed_value,unary_rules,dynamic_power_base,color"),u.$require("parslet"),function(u,c){var m=[t(u,"Plurimath")].concat(c);return function(t,u,c){var m=[r(t,null,"Latex")].concat(c),d=e.$r(m);return function(t,u,c){var m=r(t,u,"Parse"),d=[m].concat(c),f=e.$r(d);return n(m,"rule",["base"],(function e(){return(null==e.$$s?this:e.$$s).$str("_")}),{$$s:m}),n(m,"rule",["power"],(function e(){return(null==e.$$s?this:e.$$s).$str("^")}),{$$s:m}),n(m,"rule",["slash"],(function e(){return(null==e.$$s?this:e.$$s).$str("\\")}),{$$s:m}),n(m,"rule",["under_over"],(function e(){var t=null==e.$$s?this:e.$$s;return t.$slash()["$>>"](t.$underover_classes())}),{$$s:m}),n(m,"rule",["array_args"],(function e(){var t=null==e.$$s?this:e.$$s;return t.$str("{")["$>>"](t.$expression().$as("args"))["$>>"](t.$str("}"))}),{$$s:m}),n(m,"rule",["array_begin"],(function e(){var t=null==e.$$s?this:e.$$s;return t.$str("\\begin{")["$>>"](t.$str("array").$as("environment"))["$>>"](t.$str("}"))}),{$$s:m}),n(m,"rule",["optional_args"],(function e(){var t=null==e.$$s?this:e.$$s;return t.$str("[")["$>>"](t.$intermediate_exp().$maybe().$as("options"))["$>>"](t.$str("]")).$maybe()}),{$$s:m}),n(m,"rule",["color"],(function e(){var t=null==e.$$s?this:e.$$s;return t.$str("{")["$>>"](t.$str("}")["$absent?"]()["$>>"](t.$any()).$repeat().$as("symbol"))["$>>"](t.$str("}"))["$|"](t.$any().$as("symbol"))}),{$$s:m}),n(m,"rule",["optional_args"],(function e(){var t=null==e.$$s?this:e.$$s;return t.$str("[")["$>>"](t.$intermediate_exp().$maybe().$as("options"))["$>>"](t.$str("]")).$maybe()}),{$$s:m}),n(m,"rule",["begining"],(function e(){var t=null==e.$$s?this:e.$$s;return t.$slash()["$>>"](t.$str("begin"))["$>>"](t.$str("{")["$>>"](t.$symbol_text_or_integer())["$>>"](t.$str("*").$as("asterisk"))["$>>"](t.$str("}")))["$>>"](t.$optional_args().$maybe())["$|"](t.$slash()["$>>"](t.$str("begin"))["$>>"](t.$str("{")["$>>"](t.$symbol_text_or_integer())["$>>"](t.$str("}"))))}),{$$s:m}),n(m,"rule",["ending"],(function e(){var t=null==e.$$s?this:e.$$s;return t.$slash()["$>>"](t.$str("end"))["$>>"](t.$str("{")["$>>"](t.$symbol_text_or_integer())["$>>"](t.$str("*").$maybe())["$>>"](t.$str("}"))).$as("ending")}),{$$s:m}),n(m,"rule",["numeric_values"],(function e(){return(null==e.$$s?this:e.$$s).$arr_to_expression(p(f("Constants"),"NUMERIC_VALUES"),"numeric_values")}),{$$s:m}),n(m,"rule",["underover_classes"],(function e(){return(null==e.$$s?this:e.$$s).$arr_to_expression(p(f("Constants"),"UNDEROVER_CLASSES"),"binary")}),{$$s:m}),n(m,"rule",["math_operators_classes"],(function e(){return(null==e.$$s?this:e.$$s).$arr_to_expression(p(f("Constants"),"MATH_OPERATORS"),"unary_functions")}),{$$s:m}),n(m,"rule",["lparen"],(function e(){return(null==e.$$s?this:e.$$s).$arr_to_expression(p(f("Constants"),"PARENTHESIS").$keys(),"lparen")}),{$$s:m}),n(m,"rule",["rparen"],(function e(){return(null==e.$$s?this:e.$$s).$arr_to_expression(p(f("Constants"),"PARENTHESIS").$values(),"rparen")}),{$$s:m}),n(m,"rule",["left_parens"],(function e(){return(null==e.$$s?this:e.$$s).$arr_to_expression(p(f("Constants"),"LEFT_RIGHT_PARENTHESIS").$keys(),"left_paren")}),{$$s:m}),n(m,"rule",["right_parens"],(function e(){return(null==e.$$s?this:e.$$s).$arr_to_expression(p(f("Constants"),"LEFT_RIGHT_PARENTHESIS").$keys(),"right_paren")}),{$$s:m}),n(m,"rule",["environment"],(function e(){return(null==e.$$s?this:e.$$s).$arr_to_expression(p(f("Constants"),"MATRICES").$keys(),"environment")}),{$$s:m}),n(m,"rule",["subscript"],(function e(){var t=null==e.$$s?this:e.$$s;return t.$intermediate_exp()["$>>"](t.$base())["$>>"](t.$intermediate_exp().$as("subscript"))}),{$$s:m}),n(m,"rule",["supscript"],(function e(){var t=null==e.$$s?this:e.$$s;return t.$intermediate_exp()["$>>"](t.$power())["$>>"](t.$intermediate_exp().$as("supscript"))}),{$$s:m}),n(m,"rule",["math_operators"],(function e(){var t=null==e.$$s?this:e.$$s;return t.$symbol_text_or_integer().$as("first_value")["$>>"](t.$str("\\limits"))}),{$$s:m}),n(m,"rule",["sqrt_arg"],(function e(){var t=null==e.$$s?this:e.$$s;return t.$str("[").$as("lparen")["$>>"](t.$intermediate_exp().$repeat(1).$as("expression"))["$>>"](t.$str("]").$as("rparen"))["$|"](t.$str("[").$as("lparen")["$>>"](t.$str("]").$as("rparen")))}),{$$s:m}),n(m,"rule",["limits"],(function e(){var t=null==e.$$s?this:e.$$s;return t.$math_operators()["$>>"](t.$base())["$>>"](t.$intermediate_exp().$as("base"))["$>>"](t.$power())["$>>"](t.$intermediate_exp().$as("power"))["$|"](t.$math_operators()["$>>"](t.$power())["$>>"](t.$intermediate_exp().$as("power"))["$>>"](t.$base())["$>>"](t.$intermediate_exp().$as("base")))}),{$$s:m}),n(m,"rule",["symbol_class_commands"],(function e(){var t=null==e.$$s?this:e.$$s;return t.$str("&#x")["$>>"](t.$match()["$[]"]("0-9a-fA-F").$repeat())["$>>"](t.$str(";")).$as("unicode_symbols")["$|"](t.$hash_to_expression(p(f("Constants"),"SYMBOLS")))["$|"](t.$under_over())["$|"](t.$environment())["$|"](t.$numeric_values())}),{$$s:m}),n(m,"rule",["symbol_text_or_integer"],(function e(){var t=null==e.$$s?this:e.$$s;return t.$str('"').$as("symbol")["$|"](t.$symbol_class_commands())["$|"](t.$slash()["$>>"](t.$math_operators_classes()))["$|"](t.$match()["$[]"]("a-zA-Z").$as("symbols"))["$|"](t.$match(a(/\d+(\.[0-9]+)|\d/u,null,"")).$repeat(1).$as("number"))["$|"](t.$str("\\\\").$as("\\\\")["$>>"](t.$match(a(/\s/u,null,"")).$repeat()))["$|"](t.$str("\\ ").$as("space"))["$|"](t.$str("\\operatorname{")["$>>"](t.$match("[^}]").$repeat().$as("symbols"))["$>>"](t.$str("}")))}),{$$s:m}),n(m,"rule",["intermediate_exp"],(function e(){var t=null==e.$$s?this:e.$$s;return t.$lparen().$as("left_paren")["$>>"](t.$expression().$maybe().$as("expression"))["$>>"](t.$rparen()["$|"](t.$str("\\")["$>>"](t.$match(" ")["$>>"](t.$str(".")).$maybe()).$as("rparen")).$maybe().$as("right_paren")).$as("intermediate_exp")["$|"](t.$str("{")["$>>"](t.$expression().$maybe().$as("expression"))["$>>"](t.$str("}")))["$|"](t.$symbol_text_or_integer())}),{$$s:m}),n(m,"rule",["parsing_text_values"],(function e(){var t=null==e.$$s?this:e.$$s;return t.$str("{")["$>>"](t.$parsing_text_values())["$>>"](t.$str("}"))["$>>"](t.$parsing_text_values())["$|"](t.$str("{")["$>>"](t.$parsing_text_values())["$>>"](t.$str("}")))["$|"](t.$match("[^}]")["$>>"](t.$parsing_text_values()))["$|"](t.$match("[^}]").$repeat())}),{$$s:m}),n(m,"rule",["power_base"],(function e(){var t=null==e.$$s?this:e.$$s;return t.$subscript()["$>>"](t.$power())["$>>"](t.$intermediate_exp().$as("supscript")).$as("power_base")["$|"](t.$supscript()["$>>"](t.$base())["$>>"](t.$intermediate_exp().$as("subscript")).$as("power_base"))["$|"](t.$supscript().$as("power"))["$|"](t.$subscript().$as("base"))}),{$$s:m}),n(m,"rule",["binary_functions"],(function e(){var t=null==e.$$s?this:e.$$s;return t.$intermediate_exp().$as("first_value")["$>>"](t.$under_over())["$>>"](t.$intermediate_exp().$as("second_value")).$as("under_over")["$|"](t.$slash()["$>>"](t.$str("sqrt").$as("root"))["$>>"](t.$sqrt_arg().$as("first_value"))["$>>"](t.$intermediate_exp().$as("second_value")).$as("binary"))["$|"](t.$slash()["$>>"](t.$str("sqrt").$as("sqrt"))["$>>"](t.$intermediate_exp().$as("intermediate_exp")).$as("binary"))["$|"](t.$color_rules())}),{$$s:m}),n(m,"rule",["sequence"],(function e(){var t=null==e.$$s?this:e.$$s;return t.$limits().$as("limits")["$|"](t.$binary_functions().$as("binary_functions")["$>>"](t.$power())["$>>"](t.$sequence().$as("supscript")).$as("power"))["$|"](t.$binary_functions().$as("binary_functions")["$>>"](t.$base())["$>>"](t.$sequence().$as("subscript")).$as("base"))["$|"](t.$binary_functions())["$|"](t.$slash()["$>>"](t.$str("rule").$as("rule"))["$>>"](t.$sqrt_arg().$maybe().$as("first_value"))["$>>"](t.$intermediate_exp().$maybe().$as("second_value"))["$>>"](t.$intermediate_exp().$maybe().$as("third_value")).$as("binary"))["$|"](t.$over_class()["$>>"](t.$power())["$>>"](t.$intermediate_exp().$as("supscript")))["$|"](t.$over_class()["$>>"](t.$base())["$>>"](t.$intermediate_exp().$as("subscript")))["$|"](t.$over_class())["$|"](t.$left_right().$as("left_right")["$>>"](t.$power())["$>>"](t.$intermediate_exp().$as("supscript")))["$|"](t.$left_right().$as("left_right")["$>>"](t.$base())["$>>"](t.$intermediate_exp().$as("subscript")))["$|"](t.$left_right().$as("left_right"))["$|"](t.$slash()["$>>"](t.$str("substack").$as("substack"))["$>>"](t.$intermediate_exp()))["$|"](t.$array_begin()["$>>"](t.$array_args())["$>>"](t.$expression().$as("table_data"))["$>>"](t.$ending()).$as("environment"))["$|"](t.$begining()["$>>"](t.$expression().$as("table_data"))["$>>"](t.$ending()).$as("environment"))["$|"](t.$slash()["$>>"](t.$environment())["$>>"](t.$intermediate_exp()).$as("table_data"))["$|"](t.$power_base())["$|"](t.$intermediate_exp())["$|"](t.$intermediate_exp().$as("intermediate_exp")["$>>"](t.$rparen().$as("symbol")))}),{$$s:m}),n(m,"rule",["left_right"],(function e(){var t=null==e.$$s?this:e.$$s;return t.$str("\\left").$as("left")["$>>"](t.$left_parens()["$|"](t.$str(".").$maybe()))["$>>"](t.$expression().$repeat().$as("dividend")["$>>"](t.$str("\\over"))["$>>"](t.$expression().$repeat().$as("divisor"))["$|"](t.$expression().$as("expression").$maybe()))["$>>"](t.$str("\\right").$as("right").$maybe()["$>>"](t.$right_parens()["$|"](t.$str(".").$maybe())))}),{$$s:m}),n(m,"rule",["over_class"],(function e(){var t=null==e.$$s?this:e.$$s;return t.$str("{")["$>>"](t.$expression().$repeat().$as("dividend"))["$>>"](t.$str("\\over"))["$>>"](t.$expression().$repeat().$as("divisor"))["$>>"](t.$str("}"))["$|"](t.$left_right().$as("left_right").$as("power")["$>>"](t.$power())["$>>"](t.$intermediate_exp()))["$|"](t.$left_right().$as("left_right").$as("base")["$>>"](t.$base())["$>>"](t.$intermediate_exp())).$as("over")}),{$$s:m}),n(m,"rule",["iteration"],(function e(){var t=null==e.$$s?this:e.$$s;return t.$sequence().$as("sequence")["$>>"](t.$iteration().$as("expression"))["$|"](t.$sequence()["$>>"](t.$expression().$maybe()))}),{$$s:m}),n(m,"rule",["expression"],(function e(){var t=null==e.$$s?this:e.$$s;return t.$iteration()["$>>"](t.$expression())["$|"](t.$iteration())["$|"](t.$iteration().$as("dividend")["$>>"](t.$str("\\over"))["$>>"](t.$iteration().$as("divisor"))["$>>"](t.$expression().$maybe()))}),{$$s:m}),m.$root("expression"),l(m,"$arr_to_expression",(function(e,t){var r,a,l=_;return s(d[0],"@@new_hash",i(null!=d[0].$$cvars["@@new_hash"]?"class variable":_)&&i(l=o(d[0],"@@new_hash",!1))?l:new Map),a=e.$first().$class(),i(l=o(d[0],"@@new_hash",!1)["$[]"](t))?l:(r=[t,n(e,"reduce",[],(function e(r,n){var s=null==e.$$s?this:e.$$s;return null==r&&(r=_),null==n&&(n=_),i(r["$is_a?"](a))&&(r=s.$str(r).$as(t)),r["$|"](s.$str(n).$as(t))}),{$$s:this})],n(o(d[0],"@@new_hash",!1),"[]=",r),r[r.length-1])})),l(m,"$hash_to_expression",(function(e){var t=_;return s(d[0],"@@expression",i(null!=d[0].$$cvars["@@expression"]?"class variable":_)?i(t=o(d[0],"@@expression",!1))?t:n(e,"reduce",[],(function e(t,r){var n,a,s,o=null==e.$$s?this:e.$$s;return null==t&&(t=_),null==r&&(r=_),a=null==(n=$(r))[0]?_:n[0],s=null==n[1]?_:n[1],i(t["$is_a?"](f("Array")))&&(t=o.$dynamic_rules(t.$first(),t.$last())),t["$|"](o.$dynamic_rules(a,s))}),{$$s:this,$$has_top_level_mlhs_arg:!0}):n(e,"reduce",[],(function e(t,r){var n,a,s,o=null==e.$$s?this:e.$$s;return null==t&&(t=_),null==r&&(r=_),a=null==(n=$(r))[0]?_:n[0],s=null==n[1]?_:n[1],i(t["$is_a?"](f("Array")))&&(t=o.$dynamic_rules(t.$first(),t.$last())),t["$|"](o.$dynamic_rules(a,s))}),{$$s:this,$$has_top_level_mlhs_arg:!0}))})),l(m,"$dynamic_rules",(function(e,t){var r=this,n=_;switch(n=r.$str(e.$to_s()),t.valueOf()){case"operant":return n.$as("operant")["$|"](r.$slashed_value(n,"symbols"));case"symbols":return r.$slashed_value(n,"symbols");case"unary":return r.$unary_rules(n);case"fonts":return r.$slashed_value(n,"fonts")["$>>"](r.$binary_functions()["$|"](r.$intermediate_exp()).$as("intermediate_exp"));case"power_base":return r.$slashed_value(n,"binary")["$>>"](r.$dynamic_power_base()).$as("power_base")["$|"](r.$slashed_value(n,"binary"));case"underover":return r.$slashed_value(n,"underover")["$>>"](r.$dynamic_power_base())["$|"](r.$slashed_value(n,"underover")["$>>"](r.$intermediate_exp().$maybe().$as("first_value"))["$>>"](r.$dynamic_power_base()))["$|"](r.$slashed_value(n,"underover"));case"binary":return r.$slashed_value(n,"binary")["$>>"](r.$intermediate_exp().$as("first_value"))["$>>"](r.$intermediate_exp().$as("second_value")).$as("binary");case"text":return r.$slashed_value(n,"text")["$>>"](r.$str("{")["$>>"](r.$parsing_text_values().$as("first_value"))["$>>"](r.$str("}")));case"ternary":return r.$slashed_value(n,"ternary_functions")["$>>"](r.$dynamic_power_base())["$>>"](r.$sequence().$as("third_value").$maybe()).$as("ternary_class")["$|"](r.$slashed_value(n,"ternary"));default:return _}})),l(m,"$slashed_value",(function(e,t){return null==t&&(t=_),this.$slash()["$>>"](e.$as(t))}),-2),l(m,"$unary_rules",(function(e){var t=this;return t.$slashed_value(e,"unary_functions")["$>>"](t.$dynamic_power_base())["$|"](t.$slashed_value(e,"unary")["$>>"](t.$left_right().$as("first_value")).$as("unary_functions"))["$|"](t.$slashed_value(e,"unary")["$>>"](t.$intermediate_exp().$as("first_value")).$as("unary_functions"))["$|"](t.$slashed_value(e,"unary"))})),l(m,"$dynamic_power_base",(function(){var e=this;return e.$base()["$>>"](e.$intermediate_exp().$as("subscript"))["$>>"](e.$power())["$>>"](e.$intermediate_exp().$as("supscript"))["$|"](e.$power()["$>>"](e.$intermediate_exp().$as("supscript"))["$>>"](e.$base())["$>>"](e.$intermediate_exp().$as("subscript")))["$|"](e.$power()["$>>"](e.$intermediate_exp().$as("supscript")))["$|"](e.$base()["$>>"](e.$intermediate_exp().$as("subscript")))})),l(m,"$color_rules",(function(){var e=this;return e.$str("{")["$>>"](e.$slash())["$>>"](e.$str("color").$as("binary"))["$>>"](e.$color().$as("first_value"))["$>>"](e.$sequence()["$>>"](e.$iteration().$maybe()).$as("second_value").$maybe())["$>>"](e.$str("}"))["$|"](e.$slash()["$>>"](e.$str("color").$as("binary"))["$>>"](e.$color().$as("first_value"))["$>>"](e.$expression().$as("second_value").$maybe()))}))}(m[0],p(d("Parslet"),"Parser"),m)}(m[0],0,m)}(c[0],c)},Opal.modules["plurimath/latex/constants"]=function(e){var t=e.module,r=e.klass,n=e.const_set,a=[],s=e.nil;return e.add_stubs("freeze"),function(e,a){var i=[t(e,"Plurimath")].concat(a);return function(e,t,a){var i=[r(e,null,"Latex")].concat(a);return function(e,t,a){var i=[r(e,null,"Constants")].concat(a);return n(i[0],"UNICODE_SYMBOLS",new Map([["barleftarrowrightarrowba","&#x21b9;"],["rightarrowshortleftarrow","&#x2942;"],["leftarrowshortrightarrow","&#x2943;"],["shortrightarrowleftarrow","&#x2944;"],["leftrightharpoondowndown","&#x2950;"],["smallblacktriangleright","&#x25b8;"],["invwhiteupperhalfcircle","&#x25da;"],["invwhitelowerhalfcircle","&#x25db;"],["concavediamondtickright","&#x27e3;"],["nvtwoheadrightarrowtail","&#x2917;"],["nVtwoheadrightarrowtail","&#x2918;"],["updownharpoonrightright","&#x294f;"],["updownharpoonsleftright","&#x296e;"],["downupharpoonsleftright","&#x296f;"],["leftrightarrowtriangle","&#x21ff;"],["smallblacktriangleleft","&#x25c2;"],["blackcircleulquadwhite","&#x25d5;"],["concavediamondtickleft","&#x27e2;"],["leftrightharpoonupdown","&#x294a;"],["leftrightharpoondownup","&#x294b;"],["updownharpoonrightleft","&#x294c;"],["updownharpoonleftright","&#x294d;"],["downtrianglerightblack","&#x29e9;"],["partialmeetcontraction","&#x2aa3;"],["nvtwoheadleftarrowtail","&#x2b3c;"],["nVtwoheadleftarrowtail","&#x2b3d;"],["underrightharpoondown","&#x20ec;"],["barovernorthwestarrow","&#x21b8;"],["rangledownzigzagarrow","&#x237c;"],["circlebottomhalfblack","&#x25d2;"],["twoheadrightarrowtail","&#x2916;"],["updownharpoonleftleft","&#x2951;"],["downharpoonsleftright","&#x2965;"],["leftrightharpoonsdown","&#x2967;"],["rightleftharpoonsdown","&#x2969;"],["downtriangleleftblack","&#x29e8;"],["blackdiamonddownarrow","&#x29ea;"],["closedvarcupsmashprod","&#x2a50;"],["underleftharpoondown","&#x20ed;"],["CapitalDifferentialD","&#x2145;"],["bigblacktriangledown","&#x25bc;"],["circlerighthalfblack","&#x25d1;"],["blackrighthalfcircle","&#x25d7;"],["blackcircledrightdot","&#x2688;"],["whiteinwhitetriangle","&#x27c1;"],["whitesquaretickright","&#x27e5;"],["barrightarrowdiamond","&#x2920;"],["downrightcurvedarrow","&#x2935;"],["rightdowncurvedarrow","&#x2937;"],["curvearrowrightminus","&#x293c;"],["leftrightarrowcircle","&#x2948;"],["twoheaduparrowcircle","&#x2949;"],["leftrightharpoonupup","&#x294e;"],["leftrightharpoondown","&#x2950;"],["dashrightharpoondown","&#x296d;"],["blackcircledownarrow","&#x29ed;"],["NestedGreaterGreater","&#x2aa2;"],["twoheadleftarrowtail","&#x2b3b;"],["rightarrowbackapprox","&#x2b48;"],["leftrightsquigarrow","&#x21ad;"],["whitearrowupfrombar","&#x21ea;"],["blockthreeqtrshaded","&#x2593;"],["blackinwhitediamond","&#x25c8;"],["circlelefthalfblack","&#x25d0;"],["blacklefthalfcircle","&#x25d6;"],["blackcircledtwodots","&#x2689;"],["whitesquaretickleft","&#x27e4;"],["longrightsquigarrow","&#x27ff;"],["nvtwoheadrightarrow","&#x2900;"],["nVtwoheadrightarrow","&#x2901;"],["diamondleftarrowbar","&#x291f;"],["leftdowncurvedarrow","&#x2936;"],["downharpoonrightbar","&#x2955;"],["rightharpoondownbar","&#x2957;"],["bardownharpoonright","&#x295d;"],["barrightharpoondown","&#x295f;"],["upharpoonsleftright","&#x2963;"],["rightharpoonsupdown","&#x2964;"],["leftrightharpoonsup","&#x2966;"],["rightleftharpoonsup","&#x2968;"],["dashleftharpoondown","&#x296b;"],["twoheadleftdbkarrow","&#x2b37;"],["leftarrowbackapprox","&#x2b42;"],["rightharpoonaccent","&#x20d1;"],["overleftrightarrow","&#x20e1;"],["acwopencirclearrow","&#x21ba;"],["upharpoonrightdown","&#x21c2;"],["circleonrightarrow","&#x21f4;"],["rightarrowtriangle","&#x21fe;"],["PrecedesSlantEqual","&#x227c;"],["SucceedsSlantEqual","&#x227d;"],["measuredrightangle","&#x22be;"],["blackinwhitesquare","&#x25a3;"],["parallelogramblack","&#x25b0;"],["bigblacktriangleup","&#x25b2;"],["blacktriangleright","&#x25b6;"],["smalltriangleright","&#x25b9;"],["circletophalfblack","&#x25d3;"],["inversewhitecircle","&#x25d9;"],["trianglerightblack","&#x25ee;"],["longleftrightarrow","&#x27f7;"],["Longleftrightarrow","&#x27fa;"],["curvearrowleftplus","&#x293d;"],["ccwundercurvearrow","&#x293f;"],["leftrightharpoonup","&#x294e;"],["rightupdownharpoon","&#x294f;"],["RightDownVectorBar","&#x2955;"],["barleftharpoondown","&#x2956;"],["DownRightVectorBar","&#x2957;"],["downharpoonleftbar","&#x2959;"],["RightDownTeeVector","&#x295d;"],["leftharpoondownbar","&#x295e;"],["DownRightTeeVector","&#x295f;"],["bardownharpoonleft","&#x2961;"],["leftharpoonsupdown","&#x2962;"],["rightrightharpoons","&#x2964;"],["rightharpoonupdash","&#x296c;"],["circledwhitebullet","&#x29be;"],["errbarblackdiamond","&#x29f1;"],["longleftsquigarrow","&#x2b33;"],["nvtwoheadleftarrow","&#x2b34;"],["nVtwoheadleftarrow","&#x2b35;"],["bsimilarrightarrow","&#x2b47;"],["rightarrowbsimilar","&#x2b4c;"],["rightpentagonblack","&#x2b53;"],["leftharpoonaccent","&#x20d0;"],["twoheadrightarrow","&#x21a0;"],["cwopencirclearrow","&#x21bb;"],["upharpoonleftdown","&#x21c3;"],["leftrightharpoons","&#x21cb;"],["rightleftharpoons","&#x21cc;"],["leftarrowtriangle","&#x21fd;"],["kernelcontraction","&#x223b;"],["vardoublebarwedge","&#x2306;"],["varhexagonlrbonds","&#x232c;"],["varcarriagereturn","&#x23ce;"],["blackpointerright","&#x25ba;"],["whitepointerright","&#x25bb;"],["blacktriangledown","&#x25be;"],["smalltriangledown","&#x25bf;"],["blacktriangleleft","&#x25c0;"],["smalltriangleleft","&#x25c3;"],["circleurquadblack","&#x25d4;"],["triangleleftblack","&#x25ed;"],["acwgapcirclearrow","&#x27f2;"],["rightarrowonoplus","&#x27f4;"],["rightarrowdiamond","&#x291e;"],["uprightcurvearrow","&#x2934;"],["cwundercurvearrow","&#x293e;"],["leftupdownharpoon","&#x2951;"],["rightharpoonupbar","&#x2953;"],["barupharpoonright","&#x2954;"],["DownLeftVectorBar","&#x2956;"],["LeftDownVectorBar","&#x2959;"],["barrightharpoonup","&#x295b;"],["upharpoonrightbar","&#x295c;"],["DownLeftTeeVector","&#x295e;"],["LeftDownTeeVector","&#x2961;"],["leftharpoonupdash","&#x296a;"],["similarrightarrow","&#x2972;"],["rightarrowsimilar","&#x2974;"],["measuredangleleft","&#x299b;"],["errbarblacksquare","&#x29ef;"],["errbarblackcircle","&#x29f3;"],["diamondrightblack","&#x2b17;"],["circleonleftarrow","&#x2b30;"],["bsimilarleftarrow","&#x2b41;"],["leftarrowbsimilar","&#x2b4b;"],["twoheadleftarrow","&#x219e;"],["twoheaddownarrow","&#x21a1;"],["circlearrowright","&#x21bb;"],["rightharpoondown","&#x21c1;"],["downharpoonright","&#x21c2;"],["uparrowdownarrow","&#x21c5;"],["rightrightarrows","&#x21c9;"],["downarrowuparrow","&#x21f5;"],["rightthreearrows","&#x21f6;"],["nvleftrightarrow","&#x21f9;"],["nVleftrightarrow","&#x21fc;"],["varointclockwise","&#x2232;"],["ointctrclockwise","&#x2233;"],["vartriangleright","&#x22b3;"],["multimapdotbothA","&#x22b6;"],["multimapdotbothB","&#x22b7;"],["NotRightTriangle","&#x22eb;"],["ntrianglerighteq","&#x22ed;"],["APLrightarrowbox","&#x2348;"],["blackpointerleft","&#x25c4;"],["whitepointerleft","&#x25c5;"],["squarerightblack","&#x25e8;"],["cwgapcirclearrow","&#x27f3;"],["nvLeftrightarrow","&#x2904;"],["nvrightarrowtail","&#x2914;"],["nVrightarrowtail","&#x2915;"],["diamondleftarrow","&#x291d;"],["rightcurvedarrow","&#x2933;"],["acwunderarcarrow","&#x293b;"],["leftrightharpoon","&#x294a;"],["rightleftharpoon","&#x294b;"],["barleftharpoonup","&#x2952;"],["RightUpVectorBar","&#x2954;"],["barupharpoonleft","&#x2958;"],["leftharpoonupbar","&#x295a;"],["RightUpTeeVector","&#x295c;"],["upharpoonleftbar","&#x2960;"],["leftleftharpoons","&#x2962;"],["downdownharpoons","&#x2965;"],["uprevequilibrium","&#x296f;"],["leftarrowsimilar","&#x2973;"],["rightarrowapprox","&#x2975;"],["sphericalangleup","&#x29a1;"],["RightTriangleBar","&#x29d0;"],["diamondleftblack","&#x2b16;"],["leftarrowonoplus","&#x2b32;"],["rightarrowsupset","&#x2b44;"],["similarleftarrow","&#x2b49;"],["enleadertwodots","&#x2025;"],["unicodeellipsis","&#x2026;"],["enclosetriangle","&#x20e4;"],["widebridgeabove","&#x20e9;"],["underrightarrow","&#x20ef;"],["nleftrightarrow","&#x21ae;"],["downzigzagarrow","&#x21af;"],["curvearrowright","&#x21b7;"],["circlearrowleft","&#x21ba;"],["leftharpoondown","&#x21bd;"],["upharpoonleftup","&#x21bf;"],["downharpoonleft","&#x21c3;"],["rightleftarrows","&#x21c4;"],["leftrightarrows","&#x21c6;"],["nLeftrightarrow","&#x21ce;"],["rightsquigarrow","&#x21dd;"],["rightwhitearrow","&#x21e8;"],["NotGreaterTilde","&#x2275;"],["vartriangleleft","&#x22b2;"],["trianglerighteq","&#x22b5;"],["rightthreetimes","&#x22cc;"],["NotLeftTriangle","&#x22ea;"],["ntrianglelefteq","&#x22ec;"],["APLnotbackslash","&#x2340;"],["APLleftarrowbox","&#x2347;"],["APLdownarrowbox","&#x2357;"],["blockhalfshaded","&#x2592;"],["squarecrossfill","&#x25a9;"],["hrectangleblack","&#x25ac;"],["vrectangleblack","&#x25ae;"],["blacktriangleup","&#x25b4;"],["smalltriangleup","&#x25b5;"],["bigtriangledown","&#x25bd;"],["lrblacktriangle","&#x25e2;"],["llblacktriangle","&#x25e3;"],["ulblacktriangle","&#x25e4;"],["urblacktriangle","&#x25e5;"],["squareleftblack","&#x25e7;"],["circledrightdot","&#x2686;"],["downarrowbarred","&#x2908;"],["cwrightarcarrow","&#x2938;"],["acwleftarcarrow","&#x2939;"],["acwoverarcarrow","&#x293a;"],["LeftUpVectorBar","&#x2958;"],["LeftUpTeeVector","&#x2960;"],["rightbarharpoon","&#x296c;"],["barrightharpoon","&#x296d;"],["equalrightarrow","&#x2971;"],["leftarrowsubset","&#x297a;"],["measanglerutone","&#x29a8;"],["measanglelutonw","&#x29a9;"],["measanglerdtose","&#x29aa;"],["measangleldtosw","&#x29ab;"],["measangleurtone","&#x29ac;"],["measangleultonw","&#x29ad;"],["measangledrtose","&#x29ae;"],["measangledltosw","&#x29af;"],["circledparallel","&#x29b7;"],["uparrowoncircle","&#x29bd;"],["LeftTriangleBar","&#x29cf;"],["circledownarrow","&#x29ec;"],["bigtriangleleft","&#x2a1e;"],["diamondtopblack","&#x2b18;"],["diamondbotblack","&#x2b19;"],["varhexagonblack","&#x2b22;"],["leftthreearrows","&#x2b31;"],["twoheadmapsfrom","&#x2b36;"],["nvleftarrowtail","&#x2b39;"],["nVleftarrowtail","&#x2b3a;"],["leftcurvedarrow","&#x2b3f;"],["leftarrowapprox","&#x2b4a;"],["enclosediamond","&#x20df;"],["underleftarrow","&#x20ee;"],["leftrightarrow","&#x2194;"],["rightwavearrow","&#x219d;"],["twoheaduparrow","&#x219f;"],["rightarrowtail","&#x21a3;"],["updownarrowbar","&#x21a8;"],["hookrightarrow","&#x21aa;"],["looparrowright","&#x21ac;"],["carriagereturn","&#x21b5;"],["curvearrowleft","&#x21b6;"],["upharpoonright","&#x21be;"],["rightharpoonup","&#x21c0;"],["rightleftarrow","&#x21c4;"],["leftleftarrows","&#x21c7;"],["downdownarrows","&#x21ca;"],["revequilibrium","&#x21cb;"],["Leftrightarrow","&#x21d4;"],["leftsquigarrow","&#x21dc;"],["dashrightarrow","&#x21e2;"],["rightdasharrow","&#x21e2;"],["leftwhitearrow","&#x21e6;"],["downwhitearrow","&#x21e9;"],["sphericalangle","&#x2222;"],["NotGreaterLess","&#x2279;"],["trianglelefteq","&#x22b4;"],["leftthreetimes","&#x22cb;"],["ntriangleright","&#x22eb;"],["APLboxquestion","&#x2370;"],["lparenextender","&#x239c;"],["rparenextender","&#x239f;"],["lbrackextender","&#x23a2;"],["rbrackextender","&#x23a5;"],["vbraceextender","&#x23aa;"],["harrowextender","&#x23af;"],["blockrighthalf","&#x2590;"],["blockqtrshaded","&#x2591;"],["squarenwsefill","&#x25a7;"],["squareneswfill","&#x25a8;"],["mdlgblkdiamond","&#x25c6;"],["mdlgwhtdiamond","&#x25c7;"],["mdlgwhtlozenge","&#x25ca;"],["circlevertfill","&#x25cd;"],["vardiamondsuit","&#x2666;"],["circledtwodots","&#x2687;"],["rightouterjoin","&#x27d6;"],["concavediamond","&#x27e1;"],["longrightarrow","&#x27f6;"],["Longrightarrow","&#x27f9;"],["longmappedfrom","&#x27fb;"],["Longmappedfrom","&#x27fd;"],["fdiagovnearrow","&#x292f;"],["rdiagovsearrow","&#x2930;"],["acwcirclearrow","&#x2940;"],["rightarrowplus","&#x2945;"],["RightVectorBar","&#x2953;"],["RightTeeVector","&#x295b;"],["leftbarharpoon","&#x296a;"],["barleftharpoon","&#x296b;"],["updownharpoons","&#x296e;"],["downupharpoons","&#x296f;"],["rightanglemdot","&#x299d;"],["triangleserifs","&#x29cd;"],["blackhourglass","&#x29d7;"],["mdlgblklozenge","&#x29eb;"],["bigslopedwedge","&#x2a58;"],["doublebarwedge","&#x2a5e;"],["wedgedoublebar","&#x2a60;"],["NestedLessLess","&#x2aa1;"],["squaretopblack","&#x2b12;"],["squarebotblack","&#x2b13;"],["equalleftarrow","&#x2b40;"],["ocommatopright","&#x315;"],["overleftarrow","&#x20d6;"],["enclosecircle","&#x20dd;"],["enclosesquare","&#x20de;"],["threeunderdot","&#x20e8;"],["sansLmirrored","&#x2143;"],["DifferentialD","&#x2146;"],["leftwavearrow","&#x219c;"],["leftarrowtail","&#x21a2;"],["hookleftarrow","&#x21a9;"],["looparrowleft","&#x21ab;"],["leftharpoonup","&#x21bc;"],["upharpoonleft","&#x21bf;"],["dashleftarrow","&#x21e0;"],["leftdasharrow","&#x21e0;"],["downdasharrow","&#x21e3;"],["RightArrowBar","&#x21e5;"],["rightarrowbar","&#x21e5;"],["smallsetminus","&#x2216;"],["vysmwhtcircle","&#x2218;"],["vysmblkcircle","&#x2219;"],["measuredangle","&#x2221;"],["wasytherefore","&#x2234;"],["dotsminusdots","&#x223a;"],["fallingdotseq","&#x2252;"],["PrecedesTilde","&#x227e;"],["SucceedsTilde","&#x227f;"],["varlrtriangle","&#x22bf;"],["divideontimes","&#x22c7;"],["equalparallel","&#x22d5;"],["ntriangleleft","&#x22ea;"],["APLuparrowbox","&#x2350;"],["APLboxupcaret","&#x2353;"],["bdtriplevdash","&#x2506;"],["blocklefthalf","&#x258c;"],["mdlgblksquare","&#x25a0;"],["mdlgwhtsquare","&#x25a1;"],["parallelogram","&#x25b1;"],["bigtriangleup","&#x25b3;"],["blacktriangle","&#x25b4;"],["triangleright","&#x25b7;"],["mdlgwhtcircle","&#x25cb;"],["mdlgblkcircle","&#x25cf;"],["inversebullet","&#x25d8;"],["topsemicircle","&#x25e0;"],["botsemicircle","&#x25e1;"],["squareulblack","&#x25e9;"],["squarelrblack","&#x25ea;"],["mdsmwhtsquare","&#x25fd;"],["mdsmblksquare","&#x25fe;"],["sixteenthnote","&#x266c;"],["Hermaphrodite","&#x26a5;"],["mdsmwhtcircle","&#x26ac;"],["draftingarrow","&#x279b;"],["leftouterjoin","&#x27d5;"],["fullouterjoin","&#x27d7;"],["longleftarrow","&#x27f5;"],["Longleftarrow","&#x27f8;"],["twoheadmapsto","&#x2905;"],["uparrowbarred","&#x2909;"],["rightdotarrow","&#x2911;"],["cwcirclearrow","&#x2941;"],["leftarrowplus","&#x2946;"],["LeftVectorBar","&#x2952;"],["LeftTeeVector","&#x295a;"],["upequilibrium","&#x296e;"],["leftarrowless","&#x2977;"],["rightfishtail","&#x297d;"],["mdsmblkcircle","&#x2981;"],["llparenthesis","&#x2987;"],["rrparenthesis","&#x2988;"],["rightanglesqr","&#x299c;"],["wideangledown","&#x29a6;"],["emptysetocirc","&#x29b2;"],["emptysetoarrl","&#x29b4;"],["circledbslash","&#x29b8;"],["circledbullet","&#x29bf;"],["errbardiamond","&#x29f0;"],["triangleminus","&#x2a3a;"],["triangletimes","&#x2a3b;"],["shortlefttack","&#x2ade;"],["shortdowntack","&#x2adf;"],["threedotcolon","&#x2af6;"],["biginterleave","&#x2afc;"],["bigtalloblong","&#x2aff;"],["squareurblack","&#x2b14;"],["squarellblack","&#x2b15;"],["vysmblksquare","&#x2b1d;"],["vysmwhtsquare","&#x2b1e;"],["pentagonblack","&#x2b1f;"],["rightarrowgtr","&#x2b43;"],["rightpentagon","&#x2b54;"],["upbackepsilon","&#x3f6;"],["hyphenbullet","&#x2043;"],["PropertyLine","&#x214a;"],["updownarrows","&#x21c5;"],["LeftArrowBar","&#x21e4;"],["barleftarrow","&#x21e4;"],["upwhitearrow","&#x21e7;"],["downuparrows","&#x21f5;"],["nvrightarrow","&#x21f8;"],["nVrightarrow","&#x21fb;"],["intclockwise","&#x2231;"],["cntclockoint","&#x2233;"],["risingdotseq","&#x2253;"],["NotLessTilde","&#x2274;"],["varsubsetneq","&#x228a;"],["cupleftarrow","&#x228c;"],["circledequal","&#x229c;"],["hermitmatrix","&#x22b9;"],["smwhtdiamond","&#x22c4;"],["npreccurlyeq","&#x22e0;"],["nsucccurlyeq","&#x22e1;"],["unicodecdots","&#x22ef;"],["notbackslash","&#x2340;"],["underbracket","&#x23b5;"],["blocklowhalf","&#x2584;"],["squarehvfill","&#x25a6;"],["triangledown","&#x25bf;"],["triangleleft","&#x25c1;"],["Diamondblack","&#x25c6;"],["dottedcircle","&#x25cc;"],["trianglecdot","&#x25ec;"],["squareulquad","&#x25f0;"],["squarellquad","&#x25f1;"],["squarelrquad","&#x25f2;"],["squareurquad","&#x25f3;"],["circleulquad","&#x25f4;"],["circlellquad","&#x25f5;"],["circlelrquad","&#x25f6;"],["circleurquad","&#x25f7;"],["bigwhitestar","&#x2606;"],["invsmileface","&#x263b;"],["varspadesuit","&#x2664;"],["varheartsuit","&#x2665;"],["dingasterisk","&#x273d;"],["longdivision","&#x27cc;"],["lozengeminus","&#x27e0;"],["longmapsfrom","&#x27fb;"],["Longmapsfrom","&#x27fd;"],["nvRightarrow","&#x2903;"],["rightbkarrow","&#x290d;"],["leftdbkarrow","&#x290e;"],["DownArrowBar","&#x2913;"],["downarrowbar","&#x2913;"],["rightdbltail","&#x291c;"],["rdiagovfdiag","&#x292b;"],["fdiagovrdiag","&#x292c;"],["upupharpoons","&#x2963;"],["leftfishtail","&#x297c;"],["downfishtail","&#x297f;"],["lbrackultick","&#x298d;"],["rbracklrtick","&#x298e;"],["lbracklltick","&#x298f;"],["rbrackurtick","&#x2990;"],["revangleubar","&#x29a5;"],["emptysetobar","&#x29b1;"],["emptysetoarr","&#x29b3;"],["odotslashdot","&#x29bc;"],["ogreaterthan","&#x29c1;"],["triangleodot","&#x29ca;"],["triangleubar","&#x29cb;"],["multimapboth","&#x29df;"],["lrtriangleeq","&#x29e1;"],["blacklozenge","&#x29eb;"],["errbarsquare","&#x29ee;"],["errbarcircle","&#x29f2;"],["triangleplus","&#x2a39;"],["closedvarcup","&#x2a4c;"],["closedvarcap","&#x2a4d;"],["wedgeonwedge","&#x2a55;"],["bigslopedvee","&#x2a57;"],["wedgemidvert","&#x2a5a;"],["doublebarvee","&#x2a62;"],["veedoublebar","&#x2a63;"],["eqqslantless","&#x2a9b;"],["subsetapprox","&#x2ac9;"],["supsetapprox","&#x2aca;"],["dottedsquare","&#x2b1a;"],["hexagonblack","&#x2b23;"],["mdblkdiamond","&#x2b25;"],["mdwhtdiamond","&#x2b26;"],["mdblklozenge","&#x2b27;"],["mdwhtlozenge","&#x2b28;"],["smblkdiamond","&#x2b29;"],["smblklozenge","&#x2b2a;"],["smwhtlozenge","&#x2b2b;"],["leftdotarrow","&#x2b38;"],["medwhitestar","&#x2b50;"],["medblackstar","&#x2b51;"],["oturnedcomma","&#x312;"],["upvarepsilon","&#x3f5;"],["mathsterling","&#xa3;"],["smblkcircle","&#x2022;"],["backtrprime","&#x2037;"],["caretinsert","&#x2038;"],["vertoverlay","&#x20d2;"],["asteraccent","&#x20f0;"],["Planckconst","&#x210e;"],["sansLturned","&#x2142;"],["ExponetialE","&#x2147;"],["updownarrow","&#x2195;"],["nrightarrow","&#x219b;"],["restriction","&#x21be;"],["equilibrium","&#x21cc;"],["nRightarrow","&#x21cf;"],["Updownarrow","&#x21d5;"],["Rrightarrow","&#x21db;"],["nHdownarrow","&#x21df;"],["updasharrow","&#x21e1;"],["nvleftarrow","&#x21f7;"],["nVleftarrow","&#x21fa;"],["approxident","&#x224b;"],["corresponds","&#x2259;"],["GreaterLess","&#x2277;"],["preccurlyeq","&#x227c;"],["succcurlyeq","&#x227d;"],["circledcirc","&#x229a;"],["circleddash","&#x229d;"],["curlyeqprec","&#x22de;"],["curlyeqsucc","&#x22df;"],["nsqsubseteq","&#x22e2;"],["nsqsupseteq","&#x22e3;"],["sqsubsetneq","&#x22e4;"],["sqsupsetneq","&#x22e5;"],["varisinobar","&#x22f6;"],["varbarwedge","&#x2305;"],["wasylozenge","&#x2311;"],["APLnotslash","&#x233f;"],["invdiameter","&#x2349;"],["intextender","&#x23ae;"],["overbracket","&#x23b4;"],["blockuphalf","&#x2580;"],["squarehfill","&#x25a4;"],["squarevfill","&#x25a5;"],["smblksquare","&#x25aa;"],["smwhtsquare","&#x25ab;"],["vartriangle","&#x25b5;"],["RIGHTcircle","&#x25d1;"],["RIGHTCIRCLE","&#x25d7;"],["smwhtcircle","&#x25e6;"],["lgwhtcircle","&#x25ef;"],["mdwhtsquare","&#x25fb;"],["blacksquare","&#x25fc;"],["mdblksquare","&#x25fc;"],["blacksmiley","&#x263b;"],["sagittarius","&#x2650;"],["capricornus","&#x2651;"],["diamondsuit","&#x2662;"],["varclubsuit","&#x2667;"],["quarternote","&#x2669;"],["mdwhtcircle","&#x26aa;"],["mdblkcircle","&#x26ab;"],["ballotcheck","&#x2713;"],["circledstar","&#x272a;"],["arrowbullet","&#x27a2;"],["threedangle","&#x27c0;"],["diamondcdot","&#x27d0;"],["multimapinv","&#x27dc;"],["nvLeftarrow","&#x2902;"],["leftbkarrow","&#x290c;"],["leftdbltail","&#x291b;"],["seovnearrow","&#x292d;"],["neovsearrow","&#x292e;"],["neovnwarrow","&#x2931;"],["nwovnearrow","&#x2932;"],["rightarrowx","&#x2947;"],["wideangleup","&#x29a7;"],["revemptyset","&#x29b0;"],["circledvert","&#x29b6;"],["circledless","&#x29c0;"],["gleichstark","&#x29e6;"],["ruledelayed","&#x29f4;"],["lcurvyangle","&#x29fc;"],["rcurvyangle","&#x29fd;"],["otimeslhrim","&#x2a34;"],["otimesrhrim","&#x2a35;"],["midbarwedge","&#x2a5c;"],["simminussim","&#x2a6c;"],["eqslantless","&#x2a95;"],["eqqslantgtr","&#x2a9c;"],["precnapprox","&#x2ab9;"],["succnapprox","&#x2aba;"],["shortuptack","&#x2ae0;"],["lgblksquare","&#x2b1b;"],["lgwhtsquare","&#x2b1c;"],["lgblkcircle","&#x2b24;"],["blkhorzoval","&#x2b2c;"],["whthorzoval","&#x2b2d;"],["blkvertoval","&#x2b2e;"],["whtvertoval","&#x2b2f;"],["RRightarrow","&#x2b46;"],["smwhitestar","&#x2b52;"],["backepsilon","&#x3f6;"],["varepsilon","&#x03b5;"],["wideutilde","&#x330;"],["upvartheta","&#x3d1;"],["upoldKoppa","&#x3d8;"],["upoldkoppa","&#x3d9;"],["upvarkappa","&#x3f0;"],["upvarTheta","&#x3f4;"],["upvarsigma","&#x3c2;"],["octothorpe","&#x23;"],["mathdollar","&#x24;"],["twolowline","&#x2017;"],["backdprime","&#x2036;"],["Eulerconst","&#x2107;"],["turnediota","&#x2129;"],["rightarrow","&#x2192;"],["nleftarrow","&#x219a;"],["mappedfrom","&#x21a4;"],["upuparrows","&#x21c8;"],["nLeftarrow","&#x21cd;"],["Rightarrow","&#x21d2;"],["Lleftarrow","&#x21da;"],["complement","&#x2201;"],["varnothing","&#x2205;"],["fourthroot","&#x221c;"],["rightangle","&#x221f;"],["Proportion","&#x2237;"],["sqsubseteq","&#x2291;"],["sqsupseteq","&#x2292;"],["circledast","&#x229b;"],["curlywedge","&#x22cf;"],["conictaper","&#x2332;"],["APLcomment","&#x235d;"],["lparenuend","&#x239b;"],["lparenlend","&#x239d;"],["rparenuend","&#x239e;"],["rparenlend","&#x23a0;"],["lbrackuend","&#x23a1;"],["lbracklend","&#x23a3;"],["rbrackuend","&#x23a4;"],["rbracklend","&#x23a6;"],["lbraceuend","&#x23a7;"],["lbracelend","&#x23a9;"],["rbraceuend","&#x23ab;"],["rbracelend","&#x23ad;"],["lmoustache","&#x23b0;"],["rmoustache","&#x23b1;"],["sqrtbottom","&#x23b7;"],["underparen","&#x23dd;"],["hrectangle","&#x25ad;"],["vrectangle","&#x25af;"],["LEFTcircle","&#x25d0;"],["LEFTCIRCLE","&#x25d6;"],["ultriangle","&#x25f8;"],["urtriangle","&#x25f9;"],["lltriangle","&#x25fa;"],["lrtriangle","&#x25ff;"],["CheckedBox","&#x2611;"],["pointright","&#x261e;"],["vardiamond","&#x2666;"],["eighthnote","&#x266a;"],["subsetcirc","&#x27c3;"],["supsetcirc","&#x27c4;"],["Diamonddot","&#x27d0;"],["DDownarrow","&#x27f1;"],["longmapsto","&#x27fc;"],["Longmapsto","&#x27fe;"],["Mappedfrom","&#x2906;"],["Ddownarrow","&#x290b;"],["UpArrowBar","&#x2912;"],["baruparrow","&#x2912;"],["rightimply","&#x2970;"],["upfishtail","&#x297e;"],["lbrackubar","&#x298b;"],["rbrackubar","&#x298c;"],["lparenless","&#x2993;"],["Rparenless","&#x2996;"],["lblkbrbrak","&#x2997;"],["rblkbrbrak","&#x2998;"],["circlehbar","&#x29b5;"],["circledgtr","&#x29c1;"],["doubleplus","&#x29fa;"],["tripleplus","&#x29fb;"],["plussubtwo","&#x2a27;"],["commaminus","&#x2a29;"],["minusfdots","&#x2a2b;"],["minusrdots","&#x2a2c;"],["opluslhrim","&#x2a2d;"],["oplusrhrim","&#x2a2e;"],["smashtimes","&#x2a33;"],["cupovercap","&#x2a46;"],["capovercup","&#x2a47;"],["veeonwedge","&#x2a59;"],["veemidvert","&#x2a5b;"],["equivVvert","&#x2a69;"],["lessapprox","&#x2a85;"],["lesseqqgtr","&#x2a8b;"],["gtreqqless","&#x2a8c;"],["eqslantgtr","&#x2a96;"],["rightslice","&#x2aa7;"],["precapprox","&#x2ab7;"],["succapprox","&#x2ab8;"],["subsetplus","&#x2abf;"],["supsetplus","&#x2ac0;"],["subsetneqq","&#x2acb;"],["supsetneqq","&#x2acc;"],["interleave","&#x2af4;"],["talloblong","&#x2afe;"],["varhexagon","&#x2b21;"],["leftarrowx","&#x2b3e;"],["LLeftarrow","&#x2b45;"],["postalmark","&#x3012;"],["underline","&#x332;"],["upEpsilon","&#x395;"],["upOmicron","&#x39f;"],["upUpsilon","&#x3a5;"],["upepsilon","&#x3b5;"],["upomicron","&#x3bf;"],["upupsilon","&#x3c5;"],["upvarbeta","&#x3d0;"],["upDigamma","&#x3dc;"],["updigamma","&#x3dd;"],["ampersand","&#x26;"],["mathslash","&#x2f;"],["mathcolon","&#x3a;"],["semicolon","&#x3b;"],["backslash","&#x5c;"],["backprime","&#x2035;"],["tieconcat","&#x2040;"],["fracslash","&#x2044;"],["Angstroem","&#x212b;"],["leftarrow","&#x2190;"],["downarrow","&#x2193;"],["lightning","&#x21af;"],["rightturn","&#x21bb;"],["Leftarrow","&#x21d0;"],["Downarrow","&#x21d3;"],["nHuparrow","&#x21de;"],["dasharrow","&#x21e2;"],["partialup","&#x2202;"],["increment","&#x2206;"],["nparallel","&#x2226;"],["clockoint","&#x2232;"],["therefore","&#x2234;"],["mathratio","&#x2236;"],["dashcolon","&#x2239;"],["triangleq","&#x225c;"],["nleqslant","&#x2270;"],["ngeqslant","&#x2271;"],["nsubseteq","&#x2288;"],["nsupseteq","&#x2289;"],["subsetneq","&#x228a;"],["supsetneq","&#x228b;"],["backsimeq","&#x22cd;"],["pitchfork","&#x22d4;"],["lesseqgtr","&#x22da;"],["gtreqless","&#x22db;"],["varniobar","&#x22fd;"],["bagmember","&#x22ff;"],["sqlozenge","&#x2311;"],["turnednot","&#x2319;"],["intbottom","&#x2321;"],["lbracemid","&#x23a8;"],["rbracemid","&#x23ac;"],["sumbottom","&#x23b3;"],["lvboxline","&#x23b8;"],["rvboxline","&#x23b9;"],["overparen","&#x23dc;"],["wideparen","&#x23dc;"],["trapezium","&#x23e2;"],["accurrent","&#x23e6;"],["blockfull","&#x2588;"],["radiation","&#x2622;"],["biohazard","&#x2623;"],["smileface","&#x263a;"],["rightmoon","&#x263d;"],["spadesuit","&#x2660;"],["heartsuit","&#x2661;"],["medbullet","&#x26ab;"],["checkmark","&#x2713;"],["DashVDash","&#x27da;"],["dashVdash","&#x27db;"],["vlongdash","&#x27dd;"],["longdashv","&#x27de;"],["llbracket","&#x27e6;"],["rrbracket","&#x27e7;"],["impliedby","&#x27f8;"],["righttail","&#x291a;"],["nwsearrow","&#x2921;"],["neswarrow","&#x2922;"],["hknwarrow","&#x2923;"],["hknearrow","&#x2924;"],["typecolon","&#x2982;"],["langledot","&#x2991;"],["rangledot","&#x2992;"],["rparengtr","&#x2994;"],["Lparengtr","&#x2995;"],["fourvdots","&#x2999;"],["turnangle","&#x29a2;"],["angleubar","&#x29a4;"],["olessthan","&#x29c0;"],["boxbslash","&#x29c5;"],["boxcircle","&#x29c7;"],["triangles","&#x29cc;"],["hourglass","&#x29d6;"],["bigotimes","&#x2a02;"],["bigcupdot","&#x2a03;"],["conjquant","&#x2a07;"],["disjquant","&#x2a08;"],["modtwosum","&#x2a0a;"],["otimeshat","&#x2a36;"],["cupbarcap","&#x2a48;"],["capbarcup","&#x2a49;"],["wedgeodot","&#x2a51;"],["midbarvee","&#x2a5d;"],["varveebar","&#x2a61;"],["equivVert","&#x2a68;"],["hatapprox","&#x2a6f;"],["approxeqq","&#x2a70;"],["gtrapprox","&#x2a86;"],["leftslice","&#x2aa6;"],["subsetdot","&#x2abd;"],["supsetdot","&#x2abe;"],["subseteqq","&#x2ac5;"],["supseteqq","&#x2ac6;"],["leqqslant","&#x2af9;"],["geqqslant","&#x2afa;"],["horizbar","&#x2015;"],["Question","&#x2047;"],["medspace","&#x205f;"],["Angstrom","&#x212b;"],["ComplexI","&#x2148;"],["ComplexJ","&#x2149;"],["mapsfrom","&#x21a4;"],["MapsDown","&#x21a7;"],["mapsdown","&#x21a7;"],["linefeed","&#x21b4;"],["leftturn","&#x21ba;"],["divslash","&#x2215;"],["cuberoot","&#x221b;"],["parallel","&#x2225;"],["dotminus","&#x2238;"],["invlazys","&#x223e;"],["sinewave","&#x223f;"],["approxeq","&#x224a;"],["backcong","&#x224c;"],["dotequal","&#x2250;"],["doteqdot","&#x2251;"],["coloneqq","&#x2254;"],["eqqcolon","&#x2255;"],["notasymp","&#x226d;"],["nlesssim","&#x2274;"],["nlessgtr","&#x2278;"],["ngtrless","&#x2279;"],["subseteq","&#x2286;"],["supseteq","&#x2287;"],["sqsubset","&#x228f;"],["sqsupset","&#x2290;"],["boxminus","&#x229f;"],["boxtimes","&#x22a0;"],["multimap","&#x22b8;"],["intercal","&#x22ba;"],["barwedge","&#x22bc;"],["bigwedge","&#x22c0;"],["curlyvee","&#x22ce;"],["precnsim","&#x22e8;"],["succnsim","&#x22e9;"],["varisins","&#x22f3;"],["isinobar","&#x22f7;"],["diameter","&#x2300;"],["profline","&#x2312;"],["profsurf","&#x2313;"],["viewdata","&#x2317;"],["ulcorner","&#x231c;"],["urcorner","&#x231d;"],["llcorner","&#x231e;"],["lrcorner","&#x231f;"],["notslash","&#x233f;"],["APLinput","&#x235e;"],["bbrktbrk","&#x23b6;"],["elinters","&#x23e7;"],["triangle","&#x25b3;"],["bullseye","&#x25ce;"],["astrosun","&#x2609;"],["steaming","&#x2615;"],["leftmoon","&#x263e;"],["varEarth","&#x2641;"],["aquarius","&#x2652;"],["clubsuit","&#x2663;"],["varspade","&#x2664;"],["varheart","&#x2665;"],["twonotes","&#x266b;"],["acidfree","&#x267e;"],["bsolhsub","&#x27c8;"],["wedgedot","&#x27d1;"],["pullback","&#x27d3;"],["UUparrow","&#x27f0;"],["Mapsfrom","&#x2906;"],["Uuparrow","&#x290a;"],["drbkarow","&#x2910;"],["lefttail","&#x2919;"],["hksearow","&#x2925;"],["hkswarow","&#x2926;"],["strictfi","&#x297c;"],["strictif","&#x297d;"],["revangle","&#x29a3;"],["boxslash","&#x29c4;"],["boxonbox","&#x29c9;"],["rtriltri","&#x29ce;"],["lfbowtie","&#x29d1;"],["rfbowtie","&#x29d2;"],["lvzigzag","&#x29d8;"],["rvzigzag","&#x29d9;"],["Lvzigzag","&#x29da;"],["Rvzigzag","&#x29db;"],["tieinfty","&#x29dd;"],["smeparsl","&#x29e4;"],["eqvparsl","&#x29e5;"],["setminus","&#x29f5;"],["bigoplus","&#x2a01;"],["biguplus","&#x2a04;"],["bigsqcap","&#x2a05;"],["bigsqcup","&#x2a06;"],["bigtimes","&#x2a09;"],["cirfnint","&#x2a10;"],["rppolint","&#x2a12;"],["scpolint","&#x2a13;"],["pointint","&#x2a15;"],["intlarhk","&#x2a17;"],["zproject","&#x2a21;"],["ringplus","&#x2a22;"],["plustrif","&#x2a28;"],["minusdot","&#x2a2a;"],["vectimes","&#x2a2f;"],["dottimes","&#x2a30;"],["timesbar","&#x2a31;"],["intprodr","&#x2a3d;"],["capwedge","&#x2a44;"],["veeonvee","&#x2a56;"],["wedgebar","&#x2a5f;"],["dotequiv","&#x2a67;"],["simrdots","&#x2a6b;"],["Coloneqq","&#x2a74;"],["leqslant","&#x2a7d;"],["geqslant","&#x2a7e;"],["lesdotor","&#x2a83;"],["gesdotol","&#x2a84;"],["lnapprox","&#x2a89;"],["gnapprox","&#x2a8a;"],["precneqq","&#x2ab5;"],["succneqq","&#x2ab6;"],["forksnot","&#x2add;"],["varVdash","&#x2ae6;"],["pentagon","&#x2b20;"],["mathring","&#x30a;"],["underbar","&#x331;"],["upLambda","&#x39b;"],["uplambda","&#x3bb;"],["varsigma","&#x3c2;"],["upvarphi","&#x3c6;"],["vartheta","&#x3d1;"],["upStigma","&#x3da;"],["upstigma","&#x3db;"],["varkappa","&#x3f0;"],["upvarrho","&#x3f1;"],["question","&#x3f;"],["mathcent","&#xa2;"],["sterling","&#xa3;"],["circledR","&#xae;"],["ddagger","&#x2021;"],["trprime","&#x2034;"],["closure","&#x2050;"],["annuity","&#x20e7;"],["uparrow","&#x2191;"],["nwarrow","&#x2196;"],["nearrow","&#x2197;"],["searrow","&#x2198;"],["swarrow","&#x2199;"],["Uparrow","&#x21d1;"],["Nwarrow","&#x21d6;"],["Nearrow","&#x21d7;"],["Searrow","&#x21d8;"],["Swarrow","&#x21d9;"],["partial","&#x2202;"],["nexists","&#x2204;"],["smallin","&#x220a;"],["smallni","&#x220d;"],["dotplus","&#x2214;"],["dbloint","&#x222f;"],["because","&#x2235;"],["eqcolon","&#x2239;"],["backsim","&#x223d;"],["simneqq","&#x2246;"],["napprox","&#x2249;"],["coloneq","&#x2254;"],["varsdef","&#x225c;"],["questeq","&#x225f;"],["between","&#x226c;"],["lesssim","&#x2272;"],["ngtrsim","&#x2275;"],["lessgtr","&#x2276;"],["gtrless","&#x2277;"],["precsim","&#x227e;"],["succsim","&#x227f;"],["nsubset","&#x2284;"],["nsupset","&#x2285;"],["boxplus","&#x229e;"],["imageof","&#x22b7;"],["diamond","&#x22c4;"],["lrtimes","&#x22c8;"],["lessdot","&#x22d6;"],["npreceq","&#x22e0;"],["nsucceq","&#x22e1;"],["isindot","&#x22f5;"],["hexagon","&#x2394;"],["obrbrak","&#x23e0;"],["ubrbrak","&#x23e1;"],["benzenr","&#x23e3;"],["squoval","&#x25a2;"],["Diamond","&#x25c7;"],["fisheye","&#x25c9;"],["lozenge","&#x25ca;"],["bigstar","&#x2605;"],["yinyang","&#x262f;"],["frownie","&#x2639;"],["sadface","&#x2639;"],["mercury","&#x263f;"],["Mercury","&#x263f;"],["jupiter","&#x2643;"],["Jupiter","&#x2643;"],["neptune","&#x2646;"],["Neptune","&#x2646;"],["scorpio","&#x264f;"],["Scorpio","&#x264f;"],["varclub","&#x2667;"],["natural","&#x266e;"],["recycle","&#x267b;"],["diceiii","&#x2682;"],["warning","&#x26a0;"],["medcirc","&#x26aa;"],["ballotx","&#x2717;"],["maltese","&#x2720;"],["varstar","&#x2736;"],["lbrbrak","&#x2772;"],["rbrbrak","&#x2773;"],["suphsol","&#x27c9;"],["pushout","&#x27d4;"],["Lbrbrak","&#x27ec;"],["Rbrbrak","&#x27ed;"],["implies","&#x27f9;"],["dbkarow","&#x290f;"],["leadsto","&#x2933;"],["subrarr","&#x2979;"],["suplarr","&#x297b;"],["llangle","&#x2989;"],["rrangle","&#x298a;"],["vzigzag","&#x299a;"],["obslash","&#x29b8;"],["olcross","&#x29bb;"],["cirscir","&#x29c2;"],["boxdiag","&#x29c4;"],["fbowtie","&#x29d3;"],["lftimes","&#x29d4;"],["rftimes","&#x29d5;"],["nvinfty","&#x29de;"],["dualmap","&#x29df;"],["shuffle","&#x29e2;"],["thermod","&#x29e7;"],["rsolbar","&#x29f7;"],["bigodot","&#x2a00;"],["varprod","&#x2a09;"],["npolint","&#x2a14;"],["project","&#x2a21;"],["plushat","&#x2a23;"],["simplus","&#x2a24;"],["plusdot","&#x2a25;"],["plussim","&#x2a26;"],["intprod","&#x2a3c;"],["twocups","&#x2a4a;"],["twocaps","&#x2a4b;"],["veeodot","&#x2a52;"],["congdot","&#x2a6d;"],["eqqplus","&#x2a71;"],["pluseqq","&#x2a72;"],["Coloneq","&#x2a74;"],["ddotseq","&#x2a77;"],["equivDD","&#x2a78;"],["ltquest","&#x2a7b;"],["gtquest","&#x2a7c;"],["lesdoto","&#x2a81;"],["gesdoto","&#x2a82;"],["eqqless","&#x2a99;"],["simless","&#x2a9d;"],["bumpeqq","&#x2aae;"],["precneq","&#x2ab1;"],["succneq","&#x2ab2;"],["preceqq","&#x2ab3;"],["succeqq","&#x2ab4;"],["llcurly","&#x2abb;"],["ggcurly","&#x2abc;"],["submult","&#x2ac1;"],["supmult","&#x2ac2;"],["subedot","&#x2ac3;"],["supedot","&#x2ac4;"],["lsqhook","&#x2acd;"],["rsqhook","&#x2ace;"],["suphsub","&#x2ad7;"],["supdsub","&#x2ad8;"],["topfork","&#x2ada;"],["revnmid","&#x2aee;"],["nhVvert","&#x2af5;"],["lllnest","&#x2af7;"],["gggnest","&#x2af8;"],["trslash","&#x2afb;"],["hzigzag","&#x3030;"],["overbar","&#x305;"],["upAlpha","&#x391;"],["upGamma","&#x393;"],["upDelta","&#x394;"],["upTheta","&#x398;"],["upKappa","&#x39a;"],["upSigma","&#x3a3;"],["Upsilon","&#x3a5;"],["upOmega","&#x3a9;"],["upalpha","&#x3b1;"],["upgamma","&#x3b3;"],["updelta","&#x3b4;"],["uptheta","&#x3b8;"],["upkappa","&#x3ba;"],["upsigma","&#x3c3;"],["upsilon","&#x3c5;"],["upomega","&#x3c9;"],["varbeta","&#x3d0;"],["upvarpi","&#x3d6;"],["Digamma","&#x3dc;"],["digamma","&#x3dd;"],["upKoppa","&#x3de;"],["upkoppa","&#x3df;"],["upSampi","&#x3e0;"],["upsampi","&#x3e1;"],["epsilon","&#x3f5;"],["percent","&#x25;"],["greater","&#x3e;"],["sptilde","&#x7e;"],["matheth","&#xf0;"],["dagger","&#x2020;"],["bullet","&#x2022;"],["second","&#x2033;"],["dprime","&#x2033;"],["Exclam","&#x203c;"],["fourth","&#x2057;"],["qprime","&#x2057;"],["ddddot","&#x20dc;"],["hslash","&#x210f;"],["daleth","&#x2138;"],["invamp","&#x214b;"],["MapsUp","&#x21a5;"],["mapsup","&#x21a5;"],["mapsto","&#x21a6;"],["forall","&#x2200;"],["exists","&#x2203;"],["coprod","&#x2210;"],["propto","&#x221d;"],["oiiint","&#x2230;"],["nsimeq","&#x2244;"],["approx","&#x2248;"],["Bumpeq","&#x224e;"],["bumpeq","&#x224f;"],["eqcirc","&#x2256;"],["circeq","&#x2257;"],["wedgeq","&#x2259;"],["stareq","&#x225b;"],["measeq","&#x225e;"],["nequiv","&#x2262;"],["nasymp","&#x226d;"],["apprle","&#x2272;"],["gtrsim","&#x2273;"],["apprge","&#x2273;"],["subset","&#x2282;"],["supset","&#x2283;"],["cupdot","&#x228d;"],["ominus","&#x2296;"],["otimes","&#x2297;"],["oslash","&#x2298;"],["boxdot","&#x22a1;"],["assert","&#x22a6;"],["models","&#x22a7;"],["Vvdash","&#x22aa;"],["nvdash","&#x22ac;"],["nvDash","&#x22ad;"],["nVdash","&#x22ae;"],["nVDash","&#x22af;"],["prurel","&#x22b0;"],["scurel","&#x22b1;"],["origof","&#x22b6;"],["veebar","&#x22bb;"],["barvee","&#x22bd;"],["bigvee","&#x22c1;"],["bigcap","&#x22c2;"],["bigcup","&#x22c3;"],["bowtie","&#x22c8;"],["ltimes","&#x22c9;"],["rtimes","&#x22ca;"],["Subset","&#x22d0;"],["Supset","&#x22d1;"],["gtrdot","&#x22d7;"],["eqless","&#x22dc;"],["nunlhd","&#x22ec;"],["nunrhd","&#x22ed;"],["iddots","&#x22f0;"],["isinvb","&#x22f8;"],["varnis","&#x22fb;"],["niobar","&#x22fe;"],["lfloor","&#x230a;"],["rfloor","&#x230b;"],["invneg","&#x2310;"],["invnot","&#x2310;"],["inttop","&#x2320;"],["topbot","&#x2336;"],["APLinv","&#x2339;"],["APLlog","&#x235f;"],["sumtop","&#x23b2;"],["Circle","&#x25cb;"],["CIRCLE","&#x25cf;"],["boxbar","&#x25eb;"],["square","&#x25fb;"],["Square","&#x2610;"],["danger","&#x2621;"],["smiley","&#x263a;"],["female","&#x2640;"],["saturn","&#x2644;"],["Saturn","&#x2644;"],["uranus","&#x2645;"],["Uranus","&#x2645;"],["taurus","&#x2649;"],["Taurus","&#x2649;"],["gemini","&#x264a;"],["Gemini","&#x264a;"],["cancer","&#x264b;"],["pisces","&#x2653;"],["diceii","&#x2681;"],["diceiv","&#x2683;"],["dicevi","&#x2685;"],["anchor","&#x2693;"],["swords","&#x2694;"],["neuter","&#x26b2;"],["pencil","&#x270e;"],["veedot","&#x27c7;"],["bigbot","&#x27d8;"],["bigtop","&#x27d9;"],["cirbot","&#x27df;"],["lBrack","&#x27e6;"],["Lbrack","&#x27e6;"],["rBrack","&#x27e7;"],["Rbrack","&#x27e7;"],["langle","&#x2329;"],["rangle","&#x232a;"],["lAngle","&#x27ea;"],["rAngle","&#x27eb;"],["lgroup","&#x27ee;"],["rgroup","&#x27ef;"],["Mapsto","&#x2907;"],["ltlarr","&#x2976;"],["gtrarr","&#x2978;"],["lBrace","&#x2983;"],["rBrace","&#x2984;"],["Lparen","&#x2985;"],["lParen","&#x2985;"],["Rparen","&#x2986;"],["rParen","&#x2986;"],["angles","&#x299e;"],["angdnr","&#x299f;"],["gtlpar","&#x29a0;"],["boxast","&#x29c6;"],["boxbox","&#x29c8;"],["ltrivb","&#x29cf;"],["vbrtri","&#x29d0;"],["iinfin","&#x29dc;"],["laplac","&#x29e0;"],["eparsl","&#x29e3;"],["tminus","&#x29ff;"],["sumint","&#x2a0b;"],["iiiint","&#x2a0c;"],["intbar","&#x2a0d;"],["intBar","&#x2a0e;"],["sqrint","&#x2a16;"],["intcap","&#x2a19;"],["intcup","&#x2a1a;"],["lowint","&#x2a1c;"],["btimes","&#x2a32;"],["Otimes","&#x2a37;"],["capdot","&#x2a40;"],["uminus","&#x2a41;"],["barcup","&#x2a42;"],["barcap","&#x2a43;"],["cupvee","&#x2a45;"],["dotsim","&#x2a6a;"],["eqqsim","&#x2a73;"],["eqeqeq","&#x2a76;"],["lesdot","&#x2a7f;"],["gesdot","&#x2a80;"],["lesges","&#x2a93;"],["gesles","&#x2a94;"],["elsdot","&#x2a97;"],["egsdot","&#x2a98;"],["eqqgtr","&#x2a9a;"],["simgtr","&#x2a9e;"],["preceq","&#x2aaf;"],["succeq","&#x2ab0;"],["subsim","&#x2ac7;"],["supsim","&#x2ac8;"],["subsup","&#x2ad3;"],["supsub","&#x2ad4;"],["subsub","&#x2ad5;"],["supsup","&#x2ad6;"],["vDdash","&#x2ae2;"],["cirmid","&#x2aef;"],["midcir","&#x2af0;"],["topcir","&#x2af1;"],["parsim","&#x2af3;"],["sslash","&#x2afd;"],["ovhook","&#x309;"],["candra","&#x310;"],["droang","&#x31a;"],["utilde","&#x330;"],["upBeta","&#x392;"],["upZeta","&#x396;"],["upIota","&#x399;"],["Lambda","&#x39b;"],["upbeta","&#x3b2;"],["upzeta","&#x3b6;"],["upiota","&#x3b9;"],["lambda","&#x3bb;"],["varphi","&#x3c6;"],["Stigma","&#x3da;"],["stigma","&#x3db;"],["varrho","&#x3f1;"],["exclam","&#x21;"],["lparen","&#x28;"],["rparen","&#x29;"],["period","&#x2e;"],["atsign","&#x40;"],["lbrack","&#x5b;"],["rbrack","&#x5d;"],["lbrace","&#x7b;"],["rbrace","&#x7d;"],["pounds","&#xa3;"],["spddot","&#xa8;"],["qquad","&#xa0;&#xa0;&#xa0;&#xa0;"],["ldots","&#x2026;"],["prime","&#x2032;"],["third","&#x2034;"],["dddot","&#x20db;"],["DDDot","&#x20db;"],["Euler","&#x2107;"],["tcohm","&#x2126;"],["aleph","&#x2135;"],["gimel","&#x2137;"],["upand","&#x214b;"],["nabla","&#x2207;"],["notin","&#x2209;"],["notni","&#x220c;"],["minus","&#x2212;"],["slash","&#x2215;"],["infty","&#x221e;"],["angle","&#x2220;"],["wedge","&#x2227;"],["iiint","&#x222d;"],["oiint","&#x222f;"],["Colon","&#x2237;"],["eqsim","&#x2242;"],["simeq","&#x2243;"],["nsime","&#x2244;"],["ncong","&#x2247;"],["asymp","&#x224d;"],["doteq","&#x2250;"],["Doteq","&#x2251;"],["arceq","&#x2258;"],["veeeq","&#x225a;"],["eqdef","&#x225d;"],["equiv","&#x2261;"],["Equiv","&#x2263;"],["lneqq","&#x2268;"],["gneqq","&#x2269;"],["nless","&#x226e;"],["nprec","&#x2280;"],["nsucc","&#x2281;"],["uplus","&#x228e;"],["sqcap","&#x2293;"],["sqcup","&#x2294;"],["oplus","&#x2295;"],["vdash","&#x22a2;"],["dashv","&#x22a3;"],["vDash","&#x22a8;"],["Vdash","&#x22a9;"],["VDash","&#x22ab;"],["unlhd","&#x22b4;"],["unrhd","&#x22b5;"],["eqgtr","&#x22dd;"],["lnsim","&#x22e6;"],["gnsim","&#x22e7;"],["vdots","&#x22ee;"],["cdots","&#x22ef;"],["adots","&#x22f0;"],["ddots","&#x22f1;"],["disin","&#x22f2;"],["isins","&#x22f4;"],["barin","&#x22f6;"],["isinE","&#x22f9;"],["house","&#x2302;"],["lceil","&#x2308;"],["rceil","&#x2309;"],["frown","&#x2322;"],["smile","&#x2323;"],["strns","&#x23e4;"],["fltns","&#x23e5;"],["ularc","&#x25dc;"],["urarc","&#x25dd;"],["lrarc","&#x25de;"],["llarc","&#x25df;"],["skull","&#x2620;"],["Venus","&#x2640;"],["earth","&#x2641;"],["pluto","&#x2647;"],["Pluto","&#x2647;"],["aries","&#x2648;"],["Aries","&#x2648;"],["virgo","&#x264d;"],["libra","&#x264e;"],["Libra","&#x264e;"],["sharp","&#x266f;"],["dicei","&#x2680;"],["dicev","&#x2684;"],["psurj","&#x2900;"],["Vvert","&#x2980;"],["lblot","&#x2989;"],["rblot","&#x298a;"],["operp","&#x29b9;"],["zhide","&#x29f9;"],["xbsol","&#x29f9;"],["tplus","&#x29fe;"],["awint","&#x2a11;"],["sqint","&#x2a16;"],["upint","&#x2a1b;"],["zpipe","&#x2a20;"],["amalg","&#x2a3f;"],["Sqcap","&#x2a4e;"],["Sqcup","&#x2a4f;"],["Wedge","&#x2a53;"],["ndres","&#x2a64;"],["nrres","&#x2a65;"],["eqdot","&#x2a66;"],["asteq","&#x2a6e;"],["Equal","&#x2a75;"],["ltcir","&#x2a79;"],["gtcir","&#x2a7a;"],["lsime","&#x2a8d;"],["gsime","&#x2a8e;"],["lsimg","&#x2a8f;"],["gsiml","&#x2a90;"],["simlE","&#x2a9f;"],["simgE","&#x2aa0;"],["lescc","&#x2aa8;"],["gescc","&#x2aa9;"],["csube","&#x2ad1;"],["csupe","&#x2ad2;"],["forkv","&#x2ad9;"],["forks","&#x2adc;"],["perps","&#x2ae1;"],["dashV","&#x2ae3;"],["Dashv","&#x2ae4;"],["DashV","&#x2ae5;"],["vBarv","&#x2ae9;"],["nhpar","&#x2af2;"],["hline","&#x23af;"],["imath","&#x131;"],["jmath","&#x237;"],["grave","&#x300;"],["acute","&#x301;"],["breve","&#x306;"],["ocirc","&#x30a;"],["check","&#x30c;"],["Gamma","&#x393;"],["Delta","&#x394;"],["upEta","&#x397;"],["Theta","&#x398;"],["upRho","&#x3a1;"],["Sigma","&#x3a3;"],["upTau","&#x3a4;"],["upPhi","&#x3a6;"],["upChi","&#x3a7;"],["upPsi","&#x3a8;"],["Omega","&#x3a9;"],["alpha","&#x3b1;"],["gamma","&#x3b3;"],["delta","&#x3b4;"],["upeta","&#x3b7;"],["theta","&#x3b8;"],["kappa","&#x3ba;"],["uprho","&#x3c1;"],["sigma","&#x3c3;"],["uptau","&#x3c4;"],["upchi","&#x3c7;"],["uppsi","&#x3c8;"],["omega","&#x3c9;"],["upphi","&#x3d5;"],["varpi","&#x3d6;"],["Qoppa","&#x3d8;"],["Koppa","&#x3d8;"],["qoppa","&#x3d9;"],["koppa","&#x3d9;"],["Sampi","&#x3e0;"],["sampi","&#x3e1;"],["comma","&#x2c;"],["colon","&#x3a;"],["equal","&#x3d;"],["sphat","&#x5e;"],["Micro","&#xb5;"],["cdotp","&#xb7;"],["times","&#xd7;"],["lVert","&#x2225;"],["rVert","&#x2225;"],["quad","&#x2001;"],["Vert","&#x2016;"],["euro","&#x20ac;"],["lvec","&#x20d0;"],["LVec","&#x20d6;"],["Finv","&#x2132;"],["beth","&#x2136;"],["Game","&#x2141;"],["gets","&#x2190;"],["tsur","&#x21a0;"],["tinj","&#x21a3;"],["dlsh","&#x21b2;"],["Ldsh","&#x21b2;"],["drsh","&#x21b3;"],["Rdsh","&#x21b3;"],["pfun","&#x21f8;"],["ffun","&#x21fb;"],["nexi","&#x2204;"],["owns","&#x220b;"],["circ","&#x2218;"],["nmid","&#x2224;"],["land","&#x2227;"],["iint","&#x222c;"],["nsim","&#x2241;"],["cong","&#x2245;"],["sdef","&#x2259;"],["leqq","&#x2266;"],["geqq","&#x2267;"],["ngtr","&#x226f;"],["nleq","&#x2270;"],["ngeq","&#x2271;"],["prec","&#x227a;"],["succ","&#x227b;"],["buni","&#x228e;"],["odot","&#x2299;"],["dint","&#x22c2;"],["duni","&#x22c3;"],["cdot","&#x22c5;"],["star","&#x22c6;"],["hash","&#x22d5;"],["nisd","&#x22fa;"],["obar","&#x233d;"],["rres","&#x25b7;"],["dres","&#x25c1;"],["XBox","&#x2612;"],["male","&#x2642;"],["Mars","&#x2642;"],["flat","&#x266d;"],["perp","&#x27c2;"],["Lbag","&#x27c5;"],["lbag","&#x27c5;"],["Rbag","&#x27c6;"],["rbag","&#x27c6;"],["upin","&#x27d2;"],["lang","&#x27ea;"],["rang","&#x27eb;"],["psur","&#x2900;"],["pinj","&#x2914;"],["finj","&#x2915;"],["tona","&#x2927;"],["toea","&#x2928;"],["tosa","&#x2929;"],["towa","&#x292a;"],["VERT","&#x2980;"],["spot","&#x2981;"],["limg","&#x2987;"],["rimg","&#x2988;"],["obot","&#x29ba;"],["cirE","&#x29c3;"],["dsol","&#x29f6;"],["xsol","&#x29f8;"],["hide","&#x29f9;"],["fint","&#x2a0f;"],["intx","&#x2a18;"],["Join","&#x2a1d;"],["zcmp","&#x2a1f;"],["semi","&#x2a1f;"],["odiv","&#x2a38;"],["fcmp","&#x2a3e;"],["comp","&#x2a3e;"],["dsub","&#x2a64;"],["rsub","&#x2a65;"],["eqeq","&#x2a75;"],["Same","&#x2a76;"],["lneq","&#x2a87;"],["gneq","&#x2a88;"],["ltcc","&#x2aa6;"],["gtcc","&#x2aa7;"],["smte","&#x2aac;"],["late","&#x2aad;"],["Prec","&#x2abb;"],["Succ","&#x2abc;"],["csub","&#x2acf;"],["csup","&#x2ad0;"],["mlcp","&#x2adb;"],["Barv","&#x2ae7;"],["vBar","&#x2ae8;"],["barV","&#x2aea;"],["Vbar","&#x2aeb;"],["Perp","&#x2aeb;"],["bNot","&#x2aed;"],["Zbar","&#x1b5;"],["DDot","&#x308;"],["ring","&#x30a;"],["upMu","&#x39c;"],["upNu","&#x39d;"],["upXi","&#x39e;"],["upPi","&#x3a0;"],["beta","&#x3b2;"],["zeta","&#x3b6;"],["iota","&#x3b9;"],["upmu","&#x3bc;"],["upnu","&#x3bd;"],["upxi","&#x3be;"],["uppi","&#x3c0;"],["plus","&#x2b;"],["less","&#x3c;"],["vert","&#x7c;"],["cent","&#xa2;"],["lnot","&#xac;"],["tcmu","&#xb5;"],[" ","&#xa0;"],["cat","&#x2040;"],["Vec","&#x20d7;"],["ell","&#x2113;"],["mho","&#x2127;"],["Mho","&#x2127;"],["Yup","&#x2144;"],["rel","&#x2194;"],["Lsh","&#x21b0;"],["Rsh","&#x21b1;"],["exi","&#x2203;"],["nin","&#x2209;"],["nni","&#x220c;"],["QED","&#x220e;"],["ast","&#x2217;"],["mid","&#x2223;"],["vee","&#x2228;"],["lor","&#x2228;"],["cap","&#x2229;"],["cup","&#x222a;"],["sim","&#x223c;"],["int","&#x222b;"],["neq","&#x2260;"],["leq","&#x2264;"],["geq","&#x2265;"],["top","&#x22a4;"],["bot","&#x22a5;"],["Cap","&#x22d2;"],["Cup","&#x22d3;"],["lll","&#x22d8;"],["ggg","&#x22d9;"],["nis","&#x22fc;"],["RHD","&#x25b6;"],["rhd","&#x25b7;"],["LHD","&#x25c0;"],["lhd","&#x25c1;"],["Sun","&#x2609;"],["sun","&#x263c;"],["leo","&#x264c;"],["Leo","&#x264c;"],["iff","&#x27fa;"],["bij","&#x2916;"],["Vee","&#x2a54;"],["lgE","&#x2a91;"],["glE","&#x2a92;"],["glj","&#x2aa4;"],["gla","&#x2aa5;"],["smt","&#x2aaa;"],["lat","&#x2aab;"],["Top","&#x2aea;"],["Bot","&#x2aeb;"],["Not","&#x2aec;"],["Dot","&#x307;"],["not","&#x338;"],["Phi","&#x3a6;"],["Psi","&#x3a8;"],["eta","&#x3b7;"],["rho","&#x3c1;"],["tau","&#x3c4;"],["chi","&#x3c7;"],["psi","&#x3c8;"],["phi","&#x3d5;"],["yen","&#xa5;"],["neg","&#xac;"],["eth","&#xf0;"],["div","&#xf7;"],["Xi","&#x39e;"],["Im","&#x2111;"],["wp","&#x2118;"],["Re","&#x211c;"],["DD","&#x2145;"],["dd","&#x2146;"],["ee","&#x2147;"],["ii","&#x2148;"],["jj","&#x2149;"],["to","&#x2192;"],["in","&#x2208;"],["ni","&#x220b;"],["mp","&#x2213;"],["AC","&#x223f;"],["wr","&#x2240;"],["ne","&#x2260;"],["le","&#x2264;"],["ge","&#x2265;"],["ll","&#x226a;"],["gg","&#x226b;"],["Lt","&#x2aa1;"],["Gt","&#x2aa2;"],["Pi","&#x3a0;"],["mu","&#x3bc;"],["nu","&#x3bd;"],["xi","&#x3be;"],["pi","&#x3c0;"],["pm","&#xb1;"],["RR","&#x211d;"],["NN","&#x2115;"],["CC","&#x2102;"],["QQ","&#x211a;"],["ZZ","&#x2124;"],["-","&#x2212;"],["'","&#x27;"],["!","&#x21;"],["#","&#x23;"],["$","&#x24;"],["%","&#x25;"],["&","&#x26;"],["*","&#x2a;"],["+","&#x2b;"],[",","&#x2c;"],[".","&#x2e;"],["/","&#x2f;"],[":","&#x3a;"],[";","&#x3b;"],["<","&#x3c;"],["=","&#x3d;"],[">","&#x3e;"],["?","&#x3f;"],["@","&#x40;"],["|","&#x7c;"],["_","&#x5f;"]]).$freeze()),n(i[0],"SYMBOLS",new Map([["barleftarrowrightarrowba","symbols"],["rightarrowshortleftarrow","symbols"],["leftarrowshortrightarrow","symbols"],["shortrightarrowleftarrow","symbols"],["leftrightharpoondowndown","symbols"],["smallblacktriangleright","symbols"],["invwhiteupperhalfcircle","symbols"],["invwhitelowerhalfcircle","symbols"],["concavediamondtickright","symbols"],["nvtwoheadrightarrowtail","symbols"],["nVtwoheadrightarrowtail","symbols"],["updownharpoonrightright","symbols"],["updownharpoonsleftright","symbols"],["downupharpoonsleftright","symbols"],["leftrightarrowtriangle","symbols"],["smallblacktriangleleft","symbols"],["blackcircleulquadwhite","symbols"],["concavediamondtickleft","symbols"],["leftrightharpoonupdown","symbols"],["leftrightharpoondownup","symbols"],["updownharpoonrightleft","symbols"],["updownharpoonleftright","symbols"],["downtrianglerightblack","symbols"],["partialmeetcontraction","symbols"],["nvtwoheadleftarrowtail","symbols"],["nVtwoheadleftarrowtail","symbols"],["underrightharpoondown","symbols"],["barovernorthwestarrow","symbols"],["rangledownzigzagarrow","symbols"],["circlebottomhalfblack","symbols"],["twoheadrightarrowtail","symbols"],["updownharpoonleftleft","symbols"],["downharpoonsleftright","symbols"],["leftrightharpoonsdown","symbols"],["rightleftharpoonsdown","symbols"],["downtriangleleftblack","symbols"],["blackdiamonddownarrow","symbols"],["closedvarcupsmashprod","symbols"],["underleftharpoondown","symbols"],["CapitalDifferentialD","symbols"],["bigblacktriangledown","symbols"],["circlerighthalfblack","symbols"],["blackrighthalfcircle","symbols"],["blackcircledrightdot","symbols"],["whiteinwhitetriangle","symbols"],["whitesquaretickright","symbols"],["barrightarrowdiamond","symbols"],["downrightcurvedarrow","symbols"],["rightdowncurvedarrow","symbols"],["curvearrowrightminus","symbols"],["leftrightarrowcircle","symbols"],["twoheaduparrowcircle","symbols"],["leftrightharpoonupup","symbols"],["leftrightharpoondown","symbols"],["dashrightharpoondown","symbols"],["blackcircledownarrow","symbols"],["NestedGreaterGreater","symbols"],["twoheadleftarrowtail","symbols"],["rightarrowbackapprox","symbols"],["leftrightsquigarrow","symbols"],["whitearrowupfrombar","symbols"],["blockthreeqtrshaded","symbols"],["blackinwhitediamond","symbols"],["circlelefthalfblack","symbols"],["blacklefthalfcircle","symbols"],["blackcircledtwodots","symbols"],["whitesquaretickleft","symbols"],["longrightsquigarrow","symbols"],["nvtwoheadrightarrow","symbols"],["nVtwoheadrightarrow","symbols"],["diamondleftarrowbar","symbols"],["leftdowncurvedarrow","symbols"],["downharpoonrightbar","symbols"],["rightharpoondownbar","symbols"],["bardownharpoonright","symbols"],["barrightharpoondown","symbols"],["upharpoonsleftright","symbols"],["rightharpoonsupdown","symbols"],["leftrightharpoonsup","symbols"],["rightleftharpoonsup","symbols"],["dashleftharpoondown","symbols"],["twoheadleftdbkarrow","symbols"],["leftarrowbackapprox","symbols"],["rightharpoonaccent","symbols"],["overleftrightarrow","symbols"],["acwopencirclearrow","symbols"],["upharpoonrightdown","symbols"],["circleonrightarrow","symbols"],["rightarrowtriangle","symbols"],["PrecedesSlantEqual","symbols"],["SucceedsSlantEqual","symbols"],["measuredrightangle","symbols"],["blackinwhitesquare","symbols"],["parallelogramblack","symbols"],["bigblacktriangleup","symbols"],["blacktriangleright","symbols"],["smalltriangleright","symbols"],["circletophalfblack","symbols"],["inversewhitecircle","symbols"],["trianglerightblack","symbols"],["longleftrightarrow","symbols"],["Longleftrightarrow","symbols"],["curvearrowleftplus","symbols"],["ccwundercurvearrow","symbols"],["leftrightharpoonup","symbols"],["rightupdownharpoon","symbols"],["RightDownVectorBar","symbols"],["barleftharpoondown","symbols"],["DownRightVectorBar","symbols"],["downharpoonleftbar","symbols"],["RightDownTeeVector","symbols"],["leftharpoondownbar","symbols"],["DownRightTeeVector","symbols"],["bardownharpoonleft","symbols"],["leftharpoonsupdown","symbols"],["rightrightharpoons","symbols"],["rightharpoonupdash","symbols"],["circledwhitebullet","symbols"],["errbarblackdiamond","symbols"],["longleftsquigarrow","symbols"],["nvtwoheadleftarrow","symbols"],["nVtwoheadleftarrow","symbols"],["bsimilarrightarrow","symbols"],["rightarrowbsimilar","symbols"],["rightpentagonblack","symbols"],["leftharpoonaccent","symbols"],["twoheadrightarrow","symbols"],["cwopencirclearrow","symbols"],["upharpoonleftdown","symbols"],["leftrightharpoons","symbols"],["rightleftharpoons","symbols"],["leftarrowtriangle","symbols"],["kernelcontraction","symbols"],["vardoublebarwedge","symbols"],["varhexagonlrbonds","symbols"],["varcarriagereturn","symbols"],["blackpointerright","symbols"],["whitepointerright","symbols"],["blacktriangledown","symbols"],["smalltriangledown","symbols"],["blacktriangleleft","symbols"],["smalltriangleleft","symbols"],["circleurquadblack","symbols"],["triangleleftblack","symbols"],["acwgapcirclearrow","symbols"],["rightarrowonoplus","symbols"],["rightarrowdiamond","symbols"],["uprightcurvearrow","symbols"],["cwundercurvearrow","symbols"],["leftupdownharpoon","symbols"],["rightharpoonupbar","symbols"],["barupharpoonright","symbols"],["DownLeftVectorBar","symbols"],["LeftDownVectorBar","symbols"],["barrightharpoonup","symbols"],["upharpoonrightbar","symbols"],["DownLeftTeeVector","symbols"],["LeftDownTeeVector","symbols"],["leftharpoonupdash","symbols"],["similarrightarrow","symbols"],["rightarrowsimilar","symbols"],["measuredangleleft","symbols"],["errbarblacksquare","symbols"],["errbarblackcircle","symbols"],["diamondrightblack","symbols"],["circleonleftarrow","symbols"],["bsimilarleftarrow","symbols"],["leftarrowbsimilar","symbols"],["twoheadleftarrow","symbols"],["twoheaddownarrow","symbols"],["circlearrowright","symbols"],["rightharpoondown","symbols"],["downharpoonright","symbols"],["uparrowdownarrow","symbols"],["rightrightarrows","symbols"],["downarrowuparrow","symbols"],["rightthreearrows","symbols"],["nvleftrightarrow","symbols"],["nVleftrightarrow","symbols"],["varointclockwise","symbols"],["ointctrclockwise","symbols"],["vartriangleright","symbols"],["multimapdotbothA","symbols"],["multimapdotbothB","symbols"],["NotRightTriangle","symbols"],["ntrianglerighteq","symbols"],["APLrightarrowbox","symbols"],["blackpointerleft","symbols"],["whitepointerleft","symbols"],["squarerightblack","symbols"],["cwgapcirclearrow","symbols"],["nvLeftrightarrow","symbols"],["nvrightarrowtail","symbols"],["nVrightarrowtail","symbols"],["diamondleftarrow","symbols"],["rightcurvedarrow","symbols"],["acwunderarcarrow","symbols"],["leftrightharpoon","symbols"],["rightleftharpoon","symbols"],["barleftharpoonup","symbols"],["RightUpVectorBar","symbols"],["barupharpoonleft","symbols"],["leftharpoonupbar","symbols"],["RightUpTeeVector","symbols"],["upharpoonleftbar","symbols"],["leftleftharpoons","symbols"],["downdownharpoons","symbols"],["uprevequilibrium","symbols"],["leftarrowsimilar","symbols"],["rightarrowapprox","symbols"],["sphericalangleup","symbols"],["RightTriangleBar","symbols"],["diamondleftblack","symbols"],["leftarrowonoplus","symbols"],["rightarrowsupset","symbols"],["similarleftarrow","symbols"],["enleadertwodots","symbols"],["unicodeellipsis","symbols"],["enclosetriangle","symbols"],["widebridgeabove","symbols"],["underrightarrow","symbols"],["nleftrightarrow","symbols"],["downzigzagarrow","symbols"],["curvearrowright","symbols"],["circlearrowleft","symbols"],["leftharpoondown","symbols"],["upharpoonleftup","symbols"],["downharpoonleft","symbols"],["rightleftarrows","symbols"],["leftrightarrows","symbols"],["nLeftrightarrow","symbols"],["rightsquigarrow","symbols"],["rightwhitearrow","symbols"],["NotGreaterTilde","symbols"],["vartriangleleft","symbols"],["trianglerighteq","symbols"],["rightthreetimes","symbols"],["NotLeftTriangle","symbols"],["ntrianglelefteq","symbols"],["APLnotbackslash","symbols"],["APLleftarrowbox","symbols"],["APLdownarrowbox","symbols"],["blockhalfshaded","symbols"],["squarecrossfill","symbols"],["hrectangleblack","symbols"],["vrectangleblack","symbols"],["blacktriangleup","symbols"],["smalltriangleup","symbols"],["bigtriangledown","symbols"],["lrblacktriangle","symbols"],["llblacktriangle","symbols"],["ulblacktriangle","symbols"],["urblacktriangle","symbols"],["squareleftblack","symbols"],["circledrightdot","symbols"],["downarrowbarred","symbols"],["cwrightarcarrow","symbols"],["acwleftarcarrow","symbols"],["acwoverarcarrow","symbols"],["LeftUpVectorBar","symbols"],["LeftUpTeeVector","symbols"],["rightbarharpoon","symbols"],["barrightharpoon","symbols"],["equalrightarrow","symbols"],["leftarrowsubset","symbols"],["measanglerutone","symbols"],["measanglelutonw","symbols"],["measanglerdtose","symbols"],["measangleldtosw","symbols"],["measangleurtone","symbols"],["measangleultonw","symbols"],["measangledrtose","symbols"],["measangledltosw","symbols"],["circledparallel","symbols"],["uparrowoncircle","symbols"],["LeftTriangleBar","symbols"],["circledownarrow","symbols"],["bigtriangleleft","symbols"],["diamondtopblack","symbols"],["diamondbotblack","symbols"],["varhexagonblack","symbols"],["leftthreearrows","symbols"],["twoheadmapsfrom","symbols"],["nvleftarrowtail","symbols"],["nVleftarrowtail","symbols"],["leftcurvedarrow","symbols"],["leftarrowapprox","symbols"],["enclosediamond","symbols"],["underleftarrow","symbols"],["leftrightarrow","symbols"],["rightwavearrow","symbols"],["twoheaduparrow","symbols"],["rightarrowtail","symbols"],["updownarrowbar","symbols"],["hookrightarrow","symbols"],["looparrowright","symbols"],["carriagereturn","symbols"],["curvearrowleft","symbols"],["upharpoonright","symbols"],["rightharpoonup","symbols"],["rightleftarrow","symbols"],["leftleftarrows","symbols"],["downdownarrows","symbols"],["revequilibrium","symbols"],["Leftrightarrow","symbols"],["leftsquigarrow","symbols"],["dashrightarrow","symbols"],["rightdasharrow","symbols"],["leftwhitearrow","symbols"],["downwhitearrow","symbols"],["sphericalangle","symbols"],["NotGreaterLess","symbols"],["trianglelefteq","symbols"],["leftthreetimes","symbols"],["ntriangleright","symbols"],["APLboxquestion","symbols"],["lparenextender","symbols"],["rparenextender","symbols"],["lbrackextender","symbols"],["rbrackextender","symbols"],["vbraceextender","symbols"],["harrowextender","symbols"],["blockrighthalf","symbols"],["blockqtrshaded","symbols"],["squarenwsefill","symbols"],["squareneswfill","symbols"],["mdlgblkdiamond","symbols"],["mdlgwhtdiamond","symbols"],["mdlgwhtlozenge","symbols"],["circlevertfill","symbols"],["vardiamondsuit","symbols"],["circledtwodots","symbols"],["rightouterjoin","symbols"],["concavediamond","symbols"],["longrightarrow","symbols"],["Longrightarrow","symbols"],["longmappedfrom","symbols"],["Longmappedfrom","symbols"],["fdiagovnearrow","symbols"],["rdiagovsearrow","symbols"],["acwcirclearrow","symbols"],["rightarrowplus","symbols"],["RightVectorBar","symbols"],["RightTeeVector","symbols"],["leftbarharpoon","symbols"],["barleftharpoon","symbols"],["updownharpoons","symbols"],["downupharpoons","symbols"],["rightanglemdot","symbols"],["triangleserifs","symbols"],["blackhourglass","symbols"],["mdlgblklozenge","symbols"],["bigslopedwedge","symbols"],["doublebarwedge","symbols"],["wedgedoublebar","symbols"],["NestedLessLess","symbols"],["squaretopblack","symbols"],["squarebotblack","symbols"],["equalleftarrow","symbols"],["ocommatopright","symbols"],["overleftarrow","symbols"],["enclosecircle","symbols"],["enclosesquare","symbols"],["threeunderdot","symbols"],["sansLmirrored","symbols"],["DifferentialD","symbols"],["leftwavearrow","symbols"],["leftarrowtail","symbols"],["hookleftarrow","symbols"],["looparrowleft","symbols"],["leftharpoonup","symbols"],["upharpoonleft","symbols"],["dashleftarrow","symbols"],["leftdasharrow","symbols"],["downdasharrow","symbols"],["RightArrowBar","symbols"],["rightarrowbar","symbols"],["smallsetminus","symbols"],["vysmwhtcircle","symbols"],["vysmblkcircle","symbols"],["measuredangle","symbols"],["wasytherefore","symbols"],["dotsminusdots","symbols"],["fallingdotseq","symbols"],["PrecedesTilde","symbols"],["SucceedsTilde","symbols"],["varlrtriangle","symbols"],["divideontimes","symbols"],["equalparallel","symbols"],["ntriangleleft","symbols"],["APLuparrowbox","symbols"],["APLboxupcaret","symbols"],["bdtriplevdash","symbols"],["blocklefthalf","symbols"],["mdlgblksquare","symbols"],["mdlgwhtsquare","symbols"],["parallelogram","symbols"],["bigtriangleup","symbols"],["blacktriangle","symbols"],["triangleright","symbols"],["mdlgwhtcircle","symbols"],["mdlgblkcircle","symbols"],["inversebullet","symbols"],["topsemicircle","symbols"],["botsemicircle","symbols"],["squareulblack","symbols"],["squarelrblack","symbols"],["mdsmwhtsquare","symbols"],["mdsmblksquare","symbols"],["sixteenthnote","symbols"],["Hermaphrodite","symbols"],["mdsmwhtcircle","symbols"],["draftingarrow","symbols"],["leftouterjoin","symbols"],["fullouterjoin","symbols"],["longleftarrow","symbols"],["Longleftarrow","symbols"],["twoheadmapsto","symbols"],["uparrowbarred","symbols"],["rightdotarrow","symbols"],["cwcirclearrow","symbols"],["leftarrowplus","symbols"],["LeftVectorBar","symbols"],["LeftTeeVector","symbols"],["upequilibrium","symbols"],["leftarrowless","symbols"],["rightfishtail","symbols"],["mdsmblkcircle","symbols"],["llparenthesis","symbols"],["rrparenthesis","symbols"],["rightanglesqr","symbols"],["wideangledown","symbols"],["emptysetocirc","symbols"],["emptysetoarrl","symbols"],["circledbslash","symbols"],["circledbullet","symbols"],["errbardiamond","symbols"],["triangleminus","symbols"],["triangletimes","symbols"],["shortlefttack","symbols"],["shortdowntack","symbols"],["threedotcolon","symbols"],["biginterleave","symbols"],["bigtalloblong","symbols"],["squareurblack","symbols"],["squarellblack","symbols"],["vysmblksquare","symbols"],["vysmwhtsquare","symbols"],["pentagonblack","symbols"],["rightarrowgtr","symbols"],["rightpentagon","symbols"],["upbackepsilon","symbols"],["hyphenbullet","symbols"],["PropertyLine","symbols"],["updownarrows","symbols"],["LeftArrowBar","symbols"],["barleftarrow","symbols"],["upwhitearrow","symbols"],["downuparrows","symbols"],["nvrightarrow","symbols"],["nVrightarrow","symbols"],["intclockwise","symbols"],["cntclockoint","symbols"],["risingdotseq","symbols"],["NotLessTilde","symbols"],["varsubsetneq","symbols"],["cupleftarrow","symbols"],["circledequal","symbols"],["hermitmatrix","symbols"],["smwhtdiamond","symbols"],["npreccurlyeq","symbols"],["nsucccurlyeq","symbols"],["unicodecdots","symbols"],["notbackslash","symbols"],["underbracket","symbols"],["blocklowhalf","symbols"],["squarehvfill","symbols"],["triangledown","symbols"],["triangleleft","symbols"],["Diamondblack","symbols"],["dottedcircle","symbols"],["trianglecdot","symbols"],["squareulquad","symbols"],["squarellquad","symbols"],["squarelrquad","symbols"],["squareurquad","symbols"],["circleulquad","symbols"],["circlellquad","symbols"],["circlelrquad","symbols"],["circleurquad","symbols"],["bigwhitestar","symbols"],["invsmileface","symbols"],["varspadesuit","symbols"],["varheartsuit","symbols"],["dingasterisk","symbols"],["longdivision","symbols"],["lozengeminus","symbols"],["longmapsfrom","symbols"],["Longmapsfrom","symbols"],["nvRightarrow","symbols"],["rightbkarrow","symbols"],["leftdbkarrow","symbols"],["DownArrowBar","symbols"],["downarrowbar","symbols"],["rightdbltail","symbols"],["rdiagovfdiag","symbols"],["fdiagovrdiag","symbols"],["upupharpoons","symbols"],["leftfishtail","symbols"],["downfishtail","symbols"],["lbrackultick","symbols"],["rbracklrtick","symbols"],["lbracklltick","symbols"],["rbrackurtick","symbols"],["revangleubar","symbols"],["emptysetobar","symbols"],["emptysetoarr","symbols"],["odotslashdot","symbols"],["ogreaterthan","symbols"],["triangleodot","symbols"],["triangleubar","symbols"],["multimapboth","symbols"],["lrtriangleeq","symbols"],["blacklozenge","symbols"],["errbarsquare","symbols"],["errbarcircle","symbols"],["triangleplus","symbols"],["closedvarcup","symbols"],["closedvarcap","symbols"],["wedgeonwedge","symbols"],["bigslopedvee","symbols"],["wedgemidvert","symbols"],["doublebarvee","symbols"],["veedoublebar","symbols"],["eqqslantless","symbols"],["subsetapprox","symbols"],["supsetapprox","symbols"],["dottedsquare","symbols"],["hexagonblack","symbols"],["mdblkdiamond","symbols"],["mdwhtdiamond","symbols"],["mdblklozenge","symbols"],["mdwhtlozenge","symbols"],["smblkdiamond","symbols"],["smblklozenge","symbols"],["smwhtlozenge","symbols"],["leftdotarrow","symbols"],["medwhitestar","symbols"],["medblackstar","symbols"],["oturnedcomma","symbols"],["upvarepsilon","symbols"],["mathsterling","symbols"],["displaystyle","fonts"],["smblkcircle","symbols"],["backtrprime","symbols"],["caretinsert","symbols"],["vertoverlay","symbols"],["asteraccent","symbols"],["Planckconst","symbols"],["sansLturned","symbols"],["ExponetialE","symbols"],["updownarrow","symbols"],["nrightarrow","symbols"],["restriction","symbols"],["equilibrium","symbols"],["nRightarrow","symbols"],["Updownarrow","symbols"],["Rrightarrow","symbols"],["nHdownarrow","symbols"],["updasharrow","symbols"],["nvleftarrow","symbols"],["nVleftarrow","symbols"],["approxident","symbols"],["corresponds","symbols"],["GreaterLess","symbols"],["preccurlyeq","symbols"],["succcurlyeq","symbols"],["circledcirc","symbols"],["circleddash","symbols"],["curlyeqprec","symbols"],["curlyeqsucc","symbols"],["nsqsubseteq","symbols"],["nsqsupseteq","symbols"],["sqsubsetneq","symbols"],["sqsupsetneq","symbols"],["varisinobar","symbols"],["varbarwedge","symbols"],["wasylozenge","symbols"],["APLnotslash","symbols"],["invdiameter","symbols"],["intextender","symbols"],["overbracket","symbols"],["blockuphalf","symbols"],["squarehfill","symbols"],["squarevfill","symbols"],["smblksquare","symbols"],["smwhtsquare","symbols"],["vartriangle","symbols"],["RIGHTcircle","symbols"],["RIGHTCIRCLE","symbols"],["smwhtcircle","symbols"],["lgwhtcircle","symbols"],["mdwhtsquare","symbols"],["blacksquare","symbols"],["mdblksquare","symbols"],["blacksmiley","symbols"],["sagittarius","symbols"],["capricornus","symbols"],["diamondsuit","symbols"],["varclubsuit","symbols"],["quarternote","symbols"],["mdwhtcircle","symbols"],["mdblkcircle","symbols"],["ballotcheck","symbols"],["circledstar","symbols"],["arrowbullet","symbols"],["threedangle","symbols"],["diamondcdot","symbols"],["multimapinv","symbols"],["nvLeftarrow","symbols"],["leftbkarrow","symbols"],["leftdbltail","symbols"],["seovnearrow","symbols"],["neovsearrow","symbols"],["neovnwarrow","symbols"],["nwovnearrow","symbols"],["rightarrowx","symbols"],["wideangleup","symbols"],["revemptyset","symbols"],["circledvert","symbols"],["circledless","symbols"],["gleichstark","symbols"],["ruledelayed","symbols"],["lcurvyangle","symbols"],["rcurvyangle","symbols"],["otimeslhrim","symbols"],["otimesrhrim","symbols"],["midbarwedge","symbols"],["simminussim","symbols"],["eqslantless","symbols"],["eqqslantgtr","symbols"],["precnapprox","symbols"],["succnapprox","symbols"],["shortuptack","symbols"],["lgblksquare","symbols"],["lgwhtsquare","symbols"],["lgblkcircle","symbols"],["blkhorzoval","symbols"],["whthorzoval","symbols"],["blkvertoval","symbols"],["whtvertoval","symbols"],["RRightarrow","symbols"],["smwhitestar","symbols"],["backepsilon","symbols"],["varepsilon","symbols"],["wideutilde","symbols"],["upvartheta","symbols"],["upoldKoppa","symbols"],["upoldkoppa","symbols"],["upvarkappa","symbols"],["upvarTheta","symbols"],["upvarsigma","symbols"],["octothorpe","symbols"],["mathdollar","symbols"],["twolowline","symbols"],["backdprime","symbols"],["Eulerconst","symbols"],["turnediota","symbols"],["rightarrow","symbols"],["nleftarrow","symbols"],["mappedfrom","symbols"],["upuparrows","symbols"],["nLeftarrow","symbols"],["Rightarrow","symbols"],["Lleftarrow","symbols"],["complement","symbols"],["varnothing","symbols"],["fourthroot","symbols"],["rightangle","symbols"],["Proportion","symbols"],["sqsubseteq","symbols"],["sqsupseteq","symbols"],["circledast","symbols"],["curlywedge","symbols"],["conictaper","symbols"],["APLcomment","symbols"],["lparenuend","symbols"],["lparenlend","symbols"],["rparenuend","symbols"],["rparenlend","symbols"],["lbrackuend","symbols"],["lbracklend","symbols"],["rbrackuend","symbols"],["rbracklend","symbols"],["lbraceuend","symbols"],["lbracelend","symbols"],["rbraceuend","symbols"],["rbracelend","symbols"],["lmoustache","symbols"],["rmoustache","symbols"],["sqrtbottom","symbols"],["underparen","symbols"],["underbrace","unary"],["hrectangle","symbols"],["vrectangle","symbols"],["LEFTcircle","symbols"],["LEFTCIRCLE","symbols"],["ultriangle","symbols"],["urtriangle","symbols"],["lltriangle","symbols"],["lrtriangle","symbols"],["CheckedBox","symbols"],["pointright","symbols"],["vardiamond","symbols"],["eighthnote","symbols"],["subsetcirc","symbols"],["supsetcirc","symbols"],["Diamonddot","symbols"],["DDownarrow","symbols"],["longmapsto","symbols"],["Longmapsto","symbols"],["Mappedfrom","symbols"],["Ddownarrow","symbols"],["UpArrowBar","symbols"],["baruparrow","symbols"],["rightimply","symbols"],["upfishtail","symbols"],["lbrackubar","symbols"],["rbrackubar","symbols"],["lparenless","symbols"],["Rparenless","symbols"],["lblkbrbrak","symbols"],["rblkbrbrak","symbols"],["circlehbar","symbols"],["circledgtr","symbols"],["doubleplus","symbols"],["tripleplus","symbols"],["plussubtwo","symbols"],["commaminus","symbols"],["minusfdots","symbols"],["minusrdots","symbols"],["opluslhrim","symbols"],["oplusrhrim","symbols"],["smashtimes","symbols"],["cupovercap","symbols"],["capovercup","symbols"],["veeonwedge","symbols"],["veemidvert","symbols"],["equivVvert","symbols"],["lessapprox","symbols"],["lesseqqgtr","symbols"],["gtreqqless","symbols"],["eqslantgtr","symbols"],["rightslice","symbols"],["precapprox","symbols"],["succapprox","symbols"],["subsetplus","symbols"],["supsetplus","symbols"],["subsetneqq","symbols"],["supsetneqq","symbols"],["interleave","symbols"],["talloblong","symbols"],["varhexagon","symbols"],["leftarrowx","symbols"],["LLeftarrow","symbols"],["postalmark","symbols"],["mathsfbfit","fonts"],["underline","symbols"],["upEpsilon","symbols"],["upOmicron","symbols"],["upUpsilon","symbols"],["upepsilon","symbols"],["upomicron","symbols"],["upupsilon","symbols"],["upvarbeta","symbols"],["upDigamma","symbols"],["updigamma","symbols"],["ampersand","symbols"],["mathslash","symbols"],["mathcolon","symbols"],["semicolon","symbols"],["backslash","symbols"],["backprime","symbols"],["tieconcat","symbols"],["fracslash","symbols"],["Angstroem","symbols"],["leftarrow","symbols"],["downarrow","symbols"],["lightning","symbols"],["rightturn","symbols"],["Leftarrow","symbols"],["Downarrow","symbols"],["nHuparrow","symbols"],["dasharrow","symbols"],["partialup","symbols"],["increment","symbols"],["nparallel","symbols"],["clockoint","symbols"],["therefore","symbols"],["mathratio","symbols"],["dashcolon","symbols"],["triangleq","symbols"],["nleqslant","symbols"],["ngeqslant","symbols"],["nsubseteq","symbols"],["nsupseteq","symbols"],["subsetneq","symbols"],["supsetneq","symbols"],["backsimeq","symbols"],["pitchfork","symbols"],["lesseqgtr","symbols"],["gtreqless","symbols"],["varniobar","symbols"],["bagmember","symbols"],["sqlozenge","symbols"],["turnednot","symbols"],["intbottom","symbols"],["lbracemid","symbols"],["rbracemid","symbols"],["sumbottom","symbols"],["lvboxline","symbols"],["rvboxline","symbols"],["overparen","symbols"],["wideparen","symbols"],["overbrace","underover"],["trapezium","symbols"],["accurrent","symbols"],["blockfull","symbols"],["radiation","symbols"],["biohazard","symbols"],["smileface","symbols"],["rightmoon","symbols"],["spadesuit","symbols"],["heartsuit","symbols"],["medbullet","symbols"],["checkmark","symbols"],["DashVDash","symbols"],["dashVdash","symbols"],["vlongdash","symbols"],["longdashv","symbols"],["llbracket","symbols"],["rrbracket","symbols"],["impliedby","symbols"],["righttail","symbols"],["nwsearrow","symbols"],["neswarrow","symbols"],["hknwarrow","symbols"],["hknearrow","symbols"],["typecolon","symbols"],["langledot","symbols"],["rangledot","symbols"],["rparengtr","symbols"],["Lparengtr","symbols"],["fourvdots","symbols"],["turnangle","symbols"],["angleubar","symbols"],["olessthan","symbols"],["boxbslash","symbols"],["boxcircle","symbols"],["triangles","symbols"],["hourglass","symbols"],["bigotimes","symbols"],["bigcupdot","symbols"],["conjquant","symbols"],["disjquant","symbols"],["modtwosum","symbols"],["otimeshat","symbols"],["cupbarcap","symbols"],["capbarcup","symbols"],["wedgeodot","symbols"],["midbarvee","symbols"],["varveebar","symbols"],["equivVert","symbols"],["hatapprox","symbols"],["approxeqq","symbols"],["gtrapprox","symbols"],["leftslice","symbols"],["subsetdot","symbols"],["supsetdot","symbols"],["subseteqq","symbols"],["supseteqq","symbols"],["leqqslant","symbols"],["geqqslant","symbols"],["mbfitsans","fonts"],["horizbar","symbols"],["Question","symbols"],["medspace","symbols"],["Angstrom","symbols"],["ComplexI","symbols"],["ComplexJ","symbols"],["mapsfrom","symbols"],["MapsDown","symbols"],["mapsdown","symbols"],["linefeed","symbols"],["leftturn","symbols"],["divslash","symbols"],["cuberoot","symbols"],["parallel","symbols"],["dotminus","symbols"],["invlazys","symbols"],["sinewave","symbols"],["approxeq","symbols"],["backcong","symbols"],["dotequal","symbols"],["doteqdot","symbols"],["coloneqq","symbols"],["eqqcolon","symbols"],["notasymp","symbols"],["nlesssim","symbols"],["nlessgtr","symbols"],["ngtrless","symbols"],["subseteq","symbols"],["supseteq","symbols"],["sqsubset","symbols"],["sqsupset","symbols"],["boxminus","symbols"],["boxtimes","symbols"],["multimap","symbols"],["intercal","symbols"],["barwedge","symbols"],["bigwedge","symbols"],["curlyvee","symbols"],["precnsim","symbols"],["succnsim","symbols"],["varisins","symbols"],["isinobar","symbols"],["diameter","symbols"],["profline","symbols"],["profsurf","symbols"],["viewdata","symbols"],["ulcorner","symbols"],["urcorner","symbols"],["llcorner","symbols"],["lrcorner","symbols"],["notslash","symbols"],["APLinput","symbols"],["bbrktbrk","symbols"],["elinters","symbols"],["triangle","symbols"],["bullseye","symbols"],["astrosun","symbols"],["steaming","symbols"],["leftmoon","symbols"],["varEarth","symbols"],["aquarius","symbols"],["clubsuit","symbols"],["varspade","symbols"],["varheart","symbols"],["twonotes","symbols"],["acidfree","symbols"],["bsolhsub","symbols"],["wedgedot","symbols"],["pullback","symbols"],["UUparrow","symbols"],["Mapsfrom","symbols"],["Uuparrow","symbols"],["drbkarow","symbols"],["lefttail","symbols"],["hksearow","symbols"],["hkswarow","symbols"],["strictfi","symbols"],["strictif","symbols"],["revangle","symbols"],["boxslash","symbols"],["boxonbox","symbols"],["rtriltri","symbols"],["lfbowtie","symbols"],["rfbowtie","symbols"],["lvzigzag","symbols"],["rvzigzag","symbols"],["Lvzigzag","symbols"],["Rvzigzag","symbols"],["tieinfty","symbols"],["smeparsl","symbols"],["eqvparsl","symbols"],["setminus","symbols"],["bigoplus","symbols"],["biguplus","symbols"],["bigsqcap","symbols"],["bigsqcup","symbols"],["bigtimes","symbols"],["cirfnint","symbols"],["rppolint","symbols"],["scpolint","symbols"],["pointint","symbols"],["intlarhk","symbols"],["zproject","symbols"],["ringplus","symbols"],["plustrif","symbols"],["minusdot","symbols"],["vectimes","symbols"],["dottimes","symbols"],["timesbar","symbols"],["intprodr","symbols"],["capwedge","symbols"],["veeonvee","symbols"],["wedgebar","symbols"],["dotequiv","symbols"],["simrdots","symbols"],["Coloneqq","symbols"],["leqslant","symbols"],["geqslant","symbols"],["lesdotor","symbols"],["gesdotol","symbols"],["lnapprox","symbols"],["gnapprox","symbols"],["precneqq","symbols"],["succneqq","symbols"],["forksnot","symbols"],["varVdash","symbols"],["pentagon","symbols"],["mathring","symbols"],["underbar","symbols"],["upLambda","symbols"],["uplambda","symbols"],["varsigma","symbols"],["upvarphi","symbols"],["vartheta","symbols"],["upStigma","symbols"],["upstigma","symbols"],["varkappa","symbols"],["upvarrho","symbols"],["question","symbols"],["mathcent","symbols"],["sterling","symbols"],["circledR","symbols"],["stackrel","binary"],["mathbold","fonts"],["mathsfit","fonts"],["mathsfbf","fonts"],["mathbfit","fonts"],["mathfrak","fonts"],["overline","unary"],["underset","binary"],["overset","binary"],["ddagger","symbols"],["trprime","symbols"],["closure","symbols"],["annuity","symbols"],["uparrow","symbols"],["nwarrow","symbols"],["nearrow","symbols"],["searrow","symbols"],["swarrow","symbols"],["Uparrow","symbols"],["Nwarrow","symbols"],["Nearrow","symbols"],["Searrow","symbols"],["Swarrow","symbols"],["partial","symbols"],["nexists","symbols"],["smallin","symbols"],["smallni","symbols"],["dotplus","symbols"],["dbloint","symbols"],["because","symbols"],["eqcolon","symbols"],["backsim","symbols"],["simneqq","symbols"],["napprox","symbols"],["coloneq","symbols"],["varsdef","symbols"],["questeq","symbols"],["between","symbols"],["lesssim","symbols"],["ngtrsim","symbols"],["lessgtr","symbols"],["gtrless","symbols"],["precsim","symbols"],["succsim","symbols"],["nsubset","symbols"],["nsupset","symbols"],["boxplus","symbols"],["imageof","symbols"],["diamond","symbols"],["lrtimes","symbols"],["lessdot","symbols"],["npreceq","symbols"],["nsucceq","symbols"],["isindot","symbols"],["hexagon","symbols"],["obrbrak","symbols"],["ubrbrak","symbols"],["benzenr","symbols"],["squoval","symbols"],["Diamond","symbols"],["fisheye","symbols"],["lozenge","symbols"],["bigstar","symbols"],["yinyang","symbols"],["frownie","symbols"],["sadface","symbols"],["mercury","symbols"],["Mercury","symbols"],["jupiter","symbols"],["Jupiter","symbols"],["neptune","symbols"],["Neptune","symbols"],["scorpio","symbols"],["Scorpio","symbols"],["varclub","symbols"],["natural","symbols"],["recycle","symbols"],["diceiii","symbols"],["warning","symbols"],["medcirc","symbols"],["ballotx","symbols"],["maltese","symbols"],["varstar","symbols"],["lbrbrak","symbols"],["rbrbrak","symbols"],["suphsol","symbols"],["pushout","symbols"],["Lbrbrak","symbols"],["Rbrbrak","symbols"],["implies","symbols"],["dbkarow","symbols"],["leadsto","symbols"],["subrarr","symbols"],["suplarr","symbols"],["llangle","symbols"],["rrangle","symbols"],["vzigzag","symbols"],["obslash","symbols"],["olcross","symbols"],["cirscir","symbols"],["boxdiag","symbols"],["fbowtie","symbols"],["lftimes","symbols"],["rftimes","symbols"],["nvinfty","symbols"],["dualmap","symbols"],["shuffle","symbols"],["thermod","symbols"],["rsolbar","symbols"],["bigodot","symbols"],["varprod","symbols"],["npolint","symbols"],["project","symbols"],["plushat","symbols"],["simplus","symbols"],["plusdot","symbols"],["plussim","symbols"],["intprod","symbols"],["twocups","symbols"],["twocaps","symbols"],["veeodot","symbols"],["congdot","symbols"],["eqqplus","symbols"],["pluseqq","symbols"],["Coloneq","symbols"],["ddotseq","symbols"],["equivDD","symbols"],["ltquest","symbols"],["gtquest","symbols"],["lesdoto","symbols"],["gesdoto","symbols"],["eqqless","symbols"],["simless","symbols"],["bumpeqq","symbols"],["precneq","symbols"],["succneq","symbols"],["preceqq","symbols"],["succeqq","symbols"],["llcurly","symbols"],["ggcurly","symbols"],["submult","symbols"],["supmult","symbols"],["subedot","symbols"],["supedot","symbols"],["lsqhook","symbols"],["rsqhook","symbols"],["suphsub","symbols"],["supdsub","symbols"],["topfork","symbols"],["revnmid","symbols"],["nhVvert","symbols"],["lllnest","symbols"],["gggnest","symbols"],["trslash","symbols"],["hzigzag","symbols"],["overbar","symbols"],["upAlpha","symbols"],["upGamma","symbols"],["upDelta","symbols"],["upTheta","symbols"],["upKappa","symbols"],["upSigma","symbols"],["Upsilon","symbols"],["upOmega","symbols"],["upalpha","symbols"],["upgamma","symbols"],["updelta","symbols"],["uptheta","symbols"],["upkappa","symbols"],["upsigma","symbols"],["upsilon","symbols"],["upomega","symbols"],["varbeta","symbols"],["upvarpi","symbols"],["Digamma","symbols"],["digamma","symbols"],["upKoppa","symbols"],["upkoppa","symbols"],["upSampi","symbols"],["upsampi","symbols"],["epsilon","symbols"],["percent","symbols"],["greater","symbols"],["sptilde","symbols"],["matheth","symbols"],["mathcal","fonts"],["mbfsans","fonts"],["dagger","symbols"],["bullet","symbols"],["second","symbols"],["dprime","symbols"],["Exclam","symbols"],["fourth","symbols"],["qprime","symbols"],["ddddot","symbols"],["hslash","symbols"],["daleth","symbols"],["invamp","symbols"],["MapsUp","symbols"],["mapsup","symbols"],["mapsto","symbols"],["forall","symbols"],["exists","symbols"],["coprod","symbols"],["propto","symbols"],["oiiint","symbols"],["nsimeq","symbols"],["approx","symbols"],["Bumpeq","symbols"],["bumpeq","symbols"],["eqcirc","symbols"],["circeq","symbols"],["wedgeq","symbols"],["stareq","symbols"],["measeq","symbols"],["nequiv","symbols"],["nasymp","symbols"],["apprle","symbols"],["gtrsim","symbols"],["apprge","symbols"],["subset","symbols"],["supset","symbols"],["cupdot","symbols"],["ominus","symbols"],["otimes","symbols"],["oslash","symbols"],["boxdot","symbols"],["assert","symbols"],["models","symbols"],["Vvdash","symbols"],["nvdash","symbols"],["nvDash","symbols"],["nVdash","symbols"],["nVDash","symbols"],["prurel","symbols"],["scurel","symbols"],["origof","symbols"],["veebar","symbols"],["barvee","symbols"],["bigvee","symbols"],["bigcap","symbols"],["bigcup","symbols"],["bowtie","symbols"],["ltimes","symbols"],["rtimes","symbols"],["Subset","symbols"],["Supset","symbols"],["gtrdot","symbols"],["eqless","symbols"],["nunlhd","symbols"],["nunrhd","symbols"],["iddots","symbols"],["isinvb","symbols"],["varnis","symbols"],["niobar","symbols"],["lfloor","symbols"],["rfloor","symbols"],["invneg","symbols"],["invnot","symbols"],["inttop","symbols"],["topbot","symbols"],["APLinv","symbols"],["APLlog","symbols"],["sumtop","symbols"],["Circle","symbols"],["CIRCLE","symbols"],["boxbar","symbols"],["square","symbols"],["Square","symbols"],["danger","symbols"],["smiley","symbols"],["female","symbols"],["saturn","symbols"],["Saturn","symbols"],["uranus","symbols"],["Uranus","symbols"],["taurus","symbols"],["Taurus","symbols"],["gemini","symbols"],["Gemini","symbols"],["cancer","symbols"],["pisces","symbols"],["diceii","symbols"],["diceiv","symbols"],["dicevi","symbols"],["anchor","symbols"],["swords","symbols"],["neuter","symbols"],["pencil","symbols"],["veedot","symbols"],["bigbot","symbols"],["bigtop","symbols"],["cirbot","symbols"],["lBrack","symbols"],["Lbrack","symbols"],["rBrack","symbols"],["Rbrack","symbols"],["langle","symbols"],["rangle","symbols"],["lAngle","symbols"],["rAngle","symbols"],["lgroup","symbols"],["rgroup","symbols"],["Mapsto","symbols"],["ltlarr","symbols"],["gtrarr","symbols"],["lBrace","symbols"],["rBrace","symbols"],["Lparen","symbols"],["lParen","symbols"],["Rparen","symbols"],["rParen","symbols"],["angles","symbols"],["angdnr","symbols"],["gtlpar","symbols"],["boxast","symbols"],["boxbox","symbols"],["ltrivb","symbols"],["vbrtri","symbols"],["iinfin","symbols"],["laplac","symbols"],["eparsl","symbols"],["tminus","symbols"],["sumint","symbols"],["iiiint","symbols"],["intbar","symbols"],["intBar","symbols"],["sqrint","symbols"],["intcap","symbols"],["intcup","symbols"],["lowint","symbols"],["btimes","symbols"],["Otimes","symbols"],["capdot","symbols"],["uminus","symbols"],["barcup","symbols"],["barcap","symbols"],["cupvee","symbols"],["dotsim","symbols"],["eqqsim","symbols"],["eqeqeq","symbols"],["lesdot","symbols"],["gesdot","symbols"],["lesges","symbols"],["gesles","symbols"],["elsdot","symbols"],["egsdot","symbols"],["eqqgtr","symbols"],["simgtr","symbols"],["preceq","symbols"],["succeq","symbols"],["subsim","symbols"],["supsim","symbols"],["subsup","symbols"],["supsub","symbols"],["subsub","symbols"],["supsup","symbols"],["vDdash","symbols"],["cirmid","symbols"],["midcir","symbols"],["topcir","symbols"],["parsim","symbols"],["sslash","symbols"],["ovhook","symbols"],["candra","symbols"],["droang","symbols"],["utilde","symbols"],["upBeta","symbols"],["upZeta","symbols"],["upIota","symbols"],["Lambda","symbols"],["upbeta","symbols"],["upzeta","symbols"],["upiota","symbols"],["lambda","symbols"],["varphi","symbols"],["Stigma","symbols"],["stigma","symbols"],["varrho","symbols"],["exclam","symbols"],["lparen","symbols"],["rparen","symbols"],["period","symbols"],["atsign","symbols"],["lbrack","symbols"],["rbrack","symbols"],["lbrace","symbols"],["rbrace","symbols"],["pounds","symbols"],["spddot","symbols"],["mathds","fonts"],["mathbf","fonts"],["mathbb","fonts"],["mathtt","fonts"],["mathrm","fonts"],["mathsf","fonts"],["mathit","fonts"],["textrm","fonts"],["textbf","fonts"],["arccos","unary"],["cancel","unary"],["arcsin","unary"],["arctan","unary"],["limsup","unary"],["liminf","unary"],["qquad","symbols"],["ldots","symbols"],["prime","symbols"],["third","symbols"],["dddot","symbols"],["DDDot","symbols"],["Euler","symbols"],["tcohm","symbols"],["aleph","symbols"],["gimel","symbols"],["lVert","symbols"],["rVert","symbols"],["upand","symbols"],["nabla","symbols"],["notin","symbols"],["notni","symbols"],["minus","symbols"],["slash","symbols"],["infty","symbols"],["angle","symbols"],["wedge","symbols"],["iiint","symbols"],["oiint","symbols"],["Colon","symbols"],["eqsim","symbols"],["simeq","symbols"],["nsime","symbols"],["ncong","symbols"],["asymp","symbols"],["doteq","symbols"],["Doteq","symbols"],["arceq","symbols"],["veeeq","symbols"],["eqdef","symbols"],["equiv","symbols"],["Equiv","symbols"],["lneqq","symbols"],["gneqq","symbols"],["nless","symbols"],["nprec","symbols"],["nsucc","symbols"],["uplus","symbols"],["sqcap","symbols"],["sqcup","symbols"],["oplus","symbols"],["vdash","symbols"],["dashv","symbols"],["vDash","symbols"],["Vdash","symbols"],["VDash","symbols"],["unlhd","symbols"],["unrhd","symbols"],["eqgtr","symbols"],["lnsim","symbols"],["gnsim","symbols"],["vdots","symbols"],["cdots","symbols"],["adots","symbols"],["ddots","symbols"],["disin","symbols"],["isins","symbols"],["barin","symbols"],["isinE","symbols"],["house","symbols"],["lceil","symbols"],["rceil","symbols"],["frown","symbols"],["smile","symbols"],["strns","symbols"],["fltns","symbols"],["ularc","symbols"],["urarc","symbols"],["lrarc","symbols"],["llarc","symbols"],["skull","symbols"],["Venus","symbols"],["earth","symbols"],["pluto","symbols"],["Pluto","symbols"],["aries","symbols"],["Aries","symbols"],["virgo","symbols"],["libra","symbols"],["Libra","symbols"],["sharp","symbols"],["dicei","symbols"],["dicev","symbols"],["psurj","symbols"],["Vvert","symbols"],["lblot","symbols"],["rblot","symbols"],["operp","symbols"],["zhide","symbols"],["xbsol","symbols"],["tplus","symbols"],["awint","symbols"],["sqint","symbols"],["upint","symbols"],["zpipe","symbols"],["amalg","symbols"],["Sqcap","symbols"],["Sqcup","symbols"],["Wedge","symbols"],["ndres","symbols"],["nrres","symbols"],["eqdot","symbols"],["asteq","symbols"],["Equal","symbols"],["ltcir","symbols"],["gtcir","symbols"],["lsime","symbols"],["gsime","symbols"],["lsimg","symbols"],["gsiml","symbols"],["simlE","symbols"],["simgE","symbols"],["lescc","symbols"],["gescc","symbols"],["csube","symbols"],["csupe","symbols"],["forkv","symbols"],["forks","symbols"],["perps","symbols"],["dashV","symbols"],["Dashv","symbols"],["DashV","symbols"],["vBarv","symbols"],["nhpar","symbols"],["hline","symbols"],["imath","symbols"],["jmath","symbols"],["grave","symbols"],["acute","symbols"],["breve","symbols"],["ocirc","symbols"],["check","symbols"],["Gamma","symbols"],["Delta","symbols"],["upEta","symbols"],["Theta","symbols"],["upRho","symbols"],["Sigma","symbols"],["upTau","symbols"],["upPhi","symbols"],["upChi","symbols"],["upPsi","symbols"],["Omega","symbols"],["alpha","symbols"],["gamma","symbols"],["delta","symbols"],["upeta","symbols"],["theta","symbols"],["kappa","symbols"],["uprho","symbols"],["sigma","symbols"],["uptau","symbols"],["upchi","symbols"],["uppsi","symbols"],["omega","symbols"],["upphi","symbols"],["varpi","symbols"],["Qoppa","symbols"],["Koppa","symbols"],["qoppa","symbols"],["koppa","symbols"],["Sampi","symbols"],["sampi","symbols"],["comma","symbols"],["colon","symbols"],["equal","symbols"],["sphat","symbols"],["Micro","symbols"],["cdotp","symbols"],["times","symbols"],["binom","binary"],["color","binary"],["mfrak","fonts"],["mbfit","fonts"],["msans","fonts"],["tilde","unary"],["prod","ternary"],["zeta","symbols"],["quad","symbols"],["Vert","symbols"],["euro","symbols"],["lvec","symbols"],["LVec","symbols"],["Finv","symbols"],["beth","symbols"],["Game","symbols"],["gets","symbols"],["tsur","symbols"],["tinj","symbols"],["dlsh","symbols"],["Ldsh","symbols"],["drsh","symbols"],["Rdsh","symbols"],["pfun","symbols"],["ffun","symbols"],["nexi","symbols"],["owns","symbols"],["circ","symbols"],["nmid","symbols"],["land","symbols"],["iint","symbols"],["oint","ternary"],["nsim","symbols"],["cong","symbols"],["sdef","symbols"],["leqq","symbols"],["geqq","symbols"],["ngtr","symbols"],["nleq","symbols"],["ngeq","symbols"],["prec","symbols"],["succ","symbols"],["buni","symbols"],["odot","symbols"],["dint","symbols"],["duni","symbols"],["cdot","symbols"],["star","symbols"],["hash","symbols"],["nisd","symbols"],["obar","symbols"],["rres","symbols"],["dres","symbols"],["XBox","symbols"],["male","symbols"],["Mars","symbols"],["flat","symbols"],["perp","symbols"],["Lbag","symbols"],["lbag","symbols"],["Rbag","symbols"],["rbag","symbols"],["upin","symbols"],["lang","symbols"],["rang","symbols"],["psur","symbols"],["pinj","symbols"],["finj","symbols"],["tona","symbols"],["toea","symbols"],["tosa","symbols"],["towa","symbols"],["VERT","symbols"],["spot","symbols"],["limg","symbols"],["rimg","symbols"],["obot","symbols"],["cirE","symbols"],["dsol","symbols"],["xsol","symbols"],["hide","symbols"],["fint","symbols"],["intx","symbols"],["Join","symbols"],["zcmp","symbols"],["semi","symbols"],["odiv","symbols"],["fcmp","symbols"],["comp","symbols"],["dsub","symbols"],["rsub","symbols"],["eqeq","symbols"],["Same","symbols"],["lneq","symbols"],["gneq","symbols"],["ltcc","symbols"],["gtcc","symbols"],["smte","symbols"],["late","symbols"],["Prec","symbols"],["Succ","symbols"],["csub","symbols"],["csup","symbols"],["mlcp","symbols"],["Barv","symbols"],["vBar","symbols"],["barV","symbols"],["Vbar","symbols"],["Perp","symbols"],["bNot","symbols"],["Zbar","symbols"],["DDot","symbols"],["ring","symbols"],["upMu","symbols"],["upNu","symbols"],["upXi","symbols"],["upPi","symbols"],["beta","symbols"],["iota","symbols"],["upmu","symbols"],["upnu","symbols"],["upxi","symbols"],["uppi","symbols"],["plus","symbols"],["less","symbols"],["vert","symbols"],["cent","symbols"],["lnot","symbols"],["tcmu","symbols"],["frac","binary"],["mscr","fonts"],["sinh","unary"],["coth","unary"],["tanh","unary"],["cosh","unary"],["ddot","unary"],["mbox","unary"],["text","text"],['"',"symbols"],["sum","ternary"],["inf","power_base"],["lim","power_base"],["log","power_base"],["cat","symbols"],["Vec","symbols"],["ell","symbols"],["mho","symbols"],["Mho","symbols"],["Yup","symbols"],["rel","symbols"],["Lsh","symbols"],["Rsh","symbols"],["exi","symbols"],["nin","symbols"],["nni","symbols"],["QED","symbols"],["ast","symbols"],["mid","symbols"],["vee","symbols"],["lor","symbols"],["cap","symbols"],["cup","symbols"],["int","ternary"],["sim","symbols"],["neq","symbols"],["leq","symbols"],["geq","symbols"],["top","symbols"],["bot","symbols"],["Cap","symbols"],["Cup","symbols"],["lll","symbols"],["ggg","symbols"],["nis","symbols"],["RHD","symbols"],["rhd","symbols"],["LHD","symbols"],["lhd","symbols"],["Sun","symbols"],["sun","symbols"],["leo","symbols"],["Leo","symbols"],["iff","symbols"],["bij","symbols"],["Vee","symbols"],["lgE","symbols"],["glE","symbols"],["glj","symbols"],["gla","symbols"],["smt","symbols"],["lat","symbols"],["Top","symbols"],["Bot","symbols"],["Not","symbols"],["Dot","symbols"],["not","symbols"],["Phi","symbols"],["Psi","symbols"],["eta","symbols"],["rho","symbols"],["tau","symbols"],["chi","symbols"],["psi","symbols"],["phi","symbols"],["yen","symbols"],["neg","symbols"],["eth","symbols"],["div","symbols"],["cal","fonts"],["mit","fonts"],["mbf","fonts"],["mtt","fonts"],["Bbb","fonts"],["hat","unary"],["vec","unary"],["dot","unary"],["tan","unary"],["cos","unary"],["cot","unary"],["csc","unary"],["deg","unary"],["det","unary"],["dim","unary"],["exp","unary"],["gcd","unary"],["max","unary"],["min","unary"],["sec","unary"],["sin","unary"],["hom","unary"],["sup","unary"],["ker","unary"],["bar","unary"],["Xi","symbols"],["Im","symbols"],["wp","symbols"],["Re","symbols"],["DD","symbols"],["dd","symbols"],["ee","symbols"],["ii","symbols"],["jj","symbols"],["to","symbols"],["in","symbols"],["ni","symbols"],["mp","symbols"],["AC","symbols"],["wr","symbols"],["ne","symbols"],["le","symbols"],["ge","symbols"],["ll","symbols"],["gg","symbols"],["Lt","symbols"],["Gt","symbols"],["Pi","symbols"],["mu","symbols"],["nu","symbols"],["xi","symbols"],["pi","symbols"],["pm","symbols"],["rm","fonts"],["bf","fonts"],["lg","unary"],["ln","unary"],["#","operant"],["'","operant"],["$","operant"],[",","operant"],[".","operant"],[":","operant"],[";","operant"],["=","operant"],["?","operant"],["@","operant"],["%","operant"],["&","operant"],["!","operant"],["*","operant"],["+","operant"],["-","operant"],["/","operant"],["<","operant"],[">","operant"],["^","operant"],["|","operant"],["_","operant"]]).$freeze()),n(i[0],"PARENTHESIS",new Map([["[","]"],["(",")"],["\\(","\\)"],["\\[","\\]"],["\\{","\\}"]]).$freeze()),n(i[0],"MATRICES_PARENTHESIS",new Map([["norm[","]"],["|","|"],["(",")"],["{","}"],["[","]"]]).$freeze()),n(i[0],"MATRICES",new Map([["multline",s],["Vmatrix","norm["],["vmatrix","|"],["pmatrix","("],["Bmatrix","{"],["bmatrix","["],["matrix",s],["split",s],["align",s],["array",s]]).$freeze()),n(i[0],"NUMERIC_VALUES",["zero","one","two","three","four","five","six","seven","eight","nine"].$freeze()),n(i[0],"MATH_OPERATORS",["liminf","arctan","arcsin","limsup","tanh","coth","cosh","sinh","int","sin","max","dim","arg","tan","sec","log","hom","det","cot","gcd","deg","min","ker","exp","csc","cos","Pr","ln","lg"].$freeze()),n(i[0],"UNDEROVER_CLASSES",["bmod","pmod","mod"].$freeze()),n(i[0],"LEFT_RIGHT_PARENTHESIS",new Map([["\\backslash","&#x5c;"],["\\langle","&#x2329;"],["\\rangle","&#x232a;"],["\\lfloor","&#x230a;"],["\\rfloor","&#x230b;"],["\\lceil","&#x2308;"],["\\rceil","&#x2309;"],["\\lbrace","&#x7b;"],["\\rbrace","&#x7d;"],["\\lbrack","&#x5b;"],["\\rbrack","&#x5d;"],["\\Vert","&#x2016;"],["\\vert","&#x7c;"],["\\|","&#x2016;"],["\\}","}"],["\\{","{"],["(","("],[")",")"],["<","<"],[">",">"],["/","/"],["|","|"],["[","["],["]","]"]]).$freeze()),n(i[0],"SLASHED_SYMBOLS",["backslash","langle","rangle","lfloor","rfloor","lbrace","rbrace","lbrack","rbrack","lceil","rceil","Vert","vert","|","}","{"].$freeze())}(i[0],0,i)}(i[0],0,i)}(a[0],a)},Opal.modules["plurimath/latex/transform"]=function(e){var t=e.module,r=e.klass,n=e.send,a=e.truthy,s=e.rb_plus,i=e.eqeq,o=[],l=e.nil,$=e.$$$;return e.add_stubs("rule,simple,base,over,new,num,power,get_class,unary,oper,symbol,lparen,rparen,limits,slash,expr,env,ternary,left_right,under_over,power_base,table_data,int_exp,value,text,unicode,is_a?,binary,[],to_sym,sym,subscript,supscript,sequence,left_right_objects,number,filter_values,subtree,flatten,Array,dividend,divisor,operant,compact,+,third_value,fonts,to_s,first_value,join,==,nil?,second_value,expression,table_td,include?,function,first,environment,get_table_class,organize_table,args,table_options,options,td_values,map,shift"),function(o,u){var c=[t(o,"Plurimath")].concat(u);return function(t,o,u){var c=[r(t,null,"Latex")].concat(u),_=e.$r(c);return function(t,o,u){var c=r(t,o,"Transform"),_=[c].concat(u),p=e.$r(_);return n(c,"rule",[new Map([["base",c.$simple("base")]])],(function e(){return(null==e.$$s?this:e.$$s).$base()}),{$$s:c}),n(c,"rule",[new Map([["over",c.$simple("over")]])],(function e(){return(null==e.$$s?this:e.$$s).$over()}),{$$s:c}),n(c,"rule",[new Map([["number",c.$simple("num")]])],(function e(){var t=null==e.$$s?this:e.$$s;return $(p("Math"),"Number").$new(t.$num())}),{$$s:c}),n(c,"rule",[new Map([["power",c.$simple("power")]])],(function e(){return(null==e.$$s?this:e.$$s).$power()}),{$$s:c}),n(c,"rule",[new Map([["unary",c.$simple("unary")]])],(function e(){var t=null==e.$$s?this:e.$$s;return p("Utility").$get_class(t.$unary()).$new()}),{$$s:c}),n(c,"rule",[new Map([["space",c.$simple("space")]])],(function(){return $($(p("Math"),"Function"),"Text").$new(" ")})),n(c,"rule",[new Map([["operant",c.$simple("oper")]])],(function e(){var t=null==e.$$s?this:e.$$s;return $(p("Math"),"Symbol").$new(t.$oper())}),{$$s:c}),n(c,"rule",[new Map([["symbol",c.$simple("symbol")]])],(function e(){var t=null==e.$$s?this:e.$$s;return $(p("Math"),"Symbol").$new(t.$symbol())}),{$$s:c}),n(c,"rule",[new Map([["lparen",c.$simple("lparen")]])],(function e(){var t=null==e.$$s?this:e.$$s;return $(p("Math"),"Symbol").$new(t.$lparen())}),{$$s:c}),n(c,"rule",[new Map([["rparen",c.$simple("rparen")]])],(function e(){var t=null==e.$$s?this:e.$$s;return $(p("Math"),"Symbol").$new(t.$rparen())}),{$$s:c}),n(c,"rule",[new Map([["limits",c.$simple("limits")]])],(function e(){return(null==e.$$s?this:e.$$s).$limits()}),{$$s:c}),n(c,"rule",[new Map([["\\\\",c.$simple("slash")]])],(function e(){var t=null==e.$$s?this:e.$$s;return $(p("Math"),"Symbol").$new(t.$slash())}),{$$s:c}),n(c,"rule",[new Map([["expression",c.$simple("expr")]])],(function e(){return(null==e.$$s?this:e.$$s).$expr()}),{$$s:c}),n(c,"rule",[new Map([["environment",c.$simple("env")]])],(function e(){return(null==e.$$s?this:e.$$s).$env()}),{$$s:c}),n(c,"rule",[new Map([["ternary",c.$simple("ternary")]])],(function e(){var t=null==e.$$s?this:e.$$s;return p("Utility").$get_class(t.$ternary()).$new()}),{$$s:c}),n(c,"rule",[new Map([["unary_functions",c.$simple("unary")]])],(function e(){return(null==e.$$s?this:e.$$s).$unary()}),{$$s:c}),n(c,"rule",[new Map([["ternary_class",c.$simple("ternary")]])],(function e(){return(null==e.$$s?this:e.$$s).$ternary()}),{$$s:c}),n(c,"rule",[new Map([["left_right",c.$simple("left_right")]])],(function e(){return(null==e.$$s?this:e.$$s).$left_right()}),{$$s:c}),n(c,"rule",[new Map([["under_over",c.$simple("under_over")]])],(function e(){return(null==e.$$s?this:e.$$s).$under_over()}),{$$s:c}),n(c,"rule",[new Map([["power_base",c.$simple("power_base")]])],(function e(){return(null==e.$$s?this:e.$$s).$power_base()}),{$$s:c}),n(c,"rule",[new Map([["table_data",c.$simple("table_data")]])],(function e(){return(null==e.$$s?this:e.$$s).$table_data()}),{$$s:c}),n(c,"rule",[new Map([["intermediate_exp",c.$simple("int_exp")]])],(function e(){return(null==e.$$s?this:e.$$s).$int_exp()}),{$$s:c}),n(c,"rule",[new Map([["numeric_values",c.$simple("value")]])],(function e(){var t=null==e.$$s?this:e.$$s;return $(p("Math"),"Symbol").$new(t.$value())}),{$$s:c}),n(c,"rule",[new Map([["text",c.$simple("text")]])],(function e(){var t=null==e.$$s?this:e.$$s;return $($(p("Math"),"Function"),"Text").$new(t.$text())}),{$$s:c}),n(c,"rule",[new Map([["unicode_symbols",c.$simple("unicode")]])],(function e(){var t=null==e.$$s?this:e.$$s;return $(p("Math"),"Unicode").$new(t.$unicode())}),{$$s:c}),n(c,"rule",[new Map([["binary",c.$simple("binary")]])],(function e(){var t=null==e.$$s?this:e.$$s;return a(t.$binary()["$is_a?"]($(p("Parslet"),"Slice")))?p("Utility").$get_class(t.$binary()).$new():t.$binary()}),{$$s:c}),n(c,"rule",[new Map([["symbols",c.$simple("sym")]])],(function e(){var t,r=null==e.$$s?this:e.$$s;return $(p("Math"),"Symbol").$new(a(t=$(p("Constants"),"UNICODE_SYMBOLS")["$[]"](r.$sym().$to_sym()))?t:r.$sym())}),{$$s:c}),n(c,"rule",[new Map([["lparen",c.$simple("lparen")],["rparen",c.$simple("rparen")]])],(function(){return[]})),n(c,"rule",[new Map([["left_right",c.$simple("left_right")],["subscript",c.$simple("subscript")]])],(function e(){var t=null==e.$$s?this:e.$$s;return $($(p("Math"),"Function"),"Base").$new(t.$left_right(),t.$subscript())}),{$$s:c}),n(c,"rule",[new Map([["left_right",c.$simple("left_right")],["supscript",c.$simple("supscript")]])],(function e(){var t=null==e.$$s?this:e.$$s;return $($(p("Math"),"Function"),"Power").$new(t.$left_right(),t.$supscript())}),{$$s:c}),n(c,"rule",[new Map([["left",c.$simple("left")],["left_paren",c.$simple("lparen")],["expression",c.$sequence("expr")],["right",c.$simple("right")],["right_paren",c.$simple("rparen")]])],(function e(){var t=null==e.$$s?this:e.$$s;return $(p("Math"),"Formula").$new([p("Utility").$left_right_objects(t.$lparen(),"left"),$(p("Math"),"Formula").$new(t.$expr()),p("Utility").$left_right_objects(t.$rparen(),"right")])}),{$$s:c}),n(c,"rule",[new Map([["left",c.$simple("left")],["left_paren",c.$simple("lparen")],["expression",c.$sequence("expr")],["right",c.$simple("right")]])],(function e(){var t=null==e.$$s?this:e.$$s;return $(p("Math"),"Formula").$new([p("Utility").$left_right_objects(t.$lparen(),"left"),$(p("Math"),"Formula").$new(t.$expr()),$($(p("Math"),"Function"),"Right").$new()])}),{$$s:c}),n(c,"rule",[new Map([["left",c.$simple("left")],["left_paren",c.$simple("lparen")],["expression",c.$simple("expr")],["right",c.$simple("right")]])],(function e(){var t=null==e.$$s?this:e.$$s;return $(p("Math"),"Formula").$new([p("Utility").$left_right_objects(t.$lparen(),"left"),t.$expr(),$($(p("Math"),"Function"),"Right").$new()])}),{$$s:c}),n(c,"rule",[new Map([["left",c.$simple("left")],["left_paren",c.$simple("lparen")],["right",c.$simple("right")]])],(function e(){var t=null==e.$$s?this:e.$$s;return $(p("Math"),"Formula").$new([p("Utility").$left_right_objects(t.$lparen(),"left"),$($(p("Math"),"Function"),"Right").$new()])}),{$$s:c}),n(c,"rule",[new Map([["left",c.$simple("left")],["left_paren",c.$simple("lparen")],["right",c.$simple("right")],["right_paren",c.$simple("rparen")]])],(function e(){var t=null==e.$$s?this:e.$$s;return $(p("Math"),"Formula").$new([p("Utility").$left_right_objects(t.$lparen(),"left"),p("Utility").$left_right_objects(t.$rparen(),"right")])}),{$$s:c}),n(c,"rule",[new Map([["left",c.$simple("left")],["left_paren",c.$simple("lparen")]])],(function e(){var t=null==e.$$s?this:e.$$s;return p("Utility").$left_right_objects(t.$lparen(),"left")}),{$$s:c}),n(c,"rule",[new Map([["left",c.$simple("left")],["left_paren",c.$simple("lparen")],["expression",c.$simple("expr")],["right",c.$simple("right")],["right_paren",c.$simple("rparen")]])],(function e(){var t=null==e.$$s?this:e.$$s;return $(p("Math"),"Formula").$new([p("Utility").$left_right_objects(t.$lparen(),"left"),t.$expr(),p("Utility").$left_right_objects(t.$rparen(),"right")])}),{$$s:c}),n(c,"rule",[new Map([["left",c.$simple("left")],["expression",c.$simple("expr")],["right",c.$simple("right")]])],(function e(){var t=null==e.$$s?this:e.$$s;return $(p("Math"),"Formula").$new([$($(p("Math"),"Function"),"Left").$new(),t.$expr(),$($(p("Math"),"Function"),"Right").$new()])}),{$$s:c}),n(c,"rule",[new Map([["left",c.$simple("left")],["expression",c.$sequence("expr")],["right",c.$simple("right")]])],(function e(){var t=null==e.$$s?this:e.$$s;return $(p("Math"),"Formula").$new([$($(p("Math"),"Function"),"Left").$new(),$(p("Math"),"Formula").$new(t.$expr()),$($(p("Math"),"Function"),"Right").$new()])}),{$$s:c}),n(c,"rule",[new Map([["power",c.$simple("power")],["number",c.$simple("number")]])],(function e(){var t=null==e.$$s?this:e.$$s;return $($(p("Math"),"Function"),"Power").$new(t.$power(),$(p("Math"),"Number").$new(t.$number()))}),{$$s:c}),n(c,"rule",[new Map([["power",c.$simple("power")],["expression",c.$simple("expr")]])],(function e(){var t=null==e.$$s?this:e.$$s;return $($(p("Math"),"Function"),"Power").$new(t.$power(),t.$expr())}),{$$s:c}),n(c,"rule",[new Map([["base",c.$simple("base")],["expression",c.$simple("expr")]])],(function e(){var t=null==e.$$s?this:e.$$s;return $($(p("Math"),"Function"),"Base").$new(t.$base(),t.$expr())}),{$$s:c}),n(c,"rule",[new Map([["base",c.$simple("base")],["expression",c.$sequence("expr")]])],(function e(){var t=null==e.$$s?this:e.$$s;return $($(p("Math"),"Function"),"Base").$new(t.$base(),p("Utility").$filter_values(t.$expr()))}),{$$s:c}),n(c,"rule",[new Map([["power",c.$simple("power")],["expression",c.$sequence("expr")]])],(function e(){var t=null==e.$$s?this:e.$$s;return $($(p("Math"),"Function"),"Power").$new(t.$power(),p("Utility").$filter_values(t.$expr()))}),{$$s:c}),n(c,"rule",[new Map([["left",c.$simple("left")],["left_paren",c.$simple("lparen")],["dividend",c.$subtree("dividend")],["divisor",c.$subtree("divisor")],["right",c.$simple("right")],["right_paren",c.$simple("rparen")]])],(function e(){var t=null==e.$$s?this:e.$$s;return $(p("Math"),"Formula").$new([p("Utility").$left_right_objects(t.$lparen(),"left"),$($(p("Math"),"Function"),"Over").$new($(p("Math"),"Formula").$new(t.$Array(t.$dividend()).$flatten()),$(p("Math"),"Formula").$new(t.$Array(t.$divisor()).$flatten())),p("Utility").$left_right_objects(t.$rparen(),"right")])}),{$$s:c}),n(c,"rule",[new Map([["dividend",c.$subtree("dividend")],["divisor",c.$subtree("divisor")]])],(function e(){var t=null==e.$$s?this:e.$$s;return $($(p("Math"),"Function"),"Over").$new($(p("Math"),"Formula").$new(t.$Array(t.$dividend()).$flatten()),$(p("Math"),"Formula").$new(t.$Array(t.$divisor()).$flatten()))}),{$$s:c}),n(c,"rule",[new Map([["over",c.$simple("over")],["subscript",c.$simple("subscript")]])],(function e(){var t=null==e.$$s?this:e.$$s;return $($(p("Math"),"Function"),"Base").$new(t.$over(),t.$subscript())}),{$$s:c}),n(c,"rule",[new Map([["over",c.$simple("over")],["supscript",c.$simple("supscript")]])],(function e(){var t=null==e.$$s?this:e.$$s;return $($(p("Math"),"Function"),"Power").$new(t.$over(),t.$supscript())}),{$$s:c}),n(c,"rule",[new Map([["operant",c.$simple("operant")],["subscript",c.$simple("subscript")]])],(function e(){var t=null==e.$$s?this:e.$$s;return $($(p("Math"),"Function"),"Base").$new($(p("Math"),"Symbol").$new(t.$operant()),t.$subscript())}),{$$s:c}),n(c,"rule",[new Map([["operant",c.$simple("operant")],["supscript",c.$simple("supscript")]])],(function e(){var t=null==e.$$s?this:e.$$s;return $($(p("Math"),"Function"),"Power").$new($(p("Math"),"Symbol").$new(t.$operant()),t.$supscript())}),{$$s:c}),n(c,"rule",[new Map([["sequence",c.$simple("sequence")],["expression",c.$simple("expr")]])],(function e(){var t=null==e.$$s?this:e.$$s;return[t.$sequence(),t.$expr()].$compact()}),{$$s:c}),n(c,"rule",[new Map([["sequence",c.$simple("sequence")],["expression",c.$sequence("expr")]])],(function e(){var t=null==e.$$s?this:e.$$s;return s([t.$sequence()],t.$expr())}),{$$s:c}),n(c,"rule",[new Map([["unary_functions",c.$simple("unary")],["subscript",c.$simple("subscript")]])],(function e(){var t,r=null==e.$$s?this:e.$$s;return t=a(r.$unary()["$is_a?"]($(p("Parslet"),"Slice")))?p("Utility").$get_class(r.$unary()).$new():r.$unary(),$($(p("Math"),"Function"),"Base").$new(t,r.$subscript())}),{$$s:c}),n(c,"rule",[new Map([["binary_functions",c.$simple("binary")],["supscript",c.$simple("supscript")]])],(function e(){var t=null==e.$$s?this:e.$$s;return $($(p("Math"),"Function"),"Power").$new(t.$binary(),t.$supscript())}),{$$s:c}),n(c,"rule",[new Map([["ternary_functions",c.$simple("ternary")],["subscript",c.$simple("subscript")]])],(function e(){var t=null==e.$$s?this:e.$$s;return p("Utility").$get_class(t.$ternary()).$new(t.$subscript())}),{$$s:c}),n(c,"rule",[new Map([["unary_functions",c.$simple("unary")],["supscript",c.$simple("supscript")]])],(function e(){var t,r=null==e.$$s?this:e.$$s;return t=a(r.$unary()["$is_a?"]($(p("Parslet"),"Slice")))?p("Utility").$get_class(r.$unary()).$new():r.$unary(),$($(p("Math"),"Function"),"Power").$new(t,r.$supscript())}),{$$s:c}),n(c,"rule",[new Map([["ternary_functions",c.$simple("ternary")],["subscript",c.$simple("subscript")],["third_value",c.$simple("third_value")]])],(function e(){var t=null==e.$$s?this:e.$$s;return p("Utility").$get_class(t.$ternary()).$new(t.$subscript(),l,t.$third_value())}),{$$s:c}),n(c,"rule",[new Map([["ternary_functions",c.$simple("ternary")],["subscript",c.$simple("subscript")],["supscript",c.$simple("supscript")]])],(function e(){var t=null==e.$$s?this:e.$$s;return p("Utility").$get_class(t.$ternary()).$new(t.$subscript(),t.$supscript())}),{$$s:c}),n(c,"rule",[new Map([["unary_functions",c.$simple("unary")],["subscript",c.$simple("subscript")],["supscript",c.$simple("supscript")]])],(function e(){var t,r=null==e.$$s?this:e.$$s;return t=a(r.$unary()["$is_a?"]($(p("Parslet"),"Slice")))?p("Utility").$get_class(r.$unary()).$new():r.$unary(),$($(p("Math"),"Function"),"PowerBase").$new(t,r.$subscript(),r.$supscript())}),{$$s:c}),n(c,"rule",[new Map([["ternary_functions",c.$simple("ternary")],["subscript",c.$simple("subscript")],["supscript",c.$simple("supscript")],["third_value",c.$simple("third_value")]])],(function e(){var t=null==e.$$s?this:e.$$s;return p("Utility").$get_class(t.$ternary()).$new(t.$subscript(),t.$supscript(),t.$third_value())}),{$$s:c}),n(c,"rule",[new Map([["fonts",c.$simple("fonts")],["intermediate_exp",c.$simple("int_exp")]])],(function e(){var t=null==e.$$s?this:e.$$s;return a($(p("Utility"),"FONT_STYLES")["$[]"](t.$fonts().$to_sym()))?$(p("Utility"),"FONT_STYLES")["$[]"](t.$fonts().$to_sym()).$new(t.$int_exp(),t.$fonts().$to_s()):$($(p("Math"),"Function"),"FontStyle").$new(t.$int_exp(),t.$fonts().$to_s())}),{$$s:c}),n(c,"rule",[new Map([["number",c.$simple("number")],["subscript",c.$simple("subscript")]])],(function e(){var t=null==e.$$s?this:e.$$s;return $($(p("Math"),"Function"),"Base").$new($(p("Math"),"Number").$new(t.$number()),t.$subscript())}),{$$s:c}),n(c,"rule",[new Map([["number",c.$simple("number")],["supscript",c.$simple("supscript")]])],(function e(){var t=null==e.$$s?this:e.$$s;return $($(p("Math"),"Function"),"Power").$new($(p("Math"),"Number").$new(t.$number()),t.$supscript())}),{$$s:c}),n(c,"rule",[new Map([["number",c.$simple("number")],["subscript",c.$simple("subscript")],["supscript",c.$simple("supscript")]])],(function e(){var t=null==e.$$s?this:e.$$s;return $($(p("Math"),"Function"),"PowerBase").$new($(p("Math"),"Number").$new(t.$number()),t.$subscript(),t.$supscript())}),{$$s:c}),n(c,"rule",[new Map([["symbols",c.$simple("sym")],["subscript",c.$simple("subscript")]])],(function e(){var t,r=null==e.$$s?this:e.$$s;return $($(p("Math"),"Function"),"Base").$new($(p("Math"),"Symbol").$new(a(t=$(p("Constants"),"UNICODE_SYMBOLS")["$[]"](r.$sym().$to_sym()))?t:r.$sym()),r.$subscript())}),{$$s:c}),n(c,"rule",[new Map([["numeric_values",c.$simple("value")],["subscript",c.$simple("subscript")]])],(function e(){var t=null==e.$$s?this:e.$$s;return $($(p("Math"),"Function"),"Base").$new($(p("Math"),"Symbol").$new(t.$value()),t.$subscript())}),{$$s:c}),n(c,"rule",[new Map([["symbols",c.$simple("sym")],["supscript",c.$simple("supscript")]])],(function e(){var t,r=null==e.$$s?this:e.$$s;return $($(p("Math"),"Function"),"Power").$new($(p("Math"),"Symbol").$new(a(t=$(p("Constants"),"UNICODE_SYMBOLS")["$[]"](r.$sym().$to_sym()))?t:r.$sym()),r.$supscript())}),{$$s:c}),n(c,"rule",[new Map([["intermediate_exp",c.$simple("int_exp")],["supscript",c.$simple("supscript")]])],(function e(){var t=null==e.$$s?this:e.$$s;return $($(p("Math"),"Function"),"Power").$new(t.$int_exp(),t.$supscript())}),{$$s:c}),n(c,"rule",[new Map([["intermediate_exp",c.$simple("int_exp")],["subscript",c.$simple("subscript")]])],(function e(){var t=null==e.$$s?this:e.$$s;return $($(p("Math"),"Function"),"Base").$new(t.$int_exp(),t.$subscript())}),{$$s:c}),n(c,"rule",[new Map([["unicode_symbols",c.$simple("sym")],["subscript",c.$simple("subscript")]])],(function e(){var t=null==e.$$s?this:e.$$s;return $($(p("Math"),"Function"),"Base").$new($(p("Math"),"Unicode").$new(t.$sym()),t.$subscript())}),{$$s:c}),n(c,"rule",[new Map([["unicode_symbols",c.$simple("sym")],["supscript",c.$simple("supscript")]])],(function e(){var t=null==e.$$s?this:e.$$s;return $($(p("Math"),"Function"),"Power").$new($(p("Math"),"Unicode").$new(t.$sym()),t.$supscript())}),{$$s:c}),n(c,"rule",[new Map([["numeric_values",c.$simple("value")],["supscript",c.$simple("supscript")]])],(function e(){var t=null==e.$$s?this:e.$$s;return $($(p("Math"),"Function"),"Power").$new($(p("Math"),"Symbol").$new(t.$value()),t.$supscript())}),{$$s:c}),n(c,"rule",[new Map([["text",c.$simple("text")],["first_value",c.$simple("first_value")]])],(function e(){var t=null==e.$$s?this:e.$$s;return $($(p("Math"),"Function"),"Text").$new(t.$first_value())}),{$$s:c}),n(c,"rule",[new Map([["text",c.$simple("text")],["first_value",c.$sequence("first_value")]])],(function e(){var t=null==e.$$s?this:e.$$s;return $($(p("Math"),"Function"),"Text").$new(t.$first_value().$join())}),{$$s:c}),n(c,"rule",[new Map([["text",c.$simple("text")],["first_value",c.$simple("first_value")],["supscript",c.$simple("supscript")]])],(function e(){var t=null==e.$$s?this:e.$$s;return $($(p("Math"),"Function"),"Power").$new($($(p("Math"),"Function"),"Text").$new(t.$first_value()),t.$supscript())}),{$$s:c}),n(c,"rule",[new Map([["text",c.$simple("text")],["first_value",c.$sequence("first_value")],["supscript",c.$simple("supscript")]])],(function e(){var t=null==e.$$s?this:e.$$s;return $($(p("Math"),"Function"),"Power").$new($($(p("Math"),"Function"),"Text").$new(t.$first_value().$join()),t.$supscript())}),{$$s:c}),n(c,"rule",[new Map([["text",c.$simple("text")],["first_value",c.$sequence("first_value")],["subscript",c.$simple("subscript")]])],(function e(){var t=null==e.$$s?this:e.$$s;return $($(p("Math"),"Function"),"Base").$new($($(p("Math"),"Function"),"Text").$new(t.$first_value().$join()),t.$subscript())}),{$$s:c}),n(c,"rule",[new Map([["text",c.$simple("text")],["first_value",c.$simple("first_value")],["subscript",c.$simple("subscript")]])],(function e(){var t=null==e.$$s?this:e.$$s;return $($(p("Math"),"Function"),"Base").$new($($(p("Math"),"Function"),"Text").$new(t.$first_value()),t.$subscript())}),{$$s:c}),n(c,"rule",[new Map([["text",c.$simple("text")],["first_value",c.$simple("first_value")],["subscript",c.$simple("subscript")],["supscript",c.$simple("supscript")]])],(function e(){var t=null==e.$$s?this:e.$$s;return $($(p("Math"),"Function"),"PowerBase").$new($($(p("Math"),"Function"),"Text").$new(t.$first_value()),t.$subscript(),t.$supscript())}),{$$s:c}),n(c,"rule",[new Map([["unary",c.$simple("unary")],["first_value",c.$simple("first_value")]])],(function e(){var t=null==e.$$s?this:e.$$s;return p("Utility").$get_class(i(t.$unary(),"overline")?"bar":t.$unary()).$new(t.$first_value())}),{$$s:c}),n(c,"rule",[new Map([["sqrt",c.$simple("sqrt")],["intermediate_exp",c.$simple("int_exp")]])],(function e(){var t=null==e.$$s?this:e.$$s;return $($(p("Math"),"Function"),"Sqrt").$new(t.$int_exp())}),{$$s:c}),n(c,"rule",[new Map([["fonts",c.$simple("fonts")],["intermediate_exp",c.$simple("int_exp")],["supscript",c.$simple("supscript")]])],(function e(){var t,r=null==e.$$s?this:e.$$s;return t=a($(p("Utility"),"FONT_STYLES")["$[]"](r.$fonts().$to_sym())["$nil?"]())?$($(p("Math"),"Function"),"FontStyle").$new(r.$int_exp(),r.$fonts().$to_s()):$(p("Utility"),"FONT_STYLES")["$[]"](r.$fonts().$to_sym()).$new(r.$int_exp(),r.$fonts().$to_s()),$($(p("Math"),"Function"),"Power").$new(t,r.$supscript())}),{$$s:c}),n(c,"rule",[new Map([["fonts",c.$simple("fonts")],["intermediate_exp",c.$simple("int_exp")],["subscript",c.$simple("subscript")]])],(function e(){var t,r=null==e.$$s?this:e.$$s;return t=a($(p("Utility"),"FONT_STYLES")["$[]"](r.$fonts().$to_sym())["$nil?"]())?$($(p("Math"),"Function"),"FontStyle").$new(r.$int_exp(),r.$fonts().$to_s()):$(p("Utility"),"FONT_STYLES")["$[]"](r.$fonts().$to_sym()).$new(r.$int_exp(),r.$fonts().$to_s()),$($(p("Math"),"Function"),"Base").$new(t,r.$subscript())}),{$$s:c}),n(c,"rule",[new Map([["fonts",c.$simple("fonts")],["intermediate_exp",c.$simple("int_exp")],["subscript",c.$simple("subscript")],["supscript",c.$simple("supscript")]])],(function e(){var t,r=null==e.$$s?this:e.$$s;return t=a($(p("Utility"),"FONT_STYLES")["$[]"](r.$fonts().$to_sym())["$nil?"]())?$($(p("Math"),"Function"),"FontStyle").$new(r.$int_exp(),r.$fonts().$to_s()):$(p("Utility"),"FONT_STYLES")["$[]"](r.$fonts().$to_sym()).$new(r.$int_exp(),r.$fonts().$to_s()),$($(p("Math"),"Function"),"PowerBase").$new(t,r.$subscript(),r.$supscript())}),{$$s:c}),n(c,"rule",[new Map([["root",c.$simple("root")],["first_value",c.$simple("first_value")],["second_value",c.$simple("second_value")]])],(function e(){var t,r=null==e.$$s?this:e.$$s;return t=a(r.$second_value()["$nil?"]())?$(p("Math"),"Formula").$new():r.$second_value(),$($(p("Math"),"Function"),"Root").$new(r.$first_value(),t)}),{$$s:c}),n(c,"rule",[new Map([["root",c.$simple("root")],["first_value",c.$sequence("first_value")],["second_value",c.$simple("second_value")]])],(function e(){var t=null==e.$$s?this:e.$$s,r=l;return r=p("Utility").$filter_values(t.$first_value()),r=a(r["$nil?"]())?$(p("Math"),"Formula").$new():r,$($(p("Math"),"Function"),"Root").$new(r,t.$second_value())}),{$$s:c}),n(c,"rule",[new Map([["first_value",c.$simple("first_value")],["base",c.$simple("base")],["power",c.$simple("power")]])],(function e(){var t=null==e.$$s?this:e.$$s;return $($(p("Math"),"Function"),"Limits").$new(t.$first_value(),t.$base(),t.$power())}),{$$s:c}),n(c,"rule",[new Map([["lparen",c.$simple("lparen")],["expression",c.$sequence("expr")],["rparen",c.$simple("rparen")]])],(function e(){var t=null==e.$$s?this:e.$$s;return $(p("Math"),"Formula").$new(t.$expr())}),{$$s:c}),n(c,"rule",[new Map([["left_paren",c.$simple("lparen")],["expression",c.$simple("expr")],["right_paren",c.$simple("rparen")]])],(function e(){var t=null==e.$$s?this:e.$$s;return $($(p("Math"),"Function"),"Fenced").$new(t.$lparen(),[t.$expr()],t.$rparen())}),{$$s:c}),n(c,"rule",[new Map([["left_paren",c.$simple("lparen")],["expression",c.$sequence("expr")],["right_paren",c.$simple("rparen")]])],(function e(){var t=null==e.$$s?this:e.$$s;return $($(p("Math"),"Function"),"Fenced").$new(t.$lparen(),t.$expr(),t.$rparen())}),{$$s:c}),n(c,"rule",[new Map([["expression",c.$sequence("expr")]])],(function e(){var t=null==e.$$s?this:e.$$s;return $(p("Math"),"Formula").$new(t.$expr())}),{$$s:c}),n(c,"rule",[new Map([["rule",c.$simple("rule")],["first_value",c.$simple("first_value")],["second_value",c.$simple("second_value")],["third_value",c.$simple("third_value")]])],(function e(){var t=null==e.$$s?this:e.$$s;return $($(p("Math"),"Function"),"Rule").$new(t.$first_value(),t.$second_value(),t.$third_value())}),{$$s:c}),n(c,"rule",[new Map([["expression",c.$simple("expression")],["subscript",c.$simple("subscript")]])],(function e(){var t=null==e.$$s?this:e.$$s;return $($(p("Math"),"Function"),"Base").$new(t.$expression(),t.$subscript())}),{$$s:c}),n(c,"rule",[new Map([["expression",c.$simple("expr")],["supscript",c.$simple("supscript")]])],(function e(){var t=null==e.$$s?this:e.$$s;return $($(p("Math"),"Function"),"Power").$new(t.$expr(),t.$supscript())}),{$$s:c}),n(c,"rule",[new Map([["expression",c.$sequence("expr")],["supscript",c.$simple("supscript")]])],(function e(){var t=null==e.$$s?this:e.$$s;return $($(p("Math"),"Function"),"Power").$new(p("Utility").$filter_values(t.$expr()),t.$supscript())}),{$$s:c}),n(c,"rule",[new Map([["binary",c.$simple("binary")],["subscript",c.$simple("subscript")],["supscript",c.$simple("supscript")]])],(function e(){var t=null==e.$$s?this:e.$$s;return p("Utility").$get_class(t.$binary()).$new(t.$subscript(),t.$supscript())}),{$$s:c}),n(c,"rule",[new Map([["binary",c.$simple("binary")],["subscript",c.$simple("subscript")],["supscript",c.$simple("supscript")]])],(function e(){var t=null==e.$$s?this:e.$$s;return a(t.$binary()["$is_a?"]($(p("Parslet"),"Slice")))?p("Utility").$get_class(t.$binary()).$new(t.$subscript(),t.$supscript()):$($(p("Math"),"Function"),"PowerBase").$new(t.$binary(),t.$subscript(),t.$subscript())}),{$$s:c}),n(c,"rule",[new Map([["binary",c.$simple("binary")],["subscript",c.$simple("subscript")]])],(function e(){var t=null==e.$$s?this:e.$$s;return a(t.$binary()["$is_a?"]($(p("Parslet"),"Slice")))?p("Utility").$get_class(t.$binary()).$new(t.$subscript()):$($(p("Math"),"Function"),"Base").$new(t.$binary(),t.$subscript())}),{$$s:c}),n(c,"rule",[new Map([["symbols",c.$simple("sym")],["subscript",c.$simple("subscript")],["supscript",c.$simple("supscript")]])],(function e(){var t,r=null==e.$$s?this:e.$$s;return $($(p("Math"),"Function"),"PowerBase").$new($(p("Math"),"Symbol").$new(a(t=$(p("Constants"),"UNICODE_SYMBOLS")["$[]"](r.$sym().$to_sym()))?t:r.$sym()),r.$subscript(),r.$supscript())}),{$$s:c}),n(c,"rule",[new Map([["unicode_symbols",c.$simple("sym")],["subscript",c.$simple("subscript")],["supscript",c.$simple("supscript")]])],(function e(){var t=null==e.$$s?this:e.$$s;return $($(p("Math"),"Function"),"PowerBase").$new($(p("Math"),"Unicode").$new(t.$sym()),t.$subscript(),t.$supscript())}),{$$s:c}),n(c,"rule",[new Map([["binary",c.$simple("binary")],["first_value",c.$simple("first_value")],["second_value",c.$simple("second_value")]])],(function e(){var t=null==e.$$s?this:e.$$s;return i(t.$binary(),"binom")?$($(p("Math"),"Function"),"Table").$new([$($(p("Math"),"Function"),"Tr").$new(p("Utility").$table_td(t.$first_value())),$($(p("Math"),"Function"),"Tr").$new(p("Utility").$table_td(t.$second_value()))],"(",")"):p("Utility").$get_class(a(t.$binary().$to_s()["$include?"]("mod"))?"mod":t.$binary()).$new(t.$first_value(),t.$second_value())}),{$$s:c}),n(c,"rule",[new Map([["binary",c.$simple("binary")],["first_value",c.$simple("first_value")],["second_value",c.$sequence("second_value")]])],(function e(){var t=null==e.$$s?this:e.$$s;return p("Utility").$get_class(a(t.$binary().$to_s()["$include?"]("mod"))?"mod":t.$binary()).$new(t.$first_value(),p("Utility").$filter_values(t.$second_value()))}),{$$s:c}),n(c,"rule",[new Map([["underover",c.$simple("function")],["first_value",c.$simple("first")],["subscript",c.$simple("subscript")],["supscript",c.$simple("supscript")]])],(function e(){var t=null==e.$$s?this:e.$$s;return $($(p("Math"),"Function"),"PowerBase").$new(p("Utility").$get_class(t.$function()).$new(t.$first()),t.$subscript(),t.$supscript())}),{$$s:c}),n(c,"rule",[new Map([["environment",c.$simple("environment")],["table_data",c.$sequence("table_data")],["ending",c.$simple("ending")]])],(function e(){var t,r,n,a=null==e.$$s?this:e.$$s;return n=$(p("Constants"),"MATRICES")["$[]"](a.$environment().$to_sym()),p("Utility").$get_table_class(a.$environment()).$new(p("Utility").$organize_table(a.$table_data()),n,(t=$(p("Constants"),"MATRICES_PARENTHESIS")["$[]"]((r=n)===l||null==r?l:r.$to_sym()))===l||null==t?l:t.$to_s(),new Map)}),{$$s:c}),n(c,"rule",[new Map([["environment",c.$simple("environment")],["args",c.$simple("args")],["table_data",c.$simple("table_data")],["ending",c.$simple("ending")]])],(function e(){var t,r,n,s,i,o=null==e.$$s?this:e.$$s;return n=a(o.$args())?[o.$args()]:[],s=$(p("Constants"),"MATRICES")["$[]"](o.$environment().$to_sym()),i=p("Utility").$organize_table([o.$table_data()],new Map([["column_align",n]])),p("Utility").$get_table_class(o.$environment()).$new(i,s,(t=$(p("Constants"),"MATRICES_PARENTHESIS")["$[]"]((r=s)===l||null==r?l:r.$to_sym()))===l||null==t?l:t.$to_s(),p("Utility").$table_options(i))}),{$$s:c}),n(c,"rule",[new Map([["environment",c.$simple("environment")],["table_data",c.$simple("table_data")],["ending",c.$simple("ending")]])],(function e(){var t,r,n,a=null==e.$$s?this:e.$$s;return n=$(p("Constants"),"MATRICES")["$[]"](a.$environment().$to_sym()),p("Utility").$get_table_class(a.$environment()).$new(p("Utility").$organize_table([a.$table_data()]),n,(t=$(p("Constants"),"MATRICES_PARENTHESIS")["$[]"]((r=n)===l||null==r?l:r.$to_sym()))===l||null==t?l:t.$to_s())}),{$$s:c}),n(c,"rule",[new Map([["environment",c.$simple("environment")],["args",c.$sequence("args")],["table_data",c.$sequence("table_data")],["ending",c.$simple("ending")]])],(function e(){var t,r,n,a,s=null==e.$$s?this:e.$$s;return n=$(p("Constants"),"MATRICES")["$[]"](s.$environment().$to_sym()),a=p("Utility").$organize_table(s.$table_data(),new Map([["column_align",s.$args()]])),p("Utility").$get_table_class(s.$environment()).$new(a,n,(t=$(p("Constants"),"MATRICES_PARENTHESIS")["$[]"]((r=n)===l||null==r?l:r.$to_sym()))===l||null==t?l:t.$to_s(),p("Utility").$table_options(a))}),{$$s:c}),n(c,"rule",[new Map([["environment",c.$simple("environment")],["args",c.$simple("args")],["table_data",c.$sequence("table_data")],["ending",c.$simple("ending")]])],(function e(){var t,r,n,s,i,o=null==e.$$s?this:e.$$s;return n=a(o.$args())?[o.$args()]:[],s=$(p("Constants"),"MATRICES")["$[]"](o.$environment().$to_sym()),i=p("Utility").$organize_table(o.$table_data(),new Map([["column_align",n]])),p("Utility").$get_table_class(o.$environment()).$new(i,s,(t=$(p("Constants"),"MATRICES_PARENTHESIS")["$[]"]((r=s)===l||null==r?l:r.$to_sym()))===l||null==t?l:t.$to_s(),p("Utility").$table_options(i))}),{$$s:c}),n(c,"rule",[new Map([["environment",c.$simple("environment")],["asterisk",c.$simple("asterisk")],["options",c.$simple("options")],["table_data",c.$sequence("table_data")],["ending",c.$simple("ending")]])],(function e(){var t,r,n,s,i,o=null==e.$$s?this:e.$$s;return n=a(o.$options())?[o.$options()]:[],s=$(p("Constants"),"MATRICES")["$[]"](o.$environment().$to_sym()),i=p("Utility").$organize_table(o.$table_data(),new Map([["column_align",n],["options",!0]])),p("Utility").$get_table_class(o.$environment()).$new(i,s,(t=$(p("Constants"),"MATRICES_PARENTHESIS")["$[]"]((r=s)===l||null==r?l:r.$to_sym()))===l||null==t?l:t.$to_s(),new Map([["asterisk",!0]]))}),{$$s:c}),n(c,"rule",[new Map([["environment",c.$simple("environment")],["asterisk",c.$simple("asterisk")],["table_data",c.$sequence("table_data")],["ending",c.$simple("ending")]])],(function e(){var t,r,n,a=null==e.$$s?this:e.$$s;return n=$(p("Constants"),"MATRICES")["$[]"](a.$environment().$to_sym()),p("Utility").$get_table_class(a.$environment()).$new(p("Utility").$organize_table(a.$table_data()),n,(t=$(p("Constants"),"MATRICES_PARENTHESIS")["$[]"]((r=n)===l||null==r?l:r.$to_sym()))===l||null==t?l:t.$to_s(),new Map([["asterisk",!0]]))}),{$$s:c}),n(c,"rule",[new Map([["environment",c.$simple("env")],["expression",c.$simple("expr")]])],(function e(){var t,r,n,s=null==e.$$s?this:e.$$s;return n=$(p("Constants"),"MATRICES")["$[]"](s.$env().$to_sym()),p("Utility").$get_table_class(s.$env()).$new(p("Utility").$organize_table(a(s.$expr()["$nil?"]())?[]:[s.$expr()]),n,(t=$(p("Constants"),"MATRICES_PARENTHESIS")["$[]"]((r=n)===l||null==r?l:r.$to_sym()))===l||null==t?l:t.$to_s(),new Map)}),{$$s:c}),n(c,"rule",[new Map([["environment",c.$simple("env")],["expression",c.$sequence("expr")]])],(function e(){var t,r,n,a=null==e.$$s?this:e.$$s;return n=$(p("Constants"),"MATRICES")["$[]"](a.$env().$to_sym()),p("Utility").$get_table_class(a.$env()).$new(p("Utility").$organize_table(a.$expr().$compact()),n,(t=$(p("Constants"),"MATRICES_PARENTHESIS")["$[]"]((r=n)===l||null==r?l:r.$to_sym()))===l||null==t?l:t.$to_s(),new Map)}),{$$s:c}),n(c,"rule",[new Map([["substack",c.$simple("substack")],["expression",c.$sequence("value")]])],(function e(){var t,r=null==e.$$s?this:e.$$s,a=l;return t=p("Utility").$td_values(r.$value(),"\\\\"),a=n(t,"map",[],(function(e){return null==e&&(e=l),$($(p("Math"),"Function"),"Tr").$new([e])})),$($(p("Math"),"Function"),"Substack").$new(a.$shift(),a.$shift())}),{$$s:c})}(c[0],$(_("Parslet"),"Transform"),c)}(c[0],0,c)}(o[0],o)},Opal.modules["plurimath/latex/parser"]=function(e){var t=e.module,r=e.klass,n=e.regexp,a=e.annotate_regexp,s=e.def,i=e.truthy,o=e.top,l=[],$=e.nil,u=e.$$$;return e.add_stubs("attr_accessor,new,encode,decode,gsub,parse,text,apply,is_a?"),o.$require("plurimath/latex/parser.rb/../parse"),o.$require("plurimath/latex/parser.rb/../constants"),o.$require("plurimath/latex/parser.rb/../transform"),function(o,l){var c=[t(o,"Plurimath")].concat(l);return function(t,o,l){var c=[r(t,null,"Latex")].concat(l);return function(t,o,l){var c=r(t,null,"Parser"),_=[c].concat(l),p=e.$r(_);return c.$attr_accessor("text"),s(c,"$initialize",(function(e){var t=$;return e=(e=(t=p("HTMLEntities").$new()).$encode(t.$decode(e),"hexadecimal")).$gsub(n(["((?<!\\\\) )|\\n+"]),"").$gsub(/\\\\ /,"\\\\\\\\").$gsub(a(/&#x26;/u,null,""),"&").$gsub(a(/&#x22;/u,null,""),'"').$gsub(n(["(?<!\\\\\\\\)\\\\&#xa;"]),"\\ ").$gsub(a(/&#xa;/u,null,""),""),this.text=e})),s(c,"$parse",(function(){var e,t=$;return e=p("Parse").$new().$parse(this.$text()),t=p("Transform").$new().$apply(e),i(t["$is_a?"](p("Array")))||(t=[t]),u(p("Math"),"Formula").$new(t)}))}(c[0],0,c)}(c[0],0,c)}(l[0],l)},Opal.modules["plurimath/html/parse"]=function(e){var t=e.module,r=e.klass,n=e.send,a=e.truthy,s=e.def,i=e.eqeq,o=e.annotate_regexp,l=e.top,$=[],u=e.nil,c=e.$$$;return e.add_stubs("require,rule,array_to_expression,as,str,parse_sub_sup_tags,|,>>,parse_tag,keys,values,lparen,rparen,sub_tag,sup_tag,unary_functions,parse_parenthesis,intermediate_exp,sequence,binary_functions,unary,binary,tag_parse,repeat,[],match,sub_sup,sub_sup_tags,symbol_text_or_tag,parse_classes,open_paren,close_paren,expression,unary_args,binary_args,mod,root,class,first,reduce,is_a?,str_to_expression,nil?,=="),l.$require("parslet"),function(l,$){var _=[t(l,"Plurimath")].concat($);return function(t,l,$){var _=[r(t,null,"Html")].concat($),p=e.$r(_);return function(t,l,$){var _=r(t,l,"Parse"),p=[_].concat($),m=e.$r(p);return n(_,"rule",["unary"],(function e(){return(null==e.$$s?this:e.$$s).$array_to_expression(c(m("Constants"),"UNARY_CLASSES"),"unary")}),{$$s:_}),n(_,"rule",["binary"],(function e(){return(null==e.$$s?this:e.$$s).$str("lim").$as("binary")}),{$$s:_}),n(_,"rule",["sub_tag"],(function e(){return(null==e.$$s?this:e.$$s).$parse_sub_sup_tags("sub")}),{$$s:_}),n(_,"rule",["sup_tag"],(function e(){return(null==e.$$s?this:e.$$s).$parse_sub_sup_tags("sup")}),{$$s:_}),n(_,"rule",["mod"],(function e(){var t=null==e.$$s?this:e.$$s;return t.$parse_tag("open")["$>>"](t.$str("mod").$as("binary"))["$>>"](t.$parse_tag("close"))["$|"](t.$str("mod").$as("binary"))}),{$$s:_}),n(_,"rule",["lparen"],(function e(){return(null==e.$$s?this:e.$$s).$array_to_expression(c(m("Constants"),"PARENTHESIS").$keys(),"lparen")}),{$$s:_}),n(_,"rule",["rparen"],(function e(){return(null==e.$$s?this:e.$$s).$array_to_expression(c(m("Constants"),"PARENTHESIS").$values(),"rparen")}),{$$s:_}),n(_,"rule",["sub_sup"],(function e(){return(null==e.$$s?this:e.$$s).$array_to_expression(c(m("Constants"),"SUB_SUP_CLASSES").$keys(),"sum_prod")}),{$$s:_}),n(_,"rule",["open_paren"],(function e(){var t=null==e.$$s?this:e.$$s;return t.$parse_tag("open")["$>>"](t.$lparen())["$>>"](t.$parse_tag("close"))["$|"](t.$lparen())}),{$$s:_}),n(_,"rule",["close_paren"],(function e(){var t=null==e.$$s?this:e.$$s;return t.$parse_tag("open")["$>>"](t.$rparen())["$>>"](t.$parse_tag("close"))["$|"](t.$rparen())}),{$$s:_}),n(_,"rule",["sub_sup_tags"],(function e(){var t=null==e.$$s?this:e.$$s;return t.$sub_tag()["$>>"](t.$sup_tag())["$|"](t.$sup_tag()["$>>"](t.$sub_tag()))["$|"](t.$sup_tag())["$|"](t.$sub_tag())}),{$$s:_}),n(_,"rule",["unary_args"],(function e(){var t=null==e.$$s?this:e.$$s;return t.$unary_functions()["$>>"](t.$parse_parenthesis().$as("first_value")).$as("unary_function")["$|"](t.$unary_functions()["$>>"](t.$intermediate_exp().$as("first_value")).$as("unary_function"))["$|"](t.$unary_functions()["$>>"](t.$sequence().$as("first_value")).$as("unary_function"))}),{$$s:_}),n(_,"rule",["binary_args"],(function e(){var t=null==e.$$s?this:e.$$s;return t.$binary_functions()["$>>"](t.$parse_parenthesis().$as("first_value"))["$>>"](t.$parse_parenthesis().$as("second_value"))["$|"](t.$binary_functions()["$>>"](t.$parse_parenthesis().$as("first_value")))["$|"](t.$binary_functions()["$>>"](t.$intermediate_exp().$as("first_value"))["$>>"](t.$intermediate_exp().$as("second_value")))["$|"](t.$binary_functions()["$>>"](t.$intermediate_exp().$as("first_value")))}),{$$s:_}),n(_,"rule",["unary_functions"],(function e(){var t=null==e.$$s?this:e.$$s;return t.$parse_tag("open")["$>>"](t.$unary())["$>>"](t.$parse_tag("close"))["$|"](t.$unary())}),{$$s:_}),n(_,"rule",["binary_functions"],(function e(){var t=null==e.$$s?this:e.$$s;return t.$parse_tag("open")["$>>"](t.$binary())["$>>"](t.$parse_tag("close"))["$|"](t.$binary())}),{$$s:_}),n(_,"rule",["parse_classes"],(function e(){var t=null==e.$$s?this:e.$$s;return t.$unary_functions()["$|"](t.$binary_functions())}),{$$s:_}),n(_,"rule",["symbol_text_or_tag"],(function e(){var t=null==e.$$s?this:e.$$s;return t.$tag_parse()["$|"](t.$str("&")["$>>"](t.$match()["$[]"]("a-zA-Z0-9").$repeat(2))["$>>"](t.$str(";")).$as("symbol"))["$|"](t.$match()["$[]"]("0-9").$as("number"))["$|"](t.$match()["$[]"]("a-zA-Z").$as("text"))["$|"](t.$match()["$[]"]("^0-9a-zA-Z<>/(){}\\[\\]").$as("symbol"))}),{$$s:_}),n(_,"rule",["intermediate_exp"],(function e(){var t=null==e.$$s?this:e.$$s;return t.$sub_sup().$as("sub_sup")["$>>"](t.$sub_sup_tags())["$|"](t.$symbol_text_or_tag().$as("sub_sup")["$>>"](t.$sub_sup_tags()))["$|"](t.$sub_sup())["$|"](t.$parse_classes())["$|"](t.$symbol_text_or_tag())}),{$$s:_}),n(_,"rule",["parse_parenthesis"],(function e(){var t=null==e.$$s?this:e.$$s;return t.$open_paren()["$>>"](t.$symbol_text_or_tag())["$>>"](t.$close_paren())["$|"](t.$open_paren()["$>>"](t.$intermediate_exp())["$>>"](t.$close_paren()))["$|"](t.$open_paren()["$>>"](t.$expression())["$>>"](t.$close_paren()))}),{$$s:_}),n(_,"rule",["sequence"],(function e(){var t=null==e.$$s?this:e.$$s;return t.$parse_parenthesis().$as("parse_parenthesis")["$|"](t.$unary_args()["$>>"](t.$sequence().$as("sequence")))["$|"](t.$binary_args()["$>>"](t.$sequence().$as("sequence")))["$|"](t.$unary_args())["$|"](t.$binary_args())["$|"](t.$symbol_text_or_tag()["$>>"](t.$parse_parenthesis().$as("parse_parenthesis")))["$|"](t.$intermediate_exp()["$>>"](t.$expression().$as("expression")))["$|"](t.$intermediate_exp())}),{$$s:_}),n(_,"rule",["tag_parse"],(function e(){var t=null==e.$$s?this:e.$$s;return t.$parse_sub_sup_tags("table")["$|"](t.$parse_sub_sup_tags("tr"))["$|"](t.$parse_sub_sup_tags("td"))["$|"](t.$parse_tag("open")["$>>"](t.$sequence().$as("sequence"))["$>>"](t.$parse_tag("close")))}),{$$s:_}),n(_,"rule",["expression"],(function e(){var t=null==e.$$s?this:e.$$s;return t.$intermediate_exp().$as("first_value")["$>>"](t.$mod())["$>>"](t.$intermediate_exp().$as("second_value"))["$|"](t.$parse_classes().$as("sub_sup")["$>>"](t.$sub_sup_tags()))["$|"](t.$sequence().$as("sequence")["$>>"](t.$sequence().$as("expression")))["$|"](t.$sequence())}),{$$s:_}),_.$root("expression"),s(_,"$array_to_expression",(function(e,t){var r;return null==t&&(t=u),r=e.$first().$class(),n(e,"reduce",[],(function e(n,s){var i=null==e.$$s?this:e.$$s;return null==n&&(n=u),null==s&&(s=u),a(n["$is_a?"](r))&&(n=i.$str_to_expression(n,t)),n["$|"](i.$str_to_expression(s,t))}),{$$s:this})}),-2),s(_,"$str_to_expression",(function(e,t){return a(t["$nil?"]())?this.$str(e):this.$str(e).$as(t)})),s(_,"$parse_tag",(function(e){var t=this,r=u;return r=t.$str("<"),i(e,"close")&&(r=r["$>>"](t.$str("/"))),(r=r["$>>"](t.$match(o(/\w+/u,null,"")).$repeat()))["$>>"](t.$str(">"))})),s(_,"$parse_sub_sup_tags",(function(e){var t=this;return t.$str("<"+e+">")["$>>"](t.$sequence().$as(e+"_value"))["$>>"](t.$str("</"+e+">"))}))}(_[0],c(p("Parslet"),"Parser"),_)}(_[0],0,_)}($[0],$)},Opal.modules["plurimath/html/constants"]=function(e){var t=e.module,r=e.klass,n=e.const_set,a=[];e.nil;return e.add_stubs("freeze"),function(e,a){var s=[t(e,"Plurimath")].concat(a);return function(e,t,a){var s=[r(e,null,"Html")].concat(a);return function(e,t,a){var s=[r(e,null,"Constants")].concat(a);return n(s[0],"PARENTHESIS",new Map([["(",")"],["{","}"],["[","]"]]).$freeze()),n(s[0],"UNARY_CLASSES",["arcsin","arccos","arctan","coth","tanh","sech","csch","sqrt","ceil","sinh","cosh","sin","cos","gcd","csc","abs","vec","exp","sec","tan","cot","lcm","det","ln","lg"].$freeze()),n(s[0],"SUB_SUP_CLASSES",new Map([["&prod;","prod"],["&sum;","sum"],["log","log"],["lim","lim"],["∏","prod"],["∑","sum"]]).$freeze())}(s[0],0,s)}(s[0],0,s)}(a[0],a)},Opal.modules["plurimath/html/transform"]=function(e){var t=e.module,r=e.klass,n=e.send,a=e.rb_plus,s=e.truthy,i=[],o=(e.nil,e.$$$);return e.add_stubs("rule,simple,new,text,get_class,unary,symbol,number,sequence,tr_value,td_value,parse_paren,unary_function,table_value,[],to_sym,sum_prod,expr,insert,<<,+,first_value,sub_sup_method?,sub_sup,parameter_one=,sub_value,parameter_two=,sup_value,expression,lparen,rparen,binary,second_value"),function(i,l){var $=[t(i,"Plurimath")].concat(l);return function(t,i,l){var $=[r(t,null,"Html")].concat(l),u=e.$r($);return function(t,i,l){var $=r(t,i,"Transform"),u=[$].concat(l),c=e.$r(u);return n($,"rule",[new Map([["text",$.$simple("text")]])],(function e(){var t=null==e.$$s?this:e.$$s;return o(o(c("Math"),"Function"),"Text").$new(t.$text())}),{$$s:$}),n($,"rule",[new Map([["unary",$.$simple("unary")]])],(function e(){var t=null==e.$$s?this:e.$$s;return c("Utility").$get_class(t.$unary()).$new()}),{$$s:$}),n($,"rule",[new Map([["symbol",$.$simple("symbol")]])],(function e(){var t=null==e.$$s?this:e.$$s;return o(c("Math"),"Symbol").$new(t.$symbol())}),{$$s:$}),n($,"rule",[new Map([["number",$.$simple("number")]])],(function e(){var t=null==e.$$s?this:e.$$s;return o(c("Math"),"Number").$new(t.$number())}),{$$s:$}),n($,"rule",[new Map([["sequence",$.$simple("sequence")]])],(function e(){return(null==e.$$s?this:e.$$s).$sequence()}),{$$s:$}),n($,"rule",[new Map([["tr_value",$.$simple("tr_value")]])],(function e(){var t=null==e.$$s?this:e.$$s;return o(o(c("Math"),"Function"),"Tr").$new([t.$tr_value()])}),{$$s:$}),n($,"rule",[new Map([["td_value",$.$simple("td_value")]])],(function e(){var t=null==e.$$s?this:e.$$s;return o(o(c("Math"),"Function"),"Td").$new([t.$td_value()])}),{$$s:$}),n($,"rule",[new Map([["sequence",$.$sequence("sequence")]])],(function e(){var t=null==e.$$s?this:e.$$s;return o(c("Math"),"Formula").$new(t.$sequence())}),{$$s:$}),n($,"rule",[new Map([["td_value",$.$sequence("td_value")]])],(function e(){var t=null==e.$$s?this:e.$$s;return o(o(c("Math"),"Function"),"Td").$new(t.$td_value())}),{$$s:$}),n($,"rule",[new Map([["parse_parenthesis",$.$simple("parse_paren")]])],(function e(){return(null==e.$$s?this:e.$$s).$parse_paren()}),{$$s:$}),n($,"rule",[new Map([["unary_function",$.$simple("unary_function")]])],(function e(){return(null==e.$$s?this:e.$$s).$unary_function()}),{$$s:$}),n($,"rule",[new Map([["table_value",$.$simple("table_value")]])],(function e(){var t=null==e.$$s?this:e.$$s;return o(o(c("Math"),"Function"),"Table").$new([t.$table_value()])}),{$$s:$}),n($,"rule",[new Map([["table_value",$.$sequence("table_value")]])],(function e(){var t=null==e.$$s?this:e.$$s;return o(o(c("Math"),"Function"),"Table").$new(t.$table_value())}),{$$s:$}),n($,"rule",[new Map([["sum_prod",$.$simple("sum_prod")]])],(function e(){var t=null==e.$$s?this:e.$$s;return c("Utility").$get_class(o(c("Constants"),"SUB_SUP_CLASSES")["$[]"](t.$sum_prod().$to_sym())).$new()}),{$$s:$}),n($,"rule",[new Map([["sequence",$.$simple("sequence")],["expression",$.$simple("expr")]])],(function e(){var t=null==e.$$s?this:e.$$s;return[t.$sequence(),t.$expr()]}),{$$s:$}),n($,"rule",[new Map([["sequence",$.$simple("sequence")],["parse_parenthesis",$.$simple("parse_paren")]])],(function e(){var t=null==e.$$s?this:e.$$s;return[t.$sequence(),t.$parse_paren()]}),{$$s:$}),n($,"rule",[new Map([["sequence",$.$simple("sequence")],["expression",$.$sequence("expr")]])],(function e(){var t=null==e.$$s?this:e.$$s;return t.$expr().$insert(0,t.$sequence())}),{$$s:$}),n($,"rule",[new Map([["sequence",$.$sequence("sequence")],["expression",$.$simple("expr")]])],(function e(){var t=null==e.$$s?this:e.$$s;return t.$sequence()["$<<"](t.$expr())}),{$$s:$}),n($,"rule",[new Map([["tr_value",$.$simple("tr_value")],["expression",$.$simple("expr")]])],(function e(){var t=null==e.$$s?this:e.$$s;return[o(o(c("Math"),"Function"),"Tr").$new([t.$tr_value()]),t.$expr()]}),{$$s:$}),n($,"rule",[new Map([["tr_value",$.$simple("tr_value")],["expression",$.$sequence("expr")]])],(function e(){var t=null==e.$$s?this:e.$$s;return t.$expr().$insert(0,o(o(c("Math"),"Function"),"Tr").$new([t.$tr_value()]))}),{$$s:$}),n($,"rule",[new Map([["unary_function",$.$simple("unary_function")],["sequence",$.$simple("sequence")]])],(function e(){var t=null==e.$$s?this:e.$$s;return o(c("Math"),"Formula").$new([t.$unary_function(),t.$sequence()])}),{$$s:$}),n($,"rule",[new Map([["unary_function",$.$simple("unary_function")],["sequence",$.$sequence("sequence")]])],(function e(){var t=null==e.$$s?this:e.$$s;return o(c("Math"),"Formula").$new(a([t.$unary_function()],t.$sequence()))}),{$$s:$}),n($,"rule",[new Map([["text",$.$simple("text")],["expression",$.$simple("expr")]])],(function e(){var t=null==e.$$s?this:e.$$s;return[o(o(c("Math"),"Function"),"Text").$new(t.$text()),t.$expr()]}),{$$s:$}),n($,"rule",[new Map([["text",$.$simple("text")],["expression",$.$sequence("expr")]])],(function e(){var t=null==e.$$s?this:e.$$s;return a([o(o(c("Math"),"Function"),"Text").$new(t.$text())],t.$expr())}),{$$s:$}),n($,"rule",[new Map([["symbol",$.$simple("symbol")],["expression",$.$simple("expr")]])],(function e(){var t=null==e.$$s?this:e.$$s;return[o(c("Math"),"Symbol").$new(t.$symbol()),t.$expr()]}),{$$s:$}),n($,"rule",[new Map([["symbol",$.$simple("symbol")],["expression",$.$sequence("expr")]])],(function e(){var t=null==e.$$s?this:e.$$s;return a([o(c("Math"),"Symbol").$new(t.$symbol())],t.$expr())}),{$$s:$}),n($,"rule",[new Map([["number",$.$simple("number")],["expression",$.$sequence("expr")]])],(function e(){var t=null==e.$$s?this:e.$$s;return a([o(c("Math"),"Number").$new(t.$number())],t.$expr())}),{$$s:$}),n($,"rule",[new Map([["number",$.$simple("number")],["expression",$.$simple("expr")]])],(function e(){var t=null==e.$$s?this:e.$$s;return[o(c("Math"),"Number").$new(t.$number()),t.$expr()]}),{$$s:$}),n($,"rule",[new Map([["text",$.$simple("text")],["parse_parenthesis",$.$simple("parse_paren")]])],(function e(){var t=null==e.$$s?this:e.$$s;return o(c("Math"),"Formula").$new([o(o(c("Math"),"Function"),"Text").$new(t.$text()),t.$parse_paren()])}),{$$s:$}),n($,"rule",[new Map([["unary",$.$simple("unary")],["first_value",$.$simple("first_value")]])],(function e(){var t=null==e.$$s?this:e.$$s;return c("Utility").$get_class(t.$unary()).$new(t.$first_value())}),{$$s:$}),n($,"rule",[new Map([["symbol",$.$simple("symbol")],["parse_parenthesis",$.$simple("parse_paren")]])],(function e(){var t=null==e.$$s?this:e.$$s;return[o(c("Math"),"Symbol").$new(t.$symbol()),t.$parse_paren()]}),{$$s:$}),n($,"rule",[new Map([["sub_sup",$.$simple("sub_sup")],["sub_value",$.$simple("sub_value")]])],(function e(){var t=null==e.$$s?this:e.$$s;return s(c("Utility")["$sub_sup_method?"](t.$sub_sup()))?(t.$sub_sup()["$parameter_one="](t.$sub_value()),t.$sub_sup()):o(o(c("Math"),"Function"),"Base").$new(t.$sub_sup(),t.$sub_value())}),{$$s:$}),n($,"rule",[new Map([["sub_sup",$.$simple("sub_sup")],["sub_value",$.$sequence("sub_value")]])],(function e(){var t=null==e.$$s?this:e.$$s;return s(c("Utility")["$sub_sup_method?"](t.$sub_sup()))?(t.$sub_sup()["$parameter_one="](o(c("Math"),"Formula").$new(t.$sub_value())),t.$sub_sup()):o(o(c("Math"),"Function"),"Base").$new(t.$sub_sup(),o(c("Math"),"Formula").$new(t.$sub_value()))}),{$$s:$}),n($,"rule",[new Map([["sub_sup",$.$simple("sub_sup")],["sup_value",$.$simple("sup_value")]])],(function e(){var t=null==e.$$s?this:e.$$s;return s(c("Utility")["$sub_sup_method?"](t.$sub_sup()))?(t.$sub_sup()["$parameter_two="](t.$sup_value()),t.$sub_sup()):o(o(c("Math"),"Function"),"Power").$new(t.$sub_sup(),t.$sup_value())}),{$$s:$}),n($,"rule",[new Map([["sub_sup",$.$simple("sub_sup")],["sup_value",$.$sequence("sup_value")]])],(function e(){var t=null==e.$$s?this:e.$$s;return s(c("Utility")["$sub_sup_method?"](t.$sub_sup()))?(t.$sub_sup()["$parameter_two="](o(c("Math"),"Formula").$new(t.$sup_value())),t.$sub_sup()):o(o(c("Math"),"Function"),"Power").$new(t.$sub_sup(),o(c("Math"),"Formula").$new(t.$sup_value()))}),{$$s:$}),n($,"rule",[new Map([["sub_sup",$.$simple("sub_sup")],["sub_value",$.$simple("sub_value")],["sup_value",$.$simple("sup_value")]])],(function e(){var t=null==e.$$s?this:e.$$s;return s(c("Utility")["$sub_sup_method?"](t.$sub_sup()))?(t.$sub_sup()["$parameter_one="](t.$sub_value()),t.$sub_sup()["$parameter_two="](t.$sup_value()),t.$sub_sup()):o(o(c("Math"),"Function"),"PowerBase").$new(t.$sub_sup(),t.$sub_value(),t.$sup_value())}),{$$s:$}),n($,"rule",[new Map([["sub_sup",$.$simple("sub_sup")],["sub_value",$.$simple("sub_value")],["sup_value",$.$sequence("sup_value")]])],(function e(){var t=null==e.$$s?this:e.$$s;return s(c("Utility")["$sub_sup_method?"](t.$sub_sup()))?(t.$sub_sup()["$parameter_one="](t.$sub_value()),t.$sub_sup()["$parameter_two="](o(c("Math"),"Formula").$new(t.$sup_value())),t.$sub_sup()):o(o(c("Math"),"Function"),"PowerBase").$new(t.$sub_sup(),t.$sub_value(),o(c("Math"),"Formula").$new(t.$sup_value()))}),{$$s:$}),n($,"rule",[new Map([["sub_sup",$.$simple("sub_sup")],["sub_value",$.$sequence("sub_value")],["sup_value",$.$simple("sup_value")]])],(function e(){var t=null==e.$$s?this:e.$$s;return s(c("Utility")["$sub_sup_method?"](t.$sub_sup()))?(t.$sub_sup()["$parameter_one="](o(c("Math"),"Formula").$new(t.$sub_value())),t.$sub_sup()["$parameter_two="](t.$sup_value()),t.$sub_sup()):o(o(c("Math"),"Function"),"PowerBase").$new(t.$sub_sup(),o(c("Math"),"Formula").$new(t.$sub_value()),t.$sup_value())}),{$$s:$}),n($,"rule",[new Map([["sub_sup",$.$simple("sub_sup")],["sub_value",$.$sequence("sub_value")],["sup_value",$.$sequence("sup_value")]])],(function e(){var t=null==e.$$s?this:e.$$s;return s(c("Utility")["$sub_sup_method?"](t.$sub_sup()))?(t.$sub_sup()["$parameter_one="](o(c("Math"),"Formula").$new(t.$sub_value())),t.$sub_sup()["$parameter_two="](o(c("Math"),"Formula").$new(t.$sup_value())),t.$sub_sup()):o(o(c("Math"),"Function"),"PowerBase").$new(t.$sub_sup(),o(c("Math"),"Formula").$new(t.$sub_value()),o(c("Math"),"Formula").$new(t.$sup_value()))}),{$$s:$}),n($,"rule",[new Map([["sub_sup",$.$simple("sub_sup")],["sup_value",$.$sequence("sup_value")],["expression",$.$simple("expression")]])],(function e(){var t=null==e.$$s?this:e.$$s;return[o(o(c("Math"),"Function"),"Power").$new(t.$sub_sup(),o(c("Math"),"Formula").$new(t.$sup_value())),t.$expression()]}),{$$s:$}),n($,"rule",[new Map([["lparen",$.$simple("lparen")],["text",$.$simple("text")],["rparen",$.$simple("rparen")]])],(function e(){var t=null==e.$$s?this:e.$$s;return o(c("Math"),"Formula").$new([o(c("Math"),"Symbol").$new(t.$lparen()),o(o(c("Math"),"Function"),"Text").$new(t.$text()),o(c("Math"),"Symbol").$new(t.$rparen())])}),{$$s:$}),n($,"rule",[new Map([["lparen",$.$simple("lparen")],["sequence",$.$simple("sequence")],["rparen",$.$simple("rparen")]])],(function e(){var t=null==e.$$s?this:e.$$s;return o(c("Math"),"Formula").$new([o(c("Math"),"Symbol").$new(t.$lparen()),t.$sequence(),o(c("Math"),"Symbol").$new(t.$rparen())])}),{$$s:$}),n($,"rule",[new Map([["lparen",$.$simple("lparen")],["sequence",$.$simple("sequence")],["parse_parenthesis",$.$simple("parse_paren")],["rparen",$.$simple("rparen")]])],(function e(){var t=null==e.$$s?this:e.$$s;return o(c("Math"),"Formula").$new([o(c("Math"),"Symbol").$new(t.$lparen()),t.$sequence(),t.$parse_paren(),o(c("Math"),"Symbol").$new(t.$rparen())])}),{$$s:$}),n($,"rule",[new Map([["lparen",$.$simple("lparen")],["sequence",$.$sequence("sequence")],["rparen",$.$simple("rparen")]])],(function e(){var t=null==e.$$s?this:e.$$s;return o(c("Math"),"Formula").$new([o(c("Math"),"Symbol").$new(t.$lparen()),o(c("Math"),"Formula").$new(t.$sequence()),o(c("Math"),"Symbol").$new(t.$rparen())])}),{$$s:$}),n($,"rule",[new Map([["lparen",$.$simple("lparen")],["number",$.$simple("number")],["rparen",$.$simple("rparen")]])],(function e(){var t=null==e.$$s?this:e.$$s;return o(c("Math"),"Formula").$new([o(c("Math"),"Symbol").$new(t.$lparen()),o(c("Math"),"Number").$new(t.$number()),o(c("Math"),"Symbol").$new(t.$rparen())])}),{$$s:$}),n($,"rule",[new Map([["lparen",$.$simple("lparen")],["unary_function",$.$simple("unary_function")],["rparen",$.$simple("rparen")]])],(function e(){var t=null==e.$$s?this:e.$$s;return o(c("Math"),"Formula").$new([o(c("Math"),"Symbol").$new(t.$lparen()),t.$unary_function(),o(c("Math"),"Symbol").$new(t.$rparen())])}),{$$s:$}),n($,"rule",[new Map([["binary",$.$simple("binary")],["first_value",$.$simple("first_value")],["second_value",$.$simple("second_value")]])],(function e(){var t=null==e.$$s?this:e.$$s;return c("Utility").$get_class(t.$binary()).$new(t.$first_value(),t.$second_value())}),{$$s:$}),n($,"rule",[new Map([["lparen",$.$simple("lparen")],["text",$.$simple("text")],["expression",$.$sequence("expression")],["rparen",$.$simple("rparen")]])],(function e(){var t=null==e.$$s?this:e.$$s;return o(c("Math"),"Formula").$new(a([o(c("Math"),"Symbol").$new(t.$lparen()),o(o(c("Math"),"Function"),"Text").$new(t.$text())],t.$expression())["$<<"](o(c("Math"),"Symbol").$new(t.$rparen())))}),{$$s:$}),n($,"rule",[new Map([["lparen",$.$simple("lparen")],["text",$.$simple("text")],["expression",$.$simple("expression")],["rparen",$.$simple("rparen")]])],(function e(){var t=null==e.$$s?this:e.$$s;return o(c("Math"),"Formula").$new([o(c("Math"),"Symbol").$new(t.$lparen()),o(o(c("Math"),"Function"),"Text").$new(t.$text()),t.$expression(),o(c("Math"),"Symbol").$new(t.$rparen())])}),{$$s:$}),n($,"rule",[new Map([["lparen",$.$simple("lparen")],["number",$.$simple("number")],["expression",$.$simple("expression")],["rparen",$.$simple("rparen")]])],(function e(){var t=null==e.$$s?this:e.$$s;return o(c("Math"),"Formula").$new([o(c("Math"),"Symbol").$new(t.$lparen()),o(c("Math"),"Number").$new(t.$number()),t.$expression(),o(c("Math"),"Symbol").$new(t.$rparen())])}),{$$s:$}),n($,"rule",[new Map([["lparen",$.$simple("lparen")],["number",$.$simple("number")],["expression",$.$sequence("expression")],["rparen",$.$simple("rparen")]])],(function e(){var t=null==e.$$s?this:e.$$s;return o(c("Math"),"Formula").$new(a([o(c("Math"),"Symbol").$new(t.$lparen()),o(c("Math"),"Number").$new(t.$number())],t.$expression())["$<<"](o(c("Math"),"Symbol").$new(t.$rparen())))}),{$$s:$})}($[0],o(u("Parslet"),"Transform"),$)}($[0],0,$)}(i[0],i)},Opal.modules["plurimath/html/parser"]=function(e){var t=e.module,r=e.klass,n=e.def,a=e.truthy,s=e.top,i=[],o=e.nil,l=e.$$$;return e.add_stubs("require,attr_accessor,unescapeHTML,parse,new,text,to_json,apply,is_a?"),s.$require("json"),s.$require("plurimath/html/parser.rb/../parse"),s.$require("plurimath/html/parser.rb/../constants"),s.$require("plurimath/html/parser.rb/../transform"),function(s,i){var $=[t(s,"Plurimath")].concat(i);return function(t,s,i){var $=[r(t,null,"Html")].concat(i);return function(t,s,i){var $=r(t,null,"Parser"),u=[$].concat(i),c=e.$r(u);return $.$attr_accessor("text"),n($,"$initialize",(function(e){return this.text=c("CGI").$unescapeHTML(e)})),n($,"$parse",(function(){var e=o,t=o;return e=c("Parse").$new().$parse(this.$text()),e=c("JSON").$parse(e.$to_json(),new Map([["symbolize_names",!0]])),t=c("Transform").$new().$apply(e),a(t["$is_a?"](l(c("Math"),"Formula")))?t:l(c("Math"),"Formula").$new(t)}))}($[0],0,$)}($[0],0,$)}(i[0],i)},Opal.modules["plurimath/omml/transform"]=function(e){var t=e.module,r=e.klass,n=e.send,a=e.return_val,s=e.truthy,i=e.not,o=e.rb_gt,l=e.eqeq,$=e.top,u=[],c=e.nil,_=e.$$$;return e.add_stubs("require,rule,simple,text_classes,t,subtree,compact,flatten,e,sequence,i,val,scr,sty,num,den,box,filter_values,deg,sub,sup,acc,space,barpr,omath,fname,limLoc,new,begChr,endChr,narypr,ctrlpr,eqarrpr,groupchrpr,[],f,r,empty?,!,is_a?,first,>,length,shift,to_s,key,m,mathml_unary_classes,data,==,class_name,open_paren=,value,close_paren=,reject!,dpr,mtd,rassoc,each,mr,<<,Array,rpr,to_sym,join,any?,lim,find_pos_chr,index,[]=,unary_function_classes,attributes=,populate_function_classes,func,nary,values,parameter_one=,parameter_two=,parameter_three=,nary_fonts,groupchr,value?,sSubSup,each_with_index,valid_class,get_class,extract_class_from_text,ssup,nil?,rad,ssub,invert,bar,last,spre,delete_at,eqArr,attributes"),$.$require("parslet"),function($,u){var p=[t($,"Plurimath")].concat(u);return function(t,$,u){var p=[r(t,null,"Omml")].concat(u),m=e.$r(p);return function(t,$,u){var p=r(t,$,"Transform"),m=[p].concat(u),d=e.$r(m);return n(p,"rule",[new Map([["t",p.$simple("t")]])],(function e(){var t=null==e.$$s?this:e.$$s;return d("Utility").$text_classes(t.$t())}),{$$s:p}),n(p,"rule",[new Map([["e",p.$subtree("e")]])],(function e(){return(null==e.$$s?this:e.$$s).$e().$flatten().$compact()}),{$$s:p}),n(p,"rule",[new Map([["i",p.$sequence("i")]])],(function e(){return(null==e.$$s?this:e.$$s).$i()}),{$$s:p}),n(p,"rule",[new Map([["e",p.$sequence("e")]])],(function e(){return(null==e.$$s?this:e.$$s).$e().$flatten().$compact()}),{$$s:p}),n(p,"rule",[new Map([["val",p.$simple("val")]])],(function e(){return(null==e.$$s?this:e.$$s).$val()}),{$$s:p}),n(p,"rule",[new Map([["scr",p.$simple("scr")]])],(function e(){return(null==e.$$s?this:e.$$s).$scr()}),{$$s:p}),n(p,"rule",[new Map([["sty",p.$simple("sty")]])],(function e(){return(null==e.$$s?this:e.$$s).$sty()}),{$$s:p}),n(p,"rule",[new Map([["num",p.$subtree("num")]])],(function e(){return(null==e.$$s?this:e.$$s).$num()}),{$$s:p}),n(p,"rule",[new Map([["den",p.$subtree("den")]])],(function e(){return(null==e.$$s?this:e.$$s).$den()}),{$$s:p}),n(p,"rule",[new Map([["fPr",p.$subtree("fPr")]])],a(c)),n(p,"rule",[new Map([["mpr",p.$subtree("mpr")]])],a(c)),n(p,"rule",[new Map([["mPr",p.$subtree("mPr")]])],a(c)),n(p,"rule",[new Map([["box",p.$subtree("box")]])],(function e(){return(null==e.$$s?this:e.$$s).$box().$flatten().$compact()}),{$$s:p}),n(p,"rule",[new Map([["deg",p.$sequence("deg")]])],(function e(){var t=null==e.$$s?this:e.$$s;return d("Utility").$filter_values(t.$deg())}),{$$s:p}),n(p,"rule",[new Map([["sub",p.$sequence("sub")]])],(function e(){var t=null==e.$$s?this:e.$$s;return d("Utility").$filter_values(t.$sub())}),{$$s:p}),n(p,"rule",[new Map([["sup",p.$sequence("sup")]])],(function e(){var t=null==e.$$s?this:e.$$s;return d("Utility").$filter_values(t.$sup())}),{$$s:p}),n(p,"rule",[new Map([["boxPr",p.$subtree("box")]])],a(c)),n(p,"rule",[new Map([["argPr",p.$subtree("arg")]])],a(c)),n(p,"rule",[new Map([["accPr",p.$subtree("acc")]])],(function e(){return(null==e.$$s?this:e.$$s).$acc().$flatten().$compact()}),{$$s:p}),n(p,"rule",[new Map([["sSubPr",p.$subtree("arg")]])],a(c)),n(p,"rule",[new Map([["space",p.$simple("space")]])],(function e(){return(null==e.$$s?this:e.$$s).$space()}),{$$s:p}),n(p,"rule",[new Map([["radPr",p.$subtree("radpr")]])],a(c)),n(p,"rule",[new Map([["barPr",p.$subtree("barpr")]])],(function e(){return(null==e.$$s?this:e.$$s).$barpr()}),{$$s:p}),n(p,"rule",[new Map([["oMath",p.$subtree("omath")]])],(function e(){return(null==e.$$s?this:e.$$s).$omath().$flatten().$compact()}),{$$s:p}),n(p,"rule",[new Map([["fName",p.$subtree("fname")]])],(function e(){return(null==e.$$s?this:e.$$s).$fname()}),{$$s:p}),n(p,"rule",[new Map([["oMath",p.$sequence("omath")]])],(function e(){return(null==e.$$s?this:e.$$s).$omath()}),{$$s:p}),n(p,"rule",[new Map([["limLoc",p.$simple("limLoc")]])],(function e(){return(null==e.$$s?this:e.$$s).$limLoc()}),{$$s:p}),n(p,"rule",[new Map([["begChr",p.$simple("begChr")]])],(function e(){var t=null==e.$$s?this:e.$$s;return _(d("Math"),"Symbol").$new(t.$begChr())}),{$$s:p}),n(p,"rule",[new Map([["endChr",p.$simple("endChr")]])],(function e(){var t=null==e.$$s?this:e.$$s;return _(d("Math"),"Symbol").$new(t.$endChr())}),{$$s:p}),n(p,"rule",[new Map([["rFonts",p.$subtree("rFonts")]])],a(c)),n(p,"rule",[new Map([["sSupPr",p.$subtree("ssuppr")]])],a(c)),n(p,"rule",[new Map([["sPrePr",p.$subtree("sprepr")]])],a(c)),n(p,"rule",[new Map([["funcPr",p.$subtree("funcpr")]])],a(c)),n(p,"rule",[new Map([["naryPr",p.$subtree("narypr")]])],(function e(){return(null==e.$$s?this:e.$$s).$narypr()}),{$$s:p}),n(p,"rule",[new Map([["subHide",p.$simple("subHide")]])],a(c)),n(p,"rule",[new Map([["supHide",p.$simple("supHide")]])],a(c)),n(p,"rule",[new Map([["degHide",p.$simple("degHide")]])],a(c)),n(p,"rule",[new Map([["ctrlPr",p.$sequence("ctrlpr")]])],(function e(){return(null==e.$$s?this:e.$$s).$ctrlpr()}),{$$s:p}),n(p,"rule",[new Map([["eqArrPr",p.$subtree("eqarrpr")]])],(function e(){return(null==e.$$s?this:e.$$s).$eqarrpr().$flatten().$compact()}),{$$s:p}),n(p,"rule",[new Map([["sequence",p.$subtree("sequence")]])],(function e(){return(null==e.$$s?this:e.$$s).$sequence().$flatten().$compact()}),{$$s:p}),n(p,"rule",[new Map([["limUppPr",p.$subtree("limUppPr")]])],a(c)),n(p,"rule",[new Map([["limLowPr",p.$subtree("limLowpr")]])],a(c)),n(p,"rule",[new Map([["sequence",p.$sequence("sequence")]])],(function e(){return(null==e.$$s?this:e.$$s).$sequence()}),{$$s:p}),n(p,"rule",[new Map([["sSubSupPr",p.$subtree("sSubSuppr")]])],a(c)),n(p,"rule",[new Map([["groupChrPr",p.$subtree("groupchrpr")]])],(function e(){return(null==e.$$s?this:e.$$s).$groupchrpr()}),{$$s:p}),n(p,"rule",[new Map([["borderBoxPr",p.$subtree("borderBoxpr")]])],a(c)),n(p,"rule",[new Map([["lastRenderedPageBreak",p.$sequence("break")]])],a(c)),n(p,"rule",[new Map([["f",p.$subtree("f")]])],(function e(){var t=null==e.$$s?this:e.$$s;return _(_(d("Math"),"Function"),"Frac").$new(d("Utility").$filter_values(t.$f()["$[]"](1)),d("Utility").$filter_values(t.$f()["$[]"](2)))}),{$$s:p}),n(p,"rule",[new Map([["r",p.$subtree("r")]])],(function e(){var t,r,n=c,a=c;return n=(t=(r=(null==e.$$s?this:e.$$s).$r())===c||null==r?c:r.$flatten())===c||null==t?c:t.$compact(),s(n["$empty?"]())?c:s(o(n.$length(),1))&&i(n.$first()["$is_a?"](_(d("Math"),"Core")))?(a=n.$shift()).$new(d("Utility").$filter_values(n),_(d("Utility"),"FONT_STYLES").$key(a).$to_s()):d("Utility").$filter_values(n)}),{$$s:p}),n(p,"rule",[new Map([["m",p.$sequence("m")]])],(function e(){var t=null==e.$$s?this:e.$$s;return _(_(d("Math"),"Function"),"Table").$new(t.$m().$flatten().$compact())}),{$$s:p}),n(p,"rule",[new Map([["t",p.$sequence("t")]])],(function e(){var t,r,n=null==e.$$s?this:e.$$s;return s(n.$t()["$empty?"]())?_(_(d("Math"),"Function"),"Text").$new():s((t=(r=n.$t())===c||null==r?c:r.$compact())===c||null==t?c:t["$empty?"]())?[c]:d("Utility").$mathml_unary_classes(n.$t(),new Map([["omml",!0]]))}),{$$s:p}),n(p,"rule",[new Map([["d",p.$subtree("data")]])],(function e(){var t,r,n,a,i,o,$=c,u=c,p=c,m=c;return $=(null==e.$$s?this:e.$$s).$data().$flatten(),l((t=(r=$)===c||null==r?c:r.$first())===c||null==t?c:t.$class_name(),"symbol")&&(u=$.$shift()),l((n=(a=$)===c||null==a?c:a.$first())===c||null==n?c:n.$class_name(),"symbol")&&(p=$.$shift()),m=$.$compact(),l(m.$length(),1)&&s(m.$first()["$is_a?"](_(_(d("Math"),"Function"),"Table")))?(m.$first()["$open_paren="]((i=u)===c||null==i?c:i.$value()),m.$first()["$close_paren="]((o=p)===c||null==o?c:o.$value()),m):_(_(d("Math"),"Function"),"Fenced").$new(u,m,p)}),{$$s:p}),n(p,"rule",[new Map([["dPr",p.$subtree("dpr")]])],(function e(){var t=null==e.$$s?this:e.$$s;return n(t.$dpr(),"reject!",[],(function(e){return null==e&&(e=c),e["$is_a?"](d("Hash"))})),t.$dpr()}),{$$s:p}),n(p,"rule",[new Map([["mtd",p.$sequence("mtd")]])],(function e(){var t,r,n=c,a=c;return n=(t=(r=(null==e.$$s?this:e.$$s).$mtd())===c||null==r?c:r.$flatten())===c||null==t?c:t.$compact(),s(o(n.$length(),1))&&i(n.$first()["$is_a?"](_(d("Math"),"Core")))?(a=n.$shift()).$new(d("Utility").$filter_values(n),_(d("Utility"),"FONT_STYLES").$rassoc(a).$first().$to_s()):n}),{$$s:p}),n(p,"rule",[new Map([["mr",p.$subtree("mr")]])],(function e(){var t=null==e.$$s?this:e.$$s,r=c;return r=[],n(t.$mr(),"each",[],(function e(t){var n=null==e.$$s?this:e.$$s;return null==t&&(t=c),r["$<<"](_(_(d("Math"),"Function"),"Td").$new(n.$Array(t)))}),{$$s:t}),_(_(d("Math"),"Function"),"Tr").$new(r)}),{$$s:p}),n(p,"rule",[new Map([["rPr",p.$subtree("rpr")]])],(function e(){var t,r,n,a=null==e.$$s?this:e.$$s;return s(a.$rpr()["$is_a?"](d("Array")))?_(d("Utility"),"FONT_STYLES")["$[]"]((t=_(_(d("Omml"),"Parser"),"SUPPORTED_FONTS")["$[]"]((r=(n=a.$rpr())===c||null==n?c:n.$join("-"))===c||null==r?c:r.$to_sym()))===c||null==t?c:t.$to_sym()):c}),{$$s:p}),n(p,"rule",[new Map([["lim",p.$sequence("lim")]])],(function e(){var t=null==e.$$s?this:e.$$s;return s(t.$lim()["$any?"](d("String")))?d("Utility").$text_classes(t.$lim()):d("Utility").$filter_values(t.$lim())}),{$$s:p}),n(p,"rule",[new Map([["acc",p.$subtree("acc")]])],(function e(){var t,r,a=c,i=c;return a=(null==e.$$s?this:e.$$s).$acc().$flatten().$compact(),i=d("Utility").$find_pos_chr(a,"chr"),t=s(i)?i["$[]"]("chr"):_(_(d("Math"),"Function"),"Hat").$new(),r=n(a,"index",[],(function(e){return null==e&&(e=c),e["$[]"]("chr")})),a["$[]="](r,t),d("Utility").$unary_function_classes(a),a.$first()["$attributes="](new Map([["accent",!0]])),a.$first()}),{$$s:p}),n(p,"rule",[new Map([["func",p.$subtree("func")]])],(function e(){var t=null==e.$$s?this:e.$$s;return d("Utility").$filter_values(d("Utility").$populate_function_classes(t.$func()))}),{$$s:p}),n(p,"rule",[new Map([["nary",p.$subtree("nary")]])],(function e(){var t,r=null==e.$$s?this:e.$$s,n=c,a=c;return t=r.$nary().$flatten().$compact(),n=d("Utility").$find_pos_chr(t,"chr"),s(n)&&(a=d("Utility").$mathml_unary_classes(n.$values())),s(a["$is_a?"](_(_(d("Math"),"Function"),"TernaryFunction")))?(a["$parameter_one="](d("Utility").$filter_values(r.$nary()["$[]"](1))),a["$parameter_two="](d("Utility").$filter_values(r.$nary()["$[]"](2))),a["$parameter_three="](d("Utility").$filter_values(r.$nary()["$[]"](3))),a):d("Utility").$nary_fonts(r.$nary())}),{$$s:p}),n(p,"rule",[new Map([["groupChr",p.$subtree("groupchr")]])],(function e(){var t,r,n,a=null==e.$$s?this:e.$$s,i=c;return r=a.$groupchr().$first(),n=d("Utility").$find_pos_chr(r,"pos"),i=d("Utility").$find_pos_chr(r,"chr"),s((t=n)===c||null==t?c:t["$value?"]("top"))?_(_(d("Math"),"Function"),"Overset").$new(_(d("Math"),"Symbol").$new(s(i)?i["$[]"]("chr"):""),d("Utility").$filter_values(a.$groupchr()["$[]"](1))):_(_(d("Math"),"Function"),"Underset").$new(_(d("Math"),"Symbol").$new(s(i)?i["$[]"]("chr"):"⏟"),d("Utility").$filter_values(a.$groupchr()["$[]"](1)))}),{$$s:p}),n(p,"rule",[new Map([["sSubSup",p.$subtree("sSubSup")]])],(function e(){var t=c;return t=(null==e.$$s?this:e.$$s).$sSubSup().$flatten().$compact(),n(t,"each_with_index",[],(function(e,r){var a;return null==e&&(e=c),null==r&&(r=c),s(e["$is_a?"](d("String")))?(a=[r,d("Utility").$mathml_unary_classes([e])],n(t,"[]=",a),a[a.length-1]):c})),s(d("Utility").$valid_class(t["$[]"](0)))?d("Utility").$get_class(t["$[]"](0).$extract_class_from_text()).$new(t["$[]"](1),t["$[]"](2)):_(_(d("Math"),"Function"),"PowerBase").$new(t["$[]"](0),t["$[]"](1),t["$[]"](2))}),{$$s:p}),n(p,"rule",[new Map([["sSup",p.$subtree("ssup")]])],(function e(){var t=c;return t=(null==e.$$s?this:e.$$s).$ssup().$flatten().$compact(),_(_(d("Math"),"Function"),"Power").$new(t["$[]"](0),t["$[]"](1))}),{$$s:p}),n(p,"rule",[new Map([["rad",p.$subtree("rad")]])],(function e(){var t=null==e.$$s?this:e.$$s;return s(t.$rad()["$[]"](1)["$nil?"]())?_(_(d("Math"),"Function"),"Sqrt").$new(d("Utility").$filter_values(t.$rad()["$[]"](2))):_(_(d("Math"),"Function"),"Root").$new(d("Utility").$filter_values(t.$rad()["$[]"](2)),t.$rad()["$[]"](1))}),{$$s:p}),n(p,"rule",[new Map([["sSub",p.$subtree("ssub")]])],(function e(){var t=c;return t=(null==e.$$s?this:e.$$s).$ssub().$flatten().$compact(),_(_(d("Math"),"Function"),"Base").$new(t["$[]"](0),t["$[]"](1))}),{$$s:p}),n(p,"rule",[new Map([["limUpp",p.$subtree("lim")]])],(function e(){var t,r=c;return t=(r=(null==e.$$s?this:e.$$s).$lim().$flatten().$compact())["$[]"](0),_(_(d("Math"),"Function"),"Overset").$new(t,r["$[]"](1))}),{$$s:p}),n(p,"rule",[new Map([["limLow",p.$subtree("lim")]])],(function e(){var t=null==e.$$s?this:e.$$s,r=c,n=c;return r=d("Utility").$filter_values(t.$lim()["$[]"](2)),n=_(_(d("Mathml"),"Constants"),"UNICODE_SYMBOLS").$invert()["$[]"](r.$class_name()),r=s(n)?_(d("Math"),"Symbol").$new(n.$to_s()):r,_(_(d("Math"),"Function"),"Underset").$new(d("Utility").$filter_values(t.$lim()["$[]"](1)),r)}),{$$s:p}),n(p,"rule",[new Map([["borderBox",p.$subtree("box")]])],(function e(){var t=null==e.$$s?this:e.$$s;return _(_(d("Math"),"Function"),"Menclose").$new("longdiv",d("Utility").$filter_values(t.$box()["$[]"](1)))}),{$$s:p}),n(p,"rule",[new Map([["bar",p.$subtree("bar")]])],(function e(){var t,r=c;return r=(null==e.$$s?this:e.$$s).$bar().$flatten().$compact(),t=new Map([["accent",!1]]),_(_(d("Math"),"Function"),"Bar").$new(r.$last(),t)}),{$$s:p}),n(p,"rule",[new Map([["sPre",p.$subtree("spre")]])],(function e(){var t=c;return t=(null==e.$$s?this:e.$$s).$spre().$flatten().$compact(),_(_(d("Math"),"Function"),"Multiscript").$new(t["$[]"](2),t["$[]"](0),t["$[]"](1))}),{$$s:p}),n(p,"rule",[new Map([["eqArr",p.$subtree("eqArr")]])],(function e(){var t=null==e.$$s?this:e.$$s,r=c;return r=[],t.$eqArr().$delete_at(0),n(t.$eqArr(),"each",[],(function e(t){var n=null==e.$$s?this:e.$$s;return null==t&&(t=c),r["$<<"](_(_(d("Math"),"Function"),"Tr").$new([_(_(d("Math"),"Function"),"Td").$new(n.$Array(t))]))}),{$$s:t}),_(_(d("Math"),"Function"),"Table").$new(r)}),{$$s:p}),n(p,"rule",[new Map([["ascii",p.$simple("ascii")],["hAnsi",p.$simple("hansi")]])],a(c)),n(p,"rule",[new Map([["attributes",p.$simple("attributes")],["value",p.$sequence("value")]])],(function e(){var t=null==e.$$s?this:e.$$s;return s(t.$value()["$any?"]())||l(t.$attributes(),"preserve")?s(t.$value()["$any?"]())?t.$value():[" "]:t.$attributes()}),{$$s:p})}(p[0],_(m("Parslet"),"Transform"),p)}(p[0],0,p)}(u[0],u)},Opal.modules["plurimath/omml/parser"]=function(e){var t=e.module,r=e.klass,n=e.const_set,a=e.assign_ivar,s=e.def,i=e.send,o=e.truthy,l=e.eqeq,$=e.not,u=e.hash_rehash,c=e.top,_=[],p=e.nil,m=e.$$$;return e.add_stubs("attr_accessor,freeze,load,xml_engine,text,parse_nodes,nodes,parse,to_json,new,apply,map,is_a?,==,!,empty?,attributes,name,include?,customize_tags,organize_fonts,organize_table_td,each,locate,name=,<<,[],merge!"),c.$require("plurimath/omml/parser.rb/../transform"),function(c,_){var d=[t(c,"Plurimath")].concat(_);return function(t,c,_){var d=[r(t,null,"Omml")].concat(_);return function(t,c,_){var d=r(t,null,"Parser"),f=[d].concat(_),h=e.$r(f);return d.$$prototype.hash=p,d.$attr_accessor("text"),n(f[0],"CUSTOMIZABLE_TAGS",["eqArr","mr","r"].$freeze()),n(f[0],"SUPPORTED_FONTS",new Map([["sans-serif-bi","sans-serif-bold-italic"],["double-struck","double-struck"],["sans-serif-i","sans-serif-italic"],["sans-serif-b","bold-sans-serif"],["sans-serif-p","sans-serif"],["fraktur-p","fraktur"],["fraktur-b","bold-fraktur"],["script-b","bold-script"],["script-p","script"],["monospace","monospace"],["bi","bold-italic"],["p","normal"],["i","italic"],["b","bold"]]).$freeze()),s(d,"$initialize",a("text")),s(d,"$parse",(function(){var e=this,t=p;return t=h("Plurimath").$xml_engine().$load(e.$text()),e.hash=new Map([["sequence",e.$parse_nodes(t.$nodes())]]),t=h("JSON").$parse(e.hash.$to_json(),new Map([["symbolize_names",!0]])),m(h("Math"),"Formula").$new(h("Transform").$new().$apply(t))})),s(d,"$parse_nodes",(function(e){return i(e,"map",[],(function e(t){var r=null==e.$$s?this:e.$$s;return null==t&&(t=p),o(t["$is_a?"](h("String")))?l(t,"")?p:t:$(t.$attributes()["$empty?"]())?u(new Map([[t.$name(),new Map([["attributes",t.$attributes()],["value",r.$parse_nodes(t.$nodes())]])]])):(o(h("CUSTOMIZABLE_TAGS")["$include?"](t.$name()))&&r.$customize_tags(t),u(new Map([[t.$name(),r.$parse_nodes(t.$nodes())]])))}),{$$s:this})})),s(d,"$customize_tags",(function(e){switch(e.$name().valueOf()){case"r":return this.$organize_fonts(e);case"mr":case"eqArr":return this.$organize_table_td(e);default:return p}})),s(d,"$organize_table_td",(function(e){return i(e.$locate("e/*"),"each",[],(function(e){var t;return null==e&&(e=p),l(e.$name(),"r")?(i(e,"name=",t=["mtd"]),t[t.length-1]):p}))})),s(d,"$organize_fonts",(function(e){var t=p;return t=new Map([["val",[]]]),i(e.$locate("rPr/*"),"each",[],(function(e){return null==e&&(e=p),t["$[]"]("val")["$<<"](e.$attributes()["$[]"]("val"))})),e.$attributes()["$merge!"](t)}))}(d[0],0,d)}(d[0],0,d)}(_[0],_)},Opal.modules["plurimath/utility"]=function(e){var t=e.module,r=e.klass,n=e.const_set,a=e.ensure_kwargs,s=e.hash_get,i=e.truthy,o=e.send,l=e.eqeq,$=e.def,u=e.rb_le,c=e.to_a,_=e.rb_plus,p=e.rb_times,m=e.slice,d=e.extract_kwargs,f=e.rb_gt,h=e.annotate_regexp,g=e.eqeqeq,b=e.rb_ge,v=e.rb_minus,y=[],x=e.nil,w=e.$$$;return e.add_stubs("freeze,organize_options,map,to_proc,each,include?,value,is_a?,<<,new,compact,filter_table_data,==,organize_tds,flatten,dup,empty?,nil?,table_separator,<=,length,shift,insert,symbol_value,first,parameter_one,+,strip,reject!,*,with_index,[],to_sym,parameter_two=,each_with_index,[]=,delete_at,next,const_get,capitalize,to_s,methods,value?,class_name,join,split,new_element,xml_engine,ox_element,update_nodes,rpr_element,>,filter_values,scan,match?,any?,string_to_html_entity,get_class,find,slice_when,delete_if,last,class,count,text_classes,encode,decode,index,mathml_unary_classes,Array,join_attr_value,downcase,key?,attr_is_accent,attr_is_function,parameter_one=,attributes=,transform_values,safe_load,===,parameter_two,slice_before,partition,even?,left_right_wrapper=,gsub,extract_class_from_text,extractable?,!,any_value_exist?,unary_function_classes,binary_function_classes,ternary_function_classes,>=,zero?,-,invert,parameter_three,parameter_three=,paren_able?,pop,open_paren=,close_paren=,replace,filter_math_zone_values"),function(y,k){var U=[t(y,"Plurimath")].concat(k);return function(t,y,k){var U=r(t,null,"Utility"),E=[U].concat(k),M=e.$r(E);return n(E[0],"FONT_STYLES",new Map([["double-struck",w(w(w(M("Math"),"Function"),"FontStyle"),"DoubleStruck")],["sans-serif-bold-italic",w(w(w(M("Math"),"Function"),"FontStyle"),"SansSerifBoldItalic")],["sans-serif-italic",w(w(w(M("Math"),"Function"),"FontStyle"),"SansSerifItalic")],["bold-sans-serif",w(w(w(M("Math"),"Function"),"FontStyle"),"BoldSansSerif")],["sans-serif",w(w(w(M("Math"),"Function"),"FontStyle"),"SansSerif")],["bold-fraktur",w(w(w(M("Math"),"Function"),"FontStyle"),"BoldFraktur")],["bold-italic",w(w(w(M("Math"),"Function"),"FontStyle"),"BoldItalic")],["bold-script",w(w(w(M("Math"),"Function"),"FontStyle"),"BoldScript")],["monospace",w(w(w(M("Math"),"Function"),"FontStyle"),"Monospace")],["mathfrak",w(w(w(M("Math"),"Function"),"FontStyle"),"Fraktur")],["mathcal",w(w(w(M("Math"),"Function"),"FontStyle"),"Script")],["fraktur",w(w(w(M("Math"),"Function"),"FontStyle"),"Fraktur")],["mathbb",w(w(w(M("Math"),"Function"),"FontStyle"),"DoubleStruck")],["mathtt",w(w(w(M("Math"),"Function"),"FontStyle"),"Monospace")],["mathsf",w(w(w(M("Math"),"Function"),"FontStyle"),"SansSerif")],["mathrm",w(w(w(M("Math"),"Function"),"FontStyle"),"Normal")],["textrm",w(w(w(M("Math"),"Function"),"FontStyle"),"Normal")],["italic",w(w(w(M("Math"),"Function"),"FontStyle"),"Italic")],["mathbf",w(w(w(M("Math"),"Function"),"FontStyle"),"Bold")],["textbf",w(w(w(M("Math"),"Function"),"FontStyle"),"Bold")],["script",w(w(w(M("Math"),"Function"),"FontStyle"),"Script")],["normal",w(w(w(M("Math"),"Function"),"FontStyle"),"Normal")],["bold",w(w(w(M("Math"),"Function"),"FontStyle"),"Bold")],["bbb",w(w(w(M("Math"),"Function"),"FontStyle"),"DoubleStruck")],["cal",w(w(w(M("Math"),"Function"),"FontStyle"),"Script")],["sf",w(w(w(M("Math"),"Function"),"FontStyle"),"SansSerif")],["tt",w(w(w(M("Math"),"Function"),"FontStyle"),"Monospace")],["fr",w(w(w(M("Math"),"Function"),"FontStyle"),"Fraktur")],["rm",w(w(w(M("Math"),"Function"),"FontStyle"),"Normal")],["cc",w(w(w(M("Math"),"Function"),"FontStyle"),"Script")],["ii",w(w(w(M("Math"),"Function"),"FontStyle"),"Italic")],["bb",w(w(w(M("Math"),"Function"),"FontStyle"),"Bold")],["bf",w(w(w(M("Math"),"Function"),"FontStyle"),"Bold")]]).$freeze()),n(E[0],"ALIGNMENT_LETTERS",new Map([["c","center"],["r","right"],["l","left"]]).$freeze()),n(E[0],"UNARY_CLASSES",["arccos","arcsin","arctan","right","sech","sinh","tanh","cosh","coth","csch","left","max","min","sec","sin","deg","det","dim","exp","gcd","glb","lub","tan","cos","cot","csc","ln","lg"].$freeze()),n(E[0],"MUNDER_CLASSES",["ubrace","obrace","right","max","min"].$freeze()),n(E[0],"PARENTHESIS",new Map([["&#x2329;","&#x232a;"],["&#x230a;","&#x230b;"],["&#x2308;","&#x2309;"],["&#x2016;","&#x2016;"],["&#x7b;","&#x7d;"],["&#x5b;","&#x5d;"],["&#x7c;","&#x7c;"],["(",")"],["{","}"],["[","]"]]).$freeze()),n(E[0],"TEXT_CLASSES",["unicode","symbol","number","text"].$freeze()),function(t,r){var n=[t].concat(r),y=e.$r(n);return $(t,"$organize_table",(function(e,t){var r,n,$,u=this,c=x,_=x,p=x,m=x,d=x;return t=a(t),null==(r=s(t,"column_align"))&&(r=x),null==(n=s(t,"options"))&&(n=x),c=[],_=[],p=[],m=["&","\\\\"].$freeze(),i(n)&&u.$organize_options(e,r),d=($=r)===x||null==$?x:o($,"map",[],"value".$to_proc()),o(e,"each",[],(function e(t){var r=null==e.$$s?this:e.$$s;return null==t&&(t=x),i(t["$is_a?"](w(y("Math"),"Symbol")))&&i(m["$include?"](t.$value()))?(p["$<<"](w(w(y("Math"),"Function"),"Td").$new(r.$filter_table_data(_).$compact())),_=[],l(t.$value(),"\\\\")&&(r.$organize_tds(p.$flatten(),d.$dup(),n),c["$<<"](w(w(y("Math"),"Function"),"Tr").$new(p)),p=[]),x):_["$<<"](t)}),{$$s:u}),i(_)&&p["$<<"](w(w(y("Math"),"Function"),"Td").$new(_.$compact())),i(p["$nil?"]())||i(p["$empty?"]())||(u.$organize_tds(p.$flatten(),d.$dup(),n),c["$<<"](w(w(y("Math"),"Function"),"Tr").$new(p))),i(r["$nil?"]())||i(r["$empty?"]())||u.$table_separator(d,c,new Map([["symbol","|"]])),c}),-2),$(t,"$organize_options",(function(e,t){var r,n;return i(u(t.$length(),1))?t:(n=[(r=t,r===x||null==r?x:r.$shift())],o(e,"insert",[0].concat(c(t))),n)})),$(t,"$table_options",(function(e){var t,r=x,n=x;return r="",o(e,"map",[],(function e(t){var n,a,s,o;return null==t&&(t=x),r=i((null==e.$$s?this:e.$$s).$symbol_value((n=(a=(s=(o=t)===x||null==o?x:o.$parameter_one())===x||null==s?x:s.$first())===x||null==a?x:a.$parameter_one())===x||null==n?x:n.$first(),"&#x23af;"))?_(r,"solid "):_(r,"none ")}),{$$s:this}),i(r["$include?"]("solid"))&&(n=new Map([["rowline",r.$strip()]])),i(t=n)?t:new Map})),$(t,"$organize_tds",(function(e,t,r){return i(t["$nil?"]())||i(t["$empty?"]())?e:(o(t,"reject!",[],(function(e){return null==e&&(e=x),e["$=="]("|")})),i(r)&&(t=p(t,e.$length())),o(e.$map(),"with_index",[],(function(e,r){var n,a,s;return null==e&&(e=x),null==r&&(r=x),s=y("ALIGNMENT_LETTERS")["$[]"]((n=t["$[]"](r))===x||null==n?x:n.$to_sym()),i(s)?(a=[new Map([["columnalign",s]])],o(e,"parameter_two=",a),a[a.length-1]):x})))})),$(t,"$filter_table_data",(function(e){return o(e,"each_with_index",[],(function t(r,n){var a;return null==r&&(r=x),null==n&&(n=x),i((null==t.$$s?this:t.$$s).$symbol_value(r,"-"))?(a=[n,w(y("Math"),"Formula").$new([r,e.$delete_at(n.$next())])],o(e,"[]=",a),a[a.length-1]):x}),{$$s:this}),e})),$(t,"$get_table_class",(function(e){return y("Object").$const_get("Plurimath::Math::Function::Table::"+e.$to_s().$capitalize())})),$(t,"$sub_sup_method?",(function(e){return i(e.$methods()["$include?"]("class_name"))?w(w(y("Html"),"Constants"),"SUB_SUP_CLASSES")["$value?"](e.$class_name().$to_sym()):x})),$(t,"$get_class",(function(e){return e=o(e.$to_s().$split("_"),"map",[],"capitalize".$to_proc()).$join(),y("Object").$const_get("Plurimath::Math::Function::"+e)})),$(t,"$ox_element",(function(e,t){var r,n,l,$;return t=a(t),null==(r=s(t,"attributes"))&&(r=[]),null==(n=s(t,"namespace"))&&(n=""),i(n["$empty?"]())||(n+=":"),$=y("Plurimath").$xml_engine().$new_element(""+n+e),(l=r)===x||null==l||o(l,"each",[],(function(e,t){var r;return null==e&&(e=x),null==t&&(t=x),o($,"[]=",r=[e,t]),r[r.length-1]})),$}),-2),$(t,"$rpr_element",(function(e){var t,r,n=this,o=x;return e=a(e),null==(t=s(e,"wi_tag"))&&(t=!1),o=n.$ox_element("rPr",new Map([["namespace","w"]])),r=new Map([["w:ascii","Cambria Math"],["w:hAnsi","Cambria Math"]]),o["$<<"](n.$ox_element("rFonts",new Map([["namespace","w"],["attributes",r]]))),i(t)&&o["$<<"](n.$ox_element("i",new Map([["namespace","w"]]))),o}),-1),$(t,"$update_nodes",(function(e,t){var r;return(r=t)===x||null==r||o(r,"each",[],(function t(r){var n=null==t.$$s?this:t.$$s;return null==r&&(r=x),i(r["$is_a?"](y("Array")))?n.$update_nodes(e,r):i(r["$nil?"]())?x:e["$<<"](r)}),{$$s:this}),e})),$(t,"$pr_element",(function(e,t,r){var n,i,o,l,$;return n=m(arguments,1),i=d(n),i=a(i),n.length>0&&(o=n.shift()),null==o&&(o=!1),null==(l=s(i,"namespace"))&&(l=""),$=e+"Pr",this.$ox_element($,new Map([["namespace",l]]))["$<<"](this.$rpr_element(new Map([["wi_tag",o]])))}),-2),$(t,"$filter_values",(function(e){return i(e["$is_a?"](y("Array")))?(e=e.$flatten().$compact(),i(f(e.$length(),1))?w(y("Math"),"Formula").$new(e):e.$first()):e})),$(t,"$text_classes",(function(e){var t,r,n,a,s;return i((t=e)===x||null==t?x:t["$empty?"]())?x:(i(e["$is_a?"](y("String")))||(e=this.$filter_values(e)),l((r=(n=e)===x||null==n?x:n.$scan(h(/[\d]/u,"[[:digit:]]","")))===x||null==r?x:r.$length(),(a=e)===x||null==a?x:a.$length())?w(y("Math"),"Number").$new(e):i((s=e)===x||null==s?x:s["$match?"](h(/[a-zA-Z]/u,null,"")))?w(w(y("Math"),"Function"),"Text").$new(e):w(y("Math"),"Symbol").$new(e))})),$(t,"$nary_fonts",(function(e){var t,r,n=this,a=x;return a=e.$first().$flatten().$compact(),t=i(a["$any?"]("undOvr"))?"undOvr":"subSup",r=i(a["$any?"](y("Hash")))?a.$first()["$[]"]("chr"):"∫",w(w(y("Math"),"Function"),"Nary").$new(w(y("Math"),"Symbol").$new(n.$string_to_html_entity(r)),n.$filter_values(e["$[]"](1)),n.$filter_values(e["$[]"](2)),n.$filter_values(e["$[]"](3)),new Map([["type",t]]))})),$(t,"$find_class_name",(function(e){var t=x;return i(e["$is_a?"](w(y("Math"),"Formula")))&&(t=e.$value().$first().$parameter_one()),i(t["$nil?"]())?x:this.$get_class(t)})),$(t,"$find_pos_chr",(function(e,t){return o(e,"find",[],(function(e){var r;return null==e&&(e=x),i(r=e["$is_a?"](y("Hash")))?e["$[]"](t):r}))})),$(t,"$td_values",(function(e,t){var r,n=this,a=x;return r=o(e,"slice_when",[],(function e(r,n){return null==r&&(r=x),null==n&&(n=x),(null==e.$$s?this:e.$$s).$symbol_value(r,t)}),{$$s:n}),a=o(r,"map",[],(function e(r){var n=null==e.$$s?this:e.$$s;return null==r&&(r=x),w(w(y("Math"),"Function"),"Td").$new(o(r,"delete_if",[],(function e(r){return null==r&&(r=x),(null==e.$$s?this:e.$$s).$symbol_value(r,t)}),{$$s:n}).$compact())}),{$$s:n}),i(n.$symbol_value(e.$last(),t))&&a["$<<"](w(w(y("Math"),"Function"),"Td").$new([])),a})),$(t,"$symbol_value",(function(e,t){var r;return i(r=e["$is_a?"](w(y("Math"),"Symbol")))?e.$value()["$include?"](t):r})),$(t,"$td_value",(function(e){var t=x;return t=[y("String"),w(y("Parslet"),"Slice")],i(t["$include?"](e.$class()))&&i(e.$to_s()["$empty?"]())?w(w(y("Math"),"Function"),"Text").$new(x):e})),$(t,"$mathml_unary_classes",(function(e,t){var r,n,o,$=this,u=x,c=x,_=x,p=x,m=x;return t=a(t),null==(r=s(t,"omml"))&&(r=!1),i(e["$empty?"]())?[]:(u=e.$compact(),c=l(u.$count(),1)?u.$first():u.$join(),i(c["$is_a?"](y("String")))?(_=w(w(y("Mathml"),"Constants"),"CLASSES"),p=$.$string_to_html_entity(c),m=w(w(y("Mathml"),"Constants"),"UNICODE_SYMBOLS")["$[]"](p.$strip().$to_sym()),i(_["$include?"]((n=m)===x||null==n?x:n.$strip()))?$.$get_class(m.$strip()).$new():i(_["$any?"]((o=c)===x||null==o?x:o.$strip()))?$.$get_class(c.$strip()).$new():i(r)?$.$text_classes(c):w(y("Math"),"Symbol").$new(p)):c)}),-2),$(t,"$string_to_html_entity",(function(e){return y("HTMLEntities").$new().$encode(e,"hexadecimal")})),$(t,"$html_entity_to_unicode",(function(e){return y("HTMLEntities").$new().$decode(e)})),$(t,"$table_separator",(function(t,r,n){var i,$,u;return n=a(n),null==(i=s(n,"symbol"))&&(i="solid"),u=w(w(y("Math"),"Function"),"Td").$new([w(y("Math"),"Symbol").$new("|")]),($=t)===x||null==$||o($,"each_with_index",[],(function(t,n){return null==t&&(t=x),null==n&&(n=x),l(t,i)?o(r,"map",[],(function(t){null==t&&(t=x),l(i,"solid")&&t.$parameter_one().$insert(_(n,1),u),l(i,"|")&&t.$parameter_one().$insert(n,u);try{t.$parameter_one()["$[]="](t.$parameter_one().$index(x),w(w(y("Math"),"Function"),"Td").$new([]))}catch(t){if(!e.rescue(t,[y("StandardError")]))throw t;e.pop_exception(t)}return t})):x})),r}),-3),$(t,"$join_attr_value",(function(e,t){var r=this,n=x,a=x;return i(t["$any?"](y("String")))?(n=r.$mathml_unary_classes(t),a=r.$Array(n),i(e["$nil?"]())?a:r.$join_attr_value(e,a)):i(e["$nil?"]())?t:i(e["$is_a?"](y("String")))&&i(["solid","none"]["$include?"](e.$split().$first().$downcase()))?r.$table_separator(e.$split(),t):i(e["$is_a?"](y("Hash")))&&(i(e["$key?"]("accent"))||i(e["$key?"]("accentunder")))?r.$attr_is_accent(e,t):i(e["$is_a?"](w(y("Math"),"Core")))?r.$attr_is_function(e,t):x})),$(t,"$attr_is_accent",(function(e,t){return i(t.$last()["$is_a?"](w(w(y("Math"),"Function"),"UnaryFunction")))&&(i(f(t.$length(),1))&&t.$last()["$parameter_one="](t.$shift()),t.$last()["$attributes="](o(e,"transform_values",[],(function(e){return null==e&&(e=x),y("YAML").$safe_load(e)})))),t})),$(t,"$attr_is_function",(function(e,t){var r,n=this,a=x;return g(w(w(y("Math"),"Function"),"Menclose"),r=e)?(e["$parameter_two="](n.$filter_values(t)),e):g(w(w(y("Math"),"Function"),"Fenced"),r)?(e["$parameter_two="](t.$compact()),e):g(w(w(y("Math"),"Function"),"FontStyle"),r)?(e["$parameter_one="](n.$filter_values(t)),e):g(w(w(y("Math"),"Function"),"Color"),r)?(a=n.$filter_values(t),i(e.$parameter_two())?e.$parameter_two()["$parameter_one="](a):e["$parameter_two="](a),e):x})),$(t,"$multiscript",(function(e){return o(e.$slice_before("mprescripts"),"map",[],(function e(t){var r,n,a=null==e.$$s?this:e.$$s,s=x,l=x;return null==t&&(t=x),s=t.$shift(),l=o(t.$partition(),"with_index",[],(function(e,t){return null==e&&(e=x),null==t&&(t=x),t["$even?"]()})),r=i(l["$[]"](0)["$empty?"]())?x:a.$filter_values(l["$[]"](0)),n=i(l["$[]"](1)["$empty?"]())?x:a.$filter_values(l["$[]"](1)),i(s.$to_s()["$include?"]("mprescripts"))?[r,n]:w(w(y("Math"),"Function"),"PowerBase").$new(s,r,n)}),{$$s:this})})),$(t,"$unfenced_value",(function(e){var t;return g(w(w(y("Math"),"Function"),"Fenced"),t=e)?this.$filter_values(e.$parameter_two()):g(y("Array"),t)?this.$filter_values(e):e})),$(t,"$frac_values",(function(e){var t;return g(w(y("Math"),"Formula"),t=e)?o(e.$value(),"any?",[],(function e(t){return null==t&&(t=x),(null==e.$$s?this:e.$$s).$symbol_value(t,",")}),{$$s:this}):g(y("Array"),t)?o(e,"any?",[],(function e(t){return null==t&&(t=x),(null==e.$$s?this:e.$$s).$symbol_value(t,",")}),{$$s:this}):x})),$(t,"$table_td",(function(e){var t;return t=g(w(w(y("Math"),"Function"),"Td"),e)?e:w(w(y("Math"),"Function"),"Td").$new([e]),this.$Array(t)})),$(t,"$symbol_object",(function(e){var t;return e=g("",t=e)?"{:":g("",t)?":}":g("ᑕ",t)?"&#x2329;":g("ᑐ",t)?"&#x232a;":e,w(y("Math"),"Symbol").$new(e)})),$(t,"$validate_left_right",(function(e){return null==e&&(e=[]),o(e,"each",[],(function(e){var t;return null==e&&(e=x),i(e["$is_a?"](w(y("Math"),"Formula")))&&i(e.$value().$first()["$is_a?"](w(w(y("Math"),"Function"),"Left")))?(o(e,"left_right_wrapper=",t=[!0]),t[t.length-1]):x}))}),-1),$(t,"$left_right_objects",(function(e,t){return e=i(e.$to_s()["$match?"](h(/\\\{|\\\}/u,null,"")))?e.$to_s().$gsub(/\\/,""):w(w(y("Latex"),"Constants"),"LEFT_RIGHT_PARENTHESIS")["$[]"](e.$to_sym()),this.$get_class(t).$new(e)})),$(t,"$valid_class",(function(e){var t,r,n=x;return n=e.$extract_class_from_text(),i(t=i(r=e["$extractable?"]())?w(w(y("Asciimath"),"Constants"),"SUB_SUP_CLASSES")["$include?"](n):r)?t:w(w(y("Latex"),"Constants"),"SYMBOLS")["$[]"](n.$to_sym())["$=="]("power_base")})),$(t,"$mrow_left_right",(function(e){var t,r,n=x,a=x;return null==e&&(e=[]),n=e.$first(),(i(t=i(a=i(r=n["$is_a?"](w(w(y("Math"),"Function"),"TernaryFunction")))?n["$any_value_exist?"]():r)?u(e.$length(),2):a)?t:i(a=n["$is_a?"](w(w(y("Math"),"Function"),"UnaryFunction")))?e.$length()["$=="](1):a)["$!"]()}),-1),$(t,"$populate_function_classes",(function(e){var t,r=this;return null==e&&(e=[]),t=e.$flatten().$compact(),r.$unary_function_classes(t),r.$binary_function_classes(t),r.$ternary_function_classes(t),t}),-1),$(t,"$binary_function_classes",(function(e,t){var r,n;return t=a(t),null==(r=s(t,"under"))&&(r=!1),n=w(w(y("Math"),"Function"),"BinaryFunction"),o(e,"each_with_index",[],(function t(a,s){var l,$=null==t.$$s?this:t.$$s;return null==a&&(a=x),null==s&&(s=x),i(a["$is_a?"](y("String")))&&e["$[]="](s,$.$mathml_unary_classes([a])),a=e["$[]"](s),i(a["$is_a?"](n))?i(a["$is_a?"](w(w(y("Math"),"Function"),"Mod")))?i(b(e.$length(),1))?(i(s["$zero?"]())||a["$parameter_one="](e.$delete_at(v(s,1))),l=[e.$delete_at(s)],o(a,"parameter_two=",l),l[l.length-1]):x:i(w(w(y("Mathml"),"Constants"),"UNICODE_SYMBOLS").$invert()["$[]"](a.$class_name()))&&i(f(e.$length(),1))?i(a.$parameter_one())||i(f(e.$length(),2))?x:i(r)&&i(u(s,1))?(l=[e.$delete_at(v(s,1))],o(a,"parameter_one=",l),l[l.length-1]):(l=[e.$delete_at(_(s,1))],o(a,"parameter_one=",l),l[l.length-1]):x:x}),{$$s:this})}),-2),$(t,"$unary_function_classes",(function(e){var t;return t=w(w(y("Math"),"Function"),"UnaryFunction"),i(e["$any?"](y("String")))||i(e["$any?"](t))?o(e,"each_with_index",[],(function r(n,a){var s,l=null==r.$$s?this:r.$$s;return null==n&&(n=x),null==a&&(a=x),i(n["$is_a?"](y("String")))&&e["$[]="](a,l.$mathml_unary_classes([n])),i(n["$is_a?"](y("String")))&&(n=e["$[]"](a)),i(n["$is_a?"](t))?i(n["$is_a?"](w(w(y("Math"),"Function"),"Text")))||i(n.$parameter_one())||i(e["$[]"](_(a,1))["$nil?"]())?x:i(a["$zero?"]())?(s=[e.$delete_at(_(a,1))],o(n,"parameter_one=",s),s[s.length-1]):x:x}),{$$s:this}):x})),$(t,"$ternary_function_classes",(function(e){var t;return t=w(w(y("Math"),"Function"),"TernaryFunction"),i(e["$any?"](t))&&i(f(e.$length(),1))?o(e,"each_with_index",[],(function r(n,a){var s,l=null==r.$$s?this:r.$$s;return null==n&&(n=x),null==a&&(a=x),i(n["$is_a?"](t))?i([w(w(y("Math"),"Function"),"Fenced"),w(w(y("Math"),"Function"),"Multiscript")]["$include?"](n.$class()))?x:i(n.$parameter_one())||i(n.$parameter_two())?i(n.$parameter_three())?x:(s=[l.$filter_values(e.$delete_at(_(a,1)))],o(n,"parameter_three=",s),s[s.length-1]):x:x}),{$$s:this}):x})),$(t,"$paren_able?",(function(e,t){return null==e&&(e=[]),null==t&&(t=[]),o(e,"any?",[],(function e(r,n){var a,s=null==e.$$s?this:e.$$s;return null==r&&(r=x),null==n&&(n=x),i(a=s.$symbol_value(t.$first(),r.$to_s()))?s.$symbol_value(t.$last(),n.$to_s()):a}),{$$s:this})}),-1),$(t,"$fenceable_classes",(function(e){var t,r=x,n=x,a=x;return null==e&&(e=[]),!!i(f(e.$length(),1))&&(i(this["$paren_able?"](y("PARENTHESIS"),e))?(r=e.$shift(),n=e.$pop(),l(e.$length(),1)&&i(e.$first()["$is_a?"](w(w(y("Math"),"Function"),"Table")))?((a=e.$first())["$open_paren="](r.$value()),t=[n.$value()],o(a,"close_paren=",t),t[t.length-1]):e.$replace([w(w(y("Math"),"Function"),"Fenced").$new(r,e.$dup(),n)])):x)}),-1),$(t,"$validate_math_zone",(function(e){return!!i(e)&&(i(e["$is_a?"](w(y("Math"),"Formula")))?o(this.$filter_math_zone_values(e.$value()),"find",[],(function(e){return null==e&&(e=x),e["$is_a?"](w(w(y("Math"),"Function"),"Text"))["$!"]()})):y("TEXT_CLASSES")["$include?"](e.$class_name())["$!"]())})),$(t,"$filter_math_zone_values",(function(e){var t,r,n=x,a=x;return i((t=e)===x||null==t?x:t["$empty?"]())?[]:(n=[],a=[],r=x,o(e,"each_with_index",[],(function(e,t){var s=x;return null==e&&(e=x),null==t&&(t=x),s=e.$dup(),l(t,r)?x:i(y("TEXT_CLASSES")["$include?"](s.$class_name()))?a["$<<"](s.$value()):(i(a["$any?"]())&&n["$<<"](w(w(y("Math"),"Function"),"Text").$new(a.$join(" "))),a=[],n["$<<"](s))})),i(a["$any?"]())&&n["$<<"](w(w(y("Math"),"Function"),"Text").$new(a.$join(" "))),n)}))}(e.get_singleton_class(U),E)}(U[0],0,U)}(y[0],y)},Opal.modules.native=function(e){var t=e.hash_put,r=e.module,n=e.defs,a=e.slice,s=e.truthy,i=e.send,o=e.Kernel,l=e.extract_kwargs,$=e.ensure_kwargs,u=e.hash_get,c=e.range,_=e.to_a,p=e.def,m=e.return_ivar,d=e.alias,f=e.klass,h=e.rb_minus,g=e.return_val,b=e.send2,v=e.find_super,y=e.eqeqeq,x=e.rb_ge,w=e.return_self,k=e.gvars,U=e.top,E=[],M=e.$r(E),q=e.nil,S=e.$$$;return e.add_stubs("try_convert,native?,respond_to?,to_n,raise,inspect,Native,proc,map!,end_with?,define_method,[],convert,call,to_proc,new,each,native_reader,native_writer,extend,warn,include,is_a?,map,Array,to_a,_Array,method_missing,bind,instance_method,[]=,slice,-,length,has_key?,enum_for,===,>=,<<,each_pair,method_defined?,initialize,_initialize,name,native_module"),function(t,d){var f=r(t,"Native"),h=[f].concat(d),g=e.$r(h);n(f,"$is_a?",(function(e,t){try{return e instanceof this.$try_convert(t)}catch(e){return!1}})),n(f,"$try_convert",(function(e,t){return null==t&&(t=q),this["$native?"](e)?e:e["$respond_to?"]("to_n")?e.$to_n():t}),-2),n(f,"$convert",(function(e){return this["$native?"](e)?e:e["$respond_to?"]("to_n")?e.$to_n():void this.$raise(g("ArgumentError"),e.$inspect()+" isn't native")})),n(f,"$call",(function e(t,r,n){var s,i=e.$$p||q,o=this;e.$$p=null,s=a(arguments,2);var l=t[r];if(l instanceof Function){for(var $=new Array(s.length),u=0,c=s.length;u<c;u++){var _=s[u],p=o.$try_convert(_);$[u]=p===q?_:p}return i!==q&&$.push(i),o.$Native(l.apply(t,$))}return o.$Native(l)}),-3),n(f,"$proc",(function t(){var r=t.$$p||q;return t.$$p=null,s(r)||this.$raise(g("LocalJumpError"),"no block given"),i(o,"proc",[],(function t(n){var s,o,l,$=null==t.$$s?this:t.$$s;if(s=a(arguments),i(o=s,"map!",[],(function e(t){return null==t&&(t=q),(null==e.$$s?this:e.$$s).$Native(t)}),{$$s:$}),l=$.$Native(this),this===e.global)return r.apply($,o);var u=r.$$s;r.$$s=null;try{return r.apply(l,o)}finally{r.$$s=u}}),{$$arity:-1,$$s:this})})),function(t,n){var o=r(t,"Helpers"),m=[o].concat(n),d=e.$r(m);p(o,"$alias_native",(function e(t,r,n){var o,p,m,f,h=this;return e.$$p=null,o=a(arguments,1),p=l(o),p=$(p),o.length>0&&(m=o.shift()),null==m&&(m=t),null==(f=u(p,"as"))&&(f=q),s(m["$end_with?"]("="))?i(h,"define_method",[t],(function e(t){var r=null==e.$$s?this:e.$$s;return null==r.native&&(r.native=q),null==t&&(t=q),r.native[m["$[]"](c(0,-2,!1))]=d("Native").$convert(t),t}),{$$s:h}):s(f)?i(h,"define_method",[t],(function e(t){var r,n=e.$$p||q,o=null==e.$$s?this:e.$$s,l=q;return null==o.native&&(o.native=q),e.$$p=null,r=a(arguments),l=i(d("Native"),"call",[o.native,m].concat(_(r)),n.$to_proc()),s(l)?f.$new(l.$to_n()):q}),{$$arity:-1,$$s:h}):i(h,"define_method",[t],(function e(t){var r,n=e.$$p||q,s=null==e.$$s?this:e.$$s;return null==s.native&&(s.native=q),e.$$p=null,r=a(arguments),i(d("Native"),"call",[s.native,m].concat(_(r)),n.$to_proc())}),{$$arity:-1,$$s:h})}),-2),p(o,"$native_reader",(function(e){var t;return t=a(arguments),i(t,"each",[],(function e(t){var r=null==e.$$s?this:e.$$s;return null==t&&(t=q),i(r,"define_method",[t],(function e(){var r=null==e.$$s?this:e.$$s;return null==r.native&&(r.native=q),r.$Native(r.native[t])}),{$$s:r})}),{$$s:this})}),-1),p(o,"$native_writer",(function(e){var t;return t=a(arguments),i(t,"each",[],(function e(t){var r=null==e.$$s?this:e.$$s;return null==t&&(t=q),i(r,"define_method",[t+"="],(function e(r){var n=null==e.$$s?this:e.$$s;return null==n.native&&(n.native=q),null==r&&(r=q),n.$Native(n.native[t]=r)}),{$$s:r})}),{$$s:this})}),-1),p(o,"$native_accessor",(function(e){var t,r;return t=a(arguments),i(this,"native_reader",_(r=t)),i(this,"native_writer",_(r))}),-1)}(h[0],h),function(t,a){var i=r(t,"Wrapper"),l=[i].concat(a),$=e.$r(l);p(i,"$initialize",(function(e){return s(o["$native?"](e))||o.$raise($("ArgumentError"),e.$inspect()+" isn't native"),this.native=e})),p(i,"$to_n",m("native")),n(i,"$included",(function(e){return e.$extend($("Helpers"))}))}(h[0],h),n(f,"$included",(function(e){return this.$warn("Including ::Native is deprecated. Please include Native::Wrapper instead."),e.$include(g("Wrapper"))}))}(E[0],E),function(t,n){var o=r(t,"Kernel"),l=[o].concat(n),$=e.$r(l);p(o,"$native?",(function(e){return null==e||!e.$$class})),p(o,"$Native",(function e(t){var r=this;return e.$$p=null,s(null==t)?q:s(r["$native?"](t))?S($("Native"),"Object").$new(t):s(t["$is_a?"]($("Array")))?i(t,"map",[],(function e(t){return null==t&&(t=q),(null==e.$$s?this:e.$$s).$Native(t)}),{$$s:r}):s(t["$is_a?"]($("Proc")))?i(r,"proc",[],(function e(r){var n,s=e.$$p||q,o=null==e.$$s?this:e.$$s;return e.$$p=null,n=a(arguments),o.$Native(i(t,"call",_(n),s.$to_proc()))}),{$$arity:-1,$$s:r}):t})),d(o,"_Array","Array"),p(o,"$Array",(function e(t,r){var n,o=e.$$p||q;return e.$$p=null,n=a(arguments,1),s(this["$native?"](t))?i(S($("Native"),"Array"),"new",[t].concat(_(n)),o.$to_proc()).$to_a():this.$_Array(t)}),-2)}(E[0],E),function(t,r){var n=f(t,r,"Object");n.$$prototype.native=q,n.$include(S(S("Native"),"Wrapper")),p(n,"$==",(function(e){return this.native===S("Native").$try_convert(e)})),p(n,"$has_key?",(function(t){return e.hasOwnProperty.call(this.native,t)})),p(n,"$each",(function t(r){var n,s=t.$$p||q,o=this;if(t.$$p=null,n=a(arguments),s!==q){for(var l in o.native)e.yieldX(s,[l,o.native[l]]);return o}return i(o,"method_missing",["each"].concat(_(n)))}),-1),p(n,"$[]",(function(e){var t=this.native[e];return t instanceof Function?t:S("Native").$call(this.native,e)})),p(n,"$[]=",(function(e,t){var r;return r=S("Native").$try_convert(t),s(r===q)?this.native[e]=t:this.native[e]=r})),p(n,"$merge!",(function(e){for(var t in e=S("Native").$convert(e))this.native[t]=e[t];return this})),p(n,"$respond_to?",(function(e,t){return null==t&&(t=!1),o.$instance_method("respond_to?").$bind(this).$call(e,t)}),-2),p(n,"$respond_to_missing?",(function(t,r){return null==r&&(r=!1),e.hasOwnProperty.call(this.native,t)}),-2),p(n,"$method_missing",(function e(t,r){var n,s,o=e.$$p||q;return e.$$p=null,n=a(arguments,1),"="===t.charAt(t.length-1)?(s=[t.$slice(0,h(t.$length(),1)),n["$[]"](0)],i(this,"[]=",s),s[s.length-1]):i(S("Native"),"call",[this.native,t].concat(_(n)),o.$to_proc())}),-2),p(n,"$nil?",g(!1)),p(n,"$is_a?",(function(t){return e.is_a(this,t)})),p(n,"$instance_of?",(function(e){return this.$$class===e})),p(n,"$class",(function(){return this.$$class})),p(n,"$to_a",(function e(t){var r=e.$$p||q;return e.$$p=null,null==t&&(t=new Map),i(S(S("Native"),"Array"),"new",[this.native,t],r.$to_proc()).$to_a()}),-1),p(n,"$inspect",(function(){return"#<Native:"+String(this.native)+">"})),d(n,"include?","has_key?"),d(n,"key?","has_key?"),d(n,"kind_of?","is_a?"),d(n,"member?","has_key?")}(M("Native"),M("BasicObject")),function(t,r,n){var a=f(t,null,"Array"),i=[a].concat(n),o=e.$r(i),l=a.$$prototype;l.named=l.native=l.get=l.block=l.set=l.length=q,a.$include(S(o("Native"),"Wrapper")),a.$include(o("Enumerable")),p(a,"$initialize",(function e(t,r){var n=e.$$p||q,a=this,i=q;return e.$$p=null,null==r&&(r=new Map),b(a,v(a,"initialize",e,!1,!0),"initialize",[t],null),a.get=s(i=r["$[]"]("get"))?i:r["$[]"]("access"),a.named=r["$[]"]("named"),a.set=s(i=r["$[]"]("set"))?i:r["$[]"]("access"),a.length=s(i=r["$[]"]("length"))?i:"length",a.block=n,s(null==a.$length())?a.$raise(o("ArgumentError"),"no length found on the array-like object"):q}),-2),p(a,"$each",(function t(){var r=t.$$p||q,n=this;if(t.$$p=null,!s(r))return n.$enum_for("each");for(var a=0,i=n.$length();a<i;a++)e.yield1(r,n["$[]"](a));return n})),p(a,"$[]",(function(e){var t,r,n=this;return t=y(o("String"),r=e)||y(o("Symbol"),r)?s(n.named)?n.native[n.named](e):n.native[e]:y(o("Integer"),r)?s(n.get)?n.native[n.get](e):n.native[e]:q,s(t)?s(n.block)?n.block.$call(t):n.$Native(t):q})),p(a,"$[]=",(function(e,t){var r=this;return s(r.set)?r.native[r.set](e,o("Native").$convert(t)):r.native[e]=o("Native").$convert(t)})),p(a,"$last",(function(e){var t=this,r=q,n=q;if(null==e&&(e=q),s(e)){for(r=h(t.$length(),1),n=[];s(x(r,0));)n["$<<"](t["$[]"](r)),r=h(r,1);return n}return t["$[]"](h(t.$length(),1))}),-1),p(a,"$length",(function(){return this.native[this.length]})),p(a,"$inspect",(function(){return this.$to_a().$inspect()})),d(a,"to_ary","to_a")}(M("Native"),0,E),function(e,t){var r=f(e,null,"Numeric");p(r,"$to_n",(function(){return this.valueOf()}))}(E[0]),function(e,t){var r=f(e,null,"Proc");p(r,"$to_n",w)}(E[0]),function(e,t){var r=f(e,null,"String");p(r,"$to_n",(function(){return this.valueOf()}))}(E[0]),function(e,t){var r=f(e,null,"Regexp");p(r,"$to_n",(function(){return this.valueOf()}))}(E[0]),function(e,t){var r=f(e,null,"MatchData");p(r,"$to_n",m("matches"))}(E[0]),function(t,r,n){var a=f(t,null,"Struct"),s=[a].concat(n),o=e.$r(s);p(a,"$to_n",(function(){var e=q;return e={},i(this,"each_pair",[],(function(t,r){return null==t&&(t=q),null==r&&(r=q),e[t]=o("Native").$try_convert(r,r)})),e}))}(E[0],0,E),function(t,r,n){var a=f(t,null,"Array"),s=[a].concat(n),i=e.$r(s);p(a,"$to_n",(function(){for(var e=[],t=0,r=this.length;t<r;t++){var n=this[t];e.push(i("Native").$try_convert(n,n))}return e}))}(E[0],0,E),function(e,t){var r=f(e,null,"Boolean");p(r,"$to_n",(function(){return this.valueOf()}))}(E[0]),function(e,t){var r=f(e,null,"Time");p(r,"$to_n",w)}(E[0]),function(e,t){var r=f(e,null,"NilClass");p(r,"$to_n",(function(){return null}))}(E[0]),s(M("Hash")["$method_defined?"]("_initialize"))||function(r,n,a){var s=f(r,null,"Hash"),o=[s].concat(a),l=e.$r(o);function $(e,r,n){n&&(void 0===n.constructor||n.constructor===Object||n instanceof Map)?t(e,r,l("Hash").$new(n)):n&&n.$$is_array?(n=n.map((function(e){return e&&(void 0===e.constructor||e.constructor===Object||n instanceof Map)?l("Hash").$new(e):s.$Native(e)})),t(e,r,n)):t(e,r,s.$Native(n))}d(s,"_initialize","initialize"),p(s,"$initialize",(function t(r){var n=t.$$p||q,a=this;if(t.$$p=null,null!=r){if(void 0===r.constructor||r.constructor===Object){var s,o;for(s in r)o=r[s],$(a,s,o);return a}r instanceof Map&&e.hash_each(r,!1,(function(e,t){return $(a,e,t),[!1,!1]}))}return i(a,"_initialize",[r],n.$to_proc())}),-1),p(s,"$to_n",(function(){var t={};return e.hash_each(this,!1,(function(e,r){return t[l("Native").$try_convert(e,e)]=l("Native").$try_convert(r,r),[!1,!1]})),t}))}(E[0],0,E),function(t,r){var n=f(t,null,"Module");p(n,"$native_module",(function(){return e.global[this.$name()]=this}))}(E[0]),function(t,r,n){var a=f(t,null,"Class"),s=[a].concat(n),i=e.$r(s);p(a,"$native_alias",(function(t,r){var n=this,a=n.prototype[e.jsid(r)];a||n.$raise(i("NameError").$new("undefined method `"+r+"' for class `"+n.$inspect()+"'",r)),n.prototype[t]=a})),p(a,"$native_class",(function(){var e=this;return e.$native_module(),e.new=e.$new}))}(E[0],0,E),k.$=k.global=U.$Native(e.global)},function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).jsyaml=e()}}((function(){return function e(t,r,n){function a(i,o){if(!r[i]){if(!t[i]){var l="function"==typeof require&&require;if(!o&&l)return l(i,!0);if(s)return s(i,!0);var $=new Error("Cannot find module '"+i+"'");throw $.code="MODULE_NOT_FOUND",$}var u=r[i]={exports:{}};t[i][0].call(u.exports,(function(e){var r=t[i][1][e];return a(r||e)}),u,u.exports,e,t,r,n)}return r[i].exports}for(var s="function"==typeof require&&require,i=0;i<n.length;i++)a(n[i]);return a}({1:[function(e,t,r){var n=e("./js-yaml/loader"),a=e("./js-yaml/dumper");function s(e){return function(){throw new Error("Function "+e+" is deprecated and cannot be used.")}}t.exports.Type=e("./js-yaml/type"),t.exports.Schema=e("./js-yaml/schema"),t.exports.FAILSAFE_SCHEMA=e("./js-yaml/schema/failsafe"),t.exports.JSON_SCHEMA=e("./js-yaml/schema/json"),t.exports.CORE_SCHEMA=e("./js-yaml/schema/core"),t.exports.DEFAULT_SAFE_SCHEMA=e("./js-yaml/schema/default_safe"),t.exports.DEFAULT_FULL_SCHEMA=e("./js-yaml/schema/default_full"),t.exports.load=n.load,t.exports.loadAll=n.loadAll,t.exports.safeLoad=n.safeLoad,t.exports.safeLoadAll=n.safeLoadAll,t.exports.dump=a.dump,t.exports.safeDump=a.safeDump,t.exports.YAMLException=e("./js-yaml/exception"),t.exports.MINIMAL_SCHEMA=e("./js-yaml/schema/failsafe"),t.exports.SAFE_SCHEMA=e("./js-yaml/schema/default_safe"),t.exports.DEFAULT_SCHEMA=e("./js-yaml/schema/default_full"),t.exports.scan=s("scan"),t.exports.parse=s("parse"),t.exports.compose=s("compose"),t.exports.addConstructor=s("addConstructor")},{"./js-yaml/dumper":3,"./js-yaml/exception":4,"./js-yaml/loader":5,"./js-yaml/schema":7,"./js-yaml/schema/core":8,"./js-yaml/schema/default_full":9,"./js-yaml/schema/default_safe":10,"./js-yaml/schema/failsafe":11,"./js-yaml/schema/json":12,"./js-yaml/type":13}],2:[function(e,t,r){function n(e){return null==e}t.exports.isNothing=n,t.exports.isObject=function(e){return"object"==typeof e&&null!==e},t.exports.toArray=function(e){return Array.isArray(e)?e:n(e)?[]:[e]},t.exports.repeat=function(e,t){var r,n="";for(r=0;r<t;r+=1)n+=e;return n},t.exports.isNegativeZero=function(e){return 0===e&&Number.NEGATIVE_INFINITY===1/e},t.exports.extend=function(e,t){var r,n,a,s;if(t)for(r=0,n=(s=Object.keys(t)).length;r<n;r+=1)e[a=s[r]]=t[a];return e}},{}],3:[function(e,t,r){var n=e("./common"),a=e("./exception"),s=e("./schema/default_full"),i=e("./schema/default_safe"),o=Object.prototype.toString,l=Object.prototype.hasOwnProperty,$=9,u=10,c=32,_=33,p=34,m=35,d=37,f=38,h=39,g=42,b=44,v=45,y=58,x=62,w=63,k=64,U=91,E=93,M=96,q=123,S=124,O=125,A={0:"\\0",7:"\\a",8:"\\b",9:"\\t",10:"\\n",11:"\\v",12:"\\f",13:"\\r",27:"\\e",34:'\\"',92:"\\\\",133:"\\N",160:"\\_",8232:"\\L",8233:"\\P"},T=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"];function N(e){var t,r,s;if(t=e.toString(16).toUpperCase(),e<=255)r="x",s=2;else if(e<=65535)r="u",s=4;else{if(!(e<=4294967295))throw new a("code point within a string may not be greater than 0xFFFFFFFF");r="U",s=8}return"\\"+r+n.repeat("0",s-t.length)+t}function z(e){this.schema=e.schema||s,this.indent=Math.max(1,e.indent||2),this.skipInvalid=e.skipInvalid||!1,this.flowLevel=n.isNothing(e.flowLevel)?-1:e.flowLevel,this.styleMap=function(e,t){var r,n,a,s,i,o,$;if(null===t)return{};for(r={},a=0,s=(n=Object.keys(t)).length;a<s;a+=1)i=n[a],o=String(t[i]),"!!"===i.slice(0,2)&&(i="tag:yaml.org,2002:"+i.slice(2)),($=e.compiledTypeMap[i])&&l.call($.styleAliases,o)&&(o=$.styleAliases[o]),r[i]=o;return r}(this.schema,e.styles||null),this.sortKeys=e.sortKeys||!1,this.lineWidth=e.lineWidth||80,this.noRefs=e.noRefs||!1,this.noCompatMode=e.noCompatMode||!1,this.implicitTypes=this.schema.compiledImplicit,this.explicitTypes=this.schema.compiledExplicit,this.tag=null,this.result="",this.duplicates=[],this.usedDuplicates=null}function R(e,t){for(var r,a=n.repeat(" ",t),s=0,i=-1,o="",l=e.length;s<l;)-1===(i=e.indexOf("\n",s))?(r=e.slice(s),s=l):(r=e.slice(s,i+1),s=i+1),r.length&&"\n"!==r&&(o+=a),o+=r;return o}function I(e,t){return"\n"+n.repeat(" ",e.indent*t)}function C(e){return e===c||e===$}function P(e){return 32<=e&&e<=126||161<=e&&e<=55295&&8232!==e&&8233!==e||57344<=e&&e<=65533&&65279!==e||65536<=e&&e<=1114111}function L(e){return P(e)&&65279!==e&&e!==b&&e!==U&&e!==E&&e!==q&&e!==O&&e!==y&&e!==m}var F=1,D=2,j=3,B=4,G=5;function H(e,t,r,n,a){var s,i,o,l=!1,$=!1,c=-1!==n,A=-1,T=P(o=e.charCodeAt(0))&&65279!==o&&!C(o)&&o!==v&&o!==w&&o!==y&&o!==b&&o!==U&&o!==E&&o!==q&&o!==O&&o!==m&&o!==f&&o!==g&&o!==_&&o!==S&&o!==x&&o!==h&&o!==p&&o!==d&&o!==k&&o!==M&&!C(e.charCodeAt(e.length-1));if(t)for(s=0;s<e.length;s++){if(!P(i=e.charCodeAt(s)))return G;T=T&&L(i)}else{for(s=0;s<e.length;s++){if((i=e.charCodeAt(s))===u)l=!0,c&&($=$||s-A-1>n&&" "!==e[A+1],A=s);else if(!P(i))return G;T=T&&L(i)}$=$||c&&s-A-1>n&&" "!==e[A+1]}return l||$?" "===e[0]&&r>9?G:$?B:j:T&&!a(e)?F:D}function Y(e,t,r,n){e.dump=function(){if(0===t.length)return"''";if(!e.noCompatMode&&-1!==T.indexOf(t))return"'"+t+"'";var s=e.indent*Math.max(1,r),i=-1===e.lineWidth?-1:Math.max(Math.min(e.lineWidth,40),e.lineWidth-s),o=n||e.flowLevel>-1&&r>=e.flowLevel;switch(H(t,o,e.indent,i,(function(t){return function(e,t){var r,n;for(r=0,n=e.implicitTypes.length;r<n;r+=1)if(e.implicitTypes[r].resolve(t))return!0;return!1}(e,t)}))){case F:return t;case D:return"'"+t.replace(/'/g,"''")+"'";case j:return"|"+V(t,e.indent)+X(R(t,s));case B:return">"+V(t,e.indent)+X(R(function(e,t){var r,n,a=/(\n+)([^\n]*)/g,s=(o=e.indexOf("\n"),o=-1!==o?o:e.length,a.lastIndex=o,K(e.slice(0,o),t)),i="\n"===e[0]||" "===e[0];var o;for(;n=a.exec(e);){var l=n[1],$=n[2];r=" "===$[0],s+=l+(i||r||""===$?"":"\n")+K($,t),i=r}return s}(t,i),s));case G:return'"'+function(e){for(var t,r,n="",a=0;a<e.length;a++)t=e.charCodeAt(a),n+=!(r=A[t])&&P(t)?e[a]:r||N(t);return n}(t)+'"';default:throw new a("impossible error: invalid scalar style")}}()}function V(e,t){var r=" "===e[0]?String(t):"",n="\n"===e[e.length-1];return r+(n&&("\n"===e[e.length-2]||"\n"===e)?"+":n?"":"-")+"\n"}function X(e){return"\n"===e[e.length-1]?e.slice(0,-1):e}function K(e,t){if(""===e||" "===e[0])return e;for(var r,n,a=/ [^ ]/g,s=0,i=0,o=0,l="";r=a.exec(e);)(o=r.index)-s>t&&(n=i>s?i:o,l+="\n"+e.slice(s,n),s=n+1),i=o;return l+="\n",e.length-s>t&&i>s?l+=e.slice(s,i)+"\n"+e.slice(i+1):l+=e.slice(s),l.slice(1)}function W(e,t,r){var n,s,i,$,u,c;for(i=0,$=(s=r?e.explicitTypes:e.implicitTypes).length;i<$;i+=1)if(((u=s[i]).instanceOf||u.predicate)&&(!u.instanceOf||"object"==typeof t&&t instanceof u.instanceOf)&&(!u.predicate||u.predicate(t))){if(e.tag=r?u.tag:"?",u.represent){if(c=e.styleMap[u.tag]||u.defaultStyle,"[object Function]"===o.call(u.represent))n=u.represent(t,c);else{if(!l.call(u.represent,c))throw new a("!<"+u.tag+'> tag resolver accepts not "'+c+'" style');n=u.represent[c](t,c)}e.dump=n}return!0}return!1}function Q(e,t,r,n,s,i){e.tag=null,e.dump=r,W(e,r,!1)||W(e,r,!0);var l=o.call(e.dump);n&&(n=e.flowLevel<0||e.flowLevel>t);var $,c,_="[object Object]"===l||"[object Array]"===l;if(_&&(c=-1!==($=e.duplicates.indexOf(r))),(null!==e.tag&&"?"!==e.tag||c||2!==e.indent&&t>0)&&(s=!1),c&&e.usedDuplicates[$])e.dump="*ref_"+$;else{if(_&&c&&!e.usedDuplicates[$]&&(e.usedDuplicates[$]=!0),"[object Object]"===l)n&&0!==Object.keys(e.dump).length?(!function(e,t,r,n){var s,i,o,l,$,c,_="",p=e.tag,m=Object.keys(r);if(!0===e.sortKeys)m.sort();else if("function"==typeof e.sortKeys)m.sort(e.sortKeys);else if(e.sortKeys)throw new a("sortKeys must be a boolean or a function");for(s=0,i=m.length;s<i;s+=1)c="",n&&0===s||(c+=I(e,t)),l=r[o=m[s]],Q(e,t+1,o,!0,!0,!0)&&(($=null!==e.tag&&"?"!==e.tag||e.dump&&e.dump.length>1024)&&(e.dump&&u===e.dump.charCodeAt(0)?c+="?":c+="? "),c+=e.dump,$&&(c+=I(e,t)),Q(e,t+1,l,!0,$)&&(e.dump&&u===e.dump.charCodeAt(0)?c+=":":c+=": ",_+=c+=e.dump));e.tag=p,e.dump=_||"{}"}(e,t,e.dump,s),c&&(e.dump="&ref_"+$+e.dump)):(!function(e,t,r){var n,a,s,i,o,l="",$=e.tag,u=Object.keys(r);for(n=0,a=u.length;n<a;n+=1)o="",0!==n&&(o+=", "),i=r[s=u[n]],Q(e,t,s,!1,!1)&&(e.dump.length>1024&&(o+="? "),o+=e.dump+": ",Q(e,t,i,!1,!1)&&(l+=o+=e.dump));e.tag=$,e.dump="{"+l+"}"}(e,t,e.dump),c&&(e.dump="&ref_"+$+" "+e.dump));else if("[object Array]"===l)n&&0!==e.dump.length?(!function(e,t,r,n){var a,s,i="",o=e.tag;for(a=0,s=r.length;a<s;a+=1)Q(e,t+1,r[a],!0,!0)&&(n&&0===a||(i+=I(e,t)),i+="- "+e.dump);e.tag=o,e.dump=i||"[]"}(e,t,e.dump,s),c&&(e.dump="&ref_"+$+e.dump)):(!function(e,t,r){var n,a,s="",i=e.tag;for(n=0,a=r.length;n<a;n+=1)Q(e,t,r[n],!1,!1)&&(0!==n&&(s+=", "),s+=e.dump);e.tag=i,e.dump="["+s+"]"}(e,t,e.dump),c&&(e.dump="&ref_"+$+" "+e.dump));else{if("[object String]"!==l){if(e.skipInvalid)return!1;throw new a("unacceptable kind of an object to dump "+l)}"?"!==e.tag&&Y(e,e.dump,t,i)}null!==e.tag&&"?"!==e.tag&&(e.dump="!<"+e.tag+"> "+e.dump)}return!0}function J(e,t){var r,n,a=[],s=[];for(Z(e,a,s),r=0,n=s.length;r<n;r+=1)t.duplicates.push(a[s[r]]);t.usedDuplicates=new Array(n)}function Z(e,t,r){var n,a,s;if(null!==e&&"object"==typeof e)if(-1!==(a=t.indexOf(e)))-1===r.indexOf(a)&&r.push(a);else if(t.push(e),Array.isArray(e))for(a=0,s=e.length;a<s;a+=1)Z(e[a],t,r);else for(a=0,s=(n=Object.keys(e)).length;a<s;a+=1)Z(e[n[a]],t,r)}function ee(e,t){var r=new z(t=t||{});return r.noRefs||J(e,r),Q(r,0,e,!0,!0)?r.dump+"\n":""}t.exports.dump=ee,t.exports.safeDump=function(e,t){return ee(e,n.extend({schema:i},t))}},{"./common":2,"./exception":4,"./schema/default_full":9,"./schema/default_safe":10}],4:[function(e,t,r){function n(e,t){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack||"",this.name="YAMLException",this.reason=e,this.mark=t,this.message=(this.reason||"(unknown reason)")+(this.mark?" "+this.mark.toString():"")}n.prototype=Object.create(Error.prototype),n.prototype.constructor=n,n.prototype.toString=function(e){var t=this.name+": ";return t+=this.reason||"(unknown reason)",!e&&this.mark&&(t+=" "+this.mark.toString()),t},t.exports=n},{}],5:[function(e,t,r){var n=e("./common"),a=e("./exception"),s=e("./mark"),i=e("./schema/default_safe"),o=e("./schema/default_full"),l=Object.prototype.hasOwnProperty,$=1,u=2,c=3,_=4,p=1,m=2,d=3,f=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,h=/[\x85\u2028\u2029]/,g=/[,\[\]\{\}]/,b=/^(?:!|!!|![a-z\-]+!)$/i,v=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function y(e){return 10===e||13===e}function x(e){return 9===e||32===e}function w(e){return 9===e||32===e||10===e||13===e}function k(e){return 44===e||91===e||93===e||123===e||125===e}function U(e){var t;return 48<=e&&e<=57?e-48:97<=(t=32|e)&&t<=102?t-97+10:-1}function E(e){return 48===e?"\0":97===e?"":98===e?"\b":116===e||9===e?"\t":110===e?"\n":118===e?"\v":102===e?"\f":114===e?"\r":101===e?"":32===e?" ":34===e?'"':47===e?"/":92===e?"\\":78===e?"…":95===e?" ":76===e?"\u2028":80===e?"\u2029":""}function M(e){return e<=65535?String.fromCharCode(e):String.fromCharCode(55296+(e-65536>>10),56320+(e-65536&1023))}for(var q=new Array(256),S=new Array(256),O=0;O<256;O++)q[O]=E(O)?1:0,S[O]=E(O);function A(e,t){this.input=e,this.filename=t.filename||null,this.schema=t.schema||o,this.onWarning=t.onWarning||null,this.legacy=t.legacy||!1,this.json=t.json||!1,this.listener=t.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=e.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function T(e,t){return new a(t,new s(e.filename,e.input,e.position,e.line,e.position-e.lineStart))}function N(e,t){throw T(e,t)}function z(e,t){e.onWarning&&e.onWarning.call(null,T(e,t))}var R={YAML:function(e,t,r){var n,a,s;null!==e.version&&N(e,"duplication of %YAML directive"),1!==r.length&&N(e,"YAML directive accepts exactly one argument"),null===(n=/^([0-9]+)\.([0-9]+)$/.exec(r[0]))&&N(e,"ill-formed argument of the YAML directive"),a=parseInt(n[1],10),s=parseInt(n[2],10),1!==a&&N(e,"unacceptable YAML version of the document"),e.version=r[0],e.checkLineBreaks=s<2,1!==s&&2!==s&&z(e,"unsupported YAML version of the document")},TAG:function(e,t,r){var n,a;2!==r.length&&N(e,"TAG directive accepts exactly two arguments"),n=r[0],a=r[1],b.test(n)||N(e,"ill-formed tag handle (first argument) of the TAG directive"),l.call(e.tagMap,n)&&N(e,'there is a previously declared suffix for "'+n+'" tag handle'),v.test(a)||N(e,"ill-formed tag prefix (second argument) of the TAG directive"),e.tagMap[n]=a}};function I(e,t,r,n){var a,s,i,o;if(t<r){if(o=e.input.slice(t,r),n)for(a=0,s=o.length;a<s;a+=1)9===(i=o.charCodeAt(a))||32<=i&&i<=1114111||N(e,"expected valid JSON character");else f.test(o)&&N(e,"the stream contains non-printable characters");e.result+=o}}function C(e,t,r,a){var s,i,o,$;for(n.isObject(r)||N(e,"cannot merge mappings; the provided source object is unacceptable"),o=0,$=(s=Object.keys(r)).length;o<$;o+=1)i=s[o],l.call(t,i)||(t[i]=r[i],a[i]=!0)}function P(e,t,r,n,a,s){var i,o;if(a=String(a),null===t&&(t={}),"tag:yaml.org,2002:merge"===n)if(Array.isArray(s))for(i=0,o=s.length;i<o;i+=1)C(e,t,s[i],r);else C(e,t,s,r);else e.json||l.call(r,a)||!l.call(t,a)||N(e,"duplicated mapping key"),t[a]=s,delete r[a];return t}function L(e){var t;10===(t=e.input.charCodeAt(e.position))?e.position++:13===t?(e.position++,10===e.input.charCodeAt(e.position)&&e.position++):N(e,"a line break is expected"),e.line+=1,e.lineStart=e.position}function F(e,t,r){for(var n=0,a=e.input.charCodeAt(e.position);0!==a;){for(;x(a);)a=e.input.charCodeAt(++e.position);if(t&&35===a)do{a=e.input.charCodeAt(++e.position)}while(10!==a&&13!==a&&0!==a);if(!y(a))break;for(L(e),a=e.input.charCodeAt(e.position),n++,e.lineIndent=0;32===a;)e.lineIndent++,a=e.input.charCodeAt(++e.position)}return-1!==r&&0!==n&&e.lineIndent<r&&z(e,"deficient indentation"),n}function D(e){var t,r=e.position;return!(45!==(t=e.input.charCodeAt(r))&&46!==t||t!==e.input.charCodeAt(r+1)||t!==e.input.charCodeAt(r+2)||(r+=3,0!==(t=e.input.charCodeAt(r))&&!w(t)))}function j(e,t){1===t?e.result+=" ":t>1&&(e.result+=n.repeat("\n",t-1))}function B(e,t){var r,n,a=e.tag,s=e.anchor,i=[],o=!1;for(null!==e.anchor&&(e.anchorMap[e.anchor]=i),n=e.input.charCodeAt(e.position);0!==n&&45===n&&w(e.input.charCodeAt(e.position+1));)if(o=!0,e.position++,F(e,!0,-1)&&e.lineIndent<=t)i.push(null),n=e.input.charCodeAt(e.position);else if(r=e.line,Y(e,t,c,!1,!0),i.push(e.result),F(e,!0,-1),n=e.input.charCodeAt(e.position),(e.line===r||e.lineIndent>t)&&0!==n)N(e,"bad indentation of a sequence entry");else if(e.lineIndent<t)break;return!!o&&(e.tag=a,e.anchor=s,e.kind="sequence",e.result=i,!0)}function G(e){var t,r,n,a,s=!1,i=!1;if(33!==(a=e.input.charCodeAt(e.position)))return!1;if(null!==e.tag&&N(e,"duplication of a tag property"),60===(a=e.input.charCodeAt(++e.position))?(s=!0,a=e.input.charCodeAt(++e.position)):33===a?(i=!0,r="!!",a=e.input.charCodeAt(++e.position)):r="!",t=e.position,s){do{a=e.input.charCodeAt(++e.position)}while(0!==a&&62!==a);e.position<e.length?(n=e.input.slice(t,e.position),a=e.input.charCodeAt(++e.position)):N(e,"unexpected end of the stream within a verbatim tag")}else{for(;0!==a&&!w(a);)33===a&&(i?N(e,"tag suffix cannot contain exclamation marks"):(r=e.input.slice(t-1,e.position+1),b.test(r)||N(e,"named tag handle cannot contain such characters"),i=!0,t=e.position+1)),a=e.input.charCodeAt(++e.position);n=e.input.slice(t,e.position),g.test(n)&&N(e,"tag suffix cannot contain flow indicator characters")}return n&&!v.test(n)&&N(e,"tag name cannot contain such characters: "+n),s?e.tag=n:l.call(e.tagMap,r)?e.tag=e.tagMap[r]+n:"!"===r?e.tag="!"+n:"!!"===r?e.tag="tag:yaml.org,2002:"+n:N(e,'undeclared tag handle "'+r+'"'),!0}function H(e){var t,r;if(38!==(r=e.input.charCodeAt(e.position)))return!1;for(null!==e.anchor&&N(e,"duplication of an anchor property"),r=e.input.charCodeAt(++e.position),t=e.position;0!==r&&!w(r)&&!k(r);)r=e.input.charCodeAt(++e.position);return e.position===t&&N(e,"name of an anchor node must contain at least one character"),e.anchor=e.input.slice(t,e.position),!0}function Y(e,t,r,a,s){var i,o,f,h,g,b,v,E,O=1,A=!1,T=!1;if(null!==e.listener&&e.listener("open",e),e.tag=null,e.anchor=null,e.kind=null,e.result=null,i=o=f=_===r||c===r,a&&F(e,!0,-1)&&(A=!0,e.lineIndent>t?O=1:e.lineIndent===t?O=0:e.lineIndent<t&&(O=-1)),1===O)for(;G(e)||H(e);)F(e,!0,-1)?(A=!0,f=i,e.lineIndent>t?O=1:e.lineIndent===t?O=0:e.lineIndent<t&&(O=-1)):f=!1;if(f&&(f=A||s),1!==O&&_!==r||(v=$===r||u===r?t:t+1,E=e.position-e.lineStart,1===O?f&&(B(e,E)||function(e,t,r){var n,a,s,i,o=e.tag,l=e.anchor,$={},c={},p=null,m=null,d=null,f=!1,h=!1;for(null!==e.anchor&&(e.anchorMap[e.anchor]=$),i=e.input.charCodeAt(e.position);0!==i;){if(n=e.input.charCodeAt(e.position+1),s=e.line,63!==i&&58!==i||!w(n)){if(!Y(e,r,u,!1,!0))break;if(e.line===s){for(i=e.input.charCodeAt(e.position);x(i);)i=e.input.charCodeAt(++e.position);if(58===i)w(i=e.input.charCodeAt(++e.position))||N(e,"a whitespace character is expected after the key-value separator within a block mapping"),f&&(P(e,$,c,p,m,null),p=m=d=null),h=!0,f=!1,a=!1,p=e.tag,m=e.result;else{if(!h)return e.tag=o,e.anchor=l,!0;N(e,"can not read an implicit mapping pair; a colon is missed")}}else{if(!h)return e.tag=o,e.anchor=l,!0;N(e,"can not read a block mapping entry; a multiline key may not be an implicit key")}}else 63===i?(f&&(P(e,$,c,p,m,null),p=m=d=null),h=!0,f=!0,a=!0):f?(f=!1,a=!0):N(e,"incomplete explicit mapping pair; a key node is missed"),e.position+=1,i=n;if((e.line===s||e.lineIndent>t)&&(Y(e,t,_,!0,a)&&(f?m=e.result:d=e.result),f||(P(e,$,c,p,m,d),p=m=d=null),F(e,!0,-1),i=e.input.charCodeAt(e.position)),e.lineIndent>t&&0!==i)N(e,"bad indentation of a mapping entry");else if(e.lineIndent<t)break}return f&&P(e,$,c,p,m,null),h&&(e.tag=o,e.anchor=l,e.kind="mapping",e.result=$),h}(e,E,v))||function(e,t){var r,n,a,s,i,o,l,u,c,_,p=!0,m=e.tag,d=e.anchor,f={};if(91===(_=e.input.charCodeAt(e.position)))a=93,o=!1,n=[];else{if(123!==_)return!1;a=125,o=!0,n={}}for(null!==e.anchor&&(e.anchorMap[e.anchor]=n),_=e.input.charCodeAt(++e.position);0!==_;){if(F(e,!0,t),(_=e.input.charCodeAt(e.position))===a)return e.position++,e.tag=m,e.anchor=d,e.kind=o?"mapping":"sequence",e.result=n,!0;p||N(e,"missed comma between flow collection entries"),c=null,s=i=!1,63===_&&w(e.input.charCodeAt(e.position+1))&&(s=i=!0,e.position++,F(e,!0,t)),r=e.line,Y(e,t,$,!1,!0),u=e.tag,l=e.result,F(e,!0,t),_=e.input.charCodeAt(e.position),!i&&e.line!==r||58!==_||(s=!0,_=e.input.charCodeAt(++e.position),F(e,!0,t),Y(e,t,$,!1,!0),c=e.result),o?P(e,n,f,u,l,c):s?n.push(P(e,null,f,u,l,c)):n.push(l),F(e,!0,t),44===(_=e.input.charCodeAt(e.position))?(p=!0,_=e.input.charCodeAt(++e.position)):p=!1}N(e,"unexpected end of the stream within a flow collection")}(e,v)?T=!0:(o&&function(e,t){var r,a,s,i,o,l=p,$=!1,u=!1,c=t,_=0,f=!1;if(124===(i=e.input.charCodeAt(e.position)))a=!1;else{if(62!==i)return!1;a=!0}for(e.kind="scalar",e.result="";0!==i;)if(43===(i=e.input.charCodeAt(++e.position))||45===i)p===l?l=43===i?d:m:N(e,"repeat of a chomping mode identifier");else{if(!((s=48<=(o=i)&&o<=57?o-48:-1)>=0))break;0===s?N(e,"bad explicit indentation width of a block scalar; it cannot be less than one"):u?N(e,"repeat of an indentation width identifier"):(c=t+s-1,u=!0)}if(x(i)){do{i=e.input.charCodeAt(++e.position)}while(x(i));if(35===i)do{i=e.input.charCodeAt(++e.position)}while(!y(i)&&0!==i)}for(;0!==i;){for(L(e),e.lineIndent=0,i=e.input.charCodeAt(e.position);(!u||e.lineIndent<c)&&32===i;)e.lineIndent++,i=e.input.charCodeAt(++e.position);if(!u&&e.lineIndent>c&&(c=e.lineIndent),y(i))_++;else{if(e.lineIndent<c){l===d?e.result+=n.repeat("\n",$?1+_:_):l===p&&$&&(e.result+="\n");break}for(a?x(i)?(f=!0,e.result+=n.repeat("\n",$?1+_:_)):f?(f=!1,e.result+=n.repeat("\n",_+1)):0===_?$&&(e.result+=" "):e.result+=n.repeat("\n",_):e.result+=n.repeat("\n",$?1+_:_),$=!0,u=!0,_=0,r=e.position;!y(i)&&0!==i;)i=e.input.charCodeAt(++e.position);I(e,r,e.position,!1)}}return!0}(e,v)||function(e,t){var r,n,a;if(39!==(r=e.input.charCodeAt(e.position)))return!1;for(e.kind="scalar",e.result="",e.position++,n=a=e.position;0!==(r=e.input.charCodeAt(e.position));)if(39===r){if(I(e,n,e.position,!0),39!==(r=e.input.charCodeAt(++e.position)))return!0;n=a=e.position,e.position++}else y(r)?(I(e,n,a,!0),j(e,F(e,!1,t)),n=a=e.position):e.position===e.lineStart&&D(e)?N(e,"unexpected end of the document within a single quoted scalar"):(e.position++,a=e.position);N(e,"unexpected end of the stream within a single quoted scalar")}(e,v)||function(e,t){var r,n,a,s,i,o,l;if(34!==(o=e.input.charCodeAt(e.position)))return!1;for(e.kind="scalar",e.result="",e.position++,r=n=e.position;0!==(o=e.input.charCodeAt(e.position));){if(34===o)return I(e,r,e.position,!0),e.position++,!0;if(92===o){if(I(e,r,e.position,!0),y(o=e.input.charCodeAt(++e.position)))F(e,!1,t);else if(o<256&&q[o])e.result+=S[o],e.position++;else if((i=120===(l=o)?2:117===l?4:85===l?8:0)>0){for(a=i,s=0;a>0;a--)(i=U(o=e.input.charCodeAt(++e.position)))>=0?s=(s<<4)+i:N(e,"expected hexadecimal character");e.result+=M(s),e.position++}else N(e,"unknown escape sequence");r=n=e.position}else y(o)?(I(e,r,n,!0),j(e,F(e,!1,t)),r=n=e.position):e.position===e.lineStart&&D(e)?N(e,"unexpected end of the document within a double quoted scalar"):(e.position++,n=e.position)}N(e,"unexpected end of the stream within a double quoted scalar")}(e,v)?T=!0:!function(e){var t,r,n;if(42!==(n=e.input.charCodeAt(e.position)))return!1;for(n=e.input.charCodeAt(++e.position),t=e.position;0!==n&&!w(n)&&!k(n);)n=e.input.charCodeAt(++e.position);return e.position===t&&N(e,"name of an alias node must contain at least one character"),r=e.input.slice(t,e.position),e.anchorMap.hasOwnProperty(r)||N(e,'unidentified alias "'+r+'"'),e.result=e.anchorMap[r],F(e,!0,-1),!0}(e)?function(e,t,r){var n,a,s,i,o,l,$,u,c=e.kind,_=e.result;if(w(u=e.input.charCodeAt(e.position))||k(u)||35===u||38===u||42===u||33===u||124===u||62===u||39===u||34===u||37===u||64===u||96===u)return!1;if((63===u||45===u)&&(w(n=e.input.charCodeAt(e.position+1))||r&&k(n)))return!1;for(e.kind="scalar",e.result="",a=s=e.position,i=!1;0!==u;){if(58===u){if(w(n=e.input.charCodeAt(e.position+1))||r&&k(n))break}else if(35===u){if(w(e.input.charCodeAt(e.position-1)))break}else{if(e.position===e.lineStart&&D(e)||r&&k(u))break;if(y(u)){if(o=e.line,l=e.lineStart,$=e.lineIndent,F(e,!1,-1),e.lineIndent>=t){i=!0,u=e.input.charCodeAt(e.position);continue}e.position=s,e.line=o,e.lineStart=l,e.lineIndent=$;break}}i&&(I(e,a,s,!1),j(e,e.line-o),a=s=e.position,i=!1),x(u)||(s=e.position+1),u=e.input.charCodeAt(++e.position)}return I(e,a,s,!1),!!e.result||(e.kind=c,e.result=_,!1)}(e,v,$===r)&&(T=!0,null===e.tag&&(e.tag="?")):(T=!0,null===e.tag&&null===e.anchor||N(e,"alias node should not have any properties")),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):0===O&&(T=f&&B(e,E))),null!==e.tag&&"!"!==e.tag)if("?"===e.tag){for(h=0,g=e.implicitTypes.length;h<g;h+=1)if((b=e.implicitTypes[h]).resolve(e.result)){e.result=b.construct(e.result),e.tag=b.tag,null!==e.anchor&&(e.anchorMap[e.anchor]=e.result);break}}else l.call(e.typeMap,e.tag)?(b=e.typeMap[e.tag],null!==e.result&&b.kind!==e.kind&&N(e,"unacceptable node kind for !<"+e.tag+'> tag; it should be "'+b.kind+'", not "'+e.kind+'"'),b.resolve(e.result)?(e.result=b.construct(e.result),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):N(e,"cannot resolve a node with !<"+e.tag+"> explicit tag")):N(e,"unknown tag !<"+e.tag+">");return null!==e.listener&&e.listener("close",e),null!==e.tag||null!==e.anchor||T}function V(e){var t,r,n,a,s=e.position,i=!1;for(e.version=null,e.checkLineBreaks=e.legacy,e.tagMap={},e.anchorMap={};0!==(a=e.input.charCodeAt(e.position))&&(F(e,!0,-1),a=e.input.charCodeAt(e.position),!(e.lineIndent>0||37!==a));){for(i=!0,a=e.input.charCodeAt(++e.position),t=e.position;0!==a&&!w(a);)a=e.input.charCodeAt(++e.position);for(n=[],(r=e.input.slice(t,e.position)).length<1&&N(e,"directive name must not be less than one character in length");0!==a;){for(;x(a);)a=e.input.charCodeAt(++e.position);if(35===a){do{a=e.input.charCodeAt(++e.position)}while(0!==a&&!y(a));break}if(y(a))break;for(t=e.position;0!==a&&!w(a);)a=e.input.charCodeAt(++e.position);n.push(e.input.slice(t,e.position))}0!==a&&L(e),l.call(R,r)?R[r](e,r,n):z(e,'unknown document directive "'+r+'"')}F(e,!0,-1),0===e.lineIndent&&45===e.input.charCodeAt(e.position)&&45===e.input.charCodeAt(e.position+1)&&45===e.input.charCodeAt(e.position+2)?(e.position+=3,F(e,!0,-1)):i&&N(e,"directives end mark is expected"),Y(e,e.lineIndent-1,_,!1,!0),F(e,!0,-1),e.checkLineBreaks&&h.test(e.input.slice(s,e.position))&&z(e,"non-ASCII line breaks are interpreted as content"),e.documents.push(e.result),e.position===e.lineStart&&D(e)?46===e.input.charCodeAt(e.position)&&(e.position+=3,F(e,!0,-1)):e.position<e.length-1&&N(e,"end of the stream or a document separator is expected")}function X(e,t){t=t||{},0!==(e=String(e)).length&&(10!==e.charCodeAt(e.length-1)&&13!==e.charCodeAt(e.length-1)&&(e+="\n"),65279===e.charCodeAt(0)&&(e=e.slice(1)));var r=new A(e,t);for(r.input+="\0";32===r.input.charCodeAt(r.position);)r.lineIndent+=1,r.position+=1;for(;r.position<r.length-1;)V(r);return r.documents}function K(e,t,r){var n,a,s=X(e,r);for(n=0,a=s.length;n<a;n+=1)t(s[n])}function W(e,t){var r=X(e,t);if(0!==r.length){if(1===r.length)return r[0];throw new a("expected a single document in the stream, but found more")}}t.exports.loadAll=K,t.exports.load=W,t.exports.safeLoadAll=function(e,t,r){K(e,t,n.extend({schema:i},r))},t.exports.safeLoad=function(e,t){return W(e,n.extend({schema:i},t))}},{"./common":2,"./exception":4,"./mark":6,"./schema/default_full":9,"./schema/default_safe":10}],6:[function(e,t,r){var n=e("./common");function a(e,t,r,n,a){this.name=e,this.buffer=t,this.position=r,this.line=n,this.column=a}a.prototype.getSnippet=function(e,t){var r,a,s,i,o;if(!this.buffer)return null;for(e=e||4,t=t||75,r="",a=this.position;a>0&&-1==="\0\r\n…\u2028\u2029".indexOf(this.buffer.charAt(a-1));)if(a-=1,this.position-a>t/2-1){r=" ... ",a+=5;break}for(s="",i=this.position;i<this.buffer.length&&-1==="\0\r\n…\u2028\u2029".indexOf(this.buffer.charAt(i));)if((i+=1)-this.position>t/2-1){s=" ... ",i-=5;break}return o=this.buffer.slice(a,i),n.repeat(" ",e)+r+o+s+"\n"+n.repeat(" ",e+this.position-a+r.length)+"^"},a.prototype.toString=function(e){var t,r="";return this.name&&(r+='in "'+this.name+'" '),r+="at line "+(this.line+1)+", column "+(this.column+1),e||(t=this.getSnippet())&&(r+=":\n"+t),r},t.exports=a},{"./common":2}],7:[function(e,t,r){var n=e("./common"),a=e("./exception"),s=e("./type");function i(e,t,r){var n=[];return e.include.forEach((function(e){r=i(e,t,r)})),e[t].forEach((function(e){r.forEach((function(t,r){t.tag===e.tag&&n.push(r)})),r.push(e)})),r.filter((function(e,t){return-1===n.indexOf(t)}))}function o(e){this.include=e.include||[],this.implicit=e.implicit||[],this.explicit=e.explicit||[],this.implicit.forEach((function(e){if(e.loadKind&&"scalar"!==e.loadKind)throw new a("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.")})),this.compiledImplicit=i(this,"implicit",[]),this.compiledExplicit=i(this,"explicit",[]),this.compiledTypeMap=function(){var e,t,r={};function n(e){r[e.tag]=e}for(e=0,t=arguments.length;e<t;e+=1)arguments[e].forEach(n);return r}(this.compiledImplicit,this.compiledExplicit)}o.DEFAULT=null,o.create=function(){var e,t;switch(arguments.length){case 1:e=o.DEFAULT,t=arguments[0];break;case 2:e=arguments[0],t=arguments[1];break;default:throw new a("Wrong number of arguments for Schema.create function")}if(e=n.toArray(e),t=n.toArray(t),!e.every((function(e){return e instanceof o})))throw new a("Specified list of super schemas (or a single Schema object) contains a non-Schema object.");if(!t.every((function(e){return e instanceof s})))throw new a("Specified list of YAML types (or a single Type object) contains a non-Type object.");return new o({include:e,explicit:t})},t.exports=o},{"./common":2,"./exception":4,"./type":13}],8:[function(e,t,r){var n=e("../schema");t.exports=new n({include:[e("./json")]})},{"../schema":7,"./json":12}],9:[function(e,t,r){var n=e("../schema");t.exports=n.DEFAULT=new n({include:[e("./default_safe")],explicit:[e("../type/js/undefined"),e("../type/js/regexp"),e("../type/js/function")]})},{"../schema":7,"../type/js/function":18,"../type/js/regexp":19,"../type/js/undefined":20,"./default_safe":10}],10:[function(e,t,r){var n=e("../schema");t.exports=new n({include:[e("./core")],implicit:[e("../type/timestamp"),e("../type/merge")],explicit:[e("../type/binary"),e("../type/omap"),e("../type/pairs"),e("../type/set")]})},{"../schema":7,"../type/binary":14,"../type/merge":22,"../type/omap":24,"../type/pairs":25,"../type/set":27,"../type/timestamp":29,"./core":8}],11:[function(e,t,r){var n=e("../schema");t.exports=new n({explicit:[e("../type/str"),e("../type/seq"),e("../type/map")]})},{"../schema":7,"../type/map":21,"../type/seq":26,"../type/str":28}],12:[function(e,t,r){var n=e("../schema");t.exports=new n({include:[e("./failsafe")],implicit:[e("../type/null"),e("../type/bool"),e("../type/int"),e("../type/float")]})},{"../schema":7,"../type/bool":15,"../type/float":16,"../type/int":17,"../type/null":23,"./failsafe":11}],13:[function(e,t,r){var n=e("./exception"),a=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],s=["scalar","sequence","mapping"];t.exports=function(e,t){var r,i;if(t=t||{},Object.keys(t).forEach((function(t){if(-1===a.indexOf(t))throw new n('Unknown option "'+t+'" is met in definition of "'+e+'" YAML type.')})),this.tag=e,this.kind=t.kind||null,this.resolve=t.resolve||function(){return!0},this.construct=t.construct||function(e){return e},this.instanceOf=t.instanceOf||null,this.predicate=t.predicate||null,this.represent=t.represent||null,this.defaultStyle=t.defaultStyle||null,this.styleAliases=(r=t.styleAliases||null,i={},null!==r&&Object.keys(r).forEach((function(e){r[e].forEach((function(t){i[String(t)]=e}))})),i),-1===s.indexOf(this.kind))throw new n('Unknown kind "'+this.kind+'" is specified for "'+e+'" YAML type.')}},{"./exception":4}],14:[function(e,t,r){var n;try{n=e("buffer").Buffer}catch(e){}var a=e("../type"),s="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r";t.exports=new a("tag:yaml.org,2002:binary",{kind:"scalar",resolve:function(e){if(null===e)return!1;var t,r,n=0,a=e.length,i=s;for(r=0;r<a;r++)if(!((t=i.indexOf(e.charAt(r)))>64)){if(t<0)return!1;n+=6}return n%8==0},construct:function(e){var t,r,a=e.replace(/[\r\n=]/g,""),i=a.length,o=s,l=0,$=[];for(t=0;t<i;t++)t%4==0&&t&&($.push(l>>16&255),$.push(l>>8&255),$.push(255&l)),l=l<<6|o.indexOf(a.charAt(t));return 0===(r=i%4*6)?($.push(l>>16&255),$.push(l>>8&255),$.push(255&l)):18===r?($.push(l>>10&255),$.push(l>>2&255)):12===r&&$.push(l>>4&255),n?new n($):$},predicate:function(e){return n&&n.isBuffer(e)},represent:function(e){var t,r,n="",a=0,i=e.length,o=s;for(t=0;t<i;t++)t%3==0&&t&&(n+=o[a>>18&63],n+=o[a>>12&63],n+=o[a>>6&63],n+=o[63&a]),a=(a<<8)+e[t];return 0===(r=i%3)?(n+=o[a>>18&63],n+=o[a>>12&63],n+=o[a>>6&63],n+=o[63&a]):2===r?(n+=o[a>>10&63],n+=o[a>>4&63],n+=o[a<<2&63],n+=o[64]):1===r&&(n+=o[a>>2&63],n+=o[a<<4&63],n+=o[64],n+=o[64]),n}})},{"../type":13}],15:[function(e,t,r){var n=e("../type");t.exports=new n("tag:yaml.org,2002:bool",{kind:"scalar",resolve:function(e){if(null===e)return!1;var t=e.length;return 4===t&&("true"===e||"True"===e||"TRUE"===e)||5===t&&("false"===e||"False"===e||"FALSE"===e)},construct:function(e){return"true"===e||"True"===e||"TRUE"===e},predicate:function(e){return"[object Boolean]"===Object.prototype.toString.call(e)},represent:{lowercase:function(e){return e?"true":"false"},uppercase:function(e){return e?"TRUE":"FALSE"},camelcase:function(e){return e?"True":"False"}},defaultStyle:"lowercase"})},{"../type":13}],16:[function(e,t,r){var n=e("../common"),a=e("../type"),s=new RegExp("^(?:[-+]?(?:[0-9][0-9_]*)\\.[0-9_]*(?:[eE][-+][0-9]+)?|\\.[0-9_]+(?:[eE][-+][0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");var i=/^[-+]?[0-9]+e/;t.exports=new a("tag:yaml.org,2002:float",{kind:"scalar",resolve:function(e){return null!==e&&!!s.test(e)},construct:function(e){var t,r,n,a;return r="-"===(t=e.replace(/_/g,"").toLowerCase())[0]?-1:1,a=[],"+-".indexOf(t[0])>=0&&(t=t.slice(1)),".inf"===t?1===r?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:".nan"===t?NaN:t.indexOf(":")>=0?(t.split(":").forEach((function(e){a.unshift(parseFloat(e,10))})),t=0,n=1,a.forEach((function(e){t+=e*n,n*=60})),r*t):r*parseFloat(t,10)},predicate:function(e){return"[object Number]"===Object.prototype.toString.call(e)&&(e%1!=0||n.isNegativeZero(e))},represent:function(e,t){var r;if(isNaN(e))switch(t){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===e)switch(t){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===e)switch(t){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(n.isNegativeZero(e))return"-0.0";return r=e.toString(10),i.test(r)?r.replace("e",".e"):r},defaultStyle:"lowercase"})},{"../common":2,"../type":13}],17:[function(e,t,r){var n=e("../common"),a=e("../type");function s(e){return 48<=e&&e<=55}function i(e){return 48<=e&&e<=57}t.exports=new a("tag:yaml.org,2002:int",{kind:"scalar",resolve:function(e){if(null===e)return!1;var t,r,n=e.length,a=0,o=!1;if(!n)return!1;if("-"!==(t=e[a])&&"+"!==t||(t=e[++a]),"0"===t){if(a+1===n)return!0;if("b"===(t=e[++a])){for(a++;a<n;a++)if("_"!==(t=e[a])){if("0"!==t&&"1"!==t)return!1;o=!0}return o}if("x"===t){for(a++;a<n;a++)if("_"!==(t=e[a])){if(!(48<=(r=e.charCodeAt(a))&&r<=57||65<=r&&r<=70||97<=r&&r<=102))return!1;o=!0}return o}for(;a<n;a++)if("_"!==(t=e[a])){if(!s(e.charCodeAt(a)))return!1;o=!0}return o}for(;a<n;a++)if("_"!==(t=e[a])){if(":"===t)break;if(!i(e.charCodeAt(a)))return!1;o=!0}return!!o&&(":"!==t||/^(:[0-5]?[0-9])+$/.test(e.slice(a)))},construct:function(e){var t,r,n=e,a=1,s=[];return-1!==n.indexOf("_")&&(n=n.replace(/_/g,"")),"-"!==(t=n[0])&&"+"!==t||("-"===t&&(a=-1),t=(n=n.slice(1))[0]),"0"===n?0:"0"===t?"b"===n[1]?a*parseInt(n.slice(2),2):"x"===n[1]?a*parseInt(n,16):a*parseInt(n,8):-1!==n.indexOf(":")?(n.split(":").forEach((function(e){s.unshift(parseInt(e,10))})),n=0,r=1,s.forEach((function(e){n+=e*r,r*=60})),a*n):a*parseInt(n,10)},predicate:function(e){return"[object Number]"===Object.prototype.toString.call(e)&&e%1==0&&!n.isNegativeZero(e)},represent:{binary:function(e){return"0b"+e.toString(2)},octal:function(e){return"0"+e.toString(8)},decimal:function(e){return e.toString(10)},hexadecimal:function(e){return"0x"+e.toString(16).toUpperCase()}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}})},{"../common":2,"../type":13}],18:[function(e,t,r){var n;try{n=e("esprima")}catch(e){"undefined"!=typeof window&&(n=window.esprima)}var a=e("../../type");t.exports=new a("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:function(e){if(null===e)return!1;try{var t="("+e+")",r=n.parse(t,{range:!0});return"Program"===r.type&&1===r.body.length&&"ExpressionStatement"===r.body[0].type&&"FunctionExpression"===r.body[0].expression.type}catch(e){return!1}},construct:function(e){var t,r="("+e+")",a=n.parse(r,{range:!0}),s=[];if("Program"!==a.type||1!==a.body.length||"ExpressionStatement"!==a.body[0].type||"FunctionExpression"!==a.body[0].expression.type)throw new Error("Failed to resolve function");return a.body[0].expression.params.forEach((function(e){s.push(e.name)})),t=a.body[0].expression.body.range,new Function(s,r.slice(t[0]+1,t[1]-1))},predicate:function(e){return"[object Function]"===Object.prototype.toString.call(e)},represent:function(e){return e.toString()}})},{"../../type":13}],19:[function(e,t,r){var n=e("../../type");t.exports=new n("tag:yaml.org,2002:js/regexp",{kind:"scalar",resolve:function(e){if(null===e)return!1;if(0===e.length)return!1;var t=e,r=/\/([gim]*)$/.exec(e),n="";if("/"===t[0]){if(r&&(n=r[1]),n.length>3)return!1;if("/"!==t[t.length-n.length-1])return!1}return!0},construct:function(e){var t=e,r=/\/([gim]*)$/.exec(e),n="";return"/"===t[0]&&(r&&(n=r[1]),t=t.slice(1,t.length-n.length-1)),new RegExp(t,n)},predicate:function(e){return"[object RegExp]"===Object.prototype.toString.call(e)},represent:function(e){var t="/"+e.source+"/";return e.global&&(t+="g"),e.multiline&&(t+="m"),e.ignoreCase&&(t+="i"),t}})},{"../../type":13}],20:[function(e,t,r){var n=e("../../type");t.exports=new n("tag:yaml.org,2002:js/undefined",{kind:"scalar",resolve:function(){return!0},construct:function(){},predicate:function(e){return void 0===e},represent:function(){return""}})},{"../../type":13}],21:[function(e,t,r){var n=e("../type");t.exports=new n("tag:yaml.org,2002:map",{kind:"mapping",construct:function(e){return null!==e?e:{}}})},{"../type":13}],22:[function(e,t,r){var n=e("../type");t.exports=new n("tag:yaml.org,2002:merge",{kind:"scalar",resolve:function(e){return"<<"===e||null===e}})},{"../type":13}],23:[function(e,t,r){var n=e("../type");t.exports=new n("tag:yaml.org,2002:null",{kind:"scalar",resolve:function(e){if(null===e)return!0;var t=e.length;return 1===t&&"~"===e||4===t&&("null"===e||"Null"===e||"NULL"===e)},construct:function(){return null},predicate:function(e){return null===e},represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"}},defaultStyle:"lowercase"})},{"../type":13}],24:[function(e,t,r){var n=e("../type"),a=Object.prototype.hasOwnProperty,s=Object.prototype.toString;t.exports=new n("tag:yaml.org,2002:omap",{kind:"sequence",resolve:function(e){if(null===e)return!0;var t,r,n,i,o,l=[],$=e;for(t=0,r=$.length;t<r;t+=1){if(n=$[t],o=!1,"[object Object]"!==s.call(n))return!1;for(i in n)if(a.call(n,i)){if(o)return!1;o=!0}if(!o)return!1;if(-1!==l.indexOf(i))return!1;l.push(i)}return!0},construct:function(e){return null!==e?e:[]}})},{"../type":13}],25:[function(e,t,r){var n=e("../type"),a=Object.prototype.toString;t.exports=new n("tag:yaml.org,2002:pairs",{kind:"sequence",resolve:function(e){if(null===e)return!0;var t,r,n,s,i,o=e;for(i=new Array(o.length),t=0,r=o.length;t<r;t+=1){if(n=o[t],"[object Object]"!==a.call(n))return!1;if(1!==(s=Object.keys(n)).length)return!1;i[t]=[s[0],n[s[0]]]}return!0},construct:function(e){if(null===e)return[];var t,r,n,a,s,i=e;for(s=new Array(i.length),t=0,r=i.length;t<r;t+=1)n=i[t],a=Object.keys(n),s[t]=[a[0],n[a[0]]];return s}})},{"../type":13}],26:[function(e,t,r){var n=e("../type");t.exports=new n("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(e){return null!==e?e:[]}})},{"../type":13}],27:[function(e,t,r){var n=e("../type"),a=Object.prototype.hasOwnProperty;t.exports=new n("tag:yaml.org,2002:set",{kind:"mapping",resolve:function(e){if(null===e)return!0;var t,r=e;for(t in r)if(a.call(r,t)&&null!==r[t])return!1;return!0},construct:function(e){return null!==e?e:{}}})},{"../type":13}],28:[function(e,t,r){var n=e("../type");t.exports=new n("tag:yaml.org,2002:str",{kind:"scalar",construct:function(e){return null!==e?e:""}})},{"../type":13}],29:[function(e,t,r){var n=e("../type"),a=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),s=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");t.exports=new n("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:function(e){return null!==e&&(null!==a.exec(e)||null!==s.exec(e))},construct:function(e){var t,r,n,i,o,l,$,u,c=0,_=null;if(null===(t=a.exec(e))&&(t=s.exec(e)),null===t)throw new Error("Date resolve error");if(r=+t[1],n=+t[2]-1,i=+t[3],!t[4])return new Date(Date.UTC(r,n,i));if(o=+t[4],l=+t[5],$=+t[6],t[7]){for(c=t[7].slice(0,3);c.length<3;)c+="0";c=+c}return t[9]&&(_=6e4*(60*+t[10]+ +(t[11]||0)),"-"===t[9]&&(_=-_)),u=new Date(Date.UTC(r,n,i,o,l,$,c)),_&&u.setTime(u.getTime()-_),u},instanceOf:Date,represent:function(e){return e.toISOString()}})},{"../type":13}],"/":[function(e,t,r){var n=e("./lib/js-yaml.js");t.exports=globalThis.jsyaml=n},{"./lib/js-yaml.js":1}]},{},[])("/")})),Opal.loaded(["yaml/js-yaml-3-6-1.js"]),Opal.modules.yaml=function(e){var t=e.module,r=e.defs,n=e.truthy,a=e.top,s=[],i=e.nil;return e.add_stubs("require,load,read,native?,new"),a.$require("native"),a.$require("yaml/js-yaml-3-6-1"),function(a,s){var o=t(a,"YAML"),l=[o].concat(s),$=e.$r(l);null==o.__yaml__&&(o.__yaml__=i),o.__yaml__=globalThis.jsyaml;var u=o.__yaml__;return r(o,"$load_path",(function(e){return this.$load($("File").$read(e))})),r(o,"$load",(function(e){var t=i;return t=u.safeLoad(e),n(this["$native?"](t))&&(t=$("Hash").$new(t)),t})),r(o,"$safe_load",(function(e){return this.$load(e)}))}(s[0],s)},Opal.modules["plurimath/math"]=function(e){var t=e.module,r=e.klass,n=e.const_set,a=e.truthy,s=e.def,i=e.top,o=[],l=e.nil,$=e.$$$;return e.add_stubs("require,freeze,valid_type?,type_error!,klass_from_type,to_formula,new,input_string=,parse_error!,to_sym,private,[],raise,join,keys,is_a?,key?,module_function"),i.$require("plurimath/math.rb/../unicode"),i.$require("plurimath/math.rb/../asciimath"),i.$require("plurimath/math.rb/../omml"),i.$require("plurimath/math.rb/../mathml"),i.$require("plurimath/math.rb/../html"),i.$require("plurimath/math.rb/../latex"),i.$require("plurimath/math.rb/../unitsml"),i.$require("plurimath/math.rb/../math/core"),i.$require("plurimath/math.rb/../math/number"),i.$require("plurimath/math.rb/../math/symbol"),i.$require("plurimath/math.rb/../math/unicode"),i.$require("plurimath/math.rb/../math/formula"),i.$require("plurimath/math.rb/../math/function"),i.$require("plurimath/math.rb/../asciimath/parser"),i.$require("plurimath/math.rb/../mathml/parser"),i.$require("plurimath/math.rb/../latex/parser"),i.$require("plurimath/math.rb/../html/parser"),i.$require("plurimath/math.rb/../omml/parser"),i.$require("plurimath/math.rb/../utility"),i.$require("yaml"),function(i,o){var u=[t(i,"Plurimath")].concat(o);return function(i,o){var u=t(i,"Math"),c=[u].concat(o),_=e.$r(c);return r(c[0],_("StandardError"),"ParseError"),r(c[0],_("TypeError"),"InvalidTypeError"),n(c[0],"VALID_TYPES",new Map([["omml",_("Omml")],["html",_("Html")],["latex",_("Latex")],["mathml",_("Mathml")],["unitsml",_("Unitsml")],["unicode",_("Unicode")],["asciimath",_("Asciimath")]]).$freeze()),s(u,"$parse",(function(t,r){var n=this,s=l;a(n["$valid_type?"](r))||n["$type_error!"]();try{return(s=n.$klass_from_type(r).$new(t).$to_formula())["$input_string="](t),s}catch(a){if(!e.rescue(a,[_("StandardError")]))throw a;a;try{return n["$parse_error!"](t,r.$to_sym())}finally{e.pop_exception(a)}}})),u.$private(),s(u,"$klass_from_type",(function(e){return _("VALID_TYPES")["$[]"](e.$to_sym())})),s(u,"$parse_error!",(function(e,t){var r;return r="[plurimath] Error: Failed to parse the following formula with type `"+t+"`.\n[plurimath] Please first manually validate the formula.\n[plurimath] If this is a bug, please report the formula at our issue tracker at:\n[plurimath] https://github.com/plurimath/plurimath/issues\n---- FORMULA BEGIN ----\n"+e+"\n---- FORMULA END ----\n",this.$raise(_("ParseError").$new(r),new Map([["cause",l]]))})),s(u,"$type_error!",(function(){return this.$raise(_("InvalidTypeError").$new("`type` must be one of: `"+_("VALID_TYPES").$keys().$join("`, `")+"`"))})),s(u,"$valid_type?",(function(e){var t,r;return a(t=a(r=e["$is_a?"]($("Symbol")))?r:e["$is_a?"](_("String")))?_("VALID_TYPES")["$key?"](e.$to_sym()):t})),u.$module_function("parse","klass_from_type","parse_error!","type_error!","valid_type?")}(u[0],u)}(o[0],o)},Opal.modules.plurimath=function(e){var t=e.top;e.nil;return e.add_stubs("require"),t.$require("./plurimath.rb/../plurimath/version"),t.$require("plurimath/setup/oga"),t.$require("plurimath/setup/opal"),t.$require("plurimath/math")};export default Opal.return_val(Opal.nil);Opal.queue((function(e){var t=e.Kernel;e.nil;return e.add_stubs("exit"),t.$exit()}));
//# sourceMappingURL=plurimath-opal.js.map